Introduction

Gibberish is a JavaScript synthesis and scheduling library. It has several unique features resulting from outputting samples from each synthesis unit (aka ugen) one at a time instead of in blocks. These features include:

In addition, each of the included ugens uses per-sample processing under the hood (using the library genish.js), so even the individual components are able to create some sounds that aren't typically heard using JavaScript audio synthesis. The library includes synthetic drum sounds, class virtual-analog emulations, various effects, and sequencers that offer precise control over timing.

Demo

Here's a demo showing a synth with a resonant filter feeding a reverb, and accompanied by a kick drum.

Gibberish.workletPath = './scripts/gibberish_worklet.js' 
Gibberish.init().then( ()=> {
  Gibberish.export( window )
  beat = 22050

  verb = Freeverb({ roomSize:.875, damping:.5 }).connect()

  bass = Synth({ Q:.85 })
    .connect( verb )
    .connect()

  bass.cutoff = Add( .45, Sine({ frequency:.125, gain:.4 }) )

  bassSeq = Sequencer({
    target:bass,
    key:'note',
    values:[55,110,165,220,273,330,385,440],
    timings:[beat / 4]
  }).start()

  kik = Kick().connect()

  kikseq = Sequencer.make( [.5], [beat], kik, 'trigger' ).start()
})