AZSlow

AZ Controller plug-in for Cakewalk SONAR => Discussions => Topic started by: norfolkmastering on May 12, 2020, 10:19:17 AM

Title: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 12, 2020, 10:19:17 AM
Good day Alexey

I am designing a digitally controlled analogue mixer which I want to remote control from Cakewalk via MIDI.  So I will use a Cakewalk project which will mirror the external audio mixer in terms of numbers of channels and groups etc.  I move a fader in Cakewalk and it controls the external mixer channel level (via a VCA).  The external mixer will not have its own hardware control surface.

I hope to use the AZ Controller as the control interface.  So I want to feedback Cakewalk fader positions, mutes, solo etc by MIDI which will be decoded by a PIC processor to provide the necessary control signals for my external audio mixer.

I have two questions:

1. Assuming I programme a 'dummy' external MIDI controller into AZ Controller, does Cakewalk require any basic handshaking so that it will begin to send feedback messages via MIDI?  These feedback messages reflecting the current position of control elements within the Cakewalk project, e.g. faders, solo and mute status.

2. How does Cakewalk (using AZ Controller) feedback the initial status of all settings when a session is started?

Regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on May 12, 2020, 12:57:08 PM
Hello Robert,

First of all, AZ Controller was used successfully for syncing DM settings and Cakewalk project. Mostly for mirroring mixer settings into projects (to use a mixer as control surface), but also in other direction (to control mixer settings from project). Till some degree it can even control FXes (f.e. EQ) of the mixer. So you are on the right way.
It is important to have sufficient throughput, so MIDI over USB is better option than MIDI cable. Also try to prepare hardware side for heavy traffic (f.e. quickly buffer incoming messages instead of trusting your PIC will be able to do everything in time).

For your questions: the logic of initial transfer is up to you. If you program some "query - response" handshake in the mixer, AZ Controller can be instructed to delay sending feedback till the device is "online". Otherwise it assumes that you switch the mixer on before starting Cakewalk, which in general must be the case for USB-MIDI (Cakewalk does not like MIDI "hot-plug"). Finally, you can program some button (f.e. labeled "Sync") to resend all information from AZ Controller (in well build preset, that should automatically work with a single "Reset all monitors" action).

I can help you with some test preset once you define the protocol. AZ Controller supports (N)RPNs in case you want good precision for parameters, but that increase the traffic 4x times.

Finally, if networking is an option, I strongly recommend using OSC for communications. You will have less problems with programming and simpler hardware design ($1-2 ESP chips have whole hardware/software stack ready to open WLAN connection and send/receive arbitrary protocol, including OSC). AZ Controller supports OSC.

Cheers,
Alexey.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 12, 2020, 02:56:21 PM
Hi Alexey

Thanks very much for the really useful information.  I wanted to establish that it would be feasible to use the AZ Controller before I started any big design work.  It does look feasible.
Your comments about OSC are interesting and I will explore that option.  I have no particular reason to use MIDI as the audio mixer control system will be an entirely new design.

If I get to the next stage, I will contact you again to discuss progress and testing.

Very best regards
Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 12, 2020, 06:32:35 PM
Hello again Alexey

Sorry, one more question for now:-

I have installed AZ Controller on my PC and I have it working with Cakewalk and a Nektar LX88 keyboard which has some sliders, knobs and buttons to work with.  No problem so far.

I need to find some way of monitoring the feedback messages which I will configure in AZ Controller and then will be sent out via MIDI port.  I mean I want to view the 'raw' MIDI messages.

I tried monitoring the outgoing MIDI port using MIDI-OX but it does not support monitoring of a MIDI port which is also being used by another application (which is strange but that's my interpretation of the error message which MIDI-OX is displaying).

Can you suggest a way to monitor the feedback messages being sent to the MIDI output port?

Regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on May 13, 2020, 11:02:32 AM
MIDI-OX is the tool to use. But you need some "MIDI loopback" to use it for monitoring, so AZ Controller -> MIDI Loopback -> MIDI-OX ( -> Nektar).

That is rarely needed in practice, just in case you want RE device with unknown protocol or to find a bug in AZ Controller...
Note that you can use checkbox "loop" in AZ Controller MIDI sending actions, the message will be visible in "Last MIDI event" then. If it is the same as assigned,
that can trigger infinite loop, so be careful with this option. I just select slave or other MIDI channel before setting "loop" for testing feedback.

Another approach is 2x AZ Controllers + MIDI loop, one instance imitate "the device" and another is normal.

Finally, to evaluate possible logic, you can use some OSC app like TouchOSC. So you construct the "surface" you want, configure AZ Controller preset and check
it really works. F.e. that changing volume in Cakewalk move corresponding control.

You will need to learn ideas behind AZ Controller "feedback" (there are tutorials and examples), but for your particular case I suggest:
1. Use (fixed) Track names in preset. You will be able to use your "Mixer" project as a template then, so adding extra normal tracks will not influence the functionality.
Using WAI or numbered tracks can be more problematic (you will need to remember to keep mixer tracks at particular place in projects).
2. If you have some mixer parameters not existing in Cakewalk track, you can define some dummy FX Chains. Map
parameters you need to FX chain parameters and rename them to whatever you need on the mixer. So you will have "dedicated channel strip" for your mixer. Plug-in
parameters will be used just to preserve values in project, since no audio is routed plug-in will not do anything. So plug-in(s) inside should be lightweight.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 13, 2020, 06:33:39 PM
Hello Alexey

Thanks for the advice.  I got it working using MIDI Loopback.  So now I can read the "feedback" messages which I programme in AZ.  Just tried programming one slider knob on my external controller to a track level in Cakewalk and then programmed a feedback of that track fader position to the MIDI output and can read the MIDI CCs in MIDI-OX.  All good!

Yes I plan to create a fixed project template in Cakewalk to work with.  Most controls (for my needs) look straightforward.  Biggest challenge is to find a way to map:-

1. Cakewalk track to groups and mains routing in Cakewalk back to my (still to be designed!) digitally controlled analogue mixer.

2. Cakewalk track to aux send routing.

3. FX bypass.

Any ideas for how to 'grab' these would be welcome.

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on May 14, 2020, 09:20:43 AM
Hello Robert,

Question 1. and 2. I do not understand, sorry.

3. in general there is no known way to bypass individual effects with anything else except mouse. VST3 has "Bypass" parameter which is always the first. Some VST2 have individual bypass.

Cheers,
Alexey.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 14, 2020, 11:11:03 AM
Hello Alexey

Let me try to clarify all three points (and sorry for the longer explanations!);-

Points 1. and 2.  My digitally controlled analogue mixer will have track to group, track to master and track to aux routing.  On a traditional analogue mixer, there would be buttons to control this routing.  So if we consider a traditional analogue mixer with 24 channels, 8 groups, 1 master stereo buss and 4 aux buses, each channel strip would have routing buttons for:-

Group 1
Group 2
Group 3
Group 4
Group 5
Group 6
Group 7
Group 8
Main 1
Aux 1
Aux 2
Aux 3
Aux 4

Cakewalk does not work exactly like that, in that (in Cakewalk) it is only possible to route a channel (track in Cakewalk speak) to one group or main stereo bus at a time.  I am happy to place the same restriction on my digitally controlled analogue mixer.

So remembering that my digitally controlled analogue mixer will be entirely controlled by Cakewalk, I need to find some way to implement the channel to group and main (master) bus routing (and also for the channel to aux routing).

If we focus in on Cakewalk for a moment:-

If I route e.g. Track 1 to Group 1 (Group 1 being a Stereo Bus), then this is indicated by a routing 'label' at the bottom of the track display on the Cakewalk Screen.  I want to 'read' that routing information and use it to mimic the same routing in my digitally controller analogue mixer.  So really my question is whether there is any theoretical way which the AZ controller can read that routing information for each channel?  Even the routing name (in my example, that would be a 'O Group 1' displayed at the bottom of the track strip), would be enough for me to control the analogue console routing.

If I cannot find a way to do this, then I would need to build a hardware panel to control the routing and that defeats the elegance of what I am seeking to do; that is a digitally controlled analogue mixer, 100% controlled from Cakewalk.

3. FX Bypass.  I was specifically referring to the track FX button which (in Cakewalk) allows you to bypass all 'FX' effects allocated to that track.  It is one of the few Cakewalk buttons which does not have 'standard' Cakewalk Remote Control capability.  It is a bit strange because the track 'ProChannel' bypass switch is capable of remote control.  I want to use this 'FX' bypass button to remote control my analogue channel insert bypass function.

I hope this is enough clarity for you to consider what might be possible on the above points.  If you have the time for a Zoom (or similar) video chat, I can explain further.

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on May 14, 2020, 01:24:55 PM
Hello Robert,

1. and 2. Cakewalk mimic original analog consoles. I am not sure what you mean by "Groups", but Main is Main and Aux is Bus in Cakewalk. For controlling purpose, you need "Mixer main" bus to which all controlling tracks are pointing (since you want control it separately from Cakewalk "Main", that will influence the volume from Cakewalk). And additional buses "Aux 1", "Aux 2", etc. Each controlling track will have 4 sends to this auxes. Each such send has all parameters (on/off, volume, pan, pre/post), so I guess that is more then sufficient for controlling mixer routing.

In case by "Groups" you mean something like extra Auxes, that can be done the same way as with Auxes. Just note that initialization should set all parameters, remember throughput and processing speed comment (you can overseen the issue testing just one channel, I recommend testing with complete AZ Controller preset for final number of channels even when testing smaller number of physical channels). Otherwise the solution can be like for 3.

3. See my previous comment about FX Chains. You can define "dummy FX chain" with parameters like "Bypass insert", "Group X", etc. and map corresponding values to the mixer. You can not put extra controls on the channel strip or in the track view (unlike in REAPER...) and you can not use ProChannel for that (too buggy design in control surfaces API), so you will need to open "FX GUI" to set/change these parameters. That is a bit less convenient then "Bypass FX" button, but I think still more usable than related procedure on some real DMs (first select the channel, then special parameter page, then parameter...).

Cheers,
Alexey.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 15, 2020, 08:15:03 AM
Hello Alexey

Sorry for the continuing confusion about my routing control needs.  I created a project in Cakewalk and taken a screenshot which I hope will clarify.

You can see in the the screenshot, a configuration with 12 tracks, 4 group buses and 1 master bus.  (Groups and Master are all stereo mixing buses).

Tracks can route to any one of the groups or to the master.  Groups can route to any other group or to the master.  This is typical set up in Cakewalk for mixdown.

It is this type of routing information which I need to read using the AZ Control interface and then use to set the routing identically on my external analogue mixer.

Does this help clarify?

Regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on May 15, 2020, 11:22:44 AM
You need to define Sends from tracks to buses.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 15, 2020, 05:10:00 PM
Okay thanks Alexey.  Are you saying this is possible to do in AZ Controller?

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on May 15, 2020, 07:53:06 PM
You add Sends in Cakewalk (I do not think someone seriously using Cakewalk without sends... how you can send an instrument to let say reverb bus otherwise?). AZ Controller support all parameters for sends (you first select strip then select send, the rest will be the same).
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 15, 2020, 10:32:16 PM
Thank you!  I will check out the send configuration in the morning.

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 16, 2020, 12:06:52 PM
Hello Alexey

I tried your selection instructions for sends but I could not get it to work.

For my test, I created "Aux 1" send from Track 1 in Cakewalk.  Then I tried to configure a slider from my nektar keyboard to control the Aux 1 send volume from Track 1.

For AZ configuration, I tried:-

1. Added a hardware slider from my nektar keyboard and named it "Rotor 2" in the option Tab

2. Attached and Assigned MIDI for Rotor 2 in the Hardware Tab

In the Logic Tab (having selected "Rotor 2"):-

3. Created an action configured for "Strip", "Track" and "Output"

4. Created an action configured for "Send", "send number 1" and parameter "Volume"

5. Created an action configured for "Value", "Direct", "Linear"

Can you please tell me what I am doing wrong in the test configuration and it should help me a lot.

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on May 16, 2020, 05:17:01 PM
Try Send number 0... Its "programmers" world  ;)
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 16, 2020, 05:47:56 PM
Hello Alexey

I tried send number 0 but still not working.

I have attached three screen shots showing the three actions programmed for Rotor 2.  Could you have a look please.

(and just to assure you that Rotor 1 - which I programmed before to control the Track 1 fader is working, so the MIDI between my nektar keyboard and AZ/Cakewalk is working okay)

Regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on May 16, 2020, 09:59:17 PM
Hello Robert,

Do NOT use Cakewalk AUXes for your purpose,  use Buses (name them AUXes if your want).

Cakewalk has "hacked" AUXes into original engine as the way to record soft synthes and FXes live. When someone really "play" soft instrument live, the sound can be significant different from re-play of recorded MIDI. That is the only reason to use them.

From the beginning, this "hack" was quite buggy. On of the bugs you have just hit yourself: sends to them can not be controlled by surfaces  :)
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 17, 2020, 11:04:19 AM
Hello Alexey

Thanks for the advice.  I was able control bus sends from tracks, so that is a big step forward.

Can I check one more point with you for now please:-

Could you explain how to achieve a latching function for buttons please.  One example:-

I can programme a button on my nektar keyboard to operate a track SOLO function, but when I release the button then the SOLO is also released.  So it provides a non-latching action which is not what is required.

Can you please tell me how to achieve a latching action for the button?  So I PRESS and RELEASE the button, and the SOLO function changes state.  I mean:-

If the SOLO was "OFF" then it switches to "ON".

If the SOLO was "ON" then it switches to "OFF".

I have many requirements for this type of latching button, so your advice would be appreciated.

And I have to say that the AZ Controller is amazing!  Yes it will take me some time to learn but the very deep level of control and feedback is incredible.

Very best wishes

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on May 17, 2020, 08:02:33 PM
Hello Robert,

What you call "button latching" is reaction on button press only. Some surfaces just send "button", but more "smart" devices send "button is pressed" and "button is released".
If the code does not take that into account, it does not distinguish between "pressed" and "released" and so toggle f.e. Solo when pressed and when released.

Press and release send different value (you can see that in the "Last MIDI event"). Normally press is value 127 and release is value 0.

AZ Controller tries to help you with processing that. In case you look precisely, there is "Note:On" condition on every action by default. So no action is executed when "Note:Off" (Note Off MIDI event or Note On with Value 0 MIDI event). But in case a button send not Note MIDI event but something else, what to do is not obvious. F.e. when you turn a knob which sends CC you want Value 0 is processed as any other value.

The solution in AZ Controller is explicitly declare a hardware control as a "Button". In the Options tab select button control as set its type from "Unknown" to "Button", do not forget to press "Save" near that combo box. In this case CC with value 0 will be interpreted as "Note:Off" and so there will be no reaction on release (till you change Note conditions for particular actions, useful f.e. to implement modifier keys like Shift).
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 18, 2020, 11:32:53 AM
Hello Alexey

Thanks for the advice.  Changing the button type to "pad" (which I think was your reference to "button") provided the require action.

For information, I am experimenting with a Microchip PIC demo board to map out the structure of how the MIDI commands sent as feedback actions from AZ Controller will control the hardware control elements of the analogue mixer.  These are mostly VCAs (level) and FETs (switching).

I am building a small two channel analogue audio mixer to check out the basic hardware control elements.  After that, I will look to design the full size mixer.  Current plan is:-

24 channels (tracks)
8 + 2 + 1 stereo group buses (8 groups, 2 "auxes", 1 master).

The mixer will receive its audio for mixdown from a 24 track analogue tape machine also under remote control and sync from Cakewalk.

I will study the use of OSC for the communications between AZ and my hardware controller.  It looks like a good solution.

I will be in touch again once I have decided on the protocols.

Again, thank you for your good advice to date.

Regards

Robert

Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 26, 2020, 10:34:29 AM
Hello Alexey

As I will be controlling a digitally controlled analogue mixer from Cakewalk via AZ controller, using Feedback actions, the monitor refresh frequency is important for me.

When I set the Cakewalk controller refresh frequency to 50ms and the Parameter Value Monitor to Ultra (let us use the example of track volume monitoring) then I get a maximum of 20 track fader values per second (corresponding to the 50ms refresh setting).  This is as expected.

Here is my question please:-

It is possible to set the Cakewalk controller refresh frequency below 50ms by editing the Calkwalk.ini file.  I tried setting to 25ms in Cakewalk.ini and the value appears to be accepted; i.e. 25ms is displayed in the preferences/MIDI/controller surfaces display.

However it does not increase the frequency of monitor messages output on to my MIDI stream.

Can you tell me if this is due to a configuration setting in AZ Controller? So I mean is the 'ultra' setting limited to 50ms?  Or do you think that Cakewalk is ignoring any setting below 50ms?

For my unusual application, I want to try to increase the controller refresh frequency if it is possible.

Regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on May 26, 2020, 10:36:33 PM
From what I know, that comes from Cakewalk.

Note that values can not update faster then the buffer length... Which settings you use in Cakewalk for the audio device?

Also I think that 50-100ms is faster then you may need for any purpose. Everything you want to be "smooth" (motor fader movements,  volume automations, etc.) should be implemented inside your device by inter/extrapolation.

Note that some digital mixers I know (RME, Behringer) do not do this. If you ramp up volume you can easily notice that happens in "steps". And real reaction of the device on parameter changes seems like much slower then 100ms. For some purpose not nice, but that is by design. You can try to make it better, but that is a challenge. It is easy to have "usec" frequencies inside a chip, but it is not easy to keep that on a wire (Shannon and other slow us down...). F.e. you will need to communicate through USBv2 (or later) and forget about WiFi in case you need something with stable reaction under 50ms.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on May 27, 2020, 10:51:26 AM
Hello Alexey

I was running Cakewalk on a buffer length of 23.2msec.
So I tried reducing the buffer length to 5.8msec and setting the controller refresh frequency to 25msec in Cakewalk.ini
Again the Cakewalk preferences display seems to accept the 25msec value but it makes no difference to the actual refresh rate.
I will check with Cakewalk (Bandlab) if this is a restriction they place on the system.

The control voltage (linear voltage derived from DAC converter) applied to analogue gain control elements (VCAs) will have a time constant of around 7ms to help smooth the step transitions but it would be valuable to get as much control resolution from Cakewalk as possible.  Part of that resolution comes from the refresh frequency.

I understand your point about using inter/extrapolation to smooth control inputs.  It should be possible to do this within my microcomputer but of course it introduces some delay as I have to buffer MIDI values in order to make the calculations.  If it was feedback to motor faders then that would not be an issue, but in my application it delays the control signal to the audio mixer which is not desirable.

Once I have built the small demo analogue mixer, I will experiment to see what is practical.

Again, thank you for your advice on this project.

Best wishes

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on June 26, 2020, 10:14:03 AM
Hello Alexey

I have been in communication with the development team at Bandlab concerning my digitally controlled analogue mixer design.

They have agreed to change the minimum refresh frequency from 50ms to 10ms in the next Cakewalk software update.

They also suggested I check out a few points with you regarding the AZ Controller:-

Assuming I use the 'Ultra' priority for a Parameter Value Monitor, will AZ Controller be able to perform its operations with the 10ms window?

Two situations I want to consider:-

1. Let us assume that the number of Monitor action messages within the 10ms refresh window is low, so that there is sufficient MIDI transmission time to output all the MIDI messages within a 10ms window (let's assume 1ms per 3-byte message).  Will AZ Controller be able to process within this 10ms window?  So I mean, what additional latency is likely to be introduced by AZ Controller?

2. If the total number of Monitor action messages within the 10ms refresh window exceeds the number of MIDI messages which could be outputted within a 10ms window, does AZ Controller have any processing functionally to deal with this?  e.g. a FIFO buffer?  So that the MIDI messages could be output when there is capacity on the MIDI output.

If AZ Controller does not have any coping mechanism for message volumes which exceed the available MIDI transmission time (per 10ms window), what happens to the MIDI messages which cannot be output within the 10ms window?

Of course there is the possibility to have multiple instances of AZ Controller and more MIDI links between Cakewalk and my PIC Controller but first I want to understand better how AZ Controller handles the Monitor action messages as above.

Once I receive messages at the PIC Microcontroller, there should be no problem processing within the 10ms refresh window.  I am writing the programme in C and onward transmission to the digitally controlled analogue circuitry will be a combination of I2C and SPI.  Data rates of at least 400kbps will be a available for both of these serial protocols.

Thanks for your continued support with my project.

Regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on June 26, 2020, 03:25:53 PM
Hello Robert,

What will happened is really up to Cakewalk (and your preset). I have developed AZ Controller under Linux/Wine, on Centrino based notebook. And my major desktop was CuoDuo/Celeron. Both could barely run 2 synth without freezing. And so I have tried to hit CPU as little as possible (down to the level of lookup tables and precalculated maps, to avoid any "hash" calculations and reduce floating point math...). But that is on my side only, I have to call Cakewalk to get the information. Still, I do not remember any significant performance penalty even with most demanding presets (when I was hitting some slowness I was implementing workarounds). So I think modern computer can handle all that with 10ms cycles.

MIDI is sent to Cakewalk, so how that works is now known for me. From what I know, they handle it correctly. I mean probably they throttle when required, but I am not sure. There was at least one device which had problems handle everything sent, but I have just reduced the speed of corresponding monitoring without digging too deep.

In case you do not have your MIDI implementation yet, just test with any MIDI hardware loop. I mean draw sufficient number of envelopes and check what comes out (record output MIDI stream).

Alexey.
PS. One example what is not working without manual throughput control is Novation Nocturn + Linux + REAPER MIDI output API (for surfaces). The device itself is rather slow (10ms rate, 8bytes packets). 16 short MIDI messages sent in burst (with REAPER API) and the whole device is randomly illuminated. Sending just two messages every 10ms works reliable.
Not sure who is responsible: dummy Linux MIDI driver for the device or REAPER. I mean there can be some troubles along your way as well. 
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on June 26, 2020, 05:54:51 PM
Hello Alexey,

Thank you for the information and advice.

Once the next Cakewalk version is released, I will set the refresh time to 10ms and try the loop test as you suggest.

I will test:-

1. Response time from Cakewalk event, e.g. automated fade, to MIDI data output.

2. What happens when the number of monitor action messages (within a 10ms window) exceeds the MIDI capacity (so about 10 x 3 byte messages).

I will report back when I have findings.

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on July 25, 2020, 01:00:08 PM
Hello Alexey

I have just downloaded an advance version of the next Cakewalk release which now supports 25ms refresh time via the Preferences\MIDI\Control Surfaces setup and 10ms by updating the Cakewalk.ini file

I have confirmation from the Bandlab team that 10ms is now supported.

I can get the 25ms setting to work but not the 10ms setting.

Let me explain how I did the refresh time test:-

I draw a single track fader volume automation which goes from -INF to +6dB within a 500ms time window.

I then use the AZ controller app to output the fader volume as CC control messages and monitor these via MIDI-OX.

When I set the refresh time to 25ms, then I get 21 CC values within the 500ms window, which is what I would expect.

When I set the refresh time to 10ms (by changing the Cakewalk.ini) then I still get only 21 CC values within the 500ms window, when I should be seeing 51 CC values (500ms divided by 10ms plus one).

I have asked the Bandlab team to double check, but could I please ask you to confirm that AZ Controller (with a Parameter Value Monitor set to 'Ultra') does not have a minimum response time programmed in to the software?

Kind regards

Robert

Hello Alexey,

Thank you for the information and advice.

Once the next Cakewalk version is released, I will set the refresh time to 10ms and try the loop test as you suggest.

I will test:-

1. Response time from Cakewalk event, e.g. automated fade, to MIDI data output.

2. What happens when the number of monitor action messages (within a 10ms window) exceeds the MIDI capacity (so about 10 x 3 byte messages).

I will report back when I have findings.

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on July 25, 2020, 08:17:41 PM
I do not limit anything.

But please check your buffer length in smaller then 10ms. You have mentioned one test with 5.8ms, but in case you have reverted settings to 20+ms that can explain the behavior.

Cheers,
Alexey.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on July 26, 2020, 11:14:24 AM
Hello Alexey

I tried reducing the buffer length down to 2.9ms but I still get a measured refresh time of 25ms when the .ini is set to 10ms.

Thanks for confirming that AZ Controller is is not limiting the refresh time.

I will report back to the Bandlab team.

Regards

Robert

I do not limit anything.

But please check your buffer length in smaller then 10ms. You have mentioned one test with 5.8ms, but in case you have reverted settings to 20+ms that can explain the behavior.

Cheers,
Alexey.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on August 01, 2020, 11:32:08 AM
Hello Alexey

I am currently mapping out the MIDI control protocol which I will use to allow Cakewalk (via AZ Controller) to control my analogue mixer.

I need to be able to monitor the audio source which is selected to each track in Cakewalk.  I will use this data to control a source select matrix in my analogue mixer.

As a test, I set up a rotary control from my nektar MIDI keyboard/controller to select the audio source for Track 1 in Cakewalk.

Under the Logic tab, I have created three actions for this rotary control:-

- Track Input
Action Configuration 'Strip'
Track
Select Input

- Direct Linear, timeout touch
Action Configuration 'Value'
Direct Linear

- Parameter Value Monitor
Action Configuration 'Monitor'
Monitor parameter value

I can select the track input by moving the rotary control.

Next, I set up an Action for this control under the Feedback tab:-

- Ch7 CC:7 Use Value

But when I monitor this Feedback output using MIDI-OX, I get a constant CC value of 00 irrespective of the track source which has been selected.

Could you tell me if I have made an error in this configuration please?

Kind regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on August 03, 2020, 02:33:37 PM
Hello Rebert,

I do not think someone has ever tried to use it... So that was in fact inconsistent. Please download b404, MIDI action should be fixed there.

Note that the value sent is (current input)/(max number of inputs)*127. "0" means "No input". So the last possible input is "127", no input is "0" and other inputs are in-between.
Since the number of available inputs in concrete setup can vary, that is rather meaningless value...

I would recommend to use:
1) separate from Cakewalk Input parameter (as I have written before for all parameters which do not have equivalent in Cakewalk)
or (if for some reason you want Cakewalk Input)
2) (a) define Friendly Names for inputs in Cakewalk preferences and enable use of them
    (b) define Software Set with "Unknown" + all possible input names
    (c) in the monitor, first use Text Value action to get the name of input, then use State By Text to find correct state in the set (preset with Unknown, just in case...) and then use State conditions to send predictable MIDI messages for particular inputs.

