How to

Whatever is on my mind…

Max and Max for Live tutorials

Geek stuff…

 Snare drum synthesis:


The classic Japanese snare drum has two elements to its sound

  1. A pair of sine waves @1 octave apart make for the drum part
  2. Some shaped white noise for the snare…

First the body:

A message box sets the curve~ peak at 0.5 and its decay to zero at 5ms – so a 5 millisecond trigger pulse:

An svf~ in bandpass mode (third outlet) is triggered to generate the sine wave. The second inlet of the svf~ sets the frequency and the third is the filter’s resonance. It is the resonance that determines the tone’s decay. This is, more or less, what a Bridged-T circuit does in some very expensive vintage hardware drum machines.

But we need two of these, first we’ll put some gain control in place:

The live.dial’s second output is attached to the *~ object. The second output gives a 0.-1. output which is perfect for a gain attenuator. The 1. in the *~ object tells the object to use floats (decimals), otherwise all you will get is 0 and 1.

Next we add the second tone generator:

Note it is essentially the same as the first with the addition of * 2 object. This doubles the initial frequency so the second filter is 1 octave higher. Also note:

This makes a very simple crossfader. On the left hand side, 1 is subtracted from the output of the live.dial, giving -1. -0. The abs object makes all values positive, so: 1. – 0. This performs the function of the tone control.

Finally some noise:

Gain control is applied by a curve~ object.

Anyway… hope this proves useful….


Posted by Dave Elson in How to, 0 comments

The Lads: Snare

So I built a snare

Is still in beta

I’ll maybe go into details another day

Is built around a pair of resonant bandpass filters for the body

And a noise source for the tsshhh bit

I quite pleased with it for an old skool device

I haven’t decided how i’m going to market these yet – individual devices or a set

There are 4 Lads so far: 2 kicks, a hat and now a snare

They share similar controls and UI


Posted by Dave Elson in How to, 0 comments

The Lads

Meet The Lads:

  1. Bridged-T Network based kick drum
  2. Sine Waveshaper based kick drum
  3. Schmitt Trigger based HiHat

for old skool drum sounds

I found some problems with my Sequencer Clock – so I fixed that

And added some new functions which will find their way into an Adlais update too

I think they’re jolly spiffing…


A big shout out to

for their fantastic Max7 filter pack:

The Bridged-T kick uses their Sallen Key patcher as the core of its sound


More soon…

Posted by Dave Elson in How to, 0 comments

K-Teck Drummage

Some drum synths in alpha…

Posted by Dave Elson in How to, 0 comments

Kick Drum Synthesis TR-808 style


As you know I been thinking about kick drums:

If you don’t want a sample based kick there are a couple of common methods for synthesising them:

  1. use an oscillator – usually sine or triangle – as your start point with an amplitude envelope to control the decay length
  2. use a resonant bandpass filter triggered by an envelope and use the resonance to control decay length

both have their merits but i have to say i lean towards the latter

basically because i adore the depth of early Roland kick drums and the TR-808 in particular

so, how does it work?

i will try to show:

I’ve used the bang object to represent whatever MIDI/audio trigger you might want to use

The 1. in the message box triggers the adsr~ object – it will not work with just a bang as it requires a note on message

Decay is set to 4 ms with no sustain or release

the adsr~ object behaves as a trigger impulse for the filter – an equivalent of the TR-808 trigger logic although that is a more complex shape

The reson~ is a simple bandpass filter with gain set at 80, centre frequently at 50Hz and Q to 100 and the filter Q controls the decay of the kick drum

There are loads of descriptions of the TR-808 kick drum on the internet so if you are really keen i’ll let you search

What i will say, though, is that the TR-808 kick is not just a trigger followed by a resonance. There is a @3-6ms frequency sweep from somewhere above 100Hz to 50Hz on initial trigger which gives the kick some attack:

I have used the curve~ object to generate this

Note – I have used a message box to give the curve~ object its arguments:

initial frequency = 200Hz

final frequency = 50Hz

time = 5ms

Of course this only sets a basic emulation state and the curve~ object can be manipulated to generate non-linear curves usw…


All we need now is a decay control:

The number box at right is connected to reson~ right hand inlet which controls Q

As the output level of the filter decreases with increased Q i have kludged some control over the gain using the -20 into reson~ gain input – is quite close





So, there you have it, a basic filter based kick drum… I wonder how what I building is going…..

Looking forward….

Posted by Dave Elson in How to, 0 comments

Enough of clox… its time for drums…

I’ve been doing a kick synth

is a simple 808 type:

trigger a band pass filter whose resonance = decay

i been using Surreal Machines’ Ladder Filter to build it around

sounds nice…

I built an 808 hat too…

Prolly a drum machine + individual instruments

not sure yet

i’ll show the insides later…

Posted by Dave Elson in How to, 0 comments

Clox… a healthy ticker…

How to sync to Live’s clock for step sequencing:

Last time we spoke I said I would show a good clock that would stick to Live’s transport. Well, here it is:

This is a utility version of the Adlais 1.3.4 clock.

Of course, that picture doesn’t quite tell the whole story, but, the plugsync~ object is what makes this clock tick (thanks to Daniel from for explaining this to me). Plugsync~ reports what Live’s transport is doing, reporting Start/stop, bars, beats and stuff. The important outlet (for our needs) is outlet 7, which reports clock ticks.

1nd – Dotted whole note – 2880 ticks
1n – Whole note – 1920 ticks
1nt – Whole note triplet – 1280 ticks
2nd – Dotted half note – 1440 ticks
2n – Half note – 960 ticks
2nt – Half note triplet – 640 ticks
4nd – Dotted quarter note – 720 ticks
4n – Quarter note – 480 ticks
4nt – Quarter note triplet – 320 ticks
8nd – Dotted eighth note – 360 ticks
8n – Eighth note – 240 ticks
8nt – Eighth note triplet – 160 ticks
16nd – Dotted sixteenth note – 180 ticks
16n – Sixteenth note – 120 ticks
16nt – Sixteenth note triplet – 80 ticks
32nd – Dotted thirty-second note – 90 ticks
32n – thirty-second note – 60 ticks
32nt – thirty-second-note triplet – 40 ticks
64nd – Dotted sixty-fourth note – 45 ticks
64n – Sixty-fourth note – 30 ticks
128n – One-hundred-twenty-eighth note – 15 ticks

Knowing that there are 1920 ticks/whole note or 480 ticks/quarter note makes translating ticks to note values easy as:

All I needed to do was divide or multiply outlet 7 to get my clock ticking nicely:

This shows inside the p Maffs patcher…

The clock sel input takes the note value selected on the UI translated to multiplier values. I also used them to flip the switch so that values above 4n (which = 1) divide the ticks instead of multiply. This gives a count that always reflects Live’s transport, starting at zero when Live restarts. The modulo (%) divides this clock by the number of steps – although the high number is always 0 which needs fixing later…

I could have had one of these algorithms for each clock division but I can’t stand the mess… although I can see it being useful for seriously messing with the clock outputs (more on that another time).

The only other bits are adding a shift integer for (you guessed it) shifting the step sequencer, and a / object for a clock multiplier, so you can get some very long steps…

After all that there is a patcher for all the direction stuff which I’ll save for now (there are some unusual, randomish variants in Adlais, and I going to explore those some more in the future) and a swing patcher which is probably the most stupid way of implementing swing imaginable – but it works…


Posted by Dave Elson in How to, 0 comments

More Clox…. a quick and dirty ticker…

More Max 7/Max for Live meanderings…. Geek alert…

Last time I wrote about the counter based clock in Adlais Shift Register Sequencer:

how it works ok until you change it then return to 4/4 time. A quick google doesn’t help much either. At first I thought I should just find a way to reset it after each switch but you wouldn’t want to do that with your watch – it just proves it’s a crap watch…

Anyway, I said I had two solutions:

The first turned out to be a nightmare, not even a Sundial and I’m not going to show you, the second has a certain simple elegance…

But it is cheating really:

Here I got a Max multislider object for pitch control, it’s output multiplied by the Rangifier patcher, feeding a Clock patcher (The Rangifier just multiplies the 0 – 1 output of multislider to a useable MIDI note range)…

What’s inside the Clock patcher Dave?


It’s a live.step object… the standard Max for Live step sequencing object which I think is dead ugly, but it’s timing is pretty solid, see the standard StepSeqControl patcher:

What we get from this little setup is a nice simple step sequencer with rock solid timing, but accessing the clock between the transport object and live.step is onerous, and try applying a step shift to both the live.step and multislider simultaneously….

What it is good for is nice, quick pitch and modulation sequencing but i want a rock solid clock that allows me to intercept it at many points to produce a wide variety of timing effects… The question I had was ‘Where can i find the ticks for my clock from?’

A brief chat on Facebook and the answer was found, and the clue is in the question…

Next time I’ll tell all and I’ll release it in a significant free update for Adlais…


Posted by Dave Elson in How to, 0 comments

M4L: Thinking about clocks…

When building a Max For Live sequencer, clocks are a problem…

My ‘Adlais’ sequencer has a counter based clock:

The Metro object automatically synchronizes to Ableton Live’s clock, but only in that it counts upwards at the rate input – in this case 4n – from when Live’s transport is engaged. The plugsync~ object resets the clock when Live’s transport is stopped and restarted.

Well, that’s fine, you might say… and it is up to a point.

It is ‘in sync’ with Live’s clock, but not with Live’s transport, and that is a problem. If I were to set the number of steps in my sequencer to 5, step 1’s position will shift along the transport by on step per 4 beats, so:


Transport 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Counter 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1


If I then switch back to 4 steps, this happens:


Transport 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Counter 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1


Which is what is happening with Adlais

And renders my upcoming percussion sequencer useless

So far I have found two solutions, one of which is elegant, the other is stupid….

Answers on a postcard please

Really, i would love to know your thoughts…

Posted by Dave Elson in How to, 0 comments

Square Wave Sequencers…

Is what I thinking about

Or more accurately: Pulse Train Sequencers…

I got one working which uses a pulse wave as a gate for triggers from a clock

The other idea is to use two pulse waves with sync to keep the front edge of the pulse at clock

Anyway, the working one is here:

Posted by Dave Elson in How to, 0 comments