Bank/page support

Archive of the non-categorized posts related to the QLC+ technical support.
Please do not create new threads here, instead, use the categories above !
Post Reply
Joep Admiraal

Hi,

I hacked basic bank support into the midi plugin. With this I can use buttons on my midi controller to switch to different banks. It is not yet in a state to make a pull request because it is full of hardcoded parameters and doesn't have unit tests. Before I improve my code, I would like to know a few things.
1. Is anyone else working on this?
2. I am thinking of putting the bank configuration in the 'Input Profile Editor' on a separate tab, is this ok?
3. What IDE are you guys using and can you share your project file to make life more easy for new developers?

Thanks,
Joep
Matthew Marks

Great idea. I've done a bit on [14-bit support](http://sourceforge.net/p/qlcplus/discus ... /a9085719/) which might conflict. Unfortunately it's not finished as it doesn't support MacOS or Windows.
Massimo Callegari

1. I was actually going to face this matter once a BCF2000 reaches me
2. I'm not sure if this is ok. Here's my thoughts about this:
- a MIDI device can be anything. From a intelligent controller to a plain 88 keyboard, another computer or a sequencer
- what if the controller has 99 pages ? Will you add 99 tabs ?
- since the channel variable is 32bit, I would mask the page on the highest 8 bits of the channel.
- in the profile editor I would instruct QLC+ to recognize the MIDI page up/down change codes
- with the above info you can detect page/channel by just defining the exact layout of your controller. For example the BCF2000 profile will just have 2 more keys mapped
- this "trick" is used also for DMX channels/universe decoupling and I found it genious (thanks to Heikki obviously)

3. Qt Creator is the best (and only) valuable IDE to develop on Qt projects. There is no "custom" project to share. Just open qlc.pro and it will do the rest for you. I normally develop on Linux.

Changing plugins is quite a delicate and advanced task. I would prefer if you can wait for my solution once I get the chance to do it.

Thanks
Jano Svitok

I am really looking forward for this feature. Recently I was looking over my friend's shoulder as he was working with avolite pearl, and the roller seems to be really cool feature. With banks and moving faders this can be even cooler.

If it helps, I have BCF2000 (as you probably know,) and can run tests for you. I know the the turnaround is slow.
Joep Admiraal

Thanks for your reply.

I think my implementation does a different kind of bank switching than the thing you are talking about. In my situation I have a MIDI channel mapped to a specific bank number. This way I can switch to a specific bank in no time. For example I have 3 buttons on my controller with channel 5, 6 and 7. When I press button 5, bank 0 is activated and when I press button 6 bank 1 is activated. When bank 1 is activated and a MIDI value comes in, it's channel is modified in the midiplugin. It will add a predefined number multiplied with the bank number to the channel number. So if I setup the banks to have 32 channels, bank 1 is active and I press a button with channel 100, the midiplugin converts this channel number to 132. A similar thing is done in the Entec Wing page changing.

Of course this can be extended to a mechanism where we switch banks from a rotary button or bank up/down buttons.

*a MIDI device can be anything*, This is perfectly fine in my solution, even keyboards that don't have banks build in can use banks.

*what if the controller has 99 pages ? Will you add 99 tabs ?* I was thinking about adding a single tab to the 'Input Profile Editor'. This tab contains the number of channels a bank has and a list with banks. Each bank in the list should have a channel nr for the bank button.

What do you think about my solution?
I can wait for your solution, I'll just use my hack until the official version is updated.
Massimo Callegari

You're right. My solution doesn't handle direct jump to a bank.
I was probably taking for granted that most controllers have page up/down buttons.
I can start working on my solution while thinking how to support direct bank selection in the meantime.
You know, it's difficult to consider each and every product in the market and every single user might want a different functionality for their own

By the way, which MIDI controller are you using ?
Joep Admiraal

Indeed, it's impossible to make everyone happy with one application.
I am using a nuvj controller at the moment to test qlcplus.
I am going to buy a better controller this month. Probably an akai mpc20 or a midicon.
I tried qt creator and its a lot more efficient than working with sublime text and commandline compiling :)
Massimo Callegari

wow, you're using a VJ console to control lights ! Brave decision :)
Unfortunately I haven't found the MIDI map online, but I have a guess: if the page set signal is a MIDI CC with the page number on its value then it can be easily implemented !
Basically with my solution you'll have 3 new mappings: page up, page down, page set.
You'll just map the page set and internally QLC+ will recognize and mask the selected page.
Jano Svitok

