Hardware-based scene editing

Post Reply
Chris De Rock
Posts: 103
Joined: Tue Apr 14, 2015 6:54 am
Real Name:

i write that as explaination of my pull request at https://github.com/mcallegari/qlcplus/pull/1194..

First of all i have a small midi controller, the akai midimix and wanted to use this device for funktion editing. here a image of that little thing:
midimix.jpg
as you can see in the image i want to use the buttons "Bank Left" and "Bank Right" for switching between the fixtures in the function editor.
then i want to use the faders 1-8 to edit the fixture-channels 1-8.
while this works i used the "Mute"-buttons above the faders to create channel-banks so i can access channels 1-8, 9-16 and so on.
now i used the "Rec"-buttons to enable/disable the corresponding channels.
to visualize the current active channels i added a small function to change the sliders stylesheet
faders.png
at last i created a configuration dialog to enable the integration of any midi device.
config.png
And yes i thinking to integrate this also into the qmlui. selecting fixtures works already ;)
User avatar
mcallegari
Posts: 4482
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

This is similar to what I have planned for QLC+ 5, but not quite the same in terms of usability.

My reasoning has been:
- we have several input profiles
- an input profile describes faders and buttons
- let's use that information during editing (equal: an input profile is mandatory)

In my view, this feature should be always active and there should be no need to map nothing to anything. So your dialog to map inputs to the scene editor makes it only an additional usability burden to the users.
The only thing that I see missing right now is "signal tags". For example, I need a way to understand from an input profile which button is "next page" or "previous page". This can be trivially solved during input profile editing. (reviewing them is also trivial since they are only 28)
Faders, instead, should be automatically mapped, based on ascending channel number.

I haven't implemented this already in v5 because of the many usability questions this feature raises:
- what about LED bars with 50 channels? Is this features helpful or not?
- what about crossing channels among fixtures? e.g. a fixture with 11 channels and an input device with 8 faders. First 8 channels will be selected. Hit "next" and then what? 3 + 5 channels or 3 only and then at the next "next" other 8 channels will be selected?
- how about feedbacks for motorized faders?
- how about controlling other features of the software? v5 has quick tools (dimmer/pan/tilt/colors/macros/etc) I'd like to control those too. Basically every button/fader of the UI should be controlled via this -always active- feature.
- how about multi screen where editing and virtual console are open at the same time? Will they both respond to input devices signals or only the active window will? Confusing?
- does it make sense to implement is also in v4? (double effort)

See? This is not trivial and should be discussed.
Throwing 552 lines of code at me doesn't make me automatically approve it.
Chris De Rock
Posts: 103
Joined: Tue Apr 14, 2015 6:54 am
Real Name:

mcallegari wrote: Mon Sep 02, 2019 2:13 pm In my view, this feature should be always active and there should be no need to map nothing to anything. So your dialog to map inputs to the scene editor makes it only an additional usability burden to the users.
The only thing that I see missing right now is "signal tags". For example, I need a way to understand from an input profile which button is "next page" or "previous page". This can be trivially solved during input profile editing. (reviewing them is also trivial since they are only 28)
Faders, instead, should be automatically mapped, based on ascending channel number.
* some people dont want to use this feature and it can be confusing for people wo just upgrade. so it needs an enable/disable switch.
* editing the input profiles as well would give you just more code for review. i can add support for that but that needs also additions to the input-profile-editor and so on.
* the same is with automatic assign faders to channels. for example the profile "Akai-APCMini.qxi" has 9 sliders which one should i use. the "Behringer-BCR2000.qxi" has none but it knobs that you can use. what wit a mix of knobs and faders? my midimix (as seen on the picture) has many knobs and buttons and faders. how to map these automatic?
mcallegari wrote: Mon Sep 02, 2019 2:13 pm - what about LED bars with 50 channels? Is this features helpful or not?
- what about crossing channels among fixtures? e.g. a fixture with 11 channels and an input device with 8 faders. First 8 channels will be selected. Hit "next" and then what? 3 + 5 channels or 3 only and then at the next "next" other 8 channels will be selected?
As i wrote i created channel-banks. bank 1 has channel1-8, bank 2 has channel 9-16, bank 3 has channel 17-24 and so on. currently i can use 64 channels. switching channel banks this way is the standard way for working with a DAW (for what most of the MIDI-controllers are made for)
mcallegari wrote: Mon Sep 02, 2019 2:13 pm - how about feedbacks for motorized faders?
in my code is already feedback for buttons implemented. adding feedback for faders should be no problem.
mcallegari wrote: Mon Sep 02, 2019 2:13 pm - how about controlling other features of the software? v5 has quick tools (dimmer/pan/tilt/colors/macros/etc) I'd like to control those too. Basically every button/fader of the UI should be controlled via this -always active- feature.
i wrote this piece of code for version 4. here most features are controlled by simple faders. implementing presets for version 5 is a diferent work.
mcallegari wrote: Mon Sep 02, 2019 2:13 pm - how about multi screen where editing and virtual console are open at the same time? Will they both respond to input devices signals or only the active window will? Confusing?
one of the first things i added was the call "if(m_doc->mode() == Doc::Operate) return;" in sceneeditor.cpp:1721 to only allowing hardware based editing when you are not in the live mode.
mcallegari wrote: Mon Sep 02, 2019 2:13 pm - does it make sense to implement is also in v4? (double effort)
it is implemented in the v4 becouse this is the current working version and i wanted this feature for me.

i know these things are not easy but if we dont start we cannot finish. i will do my best to help you and this is not just dropping a few lines of code o you.

-Chris
User avatar
kuk68
Posts: 4
Joined: Fri Dec 28, 2018 7:44 am
Real Name: Kai Klein

Great Thing, and I'm with you. It will take some time until V5 is ready for production, therefore this would help tremendous in current V4 Projects.
Is this already working and is there a way for me to your Version compiled on a Mac and or PC? I'm a Developer by myself but without real C/C++ knowledge.
Thanks for the Effort.
@Massimo, is this not the kind of Support and Mindset this projects needs? There is so much burden on you shoulders, I believe it would help a lot if it is possible to motivate more people like Chris. You know this is a kind of snowball effect. Anyway, again many thanks for your effort and time you put into this project.

Kind Regards
Kai
Chris De Rock
Posts: 103
Joined: Tue Apr 14, 2015 6:54 am
Real Name:

kuk68 wrote: Wed Sep 11, 2019 7:06 am Is this already working and is there a way for me to your Version compiled on a Mac and or PC?
Here: http://chris.derock.de/qlc/ can you get a version for testing. i think an input profile is needed and you have to configure the editor via the new config-icon in the function editor
User avatar
kuk68
Posts: 4
Joined: Fri Dec 28, 2018 7:44 am
Real Name: Kai Klein

Thx, i will give it a try on the weekend

Cheers

Kai
Chris De Rock
Posts: 103
Joined: Tue Apr 14, 2015 6:54 am
Real Name:

Now i have a bit time to play around with version 5 i'm able to read input values and send them to the correct fixtures. the main question for me is now how i should define which controller does what for editing and what universe i should use.
i see that i (currently) cannot read the input profile from the inputoutputmap but this needs only little changes.
after that it seems that i have to modify the definition for the input profiles but i will wait for suggestions from @massimo to do these changes.
i think we need:
* faders or potis to set channel-values
* maybe a master fader
* buttons to switch fader banks (i prefer banks of 8 channels as this is very common)
* buttons to select/deselect fixtures
Post Reply