Author Topic: Motor 49 control surface  (Read 2513 times)

Offline Chris

  • Newbie
  • *
  • Posts: 5
Motor 49 control surface
« on: June 20, 2020, 02:52:32 AM »
I built a Motor 49 preset in AZC about 2 years ago. It works well. I would like to add 3 new features to it if possible.

1) I would like to map out 8 pad buttons, 4 as location stores and 4 as location returns. 1 to 4 to store current location and 5 to 8 to go to the stored location. Example: Pad 1 stores the current location and pad 5 executes a go to the location stored by pad 1.
Is there a way to store the current M:B:T to the display (or somewhere else) and then later retrieve the stored location and pass it to the Go dialog?

2) I have assigned 3 encoders to control track view, Jog, Pan(left/right video pan not an audio pan) and Zoom. I have the Jog and Zoom functions working. Is there a way to get a Pan(scroll) function assigned to an encoder. The pan function I speak of is Ctrl + Mouse Scroll Wheel when the mouse is hovering over the tracks. This causes all visible tracks to scroll left or right.

3) what would be a good tutorial for syncing encoder led rings with assigned encoder value?

Thanks

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1686
Re: Motor 49 control surface
« Reply #1 on: June 20, 2020, 09:19:22 AM »
1) saving locations is an interesting idea. But it is not implemented in AZ Controller, sorry.

2) "Pan" is "Scroll", Scroll/Zoom action with Scroll Hor. option.

3) encoder rings is "feedback". http://www.azslow.com/index.php/topic,336.0.html explains general idea.

http://www.azslow.com/index.php/topic,136.0.html and preset for X-Touch Mini are examples for (2) and (3). Note that X-Touch Mini works with device in Mackie mode, so it use "Prod. specific send".

Offline Chris

  • Newbie
  • *
  • Posts: 5
Re: Motor 49 control surface
« Reply #2 on: June 20, 2020, 03:07:16 PM »
Any chance you could implement a retrieve function for display. Display Get(1,1). This would allow storage and retrieval of text.

Thanks for direction on 2 & 3. I will investigate X-Touch Mini for scroll and feedback functions.

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1686
Re: Motor 49 control surface
« Reply #3 on: June 21, 2020, 12:11:19 PM »
For text there is "Text buffer" action. But it can not be converted back to Time. Proper way is store time directly, so "Time buffer" action.

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1686
Re: Motor 49 control surface
« Reply #4 on: June 22, 2020, 03:47:05 PM »
I have update version with "Time Save/Go To" Action. That should help you with (1).

If you prefer a bit "smarter" assignment, I attach an example. 4 buttons are used for 4 time positions. Long (more then ~0.5s) pressing some button save current time into it. Short pressing return to saved position.
There is no "display saved time" action, if you need the text later you can save it into Text Buffer at the time you save the position.

Saved positions are not persistent (and can not be made persistent, Cakewalk is not REAPER and it does not allow adding arbitrary data into projects). But for that there are normal Markers (supported by AZ Controller).

Offline Chris

  • Newbie
  • *
  • Posts: 5
Re: Motor 49 control surface
« Reply #5 on: June 24, 2020, 09:16:35 PM »
Thank you Alexey

I do allot of midi editing in the piano roll and this goto feature will be a big help.

Just to clarify saved positions will persist until cakewalk is closed or a new position is loaded.
If this is the case that is exactly what I was looking for.

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1686
Re: Motor 49 control surface
« Reply #6 on: June 25, 2020, 12:29:49 AM »
Yes, all positions are saved in RAM. So they are saved till AZ Controller is reset or Cakewalk is closed.

Offline Chris

  • Newbie
  • *
  • Posts: 5
Re: Motor 49 control surface
« Reply #7 on: July 12, 2020, 10:14:28 PM »
Hi Alexey

I have spent the last month testing and reading your code and tutorials. Allot of info there. The following is a list of the presets I have loaded and made operational for the MOTOR 49.   X-touch Compac, x-touch mini, Clip Edit, BCR 2000, StopUndoRec, Mackie MCU VSw3-5, and of course Time Save/Go To. From these presets I've managed to build an outline for my Motor49 layout. As you pointed out in your documentation, it is a very difficult thing to design a control surface preset that has great flexibility, intuitive and has a good workflow. So far I am about 95% satisfied with the layout I have designed. The last remaining design issue is the layout of 8 setup buttons/encoders that are always 1 button touch away. These functions are:
     Track/Bus mode,
     WAI single multi
     Fx/ProCh/Sends/ACT
     etc.

This is a list of features that I am incorporating in my design that I have tested and found operational within your examples:
    WAI Single/8Ch Mode
    Fader feedback and synchronization
    Encoder and Led Ring feedback and synchronization
    Zoom/Pan/Scroll control
    1 Key Goto

I have a couple of questions that will influence how many timers I setup and how far I go with feedback features.

1) What impact does 15 to 30 monitors or timers have on the system. could there potentially be a problem during recording if I move track focus and AZC needs to reset the WAI and 24 controllers that are monitoring vol,mute,gain,pan etc with powered fader reset and led ring reset.

2) Is there a way to enable and disable a timer. If I recall correctly the WAI auto location is performed thru timers. Can I have a button to enable/ disable auto WAI timer calls.

3) I'm unclear regarding monitors. If I setup encoder E1 with a monitor for track pan, then use a soft state change to assign E1 to monitor input gain, does AZC still call the monitor logic for track pan?  I think the question should be can I turn monitor calls on and off?

So far I have a 50 page word doc that has the design details. I will publish this once completed.

Thanks in advance for any help.
CBest
« Last Edit: July 12, 2020, 11:03:07 PM by Chris »

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1686
Re: Motor 49 control surface
« Reply #8 on: July 13, 2020, 01:20:02 AM »
Hello Chris,

1)  It is hard to be sure, but I have never experienced impact on performance from sometimes huge amount of "monitors". And I was using slow computers in comparison to modern systems. If you have some doubts, use "Dup" button in Options to duplicate controls with monitors. Try 10,20,100... till you observe problems. But do not be surprised you need more then 1000 monitors till you notice any difference.
If you still worry, set the "Speed" to something slower then "Ultra". Rings and buttons are good candidates. That divide the number of calls by 2,3,etc. That parameter was introduced for that purpose, but there was no evidence I ever need it.
Just an example. With AZ Controller GUI open, I monitor all parameters for current ACT plug-in. Advanced synths have 2000-3000 of them. Do you notice any performance problems when the GUI is open?

2) monitors (except state and "once" timers) are checked every time (using Speed specified). But you can "void" monitor by some "final" action before Monitor in the list. If such action is the first (obviously make sense with some condition only), almost no code is executed.

3) it is good idea to always have ONE monitor which sends feedback to particular control. Other solutions is looking for troubles. So, if encoder E1 can control pan or input gain, the selection of the parameter to control should happened before single Value monitor. That way the monitor will update the ring when the value is changed OR parameter is changed.
For that purpose in most complicated cases, when one control can perform completely different operations (f.e. control pan or jog) and so require different monitor types in different modes, there are "state dependent" monitors which change the type based on current software state.


In general, even "Ultra" monitor is executed once per 75ms, in not critical thread. Any "audio processor" has to process at least 44 samples per 1ms in real time.
MCU has more then 100 controls, all with feedback. And people used MCU+2xXT+C4, so like 500 feedback parameters, on single CPU computers more then 25 years ago.