I’ve been working on thees two modules (Flux Capacitor and Wormhole) for quite some time.
They both use the technique of modulating the delay time of delay nodes to achieve phase modulation as an audio effect.
The Wormhole takes parts of the input signal and plays them faster or slower to change their pitch.
This is achieved by modulating the delaytime of delay nodes with ramp LFOs.
To get rid of the click thats caused by the ramp LFO resetting, the Signal runs through two delay nodes that are modulated by ramps that are offset from each other by 180 degrees. A third LFO crossfades between the Signals of the two delays so that you only hear the signal of one delay when the ramp LFO of the other one resets.
I/O
Input
Signal Range
Notes
-1 to 1
Audio in (left and right)
1/octave
Can be used instead of the ‘oct’ and ‘freq’ knobs, to control how much the parts of the signal are pitched up or down (0 → no change, 1 → one oct up, -1 → one oct down,…)
clock
Can be used instead of the ‘speed’ knob to control the rate of the ramp LFOs. If a clock signal is coming in though this input the speed is controlled by this signal. If you change the value of the ‘speed’ knob the speed is controlled by the value of the knob.
Output
Signal Range
Notes
-1 to 1
Audio out (left and right)
Controls
[Knob, Button]
Function
Notes
Feedback
Controls the amount of the effected signal that gets fed back into the uneffected signal.
Width
Spreads apart the phase of all LFOs for left and right.
Dry / wet
Level (out)
After the dry/wet mix
Soft clip
Determines if the signal runs through a spline that soft clips it (after the Level (out)) .
Pitch-change-control-signal-switch
Determines if the signal from the 1/oct input or the signal from the ‘oct’ and ‘freq’ knobs is used to control how much the parts of the signal are pitched up or down
Octave
Controls how many octaves the parts of the signal are pitched up or down.
Frequency
Adds a value between 0 and 1 to the control signal from the ‘oct’ knob.
Speed
Controls the rate of the ramp LFOs.
Blend
Controls how smooth the crossfading between the pitch-changed signal parts is.
LFO rate
Controls the rate of an additional sine LFO.
LFO depth
Controls the modulation depth of the additional sine LFO.
Sample and Hold Frequency
(In v1.1) Reduces clicks and unwanted pitch shifts when changing the amount of pitchshifting. (changes the amount of pitchshifting of a signal part only when it is completely faded out.)
Displays
Meter
Displays
Notes
Pitch-change in 1/oct
displays how much the parts of the signal are pitched up or down. The ‘N’ (negative pitch) light is turned on when the signal is phase modulated through zero, witch means that it is played backwards
Hey, that’s a great module! The sound reminds me of the eventide harmonizer with it’s feedback turned up. Great UI design also. I like the way the switch shows when you have the 1/oct input active. The internal SVG logo is also a nice touch too. My only suggestion would be to scale the knobs to be 0-1 (I have already done this in my personal copy which I was playing around with today) so that you can modulate knobs like octave and speed with standard sequencers and LFOS.
I believe that all the current versions of Audulus now support the use of clamped knobs rather than the original version. I would recommend that you consider using the clamped version going forward and do your scaling internally. By using the clamped knob you can insure that an incoming modulation signal will always be between 0 and 1. This can prevent unanticipated results (I blew a speaker by accidentally modulating a feedback control over 1 causing a run-away feedback loop). Additionally I think that the clamped version will be what’s available in version 4.
@biminiroad: by clamped knobs, do you mean using knob nodes and doing all value scaling adjustment post-knob (as opposed to setting the knob min and max values in the knob settings)?
The knobs are clamped in that they have an internal clamp(x,0,1) expression - this makes it so you can’t change min and max, and all modulation signals going to it are scaled to that. It’s sort of like applying a 0 to 5v modulation standard across all Eurorack modules (if we were only so lucky - some are -5 to 5 and some are 0 to 10 also).
Yeah I guess Taylor forgot to add it to iOS version - you can just copy/paste it into your patches and use it from there. It’ll get added at some point I’m sure.
I made a patch where I combined the wormhole with a prototype audio looper I made some time ago. looper synth.audulus (1.1 MB)
The idee is that you record some sound e.g. your voice (in the pitch of a0) into a looper, so that the looper puts out a continuous sound (in a0). This signal is then effected by an instance of the wormhole that changes the pitch of the signal depending on the 1/o input which is connected to a keyboard node.
That way you can play the recorded / looped sound with the keyboard.
I mainly use this patch to create some interesting pads from my voice an random stuff thats lying around.
A downside of the patch is that everything you record into a looper is lost when you close the patch, because the loopers are basicaly just a bunch of delays with 100% feedback.
There is some clicking I get when pitch shifting a guitar. It seems as though a slight slew applied somewhere internal might smooth it it out. Any thoughts?
Applying a slew to the octave signal doesn’t realy eliminate the problem, it just causes some wierd pitch changes.
However I’ve found another way to solve the problem.
The solution is to Sample and Hold the octave signal of a signal part when it is completely faded out.
This gets rid of all clicks and unwanted pitch shifts when changing the amount of pitchshifting.
A side effect of this feature is that there is some delay until the pitch change is applied.
Here is a new version of the Wormhole with this feature: Wormhole (v1.1).audulus (176.7 KB)
You can activate it via the ‘S&H freq’ button.