-
-
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
Smooth CC formula #48
Comments
So it's a straightforward lowpass filter with this constant then? Thanks for the investigation. For this one the nice part is that it's not modulated at all so it's much simpler.. |
Yes, I was not expecting anything more complicated.. |
Re-reading all of this, this is going to be a bit annoying I think. |
Yes but also it makes more sense implementation-wise. Btw these measurements are 1. pitchbend only, 2. ARIA I'll try to get a new set measurements based on cakewalk, and by use of CC values. |
Well except you can't really apply it per CC, since different regions might have different inertia parameters. You're kind of forced to compute it for each target. At least for the current state of the modifiers now it would be simpler to apply it after conversion 😄 |
You could still precompute it, per-CC and inertia and curve. |
For sure but then is it in general cheaper to apply a possibly nonlinear function (e.g. exp or log functions mainly) to a full envelope rather than building the envelope out of points from the nonlinear functions? You can do cheap multiplicative ramps using simd so right now I went with the latter. Note that having a "multiplicative" filter could be a way to solve this dilemma 😁 |
Not possible, however: since you will be repeating these identical instructions for all CC, you could SIMD then in "vertical" manner and handle the filters 4 at a time by SSE. (it's the same kind of vertical processing I hope to do to speed up |
Todo to finish implementation:
|
I have studied effects of
bend_smooth
, and I share some results.In SFZ specs,
smoothcc
under Modulators is a "see also" to opcodebend_smooth
.The experiment is to load a sine tone and modulate midi pitch bend with a ramp lfo.
The results were observed on spectrogram in real-time.
Then, it was matched to a faust program which plays a sine modulated with identical LFO and range.
The smoothing filter is one-pole LPF which is defined by a time-constant
tau
. (cf. faustbasics.lib
)pole = exp(-1.0/(tau*Fs))
These are approximate results measured visually.
tau
is observed starting at 0, varying +3 ms bybend_smooth
unit.The text was updated successfully, but these errors were encountered: