Jump to content

BR: Surface API, Strip output name


azslow3

Recommended Posts

When destination (bus) is renamed, old name is reported by  GetMixParamValueText(... MIX_PARAM_OUTPUT ...).

I can't tell since when, but I remember a discussion about some "caching for names" not long time ago. In Sonar X2 it is working correctly.

CbB version: 2022.11 (build 021, 64bit)

 

Link to comment
Share on other sites

Thanks for the report - we'll look into it.

[EDIT]  - Found & fixed the issue for the next release.

Normally, the cache isn't cleared unless the project topology graph has changed (e.g. routing changes or adding/removing tracks). 

Bus routing and their names are cached, because it needs to walk the topology graph to find them - this takes time, which is why we introduced the cache in the first place. Track names however are instantly available, so they're grabbed in real-time.

The fix was to clear the cache whenever Bus, Aux track, or Patch Points are renamed.

 

  • Thanks 1
Link to comment
Share on other sites

Thanks!

In my current dev version of AZ Controller I try correctly cache names when possible (previous behavior was not optimal and buggy...) . That is how the bug was spotted. Since I slowly checking for names, once a change is noticed I re-check output/send names (if they are used for feedback).

May be it is time for me to check if CbB: (a) trigger topology change flag for refresh when output or send output are changed (the last by surface) (b) if outputs/sends to side-chains and auxes are controllable. I am still developing under X2, may be there are some improvements ?

 

  • Haha 1
Link to comment
Share on other sites

AFAIK I don't think the timing of topology change messages has changed much since X2, apart from the obvious introduction of Aux Tracks & Patch Points.

Basically ANYTHING that changes the routing will trigger a topology graph change, so that includes:
- Adding/Removing Tracks, Buses, Patch-points or Aux Tracks
- Adding/Removing Sends
- Changing any inputs or outputs
- Adding/Removing Effects
- Enabling/Disabling input or output ports

This particular scenario was different, as the routing itself hadn't actually changed - only the name of the ports had.

The control surface cache is reset:
- Any time the topology changes
- Any time the track or bus ordering changes
and in the next release...
- Any time a bus, aux track or patch-point is renamed


As far as controlling sends are concerned.  You can't change the destination of the sends via the API,  but you can:

- Enable/Disable a send
- Change the send level
- Change the send pan
- Change it to pre/post
 

Link to comment
Share on other sites

On 2/19/2023 at 12:15 AM, msmcleod said:

As far as controlling sends are concerned.  You can't change the destination of the sends via the API,  but you can:

You can... That was never possible if the output was to side-chain and I remember there was problems with AUXes (since reply what is current output returns error, at least for side-chains), but changing bus to other bus is working fine. Well, if there are several sends, changing the output can auto-reorder sends, which for me is a bug, but that is not surface specific.

Surface can't see topology graph, it just get a flag "topology changed" as refresh parameter. And the flag is not set when track output is changed, nor when send output is changed by surface. At least in X2.

 

Link to comment
Share on other sites

Just to echo Alexey's post above that I have been able to control the destinations of sends using AZ Controller.  I use AZ to set sends to any external audio port using the port's friendly name.

The issue I do have (which I think that Alexey alludes to above) is that I can't get any feedback from the Cakewalk API when a send destination is changed (whether that be done using the Cakewalk GUI or whether I do it via AZ Controller).  Is there a way to make the current send destination 'friendly name' readable via the API?

Link to comment
Share on other sites

  • 3 weeks later...
4 hours ago, norfolkmastering said:

Mark

Just a note to say that in my tests, changing a send destination does not seem to be triggering a topology graph change.  Would you mind checking this as part of the update work for the next release?

Just checked that now. 

In every project I've tried, the REFRESH_F_TOPOLOGY flag is definitely being set when a send destination is changed.

This code hasn't changed since 2006.

Are you actually changing the send destination, or just renaming it?
 

Link to comment
Share on other sites

14 hours ago, msmcleod said:

Just checked that now. 

In every project I've tried, the REFRESH_F_TOPOLOGY flag is definitely being set when a send destination is changed.

This code hasn't changed since 2006.

Are you actually changing the send destination, or just renaming it?
 

Are you sure that is the case when you change by the API? Sure it can be my bug, but in my observation the flag is set only in case you change is done
by mouse.

Link to comment
Share on other sites

4 hours ago, azslow3 said:

Are you sure that is the case when you change by the API? Sure it can be my bug, but in my observation the flag is set only in case you change is done
by mouse.

That would make sense.

Cakewalk only tells you things it's changed.  If you know you've changed via the API, why do you need Cakewalk to tell you what you've changed?

Link to comment
Share on other sites

2 minutes ago, msmcleod said:

That would make sense.

Cakewalk only tells you things it's changed.  If you know you've changed via the API, why do you need Cakewalk to tell you what you've changed?

In the tests I have done, I am changing the send destination in Cakewalk by mouse, but I get no output from AZ Controller unless I change somethings else to invoke a refresh (e.g. a track destination).

Link to comment
Share on other sites

The refresh is sent out many times a second. The refresh includes a status - this is a bit mask, so there could be more than one flag set.  One of these flags is the REFRESH_F_TOPOLOGY flag.

If AZ Controller is looking for the REFRESH_F_TOPOLOGY flag on its own, that may be the issue.

Link to comment
Share on other sites

18 hours ago, msmcleod said:

That would make sense.

Cakewalk only tells you things it's changed.  If you know you've changed via the API, why do you need Cakewalk to tell you what you've changed?

I expect Cakewalk inform me when something is changed homogeneous way. Asking Cakewalk to do something does not means it has done that immediately, it can be not possible or is done later.
Well, that is not so important, I am just monitoring the value without caching now.

  @norfolkmastering AZ Controller specific processing is relevant for AZ Controller only. There are times Cakewalk does something not possible to "fix" in AZ Controller, like original BR, and there are times AZ Controller does something unexpected, like your last observation. Lets not disturb Cakewalk with something they do not manage ;)

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...