Hi all,

I try to write a c program that sends midi notes to the Hydrogen drum sequencer.
I use the alsa library to create a client with an output port.

I attached two files.

loopqueue.c works but loop.c doesn't.

A base drum (note:28) is being send.

I am not succeeding to use direct delivery,
but it only works with the queue.

Any ideas why?

Regards,
Dave
#include <alsa/asoundlib.h>
#include <unistd.h>


int main()
{
   snd_seq_t* seq;
   int port;
   snd_seq_event_t ev;
   snd_seq_open(&seq, "default", SND_SEQ_OPEN_DUPLEX, 0);
   snd_seq_set_client_name(seq, "monprog");
   port = snd_seq_create_simple_port(seq, "port1",SND_SEQ_PORT_CAP_READ
| SND_SEQ_PORT_CAP_SUBS_READ,SND_SEQ_PORT_TYPE_APPLICATION);

 

   getchar(); // time to start a softsynth ;)
   
   snd_seq_ev_clear(&ev);   
   snd_seq_ev_set_source(&ev, port);
   snd_seq_ev_set_subs(&ev);  
   snd_seq_ev_set_direct(&ev);

   snd_seq_ev_set_note(&ev, 0, 28, 127, 3);

   snd_seq_event_output_direct(seq, &ev);
   snd_seq_drain_output(seq);
   snd_seq_free_event(&ev);
   sleep(1) ;


   return 0;
}
#include <alsa/asoundlib.h>
#include <unistd.h>


int main()
{
   snd_seq_t* seq;
   int port, queue;
   snd_seq_queue_tempo_t* tempo;
   snd_seq_event_t ev;
   snd_seq_open(&seq, "default", SND_SEQ_OPEN_DUPLEX, 0);
   snd_seq_set_client_name(seq, "monprog");
   port = snd_seq_create_simple_port(seq, "port1",SND_SEQ_PORT_CAP_READ
| SND_SEQ_PORT_CAP_SUBS_READ,SND_SEQ_PORT_TYPE_APPLICATION);

   queue = snd_seq_alloc_queue(seq);

   getchar(); // time to start a softsynth ;)
   
   snd_seq_start_queue(seq, queue, NULL);
	
   snd_seq_ev_clear(&ev);   
   snd_seq_ev_set_source(&ev, port);
   snd_seq_ev_set_subs(&ev);  
   snd_seq_ev_set_direct(&ev);

   snd_seq_ev_schedule_tick(&ev, queue, 0, 0);
   snd_seq_ev_set_note(&ev, 0, 28, 127, 3);

   snd_seq_event_output_direct(seq, &ev);
   snd_seq_drain_output(seq);
   snd_seq_free_event(&ev);
   sleep(1) ;


   return 0;
}
_______________________________________________
Linux-audio-dev mailing list
[email protected]
http://lists.linuxaudio.org/listinfo/linux-audio-dev

Reply via email to