Advertisement
Guest User

Create midi event for lilv

a guest
Feb 11th, 2015
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.83 KB | None | 0 0
  1. LV2_Atom_Sequence seq = {
  2.     { sizeof(LV2_Atom_Sequence_Body),
  3.       map.map(map.handle, LV2_ATOM__Sequence) },
  4.     { 0, 0 } };
  5.  
  6. typedef struct {
  7.     LV2_Atom_Event event;
  8.     uint8_t        msg[3];
  9. } MIDINoteEvent;
  10.  
  11.  
  12. lilv_instance_connect_port(instance, 0, &seq);
  13.  
  14.  
  15. // Clear sequence and add new midi event.
  16. lv2_atom_sequence_clear(&seq);
  17.  
  18. uint8_t key = 1;
  19. int8_t velocity = 127;
  20. const char buffer[] = { 0x90, key, velocity };
  21. const uint32_t out_capacity = seq.atom.size;
  22.  
  23. MIDINoteEvent ev;
  24. ev.event.time.frames = 5;// frame time (samplecount?)
  25. ev.event.body.type   = map.map(map.handle, LV2_MIDI__MidiEvent);
  26. ev.event.body.size   = sizeof(MIDINoteEvent);
  27.  
  28. ev.msg[0] = buffer[0];
  29. ev.msg[1] = buffer[1];
  30. ev.msg[2] = buffer[2];
  31.  
  32. lv2_atom_sequence_append_event(&seq, out_capacity, &ev.event);
  33.  
  34. lilv_instance_run(instance, 10);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement