Hi,
thank you, these are good points to my naive thinking.
Quote:
Originally Posted by
feijai
It's a lot harder than it sounds.
I should have known it better.
Quote:
Originally Posted by
feijai
Every single synth has a different sysex format for doing bulk dumps -- and probably 80% of the work in writing a patch editor lies in writing and debugging the code to parse and emit sysex dumps.
As I wrote I wouldn't write an editor. I know this would be a huge work.
Quote:
Originally Posted by
feijai
The documentation is often buggy, incomplete, or entirely missing. Some synths don't have bulk dumps, but only single patch dumps or maybe bank dumps. Other synths do dumps via NRPN.
I have the idea (which isn't new I know) to only make a frame where I (people) can put in sysex requests as is (hex string) and manage them by a generic list of synths.
Quote:
Originally Posted by
feijai
I'll give you an idea of crazy things you have to support. The Oberheim Matrix 1000 encodes all of its sysex by breaking the bytes into nybbles and then encoding each nybble in a separate byte. The Yamaha TX81Z sends patches not as one sysex dump but as *two* separate sysex dumps so as to be backwards compatible with earlier obscure 4-op FM synths. The PreenFM2 has a sysex format that is entirely undocumented. It consists of packing an array of *IEEE 754 doubles* into the sysex stream. For both the TX81Z and the PreenFM2, btw, there's no sysex command to write a patch to patch memory.
Oh, I underestimated the fantasy of synth developers.
My idea is to keep it very simple:
- Record sysex stream from synth as is.
- Take begin, end or length of data of each patch in stream from documentation or analyze it.
- Store each part separately.
- Extract only patch name from each patch data by definition of begin, end or length of name part.
- Define how the name data must be interpreted (eg by midi bytes).
- Present all this in a list where you can manage (move, delete, ...) the recognized patches.
Reconstruct sysex stream by recognized patches and send to synth.
Or make only a program change list from the recognized patch names,
which was also often missing.
Quote:
Originally Posted by
feijai
There's no way you can come up with a set of parsing rules for this.
Perhaps only for newer, more modern synths.
br