Cheers,
Alexey.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on August 05, 2020, 10:44:45 AM
Hello Alexey

I downloaded B404 and the MIDI action is now working, thank you.

I agree that this is not a good method to achieve an output monitor of the track source selection, for the reason you stated.

Yes I do need to monitor the selected Cakewalk track inputs because I will use these selections to control the external analogue record matrix.  (This is partly for convenience of having source selection control from Cakewalk and also because I will record on to my analogue tape machine and to Cakewalk simultaneously).

So I tried to set up the parameters you suggested in point 2) of your reply but I cannot get it to work.  Here is what I did:-

1. I defined friendly names for my inputs in Cakewalk and enabled their use.

2. Under the 'Options' tab, I set up a new Software State called 'FriendlyNames' and added 'Unknown' plus all the friendly names (as they appear in the track source selection) - see Image-1

3. Under the Logic Tab, I added two additional actions to my remote control of Track 1 source selection:-

a. Text Value action - see Image 2

b. Set state by Value action with FriendlyNames set to <By text> - see Image 3

4. Under the Feedback tab I added different MIDI output values for some of the FriendlyNames - see Image 4

When I change the track 1 source select, I get no MIDI values outputted, so I must have made a mistake in the set up.

Could you tell me how to correct please.

Regards

Robert

Hello Rebert,

I do not think someone has ever tried to use it... So that was in fact inconsistent. Please download b404, MIDI action should be fixed there.

Note that the value sent is (current input)/(max number of inputs)*127. "0" means "No input". So the last possible input is "127", no input is "0" and other inputs are in-between.
Since the number of available inputs in concrete setup can vary, that is rather meaningless value...

I would recommend to use:
1) separate from Cakewalk Input parameter (as I have written before for all parameters which do not have equivalent in Cakewalk)
or (if for some reason you want Cakewalk Input)
2) (a) define Friendly Names for inputs in Cakewalk preferences and enable use of them
    (b) define Software Set with "Unknown" + all possible input names
    (c) in the monitor, first use Text Value action to get the name of input, then use State By Text to find correct state in the set (preset with Unknown, just in case...) and then use State conditions to send predictable MIDI messages for particular inputs.

Cheers,
Alexey.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on August 05, 2020, 12:22:35 PM
Sorry, there are some mistakes:
1) set "Monitor Parameter Value", not "Monitor Parameter Name" for the monitor: you want the name of value, not the name of parameter (which is always "Input"...)
2) remove "Set state" (last action) from Logic, everything happens in the Monitor (Feedback tab)
3) prior your actions in Feedback, add:
    (a) Text Value
    (b) Set state (as you did in logic)
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on August 05, 2020, 02:45:36 PM
Hello Alexey

I have tried to update to your instructions but still no MIDI outputs, so there still must be mistakes.

Please see Image-5, Image-6 and Image-7 attached.

Thanks for your help to get this sorted.

Regards

Robert

Sorry, there are some mistakes:
1) set "Monitor Parameter Value", not "Monitor Parameter Name" for the monitor: you want the name of value, not the name of parameter (which is always "Input"...)
2) remove "Set state" (last action) from Logic, everything happens in the Monitor (Feedback tab)
3) prior your actions in Feedback, add:
    (a) Text Value
    (b) Set state (as you did in logic)
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on August 06, 2020, 09:50:21 AM
6+7 looks ok, but they are for "Knob 1" feedback... in 5 you have other control, without monitor (btw with Text action at the end, make no sense).
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on August 07, 2020, 06:53:21 PM
Hello Alexey

I found my mistake.  Because I had configured the logic tab - Parameter Value Monitor incorrectly, that control did not show at all under the Feedback tab and so I accidentally programmed the wrong Feedback control!

So now I corrected the mistake and it is working.

See images 8, 9, 10 and 11 for working configuration.

Can I ask a question please ...

Is there any way to get the source selection 'None' (i.e. no source) included? so I can output a unique code for this.  I tried including it in the Software Set.  Although I can select 'None' using an external rotary, I cannot get the feedback MIDI to work.  Any ideas?

Best regards

Robert




6+7 looks ok, but they are for "Knob 1" feedback... in 5 you have other control, without monitor (btw with Text action at the end, make no sense).
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on August 08, 2020, 10:50:00 AM
Check which "Name" Cakewalk gives to None, in German version it is "--- Keine ---" (spaces and hyphens including).
To do this, use f.e. build-in AZ Controller display to output text (from monitor).
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on August 08, 2020, 01:22:55 PM
Hello Alexey

Yes the English version had the same format "--- None ---"
So I entered this as the state name and it is recognised correctly.
Thanks for your help with this.

Regards
Robert

Check which "Name" Cakewalk gives to None, in German version it is "--- Keine ---" (spaces and hyphens including).
To do this, use f.e. build-in AZ Controller display to output text (from monitor).
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on August 25, 2020, 06:03:15 PM
Hello Alexey

I have been able to map most of the required functions from Cakewalk for my remote controlled mixer project, using AZ Controller.
First to say what a flexible controller app you have created, thank you!

I have two functions which I need your help with.

1. There are a number of 'all track' functions which I can programme for remote control but I cannot figure out how to programme their feedback actions?

Example is the Cakewalk button called 'Solo (UnSolo) all tracks'
I have been able to assign this Cakewalk button to an external control but I cannot figure out how to derive a feedback from it?
See my attached screenshot (Image-12)
Could you help me with the correct Monitor action please.

2. I need to find a way to monitor the state of the track 'FX (Bypass Rack)' pushbutton.  I will use this to switch my analogue mixer insert points.  I remember you mentioned there are issues with remote controlling the FX chain but my need is much simpler.  I only need to monitor the state each track FX button.  Can you help with this?  It is a core element in my analogue mixer so I need to find a way!

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on August 25, 2020, 09:52:36 PM
Hello Robert,

1. Some 'all track' functions are controllable and have feedback, "Strip" action has "Rude ..." parameters for this. Exact strip selected does not matter in this case.

2. For Bypass Rack you will need to make future request to Cakewalk, that information is currently not available. Write on the forum, in case Mark (msmcleod) notice your post and reply, there is a chance such parameter is added...
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on August 26, 2020, 12:19:45 PM
Hello Alexey

Thank you for your continued support.

1. I was able to get feedback working for 'all track' Solo, Mute and Arm.  I also want to get feedback for 'Exclusive Solo' and 'Dim Solo'.  These have no 'rude' feedback.  I tried using action Monitor Command feedback (see Image-13) but this does not work.  Is it possible to get feedback for these two functions?

2. Thank you for your advice regarding 'Bypass Rack'.  I will post in the new Cakewalk forum today.

May I ask two questions about presets please ...

I will be using two instances of AZ Controller in my project.  One instance to communicate between Cakewalk and my Analogue Tape Machine, and a second instance to communicate between Cakewalk and my Analogue Mixer.  Each instance will have its own MIDI port.

3. My intention is for each instance of AZ Controller to have its own preset but I cannot get both presets to work at the same time.  To further explain:-
For AZ Controller-1, I have created a preset called 'TC1'
For AZ Controller-2, I have created a preset called 'TC2'
My problem is that I can only get one of the preset to function at any time.  Could you tell me how to get them both working at the same time please?

4. Could you tell me if AZ presets are loaded automatically when Cakewalk is started?  Or do I have to load presets manually, each time I start Cakewalk?

Best regards

Robert

Hello Robert,

1. Some 'all track' functions are controllable and have feedback, "Strip" action has "Rude ..." parameters for this. Exact strip selected does not matter in this case.

2. For Bypass Rack you will need to make future request to Cakewalk, that information is currently not available. Write on the forum, in case Mark (msmcleod) notice your post and reply, there is a chance such parameter is added...
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on August 26, 2020, 04:41:08 PM
Hello Robert,

1. What is not there is not provided by Cakewalk, so the same advise as was for (2).

3. http://www.azslow.com/index.php/topic,384.0.html

4. In general yes. But current latest version of CbB has a bug, there is a workaround but it does not work well when you creating presets. So use previous version or wait for the next release, the bug will be fixed there.

Alexey.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on August 26, 2020, 05:10:01 PM
Hello Alexey

1. and 2.  Understood.

3. Working now.

4.  No problem, I will wait for the next release.

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on September 03, 2020, 05:28:37 PM
Hello Alexey

I am beginning to look at mapping some VST plug-ins so they can be used to control the same function in my MIDI controlled analogue mixer.
As a first test I want to map the controls in the Waves SSL Compressor plug-in.  I have attached a screen shot of that plug-in.
My objective is to generate a Feedback MIDI output for each control in this plug-in.
As it is possible to have the same plug-in used in multiple tracks, I need the Feedback output to be strip related, if this is possible.

Could you tell me if this kind of feedback mapping is possible using AZ Controller and if it is possible, some guidance as to how to do the feedback mapping.

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on September 03, 2020, 10:01:08 PM
You will need quite some (well, really huge number of...) parameters. Each of kind:
Strip <number>
FX  <name> <parameter number>
Monitor value (in which you do the same as for volume and other parameters).
Yes, one control for each parameter for each plug-in in question for each track on your mixer...
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on September 04, 2020, 12:35:58 PM
Hello Alexey

Thanks for the advice
I got SSL Compressor to map to MIDI Feedback values using the actions in my attached 'Image-15'
I have one problem to solve ...

The controls which are rotary switches e.g. 'Ratio' (which can be switched between 2, 4 and 10) are giving out inconstant feedback values.
Is there a way to correct this problem?

Regards
Robert


You will need quite some (well, really huge number of...) parameters. Each of kind:
Strip <number>
FX  <name> <parameter number>
Monitor value (in which you do the same as for volume and other parameters).
Yes, one control for each parameter for each plug-in in question for each track on your mixer...
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on September 04, 2020, 09:19:54 PM
Some plug-ins report inconsistent values, especially for switches. Values are always "normalized" by Cakewalk to 0..1 range. Translation to MIDI done by AZ Controller and it tried to be accurate (so reported MIDI value when used as input produce value in 0...1 range which when converted back to MIDI produce the same value, sound like obvious but most software I have observed does not have this property). So, I do not think something can be done on AZ Controller or Cakewalk side.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on September 05, 2020, 10:42:59 AM
Hello Alexey
Thank you for the explanation.
I have contacted the Waves support team and asked them to have a look at the values being reported for the rotary switches for this plug-in.
Best regards
Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on September 06, 2020, 07:40:38 PM
Hello Alexey

I got a response from Mark McLeod regarding the Bypass FX function.  Here is what he said:-

'I think it's already there.

Setting MIX_PARAM_FX to a value less than 0.5f should bypass the fx bin... 

Although within ControlSurface.idl, it claims to be a read-only parameter, there's definitely a handler for setting it within Cakewalk.'

Does this provide a means to hook into the Bypass FX function with AZ Controller?

Regards

Robert

Hello Robert,

1. Some 'all track' functions are controllable and have feedback, "Strip" action has "Rude ..." parameters for this. Exact strip selected does not matter in this case.

2. For Bypass Rack you will need to make future request to Cakewalk, that information is currently not available. Write on the forum, in case Mark (msmcleod) notice your post and reply, there is a chance such parameter is added...
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on September 07, 2020, 12:35:17 AM
IDL mention fx# as parameter for MIX_PARAM_FX, so I was interpreting it more like "bypass particular fx" (also not supported by AZ Controller, I had no need for it). But may be it support some "-1" parameter, I will check.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on September 07, 2020, 10:07:38 AM
Thank you Alexey.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on September 23, 2020, 10:01:54 AM
Hello Alexey

I wanted to check if you were able to make any progress on the FX Bypass function?  It would be great if you can offer this function within AZ Controller.

Best regards

Robert

IDL mention fx# as parameter for MIX_PARAM_FX, so I was interpreting it more like "bypass particular fx" (also not supported by AZ Controller, I had no need for it). But may be it support some "-1" parameter, I will check.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on September 23, 2020, 11:32:39 AM
Hi Robert,

I have thought you are monitoring Cakewalk thread... mentioned parameter can bypass particular FXes, but not FX rack. So bypassing rack is not possible to implement on AZ Controller level.

If you want bypass particular FXes, that I can implement.

Cheers,
Alexey.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on September 23, 2020, 11:58:33 AM
Hi Alexey

Yes I followed the Cakewalk thread but I did not understand most of the technical details.

So yes, it would be great if you could implement Cakewalk bypass of particular FXs.  This would solve one of the issues I have (some of the VST plug-ins are not correctly reporting their Host Bypass so I cannot use that to monitor bypass status).

I will test the Cakewalk bypass of particular FXs when I hear from you it is implemented.

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on September 23, 2020, 04:00:05 PM
Hi,

