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

Real-time parameter control #80

Closed
probonopd opened this issue Apr 10, 2022 · 8 comments · Fixed by #98
Closed

Real-time parameter control #80

probonopd opened this issue Apr 10, 2022 · 8 comments · Fixed by #98
Labels
enhancement New feature or request

Comments

@probonopd
Copy link
Owner

It would be useful if changes to voice parameters would have immediate effect on already-playing notes.
This would be especially neat in combination with #63.

For some parameters this is already the case (e.g, volume), but apparently not for all of them. More investigation needed.

Do you perhaps know more about this subject @dcoredump?

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

https://narkive.com/6HNdPD06:3.358.923

My experience with sending real-time parameter values to the DX7 has
been that if you send the usual sysex midi data, the voice will reset
every time, causing a stutter in the sound if the parameter values get
changed while you are playing a note. The DX7II didn't have this
problem, and can have it's parameter values changed while being played
without any real problems.
In order to tweak parameters real-time on
the original DX7 without problems, you can use an undocumented
command. This lets you send midi commands to it that will mimic front
panel button presses. Only problem is, to tell it to change a
parameter value by a value of 20 would require telling it to pretend
that the + or - button was pressed... twenty times! At several bytes
per "press", the data adds up fast. Which means you can't update
values very fast. This undocumented command is also on later DX series
instruments, and is documented on them.

@dcoredump
Copy link
Contributor

Do you perhaps know more about this subject @dcoredump?

I hope I am getting the Reverb-Send-Mixer ready the next days. After that, I would like to implement parameter changes via SYSEX.

I have an idea how to arrange this, but I have to test it. There is a kind of voice refresh function available, which has to be called after a change.

@probonopd
Copy link
Owner Author

probonopd commented Apr 10, 2022

For parameter changes via sysex, I opened a separate issue.

This ticket here is about calling that voice refresh function when voice parameters are changed in the LCD GUI. Looking at Synth_Dexed, would one have to call doRefreshVoice(void); after each change? Or should it be sufficient to call setRefreshMode(true); once @dcoredump?

@dcoredump
Copy link
Contributor

I added a doRefreshVoice(); when changing parameters, so I hope this should be fixed now. Please check out the latest Synth_Dexed for trying.
(I hope this fixes also #91)

@dcoredump
Copy link
Contributor

dcoredump commented Apr 16, 2022

Or should it be sufficient to call setRefreshMode(true); once @dcoredump?

setRefreshMode() is for setting the note refresh mode...

I have added a doRefreshVoice() to some of the methods of class Dexed.

@probonopd
Copy link
Owner Author

Thanks for adding this capability @dcoredump. However, I have build issues for 32-bit RPis with the latest Synth_Dexed. Could you please have a look?

@dcoredump
Copy link
Contributor

Argh - don't know why this happens just now. But I hope I have fixed it in current Synth_Dexed. Please pull and try again. Compilation works for me with RPI[1234].

@probonopd
Copy link
Owner Author

Works! 👍

Thanks @dcoredump and @rsta2

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

Successfully merging a pull request may close this issue.

2 participants