Sattern is a JavaScript environment for creating musical patterns. It can be used to generate sequences and trigger various targets inside an audio graph. An audio graph is a collection of targets or "audio units" and these can be MIDI ports, OSC ports, or internal Samplers and or SOUL patches. Sattern can run as a standalone application or as an AU/VST3 plugin on macOS.

The primary goal of Sattern is to provide a way to approach musical ideas through programming. This is not a new concept and there are lots of amazing tools and environments available that do this sort of thing already, like Sonic Pi, TidalCycles, Overtone, Extempore, and many more. Sattern is intended to provide a self contained IDE (Integrated development environment) without the need to install any external dependancies and to allow this environment to run as a standalone application or to be hosted inside a DAW (Digital Audio Workstation) as an AU/VST3 plugin to enhance an already established workflow.

Sattern was never designed to be a "live" coding environment like the above mentioned platforms (they do this extremely well), but you can whip up your own "live" coding system using eval();

Sattern makes use of JavaScript for its main programming language. We ❤️ all programming languages and went through a couple iterations before landing on JavaScript. I personally come from a background of C style languages and JavaScript supports much of the structure programming syntax from C (e.g., if statements, while loops, switch statements, do while loops, etc.), so it was a natural choice for me. Another reason for choosing JavaScript was accessibility, it's everywhere and you're more likely to find examples and bits of useful code written in JavaScript than other languages.