View Issue Details

IDProjectCategoryView StatusLast Update
0000917OpenMPTGeneralpublic2026-04-19 14:53
ReporterSaga Musix Assigned ToSaga Musix  
PrioritynormalSeverityfeatureReproducibilityN/A
Status assignedResolutionopen 
Target VersionOpenMPT 1.33 / libopenmpt 0.9 (goals) 
Summary0000917: Virtualize MIDI I/O
Description

Currently each MIDI I/O plugin instance as well as the separate MIDI recording feature directly access RtMidi or the WinAPI. This makes it impossible to re-use a device, e.g. to create to MIDI I/O instances reading MIDI data from the same MIDI device and then passing it on to different plugins.

The actual MIDI I/O should be moved to a separate component (using RtMidi in the background) that sends the inputs to all listeners and processes all outputs.

TagsNo tags attached.
Has the bug occurred in previous versions?
Tested code revision (in case you know it)

Relationships

related to 0001772 assignedSaga Musix Move MIDI output off audio thread 

Activities

Saga Musix

Saga Musix

2020-01-12 13:03

administrator   ~0004192

This abstraction layer should probably also have toggles for unifying all the sustain pedal / channel volume / etc. parsing that is currently spread across the various editor views.

Saga Musix

Saga Musix

2026-04-19 14:53

administrator   ~0006644

This abstraction layer should probably also have toggles for unifying all the sustain pedal / channel volume / etc. parsing that is currently spread across the various editor views.

This is not so simple after all: MIDI keyboard shortcut handling and the MIDI mapper are currenlty applied before sustain pedal is evaluated (as it should be), so the receiving view needs to be in control of the logic here. Maybe we need to split MIDI callbacks into a "PreTranslate" callback (like MFC does for window messages) and a callback for using the MIDI messages for actual note input.

Issue History

Date Modified Username Field Change
2017-02-09 00:29 Saga Musix New Issue
2017-02-14 18:21 Midori Description Updated
2020-01-09 14:31 Saga Musix Description Updated
2020-01-12 13:03 Saga Musix Note Added: 0004192
2024-04-07 21:14 Saga Musix Relationship added related to 0001772
2026-04-19 14:48 Saga Musix Assigned To => Saga Musix
2026-04-19 14:48 Saga Musix Status new => assigned
2026-04-19 14:48 Saga Musix Target Version OpenMPT 1.?? (long term goals) => OpenMPT 1.33 / libopenmpt 0.9 (goals)
2026-04-19 14:53 Saga Musix Note Added: 0006644