Diferencia entre revisiones de «Javascript music»

De musiki
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]]