Try just uploaded test version (b405), it has "Enabled" parameter (before 1 - xxx) in FX Action. I have checked it for "Set" and "Monitor value" in X2, seems like work.

Cheers,
Alexey.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on September 23, 2020, 05:02:14 PM
Hello Alexey

I downloaded test version b405 and the FX enable is working fine.  Thank you very much.

Question -> what would you need from Bandlab/Cakewalk to make the global FX enable possible in AZ Controller?

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on September 23, 2020, 09:01:03 PM
Hello Robert,

First of all, you will need to mention required feature correctly  :)
"Global FX bypass" (so for all strips) exist as a command and available as such in AZ Controller (without feedback).
"FX bin enable" (for one strip) exists as a button in Cakewalk, but does not exist in Control Surface API (at least I have not found the way to use it, note it was not available at least till 2015)
"FX enable" is possible and now work in AZ Controller.

Note that I can kind of imitate the effect, by enabling/disabling all FXes in specified bin. But that is NOT the functionality of Cakewalk button, it works independent from particular FXes enable status. So, when you disable FX bin and re-enable it, enable status of particular FXes is preserved in Cakewalk (but will not in imitation).

Cheers,
Alexey.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on September 24, 2020, 02:28:59 PM
Hello Alexey

I understand your explanations, thank you.

So I have added another message to the Cakewalk forum thread asking Mark to add the API hook for "FX bin enable".

I'll pursue that request.

Regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on September 25, 2020, 02:17:30 PM
Hello Alexey

I've just read Mark's latest reply about the -1 error issue.  It looks like you will be able to implement the FX bin bypass once the next CbB release is available.  Hopefully good news!
Regards
Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on October 26, 2020, 05:09:23 PM
Hello Alexey

Bandlab have included support for the FX bin bypass in the latest Cakewalk release.  Here is the note from the update log:-

----------------------------

Allow track FX bin to be bypassed via control surfaces rather than just individual FX

In addition to individual effects, entire track FX Racks can now be bypassed via control surfaces.

Passing an FX index of -1 (65535) will bypass the entire track FX Rack.

The Mackie Control surface has been updated to use M1+Select button to toggle track FX Rack bypass.

------------------------------

Do you need to do any update to AZ Controller for this to work?

Regards
Robert

Hello Alexey

I've just read Mark's latest reply about the -1 error issue.  It looks like you will be able to implement the FX bin bypass once the next CbB release is available.  Hopefully good news!
Regards
Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on October 26, 2020, 11:35:28 PM
Yes, I have to update AZ Controller for this. I am currently busy, at least till the next week.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on October 27, 2020, 10:05:18 AM
Okay, no problem.  Let me know when you have done the update and I will test.
Kind regards
Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on November 02, 2020, 12:29:59 PM
Hello Alexey

I am mapping out the full AZ Controller setup for my Cakewalk controlled analogue audio mixer.
At the moment I am focusing on the control information which is outputted when:-

a. Cakewalk is loaded
I observe that a full status of all AZ mapped controls is output to MIDI

b. A Cakewalk project is loaded
I observe that a full status of all AZ mapped controls is output to MIDI

I have four questions please:-

1. Is this the expected behaviour of the current AZ Controller version?

2. Is there anyway to prevent the duplicated status output, e.g. could the output at the loading of Cakewalk (before a project is loaded) be suppressed?

3. Is there any theoretical limit to the number of controls status which can be output during this start-up phase?  ( I noticed that some control status information is lost if the buffer length is too long, so I am concerned about any limitations once I have a full AZ mapping of my mixer in place).  So I am trying to understand how this start-up status is working?

4. I need to understand the order in which the control status is output.  This is really important because in my application I must output all 'track interleave' status before the rest of the control status information.  I use the track interleave status (mono or stereo) to set up control pairing of analogue mono channels (in my mixer) when they are being used as a stereo pair.  This affects how all of the other controls (e.g. track level, pans, routing) are  controlled in my PIC's C programme.

e.g.

Cakewalk
T1 Mono
T2 Mono
T3 Stereo
T4 Mono

I must translate to
Cakewalk T1 map to Analogue Channel 1
Cakewalk T2 map to Analogue Channel 2
Cakewalk T3 map to Analogue Channels 3 and 4
Cakewalk T4 map to Analogue Channel 5

Thank you for your continued support for my project.

Regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on November 04, 2020, 03:33:07 PM
1. yes, the behavior is expected. Monitors are triggered when (a) they was never triggered before (Cakewalk+AZ Controller+Preset are loaded) and (b) when parameter OR value changes (so, even in case let say current track has volume 0dB and you change current track to another with 0dB, volume monitor is triggered. Sure, on Project load everything is changed and so triggered).

2. possible but not easy. In case you do not want send anything till there is some project, you can put "Context:NoProject Undefined (final)" in every monitor which sends something. If you do not want send the same value, you will need to organize that yourself (f.e. save proposed value as a State and send MIDI in State monitor, so if the value stay the same in Value monitor, it will not trigger State monitor).

3. AZ Controller sends everything it wants in "one go". I have not noticed any info skips, but I have not tried to abuse the system as you do (I was using controllers only, so the max number of info was approximately the number of physical controls, which in turn is 100-200 at max).

4. each monitor has "Priority". Within one priority the order is undefined, but higher priority monitors will be triggered before lower priority monitors, assuming both have "ultra" speed.

Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on November 04, 2020, 05:14:04 PM
Hello Alexey
Thanks for answering my few questions.  It helped a lot to clarify.
With reference to 4.  I have been able to use the monitor  "Priority" to ensure that the 'track interleave' status is output first.

Let me know when you have had the chance to update AZ Controller for the FX bin bypass function so I can test.

Regards
Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on November 19, 2020, 03:07:27 PM
b406 should be able to bypass FX Bin (strip parameter "FX Bin enabled", since API define logically revered to "bypass" value, so "1" means enabled and "0" disabled").
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on November 21, 2020, 12:41:36 PM
Hello Alexey

Thank you for adding the "FX Bin Enabled" functionality.  I checked it out on the latest version of Cakewalk and it works perfectly.

Right now I am assembling the prototypes of my digitally controlled analogue mixer which I will use with Cakewalk and AZ Controller.  I'll send you a couple of photos once the boards are tested.

Again thank you for your continued support!

Regards

Robert

b406 should be able to bypass FX Bin (strip parameter "FX Bin enabled", since API define logically revered to "bypass" value, so "1" means enabled and "0" disabled").
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on December 10, 2020, 12:37:14 PM
Hello Alexey

First, to thank you again for all your help in getting my project to the successful prototype stage.  I have attached an image of my prototype set up showing a two channel audio card, a twp stereo bus mixer card and my PIC computer card which talks to Cakewalk and AZ Controller via MIDI.

I am now beginning to build the AZ Preset for the full 24 channel 8 bus mixer and have noticed that there does not appear to be AZ control of the bus input pan control?  If this is missing could I please ask if it could be added.

Best regards
Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on December 10, 2020, 02:38:10 PM
Looks complicated  ;)

Bus input pan is not exposed to CS, from what I know. Technically speaking input controls for buses are "redundant" in DAWs, since there is no "one to many" sends and so input controls make sense only for FXes of that bus. And since adding buses is not a problem, no one will ever miss that feature.

I understand that for hardware the picture can be different..
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on December 10, 2020, 02:59:56 PM
Hello Alexey

Yes, for my hardware mixer I have included bus input pan in my design.  I had not realised it was not exposed in CS.

If I can get Bandlab to expose bus input pan in Cakewalk would you be willing to look at whether implementation is possible?

Regards

Robert

Looks complicated  ;)

Bus input pan is not exposed to CS, from what I know. Technically speaking input controls for buses are "redundant" in DAWs, since there is no "one to many" sends and so input controls make sense only for FXes of that bus. And since adding buses is not a problem, no one will ever miss that feature.

I understand that for hardware the picture can be different..
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on December 10, 2020, 06:55:58 PM
If that parameter is added (or already exist), I will add it into AZ Controller.

BTW I have really hard time to imagine when that parameter can be useful. Even in case you have EQ/Comp on that bus, I don't think the result (EQ+Pan vs Pan+EQ) is going to be different. Pan+Comp vs Comp+Pan for sure will react on implemented Pan law and so harder to control. Pre-FX volume (input gain) I can understand, as a "pure man" send level VCA master, but pan...
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on December 10, 2020, 10:27:46 PM
Thank you Alexey.

If you could please check and let me know if I need to approach Bandlab to have the parameter added in Cakewalk.

Regards
Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on December 11, 2020, 09:08:34 AM
If that was not clear: yes, you need to ask Bandlab. There is no such parameter in IDL I know, so they have to implement it first.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on December 11, 2020, 10:20:32 AM
Okay thanks Alexey, I will ask Bandlab.
Regards
Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on December 16, 2020, 05:02:50 PM
Hello Alexey
I followed your previous advice to set up predictable MIDI monitor values for each Track Input

--------------------------

I would recommend to use:
1) separate from Cakewalk Input parameter (as I have written before for all parameters which do not have equivalent in Cakewalk)
or (if for some reason you want Cakewalk Input)
2) (a) define Friendly Names for inputs in Cakewalk preferences and enable use of them
    (b) define Software Set with "Unknown" + all possible input names
    (c) in the monitor, first use Text Value action to get the name of input, then use State By Text to find correct state in the set (preset with Unknown, just in case...) and then use State conditions to send predictable MIDI messages for particular inputs.

---------------------------

This works fine.

I now need to use those MIDI values to control other track input sources within Cakewalk.

My Software Set is called "FriendlyNames" and I have allocated MIDI values to each Track Input Source.

Let me give you a specific example:-

Track 1 Feedback output uses MIDI Channel 1 and CC0 and MIDI values () for FriendlyNames sources:-

--- None ---  (0)
Left input 1 (1)
Right input 1 (2)
Stereo input 1 (3)
Left input 2 (4)
etc

So now I want to control Track 25's input source to follow Track 1.

I set up a Hardware Control named "T25Source" and assigned it be controlled from MIDI Channel 1 CC0 (i.e. the Track 1 feedback output)

Then I set up a Logic Control for T25Source as shown in the attached image.

But I cannot figure out how to configure the additional actions so that T25Source input source will be set according to the received MIDI value.

Can you advise if this is possible and if yes, the format of the additional actions.

Regards

Robert

Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on December 17, 2020, 10:08:23 AM
So, you want set Cakewalk track input to something absolute. In other words a kind of "reverse" operation to what I have described before.
Sorry, not supported by AZ Controller. May be some lucky day I add that, but I am not sure...
 
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on December 17, 2020, 11:42:37 AM
Hello Alexey

Thanks for getting back.  Can I check some more please:-

I am able to control the track source selection by using an external MIDI controller to 'scroll' through the available Cakewalk 'friendlyname' sources.

What is the barrier to mapping each source to a specific MIDI code?

Regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on December 17, 2020, 01:18:08 PM
It was possible to map current value to "friendlyname" and so to MIDI, as i have described before (and you has confirmed it works).
The "barrier" to do reversed operation was the luck of such function.

Well, check current test version. There must be "Set IO from Text" Function. It does that. So, you need set current text to the name (with Text Action) and select input/output (as on your screenshot), then call this function. If the input with such name is found, that input is selected.

The problem... that part of Cakewalk is historically buggy... And I had too much frustration dealing with that bugs before. But for hardware inputs it should work.
With "software synth" input there are already some glitches, in my tests "mono" inputs for some reason are reported as "stereo", even on mono tracks.
Once you insert plug-ins with side chains, "Send output" goes crazy. And so on. That is why I have recommended to use some unrelated parameters to control IO on your device.
Please don't say I have not warned you (now twice) in case you observe some strange effects with IO parameters.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on December 17, 2020, 05:40:46 PM
Hello Alexey

Thank you for helping me with this.

I downloaded the latest test version and found the "Set IO from Text" function, thank you!

I tried to follow your instructions to set up the correct actions but I could not work out how to set the current test to the name (with Text Action)?

In my example, (T25 input follows current T1 input), I don't understand how the looped backup MIDI value (which is derived from the T1 source name feedback) is applied to the text action for T25.

I have attached five images:-

Image-17 shows the T1 Feedback actions.  Each input name outputs a unique MIDI value (this works!)

This MIDI output (using Ch:1 CC0) is looped back into Cakewalk and is used as the Logical Control for T25Source (Image-18)

Image-19, Image-20 and Image-21 show the Action List for T25Source.  (I need to send Image 21 as a separate post)

Hopefully you will be able to see what error I have made in configuring?

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on December 17, 2020, 05:41:34 PM
Image-21 is attached (referred to in my previous post)
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on December 17, 2020, 05:55:08 PM
It is better attach SPP files (preset)...

A. If you want to make T25 input follow T1 input (for the reason I don't understand...):
1. you need to monitor T1 input (which you do) and "loop" send midi/OSC from it. Just to execute some control when it is time to resync.
2. In that control you do
* Select T1 input
* Text  <Parameter value>
* Select T25 input
* Function Set IO from Text

B. If you want control T25 input from something on your side, so by sending MIDI from your device:
1. make control which react on that MIDI
2. translate that MIDI into FriendlyName set
4. if (and only if) it could be mapped, then
* Text <FriendlName>
* Select T25 input
* Function Set IO from Text

Note: the text should be exact. Obviously "Text <Parameter value>" form some track input always produce usable for Set IO text (when both track are of the same kind, f.e. audio). With FriendlyName you should be careful and only react on its change (the reason for "if" in (4))
 
 
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on December 18, 2020, 12:53:11 PM
Hello Alexey

Thank you for a very clear explanation of options A and B relating to the control of Input Source Selection.
I got Option A (simple follow of T25 from T1) working from your instructions.

However it is option B which I need for my application.
I want to give you an explanation as to why I need this control facility, so that you can see I have some rationale behind what seem to be rather a very unusual applications for AZ control!

In Cakewalk, I have two 'sets' of tracks:-

Set 1
Cakewalk Tracks 1 to 24 are allocated for the control of my analogue mixer (although Tracks 1 to 24 can also record audio if required)
Cakewalk Tracks 1 to 24 can be a mixture of mono and stereo sources.  THIS IS IMPORTANT

Set 2
Cakewalk Tracks 25 to 48 are allocated to 'mirror' my 24 analogue tape machine tracks (both for backup purposes and to provide 'rehearsal' mixdown tracks (via DACs into my analogue mixer).
Tracks 25 to 48 are always mono (because analogue tape machine tracks are always mono!)

So the mapping of source selection between Cakewalk Tracks 1 to 24 and Cakewalk Tracks 25 to 48 is not a simple one to one mapping but instead depends on the mixture of mono and stereo audio sources allocated to tracks 1 to 24.  This will change from session to session (so it is dynamic not fixed).
Here is one partial recording session example:-

Cakewalk Tracks 1 to 24
T1 Mono Vocal 1
T2 Mono Vocal 2
T3 Stereo Piano
T4 Mono Bass Guitar
T5 Stereo Drums
etc

This will be mapped to my analogue tape machine Tracks 1 to 24 (via the MIDI feedback outputs we have working already) as follows:-
T1 Mono Vocal 1
T2 Mono Vocal 2
T3 Stereo Piano LEFT
T4 Stereo Piano RIGHT
T5 Mono Bass Guitar
T6 Stereo Drums LEFT
T7 Stereo Drums RIGHT
etc

And the mapping to Cakewalk Tracks 25 to 48 as follows:-
T25 Mono Vocal 1
T26 Mono Vocal 2
T27 Stereo Piano LEFT
T28 Stereo Piano RIGHT
T29 Mono Bass Guitar
T30 Stereo Drums LEFT
T31 Stereo Drums RIGHT
etc

In summary, the idea is that all allocation of audio sources into my hybrid digital/analogue recording system will be controlled using Cakewalk.  Cakewalk tracks 1 to 24 provide the control elegance of being able to work with mono or stereo tracks.  Cakewalk Tracks 25 to 48 and Tape Machine Tracks 1 to 24 are always mono and so this mapping of source selection (which I described above) is required.

I will use my PIC controller to do the mapping.  For Cakewalk Tracks 1 to 24, the PIC receives the input source selection feedback via MIDI from Cakewalk and also the mono/stereo status of Cakewalk Tracks 1 to 24.  So the PIC has the required information to do the mapping.  This affects a large amount of the level control and signal routing within my analogue mixer.

Returning to your option B: Controlling Cakewalk Track Input Source selection from something on my side, so by sending MIDI from my device (PIC).  That is EXACTLY what I need to do.

I need your help please to understand how the MIDI I send from the PIC to AZ/Cakewalk (which represents required input audio sources for Cakewalk Tracks 25 to 48) can be translated into a FriendlyName set and so control the input sources for Cakewalk Tracks 25 to 48.  Is this possible within AZ Controller?

As always, I am so grateful for your help.  Please add my support to the 'Flowers from community' cause and please add my thanks to your wife for her enormous understanding of all you give to the audio community.

Best wishes

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on December 18, 2020, 02:03:30 PM
Ok, so the only problem is converting MIDI from your PIC into FriendlyName.
You can do this 2 way, both use MIDI value:
1. as you have done with FriendlyName -> MIDI, but reversed: "Value:4 Set FriendlyName = 'Input channel 4'". "Value" Set is mapped MIDI value when the control is triggered.
2. there are 2 variants, but logic is the same: "Set FriendlyName <Map from MIDI>". So, just one Action. But MIDI values /FriendlyName should be made "compatible".
a) you define just existing FriendlyNames. But in this case the mapping is from 128 to N, so you will need send specific MIDI values.
b) you define exactly 128 States in FriendlyName (most of them can be ""). Then the mapping is 1 to 1.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on December 19, 2020, 01:04:43 PM
Hello Alexey

