The sound.io core library implements a graph object model for audio - we are calling this the audio graph. The audio graph can be constructed out of a collection of audio-objects and connections that links the audio-objects together.

audio-object

The audio object is a wrapper on the Web Audio API. These objects are the building blocks of an audio graph.

soundio-object-template

The soundio-object-template repository contains a plugin template to build custom plugins. The audio variable in the constructor contains a reference to the Audio Context.

MIDI

MIDI abstracts the Web MIDI API. It contains a normalize function that converts MIDI format to Music JSON which is used internally.

Clock

Maps the web audio absolute time to a Clock time using rates.

Sequence

Maps the clock time to the Sequence time.

Sampler

var soundio = Soundio();
var sampler = soundio.objects.create('sample');
// soundio.objects = [
//  {id; 0, type: 'sample'}
//]
sampler.trigger(0, 'noteon', 64, 127);

Sample map

A sample map maps notes across the keyboard and the velocity range.

Music JSON

Music JSON is an interchangeable MIDI format of the web.

Scribe

Scribe is a parser for Music JSON to create lead sheets in SVG.

References: