Hi, just tested anew: > > * When [playing WhySynth] from a MIDI keyboard, there's an audible > > delay > > between releasing the key until the note gets cut off. > > Hmm, I haven't observed this on my end, except that it would > be expected if your output envelope mode is AASRR or ASRRR, or > even AAASR with a 'hold' shape on the last segment -- all of these > would appear to be delays before the note cut off. didn't notice it again; I guess you're right and I did choose patches with envelope seetings you mentioned above. Sorry for the traffic. > > * Pedal hold gets recognized, but notes are only held until I > > release the last note. This way I cannot hold a note via the pedal > > and tweak parameters. > > Hmm, I can't reproduce this either -- sustain works fine from both > vkeybd and my KX88 MIDI controller. ?I'm really curious if you would > have the same trouble with Xsynth-DSSI or hexter, as their sustain is > based on very similar, but not identical code, and are well tested. > Something else you could try would be to edit src/whysynth.h and > define Y_DEBUG to be YDB_NOTE, then recompile, watch stderr > as you run it and see if the note on/off and sustain CCs are reaching > the plugin in the correct sequence. I did, some lines you'll find attached. BTW: Zyn does behave the same: Hold is recognized as long as at least one note remains active, but hold is lost as soon as the last note gets released. Further thing: My pedal does not necessarily send Hold on as a value of 64 or 127 but as arbitrary values between 64 and 127. The jack is a multi jack, I can even connect a swell pedal to it and assign an arbitrary controller number. Best regards ce whysynth.so y_synth_control_change: got sustain control of 0 whysynth.so y_handle_event called with event type 10 whysynth.so y_synth_control_change: got sustain control of 87 whysynth.so y_handle_event called with event type 10 whysynth.so y_synth_control_change: got sustain control of 125 whysynth.so y_handle_event called with event type 10 whysynth.so y_synth_control_change: got sustain control of 127 whysynth.so y_handle_event called with event type 6 whysynth.so y_synth_alloc_voice: key 67 voice 0x80e4128 whysynth.so y_handle_event called with event type 6 whysynth.so y_synth_alloc_voice: key 65 voice 0x80e4ec8 whysynth.so y_handle_event called with event type 7 whysynth.so y_synth_note_off: key 67 rvel 0 voice 5 note id 42 whysynth.so y_handle_event called with event type 7 whysynth.so y_synth_note_off: key 65 rvel 0 voice 6 note id 43 whysynth.so y_handle_event called with event type 7 whysynth.so y_synth_note_off: key 72 rvel 0 voice 3 note id 35 whysynth.so y_handle_event called with event type 10 whysynth.so y_handle_event called with event type 10 whysynth.so y_synth_control_change: got sustain control of 0