Functionality related changes:
- Processing loop found and fixed. Possible bug in original DSSI version processing loop found and fixed. Events which occur in last 64 samples of sampleFrames were not processed caused by "if else" statement.
- Fixed: Reducing sample rates above 44100Hz, for example 96000Hz to 48000Hz, made reverb crash the plugin. The cause was reverb's allpass and comb bufidx which should have been set to zero when buffer size changed.
- Fixed: Mono playmode stuck held-key. Mono playmode held-key can get stuck if a noteoff message for the held key is not received under very fast playing. Pressing the key which was held releases the key, if you can find it. But since it is kind hard to find, I made various functions reset it. NoteOff resets it. SoundOff resets it. Changing patch resets it. Changing playmode resets it.
GUI related changes:
- GUI updating glitch fixed. Tuning, playmode, and polyphony sliders jumped around showing old values if a patch was selected from the patch drop-down menu.
- Improvement: SetProgram updates GUI more efficiently. SetProgram recoded/simplified to update GUI more efficiently. Pretty complex since there are 5 ways a setProgram message can be generated from various GUI controls including Host setProgram message. Testing plugin on slow Pentium 2 helped. Probably no noticeable difference on a fast computer.