I configured using your variant 2b).

For the test I continued to send MIDI feedback out from Track 1 and loop back into Track 25.

I have some functionality but one issue is remaining:-

I added additional 'dummy' states in the Software States 'FriendlyNames' so there was a total of 128 states.  So now I expected to have 1 to 1 mapping.
However these additional states are being ignored by the Track25 action list.
So the 25 'real sources' are still being mapped equally spread across the 128 MIDI values.
I have attached the preset so hopefully you will be able to see my error?

Regards
Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on December 19, 2020, 06:17:35 PM
SPP you attach is somehow broken, my Cakewalk can't import it. It show preset, but I am unable to select...

Sometimes AZ Controller trigger some rare corruption when preset is edited "on the go". I was unable to reproduce so far.
I recommend re-do 128 states (without using them during creation). Mapping should be 1-1.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on December 20, 2020, 01:07:27 PM
Hello Alexey

I did some further investigating and experimentation:

1. I had made a mistake in one of the actions for Track25.  I have attached a screenshot of what is now working except for one issue which I will come to in a moment.

2. I found that the total number of software states which need to be created for one-to-one mapping appears to include 'unknown' as one of the 128 states.  Is this what you expected?

Just to remind you that I am exporting MIDI values from the current state of Track1 input source and looping these back in to control Track25 (for my test).

3. I think I found out why you were unable to load the pre-set.  I have four instances of AZ Controller running in my test system.  I have found that any pre-set which is exported from a particular instance of AZ must be imported into the same instance number.  So the pre-set I have now attached was exported from the 4th instance of AZ (which in my case is called 'Source Selection'.  If you import it into the 4th instance of AZ on your own system (so I mean counting down from the top of the instances table), it should load okay.  I tried this on a different PC and it imported just fine.

4. The only problem I have remaining is that Track1 source selection 'None' is not setting Track25 to 'None'.  It is being ignored.  I can see (using MIDI-OX) that selecting 'None' on Track1 is correctly outputting the correct MIDI code (in my example, decimal 126).  The exact entry of Cakewalk Source  'None' as a state within 'FriendlyNames' is '--- None ---' which I found out using the AZ Display facility (following your previous advice on this point).

So I know that the Cakewalk Track 1 Source 'None' is being interpreted correctly as a Feedback to MIDI output but seems to be being ignored when the reverse operation is required, so perhaps the 'FriendlyNames' from MIDI value action?

I would be very grateful if you could have a look at this one remaining issue, hopefully to find a solution.

Let me know if you are able to load the attached pre-set, using the 4th instance of AZ.

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on December 29, 2020, 10:11:13 AM
There was bugs, it should work correctly now (with None and for all Sends). Please download b407 (latest release).
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on December 29, 2020, 10:58:40 AM
Hello Alexey
I have tested with b407 and all sources including None are now working correctly.
Thank you so much for taking care of this.
Best regards
Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on February 09, 2021, 12:53:12 PM
Hello Alexey

I am programming the Transport commands between Cakewalk and my PIC computer.
I have an unexpected AZ Controller state which I want to check with you please.

I have set up a MIDI feedback output for 'RECORD: : STATE MONITOR'
It is set to output 'Value'.

When I put Cakewalk into record then I get the value 127
When I take Cakewalk out of record then I get no value output

Is this the expected behaviour?

I need to be able to detect when Cakewalk comes out of record.

Best regards
Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on February 09, 2021, 09:36:22 PM
I don't know about "Record" State Set. You need to monitor "Transport" state and construct sent values yourself. State monitors don't provide distinct Values.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on February 10, 2021, 11:44:11 AM
Hello Alexey

Thanks for your guidance.  I got confused!

Yes I can monitor Transport state and it conveniently outputs three values as follows:

STOP 0
PLAY 40
REC PLAY 7F

This is fine for my needs.

Best regards
Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: norfolkmastering on April 03, 2021, 04:01:55 PM
Hello Alexey

I am working on controlling the flow of MIDI messages between Cakewalk/AZ Controller and my PIC microcontrollers when both systems are launched.

Can I please ask two questions:

1. When a Cakewalk project is opened, is there any way for AZ Controller to 'handshake' with an external MIDI controller?
So I mean either:

a. AZ Controller responds to a SYSEX type message and sends out some kind of acknowledgement
b. AZ Controller sends out a SYSEX type message when a Cakewalk project is loaded.

2. Currently, when I start Cakewalk, I am getting a small stream of MIDI messages, even when I have no controller loaded in Cakewalk/preferences/controllers (and before a project is loaded).
Are you aware of any default messages which Cakewalk sends out?
I have attached an image of the messages which are being outputted from Cakewalk.  They seem to be consistent in content each time the Cakewalk application is started.

Best regards

Robert
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: Bassman on April 03, 2021, 08:27:51 PM
Hi :)

I think Cakewalk do "Reset all Controllers" on startup. If it is activated in the preferences it does reset on Stopp  normally.

Bassman.
Title: Re: Using AZ Controller for Cakewalk control of external audio mixer
Post by: azslow3 on April 07, 2021, 11:11:09 AM
1. AZ Controller can do event/time based activity in "Monitor"s. There is "Context" state set, which has "NoProject" state. You can organize state monitoring for it and update some defined by you state set, f.e. "Project" with states "Not Loaded"/"Loaded". Then using conditions update that set so it match the reality. Finally, you can monitor "Project" set and send something.

For initial handshake,  you can use timer based monitor conditioned with "Initialized" ("Yes"/"No") set, so it send something let say once per second till it gets expected response. For an example check build-in "Mack. Control" preset.

2. As Bassman has mentioned, Cakewalk sends some resets to all MIDI ports. You can set "Block all channel messages" + "Block all SysEx" in AZ Controller Options to prevent that for particular port (if you don't want disable these messages globally, f.e. you use some hardware MIDI synth). But something still can leak in case AZ Controller / Preset are not leaded yet at the time Cakewalk sends these messages (should not happened in practice...).