1 //RenderNotePlayer : NotePlayer {
2 // var <>maxTime, <>score, <time=0;
4 // *new { arg maxTime = 60;
5 // ^super.newCopyArgs(maxTime, Score.new)
8 // playOneEvent { arg desc, lag, msgArgs;
9 // var server, id, bundle, noteOffTime;
12 // id = server.nextNodeID;
13 // bundle = [time + lag, [9, desc.name, id, ~addAction, ~group] ++ msgArgs];
14 // score = score.add(bundle);
15 // if (desc.hasGate) {
16 // noteOffTime = time + lag + ~sustain;
17 // // noteOffTime = min(maxTime, noteOffTime);
18 // bundle = [noteOffTime, [15, id, \gate, 0]]; //15 == n_set
21 // time = time + ~dur;
27 // val = stream.next(Event.default);
28 // val.notNil and: { time < maxTime };
30 // this.playEvent(val);