Example #1
0
static void send_raw_midi_message(struct SoundPlugin *plugin, int64_t block_delta_time, uint32_t msg){
  Data *data = (Data*)plugin->data;
  
  int cc = MIDI_msg_byte1(msg);
  int data1 = MIDI_msg_byte2(msg);
  int data2 = MIDI_msg_byte3(msg);

  if (cc>=0xe0 && cc<0xf0) {
    int pitch = (data2<<7) + data1;
    sendpitchbend(plugin->data, 0, pitch, data->time + block_delta_time);

  } else if (cc >= 0xb0 && cc <0xc0)
    sendcontrolchange(data,0,data1,data2, data->time + block_delta_time);
}
Example #2
0
static void send_raw_midi_message(struct SoundPlugin *plugin, int64_t block_delta_time, uint32_t msg){
  uint8_t data[3];
  data[0] = MIDI_msg_byte1(msg);
  data[1] = MIDI_msg_byte2(msg);
  data[2] = MIDI_msg_byte3(msg);

  int num_bytes_used;
  MidiMessage message(data, 3, num_bytes_used, 0);
  
  if (num_bytes_used>0) {
    Data *data = (Data*)plugin->data;
    MidiBuffer &buffer = data->midi_buffer;
    buffer.addEvent(message, block_delta_time);
  }
  
  //  else
  //  RError("Illegal midi msg: %x",msg); // Well, the illegal message could have been created by a third party plugin.
}