K-Teck News

Whatever is on my mind…

Product updates and news

Max and Max for Live tutorials

Geek stuff…

More Little Gem…

Little Gem v0.0.9a


I been thinking about an 8 step trigger sequencer 

where the controls are reduced from 8 switches to 2 or 3 knobs

but how to populate the slots?

i was talking to the ICT teacher at work

drawing my idea on a whiteboard - lots of logic gates an ting

he said - 'looks like binary' - ta da.... (drum roll) i love those sudden lightbulb moments

well here it is a bit more fleshed out than the last version

Posted by Dave Dove in K-Teck News

 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 Dove in K-Teck News

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 Dove in K-Teck News

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 https://www.surrealmachines.com

for their fantastic Max7 filter pack: https://www.surrealmachines.com/max-live/

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


More soon…

Posted by Dave Dove in K-Teck News

K-Teck Drummage

Some drum synths in alpha…

Posted by Dave Dove in K-Teck News

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 Dove in K-Teck News

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 Dove in K-Teck News

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 http://ldmdesign.org 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 Dove in K-Teck News