MAR NIORAH

> projects

Signal Engine

live/2026/Web Audio API · JavaScript · no libraries

A generative synthesizer in the browser, built for CYBERNATION. Change tempo, key, scale, chords, a euclidean drum grid and eight layers of sound, and the music rebuilds itself live. Every sound is synthesized as you listen: no samples, no recordings.

The collective’s instrument, left running. It’s part of cybernation.world, the home of my album CYBERNATION.

What you can play with

  • Eight layers: drums, bass, pad, arpeggio, a generative lead, a formant “choir”, texture (carrier drone, static, wind, radio search) and glitch bursts, each with its own level.
  • Harmony: 12 keys, 10 scales and modes, chord progressions (one of them takes a new path every cycle) and voicings from triads to ninths. Chords are built from scale degrees, so changing the scale reshapes every chord.
  • Rhythm: a 16-step grid across five drum lanes, four synthesized kits and a euclidean generator per lane. The default pattern spreads 5, 3, 11 and 7 hits: all primes, like the album.
  • Time: tempo with prime lock, swing, humanize, and evolution, which lets melodies mutate from cycle to cycle.
  • Space: reverb, tempo-synced delay, a sweeping filter, drive, bitcrush, sidechain pump and stereo width.
  • Scenes: one per album track, each at that track’s prime tempo.

The whole patch lives in the page address, so copying the link shares exactly what you made. You can also record what you hear to an audio file.

How it works

Plain Web Audio, no libraries. A lookahead sequencer schedules every note slightly ahead of the audio clock, so the timing stays tight even when the page is busy. Every sound is built from three primitives: an oscillator, filtered noise, and a sawtooth shaped by vowel formants for the choir. They run through per-layer buses, a generated-noise reverb, a feedback delay and a master chain of waveshapers, filter and compressor. The same seeded randomness makes the “random” melodies repeat until you ask them to change.