mirror of
https://github.com/Tonejs/Tone.js
synced 2025-01-06 00:48:45 +00:00
new score format.
This commit is contained in:
parent
935fa9ea38
commit
03bec5cb05
1 changed files with 23 additions and 11 deletions
|
@ -8,11 +8,11 @@ define(["Tone/core/Tone", "Tone/core/Transport"], function(Tone){
|
||||||
* whatever value was specified.
|
* whatever value was specified.
|
||||||
*
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @param {Tone.Time} time the time when the note will occur
|
|
||||||
* @param {string|number|Object} value the value of the note
|
|
||||||
* @param {number|string} channel the channel name of the note
|
* @param {number|string} channel the channel name of the note
|
||||||
|
* @param {Tone.Time} time the time when the note will occur
|
||||||
|
* @param {string|number|Object|Array} value the value of the note
|
||||||
*/
|
*/
|
||||||
Tone.Note = function(time, value, channel){
|
Tone.Note = function(channel, time, value){
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* the value of the note. This value is returned
|
* the value of the note. This value is returned
|
||||||
|
@ -45,9 +45,9 @@ define(["Tone/core/Tone", "Tone/core/Transport"], function(Tone){
|
||||||
* @private
|
* @private
|
||||||
* @param {number} time the time at which the note should play
|
* @param {number} time the time at which the note should play
|
||||||
*/
|
*/
|
||||||
Tone.Note.prototype._trigger = function(){
|
Tone.Note.prototype._trigger = function(time){
|
||||||
//invoke the callback
|
//invoke the callback
|
||||||
channelCallbacks(this._channel, this.value);
|
channelCallbacks(this._channel, time, this.value);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -69,11 +69,16 @@ define(["Tone/core/Tone", "Tone/core/Transport"], function(Tone){
|
||||||
* invoke all of the callbacks on a specific channel
|
* invoke all of the callbacks on a specific channel
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
function channelCallbacks(channel, note){
|
function channelCallbacks(channel, time, value){
|
||||||
if (NoteChannels.hasOwnProperty(channel)){
|
if (NoteChannels.hasOwnProperty(channel)){
|
||||||
var callbacks = NoteChannels[channel];
|
var callbacks = NoteChannels[channel];
|
||||||
for (var i = 0, len = callbacks.length; i < len; i++){
|
for (var i = 0, len = callbacks.length; i < len; i++){
|
||||||
callbacks[i](note);
|
var callback = callbacks[i];
|
||||||
|
if (Array.isArray(value)){
|
||||||
|
callback.apply(window, [time].concat(value));
|
||||||
|
} else {
|
||||||
|
callback(time, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -126,10 +131,17 @@ define(["Tone/core/Tone", "Tone/core/Transport"], function(Tone){
|
||||||
Tone.Note.parseScore = function(score){
|
Tone.Note.parseScore = function(score){
|
||||||
var notes = [];
|
var notes = [];
|
||||||
for (var inst in score){
|
for (var inst in score){
|
||||||
for (var i = 0; i < inst.length; i++){
|
var part = score[inst];
|
||||||
var time = inst[i][0];
|
for (var i = 0; i < part.length; i++){
|
||||||
var value = inst[i][1];
|
var noteDescription = part[i];
|
||||||
var note = new Tone.Note(time, value, inst);
|
var note;
|
||||||
|
if (Array.isArray(noteDescription)){
|
||||||
|
var time = noteDescription[0];
|
||||||
|
var value = noteDescription.slice(1);
|
||||||
|
note = new Tone.Note(inst, time, value);
|
||||||
|
} else {
|
||||||
|
note = new Tone.Note(inst, noteDescription);
|
||||||
|
}
|
||||||
notes.push(note);
|
notes.push(note);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue