Page 1 of 1
MIDI Control Surface using multiple MIDI interfaces
Posted: Fri Jan 17, 2014 10:29 pm
by Robert Scheffler
Hello to all the QLC forum members. What a great piece of work you have built here!
Been using QLC+ for 6 months or so now. I did a few successful stage productions with 120-180 DMX channels using my own ArtNET interface. For these shows, I used a Niche Automation Station 24-channel MIDI controller patched into the Virtual Console giving me manual override during the show.
I want to upgrade this setup to a moving fader panel. Specifically the Tascam US2400 which is 25 moving faders connected with a single USB port. In QLC+ and most audio software, this surface appears as 5 MIDI interfaces. One for each of the 3 banks of 8 faders, and 2 more for master and transport.
I played with QLC+, and I can only select a single MIDI interface. All the TASCAM 5 MIDI interfaces are detected by QLC+, but only one can be checked at a time. So unfortunately, only one bank of this device can be used at a time.
So, wondering if the expert that wrote that part of the code would be willing to have this a go. Or maybe point me in a good direction, and I can have a go at adding this functionality.
Ideally, adding a MIDI interface number so that when patching Virtual Console sliders to MIDI controllers, I can choose the MIDI interface, Chan, and Command.
I do want to get into the development group here. I do a TON of embedded C development, and much C++ under MFC (Windows) in my past. Have not started the QT learning curve, and building on Windows...
Any ideas or suggestions appreciated!
Bob Scheffler
PRICOM Design
MIDI Control Surface using multiple MIDI interfaces
Posted: Fri Jan 17, 2014 10:47 pm
by Jano Svitok
Hi,
the way to do it is to use one universe for each MIDI interface. Current QLC+ allows 4 input universes. If you want more (I guess you need 5
) than your timing is awesome -- just today Massimo merged changes that allow more universes. You'll have to compile from git and probably you'll be the third one to test it (maybe not really third, but one of first few).
If you get to test the git version, please report any bugs/problems so we can fix them before release.
Qt is much easier than MFC, and I say much cleaner design. I hope you'll like it.
MIDI Control Surface using multiple MIDI interfaces
Posted: Fri Jan 17, 2014 10:48 pm
by Massimo Callegari
Hello Robert,
Each QLC+ universe can have one input and one output.
I guess you just need to patch 4 of your inputs to 4 universes.
Unfortunately at the moment the limit is 4 but it soon will be extended in the next versions.
MIDI Control Surface using multiple MIDI interfaces
Posted: Fri Jan 17, 2014 10:49 pm
by Massimo Callegari
wow Jano, you beat me up !
MIDI Control Surface using multiple MIDI interfaces
Posted: Fri Jan 17, 2014 11:01 pm
by Jano Svitok
I see that Tascam US2400 has moving faders - don't forget to check both input and feedback columns.
MIDI Control Surface using multiple MIDI interfaces
Posted: Sat Jan 18, 2014 7:58 am
by Robert Scheffler
Thanks for the input. Sorry I missed the multi-universe thing as it relates to MIDI interfaces. 4 is good enough for now, I only loose the Joystick for now.
Now the larger issue seems to be the 2-byte values from/to the sliders.
Sample Message: B0 03 42 23 20
(B0)is Midi status, (03)MSB select fader 4, (42)MSB value fader 4, (23)LSB select fader 4, (20)LSB value fader 4
Had a similar issue with the CMLabs MotorMix, only likes 2-byte values.
Will go into the code and start climbing up the learning curve. Has the double-byte values in control surfaces must have come up before?
Bob
MIDI Control Surface using multiple MIDI interfaces
Posted: Sat Jan 18, 2014 11:26 am
by Jano Svitok
QLC+ currently supports PC, CC, notes on/off and some more. For complete list see MIDI plugin description in the online help.
None of the messages supports 14 bit values. I remember somebody implemented support for values up to 256 but I can't find it and I don't remember whether it was integrated (I suppose it wasn't).
Support for larger values would be great, since greater resolution is always good, and the standard emulations (Mackie HUI etc.) produce large values as well.
MIDI Control Surface using multiple MIDI interfaces
Posted: Sun Jan 19, 2014 11:11 am
by Matthew Marks
Yes, I experimented with automatic detection of two-byte values from a BCF2000 (so no configuration required in QLC+) -
https://sourceforge.net/p/qlcplus/discu ... /a9085719/
MIDI Control Surface using multiple MIDI interfaces
Posted: Mon Jan 20, 2014 10:34 pm
by Robert Scheffler
Matthew,
That was a good discussion thread. Where did it end? Where you able to complete your code so it can be pushed back?
Bob
MIDI Control Surface using multiple MIDI interfaces
Posted: Wed Jan 29, 2014 6:16 pm
by Robert Scheffler
Hello all!
An update to the Tascam US2400 integration:
Using 4 universes, the US2400 connects completely, including the joystick.
The actual slider moves come in as "Pitch Wheel" changes. (0xEn, LSB, MSB) where '0xEn' has the slider number added on. Not a CC message (0xB0) as previously stated.
The unit is divided into 4 sections, the first 3 sections have 8 sliders each, the last section has some extra buttons and the joystick. Each section is on a different midi channel and appears as a different midi interface (thus the need for 4 universes to connect).
The feedback message to move the sliders is formatted the same (0xEn, LSB, MSB)
The problem is that QLC+ doesn't keep a slider offset for Pitch Wheel messages. It does for Note, Control Change, and Program Change, but not Pitch Wheel.
So I made a small modification to the midi plugin to add the slider channel offset to the pitch wheel message storage. This makes QLC+ mimic the other message type behavior with Pitch Wheel events.
I believe this should still work with other controllers with a pitch wheel as it will still feedback with whatever pitch wheel you send it (even if only one).
Bob
MIDI Control Surface using multiple MIDI interfaces
Posted: Wed Jan 29, 2014 8:56 pm
by Matthew Marks
Well done Bob - reminds me I forgot to answer your previous question, sorry.
The code was really as I said in the thread - working in Linux but I was confused by some of the existing stuff and I didn't have the time or means to get it going for the other OSs so I stopped. Looks like you're avoiding 8/14-bit compatibility problems by using a different control type.
MIDI Control Surface using multiple MIDI interfaces
Posted: Wed Jan 29, 2014 9:03 pm
by Robert Scheffler
Well I think Tascam figured this one out first. Using the Pitch Wheel makes it 16-bit 2-byte values always. Since they send and receive all fader values as Pitch Wheel, no compatibility issues with 8 or 16 bit values. This unit is sending 12 bits in the 2 bytes.
Jano pointed me in a good direction, found a bug in the original code, and just made it work with 8-bit values. Good enough for now.
My first step into contributing to this great project!
Bob