Javascript music
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]]