Live

Oscilla Live (olive)

Live coding with sound and image together, in the browser: you write a line and run it, and it sounds at once -- every synth drawing its own animated scope (a wave, a polar rosette, a Lissajous figure, a ridge of its past), shapes and words that move with the sound, the whole stage folded, warped and tinted, laid out on a grid and dealt about on the beat. Nothing is compiled or restarted: every line changes what is already playing.

Start here

Open Oscilla Live -- or /live on your own Oscilla server -- and press Start (or Random example to hear one first). Type these, one at a time, running each with Ctrl+Enter:

synth(uid:bass, wave:saw, freq:Pwhite(40, 90), dur:0.25, amp:0.15, sub:0.6)
gui(bass, size:1, view:xy, trail:1, color:#ff2a6d)
bass > rotate(follow(bass.t, 0, 360))
level(bass, 0.3, 8, exp3)
gate(bass, 0, 4)

A bass line and its octave below; it draws itself across the screen; the drawing turns with the pitch; it sinks to a third of its level over eight beats; then it lets go, and its sound dies away. gate(bass, 1) brings it back. Ctrl+. stops everything.

Every time in a line is in beats -- a second each at the default 60 bpm, tempo(120) for twice as fast.

The pages

Shaping a sound live level, gate, hush, hold -- turning a sound down, letting it go, stopping it, freezing its pattern
Sound fuzz, sub, reverb, moving parameters, envelopes, patterns, microtones, random values you can keep
Seeing what is happening meters, the machine's load, drawings that follow the sound, the external audio input, the camera, lines run on the beat, recording
Visuals the stage folded, mirrored, tiled, tinted; the grid; blend; shapes thrown about
Keys the console's keys
Hosting, and rooms Live on any web host, and performers together through a relay
Live coding: the tour the whole of it: sound, image, linking them, a set in practice
The live console the console itself: buffers, stashes, perform mode, the projector

Each thing a line can make has its page under Reference in the menu: synth(), gui(), shape(), text(), follow() and the signals ...

A few habits

Tip: use ← → or ↑ ↓ to navigate the docs