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

Parameter changes and voice loading via sysex #82

Open
probonopd opened this issue Apr 10, 2022 · 18 comments
Open

Parameter changes and voice loading via sysex #82

probonopd opened this issue Apr 10, 2022 · 18 comments
Labels
enhancement New feature or request

Comments

@probonopd
Copy link
Owner

@dcoredump said:

I would like to implement parameter changes via SYSEX

That would be cool!

@probonopd probonopd added the enhancement New feature or request label Apr 10, 2022
@probonopd
Copy link
Owner Author

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

@probonopd
Copy link
Owner Author

Hello @dcoredump are there changes in Synth_Dexed needed so that this can be implemented in MiniDexed?

@dcoredump
Copy link
Contributor

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.

@jrdooley
Copy link

@dcoredump Great to hear that it's in the pipeline! This would really open up the creative possibilities for MiniDexed.

@probonopd probonopd changed the title Parameter changes via sysex Parameter changes and voice loading via sysex Apr 20, 2022
@probonopd
Copy link
Owner Author

probonopd commented Apr 20, 2022

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.

@dcoredump
Copy link
Contributor

Just started the work on this 😀

@dcoredump
Copy link
Contributor

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!

@probonopd
Copy link
Owner Author

Thanks for the update @dcoredump. This will be huge!

@BenZonneveld
Copy link

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.

@probonopd
Copy link
Owner Author

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.

@jrdooley
Copy link

jrdooley commented May 4, 2022

Fantastic news!

@BenZonneveld
Copy link

BenZonneveld commented May 4, 2022

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.

@probonopd
Copy link
Owner Author

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"?

@studionebula
Copy link

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.

@probonopd
Copy link
Owner Author

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

@studionebula
Copy link

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.

@probonopd
Copy link
Owner Author

Looks like we can close this as it has been implemented, or are any aspects not working properly yet?

@probonopd probonopd unpinned this issue Jun 5, 2022
@BobanSpasic
Copy link

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?

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

No branches or pull requests

6 participants