Author Topic: Accessing the Cakewalk Track Output router  (Read 2916 times)

Offline norfolkmastering

  • Full Member
  • ***
  • Posts: 105
Re: Accessing the Cakewalk Track Output router
« Reply #15 on: April 04, 2022, 02:35:13 PM »
Hi Alexey

I have spent some time testing the custom build of Cakewalk with added caching in the main control surface handler.
It works well except for one unforeseen issue which I have discussed with Mark McLeod, as follows:

The track Record Arm function is part of what is called the topology graph, which is basically the audio routing graph.  So pressing a track Record Arm button causes the cache to be reset.

The effect is a very slow reaction time from pressing a track Record Arm button to that button being fully illuminated.  (about 1 second).  The impact on the global 'Arm (UnArm) all tracks' button/indicator is even worse (about 2 seconds).  It is not a disaster but you end up double checking to see if a record arm action has actually happened.

I tried, temporarily, removing the track to output feedback actions in my AZ preset and the Record Arm response is fast again, so it is the requirement to monitor track to output status which slows down the cache refresh.  I also tried changing the controller refresh frequency from 25ms to 75ms.  It does not improve the cache refresh time.

There is nothing that Mark can do to fix this problem as the cache is across the whole audio routing graph.

The issue does not impact on any other important track functions, e.g. SOLO, CUT, Fader, Pan.  These are not part of the audio routing graph.

But I wanted to ask if there was any way we might deal with this issue in the AZ app?  Let me explain my small hope!

I use two instances of AZ Controller with Cakewalk, each with one preset.

'REPLAY' I use when I am mixing, so it includes the track to output monitoring.  It does not include the track Record Arm buttons.

'RECORD' I use when recording.  It does include the Record Arm buttons but does not include any requirement to monitor track to output routing status.

I do switch between these two operational modes often (using two screen based buttons), so I want to keep both instances enabled.

So, is there anyway to either:

1. Make the monitoring of track/bus to output feedback actions conditional on another control state (so I mean a supplied MIDI code).  It would have to be a way which temporarily removes the feedback actions from being 'seen' by Cakewalk.

2. Within one instance of AZ Controller, switch off the preset 'on the fly' so I mean again by the application of an incoming MIDI command.

3. Turn on and off an instance of AZ Controller 'on the fly' (same idea as point 2).

Any of these methods would provide a way to switch off the track/bus to output monitoring when it is not required,  This in turn would speed up the Record ARM button response.

Or any other ideas to fix the issue?

Best regards

Robert

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1573
Re: Accessing the Cakewalk Track Output router
« Reply #16 on: April 04, 2022, 05:19:12 PM »
Hi Robert,

I don't really understand which slow operation Cakewalk does with hardware outputs to get the information nor why that information can't be cached permanently (till hardware configuration is changed)... But well, Mark probably can't change that.

AZ Controller in general is constructed to work with one preset for one (or many) device(s). Several instances for one device make no sense.
Monitoring execute all actions before and including Monitor, so it will not call Cakewalk to check changes in case you prevent it with conditions.
I mean you can define Software Set "Mode" with "REPLAY" and "RECORD" states and put "Mode: REPLAY" condition to output monitors. Or put
"Mode: RECORD - Undefined * (final)" before Monitor Action.

My own presets always react automatically on mode changes, so toggling the mode (in the Overview Tab or with Set State from a button) always
does complete trick. But that requires careful monitoring setup, in other words all actions required when the mode is changed should be
in monitors which are (directly or indirectly) triggered by the switch.


 

Offline norfolkmastering

  • Full Member
  • ***
  • Posts: 105
Re: Accessing the Cakewalk Track Output router
« Reply #17 on: April 04, 2022, 06:09:30 PM »
Hi Alexey

I also don't understand why the hardware outputs cause such a big issue and I agree that semi-permanent caching would seem sensible ... but I guess we need to work with what we have,

I am going to experiment with a Software set as you suggested.  Right now I have one question:

Should I make the Logic Control (where the Parameter Value Monitor action is listed) conditional on the Software state?
OR
Should I make Feedback MIDI action conditional on the Software state?

Remember I need to 'hide' the track to output monitor 'asks' from Cakewalk so it does not overload the system when I am in record mode of working.

Regards
Robert

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1573
Re: Accessing the Cakewalk Track Output router
« Reply #18 on: April 04, 2022, 07:40:16 PM »
To avoid checks, put condition on Monitor Action in the Logic list. Feedback is executed after check, so conditions will not work (for the purpose) there (in some of your tests
you had no Actions in feedback list... in this case AZ Controller logically "think" there is no reason to monitor... but once you have Actions there, even in case they will not be executed because of conditions, Monitor is still checked).

Offline norfolkmastering

  • Full Member
  • ***
  • Posts: 105
Re: Accessing the Cakewalk Track Output router
« Reply #19 on: April 05, 2022, 05:42:35 PM »
Hi Alexey

Using a Software state as an action condition on the Monitor Actions worked!

So now when I switch to RECORD mode of operation, then the Software State MODE gets changed to RECORD and all of the track to output monitor actions are disabled.
And the Record Arm button response times all work at normal fast speed.

Then when I switch to REPLAY mode of operation, I don't need to use the Record Arm functions, so the Software State gets changed to REPLAY and all of the track to output monitor actions are enabled.

Thanks very much for all your advice around this track to output monitoring saga.

Best regards
Robert

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1573
Re: Accessing the Cakewalk Track Output router
« Reply #20 on: April 05, 2022, 08:36:02 PM »
Hi Robert,
I know you have fun with Cakewalk. But I have recently looked at some DAW <-> Mixer solution: https://sites.google.com/site/patrickmaillot/x32#h.p_DUz7OP4Wmg0-
May be you can get some information/inspiration from that project (it is open source, so you can check how that is done).
And while AZ Controller still works with Cakewalk only, I have sufficient experience with coding for REAPER to say... REAPER is way better prepared for such projects (strips are more flexible and so can represent almost any logic), it is better coded and Justin put all possible effort to fix any kind of bugs (f.e. such slowness will definitively be considered as a bug). REAPER is almost one man project, but there is one other person who support some parts (John) and it is possible to communicate with both of them.
Also REAPER works on RPI, so good for "embedding" (mixer + RPI + monitor).
Cakewalk's original author has left Cakewalk more then 10 years ago. They had and still have good people, but from strait use observations it is clear that most modifications are like "hacks" on top of each other, instead of rework of core engine. I am surprised they still can keep the thing stable, it must be titanic job changing anything without breaking something else (in practice control surface API is usually a part of that "something else"...).

Offline norfolkmastering

  • Full Member
  • ***
  • Posts: 105
Re: Accessing the Cakewalk Track Output router
« Reply #21 on: April 06, 2022, 10:53:32 AM »
Hi Alexey

I had a look at the X32Reaper interface and it looks to have a lot of possibilities.  I also had a look through a few of the Reaper intro videos to get a feel for Reaper as a control surface.  The GUI seems to be more flexible in layout than Cakewalk (I love the ability to make the faders longer!) but not as developed from a visual perspective.  It also had MTC generation so it should be easy enough to get my tape machine to slave to it.

At some point I will have a look to see if I can get some basic control working between Reaper and my mixer ... would be fine to try!

Best regards
Robert

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1573
Re: Accessing the Cakewalk Track Output router
« Reply #22 on: April 06, 2022, 09:10:59 PM »
Visually REAPER by default is... let say "conservative"  ;)
But it is quite tunable. Not only each strip can have different representation (quickly changeable), it can look f.e. like: http://www.houseofwhitetie.com/reaper/imperial/wt_imperial.html