On Thursday 05 January 2012, Dave Stikkolorum wrote: > On 05-01-12 15:31, Pedro Lopez-Cabanillas wrote: > > The problem in loop.c is that you are using the function snd_seq_ev_set_note() > > that includes a duration as the 5th parameter. This function will create two > > MIDI events in a queue, the first one will be the noteon event, and the second > > one will be a noteoff event, scheduled adding the specified duration to the > > start time of the former noteon event. That requires a queue for event > > scheduling. > So in fact with a message that contains a duration for a note is always > a queue involved?
Yes, but this macro snd_seq_ev_set_note() is the only one that includes a duration parameter. It is not really a MIDI message, but the sequencer event is converted into two MIDI messages (noteOn + noteOff). There aren't MIDI messages containing durations. OTOH any event using the macros snd_seq_ev_schedule_real() or snd_seq_ev_schedule_tick() requires a queue as well, because the message delivering time will be scheduled in the future. Events using the macros snd_seq_ev_set_queue_control(), snd_seq_ev_set_queue_start(), snd_seq_ev_set_queue_stop(), snd_seq_ev_set_queue_continue() or snd_seq_ev_set_queue_tempo() also require a queue, because all these macros have a queue parameter. Regards, Pedro _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
