Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can we build a written spec? #7

Open
SeanLuke opened this issue May 29, 2022 · 1 comment
Open

Can we build a written spec? #7

SeanLuke opened this issue May 29, 2022 · 1 comment

Comments

@SeanLuke
Copy link

I'm finding it difficult to extract from your code what the actual sysex commands are and their interpretation and data embedding. Was thinking of building an editor for Edisyn but didn't want to have to completely reverse engineer the spec. Have you had any opportunity to write down the spec in a formal and human-readable fashion? Here's hoping...

@mungewell
Copy link
Owner

For the patch file, the format is pretty much explained in the code from line:
https://github.com/mungewell/uno-synth-utils/blob/master/uno_synth.py#L46

There's a parameter count (43 for everything), follow by each parameter in the form of:

  • length (0x00 byte data or 0x20 word data)
  • address (ie which setting)
  • data (byte or word, signed or unsigned)

The rest of the python here is to do conversion into one or two 7bit bytes (cause we're midi) and to wrap in a default value so that you can make a preset out of thin air.

The 'raw' value in the patch file is not necessarily a direct encoding of how the official VST would represent, you will need to do some beautification of the values.

After the settings, there is another block which represents the sequencer pattern which is a little more convoluted. If you use --dump you get a python object/dictionary which also represents how the sequencer elements are stacked together...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants