Syntə RSS repo @m 🎶 say hi!
back

15/10/2025

How to Syntə

you may have noticed that Syntə has no sequencing - no way of putting in a list of numbers/notes/names to play a series of sounds. This is deliberate.
You may find yourself asking - so how the hell am I supposed to use this to make music?

good question!

Admittedly, it was never designed to make music, certainly not in any conventional sense. Which might seem a bit strange. The concept was more about just, y’know, making sounds.
However, it turns out that music is a type of sound so we’re all good hehe.

sequencing

Lot’s of live coding languages offer this, if not nearly all of them.
but there was something that didn’t sit quite right with me about it.

I mean, sure it’s a useful and quick way of writing music - you define a series of notes or events and play them in a cycle.
well, I didn’t even want to be trapped in a cycle either :)

other things Syntə doesn’t have

I’ve never really liked the idea of envelopes, especially the adsr kind. For me, very few sounds are even that kind of shape. I used envelopes when designing/prototyping analog synths - but I found really that there were only a few shapes needed: a slow building/decaying one, an on then off one, and a exponentially decaying one.
notes - do we really need them? Isn’t the idea of the western 12 tone equal temperament notes a bit limiting? plus long ago I have discovered pure ratios aka just intonation and liked the idea of that in particular.

i’ve listened to your bandcamp and I can hear notes - what gives?

ok, so let me flesh this out a bit.
there is something arbitrary about sequences - you just put in a list of values and off you go - but aren’t we studying patterns here?
part of the motivation for me was/is to study what are melodies and chord progressions etc? Can we find patterns within them?

so basically, to make notes/beats/etc within Syntə you need to construct them from a pattern.

here’s an example:

def 140bpm,4

/b 4,0, trn 4, bdfm 12,320hz, mix

the first listing defines a tempo and number of beats per bar.
(this is optional, there are other ways)
the second listing plays an fm bass drum four times (regularly spaced) in one bar.

equivalently we could have written only:

in 140bpm, osc, trn 4, bdfm 12,320hz, mix

so why do the def thing? well this enables other listings to be locked to the same loop.
also, another thing to add: trn 4 flips and truncates the osc (which is a ramp wave).
remember we said no envelopes? well we kinda have one there. oh really? yup. except it is a repeating envelope. so there’s no separation between the frequency/rhythm and the shape of the sound. am I making sense? A diagram would help, I think. diagram Can you start to see what is going on here?

one of the benefits is that we can filter the shape of the sound!
to make it more rounded:
... osc, trn 4, lpf 5hz, ...
to make it sharper:
... osc, trn 4, hpf 1hz, ...

yeah but that’s not really a beat

there are loads of techniques I’m still exploring to make beats in different ways.
for a simple euclidean rhythm:

def 140bpm,4

/s 5,0, s/h grid, dec 100ms, bdfm 12,320hz, mix

here we make use of grid which has been defined within def.
s/h grid locks the pulses from /s to 16th notes.
because the first argument of /s is 5 the pulses become unevenly distributed over the grid.
dec 100ms is like an envelope, it converts the pulses to a shape like in the diagram above.

usually what I do is have a separate listing for each drum sound, but you don’t have to.

I’ve also been experimenting with different versions of def that allow shuffle.

another thing to note is that i’m showing these in horizontal form (how they would be displayed with synte -l), while when you type them in or edit would be in vertical form (without commas, each operator operand pair or function on a new line)
the previous example in vertical form:

/s 5,0
s/h grid
dec 100ms
bdfm 12,320hz
mix

taking it further

you can modulate the frequency of /s to create variation.

/b 1,0, gt 0.5, range 4,6, out b
/s b,0, s/h grid, dec 100ms, bdfm 12,320hz, mix

/b 1,0, gt 0.5 creates a shape similar to /s but flipped (you could also use /s 1,0, flip)
the square is low for the first half of /b and high for the second half.
then the square wave is mapped between 4 and 6 and sent to a signal which we have named b.
so b receives a stream if fours and sixes.
then /s uses b and so for the first half of the bar it is a 4/4 beat, and the second half is euclidean(6,16).

this may be confusing

tbh it confused me for a long time too. So why bother? well like I said, I wanted to explore ways of creating patterns from numbers - it’s really helped me creatively and offers ways to escape predictable loops.
for example, you could try:

in 3hz, sq, range 4,6, out b
/s b,0, s/h grid, dec 100ms, bdfm 12,320hz, mix

where we now have a free running oscillator changing b out of sync with everything else.

i will leave talking about musical pitches and generating melodies for another time :)

the bottom line

If we wanted to make regular music, well we could just ‘use a daw’. and for cycle patterns we have the awesome Strudel and TidalCycles (among others).
Syntə is here for something different and naturally that takes some getting your head around.
with the unexpected bonus that it really helps creativity in my experience.

the other bottom line

I love talking about this stuff, so get in touch if you want to learn or discuss anything!

happy synthesising!

↑ top