libremidi update to v5.4.3 and added virtual midi out as default

This commit is contained in:
Sebastian
2026-06-23 00:05:41 +02:00
parent dc0003232a
commit 51cd271b6f
166 changed files with 8135 additions and 2009 deletions
+11
View File
@@ -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;
}
}