-
Notifications
You must be signed in to change notification settings - Fork 404
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Envelope restart point in monophonic play modes #824
Comments
Just as a sidenote, I wouldn't call it "legato" mode, I'd call it Reset mode, and then with options "Zero" and "Analog" (or "Current", but that might sound a bit confusing/ambiguous). Or, maybe best, should just be a single button called "Reset From Zero", which would be enabled by default (to preserve existing behavior). Also it should work in polyphonic mode as well, whenever an already sounding voice is reached. Say you have 8 voices polyphony, 8 sounding voices in their release stage and you play a new note, it should take whatever the envelope level(s) were for that voice and go from there. |
The poly mode trick will be hard; poly mode creates new voices and reaps old ones so it the a voice gets re-used it does not have the info about the prior voice playing in that slot. (Poly mode is also not a hard wall in surge remember; you can get to 10 voices in 8 voice poly mode in some situations) Agree on your rejection of legato mode as name. |
@baconpaul What do you think how complicated would this be to add? I was thinking adding this mode on RMB context for Play Mode parameter... Code hints requested! :) |
+1, that'd be sweet! |
So the way I would do this is
This one is tricky. |
OK a bit more context on exactly how to do this The action starts surge/src/common/SurgeSynthesizer.cpp Line 656 in 7c0d319
That block is killing the old mono voice (the find and uber_release) and starting the new voice (the (nvoice) constructor call) So what you want to do is
|
Add a new mode for the AEG and FEG where in mono modes you can retrigger the envelope start not from 0 / 0 phase / 0 charge but from a phase / charge which matches the envelope levels of the previously playing and stolen voice, if one is present (and start from 0 otherwise). Closes surge-synthesizer#824
Add a new mode for the AEG and FEG where in mono modes you can retrigger the envelope start not from 0 / 0 phase / 0 charge but from a phase / charge which matches the envelope levels of the previously playing and stolen voice, if one is present (and start from 0 otherwise). Closes #824
As first reported at https://www.kvraudio.com/forum/viewtopic.php?p=7368001#p7368001
In mono modes the envelopes (Amp, Filter and all the LFOs) should have a 'legato' mode which means when they re-trigger rather than retrigger from 0 they re-trigger from current envelope level.
This image explains it clearly
Open questions are
1: Where to put the control in the UI (In the LFO we could put it under bipolar for instance)
2: How to code it up (but should be pretty easy since in the mono modes you are on the same voice so you have all the data structures)
The text was updated successfully, but these errors were encountered: