Cakewalk A-300 Pro Controller Script

RELATED
PRODUCTS

Post

Ok, i added

Code: Select all

masterTrack.getVolume().setIndication(true);
i think there already is the indication for the primary device loop.

Here:

Code: Select all

 for ( var i = 0; i < 8; i++)
    {
        var p = primaryDevice.getMacro(i).getAmount();
        p.setIndication(true);
    }
right now i`m only using MIDI CH 1 , but it might happen some day that i would like to be able to use the other ones as well, so i`ll leave that in for now.

I do not have motor faders or LED rings so i deleted that function flush now.
I also commented out all unnecessary Midi Channels.

Here is the script: http://pastebin.com/r3S4cBuz

cheers

Post

Ha - I missed that loop. That should work as well although it's a bit more complicated than it needs to be.
The Variable p is a bit superfluous.

Cool, so yes, create a github account and upload the script, then you can enter it into the database on the BWS homepage.
You can also improve the script later on if you want and just update the script on github - the database monitors that github page.

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Ok, submitted the script.. ;)

thx again!

Post

:tu:
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Ok, now i created a controller map sysex file, wich is setup up in relation with the variables i specified. This would make it a lot easier for people then. But i do not seem to find an option to load that up on GitHub. Any idea?

Also i still got 6 Buttons left wich are not used.. :)

I would like to use two of them to switch inbetween arrangeview and clip view. And yea, for the other 4, i don`t know. Maybe clip start/stop and move to next clip/previous clip.

Would that be possible Thomas?

thx

Post

Can't you just upload it?
I use the Github software and everything I put in the local folder is synched. I didn't try sysex yet but would have thought it would just work like any other textfile?

As for the other 6 buttons:
- Views are easy, you need an "application" view and then you can access it's methods for the views. You should be able to figure this out now. You could also just use one button for this and make it a toggle.

- I think you are missing device navigation next/previous? I'll help you with that since it's not obvious (or wasn't for me when I first tried):

Code: Select all

cursorDevice.switchToDevice(DeviceType.ANY,ChainLocation.PREVIOUS);
Same for NEXT.

- Not sure if clips are much fun without a grid and light feedback?
You could also add cursorTrack Mute/Solo/Arm for instance.

Or just see what you miss most over time.

For cliplaunching I find TouchOSC quite good and cheap.

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Yea, with the local one that worked. I tried directly from webstorm, but that didn`t because of file format incompatibility it seems.

Ok, yes clip launching is not that much of fun your right. Will have to wait until i can buy a Launchpad or smth.
I actualy do have an ipad 3, so that would be an option for sure.

Ok, i will try my luck with the application view and the device navigation.

cheers

Post

Ok, got TouchOSC working correctly. :) with your script..

Now i do not want to do any more configuration lol.
Tomorrow i`ll try that application view.

Post

Ok, i added the application switch and its working fine here. ;)

now i can switch inbetween clip and arrangemode globally here:

Image

wich would be the view for this switch in the arrangemode itself here?

Image

is it this one?

Code: Select all

addSelectedModeObserver
Also i really like what is done in the touch OSC script, but somehow its not working anymore after a restart. Not sure what i have i changed before actualy, but there was a black indicatior window with white text, wich shows the controller that is currently moved. That would be pretty handy for live situations, also on my rotary knobs. How is that done?

cheers

Post

No idea what the touchOSC problem may be. Maybe the virtual Midi port? Do you start that automatically on system boot?

Those arrangement settings can't be changed from the API yet (I'd love that myself), but you can toggle and switch the editor modes if you want (notes, automation, devices, mixer).

addSelectedModeObserver is an observer to tell you what mode you are in when it's toggled - but I guess you see that easily enough on screen ;-)

More on Observers: http://blog.thomashelzle.de/2014/06/bit ... observers/

Sending that kind of text notifications to the GUI is simple:

Code: Select all

host.showPopupNotification("your text as a string");
You may need to understand Observers for that though if you want to send feedback from Controller Actions this way.

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Ah ok cool, will look into that.

Not sure what is wrong with the Touch OSC, it worked once with showing that popup messages, but somehow doesn`t anymore. I didn`t change the script tho. Will check with restarting everything etc.
No i don`t let it start with the boot, would that be better? I think about doing that for the pure data and midi bridge, since i already had situations when i started bitwig and touchOSC, but forgot to start pure data and midi bridge, maybe thats why it got a hickup.

Another thing i wonder about is, if it is possible to let the rotary knobs on the macros behave like they fetch the current state i left it once. otherwise i now change the position of the knobs on another track, come back to the track before and mess in the automation on a maybe critical place.

thx

Post

Yeah, that may be the case - if you plan to use touchOSC regularly, I'd run it on start (I do), it doesn't eat much cycles.

If you can set your rotary knobs to a relative mode then that is possible (and advisable actually to prevent jumps) given they are endless encoders. In that case you would no longer use .set with a fixed number but .inc with the amount you want to increase it and the resolution. You can find the explanation in the "RangedValue" topic in the API Reference.

If possible set the encoders to relative mode and see what they send. I can help you further from there.

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Ok cool, i can set up all the rotary knobs to not just behave like a normal midi cc but also to simulate a rotary encoder:

Image

They send continuous messages in the console now, if they behave like endless encoders im not sure.

Is there a way to tell pure data to automatically load the basic.pd file as well?

Post

Basically: Can they be rotated endlessly or do they have a stop? If they have a stop, relative mode will not really work. If they are endless, then let me know what they send depending on the direction you turn them.
Usually it is something like 63 for decrease and 65 for increase, some controllers also send higher or lower numbers depending on how fast your turn them...

I don't follow your questions about basic.pd - are you using touchOSC with the OSC script from Moss? Then he would be the guy to ask. I did the midi-based touchOSC script before OSC was implemented by Moss:
https://github.com/ThomasHelzle/TouchOSC-Bitwig

No clue about pd here ;-)

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

No they stop sadly. hm :( no hack around?


I just realised pure data is not even needed to use touchOSC. It was just a primary test to check if the bidirectional communication works during installation. Shown in a tutorial on the touchOSC website. Ok, no worries then.

Post Reply

Return to “Controller Scripting”