Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Sep 19th, 2012  |  syntax: C  |  size: 1.03 KB  |  hits: 24  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. {
  2.         int i,j;
  3.         void* port_buf = jack_port_get_buffer(output_port, nframes);
  4.         unsigned char* buffer;
  5.         jack_midi_clear_buffer(port_buf);
  6.         /*memset(buffer, 0, nframes*sizeof(jack_default_audio_sample_t));*/
  7.         unsigned char* myNote = *"61";
  8.         for(i=0; i<nframes; i++)
  9.         {
  10.                 for(j=0; j<num_notes; j++)
  11.                 {
  12.                         if(note_starts[j] == loop_index)
  13.                         {
  14.                                 buffer = jack_midi_event_reserve(port_buf, i, 3);
  15. /*                              printf("wrote a note on, port buffer = 0x%x, event buffer = 0x%x\n", port_buf, buffer);*/
  16.                                 buffer[2] = 127;                /* velocity */
  17.                                 buffer[1] = "60";
  18.                                 printf("note: %c \n", myNote);
  19.                                 buffer[0] = 0x90;       /* note on */
  20.                         }
  21.                         else if(note_starts[j] + note_lengths[j] == loop_index)
  22.                         {
  23.                                 buffer = jack_midi_event_reserve(port_buf, i, 3);
  24. /*                              printf("wrote a note off, port buffer = 0x%x, event buffer = 0x%x\n", port_buf, buffer);*/
  25.                                 buffer[2] = "60";               /* velocity */
  26.                                 buffer[1] = myNote;
  27.                                 buffer[0] = 0x80;       /* note off */
  28.                         }
  29.                 }
  30.                 loop_index = loop_index+1 >= loop_nsamp ? 0 : loop_index+1;
  31.         }
  32.         return 0;
  33. }