GithubHelp home page GithubHelp logo

dmotte / ui24rsc Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 235 KB

๐Ÿ Ui24R Snapshot Converter

Home Page: https://pypi.org/project/ui24rsc/

License: MIT License

Python 100.00%
converter diff dots dotted full json snapshot structured tree ui24r

ui24rsc's Introduction

ui24rsc

device

GitHub main workflow PyPI

๐Ÿ 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.

Tested with firmware version 3.3.8293-ui24.

Installation

This utility is available as a Python package on PyPI:

pip3 install ui24rsc

Usage

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).

Development

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

Other useful stuff

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)

ui24rsc's People

Contributors

dependabot[bot] avatar dmotte avatar

Stargazers

 avatar  avatar

Watchers

 avatar

ui24rsc's Issues

Need a better understanding of the categories in the Json files.

I have built a much less ambitious pretty printer for the Uixx Json files.
Most of the key names are pretty obvious, but some elude me.

As a translation dictionary I have:
{"i":"Input ", "a":"Aux ", "f":"FX ", "s":"Subgroup ", "l":"L", "m":"Master", "p":"P"}

So what do "l" and "p" stand for? Happy if you can offer any advice (and prepared for a "DOH" moment.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.