davy7125 / polyphone

A soundfont editor for quickly designing musical instruments.
https://www.polyphone.io
GNU General Public License v3.0
370 stars 49 forks source link

[BUG] Polyphone allows to modulate data increment #202

Closed spessasus closed 4 months ago

spessasus commented 4 months ago

While sfspec24.pdf page 40 doesn't mention data increment and decrement specifically, it says that data entry LSB and MSB cannot be modulated. Same with Registered parameters.

It only makes sense to exclude data increment and decrement as well. (How would that even work?) But currently Polyphone allows us to modulate data increment and decrement, which can lead to unexpected behavior.

image

Also thanks for fixing the bugs I've reported so far :-)

davy7125 commented 4 months ago

Extract of the specifications:

Note that in this case where C is set to 1, index values 0, 6, 32, 38, 98 through 101, and 120 through 127 are ILLEGAL due to their nature as a MIDI functions rather than true MIDI controllers. Also, index values 33 through 63 should be reserved for LSB contributions of controller indices 1 through 31. If these index values are encountered, the entire modulator structure should be ignored.

So I remove all of them, including data increment / decrement.

You are welcome, any help is appreciated