-
-
Notifications
You must be signed in to change notification settings - Fork 58
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
Add modulation matrix #335
Conversation
There is some |
The commit 51b7322 ensures to always run the modulation source, even if no voice uses it. |
@paulfd this faces a problem with the smooth filter shortcut.. For instance I'm smoothing pitch CC at center 600, value 1200. What to do in this case? consider relative difference? |
You can remove it I think, these tests were not great and we can make better ones for the FlexEGs |
Hmm I'd say yes, but is it OK on both ends ? (e.g. for small values too) |
hmm, as a relative distance, how about: |
Yes that seems reasonable. |
The only remaining feature that I can see missing, it's a modulation affecting the depth of another modulation. |
useThisSource = (regionId == source.key.region()); | ||
|
||
if (useThisSource) { | ||
if (isFirstSource) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could shortcut here if depth == 0.0f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes not only you're correct, but there is a greater problem.
The source is supposed to be buffered per region or cycle, not have its generation output used directly.
This makes the source generate more than once if in use by multiple targets.
ie. make use of Source buffer
/bufferReady
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See a97f506.
Regarding the shortcut: a future consideration is that depth can be modulated.
When this is implemented, sourceDepth
=0 is an insufficient condition, one has also to check that depth is free of any modulations.
I'm sure I to have this idea in mind previously, but postponed it until making the depth modulation.
There is not an immediate benefit anyway, the source will have to implement a fast path in generateDiscarded
.
As CC as concerned, I believe the fast path is implementable in case of not smoothing, or smoothing near completed.
Modulation matrix update
This model is operational and it can handle CC.
Support
Not much tested yet, also I will clean old source which is made obsolete by this.
This will also make obsolete #326.
The CC list will be obtainable by inspecting matrix edges of CC source. Also it permits to have access to the target, and determine a useful name for the midnam item.