Replies: 7 comments
-
Hi. Thanks for the report. This is an intended behavior, but it's better to change. I'll work on it. Following zip contains a possible fix. Please let me know if it removes click or not. Edit: I'll work on other plugins after confirmation. Edit2: The zip contains VST 3 for Windows. |
Beta Was this translation helpful? Give feedback.
-
Thank you! The clicks are gone now. |
Beta Was this translation helpful? Give feedback.
-
Thanks for confirmation. I'll work on the rest. The root cause is an incomplete implementation of VST 3 note event on DAW side. Last time I checked, Live, REAPER, and Studio One were sending MIDI note number as VST 3 note ID. It seems that Bitwig is also doing this. On my plugins, the intended behavior was to control the click with note ID. Typically, note ID changes for each note, but if a DAW is capable to set specific note ID, then we could have an additional expression. The rest of this comment is documentation. You can ignore it.
I guess this is a good time to document the behavior of note ID and its purpose. In my opinion, VST 3 is doing the right thing here, and this is a shortcoming of MIDI specifications (both version 1 and 2, last time I checked).
Consider following sequence of note events. Time flows from top to bottom:
This is ambiguous because we can't know which note-on corresponds to which note-off. Possible combinations are:
With note ID, the sequence of note events changes to the following:
Now that we have ID for corresponding note-on and note-off, there's no ambiguity. Only possible combination is:
In MIDI, MIDI channel could be used as note ID. However, 16 channels aren't sufficient in my opinion. In FL Studio, note ID is an incremental counter. The ID goes up by 1 for each new pair of note-on and note-off. |
Beta Was this translation helpful? Give feedback.
-
The fix was to change the following line: to: if (notes[ndx].state == NoteState::rest) { |
Beta Was this translation helpful? Give feedback.
-
The fix is applied to other polyphonic synthesizers. @nekotaro6, would you be able to confirm the fix? Below is a download link. Gain envelopes of SyncSawSynth and IterativeSinCluster are changed to reduce the click. Following synths can be ignored.
Click is hard to notice on ClangSynth and CollidingCombSynth because the texture is added by delays. Testing of delay based synthsClangSynth
CollidingCombSynthIt's hard to distinguish the click.
|
Beta Was this translation helpful? Give feedback.
-
I can confirm, that on all synths provided, the click issue is fixed. Thank you for your work! |
Beta Was this translation helpful? Give feedback.
-
@nekotaro6 Thank you. The changes are released as version 0.65.0. Edit: I'll leave open this discussion. If anything is left, feel free to add a comment. |
Beta Was this translation helpful? Give feedback.
-
Hello. Here is something I noticed (not sure if it's a bug or not):
In some DAWs, polyphonic synths produce a click when the same MIDI note is repeated. Perhaps, there is something going on with voice being cut too abruptly.
This happens in Reaper, Ableton Live, Bitwig (although I checked in Live and Bitwig a while ago).
In FL Studio and Cubase there are no clicks.
Environment is Windows 11, 256 buffer, 48k sample rate.
Observed in: EnvelopedSine, IterativeSinCluster, CubicPadSynth, SyncSawSynth (perhaps some others too).
Attached a video demonstration in Reaper with EnvelopedSine and CubicPadSynth.
In EnvelopedSine it's easy to reproduce by choosing preset LongDecay and turning Phaser mix down.
Note, that if
Unison
is enabled in EnvelopedSine, click occurs only in left channel.In CubicPadSynth turn Gain Envelope Attack up.
While this is not something critical, I wonder if a fix can be possible?
2024-11-14.20-18-21.mp4
Beta Was this translation helpful? Give feedback.
All reactions