Diferencia entre revisiones de «Javascript music»
Sin resumen de edición |
Sin resumen de edición |
||
| Línea 19: | Línea 19: | ||
this.play(mixable)</nowiki> | this.play(mixable)</nowiki> | ||
Para definir ganancia y bpm: | Para definir ganancia y bpm: | ||
<nowiki>this.setMasterGain(gain) | <nowiki>this.setMasterGain(gain) | ||
this.setBPM(bpm)</nowiki> | this.setBPM(bpm)</nowiki> | ||
Uso: | Uso: | ||
<nowiki>var buildTrack = function(){ | <nowiki>var buildTrack = function(){ | ||
this.every(1, function(){ | this.every(1, function(){ | ||
// Cada segundo ... | // Cada segundo ... | ||
| Línea 32: | Línea 32: | ||
}); | }); | ||
}</nowiki> | }</nowiki> | ||
===Librerías=== | |||
*Adapter.js (by default). Permite la comunicación. | |||
*StdLib.coffee (by default). Eventos de frecuencias. | |||
*Instruments.coffee (opcional). Oscilador, filtros. Abstracciones de mayor nivel. | |||
Para importar: | |||
<nowiki>require('v1/instruments')</nowiki> | |||
*Midi.coffee (opcional). Para midi. | |||
Para importar: | |||
<nowiki>require('v1/midi')</nowiki> | |||
==== | ==== | ||
===== | ===== | ||
Revisión del 05:20 27 nov 2019
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.
- 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')
==
=
Referencias
[[1]]