Joep, would you push the code to your repo (in a branch) so that we (at least I :) can have a look at it? Thanks!
Joep Admiraal

Sure.
I'll try to do it this weekend and let you know.
Joep Admiraal

Ok, I pushed my changes to my [repo](https://github.com/joepadmiraal/qlcplus).
Keep in mind that this is just a simple test to see if it is possible to change a bank by pressing a button.
In `MidiPlugin::slotValueChanged` channel 136 is mapped to bank 0 and channel 132 is mapped to bank 1.
Also the total number of channels in a bank is hardcoded to 32.

I did create the UI elements in the profile editor. But since this is probably never going to get into QLC+ I did not finish the midiplugin. So it will not use the settings from the profile editor.
MMM_okc

I'm sorry to bring this topic back up after some time, but I need some help with my MIDIcon controller... I can not use the different pages and the wheels, because for example the wheels have two different midi notes (e.g. 14 for up and 15 for down) and I don't know how to map the knobs in QLC+...

Is there a chance, anyone could help me with this problem?

Thank you very much!
MMM_okc

Ok so I made it to enable the different pages (by changing the input midi channels)... But the scroll function on the controller of the pages from 1 to 16 is infinite (so 1-2-3-4-...-14-15-16-1-2-3)... however the pages in qlc+ are not... I don't know how big the effort would be but maybe it could be introduced in one of the next versions of QLC+?

Still I could not manage to get the turning wheels to work... I would be very happy if someone could help me!!! :)

An idea would be if there was a way to add a second mapping possibility (one for up (already implemented) and another one for down).... because of different notes for up and down

It would look similar to the mapping of the X/Y coordinates field in the live console...


Thank you for your help!
holywoodpower
Posts: 10
Joined: Sun Jun 07, 2015 10:07 pm
Real Name: Thomas

MMM_okc wrote:Ok so I made it to enable the different pages (by changing the input midi channels)!
Can you explain how did you did that ? :)
david garyga

> Ok so I made it to enable the different pages (by changing the input midi channels)... But the scroll function on the controller of the pages from 1 to 16 is infinite (so 1-2-3-4-...-14-15-16-1-2-3)... however the pages in qlc+ are not... I don't know how big the effort would be but maybe it could be introduced in one of the next versions of QLC+?

This is a good idead :)

https://github.com/mcallegari/qlcplus/pull/442
MMM_okc

Yeah! I also have many different ideas and ideas for fixes... should i write them down somewhere? :D
david garyga

The forum section is called "Issues, feedbacks and IDEAS" :)
MMM_okc

Ok... so I will bring this topic back up! :D I really want to get my controller to work completely... Maybe i can also give some financial help after... ;)

So: First problem: About the 3 turning wheels on the right side of the controller... The turning wheels have two channels... And have steppers... There is one midi channel for up and one midi channel for down...

Second problem: Midi out to Midicon Elation... If I change the pages in QLC+ I would be happy if the page on the controller changes as well...


For understanding this next point you have to know the basics of the midicon... Every page (doesn't matter if bank A or bank B) has its own midi channel...
So if changing from page 1 to 2 the midi notes change from 1xxx to 4xxx...

however the s1/s2/s3/s4/s5/s6 buttons, as well as the turning wheels and the touch pads don't change by page switching, they are fixed to midi channel 1


Third and last problem: On the left bank (A):
When raising a fader on page 1 the buttons in the same column have a certain midi note. However when changing to the second page I have to lower the fader to the start position and back up, otherwise it will not change the button note in the same column to the next midi channel


I'm german... sorry for my english but if there is someone who knows german and can help... it would be easier I guess, but it will also work in this way :D

Thank you VERY much for help!
holywoodpower
Posts: 10
Joined: Sun Jun 07, 2015 10:07 pm
Real Name: Thomas

Hi ! for the wheels problem, i used to have the same issue until i found the solution !!

just go to the input/output tab in QLC, then select the profile tab in the top right section, create a new profile, go to the channel tab and activate the wizard.
then turn your wheels.

Turn off the wizard and you'll see 9 channels :

3 are considered as sliders and the others 6 as buttons .

If you delete the 6 buttons and save then apply the profile, you'll be able to use the wheels by manually select the midi channel in the virtual console widget configuration.

Hope this helps,

I'm still stuck with the banks and the pages number not changing on my midicon a little help would be good ;)

Thomas
Post Reply