Wishlist: Simple MIDI Routing/Midi out functionality
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Confirmed
|
Wishlist
|
Unassigned |
Bug Description
Someone please tell me if I'm being annoying by submitting all these wishlist items... I'm operating under the assumption that passing ideas along as they occur to me is not a bad thing, but I can easily see how it would be annoying.
Anyhow, I was thinking that controller scripts might be able to accomplish some simple midi routing by just connecting the midi output for that controller (which is created in order to send sysex messages back to the controller to light LEDs, etc.) to another program, and then sending midi messages out using midi.sendShortMsg on a channel that the controller doesn't listen to. This would theoretically allow controller scripts to send midi messages out to control other software, effects, etc., or to simply route incoming control messages for a given button or slider through mixxx and out to another program.
But when I tried to test this idea by connecting the mixxx output to a midi monitor in Patchage, it seems that the mixxx output refuses to connect to anything other than the controller it's linked to.
I think it would be useful to do any or all of the following:
- allow the mixxx midi outputs to connect to anything (assuming my midi.sendShortMsg idea above would work, I think this would be all that would be needed to hack together midi routing functionality in script.)
- implement mixxx functionality (ie: a mixxx control, and/or script function) to send midi messages out of a dedicated mixxx midi out port (or ports) separate from the controller out ports.
- implement "direct passthrough" functionality - so that MIDI mapping xml files could specify that certain controls should be routed through mixxx and out on a certain midi out port, channel, and note (or cc) number - this would allow simple XML only mappings to route controls without having to use any scripting.
Changed in mixxx: | |
assignee: | nobody → Daniel Schürmann (daschuer) |
Changed in mixxx: | |
assignee: | Daniel Schürmann (daschuer) → nobody |
tags: |
added: midi removed: wishlist |
This would leverage the fact that Mixxx has already implemented a fairly robust MIDI scripting system - most software (at least on Linux) doesn't have any scripting functionality built-in - you might be able to map controls, but there's generally no ability to do anything more complex than a direct mapping.
Conceivably, complex functionality could be scripted in something like Mididings, and then routed to Mixxx as well as to other software, but then Mixxx wouldn't benefit from mappings that could be easily shared with the community. By providing MIDI outputs, mixxx might be able to attract more users and script developers by allowing the scripting interface that's already been created to be used as a relatively accessible programmable midi router.
...and, in case it's not clear from my initial post, in addition to simply passing through signals from a physical controller, mixxx scripts could generate their own midi messages, possibly based on characteristics of the song that's currently playing - triggers could be sent to external samplers or effects based on song tempo, etc...