Introduction to Syntə

Hi everyone,
Happy New Year to all.

For the past year (with some breaks) I’ve been working on a synthesis based live coding environment and language.
The language is intended to expand and suppliment the existing live-coding space to offer other possibilities and benefit the ecosystem as a whole.

The code can be found here:

And a series of introduction screencasts can be found here:
https://www.youtube.com/channel/UCRj9_B6P9T0bQSwCL3yOkyw

I would welcome:

  • People trying it out and supplying feedback
  • Advice on the code in the repo, specifically making it look more professional
  • Opportunities to give workshops and/or performances

Features:

  • Direct synthesis of wave forms (audio and CV)
  • Sample playback and manipulation (including custom timestretching)
  • Reloading running listings from a standard editor
  • Integrated tape delay loops
  • Ability to define custom pitch intervals such as 5-limit just intonation (more tba)
  • Two axis mouse control of parameters
  • Optional synchronisation
  • Extensible with user defined functions
  • Built-in library of useful functions
  • Two layers of sound level mitigation to avoid loud surprises

Syntə is written in Go, with its own sound engine to compute the language directly. There are two accompanying programs to display the running code and information/error messages. All three are designed to be run in terminal emulators which can be arranged as you wish.
There are many future possibilties - including adding a TUI library for direct editing, a headless mode, midi interfacing, etc. With midi for example, direct collaboration with languages such as TidalCycles would be possible - exciting!
This implementation is fundamentally a prototype, but has been comprehensively tested. It is under active (if not continuous) development, so usual caveats apply.
Remember - listening to any audio from any source at loud volumes requires hearing protection - I’m passionate about sonic safety in any environment and you should be too!

At present my main focus is practising performance and trying out different higher-level abstractions to further extend the language and build immediacy.
I’ve also tried to make it as accessible as possible to newcomers, please reach out if you’d like some assistance.

It was inspired by my own desire to perform direct synthesis in the realm of live coding and has more than met my requirements so far - I hope it is useful to the wider community too!

Many thanks,

Daniel :slight_smile:

2 Likes