Brix wrote: > My code doesn't return any error, i just can't hear anything. If i > do it via the RawMIDI API, it works fine (but it's, bleahh, > horrible to use). > > I thought it was because i didn't assign any path/instrument to > the midi channels,
The default instrument is 0 (grand piano). > so i tried to set them via RawMIDI, but it still doesn't work. You can send program change messages with the sequencer, too. > void set_chan_instr( int chan, int instrument ) { > int ch = 0xC0 + chan; > snd_rawmidi_write(handle_out, &ch, 1); This does not work on big-endian machines, use char for ch. > // now we try to set up channel 0 via RawMIDI > snd_rawmidi_open( NULL, &handle_out, "hw:0,1", 0) > // ok, let's assign instrument #4 > set_chan_instr( 0, 4 ); If the rawmidi device is already opened, it may not be possible for the sequencer to open it, too. Call snd_rawmidi_close, or leave this code out altogether. > // let's play! (we hope..) > snd_seq_event_output(seq, &ev); > snd_seq_drain_output(seq); > snd_seq_start_queue(seq, queue, NULL); > snd_seq_drain_output(seq); > > return 0; > } Directly after starting the queue, the program exists, and the queue gets destroyed. Try snd_seq_sync_output. HTH Clemens ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel