Hello ALSA Gang,

In my system i have primarily two important alsa ports for me

64:0 is the external midi keyboard
65:0 is the wavetable synth of my creative audixy

I have written following code:


#include<alsa/asoundlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <ctype.h>
#include <getopt.h>





int main(int argc, char *argv[])
{
        int xxx;
        snd_seq_event_t ev;
        snd_seq_t *handle;
        sscanf(argv[1],"%d",&xxx);
        snd_seq_open(&handle,"hw",SND_SEQ_OPEN_DUPLEX,0);       
        bzero(&ev, sizeof(ev));
        ev.queue=SND_SEQ_QUEUE_DIRECT;
        ev.dest.client=xxx;
        ev.dest.port=0;
        ev.type = SND_SEQ_EVENT_NOTEON;
        ev.data.note.channel = 0;
        ev.data.note.note = 64;
        ev.data.note.velocity = 127;
        snd_seq_event_output_direct(handle, &ev);
        sleep(1);
        ev.type = SND_SEQ_EVENT_NOTEOFF;
        snd_seq_event_output_direct(handle, &ev);
        return 0;
}

this code works for outputting events to the wavetable, but it very seldom
works for outputting to the external midi keyboard.
If I integrate this code to my application. it works sometimes for outputting
to the wavetable but i have never seen it working with external midi.

Is there an inportant feature missing in my code to make its work more relyable
? (apart from error checking).
Is a queue important for reliability ?
And what about a polling descriptor ?

I am looking forward to makeing my app reliable and working


rds guenther


_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to