Godfried’s Algebraic Clock Generator

One of Godfrieds track types is being a clock generator thus generate periodic trigger pulses somehow dependant to the master clock. You got it, “Clock Divider” or “Clock Multiplier”

The classic Clock Divider divides a master clock by a given number, mostly a perceived musically usefull. So it generates a trigger every 2, 4, 8…etc master clock beats, some do even weired things like uneven numbers. Similar goes for Clock Multipliers that mostly generate 2, 4, 8… etc evenly spaced triggers for one beat of the master clock.

But what about Polyrhythms, which means uneven or even prime fractions off the classic musical timing, thats based on powers of 2 ( if you don’t to evil things like triplets ) ?

So here is what Godfried does, you might want need to remember some basic algebra from way back in school.

Godfried doesn’t differntiate between Divider and Multiplier, it uses an Algebraic Clock Generator, that calculates the tracks clock in respect to the internal master clock (the one that you set by the Tempo parameter in the Clock Menu).

It generates a Trigger pulse every n counts of a fraction of the master clocks beat by using “Counts” and “Fraction” parameters (numerator and denominator mathematically speaking).

Here are some examples:

Counts = 4, Fraction=1 generates a trigger every 4 beats of the master clock – a classic Clock Divider

Counts = 1, Fraction= 4 generates 4 triggers for every single beat of the master clock – a classic Clock Multiplier

Counts=7, Fraction=2 generates a trigger pulse every 3.5 beats of the master clock – not sooo classic anymore….

Counts=13, Fraction=7 generates a trigger pulse every 13/7 beats of the master clock, that is a 0,4642th note given a 4/4 bar on the master clock which means a trigger every 0,9285s with a master tempo of 120.00 bpm. No sign of classicness anymore, huh? Instead severe Polyrhythmitistm.

Please note, that the Fraction parameter goes all the way up to 32, so it divides a beat of the master clock into 32 slices – thats a 128th note if you consider a 4/4 bar. Please further note, that Counts=4 and Fraction=8 is the same as Counts=1 and Fraction=2. And so on, remember?

Since a digital clock is always quantized rounding errors might occur. And since i know you clever modularists will do self playing patches, that last forever and these tiny weeny fractions will add up after some days rendering your art offbeat – whatever offbeat means in polyrhythms – these are as evenly distributed as possible to the single steps (Counts).

Meet Godfried, the PPG

Above the prototype of Godfried, the PPG. PPG means Polyrhythmic Pattern Generator – not what you were thinking.

The story behind goes something like this: i LOVE selfplaying patches. But i was badly lacking an elegant Master Clock Module with nice big start and stop buttons. OK, actually i have one, but its a bit to big to lug around. So i decided to make one myself, that narcistically fits my needs: BIG Buttons for my ever aging Wurstfinger, easy to to set up, best with a nice display, memory for the patches, as small as possible and most important: a precise timing. Did i say i am a timing afficionado? And no way i would want to dispense the Circlon’s phantastic PRH feature.

And after a “bit” playing around it developed into this:

A 30 bpm – 300 bpm Master Clock with +- 0,0001s accuracy, that can be synced externally (as though i would not recommend this. Its meant as Master Clock / StartStop module in the end….)

6 Trigger Channels driven by the Master Clock, that can play either

  • command Signals like Start, Stop, Reset etc….
  • Clock Signals derived from the Master clock
  • XOX style sequencer patterns up to 64 Steps
  • Euclidean sequencer patterns

All of the above (well, except the command Signals….) are real polyrhythmic, so your pattern with x steps will play the same time as y beats from the Master Clock. Trigger Outputs are +8V.

Additionally (as there was an unused but nice D/A in the used Teensy 3.2 board, 2 unused OpAmp cells and some free PCB real estate…) there is a CV track that plays a CV pattern of up to 64 steps, also polyrhythmic and possibly quantizeable (yet to implement). CV ranges from 0-4,85V with 12 Bit resolution.

As soon as i figure out what swing means in a polyrhytmic context i’ll also implement this – if you have any ideas about this i’d be pleased to hear from you!

A crispy 128×64 OLED allows for a nice graphical user interface, that makes editing easy despite the fact there is only a single encoder plus one “Escape” button and a 512k eeprom provides plenty of memory. I managed to squeeze all of this into 6HP.

Currently i built the prototype in the Pic above and are in the stage of completely rewriting the Firmware to accomodate Data Structures to possible future features. Or – seen more realistically – clean up the mess from the brainstorming phase.

A new revision of PCBs is already ordered and as soon as i consider the Firmware as good enough DIY kits for this will be available.

Feel free to share your thoughts here, or – if you are brave – apply as a BetaTester. But only if you are *really* brave.

2021 will be better….

OK, its been a bit since i last posted here. For the last 7 years i was kinda distracted from this little project by life, the universe and everything else.

The good about 2020 was i sorted out some things, learned a tad about this and that and finally had some time to go back to the drawing board, finish a thing or two where i left them and start some new projects.

Coming up in January are these two here:

Stay tuned for more information coming up soon.

Oh, and all the best for 2021 for you!


First all the credits for this idea go to Alex Drinkwater (toneburst), who had the idea to generate CVs from Perlin Noise.

What the hell is Perlin Noise ?

Ken Perlin was looking for a simple approach to generate random looking Textures for Computer Graphics. Just using Noise (Random) to color a Pixel leads to something not very pleasant that just looks like grey from the distance because the difference of 2 adjacent Pixels is basically random. The Brilliant idea now was to use the random values in a Grid and interpolate between these random Set Pixels in a pleasant way. Pleasant is whatever looks good to you, a linear interpolation won’t look really good as it has a discontinuity in the slope at the random colored Pixel, so normally a more sophisticated smoothing algorithm is used.

2D Perlin Noise






Heres a good description from some more clever guy….

So how do we get nice Control Voltages from this ?

The Perlin Pattern Generator (which i will call from now on PPG – i always wanted to make something using this Letters……) has a 2 Lists of random Values, one is fixed and common to all PPGs, the other one can be recreated by User request.

As it is not feasible with the chosen PicAxe hardware platform to directly operate  on this random list to generate CVs you first have to chose a subset of the list and render the interpolated noise curve into RAM. You have 2 parameters, [LOCATION] and [RANGE] that determine your set of random values and you can manually render this into RAM. The curve is rendered so it wraps around and linear interpolated.

Alex insisted on having a fixed set of random values built into every PPG so you can recreate a given sequence, i insisted on having a random source so we now have both.

Now that you have the interpolated noise curve in RAM you can easily generate CVs from here, the PPG has – just like a classic sequencer – a CLOCK and RESET Input, it will generate a new CV whenever a Trigger Pulse on the CLOCK is detected and will happily reset to the Initial Position when RESET is triggered.

The CV itself now is determined by the [START] and [LENGTH] Parameter. START indicates where the Start/Reset position is, LENGTH determines how many steps you make until you reach again the Start Position. LENGHT can be quantized to full STEPS, so the Sequence repeats every N Steps or to Fractions of Steps or even totally floating.

START and LENGTH can be realtime modulated by CVs.

If you are confused, this might clarify things a bit:

Perlin Pattern Generator

When will this be available ?

Sometime soon. Whatever soon means.


Released today: The RAZMASYNTH VII Sequencer

VIII is a simple 8 Step CV + Trigger Sequencer with 8 Modes (forward, backwards, forward/backward, pendulum, crab, crawl, random and brownian movement). Benoît from Razmasynth struggled a bit with a classic CMOS based design so I helped him out using an old Idea of mine to totally simplify the hardware design which boils down to a single PicAxe 20X2 Chip, a single TL072 OpAmp as output buffer, 2 2N3906 Transistors as Input Protection for the PicAxe and some passives. He brilliantly forged my farnsworthesque sketches in hardware, much faster and better than i could ever do. Ill explain the Hardware and Software Design in detail in another Article, for now you should order one – while they last.