libremidi update to v5.4.3 and added virtual midi out as default
This commit is contained in:
@@ -11,12 +11,20 @@ namespace VISEQ::MIDI {
|
||||
|
||||
void Midi::enumerate(){
|
||||
std::cout << (int)obs.get_current_api() << std::endl;
|
||||
|
||||
|
||||
int i = 0;
|
||||
midi_out_ports.clear();
|
||||
for(const libremidi::output_port& port : obs.get_output_ports()){
|
||||
midi_out_ports.push_back({port, i, false});
|
||||
i++;
|
||||
}
|
||||
|
||||
auto out_conf = libremidi::midi1::out_default_configuration();
|
||||
virtual_midi_out = libremidi::midi_out(libremidi::output_configuration(), out_conf);
|
||||
virtual_midi_out.open_virtual_port("viseq out");
|
||||
|
||||
//midi_out_ports.push_back({&virtual_midi_out, 99, false});
|
||||
}
|
||||
|
||||
void Midi::open_midi_out(MidiOutPort *out_port){
|
||||
@@ -41,6 +49,8 @@ namespace VISEQ::MIDI {
|
||||
notes.emplace_back(midi_out, channel, note, velocity, GetTime(), gate);
|
||||
}
|
||||
}
|
||||
virtual_midi_out.send_message(libremidi::channel_events::note_on(channel, note, velocity));
|
||||
notes.emplace_back(99, channel, note, velocity, GetTime(), gate);
|
||||
}
|
||||
|
||||
void Midi::cc(int midi_out, int channel, int cc, int value){
|
||||
@@ -64,6 +74,7 @@ namespace VISEQ::MIDI {
|
||||
for(auto &n : notes){
|
||||
if(time - n.start >= (float)n.gate / 1000.0f){
|
||||
if(midi_outs.contains(n.midi_out) && midi_outs[n.midi_out]->is_port_open()) midi_outs[n.midi_out]->send_message(libremidi::channel_events::note_off(n.channel, n.note, n.velocity));
|
||||
virtual_midi_out.send_message(libremidi::channel_events::note_off(n.channel, n.note, n.velocity));
|
||||
n.erase = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user