[linux-audio-dev] Re: [Alsa-devel] alsaseq reorders my events
    Rui Nuno Capela 
    rncbc at rncbc.org
       
    Thu Mar  1 16:51:48 UTC 2007
    
    
  
On Thu, March 1, 2007 13:35, Dmitry Baikov wrote:
> Hi!
>
>
> I nearly finished alsaseq driver for jackmidi, but have a problem.
> Alsaseq reorders events in fast sequences, so note-on/note-off pairs got
> mixed.
>
> The algorithm of sending is simple:
>
>
> snd_seq_ev_schedule_real(&alsa_event, output_que, 1, ×tamp);
> frame_time = jack_frame_time(self->jack); frame_offset = event.time -
> frame_time;
>
> offset = ((long long)frame_offset) * 1000000000 / rate; timestamp.tv_sec =
> (long) (offset / 1000000000);
> timestamp.tv_nsec = (long) (offset % 1000000000);
> snd_seq_event_output(self->seq, &alsa_event);
>
>
Is the snd_seq_ev_schedule_real correct where it is? Or should you call
_after_ you set the intended timestamp, like this:
  frame_time = jack_frame_time(self->jack);
  frame_offset = event.time - frame_time;
  offset = ((long long)frame_offset) * 1000000000 / rate;
  timestamp.tv_sec = (long) (offset / 1000000000);
  timestamp.tv_nsec = (long) (offset % 1000000000);
  snd_seq_ev_schedule_real(&alsa_event, output_que, 1, ×tamp);
  snd_seq_event_output(self->seq, &alsa_event);
Cheers.
-- 
rncbc aka Rui Nuno Capela
rncbc at rncbc.org
    
    
More information about the Linux-audio-dev
mailing list