Author Topic: Renaming bus cache clear has not been implemented on latest Cakewalk release  (Read 2475 times)

Offline norfolkmastering

  • Full Member
  • ***
  • Posts: 191
Re: Renaming bus cache clear has not been implemented on latest Cakewalk release
« Reply #15 on: September 19, 2023, 11:42:05 AM »
Hi Alexey

I had a further email from Mark and I did further tests which are both summarised below:

From Mark:
From what I can tell, MIX_PARAM_SEND_OUTPUT isn't using the cache but MIX_PARAM_OUTPUT is.

The way the cache works is that it checks to see if the string exists in the cache, then returns it if it exists. Otherwise it goes through the normal lookup procedure and adds it to the cache.

When you change topology, or perform a host of other operations (such as renaming a bus), the cache is simply cleared.

The behaviour your describing would suggest the cache isn't being cleared.  So I guess the question is, how are you renaming your bus?

I've tested double clicking the name and using F2 on both the bus header strip in the tracks view, and also the console view.  I've also used the track properties pane in the inspector.

All of them result in the cache being cleared, and the new name being returned.

My tests and response to Mark:
If I rename a bus from the console view, then AZ Controller does not get the updated track output name, so MIX_PARAM_OUTPUT is not refreshing.

If I rename a bus from the track view using the track inspector, track properties, then AZ Controller does not get the updated track output name, so MIX_PARAM_OUTPUT is not refreshing.

However, if I rename a bus from the track view, using the bus panel, then AZ Controller does correctly update the track output name so MIX_PARAM_OUTPUT is being refreshed.

In all three methods of renaming the bus, MIX_PARAM_SEND_OUTPUT is always refreshed with the new bus name.

I have tested this a number of times and the above is 100% consistent.

I hope this helps points towards the issue.  I'll also forward your observations below and my response above to Alexey.

Alexey
There is clearly a bug in that one of the three ways of renaming a bus is correctly triggering the refresh of MIX_PARAM_OUTPUT but the other two methods are not.
If you can repeat my tests, that would be helpful.  Let me know if you want me to make a short video.
Hopefully this will help Mark diagnose the issue.
If you have any further comments on any of the above, please let me know and I will forward to Mark.
Regards
Robert

Offline norfolkmastering

  • Full Member
  • ***
  • Posts: 191
Re: Renaming bus cache clear has not been implemented on latest Cakewalk release
« Reply #16 on: September 19, 2023, 02:00:30 PM »
Hello again Alexey

Latest from Mark:
ok, I've pinned it down.
I've put the fix into Sonar, but since CbB is now code-frozen I'll need permission to back-port it there, so there's a chance it won't make the final CbB release.
Waiting on the US to wake up with a decision on that.

So it looks like that's going to be sorted which is great.

I have one remaining issue which we've discussed before:

Track send destination names are always reported in AZ as the stereo pair friendly names rather than the mono friendly name, e.g. a track send destination to 'DAW1' is reported as 'DAW1 + DAW2'.
If I cannot generate unique feedback outputs for these, then my enhanced track scheme is impossible to implement.
So I'd be grateful if you could look to see if there is a AZ solution or whether this is definitely a core Cakewalk issue.  If it's Cakewalk then all I can do is report it and wait a very long time for a fix in the new Sonar.

For completeness I used my test AZ preset to check both track send and track output name reporting:
Track Sends always report the Stereo friendly port name, e.g. DAW1+ DAW2, no matter whether the send is to Left, Right or Stereo audio port.
Track Outputs always report the Left friendly port name, e.g. DAW1, no matter whether the track output is routed to Left, Right or Stereo audio port.

I only need a fix for the track sends.  I will use these to define the mapping relationship between a Cakewalk track slot and a tape machine (and mixer) physical track.  So if I rearrange track slots in Cakewalk, the mapping relationship is not lost.  So the tape machine (and mixer) always get the correct audio feed and the faders in Cakewalk always control the correct channels in the mixer.
So the track send name is (in effect) the track identity.

