probonopd / MiniDexed

Dexed FM synthesizer similar to 8x DX7 (TX816/TX802) running on a bare metal Raspberry Pi (without a Linux kernel or operating system)
https://github.com/probonopd/MiniDexed/wiki
962 stars 72 forks source link

Modulation Range Error #562

Open Banana71 opened 7 months ago

Banana71 commented 7 months ago

If any modulation range is changed, the modulation can no longer be heard; the modulation only works again after blindly saving and reloading the performance. You can easily try it out with the performance 000011_SeventyOne, for example. Simply turn the modulation wheel all the way up until the sound has a lot of vibrato, then change the modulation range for the modulation wheel from 99 to 98 in the settings of TG1 and TG2 and you can no longer hear vibrato. The problem occurs with all types of modulation. (ModWheel, Breath Controller, Foot Controller, Aftertouch)

probonopd commented 7 months ago

Thanks for reporting this issue @Banana71. Do you happen to know whether this works correctly in Dexed on the PC?

Banana71 commented 7 months ago

In Dexed everything works as it should. Range changes are applied immediately, even when tones are pressed and held.

probonopd commented 7 months ago

@dcoredump can you reproduce this on MicroDexed?

dcoredump commented 7 months ago

I have to check this, give me some time. I think I know what's going wrong...

Thanks @Banana71 for deep testing and finding problems I never thought they may exist 😁

dcoredump commented 7 months ago

I created a PR. Hope this fixes the problems. Cannot test - no keyboard right here.

Banana71 commented 7 months ago

Hi Holger @dcoredump , Unfortunately the error is still there

dcoredump commented 7 months ago

Hi Holger @dcoredump , Unfortunately the error is still there

Hmpf... I found that the (wrong?) calls to controllers.refresh() were additionally also inside Synth_Dexed :( Can you try this version of Synth_Dexed?

probonopd commented 7 months ago

@Banana71 please try this build: MiniDexed_2023-11-20-8d1e592

It is built using the fixed version from the posting above.

Banana71 commented 7 months ago

The error has changed. I set the Mod.Wheel to MAX, the sound has full vibrato. After adjusting the Mod.Wheel range from e.g. 99 to 80, the vibrato remains at MAX and the vibrato stops completely when you move the Mod.Wheel. In other words: you can adjust the range but the modulation remains at the old value. After moving the Mod.Wheel the modulation goes off and can no longer be restored.

dcoredump commented 7 months ago

Thanks for testing!

Ok, I need to get my MIDI keyboard from the rehearsal room to my lab at home for deeper inspection. I hope I can try to dive in deeper at next weekend.

dcoredump commented 6 months ago

Hi Peter,

now I got some time for testing this with MicroDexed (see this video). On MicroDexed it works as expected. So the problem may be located inside MiniDexed?

Regards and merry xmas, Holger

Banana71 commented 6 months ago

Thank you Holger for your effort.

Merry Christmas to you all 🎄 Peter