Where is the SYSEX documentation?

Mehr
1 Jahr 11 Monate her #1 von MikeInProcess
I don't directly edit patches, I write software that evolves patches using genetic algorithms. This approach is a far more intuitive way to discover new sounds. I don't need to know the ins and outs of every parameter, I merely have to say "I like this" and "I like that" and "I like these crossbreeds of this and that, but not those". Soon I have all the great patches I could ever want, effortlessly.

To do this, however, I need the SYSEX (detailed system-specific MIDI implementation) of the synthesizer to be well-documented.

Specifically, I have to know the SYSEX command to request a patch, to send a patch, and I have to know the detailed format of a dumped patch. How large is a patch? In what position in the binary dump is every parameter and what range does each parameter have? Where is a checksum stored and in what format?

In hardware synths (with the unfortunate exception of things put out by Novation) this is standard provided information. It's needed to write any editor, including one that uses evolutionary algorithms like mine.

I've not bought one of these synths yet, I love the sound, but w/o SYSEX documentation I won't buy it. Is comprehensive SYSEX documentation available? I didn't see this kind of information in the manual and I don't see a supplementary document.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 11 Monate her #2 von JustMe
I could not find any appropriate SYSEX documentation. And also no single patch transmit.
BUT there could be a work around.
The Kyra has a function "Send current edit buffer" which is intended to transmit the current patch to another Kyra. If your software pretends to be a Kyra you could transmit a generated patch to it. The tedious part is to analyze the format of this data block if Waldorf is not willing to publish it.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 11 Monate her #3 von JustMe
I could not find any appropriate SYSEX documentation. And also no single patch transmit.
BUT there could be a work around.
The Kyra has a function "Send current edit buffer" which is intended to transmit the current patch to another Kyra. If your software pretends to be a Kyra you could transmit a generated patch to it. The tedious part is to analyze the format of this data block if Waldorf is not willing to publish it.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 11 Monate her #4 von MikeInProcess
I just read today that Waldorf has no editor and is expecting the user community to write one. This requires SYSEX documentation. Without it, I'm getting the impression that this synth will be abandoned. That's a shame since it avoids obsolescence with class-compliant USB, unlike many other synths that depend on eventually obsolete drivers.

"Send" current edit buffer via button press isn't what I need, ideally, I need the synth to be able to respond to a request to send a patch.

Anyway, hopefully Waldorf will respond better than Novation did (which is why I buy no more Novation).

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 1 Monat her #5 von mattfwalters
Hi, friends. I am equally frustrated by the lack of Kyra SysEx documentation - but I'm also a software / firmware developer by background, so I'm reverse-engineering it. I'm disappointed that the Edisyn team appear to have received some documentation from Waldorf that neither party has seen fit to share with the broader community - but in fairness, based on the comments in the Edisyn Kyra codebase, it seems like the "documentation" may just have been some data structures and comments from the Kyra firmware, so wasn't very clear. I didn't use the Edisyn codebase as the basis of any of the work I'm presenting here, but I did cross-check my results against it. You'll see a couple of comments in the spreadsheet alluding to same.

At any rate, I have figured out most of the real-time / patch-editing SysEx message format and mapped all of the parameters - details in the attached spreadsheet (

Dateianhang:

Dateiname: WaldorfKyr...xlsx.zip
Dateigröße:33 KB
). I have used that information and my minimal Max skills to create a working proof-of-concept of a Max device that displays knobs for Filter 1 cutoff / resonance, parses SysEx messages from Kyra to update the knob values when they're changed on the Kyra, and generates SysEx messages to change the cutoff / resonance values for Filter 1. My primary goal is to create a Max4Live device that will allow me to create patches and automate any patch parameter in Live; I don't really care about patch libraries &c but I'm happy to work with folks on figuring out the bulk SysEx bits as well. I think I'll be doing that for the Iridium before the Kyra, though - managing patches and samples on Iridium is a complete nightmare, and Kyra is actually pretty straightforward on that front. While playing around, I also found a couple of knobs that respond to the shift button that aren't documented on the front panel (shift+LFO shape == LFO phase; shift+EG section Decay knob == velocity scaling), so that's nice.

I've also uploaded the Max project with the two-way synced filter 1 cutoff / resonance knobs, just in case I lose interest in this and never finish it (

Dateianhang:

Dateiname: KyraController.zip
Dateigröße:8 KB
) - which, let's be real, is a possibility. :)

Please consider both pieces of work to be under the Creative Commons Attribution license.
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Jahr 1 Monat her - 1 Jahr 1 Monat her #6 von mattfwalters
Update: PFA the Max4Live version of that same prototype. I have just successfully recorded and played back automation of cutoff / resonance of filter 1, where the automation source was me twisting knobs on Kyra. Now to repeat for, uh, around 200 other parameters. :|

Dateianhang:

Dateiname: KyraContro...amxd.zip
Dateigröße:5 KB
Anhänge:
Letzte Änderung: 1 Jahr 1 Monat her von mattfwalters.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.