With the 0.4.x firmware and new local routing abilities, I feel like now is a good time to make a humble request for a new basic unit: the tuned delay line.
Delay lines are of course used all over in DSP, but are particularly useful for stuff like resonators, karplus-strong, and other physical modeling techniques. These sorts of things are currently possible, but not in a pitch-accurate way that tracks V/oct. To quote @odevices himself:
I’d love to turn the new feedback’y glory of 0.4.x into a tuned instrument. Bonus if it can do some kind of magic to automatically compensate for the 128 sample buffer delay.
Oh, I’ve tried. Everyone in that Karplus-Strong thread tried. The thing is, it’s very fiddly (if not impossible) to get the correct scaling dialed in for accurate pitch. That’s why it was ultimately concluded that a C++ layer unit was the proper home for such a thing.
but…have you tried with the v\oct to seconds unit? i don’t see it mentioned on the KS thread, or it is only a new name for the octave to volt unit?
i tried yesterday to build a custom unit around the delay unit with v\oct to seconds, with filtered noise , impulse and fb as exciters (with individual levels) and it seemed to track correctly by ear but i haven’t tested it with a tuner or stuff like that. (it sounds great by the way!)
sorry if this is redundant
@hyena I can’t reproduce your results. What I get is nowhere near in tune. Care to post your patch?
I suppose [V/oct to Seconds] would work if there was some way to multiply the output value by 1000, since all of the delays take milliseconds, but the conversion unit outputs seconds. Even when I you crank the modulation gain all the way to 10.00, it’s only 1/10 of the way there.
Is there some way of drastically multiplying signals that I don’t know about?
I figured it out, thanks fellows. Using 0.3.25, I needed to set the delay’s time to 0ms for it all to track correctly. I mistakenly thought that this delay value could be used as some sort of transpose or something.
I’m looking forward exploring this further.
I still think there could be value with a custom delay unit that is optimized to take the full -10V and +10V inputs and accurately convert to delay time while compensating for the feedback buffer size with the new 0.4.x features.
Just now switched back over to 0.4.03 to create a similar patch but using the new local feedback mixed into the delay. Even with the delay set to 0ms and being modulated by the [V/oct to Seconds], the tracking is off. I suspect it’s the 128 sample delay that is screwing up all the math. Am I right? Is there a workaround?
what i don’t get is why there is this difference. i mean, with the trick of custom units and using custom controls to route signals we don’t have the 128 samples delay but we get the 1 sample delay? why is this? this is also feedback.
anyway this reminds me a suggestion for @odevices re: new custom controls. perhaps it is something you already planned, but i’d like to have the option to show\hide single custom controls in order to bury the access to those we use only as routing and that the end user is not supposed to fiddle with.
Unfortunately, in your patch, I do not think the inter-unit feedback path (via the Excite>Delay) is producing any pitch. Only the intra-unit feedback path of the Delay unit is producing pitch. I verified by lowering the internal feedback gain of the Delay unit from its current -2dB to -36dB and all I heard was colored noise.
In fact, digging deeper, I discovered that you have essentially choked the inter-unit feedback path in the Fb Mixer inside the Excite chain. The Fb Mixer gain is -10dB, and inside this mixer, the Limiter’s pre-gain is set to -4dB and the gain on the VCA is 0.28. So basically the inter-unit feedback path will never have a loop gain greater than about -18dB, way too small to hear resonance. If you bump these up so that the total loop gain is closer to -2dB then the resulting resonance can be heard but it does not track V/oct as expected.