Javascript music

De musiki

JavaScript Music

Flocking

Flocking, inspirado en SuperCollider, es un entorno de síntesis de audio con JavaScript.

Ugens

Unit generators. Son los componentes básicos de la síntesis. Tienen múltiples entradas pero una sola salida. Pueden relacionarse con otros ugens.

Sintetizadores

TinyRave

TinyRave es una plataforma que permite la interacción de código JavaScript y su ejecución sonora en el browser. Utiliza una de las dos funciones (buildSampler or buildTrack) para ejecutar el track en el browser.

Mixables

Son funciones que toman en tiempo segundos y devuelven en samples de audio.

var mixable = function(time) { return Math.sin(TWO_PI * A_4 * time); } 

buildSampler

TinyRave llama a esta mixable 44,100 veces por segundo. Uso:

var buildSample = function(time){
  return Math.sin(TWO_PI * A_4 * time);
}

buildTrack

Mixable que se ejecuta una sola vez. Puede definirse dentro:

this.every(interval, callback)
this.until(duration, callback)
this.after(delay, callback)
this.play(mixable)

Para definir ganancia y bpm:

this.setMasterGain(gain)
this.setBPM(bpm)

Uso:

var buildTrack = function(){
  this.every(1, function(){
    // Cada segundo ...
    var o = new Oscillator;
    var e = new Envelope;
    var mixable = e.process(o);
    // Add mixable to the global mixer
    this.play(mixable);
  });
}

Librerías

  • Adapter.js (by default). Permite la comunicación entre el browser y TinyRave.com

Constants

    • BUFFER_SIZE (samples por canal)
    • SAMPLE_RATE (samples por canal en un segundo)
    • TWO_PI definido como 2 * Math.PI

Polyfills

[completar]

  • StdLib.coffee (by default). Eventos de frecuencias.
  • Instruments.coffee (opcional). Oscilador, filtros. Abstracciones de mayor nivel.

Para importar:

require('v1/instruments')
  • Midi.coffee (opcional). Para midi.

Para importar:

require('v1/midi')

Librería standard

Frecuencias en hz, octavas de 0 a 8.

C_0 through C_8
C_SHARP_0 / D_FLAT_0 through C_SHARP_8 / D_FLAT_8
D_0 through D_8
D_SHARP_0 / E_FLAT_0 through D_SHARP_8 / E_FLAT_8
E_0 through E_8
F_0 through F_8
F_SHARP_0 / G_FLAT_0 through F_SHARP_8 / G_FLAT_8
G_0 through G_8
G_SHARP_0 / A_FLAT_0 through G_SHARP_8 / A_FLAT_8
A_0 through A_8
A_SHARP_0 / B_FLAT_0 through A_SHARP_8 / B_FLAT_8
B_0 through B_8 

Frecuencia

Frequency.noteNumber(number) Argumento en midi. Devuelve en hz.

Frequency.makeNote(69) // Returns 440.0

Funciones globales

  • setTimeout(callback, delay)

gibber.cc

toplab

tidal

ixi lang

ChucK

livecodelab

cyril

https://medium.com/cyril-live-coding/getting-started-with-beta-6-c74e93463c3d#.1ce32weoo


Referencias

[[1]]