Let me know please if you consider there is a way to sort this in AZ.

Regards
Robert

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1703
Re: Renaming bus cache clear has not been implemented on latest Cakewalk release
« Reply #17 on: September 19, 2023, 05:10:03 PM »
Hi Robert,

Lets hope there will be fix for Output name or at least stable workaround which I can implement. For sends I guess I can't do anything on my side.

And for the future... will see what Cakewalk will do with "new" Sonar, including how compatible it is going to be with old Surface API. Recent problems with sends and outputs
was regression, in X2 it was working fine. So there can be more regressions when they do more changes (and they obviously will...).

Alternative approach will be integration with REAPER. There is no AZ Controller for it (after all these years I still have not found the time to write it...), but API is truly complete and well supported. While Cakewalk is "exporting" special API for surface integration, REAPER just expose most essential internal functions, usable for surfaces, extensions and in MIDI/audio plug-ins.
So you can add your device specific elements into menus, modify the project structure and all properties, etc.

There are successful projects syncing DM (f.e. X32) with REAPER. Dedicate (C++) code is in fact not so difficult to write.

Offline norfolkmastering

  • Full Member
  • ***
  • Posts: 191
Re: Renaming bus cache clear has not been implemented on latest Cakewalk release
« Reply #18 on: September 19, 2023, 05:32:35 PM »
Hi Alexey

Thanks for the feedback.

Just for clarification ...

Are you saying that the issue with the track send names is that Cakewalk do not provide the mono friendly names in the API?

If that is the case then I will speak to Mark about getting them made available in the Sonar release.

It would help me a lot if you could summarise how you currently fetch the track send names into AZ, so I mean the parameter name and anything else it would be useful for me to know in my discussions with Mark.  This is the only remaining issue I need to solve so I can realise my final big control update, so I don't want to give up now!

Best regards
Robert

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1703
Re: Renaming bus cache clear has not been implemented on latest Cakewalk release
« Reply #19 on: September 20, 2023, 11:13:44 AM »
Hi Robert,

API has GetMixParamValue() and GetMixParamValueText() methods. The first returns numeric value and the second corresponding text. So for sends and outputs I can get the "value" and then ask for its meaning. For reasons you probably remember, I and Cakewalk tries to cash both as far as that make sense (especially in AZ Controller it can happened you need the same value or text several times within one monitoring loop, f.e. to check the value/text is changed and later to send it to your device). If cashing is implemented incorrectly, corresponding value or text is not updated. Obviously that can be wrong on both sides, so I periodically "guess" the problem is in Cakewalk and Mark guess it is in AZ Controller. In worse case it can be on both sides ;)

I just get "the text", I can't guess it is about mono or stereo. Cakewalk API (I guess for historical reasons) expose the number in the "whole list" of targets, including stereo/mono/different types of targets. BTW it also does the same for MIDI, including in project persistence, I guess that "feature" is responsible for many strange MIDI routing bugs in Cakewalk history. So nothing can be done on my side.

I am slowly updating all strip names, with different API methods. So I can detect when something is renamed, even without "topology is changed" flag. Obviously that works in case Cakewalk flash the cash correctly (that is why "bus names" in the test preset was not updating before recent fix from Cakewalk). But I can't use that information to update Output nor Send, because I can't guess which "value" correspond to which strip (sends/outputs can be to buses, hardware outputs, auxes and side chain plug-in inputs, I have no direct info about the number of last 2; also the target can't be the strip itself (in case of buses), so there are some "skips"; the list of strips exposed to surface can be different from real (strips "visibility"); there is no way to get UID for target,
unlike f.e. in REAPER).

Offline norfolkmastering

  • Full Member
  • ***
  • Posts: 191
Re: Renaming bus cache clear has not been implemented on latest Cakewalk release
« Reply #20 on: September 20, 2023, 12:39:44 PM »
Hi Alexey

Thanks for the explanation.

I want to be sure I ask Mark for the correct Cakewalk update, so let me try to summarise from my understanding.  Sorry if this involves some additional questions.

