Ufor: Universal Format
A common language for things that happen in time.
Recordings, sequences, mixes and instruments share portable, human-readable definitions. Exact timing, explicit units and named connections keep their meaning intact across applications.
A score is a saveable description of material, a process, or a composition. Scores can contain named parts, each using another score. Their interfaces expose named inputs, outputs and parameters. See the composition design.
Today, Ufor covers:
- User score libraries, literal selectors, Python declarations and reusable presets.
- Audio recordings and arrangements; MIDI, OSC, keystrokes and performance events.
- Tunings, scales and oscillator definitions, with fractional ratios and Scala import.
- Sample instruments, asset slices and SFZ conversion.
- Segment envelopes, LFOs and typed modulation routes.
- Scalar timeline automation for gain, frequency and logical gates, with explicit units.
- Light animation descriptions, arbitrary component counts, layouts and wiring, with exact composition and shared parameter controls.
The larger ambition includes fixture control, control voltages and other timed data. Video is outside the scope.
The Python library provides frozen Pydantic models, validation, TOML interchange, JSON Schema and reference calculations. An explicit library reader loads configured local files; applications supply devices and audio rendering. Portable conformance cases lay the groundwork for other language implementations.
Start with the musical definitions, instruments, modulation or light animations. The Lyte port instructions describe the remaining host work; Lyte has not yet been migrated. The implemented score composition design describes shared interfaces, nested mixes and sequence-driven instruments. See user libraries for configuration, selection and host integration. Explore the schema and conformance cases. See scalar automation for editable curves and examples.
The VL70m SysEx proof of concept implements lossless dump inspection and explicit patch relocation with a partial MIDI description. Device communication and integration into scores remain deferred.
For development, use Python 3.13+:
uv sync
uv run pytest
Extracted from Recs, Tuney and Lyte. MIT licensed.
Sequence cropping, seeking, loop ownership, and UMP storage are described in sequence playback.
Release files for ufor 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ufor-0.1.0.tar.gz | 225.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ufor-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 320.9 kB
Release files / ufor-0.1.0.tar.gz
| Download URL | ufor-0.1.0.tar.gz |
|---|---|
| Size | 225.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c532c8fc074edaf920b1248612bced3e0ed0a2e58aad49444b82d0f7782fd702
|
|
BLAKE2b-256 checksum How to use checksums |
acde912162b11d52722e0fbd4c7146334109753970a45762e96fec6df0a811dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / ufor-0.1.0-py3-none-any.whl
| Download URL | ufor-0.1.0-py3-none-any.whl |
|---|---|
| Size | 95.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1bab70fb995227a660cccfd3e12979e8de8a8aac566834d99a1306396d6fa9f2
|
|
BLAKE2b-256 checksum How to use checksums |
3ca4df4c86d8e8c14b4efc88d140ec24065d54ad64012397f47431e26ae35dfe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|