 |
|
|
11-06-2009, 12:15 PM
|
#1
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Control Surface Configurator -- Sneak Preview
Available here:
http://stash.reaper.fm/index.php
in the Latest Uploads section
Thought it might be time to get some feeddback on this. It communicates with MCU, MCX, Faderport, and Tranzport so far -- more to come.
Please read the desciption in the stash for some important info, and please, please RTFM, it's hopefully a real easy read -- about 3 pages of text and a ton of pictures.
|
|
|
11-06-2009, 12:38 PM
|
#2
|
|
Mortal
Join Date: Jul 2008
Posts: 148
|
Looks really interesting 
I also have a Mackie C4. I can try to reverse-engineer it's protocol if you are interested on it.
Don't think it would be rocket science, because it sends and receives midi just like the MCU, should be somewhat similar
|
|
|
11-06-2009, 02:48 PM
|
#3
|
|
Mortal
Join Date: May 2006
Posts: 898
|
any luck with HUI? i.e. Motormix?
|
|
|
11-06-2009, 04:24 PM
|
#4
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
You can do part of the reverse engineering yourself just by loading the app and selecting any control surface, then reading the cyan on black set of three numbers -- That's the incoming MIDI message.
For instance if you press Play on the MCU you get
90 5E 7F
and when you release Play you get
90 5E 00
If you do that for all the buttons and vPots that's a great start.
Turn the vPots both clockwise and counterclockwise and note the numbers.
The faders are a little more difficult as some surfaces send 2 messages for a single fader move, so any technical info you can find and provide is great.
Then if you can source a hi-res picture of your surface that's shot dead on -- no artistic angly shots -- I can map the basics pretty quickly.
Originally there was going to be a learn mode, and there may be one later, but for now we're concentrating on Reaper functionality.
|
|
|
11-07-2009, 06:18 AM
|
#5
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Fixed graphics bug, now aspect ratio is maintained for surface control windows.
|
|
|
11-07-2009, 08:36 AM
|
#6
|
|
Mortal
Join Date: Aug 2006
Location: Europe
Posts: 1,934
|
Pretty awesome concept, and bloody hard to use editor  . Worked fine with my MCU.
Goeff, this'll go places for sure. Keep up the great work.
Suggestions ? Plenty, but they involve the user interface of the configuration editor, and that can wait.
__________________
"My ego comes pre-shrunk" - Randy Thom
|
|
|
11-07-2009, 09:15 AM
|
#7
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Quote:
|
Originally Posted by airon
Pretty awesome concept, and bloody hard to use editor... Suggestions ? Plenty, but they involve the user interface of the configuration editor, and that can wait
|
Thanks for the compliments, I uploaded it early for the very purpose of getting feedback on the interface so that I could improve it as I completed the mapping tasks, so please don't hesitate, I'd love to hear your suggestions.
|
|
|
11-07-2009, 10:24 AM
|
#8
|
|
Mortal
Join Date: Nov 2006
Location: Belgium
Posts: 820
|
Hey Geoff,
This looks very promising. Maybe I am missing something, but i thought the intent was also to have support for a 'vanilla' control surface, e.g. where you would define that it has X faders, Y knobs, 30 buttons with three color led support, 30 buttons with one color led support, etc.
Yves
|
|
|
11-07-2009, 10:44 AM
|
#9
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Thanks Yves, yeah, eventually we hope to get there with some kind of "learning" mode, but for now it is really quite easy to add surfaces -- just need someone who has one to determine the MIDI messages using the little app, and that along with a good hi-res picture is all that's needed to add a surface in about an hour or two.
|
|
|
11-07-2009, 12:11 PM
|
#10
|
|
Mortal
Join Date: Aug 2006
Location: Europe
Posts: 1,934
|
The editor in principle is quite efficient. The tutorial could be presented a little better. I followed those step by step instructions to the letter and had a hard time grasping the concepts, because they weren't actually explained, but only show by example. So I'll try to spell out some of the workings of the configuration editor. Please tell me if I get it wrong anywhere.
Control Surface Configuration Editor
There are three kinds of control resources. The button, the range controller (faders & non-endless knobs) and endless controllers (wheel and knobs on the MCU for example).
Each control source can be assigned to perform one of three types of tasks. - Trigger Action(s)
- Cycle what all control resources with more than one action assigned to it will trigger
- Activate an action set either temporarily or until that control resource is used again(usually a button)
There can be more than one actions assigned to a control resource. They are collected in the Action List. This is where you can speed things up slightly be automatically deleting the "No Operation" command in the Actions window when a new action is added. It'll be quite rare that someone will wish to keep a "No Operation" command around for most control resources. When the last action is removed for a control resource, the "No Operation" command can be reinserted automatically as well.
A control resource is chosen for assignment by clicking on it in the control surface view. It will light up purple. Actions can now be added from the Reaper Actions list to the Actions list of the control resource.
Note:The indication of which control resource is chosen exists, but does not stand out very well, because the assignment area would do well to stand apart from the Action Set window and the modifier area. This may simply be a matter of interface design.
An action set is a collection of assignments of control resources, such as buttons, faders and wheels to various actions. Creating a new one is probably what I understand the least.
To create a new action set you first choose a control resource to function as the modifier that activates this new action set. This is done by ALT+clicking on a control resource(a button or switch), which turns red as a result. Then the control resources you wish to be part of this action set are chosen by CTRL+clicking on them. They turn light blue as a result.
And now I have to study the step by step instructions again. It's pretty hard to grasp how to use the editor in this manner.
What you have is a set of controls that can be either switched on and off, or switched on for as long as the modifier button is held. That is easy to understand.
Actually putting this Action set together and assigning actions works in mysterious ways to me. An entire bunch of non-obvious actions need to be performed, but the GUI in no way indicates what the user is supposed to do next. It hints that ALT+click will turn a control resource in to a modifier, which can then be designated momentary or latched. I presume that I can remove this assignment by picking "No modifier" but in no way is this indicated when I choose the modifier control resource.
From what I can tell, ALL control resources chosen to be part of another action set show up in what the GUI titles as "CTRL - Modified". What do I gain by knowing this ? You can tell which action sets a control is used for when you click on its entry in the modified controls. However if you could simply inspect the different action sets you could spot overlaps as well. The action sets cannot be inspected however. If you wish to avoid accidentally triggering them, put buttons next to them.
Also, it may be a good idea to have a list of all the control resource designated cycle and modifier controls. Framing them in red is a good indicator, but a list in the configuration window would keep things centralized for these standout controls.
I might have a bunch of ideas, but this GUI seems very raw right now, and that's the reason I wanted to wait until you're done with your core coding. So far, I have a very hard time using the GUI. The controls and indications are all over the place and the concept of how to make difference action sets, if I even understand the concept fully, is not clear to me, even after spending an hour trying to get stuff going.
I simply have no idea how to access what I've already built for example. No idea at all. Beyond the simplest assignments of actions and cyclers it's not clear to me. Perhaps it's best to do the GUI later ? Well, I could post a few GUI mockups if that's ok with you for now.
__________________
"My ego comes pre-shrunk" - Randy Thom
|
|
|
11-07-2009, 12:31 PM
|
#11
|
|
Mortal
Join Date: Nov 2006
Posts: 859
|
I am unable to run the application. It fails to initialize properly (0xc0000135)
If I can get around this I would love to get you a photo of the 01x I have. It needs this functionality badly.
|
|
|
11-07-2009, 12:51 PM
|
#12
|
|
Mortal
Join Date: Nov 2006
Posts: 859
|
Wierd it loads on my intenet computer.
|
|
|
11-07-2009, 01:38 PM
|
#13
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Quote:
|
Originally Posted by todd24
I am unable to run the application. It fails to initialize properly (0xc0000135) ... Wierd it loads on my intenet computer
|
Should have mentioned, .NET is required to run the app -- not sure what version, might run with 1.0, likely will run fine with 2.0.
|
|
|
11-07-2009, 02:00 PM
|
#14
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Quote:
|
Originally Posted by airon
The editor in principle is quite efficient. The tutorial could be presented a little better
|
First of all airon, thanks very much for taking the time to present such an in depth response. I'll try to answer each point, but you definitely have a good grasp of the overall concepts.
Quote:
|
There are three kinds of control resources. The button, the range controller (faders & non-endless knobs) and endless controllers (wheel and knobs on the MCU for example)
|
I see it just slightly differently -- there are:
Range bound controllers (faders & non-endless knobs).
Switches - a wheel and vPot knob are just versions where press and release are represented by clockwise / counterclockwise rotation.
Quote:
Each control source can be assigned to perform one of three types of tasks.
1. Trigger Action(s)
2. Cycle what all control resources with more than one action assigned to it will trigger
3. Activate an action set either temporarily or until that control resource is used again(usually a button)
|
Yes !
Quote:
|
There can be more than one actions assigned to a control resource. They are collected in the Action List. This is where you can speed things up slightly be automatically deleting the "No Operation" command in the Actions window when a new action is added. It'll be quite rare that someone will wish to keep a "No Operation" command around for most control resources. When the last action is removed for a control resource, the "No Operation" command can be reinserted automatically as well
|
That's a great idea -- I'll do just that ! If they really want to explicitly add a No Operation they can do so as the 2nd (or 3rd etc.) Action. Which reminds me --
You can drag the Actions up / down to re-order them in the list.
Quote:
|
Note:The indication of which control resource is chosen exists, but does not stand out very well, because the assignment area would do well to stand apart from the Action Set window and the modifier area. This may simply be a matter of interface design.
|
Good point.
Quote:
|
Actually putting this Action set together and assigning actions works in mysterious ways to me. An entire bunch of non-obvious actions need to be performed, but the GUI in no way indicates what the user is supposed to do next. It hints that ALT+click will turn a control resource in to a modifier, which can then be designated momentary or latched. I presume that I can remove this assignment by picking "No modifier" but in no way is this indicated when I choose the modifier control resource
|
I'm definitely still struggling on how to present this better, any help greatly appreciated.
Quote:
|
I simply have no idea how to access what I've already built for example. No idea at all. Beyond the simplest assignments of actions and cyclers it's not clear to me. Perhaps it's best to do the GUI later ?
|
Further to the above, you make some more valid points -- perhaps more lists are needed to find "like" things -- modifiers, what's modified etc.
Quote:
|
Well, I could post a few GUI mockups if that's ok with you for now
|
I would more than welcome your input, and once again, thanks for taking such a thorough look on 1st pass.
|
|
|
11-07-2009, 02:12 PM
|
#15
|
|
Mortal
Join Date: Nov 2006
Posts: 859
|
Great! Thanks!
What would you need to include an 01x?
I can shoot a pic of it.
|
|
|
11-07-2009, 03:00 PM
|
#16
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Quote:
|
Originally Posted by todd24
What would you need to include an 01x?
I can shoot a pic of it
|
See the post about 4 down from the top.
Basically you just need to load the app and choose any old surface available, set up your MIDI (instructions in the RTFM.PDF) then go to work notating all the messages the controls send by pressing and releasing each one in turn and noting the values.
The picture should be shot hi-res from directly overhead -- probably not a wide angle -- don't want any distortion -- just a good resolution plain shot that looks like the surface.
|
|
|
11-07-2009, 03:20 PM
|
#17
|
|
Mortal
Join Date: Jan 2009
Posts: 54
|
Quote:
Originally Posted by d. gauss
any luck with HUI? i.e. Motormix?
|
+1, would also like to know
|
|
|
11-07-2009, 05:06 PM
|
#18
|
|
Mortal
Join Date: Nov 2006
Posts: 859
|
Got it working!
I can see this has huge amounts of flexibility. Its going to take a few times through the RTFM to get it all.
I will work on getting some good lighting together to shoot the 01x.
Awesome work I have been waiting for this for a long time
Thanks!
|
|
|
11-07-2009, 05:19 PM
|
#19
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Just uploaded a new version with Airon's "No Operation" suggestion implemented. I also added some explanation to the manual, but I still find it confusing myself so I can imagine what others must be going through  . I'll keep improving things, hang in there.
|
|
|
11-08-2009, 02:11 AM
|
#20
|
|
Mortal
Join Date: Aug 2006
Location: Europe
Posts: 1,934
|
How about having a "New" and an "Edit" button for the Action Sets. Editing the Action Sets would then also include picking a red trigger. That way the user isn't bound to a static sequence of events but can 'connect' a trigger to an action set that modifies some of the controls.
__________________
"My ego comes pre-shrunk" - Randy Thom
Last edited by airon; 11-08-2009 at 02:21 AM.
|
|
|
11-08-2009, 03:46 AM
|
#21
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Just uploaded the latest -- the docs now have another 10 pages of pictures. Let me know if I'm getting closer to making this understandable
|
|
|
11-08-2009, 03:51 AM
|
#22
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Quote:
|
Originally Posted by airon
How about having a "New" and an "Edit" button for the Action Sets. Editing the Action Sets would then also include picking a red trigger. That way the user isn't bound to a static sequence of events but can 'connect' a trigger to an action set that modifies some of the controls
|
Not quite sure I understand this. The example shown is just one way of doing things. You are free to define your action Sets first, then select and connect or disconnect the Modifier triggers later if you want. Is this what you mean?
|
|
|
11-08-2009, 09:25 AM
|
#23
|
|
Mortal
Join Date: Jan 2008
Posts: 634
|
Would this work with a midi keyboard controller like the M-audio prokeys 88?
I would love to get more use out of the knobs, buttons and sliders.
__________________
Music is the best.
|
|
|
11-08-2009, 10:03 AM
|
#24
|
|
Mortal
Join Date: Nov 2006
Posts: 859
|
The GUI needs some work to be more understandable. I am going to try to mock up a suggested flow.
A couple things come to mind though.
Buttons that are assigned to cycle through action sets could be totally handled on the JPEG part. You could just right click the button to select its mode. No need for them to be on the main GUI at all.
A button that is assigned to as a cycler should not be allowed to do anything else.
An option to force "grouped" (IE connected to an action set cycler) action sets to be all the same length (auto-insert "no action" to even them out.
Overall its probably TOO flexible, thus make it really confusing.
|
|
|
11-08-2009, 10:10 AM
|
#25
|
|
Mortal
Join Date: Nov 2006
Posts: 859
|
"buttons that are assigned to cycle through action sets" = "Modifier"
|
|
|
11-08-2009, 10:30 AM
|
#26
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Quote:
|
Originally Posted by todd24
The GUI needs some work to be more understandable. I am going to try to mock up a suggested flow
|
You might want to hold off just a little, although your ideas are certainly welcomed, I'm redoing the GUI myself right now -- just took a break to see what's up  Should have something better later today.
Quote:
|
Buttons that are assigned to cycle through action sets could be totally handled on the JPEG part. You could just right click the button to select its mode. No need for them to be on the main GUI at all
|
Except you then lose the ability to see what else the Cycler cycles. The new GUI has a list box for Cyclers just like the Modifiers.
Quote:
|
A button that is assigned to as a cycler should not be allowed to do anything else
|
Except that excludes a self modifying button -- as in I do the current Action and Cycle up one so that next time I'm pressed I do the next Action and cycle up one..... etc.
Quote:
|
An option to force "grouped" (IE connected to an action set cycler) action sets to be all the same length (auto-insert "no action" to even them out
|
I hear ya' but I'd rather let the user decide whether to do that or not, but your point is well taken in the general case -- maybe an option -- OMG we haven't opened the options can of worms already have we?
Quote:
|
"buttons that are assigned to cycle through action sets" = "Modifier"
|
Not quite -- Modifiers set the Control's Action Set to a specific named Action Set -- e.g "Channel EQ"
Quote:
|
Overall its probably TOO flexible, thus make it really confusing
|
That's the tricky part -- keeping it flexible but usable.
Great stuff, much appreciated, keep 'er coming.
|
|
|
11-08-2009, 10:37 AM
|
#27
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Quote:
|
Originally Posted by zappadave
Would this work with a midi keyboard controller like the M-audio prokeys 88?
I would love to get more use out of the knobs, buttons and sliders
|
I can't see why not, just need a good hi-res overhead screen shot and a MIDI map.
Wait a minute, one caveat -- At present the app handles MIDI directly, we'd likely have to work with the Reaper programmers to allow one MIDI port to be used for both Keyboard and Control Surface tasks.
For one MIDI port that is true already and is part of the SDK design, but this app allows cross-control -- e.g. a Faderport controlling an MCU, so there's a little wrinkle in there -- certainly not insurmountable though.
Hmmmmm..... I'm just thinking this through as I write it -- on second thought I think we'd be fine.
|
|
|
11-08-2009, 10:52 AM
|
#28
|
|
Mortal
Join Date: Jan 2008
Posts: 634
|
The prokeys 88 has a usb and midi for control.
Does that help?
__________________
Music is the best.
|
|
|
11-08-2009, 11:18 AM
|
#29
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Quote:
|
Originally Posted by zappadave
The prokeys 88 has a usb and midi for control.
Does that help?
|
Not necessary, but sure couldn't hurt
|
|
|
11-08-2009, 11:26 AM
|
#30
|
|
Mortal
Join Date: Jan 2008
Posts: 634
|
I'll take a picture, as I can't find one on line, and the cc numbers and midi layout. It's Keystation pro, 24 knobs, 9 sliders and 22 buttons.
__________________
Music is the best.
|
|
|
11-08-2009, 11:40 AM
|
#31
|
|
Mortal
Join Date: Nov 2006
Posts: 859
|
Geoff,
I have fair shoot of the 01x. Should I email it to you? Its 3.64 mb. Should I scale it down for?
|
|
|
11-08-2009, 12:23 PM
|
#32
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Quote:
|
Originally Posted by todd24
I have fair shoot of the 01x. Should I email it to you? Its 3.64 mb. Should I scale it down for?
|
No please leave it at the highest resolution possible, I will adjust as necessary on this end.
Have you got all the controls MIDI mapped as well or, alternatively, do you have a link to the spec?
|
|
|
11-08-2009, 12:34 PM
|
#33
|
|
Mortal
Join Date: Nov 2006
Posts: 859
|
Quote:
Originally Posted by Geoff Waddington
No please leave it at the highest resolution possible, I will adjust as necessary on this end.
Have you got all the controls MIDI mapped as well or, alternatively, do you have a link to the spec?
|
No I don't not have either. How do you want the mapping presented? Spread sheet? Also, most buttons send out a midi signal that is not on screen long enough to capture. I could get them from midi ox though. It is worth noting there are many buttons which do not function in "control" mode.
One other thing. Many of the remote functions already work well with reaper (IE faders, pan, arming, etc. It would be great if the app passed un altered signals to reaper in the current fashion. That way you would not have to map things that already work.
|
|
|
11-08-2009, 01:09 PM
|
#34
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Quote:
|
Originally Posted by todd24
No I don't not have either. How do you want the mapping presented? Spread sheet?
|
Anything readable is fine.
Quote:
|
One other thing. Many of the remote functions already work well with reaper (IE faders, pan, arming, etc. It would be great if the app passed un altered signals to reaper in the current fashion. That way you would not have to map things that already work
|
I have to admit, a pass through mode was never considered in the design, maybe it should have been, but that certainly isn't the philosophy behind this thing.
So the short answer is -- no pass through in the near term but maybe down the road sometime as a future feature.
|
|
|
11-08-2009, 01:46 PM
|
#35
|
|
Mortal
Join Date: Dec 2007
Posts: 686
|
Couldn't you get the list of midi for the 01x from the source for the 01x csurf ?
NAS
|
|
|
11-08-2009, 02:22 PM
|
#36
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Quote:
|
Originally Posted by NAS
Couldn't you get the list of midi for the 01x from the source for the 01x csurf ?
|
Yeah, but according to the comments in the .cpp file the mapping is for Cubendo mode which is more restricted than the General mode, I think that's why todd24 was looking in the first place. Good thought though, I could certainly get as far as the current implementation fairly easily.
|
|
|
11-08-2009, 02:57 PM
|
#37
|
|
Mortal
Join Date: Oct 2009
Posts: 81
|
Edit: Dont mind me. I misread something.
|
|
|
11-08-2009, 03:41 PM
|
#38
|
|
Mortal
Join Date: Nov 2006
Posts: 859
|
Quote:
Originally Posted by Geoff Waddington
Yeah, but according to the comments in the .cpp file the mapping is for Cubendo mode which is more restricted than the General mode, I think that's why todd24 was looking in the first place. Good thought though, I could certainly get as far as the current implementation fairly easily.
|
I will try to map it in General mode. I think that will open up more controls. If the final app allows sharing of configurations, then it will only need to mapped once to get the basic functions working. Its worth the effort.
|
|
|
11-08-2009, 04:24 PM
|
#39
|
|
Mortal
Join Date: Nov 2006
Posts: 859
|
Upon reflecting the reason that the cubase mode was used was it allowed two way communication. you get the tracks labeled, meters etc.
I wonder does the App eliminate communication back to the 01x?
|
|
|
11-08-2009, 05:26 PM
|
#40
|
|
Mortal
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 227
|
Quote:
|
Originally Posted by todd24
I wonder does the App eliminate communication back to the 01x?
|
Not at all, but that definitely comes 2nd because it is a lot harder to "discover".
You can just listen to the MIDI stream coming from the surface to determine the MIDI message(s) for each control, but without the spec it can be very difficult to "guess" which message(s) are used to display things.
|
|
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 07:39 PM.
|