Open probonopd opened 2 years ago
@jrdooley also requested this feature with the folliowing use case:
For example, by connecting a class-compliant USB MIDI interface to the RPi, SYSEX messages could be sent to RPi/MiniDexed from an external device (e.g. a computer with sequencer sending SYSEX messages) updating OP1 Freq Coarse parameter immediately. This would allow for an external interface to program voices.
Hello @dcoredump are there changes in Synth_Dexed needed so that this can be implemented in MiniDexed?
Yes, I really want to move the SYSEX code from MicroDexed to Synth_Dexed, but currently I have not much time to manage this. But it's on my list.
@dcoredump Great to hear that it's in the pipeline! This would really open up the creative possibilities for MiniDexed.
Note to self: Test this in https://synthmata.github.io/volca-fm/ and https://www.synthmata.com/volca-fm/, an editor that runs purely in the (Chrome) browser and can send MIDI to MIDI devices like this one.
Just started the work on this 😀
Update:
I have moved the SYSEX code from MicroDexed into Synth_Dexed (had also to change SYSEX handling in MicroDexed). Now implementing SYSEX features in MiniDexed. Maybe the next days the first test can start!
Thanks for the update @dcoredump. This will be huge!
Maybe an idea to add sysex control over parameters like volume,panning,reverb-send, detune and midi channel for each TG. I am aware of midi control change for some of those parameters but when you have several TG's set to the same midi channel this is not practical.
Let's get the "normal" Dexed sysex working first. Later we can think about additional ones, but should do so in a way compatible with or at least similar to existing instruments.
Fantastic news!
After reading through some TX816 documentation I noticed they use the midi channel as the sysex ID so sysex is the way to do it. While I do have an OG DX7 I can't tell from memory how the midi settings are on the real thing as my DX7 has the E! expansion in it. If my memory does not fail me it was the TX channel was always 1 with no way to change it.
Turns out that voice loading is working but for it to work one must not set the tone generator(s) to MIDI channel "Omni" but to channel 1 (or another channel that is set in Dexed on the PC under PARM -> DX7 Channel).
Is this a bug or is it intentional that voice sysex are ignored on channel "Omni"?
FWIW, the original DX7 manual seems to say that voice sysex messages ("bulk data of 1 voice") are channelized. There's definitely a channel byte in the message format, and no mention of reception of this message in Omni mode.
Thanks for looking it up @studionebula.
So it looks like it is a feature, not a bug, that TGs set to Omni won't receive voice sysex.
But the other way around, why does one need to set TGs to Omni so that one can receive parameter sysex (for on-the-fly editing)?
You're welcome, and thank you for all of your work.
Without knowing anything about the codebase, I'm going to go out on a limb and say that the Omni requirement for parameter sysex is a bug, at least as far as comparison with the original hardware goes. In the section on sysex messages, the manual says "Parameter change - Voice parameter and function parameter request reception with the same format as transmission when MIDI channel numbers are corresponded, system information is available, and Memory protect is off." [grammar and punctuation oddities as per the original text] That's essentially the same verbiage for the voice bulk-data message. On top of that, it doesn't make sense to me that you'd want parameter-change messages to not be channelized, if you consider the use case of e.g. the TX816 where you might have several synths receiving the same data simultaneously.
Looks like we can close this as it has been implemented, or are any aspects not working properly yet?
How do I save the transferred voice? After sending a patch/voice from synthmata, on MiniDexed I get the patch name with a question mark at the end. How do I save the changes now?
@dcoredump said:
That would be cool!