Comment 3 for bug 1131460

Revision history for this message
rob (another-rob) wrote :

Not sure if I'm understanding you - by "virtual midi ports", do you mean mixxx ports opened by scripts for anything other than a physical controller? (Like accepting input from a sequencer or something?) If so, I've tested that, and yes, mixxx works fine with those ports...

What I'm proposing above would work fine even if the script could only send through the mixxx virtual midi port it's linked to, but the way things are now, it seems that port will refuse all connections except to the controller it's linked to (ie: you can't connect an arbitrary piece of midi software to that port in patchage). If mixxx were changed so that the mixxx script outbound ports could accept any arbitrary connection (in addition to the default outbound connection to the linked controller), then (I think) mixxx scripts could send arbitrary midi messages out on that port (on a channel that the hardware controller doesn't listen to), and those messages could be received and used by other midi capable software.

I'm speculating, but I imagine enabling arbitrary connections to the mixxx outbound script ports would probably not require a huge change to Mixxx... Easy-ish fix?

A more ideal, but undoubtedly more complicated solution would be to allow scripts to open arbitrary dedicated midi ports and send messages out of those ports (maybe allow different controller scripts to send to/access the same dedicated ports?). Then the user could manually connect midi capable software and devices to those ports using Patchage or something, and those connected devices could do whatever the user wants with the midi signals they receive...

...basically, it occurs to me that Mixxx's midi scripting interface is pretty unique, at least in Linux. (it's pretty easy to use, and there aren't a lot of accessible midi scripting options - mididings comes to mind, but other than that...) I've been able to really extend the capabilities of some of the controllers I'm working on scripts for (making one set of buttons function as multiple banks of buttons, etc.) Given the fact that a lot of people working with linux will cobble together solutions to problems by using bits and pieces of capability from a variety of pieces of software, it's conceivable that people who don't need Mixxx for its DJ capabilities might wind up using it just for its midi scripting capability... That might lead to attracting more developers working to extend bits of mixxx that aren't core "DJ" functions - maybe working on things like audio sends and returns, effects, adding sampler capability, etc...

...if that makes any sense at all...