My focus is still with track sends:

Can you confirm that GetMixParaValueText() is only returning the stereo friendly name even if the send is to a mono audio port?

If that is the case, then if I ask Mark to update the API so that GetMixParaValueText() makes available the correct name for each send to an audio port, so either left name, right name and stereo name, will you be able to provide the correct name for each send in AZ?

I do not need to know the stereo/mono nature of each send name.  The friendly names I use tell me that.

If a Cakewalk update is needed, then I think that Mark will be willing to make the update as part of the first Sonar release BUT I need to ensure I am asking him for the correct update.
So I am really asking, what exactly do you need from Cakewalk to allow AZ to display the correct track send names?

Best regards
Robert


Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1703
Re: Renaming bus cache clear has not been implemented on latest Cakewalk release
« Reply #21 on: September 20, 2023, 01:33:13 PM »
Hi Robert,

Yes, I display whatever Cakewalk returns.

Note that for me in current version Cakewalk is "buggy" by itself with sends. Even so it allows me to select "L", "R" or "S" initially, it display it without these characters. If I try to change the send, it also no longer display "L" "R" "S" in the list, even so there are still 3 items in the menu per stereo output.

Offline norfolkmastering

  • Full Member
  • ***
  • Posts: 191
Re: Renaming bus cache clear has not been implemented on latest Cakewalk release
« Reply #22 on: September 20, 2023, 02:35:08 PM »
Hi Alexey

The friendly names I use for the track sends do not use or require the "L", "R" or "S" suffixes.

Within the current track output select you get three names per audio port with the suffixes "L", "R" and "S
Within the current track send select, these suffixes have disappeared!

So, do you have a method in AZ to find 'correct' friendly name for the send which matches the name actually displayed in the send display (I mean in the track strip display just above the send level control)?

Or do I need to ask Mark for a modification to the API?

Regards
Robert




Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1703
Re: Renaming bus cache clear has not been implemented on latest Cakewalk release
« Reply #23 on: September 20, 2023, 04:00:53 PM »
I have tried to explain why I can NOT use strips and HW names to find correct sends and outputs.

If you want changed is labels, you should ask CW.

I will say that is not a modification, it is fixing a bug. Obviously Cakewalk should show (and report to surface API) correct target names (including S/L/R suffix). In current version it doesn't even show the suffix for sends (in the selection nor in the inspector), so I guess the bug is not (or not only) in surface API related part.

But if the codebase is fixed, the only hope is the next version of "Sonar". Note that I probably will not get it (I am not ready to pay for it...).

Offline norfolkmastering

  • Full Member
  • ***
  • Posts: 191
Re: Renaming bus cache clear has not been implemented on latest Cakewalk release
« Reply #24 on: September 20, 2023, 05:13:43 PM »
Hi Alexey

I am sorry if I appear to be asking the same question multiple times.  I am just trying to understand what I need to ask Cakewalk to modify.

So I will ask Mark to modify the surface API to report the correct track send names and see if he is willing to do it.

If it is only going to be updated in paid in Sonar and I decide to buy a license,  then I will consider buying a license for you as well, otherwise I cannot get future AZ support.

Let's see what Mark says first.

Thanks again for all your help with this.

Regards
Robert

Offline norfolkmastering

  • Full Member
  • ***
  • Posts: 191
Re: Renaming bus cache clear has not been implemented on latest Cakewalk release
« Reply #25 on: September 21, 2023, 10:29:22 AM »
Hi Alexey

Mark has added the fix to get the surface API to report the correct track send names.

It will be a Sonar fix so I'll check out the free trial version of Sonar when it appears.

Best regards
Robert

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1703
Re: Renaming bus cache clear has not been implemented on latest Cakewalk release
« Reply #26 on: September 21, 2023, 10:57:21 AM »
Hi Robert,

Yes, I just report the label Cakewalk is giving me. Verbatim.

What Sonar will be, will it support the same API, how much it will cost, etc. are open questions. We just can wait till it is there.