Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #34702
| Newsgroups | comp.lang.javascript |
|---|---|
| Date | 2018-02-05 01:13 -0800 |
| Message-ID | <edcfe79b-323f-485f-ba02-7bd7c50a4938@googlegroups.com> (permalink) |
| Subject | Howto achieve best possible playback timing |
| From | Jonas Thörnvall <jonas.thornvall@gmail.com> |
I must stop poll and do some more serious playback, but i am not sure how.
function play(){
var lastelement=track[0].midiMess.length;
var x=0;var time=0; var starttime=0; var clock=0;
time=performance.now();
starttime=time;
while(x<lastelement){
var time=performance.now();
clock=time-starttime;
if(track[0].midiMess[x].time<=clock){
var noteOnMessage = [track[0].midiMess[x].data0,track[0].midiMess[x].data1,track[0].midiMess[x].data2];
output.send(noteOnMessage);
x++;
}
}
}
Well this is probably not ideal either, but better? If someone show me away to get the playup of events as accurate as possible i would be thankful.
function diffPlay(){
var lastelement=track[0].midiMess.length;
var x=0;
var waitEv=new Array();
noteOnMessage=new Array();
//INIT FIRST EVENT
waitEv[x]=track[0].midiMess[x].time;
var noteOnMessage[x] = [track[0].midiMess[x].data0,track[0].midiMess[x].data1,
track[0].midiMess[x].data2];
x++;
//LOOP THRU ALL EVENTS CALCULATE TIMEDIFFERENCES
while(x<lastelement){
waitEv[x]=track[0].midiMess[x].time-track[0].midiMess[x-1].time;
x++;
var noteOnMessage[x] [track[0].midiMess[x].data0,track[0].midiMess[x].data1,
track[0].midiMess[x].data2];
}
y=0;
while(y<lastelement){
setTimeout(playEvent,waitEv[y]);
y++;
}
}
function playEvent(){
output.send(noteOnMessage[y]);
}
Back to comp.lang.javascript | Previous | Next — Next in thread | Find similar | Unroll thread
Howto achieve best possible playback timing Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-02-05 01:13 -0800
Re: Howto achieve best possible playback timing Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-02-05 02:37 -0800
Re: Howto achieve best possible playback timing Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-02-05 02:38 -0800
Re: Howto achieve best possible playback timing Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-02-05 02:54 -0800
Re: Howto achieve best possible playback timing Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-02-05 06:09 -0800
csiph-web