Javascript music
JavaScript Music
Flocking
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)
=
Referencias
[[1]]