Pendulum

A pitch and envelope CV generator that turns clock dividers into melodies and rhythms.

This ZEBU patch is meant for Modular/Eurorack; it doesn’t generate any sounds on its own, but it generates 1V/Oct pitch on 2 outputs and corresponding Envelopes on the other 2 outputs.
It’s based on a fun modular trick where you mix the outputs of different clock divisions together and send it through a quantizer to create melodic pitch CV. This patch does that, but on steroids; you can select up to 5 different divisions, mix them with a relative WEIGHT and invert their starting value (0 or 1), and you can route each clock division to either output A or B or both.
To make things more coherent you can select a total pattern length (like 32, 64, or 24 steps), or if you want a more generative feel just let it run free without ever resetting.
Set your quantizers to taste, hook up some external oscillators and have fun!

=====

[OVERVIEW]
-Input/Output: Stereo in/Stereo out (unaffected dry through)
-CPU load: Around 75%
-Build: Initial version built with firmware 2.80
-MIDI: No MIDI in this patch. If controls are set to CC’s I use CC channels 21/36 (see CONTROLS section for details).
-CV Inputs:
1) Clock CV
2/3/4) Unused
-CV Outputs:
1) Pitch 1 (1V/oct)
2) Pitch 2 (1V/oct)
3) Env 1 (envelopes are triggered only when Pitch1 changes)
4) Env 2 (envelopes are triggered only when Pitch2 changes

[REVISIONS]
1.0: Initial patch.

[CONTROLS]
Main controls are on the “UI” page, some options can be set on page “UI2” (see below for a “Picture Manual” in the comments). The Stereo Output module with gain parameter is on the “IO” page.

On the main UI page, each row is a single clock division, and has the following buttons:
DIV (steps through different divisions for this row; from RED to CYAN is 1/2/3/4/5/6/7/8)
LED (just an indicator of when this output is high or low)
WEIGHT (sets how much this row affects pitch output 1; works inverted for pitch output 2)
INV (inverts the starting phase of this row; with INV off it always starts high, with INV on it starts low)
TO OUT 1 (toggle to route this row to output 1; WEIGHT sets how much this row affects pitch output 1)
TO OUT 2 (toggle to route this row to output 2; WEIGHT works inverted for pitch output 2)

On the second UI2 page:
CYCLE 8/7/6/5/FREE (toggles the base length of the pattern; FREE means it never resets)
X1/X2/X4/X8 (toggles a multiplier for the base length; for example: CYCLE 8 and X4 gives a 32-step pattern)

CLOCK (internal LFO clock)
SPREAD (sets the spread of generated pitch)

QUANT 1/2 (set your scale and root note for both pitch outputs)
ADSR 1/2 (set your envelope attack/decay times for both env outputs)

ZEBU LEFT button = Reset all rows.
ZOIA LEFT / MID / RIGHT stomp = Unused.

=====

[PATCH STRUCTURE]
This patch is way more complicated than it should’ve been, because I built my own clock dividers from scratch out of sequencer modules. The reason is that the clock divider module is ‘too smart’ for its own good: if the incoming clock (tap tempo) stops, they just keep on going (whereas I want the to ONLY advance when a new clock pulse is received, just as an analog clock divider would), and if you have multiple dividers driven by the same clock they often go out-of-phase from each other when the tempo is changed. I don’t like them. So, I built my own! :)

These clock dividers are sent through a Multiplier (controlled by WEIGHT) and then summed to another Multiplier module (controlled by SPREAD) and then into a quantizer. This 2nd Mult and Quant is repeated for output 2. The WEIGHT is interesting; it determines how much that row affects pitch output 1, but it is inverted for pitch output 2. So at 0.5 it evenly affects both outputs, but at lower values it affects output 2 more than 1, and vice versa. This offers nice creative combinations, even when rows are sent to both outputs 1 and 2. The SPREAD control affects both multipliers, affecting the maximum height of all generated pitches.

The Envelope outputs only trigger when a change is detected in pitch 1 or 2 outputs. This is done with a set of comparators and a S&H (check the Tips and Tricks doc for that one).
Then you’ll have to send it all to an external oscillator and filter/VCA (or add some internal voices; there is CPU left).
Not much else worth mentioning here, I guess!

=====

[TIPS/TRICKS]
>>> Start by plugging the Pitch CV outputs to an external oscillator, and the Env outputs to your VCA/VCF/LPG or something.

>>> Now start changing the divisions (DIV) of each row and setting WEIGHT of each row to taste.
Don’t forget; the right-most columns determine which outputs are affected by each row!

>>> Setting CYCLE to 8 or 6 (and the multiplier to X2 or X4) gives more regular, repeating patterns, while setting CYCLE to FREE gives a more generative feel.

[THOUGHTS/IDEAS/PLANS]
This patch is done for now, no future plans, first gonna play around with this one alongside the modular synth!

If there’s any bugs/questions/remarks/requests or suggestions for improvement, please let me know!
Enjoy!

(Image: Manuel Martini)

2 comments on “Pendulum
  • Leave a Reply

      1693 PM
    • Platform:
    • Category: Composition Sequencer
    • Revision: 1.0
    • License: Do What The F*ck You Want To Public License
    • Modified: 2 years ago
    • Views: 1448
      Likes: 2
      Downloads: 485
    Download
    Chat