SFZSynth::noteOn() calls SFZVoice::stopNoteQuick() if a note is repeated and not playing one shot mode. Why is this?
Because stopNoteQuick() initiates a 10 ms release, this causes a noticeable dip for quick repetitions of notes or chords with longer release times. Shouldn't SFZVoice::stopNoteForGroup() be called instead? Then the current behaviour will be retained if off_mode is set to fast (the default), but the standard release portion of the note will be entered if the off_mode is set to normal
The relevant code is here:
SFZSynth::noteOn()callsSFZVoice::stopNoteQuick()if a note is repeated and not playing one shot mode. Why is this?Because
stopNoteQuick()initiates a 10 ms release, this causes a noticeable dip for quick repetitions of notes or chords with longer release times. Shouldn'tSFZVoice::stopNoteForGroup()be called instead? Then the current behaviour will be retained ifoff_modeis set to fast (the default), but the standard release portion of the note will be entered if theoff_modeis set to normalThe relevant code is here:
SFZero/module/SFZero/SFZero/SFZSynth.cpp
Line 53 in 90ee481