Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #34507 > unrolled thread
| Started by | Jonas Thörnvall <jonas.thornvall@gmail.com> |
|---|---|
| First post | 2018-01-07 22:20 -0800 |
| Last post | 2018-01-08 00:52 -0800 |
| Articles | 6 — 1 participant |
Back to article view | Back to comp.lang.javascript
Accessing clock for playup of timed events, "sequenser" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-01-07 22:20 -0800
Re: Accessing clock for playup of timed events, "sequenser" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-01-07 22:24 -0800
Re: Accessing clock for playup of timed events, "sequenser" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-01-07 22:34 -0800
Re: Accessing clock for playup of timed events, "sequenser" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-01-07 23:33 -0800
Re: Accessing clock for playup of timed events, "sequenser" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-01-08 00:50 -0800
Re: Accessing clock for playup of timed events, "sequenser" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2018-01-08 00:52 -0800
| From | Jonas Thörnvall <jonas.thornvall@gmail.com> |
|---|---|
| Date | 2018-01-07 22:20 -0800 |
| Subject | Accessing clock for playup of timed events, "sequenser" |
| Message-ID | <206a2e6b-9262-45f2-8bcd-52494069d2cb@googlegroups.com> |
I have timed events stored, in an "object?" that did get the clock using performance.now(), however now i need a running timer that send these events. And i am clueless about both how one deal with timecritical events both in general and in javascript. Should i "poll/request?" the timer/clock again and again?
[toc] | [next] | [standalone]
| From | Jonas Thörnvall <jonas.thornvall@gmail.com> |
|---|---|
| Date | 2018-01-07 22:24 -0800 |
| Message-ID | <72e5b95b-c999-4a2d-a676-ede95207427c@googlegroups.com> |
| In reply to | #34507 |
Den måndag 8 januari 2018 kl. 07:20:19 UTC+1 skrev Jonas Thörnvall:
> I have timed events stored, in an "object?" that did get the clock using performance.now(), however now i need a running timer that send these events.
>
> And i am clueless about both how one deal with timecritical events both in general and in javascript. Should i "poll/request?" the timer/clock again and again?
In principle is this the approach, or is there most sophisticated ways?
function refresh() {
// make Ajax call here, inside the callback call:
setTimeout(refresh, 5000);
// ...
}
// initial call, or just call refresh directly
setTimeout(refresh, 5000);
[toc] | [prev] | [next] | [standalone]
| From | Jonas Thörnvall <jonas.thornvall@gmail.com> |
|---|---|
| Date | 2018-01-07 22:34 -0800 |
| Message-ID | <e160f530-8a8a-4007-aea0-b69ec59cf10a@googlegroups.com> |
| In reply to | #34508 |
Den måndag 8 januari 2018 kl. 07:24:26 UTC+1 skrev Jonas Thörnvall:
> Den måndag 8 januari 2018 kl. 07:20:19 UTC+1 skrev Jonas Thörnvall:
> > I have timed events stored, in an "object?" that did get the clock using performance.now(), however now i need a running timer that send these events.
> >
> > And i am clueless about both how one deal with timecritical events both in general and in javascript. Should i "poll/request?" the timer/clock again and again?
>
> In principle is this the approach, or is there most sophisticated ways?
>
> function refresh() {
> // make Ajax call here, inside the callback call:
> setTimeout(refresh, 5000);
> // ...
> }
>
> // initial call, or just call refresh directly
> setTimeout(refresh, 5000);
Something like this?
function play()
while(playmidi){
time=performance.now();
//How big is the chance that multiple event have same value should i compare //with as many values as the polyphony of device?
//comparisson with time in array and then...
output.send(noteOnMessage);
}
[toc] | [prev] | [next] | [standalone]
| From | Jonas Thörnvall <jonas.thornvall@gmail.com> |
|---|---|
| Date | 2018-01-07 23:33 -0800 |
| Message-ID | <4b10686b-7a80-4a9d-8185-235ea3042be7@googlegroups.com> |
| In reply to | #34509 |
Den måndag 8 januari 2018 kl. 07:34:20 UTC+1 skrev Jonas Thörnvall:
> Den måndag 8 januari 2018 kl. 07:24:26 UTC+1 skrev Jonas Thörnvall:
> > Den måndag 8 januari 2018 kl. 07:20:19 UTC+1 skrev Jonas Thörnvall:
> > > I have timed events stored, in an "object?" that did get the clock using performance.now(), however now i need a running timer that send these events.
> > >
> > > And i am clueless about both how one deal with timecritical events both in general and in javascript. Should i "poll/request?" the timer/clock again and again?
> >
> > In principle is this the approach, or is there most sophisticated ways?
> >
> > function refresh() {
> > // make Ajax call here, inside the callback call:
> > setTimeout(refresh, 5000);
> > // ...
> > }
> >
> > // initial call, or just call refresh directly
> > setTimeout(refresh, 5000);
>
> Something like this?
>
> function play()
> while(playmidi){
> time=performance.now();
> //How big is the chance that multiple event have same value should i compare //with as many values as the polyphony of device?
> //comparisson with time in array and then...
> output.send(noteOnMessage);
> }
function makeTrack()
{
for (var m = 0; m < 16; m ++ )
{
track[m] ={
tid:[],
data0:[],
data1:[],
data2:[]
};
}
return track;
}
I think my object maybe has wrong structure for the purpose, but It seem to work this way to?
I want the time object to hold the data messages "i think?" so i can pop a full message or, or maybe a message that hold them all? I mean i can't pop the track?
But i am really unsure about the convention for howto create javascript objects.
function makeTrack()
{
track[] ={
message[]={
tid:0,
data0:0,
data1:0,
data2:0
};
}
return track;
}
How should such an object look like and howto access it, is the above correct? time=track[x].message[y].tid;
Will this have worse access time then the former?
[toc] | [prev] | [next] | [standalone]
| From | Jonas Thörnvall <jonas.thornvall@gmail.com> |
|---|---|
| Date | 2018-01-08 00:50 -0800 |
| Message-ID | <a0f647c2-0e05-4e68-b22e-bda937b54fa1@googlegroups.com> |
| In reply to | #34510 |
Den måndag 8 januari 2018 kl. 08:33:36 UTC+1 skrev Jonas Thörnvall:
> Den måndag 8 januari 2018 kl. 07:34:20 UTC+1 skrev Jonas Thörnvall:
> > Den måndag 8 januari 2018 kl. 07:24:26 UTC+1 skrev Jonas Thörnvall:
> > > Den måndag 8 januari 2018 kl. 07:20:19 UTC+1 skrev Jonas Thörnvall:
> > > > I have timed events stored, in an "object?" that did get the clock using performance.now(), however now i need a running timer that send these events.
> > > >
> > > > And i am clueless about both how one deal with timecritical events both in general and in javascript. Should i "poll/request?" the timer/clock again and again?
> > >
> > > In principle is this the approach, or is there most sophisticated ways?
> > >
> > > function refresh() {
> > > // make Ajax call here, inside the callback call:
> > > setTimeout(refresh, 5000);
> > > // ...
> > > }
> > >
> > > // initial call, or just call refresh directly
> > > setTimeout(refresh, 5000);
> >
> > Something like this?
> >
> > function play()
> > while(playmidi){
> > time=performance.now();
> > //How big is the chance that multiple event have same value should i compare //with as many values as the polyphony of device?
> > //comparisson with time in array and then...
> > output.send(noteOnMessage);
> > }
>
>
> function makeTrack()
> {
> for (var m = 0; m < 16; m ++ )
> {
> track[m] ={
> tid:[],
> data0:[],
> data1:[],
> data2:[]
> };
> }
> return track;
> }
>
> I think my object maybe has wrong structure for the purpose, but It seem to work this way to?
> I want the time object to hold the data messages "i think?" so i can pop a full message or, or maybe a message that hold them all? I mean i can't pop the track?
> But i am really unsure about the convention for howto create javascript objects.
>
> function makeTrack()
> {
>
> track[] ={
> message[]={
> tid:0,
> data0:0,
> data1:0,
> data2:0
> };
> }
> return track;
> }
>
> How should such an object look like and howto access it, is the above correct? time=track[x].message[y].tid;
>
> Will this have worse access time then the former?
Well this is the playback of the recorded event i came up with any suggestions for improvement welcome. I do realise that one probably would reset the ***recorded*** events to t0=0, but since this only is recorded in memory i don't care. I was a bit worried about losing polyphony playing up this way but to check if the recorded event time is less then clock seems to work nice.
function play(){
lastelement=track[1].time.length;
var x=0;var time=0; var starttime=0; var clock=0;
var time=performance.now();
starttime=time;
while(x<lastelement){
var time=performance.now();
clock=time-starttime;
if(track[1].time[x]<=clock){
var noteOnMessage = [track[1].data0[x],track[1].data1[x],track[1].data2[x]];
output.send(noteOnMessage);
x++;
}
}
}
[toc] | [prev] | [next] | [standalone]
| From | Jonas Thörnvall <jonas.thornvall@gmail.com> |
|---|---|
| Date | 2018-01-08 00:52 -0800 |
| Message-ID | <8146dc35-39be-4b45-b68f-2f5ffcff5b3a@googlegroups.com> |
| In reply to | #34511 |
Den måndag 8 januari 2018 kl. 09:50:48 UTC+1 skrev Jonas Thörnvall:
> Den måndag 8 januari 2018 kl. 08:33:36 UTC+1 skrev Jonas Thörnvall:
> > Den måndag 8 januari 2018 kl. 07:34:20 UTC+1 skrev Jonas Thörnvall:
> > > Den måndag 8 januari 2018 kl. 07:24:26 UTC+1 skrev Jonas Thörnvall:
> > > > Den måndag 8 januari 2018 kl. 07:20:19 UTC+1 skrev Jonas Thörnvall:
> > > > > I have timed events stored, in an "object?" that did get the clock using performance.now(), however now i need a running timer that send these events.
> > > > >
> > > > > And i am clueless about both how one deal with timecritical events both in general and in javascript. Should i "poll/request?" the timer/clock again and again?
> > > >
> > > > In principle is this the approach, or is there most sophisticated ways?
> > > >
> > > > function refresh() {
> > > > // make Ajax call here, inside the callback call:
> > > > setTimeout(refresh, 5000);
> > > > // ...
> > > > }
> > > >
> > > > // initial call, or just call refresh directly
> > > > setTimeout(refresh, 5000);
> > >
> > > Something like this?
> > >
> > > function play()
> > > while(playmidi){
> > > time=performance.now();
> > > //How big is the chance that multiple event have same value should i compare //with as many values as the polyphony of device?
> > > //comparisson with time in array and then...
> > > output.send(noteOnMessage);
> > > }
> >
> >
> > function makeTrack()
> > {
> > for (var m = 0; m < 16; m ++ )
> > {
> > track[m] ={
> > tid:[],
> > data0:[],
> > data1:[],
> > data2:[]
> > };
> > }
> > return track;
> > }
> >
> > I think my object maybe has wrong structure for the purpose, but It seem to work this way to?
> > I want the time object to hold the data messages "i think?" so i can pop a full message or, or maybe a message that hold them all? I mean i can't pop the track?
> > But i am really unsure about the convention for howto create javascript objects.
> >
> > function makeTrack()
> > {
> >
> > track[] ={
> > message[]={
> > tid:0,
> > data0:0,
> > data1:0,
> > data2:0
> > };
> > }
> > return track;
> > }
> >
> > How should such an object look like and howto access it, is the above correct? time=track[x].message[y].tid;
> >
> > Will this have worse access time then the former?
>
> Well this is the playback of the recorded event i came up with any suggestions for improvement welcome. I do realise that one probably would reset the ***recorded*** events to t0=0, but since this only is recorded in memory i don't care. I was a bit worried about losing polyphony playing up this way but to check if the recorded event time is less then clock seems to work nice.
>
> function play(){
> lastelement=track[1].time.length;
> var x=0;var time=0; var starttime=0; var clock=0;
> var time=performance.now();
> starttime=time;
> while(x<lastelement){
> var time=performance.now();
> clock=time-starttime;
> if(track[1].time[x]<=clock){
> var noteOnMessage = [track[1].data0[x],track[1].data1[x],track[1].data2[x]];
> output.send(noteOnMessage);
> x++;
> }
>
> }
> }
But now a metronome, and synched play and record maybe a bit harder.
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.javascript
csiph-web