๐ Ui24R Snapshot Converter.
The official Soundcraft Ui24R JSON snapshot export format is very hard to understand and work with; thus, manually editing mixer snapshots from code can be extremely uncomfortable. This Python script lets you convert snapshots exported from the mixer Web UI to other more human-readable formats and vice versa. It can read/write both JSON and YAML documents.
Note: this project is specific for Soundcraft JSON snapshot format, a.k.a. "Offline Files". It does not handle
.uisnapshot
files.
Important: this has been tested with the firmware version 3.3.8293-ui24.
This utility is available as a Python package on PyPI:
pip3 install ui24rsc
The first parameter of this command is ACTIONS
, a comma-separated sequence of operations which will be used in order to process the input document and produce the output. See the code for more information on what each action does.
This is a basic example of how to convert from official Soundcraft JSON format to a custom tree-like, human-friendly, differential YAML format:
ui24rsc diff,tree original.json human-friendly.yml
And the opposite is:
ui24rsc dots,full human-friendly.yml official.json
For more details on how to use this command, you can also refer to its help message (--help
).
If you want to contribute to this project, you can install the package in editable mode:
pip3 install -e . --user
This will just link the package to the original location, basically meaning any changes to the original package would reflect directly in your environment (source).
If you want to run the tests, you'll have to install the pytest
package and then run:
pytest test
The default-init.yml
file was built by exporting the * Init *
snapshot (from the Default
show of the Soundcraft Ui24R), which should contain the mixer factory default settings, and then executing the following command:
ui24rsc tree,sort default-init.json default-init.yml
If you want to check that the two files are equivalent, you can install jq
on your PC and then run:
diff <(jq --sort-keys < default-init.json) <(ui24rsc dots default-init.yml | jq --sort-keys)
In general, if you want to see the differences between two snapshot files in different formats, you can use the following command:
diff <(jq --sort-keys < snapshot01.json) <(ui24rsc dots,full snapshot01.yml | jq --sort-keys)