Hi,
just installed AZSlow and trying to configure my LaunchControl (Mini not XL).
It looks like in the attachement.
- 8 strips containing 2 rota (emitting ctrl chg) + 1 button (emitting note)
- 4 additional left rightup down buttons, emitting ctrl.
- 2 buttons only used to change the mapping of the device (8 user maps and 8 factory maps), that emits Sysex when changing map.
The device can also receive messages to light up its buttons, change map or otehr things (see MIDI implementation in attachement)
(https://img.kytary.com/eshop_fr/stredni_v4/na/636706395424030000/a8b17336/55067318/novation-launch-control.jpg)
Using User map1, I manage to control volume/pan/mute per group of 8 strips, with the possibility to move the WAI track group using left and right arrow. Nice !
Now I'm trying to program the transport buttons using User map2. (STOP on button 1 and PLAY on button 2)
And... it almost works...
Because I noticed a strange behaviour :
I switch to map2 (I must press "User" and at the same time button2 (which is also "mute" in map1),
Then I use the transport buttons.
It work once and then, the device switch back to User map1 (with vol/pan/mute controls).
I wonder why it does that.
I tested outside Cakewalk, and if I do the same button sequence, it does not switch map by itself.
So I suppose that Cakewalk(AZSlow) send some kind of message back that is interpreted as an request to change map...
I read in the LaunchControl MIDI implementation that you need Sysex to do this.
Is it possible that AZSlow is emitting sysex messages by itself ?
For info, I used the Startup preset to start with...
Hi:)
This is this Reset Controller on Stopp, you can deactivate this or use an instrument file:
https://discuss.cakewalk.com/index.php?/topic/18083-finished-azcontroller-preset-for-novationlaunchcontrol-xl-2/
First sentence on this link!
Video from 7.26 on
https://www.youtube.com/watch?v=Fo-RG8reAAM
or in the PDF Directory of my OneDrive Link is an Installation Guide...
Greetz;)
Bassman.
Thanks man, that's what I needed, now I can finish the work.
The LaunchControl (small) is much simpler than the XL.
As you may know, the Launchcontrol has 8 user banks and 8 factory banks.
In each bank, buttons are emitting the same note/ctrl, but on different channels (user1-8=ch1-8, factory1-8=ch9-16)
I would like my left right buttons to trigger "move WAI left/right" in every bank.
But in "hardware" panel, it seems taht we can assign "move WAI left" to only 1 MIDI event, with a defined channel...
For example, how can I make the left button respond to any "ctrl 116" message on any channel ?
You can prevent Cakewalk sends to controller using options in AZ Controller. In the Options tab select "Block all channel messages" ("Block assigned messages" is the default) and set "Block all SysEx messages". It seems like in this case Cakewalk recognize the device is "dedicated DAW controller" and no longer operate it usually (but I am not 100% sure).
For hardware presets on device. With AZ Controller it is better avoid switching them (they are supported correctly, but require quite some extra work for proper setup) and instead use "modes" inside AZ Controller itself. Note that AZ Controller supports several methods to extend control functionality, f.e. arrow buttons can do something different on short/long/double press. That way you can have sufficient number of "mode switchers" without hardware presets changing.
How that works is partially used in Startup preset (strips - ACT modes). But Bassman has PMed me almost ready to use preset for your case (I hope he uploads it here).
In fact with a bit of patience and several iterations you can get preset/layout you need, without programming much yourself ;)
But explicit and detailed description of your wishes, uploading current preset you are using (especially after your own modifications) and reporting what other create is really working (since we don't have the same device) is required for success.
Ok I understand, I will look at Modes.
Bassman sent me preset for the Launchcontrol XL which is a really bigger device with many more buttons.
I'd like to define my own, because I have a precise idea of what I need :
- infact I do not care about mixing vol/pan/mute, etc...
- I want to use the device as a recording remote when I'm recording my sax in front of the mic, and do not want to use PC keyb/mouse.
So basically I need :
- button 1 : STOP
- button 2 : PLAY
- button 3: arm/unarm current selected track
- button 4 : RECORD
- buttons 5 -6: move time to FROM or THRU markers
- button LEFT/RIGHT: UNDO/REDO
- button UP/DOWN: select previous/next track
- rotary1: change current selected track volume using a rotary (I don't know if you have access to the concept of "current selected track")
- rotary2: move time between FROM and THRU (this one may be tricky)
BTW, can you tell me where to look to see available cakewalk commands ? (like the ones I described just before)
EDIT: forget about it, I found them. Wao, everything is available !!!
Finally, after reading the doc (huge but precise) I managed to create a preset that suits my need of a recording remote.
Here its is in attach.
I just have one thing that cannot figure out : how can I write a command that unarms all armed track, and then arm the selected one ?
And is it possible to "conditionaly" send midi to the device ? For example, I'd like to lit the button 4 in yellow when selected track is armed, and button 5 in red while recording is in process, and play button in green when playing.
I attach the preset from your specification (only).
a. It is currently assume "Factory 1" on device (it also tries to set it on loading, if not set it manually on device)
b. You will have to assign MIDI to buttons/knobs (Hardware tab)
After that:
1. report if preset really set "Factory 0"
2. report if controls work as expected
2. check LEDs are working for buttons 1-4 (you can change colors in the "Feedback" tab, Btn 1-4 , there are lines with color names)
3. save preset in the dialog, export it with Cakewalk Plug-in Manager, attach to your reply (so I can fix/extend the copy with all assignments and colors of your choice)
Better not do any other modifications in the preset, it is easy to break something and that will be hard to spot for me... Sure you can play with your own copy (type new name and press save, it will create a copy) ;)
Knob 2 is in fact tricky. For the moment I have implemented it as a "Jogger by measures" with knob imitates encoder (one of several "modes" for such imitation, can be inconvenient to use, we can try another).
We have published our presets almost simultaneously... We can continue with yours, but in my I have implemented quite some definitions for colors/monitoring, WAI, preset selection,...
There is "Rude record" parameter in "Strip" Action. "Value 0" after it should disarm all tracks. It is possible to make that conditionally, so if current track is armed,
button disarm it. If current track is not armed, disarm all tracks and arm this one.
I will make the modification after you decide with which preset we continue (and probably tomorrow, I have many tasks for today evening...).
Waaoooo !
you autoselect the factory preset !
I love the colors !
I must understand why you add these "monitor" lines that I have not in mine.
I will examine yours, learn, correct mine and post it here, so that you will have a very little work to do,
and it's a best way for me to learn.
Because infact I changed a little bit the buttons, you will see the new features.
I added the JOG in absolute and relative modes that are enough for me.
And as i'm recording on a loop in/out, I added a "set loop" and a "loop/on/off" and a "rewind to landmark"
I also added a volume/pan/gain for the selected track. Useful if while recording I see that my gain is bad.
BTW, great job, your plugin is very complete. (but that's a fact that the interface is not obvious at first sight ;) )
So I studied your preset, and tried to modify mine, but it's too complex, with these functions, states, etc...
I must have forgotten something to complete my preset...
So I edited yours. And we'll continue on yours, if you're ok, and I'll try to learn anyway.
What I changed (you can check if I did some horrors) :
- added all other knobs in hardware, and set the good values.
- added "rewind button" on but1 -> stop/play/arm/record button are move 1 step right
- added "save" on but6
- added a "set loop" on but7 and "loop on/off" on but8
- added a JOG/measure on knob A1
- added a JOG/beat on knob A2
- added volume of selected trk on B1 with instant/convex (did not really understand "timeout touch")
- added pan on B2 and gain on B3 (nice to tweak gain while recording my sax, if I see a peak)
- tied to detect the pause state : when in pause, i'd like the PLAY but being low green and the STOP button low yellow. Note: if I press PLAY again, colors are ok (off/green), but if I press STOP after PAUSE, the buttons stay low yellow/low green and do not switch to yellow/black, I do not understand what's wrong...
what I would like (but maybe not possible):
- use arrow up/down to change the mode : I would like a second mode with the classic mixing device = volume on A, pan on B, mute on buttons, and WAI left/right on left right arrows
- could the button 7 (set loop) be conditionnal ? set loop only if from/thru selection is not empty, otherwise keep the loop as it is.
- buttons 7 and 8 should be green if the loop is on, off otherwise (EDIT: done)
- button 1 should be low green if the time is on the "Loop in" marker (= I am on the good position to record)
- button 6 should be light red if the file has been changed and should be saved.
problem that i cannot figure out :
- since I inserted "rewind" on but1, it stays yellow.... despite the fact that I tried to reset the factory map 1 in _Init with midi B8 00 00 (but I cannot set it to "initial"...)
- BTW what says that the _Init function is called on start ? Its name ?
- I do not understand the use of timer on some buttons.
- why do you trigger the _Init feedback ? what's the use of WAI track(1) bus(0) master(0) ? why do you not put it in the main part of _Init ?
- where do you initailize Template ? Why don't you use Template in the initial Sysex that change the template to factory 1 ?
new file in attach
PS: sorry for my english, I'm french... ;-)
I will update tomorrow, so just some comments.
Important question: we continue with "Factory 1" or you for some reason want some other?
_Init is not special, it just has SysEx with "init" flag, so this SysEx is sent when preset is loaded.
Monitoring is most complicated concept in AZ Controller... It re-use "Logic" Actions (ignoring some) + Feedback, but it is executed not on MIDI receive. Hard to explain is one sentence, many tutorials overview that concept.
"Timer once" on some buttons is just placeholder (so Feedback list is somehow organized...), they do nothing at the moment.
I don't have time comparison functionality, so no way to change light inside from/thru, nor make some dependency from it. But I will think, may be I can add that.
PS. I have no problems with your english, I am russian in Germany ;)
No rush, I'm working on it, and who knows, maybe I can find out some solutions ;-)
I already did the loop test for loop buttons green.
Factory 1 is OK.
I added this (but maybe it's impossible too)
- button 6 should be light red if the file has been changed and should be saved.
I'll try to understand monitoring.
I still do not understand what triggers _Init . It is supposed to be called only at loading, yes ? Just because the sysex has the init flag ? Why this flag is not on the logical control it self ? Why cant'I put it on the simple MIDI send ? And why is there a feedback related to it ? Can't we put the WAI call in the main _Init ? (I did it, it works...)
The time comparison could be nice. :-)
Thx again for your help.
I don't think Cakewalk expose "project not saved"... Cakewalk does not expose many things :(
"_Init" has no special meaning. It is never called. MIDI / SysEx is easy to execute during preset loading. But the whole Action list not: the preset is a program (a kind of...), some part of it can't be executed before it is completely loaded. It is possible to organize, using monitors, so execute something one time AFTER the preset is loaded.
Monitor in _Init track "current" Track, so Feedback actions (WAI in this case) are executed every time current track is changed (also by mouse, so independent from surface).
In general, everything in Logic is executed as a reaction on MIDI control. Feedback as a reaction on something else (monitored parameter or timer).
Well, "functions" are defined as Logical controls but can be called from Feedback (many Actions will not work in this case or will work differently, in AZ Controller execution is context dependent).
The concept avoid "double declaration", f.e. to switch Mute you need to select the parameter first (which strip, which parameter, can be quite complicated logic which depends on mode, transport, etc) and then toggle it. To make LED follow Mute you need to select the very same parameter and do something when it is changed (independent from the button). So, the parameter is selected before Monitor Action and toggle is in the same list. When you press button, "Monitor" is ignored. During monitoring toggle is ignored (even in case it is before Monitor Action in the list). Harder to understand then explicit "we will toggle" / "we will monitor", I know ;)
For "saved", I just tried, who knows ;-)
For _Init :
Why cant'I put "initial flag" on a simple MIDI send, but only on sysex ? Because I would need to send a B8 00 00 once at loading to clear all colors.
And why is there a feedback related to _Init ?
Can't we put the WAI track1bus0master0 in the main _Init ? (I did it, it works...)
Still not very clear to me... :-(
For arm/desarm track :
I tried to find a way to detect the condition "armed track", but I did not find it in the action condition list. So I tried to define and update an _Armed state, but failed... You can look at what I did...
BTW, if you set "Rude record" to 0 with no track armed at all, then all tracks become armed !!! That's why we need a "armed track" check on the current track...
Last:
is it possible to send some midi when unloading cakewalk ? the same B8 00 00 to clear all lights on the device... because otherwise they stay lighted after my cakewalk session.
I do not find in the manual where you speak about short/long/double press...
I do not find any precisions about using different modes... (my eyes are old...)
here is my last version.
I attach preset which implements what I could find in the text.
Note: it is a mod of my original 0 preset, not your 7. I have asked you to not modify anything after assignments, except may be colors. Things got quite changed in 7 (I have warned that is easy). So I had to repeat all assignments in my preset following yours. Future versions will be mods of this (8) preset.
Modes: Record (default) and Mix.
Mode switch: "Up" pressed for more then 1 second (Long press)
Mode Record:
Buttons: RTZ (no LED), STOP (LED, diff on Pause), PLAY(LED, diff on Pause), Exclusive record arm(LED for current track), REC(LED), File/Save (no LED), Set Loop times (no LED), Loop on/off (LED)
Knobs A: Jog measures, Jog beats (Ribbon mode, not really good for knobs since fixed to +-64 units)
Knobs B: Volume, Pan, Inp. gain for current track
Arrows: Undo, Redo, previous and next track
Mode Mix:
Buttons: Mute (LED)
Knobs A: Volume
Knobs B: Pan
Arrows: Undo, Redo, previous and next blocks
Block is auto-aligned to 8, so it can start from 1, 8, 17 only. Block is independent from current strip, switching to mix mode recall last WAI.
Preset should recall "Factory 1" on loading. LEDs should go off on project closing (may be on Cakewalk closing as well).
-------------------
Now answers on some of your question:
* There is MIDI with initial flag, as a separate Action type. "SysEx like" MIDI events was introduced to construct simple MIDI events "on the fly", the same way it was possible with SysEx. Complex construction is not possible on preset loading.
* Any value on Rude parameters toggle (ignoring the value). That is a bug (not sure where), probably overseen since never used. But there is better method to disarm everything, which I have used now.
* modes / long pressed / etc. have no dedicated Actions. They can be implemented using Action Conditions and Timers, as you can see in current preset (f.e. Long for "Up"). There are Tutorials which explain some of ideas behind. Sure, all that significantly complicates Action lists. Hardware producers are very proud about "2-16 configurable hardware presets", write many pages of documentation about the feature and give special utilities for setup. We do the same in software, that can't be done completely without effort.
In general, anything above Startup preset with AZ Controller is complicated. Especially any feedback to controllers. That is the reason why "deep controller integrations" (for any DAW and controller) is normally a job for dedicated professionals. Users normally just "assign MIDI".
While AZ Controller allows construction of "smart" presets without huge programming skills, it can't hide the complexity of the topic.
Just some examples:
- not everything in a DAW happens "instantly", f.e. after you set Mute it takes some time (till the next audio buffer processing) before the channel is really muted.
- not everything in a DAW is buffered. Which commands are buffered and which not is DAW and command dependent.
- good design of controller preset foresee "external" changes, f.e. current track, transport, WAI, etc. can be changed by mouse. Controller should not go "out of sync" in this case (some controllers in fact ignore that idea on hardware/firmware level, f.e. by switching transport LEDs on corresponding buttons operations only).
- something can be "not there", f.e. if your button control strip 8 mute it can happened there are less strips in the current project. Feedback should not be confused by that
- as a kind of consequence of all previous topics, it is rather bad idea to organize feedback as direct reaction on controller operations. The feedback should follow current real situation inside the DAW.
Hi:)
>>>>But Bassman has PMed me almost ready to use preset for your case (I hope he uploads it here).
I have not even started writing a preset, but attached this preset for 10 buttons on the right, 48 "normal" buttons and 32 Encoders, all buttons with normal, double- and long press.
Working on a basic preset with modes on long press on these 10 buttons on the right, it needs sliders too for those who needs it....as soon as I have time to....
Using perhaps 5 of the buttons on the right for WAI +-(WAI on Bus), Start Stop Play Rec, Track+-(8+-), Ctrl and Shift!
On the normal buttons Solo, Mute, Rec_Arm and A.Write, on the Encoders Vol, Pan, Sends 1-4(Pan), Vol on the Sliders.
Long Press switching modes on 8 normal buttons too for those who don't have much buttons on the right(or left).
Then you just have to assign the midi CCs on the right buttons, sliders or encoders and the rest of double, normal or long presses for making by their own.
Forgot Feedback, I think midi Ctrl back is already in there.
Is this OK Alexey?
Bassman.
hello both of you !
> I attach preset which implements what I could find in the text.
Thx a lot !
It's wonderful.
I will now use this little device that was sleeping in my room.
> I have asked you to not modify anything after assignments, except may be colors.
Ha ha, sure, but I need to learn and practise, and I also wanted to help you because we do not want to make your wife upset :o . But no problem. I'll start to tweak your new version for my own training. ;)
> Modes: Record (default) and Mix.
> Mode switch: "Up" pressed for more then 1 second (Long press)
great !!!
EDIT : I just red Bassman post up here, and his idea is great : long press on but 1-8 to switch between modes (you'll see that I suggest a third mode below)
> Mode Record: Buttons: STOP (LED, diff on Pause),
Is it possible that but2 be low amber when on pause ? (not green)
> Knobs A: Jog measures, Jog beats (Ribbon mode, not really good for knobs since fixed to +-64 units)
That's fine for me : I use A1 for coarse position and A2 to fine tune. Anyway, it's just to naviguate in my current take/loop to listen if I made a wrong note somewhere ;)
Possible but7 is low amber when loop off, and black when loop on ? (and still but8 full yellow when loop on) . So I know that both buttons are for loop, and the loop status
About loop, you did not answer, but I suppose it's not possible to test if the FROM time is really lower than THRU before selecting a possibly empty loop ? ( in cakewalk, you can have sometimes a very small unwanted selection)
Possible but6 colors in red for 2 sec to show that file is saving ? (in case I misstype the button)
> Mode Mix:
When mixing, I do not need undo/redo, cuz I'm in front of the PC, (so I have ctrl Z and Y)
So is it possible "previous and next WAI blocks" on left-right (more logical when mixing in console view)
And could we add a third mode : a mixing mode with solos ?
With a color code on right arrow to know the current mode :
- mode 1 (long but1 to switch) = record, right arrow is red
- mode 2 (long but2 to switch) = mix+solos, right arrow is green
- mode 3 (long but3 to switch) = mix+mutes, right arrow is yellow.
In record mode, I do not really need up/down to navigate tracks.
Instead, it would be more useful to have :
"up" = solo/unsolo current track (with a green color if soloed)
"down" = mute/unmute current track (with a yellow color if muted)
In both mix modes,
- up arrow = solo/mute all (now that I saw function/all/tracks mute.....)
- down arrow = unsolo/unmute all
> Block is auto-aligned to 8, so it can start from 1, 8, 17 only. Block is independent from current strip, switching to mix mode recall last WAI.
great !
> Preset should recall "Factory 1" on loading. LEDs should go off on project closing (may be on Cakewalk closing as well).
yes it works on closing project. Nice.
Only little flaw, but I don't know if you can correct it : when loading, the color buttons does not update to inital states of the selected track :
- but2 should be yellow ("stop" at load time ?)
- but4 should reflect current armed status (possible to read at load time ?),
- but 7 & 8 should reflect the loop status (possible to read at load time ?),
- "up" and "down" arrows should reflect solo and mute status (possible to read at load time ?),
- "right" arrow should reflect current mode ("record"/red at load time ?)
PLEASE note that these are only suggestions : if you think it's not doable, or too much work, no problem ;)
You already did a tremendous job, and it will great fun to use !!! ;D
-------------------
> Now answers on some of your question:
> * There is MIDI with initial flag, as a separate Action type.
Yes I see it know in your code.
> * Any value on Rude parameters toggle (ignoring the value).
ok.
> But there is better method to disarm everything, which I have used now.
I see : function/all/track disarm !
> * modes / long pressed / etc. have no dedicated Actions. They can be implemented using Action Conditions and Timers,
I looked at long press implentation, but still did not get it. I will look tonight, when my wife is asleep :-X ;)
> In general, anything above Startup preset with AZ Controller is complicated.
Yes it is, you interface and the logic behind is very complex, but it's the price to pay for such a flexibility !...
I read about REACTION / OBSERVATION / FEEDBACK phases, but it's not classical way of programming :
actions have different effects according to the phase you're in... Coming from classical langages (C++, etc...), it's not an obvious way to think. But powerful I guess.
BTW, how did Bassman to translate the preset into TXT ?
-------------------
Anyway thanks again for your great help.
If you want to ear why I need such a remote device, you can listen here :
https://soundcloud.com/hbsk/sets/covers
I play and sing all parts at home, often stand up, so a lot of hours of recording.... Note that it's just a hobby , so be forgiving ;D
I can try to implement your suggestions, but there are 2 points we have to clarify first...
As you can see in my Color and original documentation, there is no "low yellow". In addition my color perception is non standard... So, can you write which explicit color (from available) you prefer on that place?
Are you sure arrow buttons have LEDs? I have not seen a single picture of that controller with lights from these buttons (and pictures from the internet is the only imagination I have about most controllers I have programmed).
Since you have mentioned programming languages... Content dependent execution in AZ Controller engine (and some other features) was inspired by FORTH concepts. I guess overloaded methods in C++ had the same motivation. But executing exactly the same sequence of Actions in different contexts (there are 3), and so with different results, is AZ Controller specific ;)
Internally AZ Controller engine is byte code interpreter. Presets are mostly a list of byte code functions, in binary form.
Answering on your other question: you can get text representation of preset by exporting it as text in the Options tab, but there is no text import. So, for an overview and debugging only.
> I can try to implement your suggestions, but there are 2 points we have to clarify first...
For sure
> As you can see in my Color and original documentation, there is no "low yellow". In addition my color perception is non standard... So, can you write which explicit color (from available) you prefer on that place?
oh yes, in fact, when the yellow is lighter, they call it "amber". So it's "amber low". (page 4)
Do you have the MIDI documention ? I add it in attach, in case...
"Launch Control is a class-compliant USB device that boasts 8 pads and 4 buttons. Every pad
contains a bi-coloured LED with a red element and a green element; the light from these elements
can be mixed to form amber."
> Are you sure arrow buttons have LEDs? I have not seen a single picture of that controller with lights from these buttons (and pictures from the internet is the only imagination I have about most controllers I have programmed).
I just checked the doc, but yes, it seems that you can light them (They are looking like the user and factory buttons that can light up).
Everywhere they say "pads/buttons" : "pad" is for but1-8 and buttons are for the 4 arrows.
See bottom of page 6. 0-7 for pads, 8-b for buttons/arrows.
So I suppose that in your _Btn state, you can add 9 10 11 12
But I do not find the precise correspondance with left/right/up/down, so I made some tests :
up = 9 (or MIDI 8 in the sysex message)
down = 10 / MIDI 9
left = 11 / MIDI a
right = 12 / MIDI b
And I even see, that you can make pad flash. It would be nice to have a flashing low red when the selected track is armed (in mode record) ::)
> Since you have mentioned programming languages... Content dependent execution in AZ Controller engine (and some other features) was inspired by FORTH concepts.
heard about this one...
> I guess overloaded methods in C++ had the same motivation.
well, in your case, some "lines" (not a whole method/function) of your code seems to trigger differently depending on the context...
> But executing exactly the same sequence of Actions in different contexts (there are 3), and so with different results, is AZ Controller specific ;)
You are either a genius or a computer monster... :o ;D
I have implemented what is possible (so, no time comparisons no project saving status).
Modes: Record (default), Mix+Solo, Mix+Mute.
Mode switch: one of the first 3 pads pressed for more then 1 second (Long press)
Mode indications: right arrow (red/green/yellow)
Mode Record:
Buttons: RTZ (no LED), STOP (LED, diff on Pause), PLAY(LED, diff on Pause), Exclusive record arm(LED for current track), REC(LED), File/Save (no LED), Set Loop times (no LED), Loop on/off (LED)
Knobs A: Jog measures, Jog beats (Ribbon mode, not really good for knobs since fixed to +-64 units)
Knobs B: Volume, Pan, Inp. gain for current track
Arrows: Undo, Redo, toggle solo for current track (LED), toggle mute for current track(LED)
Mix modes:
Buttons: Mute (LED) or Solo (LED)
Knobs A: Volume
Knobs B: Pan
Arrows: previous and next blocks, mute/solo all tracks (not only in the block9, unmute/unsolo all tracks
Block is auto-aligned to 8, so it can start from 1, 8, 17 only. Block is independent from current strip, switching to mix modes recall last WAI (WAI is common for mix modes)
Preset should recall "Factory 1" on loading. LEDs should go off on project closing (may be on Cakewalk closing as well).
LEDs should work correctly on startup, please report if not.
Hi:)
>>> LEDs should go off on project closing (may be on Cakewalk closing as well).
Thanks for this idea Alexey, I use it in my preset now;)
OK, I have a starting point of this basic preset, don't know where to upload it, I post it here perhaps "binbinhfr" can use some od this buttons with double and long press:
"Basic_Preset_10-08-2021" (Just reassign Midi (Buttons 1-8))
All Buttons have normal, double and long press actions.
Buttons 1-8 with Long Press do switch Modes 1-8
In Mode 1 it calls fMode-1 (Solo)
In Mode 2 it calls fMode-2 (Mute)
For the Modes the toggle is in fBtn_Act_(1-8)
In fBtn_Act_(1-8) Double Presses are free for other actions
I do some more modes and the Encoders and Sliders with them. For now 2 Modes and just the buttons, more on sunday...
I think this will be a very good starting point for any controller, all actions from binbinhfr could be in a free Mode in this preset.
@Alexey
Or we do start a new thread with this basic preset, don't know...
More to come...
Greetz;)
Heinz.
Hi Alexey,
Thanks for this update.
I reviewed it in detail, because I use it right now in my little studio !
I am more efficient with this remote : no need to go back at PC at each take,
very bad for my old back :'(
> I have implemented what is possible (so, no time comparisons no project saving status).
ok, got it.
> Modes: Record (default), Mix+Solo, Mix+Mute.
> Mode switch: one of the first 3 pads pressed for more then 1 second (Long press)
Nice ! long press work
> Mode indications: right arrow (red/green/yellow)
but the left/right arrow does not light correctly :
- record mode 1 is ok with right arrow red.
- mix/solo mode 2 has no light (instead of right arrow green)
- mix/mute mode 3 has right arrow red (instead of yellow)
> Mode Record:
> toggle solo for current track (LED), toggle mute for current track(LED)
both do the toggle correctly, but the lights are not good :
- the left arrow (solo) stays black
- the right arrow (mute) toggles red (instead of yellow)
Did you have a look at possibility to flash the arm button in red if armed ?
It seems that there is a MIDI command for that.
> Mix modes:
> Buttons: Mute (LED) or Solo (LED)
in mix/solo mode, could we use green color for solo buttons, to reflect cakewalk solo button color ?
(and keep yellow in mode/mute mode)
> Arrows: mute/solo all tracks (not only in the block9, unmute/unsolo all tracks
actions do work.
I do not get the lights. Both up/down arrow become red as soon as at least 1 track is muted or soloed ?
Could be nice. But then can we use the corresponding colors (green for solo, yellow for mute) ?
> LEDs should work correctly on startup, please report if not.
at startup, arm and loop colors are updating, but not btn2 (stop should be light)
nor the right arrow that should be red on mode record.
Thanks again for your great work ! ;D
@bassman : I don't know what to do with your preset, because it seems to be dedicated to LaunchControl XL, no ?
And I do not want to ruin Alexei's work... :-\
HI:)
@binbinhfr
No, it will be a basic preset for all controllers, a startup point to write your own preset. Just ignore it at the moment and finalize yours ;)
When both are ready, perhaps I'm trying to combine the work of Alexey and mine to make the basic preset better....
Greetz;)
Bassman.
Ok Bassman, I understand. So maybe (and I don't want ot be rude :D), you should open a new thread on this "basic starting preset", that is a very good idea and deserves its how post, because some people could be interested in it, no ? Please post new bass solos on youtube, man, I love that ! ;)
HI:)
I have no concert before christmas, so I don't have to make a new solo, perhaps then. For Bass Players Solos are not often.....but I like it too, although it's a hard work to write one. Don't like to improvise, I have to write it down and study it ;D
Bassman.
"Each button contains a single red LED"
So, no yellow/amber/green on arrows. I have updated to off/red low/red full.
Blinking is possible... But I don't think that is a good idea during recording. We can't sync blinking to tempo, I personally don't like blinking for any indication (except in a car...)
I have changed Btn2/7/right indication, hopefully work on start and exist this time.
> "Each button contains a single red LED"
oh shit, I miss this one ! :-[
The test I made was with the red color, that's why I did not notice it... ;D
> So, no yellow/amber/green on arrows. I have updated to off/red low/red full.
great !
> Blinking is possible... But I don't think that is a good idea during recording.
I was thinking about blinking low red on but4 when armed (like "waiting for record") but not while recording (keeping but4 off, but5 fixed full red). But it's a detail. Don't bother. You're right, it might be annoying.
> I have changed Btn2/7/right indication, hopefully work on start and exist this time.
I'll try this at home tonight and tell you how it works !
In record mode, on the lower knobs that serves transport (JOG), I tried to add some features, that you may want to code by yourself, to ensure it is ok :
- on knobA3 (close to 2nd JOG knob), I put horizontal zoom (ribbon slow)
- on knobA4, I wonder if it's possible to implement a track change up/down ?
- on knobA5, a vertical zoom (ribbon slow) ; I wonder if this zoom can only concern the selected track and not all the tracks proportionnaly ?
Thanks again, Alexei, and have a nice day !
PS : but tell me, you are doing all this without possibility to test it live ??? Reading the complexity of the action lists now, it's unbelievable !!! :o
I have assigned A3 (HZoom), A4(track selection) and A5(VZoom selected track)
Note that Ribbon was introduced for real Ribbon controller element (touch sensitive strip, which sends signals like knob but you can initially place finger on any value...). Based you your preferences, Behringer X-Touch Mini will be better controller for you (it has less knobs, but they are encoders and it has more buttons).
PS. I have several indirect ways to debug... "Display" in the Options tab in fact shows colors your get from pads/buttons, "Inject ..." controls map some buttons from my controller into your controllers, there is "Play" button to execute a part or the whole control and with MIDI injection I can test complete reaction.
That is in fact way harder then with real controller, also staff like initial/exit feedback is impossible to check this way.
It is possible to create OSC panel (f.e. with TouchOSC) which mimics particular controller (and assign OSC in addition to MIDI to corresponding controls), but that takes too much extra time in practice (and so I have never used that).
Defined so far lists are not complex. Check Mackie or BCR2000 presets to see what are complex definitions ;) After some complexity, I normally introduce "functions" for similar controls, to keep lists more or less short (and debug less).
> I have assigned A3 (HZoom), A4(track selection) and A5(VZoom selected track)
thanks
> Based you your preferences, Behringer X-Touch Mini will be better controller for you (it has less knobs, but they are encoders and it has more buttons).
So do you want me to change this param and see if it works better for me ? I'll tell you.
> Defined so far lists are not complex. Check Mackie or BCR2000 presets to see what are complex definitions ;)
Ok, I'll have a look at that. That's the first time I read such a "langage". But, for our subject, it's very efficient anyway ! (even if it's not easy to read if you are not the author of the code, and you have to dive into it from scratch... ;D )
Quote from: binbinhfr on October 11, 2021, 03:42:48 PM
Ok, I'll have a look at that. That's the first time I read such a "langage". But, for our subject, it's very efficient anyway ! (even if it's not easy to read if you are not the author of the code, and you have to dive into it from scratch... ;D )
It had to be:
- interactive, so any change could be checked instantly without reloading anything. That rules out any compiler based solution.
- modification in the program itself, so not "test in console, implement in program". That rules out standard interpreter, but more or less object oriented solutions (python, lua, etc.)
- be sufficiently flexible to test things. I in fact had no idea which functionality I want from my surface.
- be efficient, small and not crashing. It works during DAW operations which are real time. And my computers was rather slow (centrino, celeron, atom)
"Configuring" way like in VSTs or MIDI assign is almost ok. But obviously not extremely flexible. Node like logic (which I guess roots in LabVIEW) needs good graphics representation. Also "in/out" paradigm there is hard to map into Controller logic.
FORTH like system sounds interesting for the case. Some fancy properties of it (Wikipedia does not outline them explicitly):
* one program for everything. You just save its current "state" as "the result". The editor, compiler, interpreter and in extreme cases BIOS and OS are parts of that program. You can modify anything (or a part of it). Normally "final program" is the state right after your remove not needed components (f.e. editor)
* interactive, but when you define a function it is strait compiled into the (binary, a kind of byte code) program. You can run it immediately, modify, delete or save into result.
* context based execution. Obviously if an editor, compiler and interpreter are just a part of the program you are writing, some statements should be able to do fancy staff. So, compile something and then run it. Far from "contexts" used by me, but general idea is still the same: one "thing" can do something different when used in different contexts.
* typical FORTH "interpreter" is less then 30 bytes (not a typo!). Logically program can be very efficient in size and speed (but not on i386... its cache hardware was unable follow references efficiently...).
After decades all these ideas still fascinate me. Unfortunately no-one has followed them and there was no evolution. In original form the language is outdated...
> one "thing" can do something different when used in different contexts.
yes this concept is quite original. I do not remember seing it in other languages.
And it's quite unatural, because you have to read the code with 3 different points of view, or 3 different "parsings"
> * typical FORTH "interpreter" is less then 30 bytes (not a typo!).
???? you cannot even program "hello world" with this !!! :o
> After decades all these ideas still fascinate me.
I can understand that it is a challenge for the mind !
You should like puzzle games like TIS-100 by Zachtronics, Shenzhen I/O, exapunks. They presents puzzles that you must solve with simple computer languages. I have a lot of fun with them, scratching my head for hours ! :P
Quote from: binbinhfr on October 11, 2021, 05:45:21 PM
> * typical FORTH "interpreter" is less then 30 bytes (not a typo!).
???? you cannot even program "hello world" with this !!! :o
That is the code of interpreter, it requires a bit more (not really a lot) defined binary functions (for particular CPU) and CPU independent binary code (quite some). From my knowledge, the only devices which still native support that language are PS printers (Postscript files are FORTH programs).
I forgot to mention one really unique feature of FORTH, which concept I don't use in AZ Controller. It is relatively easy to write interpreter of some other language in FORTH and then continue writing a program in that language, by continue I mean in the same source file... The best example I know comes from one book "knowledge databases in FORTH" (I don't remember exact title), which starts with "... FORTH is not great for demonstration the following ideas, so we first write LIST interpreter" (~2 pages of FORTH program), followed by examples written in LISP ;)
So, after a hard day of work, let's go back to Work !!! ;)
I tested the new version, here is what I noticed :
- at start, the STOP but2 is still not light. Should always be. All other buttons are correctly initialized.
- knob A3 = very good for me. I do not manage to understand if it naviguates in relative or absolute ? I mean : if I put the knob at 0, is it always max zoom out, and at 127 always max zoom in ?
- the knob A4 for track up/down is way to fast. As soon as I touch it, it goes to track 1 or last track... :o
I suppose that the knob has 128 (or 256?) values and that, if one value = one track number, it's way too sensible. Is their a way to divide the absolute value of the knob by 5 and assign the corresponding track number ? because usually, I have less than 128/5 = 25 tracks.
- knob A5 = perfect !!!
- arrows = great in all modes ! (even with red only :D )
>> Based you your preferences, Behringer X-Touch Mini will be better controller for you (it has less knobs, but they are encoders and it has more buttons).
>So do you want me to change this param and see if it works better for me ? I'll tell you.
I noticed that I misunderstood your sentence. I thought you were asking me to test a "xtouch" compatibility mode or something like that.
But you want me to buy some stuff !!! It's not christmas yet, and I have other priority concerning music gear ;)
And honestly with what you've done to my little LaunchControl, I'm perfectly happy with it, and he is too. ;D
In addition to my previous post, now that I really use the Launchcontrol regularly, I mett another wished requirement :
is it possible to have a different behaviour when you are in the piano roll or in the event list ?
because if I'm in the piano roll, the jog and zooms still affects the track view.
I'm often working on the piano roll or event list, that i'm using to correct some faulty midi notes I played on the piano (postprocessing, what a shame !!!).
It would be nice if they could affect the piano roll, and even the event list (to travel up and down in the list).
Have a nice evening !
Btn2 had a bug in the last change, should work on initialization now.
I have tried to "slow down" A4, 1/5. May be put that functionality on buttons/pads instead? Finite knobs are not best for such operation. We can define it as "absolute", so particular knob range corresponds to absolute track. It will "jump" them after you change modes, but for under 25 tracks can be more convenient to use.
Original Sonar developer was genius and ahead of time... But not all operations are mirrored into Surface interface (unlike f.e. in REAPER). So, detection of Piano roll/Event list focus is not possible without other level tricks... I had an idea to implement my own Accessibility ideas into AZ Controller, but that has not happened yet, except talking feedback. BTW since Launchcontrol has no display, in case you can't see display from the place you use it, that can be interesting for you. F.e. when current track is changed AZ Controller can pronounce its name. But you need Windows sounds working in parallel with DAW for that, so normally other/build-in audio interface assigned to windows sounds (and speakers connected to it).
I have mentioned X-Touch Mini just as future proposal, in case you consider additional DAW controller(s). Anything with encoders instead of finite knobs is better for the purpose. And more buttons can be more usefully then more knobs (if table space is valuable).
There was one more bug with b2...
Please update to the latest release, 0.5r10
RTZ (B1 in record mode) should indicate weather you are on "Loop in" or not (will not work without new release installed).
Note I have no access to "selection" time, only to "current", "loop", "punch" and "data cursor". So I have implemented logical comparisons,
"current time in/on loop/punch".
> Btn2 had a bug in the last change, should work on initialization now.
yes it seems to work now :D
> I have tried to "slow down" A4, 1/5.
speed is perfect now !
> May be put that functionality on buttons/pads instead?
No it's convenient like this. 5 knobs to move around freely and quickly.
> Finite knobs are not best for such operation.
I understand.
> We can define it as "absolute", so particular knob range corresponds to absolute track. It will "jump" them after you change modes, but for under 25 tracks can be more convenient to use.
Yes, because for the moment, I admit that I do not understand the behaviour : it reacts strangely, sometimes reacting only when I pass the middle value (64) and not always able to reach the top or bottom track, even if I have less than 25 tracks (always the case).
It would be great to have an absolute correspondance : knob value 0-127 / 5 -> track number.
But it would be that, when loading the file, the selected track DOES NOT replicate the knob position. (when I open a file, I like to be on the track where I was working when I closed the file).
I understand that on first use, it will do a jump. No problem.
> Original Sonar developer was genius and ahead of time...
Yes I remember cakewalk in the early 90's, it was already a nice software !
> So, detection of Piano roll/Event list focus is not possible without other level tricks... I had an idea to implement my own Accessibility ideas into AZ Controller, but that has not happened yet, except talking feedback.
I'm sure you have many ideas ! Your brain must be a volcano. 8)
> BTW since Launchcontrol has no display, in case you can't see display from the place you use it, that can be interesting for you. F.e. when current track is changed AZ Controller can pronounce its name. But you need Windows sounds working in parallel with DAW for that, so normally other/build-in audio interface assigned to windows sounds (and speakers connected to it).
Well nice feature, but I do not like this too much. I hate the car GPS speaking to direct me on the road. ::)
And I'm not so far from my screen. Just that I am standing up while recording, with my heavy sax around the neck and tied to headphones, so it's not easy to bend and manipulate the keyb/mouse in this situation. :-\
> I have mentioned X-Touch Mini just as future proposal, in case you consider additional DAW controller(s). Anything with encoders instead of finite knobs is better for the purpose. And more buttons can be more usefully then more knobs (if table space is valuable).
Yes, and I even see that xtouch mini encoder are also clickable, like on the X32...
But are you able to control the led around the knobs ?
Drawback : buttons have only 1 color...
We'll see for CHristmas if I can find a used one in good shape... :P
> There was one more bug with b2...
> Please update to the latest release, 0.5r10
done.
> RTZ (B1 in record mode) should indicate weather you are on "Loop in" or not (will not work without new release installed).
yes nice ! So I see that I'm in good position for recording !
> Note I have no access to "selection" time, only to "current", "loop", "punch" and "data cursor". So I have implemented logical comparisons,
"current time in/on loop/punch".
ok.
what is data cursor ?
do you have access to song length ? (so that we can make the JOG wheel more clever ?)
I'm still wondering how we can find a clever absolute mode, that would avoid jumps, with some kind of elastic behaviour if the knob absolute position if far from the controled value starting point...
BTW, is the knobA3 (horizontal zoom) absolute ? It could also naviguate into the whole range of the cakewalk zoom (that seems to have min & max boundaries if I look at the "icon" at the bottom right corner of the track view.
Same question with vertical zoom range.
Anyway , thanks a lot again for this new version.
-----------------------------
As I don't know all the cakewalk functions you can access, maybe you have ideas to populate the unused knobs in record mode ?
EDIT :
Oh yes, do you have access to snap values ? Would it be possible with a knob (A6 ?) to naviguate in absolute, for a knob going from 0 to 127,
between snap-TO values (1/64 to whole), then snap off, then snap-BY (whole to 1/64).
These are 15 "values" or logical positions, but we can make it 16 and use a double range for snapp-off in the middle position ?
so it would be :
0-7 = snap-to 1/64
8-15 = snap-to 1/32
...
48-55 = snap-to whole
56-63 = snap off
64-71 = snap off (duplicate, so easier to find the off position)
72-79 = snap-by whole
...
120-127 = snap-by 1/64
Do you think it's possible ?
Feel free to send me to the Devil, if you think that I'm too demanding ! :o
With snap it could be interesting. Unfortunately that doesn't work in Sonar X2 (some bugs on Sonar side). I have to check with current Cakewalk.
In any case, "to" or "by" can be toggled, but current state is unknown. The same for "smart". As I wrote, Cakewalk exposes just a subset of options to surfaces.
> In any case, "to" or "by" can be toggled,
great
> but current state is unknown.
Is it important if we make it absolute ?
Again, it's not a problem if there is a jump when I touch the knob.
> The same for "smart".
I thought you wrote you had access to current/now time : it's the reference for the jog transport, no ?
For Snap, Cakewalk expose current snap status, but only "on" or "off". So, no way to say it is "smart" or not.
The rest are just commands, so "toggle to/by", "toggle smart" and "toggle snap to grid". Without knowledge is it "to/by" nor "smart" now, it is not possible set it "absolute".
But real problem, at least in X2 (I have not tested current Cakewalk yet) is that all these commands work 1-2 times and then stop working (any toggle or setting the grid size
produce absolutely no effect).
ah ok, then forget it, it was just an idea to complete the remaining knobs with functions that I use very often when rearranging a song. ;)
It seems like Snap commands work in current Cakewalk. So why not ;)
Hey !!!! Great, it seems to react perfectly. ;D
It moves from off to 1/64. I love it. Will be very useful.
But I did not understand what you're saying about "smart". (is there a smart snap feature that I missed ?)
You say that you cannot read the "snap to/by" status, but can you write it ?
if yes, then we can use the double absolute scale I described before
0-7 = snap-TO 1/64
8-15 = snap-TO 1/32
...
48-55 = snap-TO whole
56-63 = snap off
64-71 = snap off (duplicate, so easier to find the off position)
72-79 = snap-BY whole
...
120-127 = snap-BY 1/64
There is "smart" mode, if you check Snap settings. It is also indicated inside the icon on toolbar. Snap to grid command turn it off and I can't read its current status.
I also can't read to/by status and there is only toggle command for it. So your idea can't be implemented, sorry.
Hi :)
I have Snap Settings from bar to 128th on rotor 1 in my launch control preset....
Heinz.
well I understand that a toggle is not enough to know the current state,
BUT I have an idea !
Could we have 2 bottom "zeros regions" ?
0-7 : every time you ENTER this very low and smaller region, you toggle TO/BY once and only once.
8-37 : in this region, just set snap to off (but do not toggle TO/BY yet...).
38-52 : set snap by whole
53-....... (by +15 increments)
113-127 : set snap by 1/64
So if I go in the first low values, I can disable, and if I go completly to the left, I toggle TO/BY.
Could be nice ? no ? ;)
If you have time... ;D
If you switch between TO and BY often, it is way simpler press a button (on computer or MIDI keyboard). I will say the same for on/off, but at least I understand the logic when off is the first (or the last) position on the knob (even so I think more natural to have off next to 1/64, not 1/1...). But I don't see a logic in assigning a knob region to toggle something, especially after off position (after switching you want set some specific snap value, otherwise there was no reason to switch...).
Even when something is possible, it is not always a good idea ;)
Hi:)
This is how I set it up, Snap Settings on a Rotor and Toggle To/By on a Button.
Greetz;)
Heinz.
> If you switch between TO and BY often, it is way simpler press a button (on computer or MIDI keyboard).
Alas, I have no more pads left on the Novation... And I'd like to keep all these functions on the same "mode", because I use them a lot (I'm used to record and arrange at the same time, I do the mixing/sound polish afterwards)
> I will say the same for on/off, but at least I understand the logic when off is the first (or the last) position on the knob (even so I think more natural to have off next to 1/64, not 1/1...).
most of the time, I'm moving clips around to arrange the song, so I switch between no snap and whole snap (usually "by"). So in my case, I prefer to have them in decreasing size.
And for the by/to toggle, I was very proud of my idea, but no problem, you already did a lot.
I'll try to do by myself on knob A7, we'll see if I learnt something ;)
> But I don't see a logic in assigning a knob region to toggle something, especially after off position
Note that the "toggle" area is very small : i'll have to go and bump into 0 position to trigger it. The OFF area is far bigger.
> (after switching you want set some specific snap value, otherwise there was no reason to switch...).
Yes, but these knobs are easy to manip, so to switch from 1/8-BY to 1/8-TO, I'll just have to make a quick full-left and right back in the same position.
> Even when something is possible, it is not always a good idea
You're right. And we all have a different way to use this nice Cakewalk sequencer. ;D
Have a nice day guys !
You still have long press on 5 pads and 4 buttons. Dedicated knob for toggle also make sense, while less convenient.
BTW for moving clips you use a mouse, having 102+ buttons of computer keyboard under other hand gives more direct possibilities then just 12 + 8 controls.
One of my projects for REAPER was dedicated computer keyboard as a DAW controller, so normal extra keyboard can work as 102+ buttons MIDI controller. I have not ported it to AZ Controller, at least not yet.
What is really inconvenient is changing continuous parameters with buttons. Faders and knobs are way better for the purpose. I personally was fascinated by DJ touch sensitive disk configured for the purpose, I am surprised no one is using that. On one side they are precise, on the other they can be shinned fast when jogging. Unfortunately the controller I tested had bad buttons and I have returned it.
Each control type has own advantages. Knob like mechanical switches and multi-switches exist, so MIDI knobs are more or less ok for the purpose (encoders with ticks are better). At the same time, I can't remember toggle switches implemented knob like... and I think there have to be a good reason for that :)
> At the same time, I can't remember toggle switches implemented knob like... and I think there have to be a good reason for that
ha ha, ok ok, no problem, I'll continue to use the usual keyb shortcut for snap TO/BY. ;D
Hi Alexei, I just read the presentation of your X-touch-Mini plugin, and that's sure that, with its endless encoders, it would be a nice complement to the Novation Launchcontrol you programmed recently. I'm looking at buying one used for 30E...
Thanks again for your great job Alexei, and what a pity that you stopped Cakewalk.
I tried it, and had problems to "enter" it. Did not find it very intuitive. I'm so used to cakewalk/sonar...
What about AZSlow in Reaper ? Did you transfer it ? Is it possible under Reaper to have the same functionnailty that you developped on my LaunchControl ? I need this now ;)
PS : What about publishing your LaunchControl "mini" preset in the preset section ? It could benefit to other users ?
I still have nothing for REAPER. So when I want a bit more than transport from controllers, I start Cakewalk...
When I had time, I have invested it into accessibility tools for REAPER instead of AZ Controller. And I think that was a good decision. Big projects take time, a lot of time.
Unlike current Cakewalk, REAPER is still developed by the same person who has written it originally. So everything is as logical as it can be (in Cakewalk, there are clearly parts from the original versions and there are parts developed later...). But many things are in fact not intuitive and less user friendly in comparison to Cakewalk. There is no "perfect DAW" and I don't think it can be written, so it is good we can use more then one. REAPER never expires (offline authorization), is accessible, sufficient stable to not worry it crash at unfortunate moment, has open source projects format, has full API (for surfaces and processing plug-ins), use modern approach in audio engine ("pre-rendering" during recording, so only parts required for recording are in real-time, so PDC is normally not an issue and latency can be lowest all the time), stopping the transport is never required. But that does not mean it has no disadvantages, some are consequences of its advantages.
I will publish our last version in Presets section later.
What I need more in a DAW (apart classical functionalities) is :
- possibility to draw automations for any parameters (volume, pan, bus sends, and especially VST / VSTi control.
- have lot of busses to make submixes, with FXs on busses.
- possibility do make sidechain compression between buses (it was not possible in old cakewalk versions)
- I also like the ProChannel of Cakewalk that avoid inserting basic VST on every channel.
Is it possible into Reaper ?
In REAPER:
- automations are supported, unlike in Cakewalk they can also be "items" (clips). So, a bit different. All parameters are exposed. All parameters are homogeneous. They also support "modulation" (you can drive any parameter by some other, with flexible logic). When possible, waveform is rendered in real-time (f.e. when you draw Pre-FX volume automation, a kind of Gain in Cakewalk).
- there are no separate buses, everything is a Track. But tracks can be folders (in Cakewalk a folder is more an interface element) and sends target can be any track. Topology is absolute flexible. Each track also has 16 MIDI buses and support MIDI sends the same way as for audio.
- every track has up to 64 channels. And so Sidechain is nothing special, you just send let say to channels 3-4 and assign channels 1-4 to FX (sidechain FXes are normal VSTs with 3+ inputs). And you can assign normal FX to process "sidechain" on the same track (so input and output on 3-4), if that is more logical then having it on sidechain source track
- ProChannel looks not so "fancy" in REAPER. But it was introduce more logical way then in Cakewalk: plug-ins which support that (tiny GUI) have an option to be shown embed in TCP/Mixer.
Now some things which I personally don't like (compare to Cakewalk): takes in REAPER are a property of Items, not tracks. So f.e. you can't move a take in time nor have take specific cross-over; you have to "record arm" to monitor (also for MIDI); no Track inspector, there are workarounds and extensions to imitate it but I don't like all of them; I miss step sequencer and some other Cakewalk modules/features.
BTW you can try REAPER ("demo" is full feature, ~12 MB in size, support "portable install" and doesn't expire, so registered version differ just in title and has no demo dialog at startup). Install ReaCWP plug-in (my creature) and open some of your Cakewalk projects (open a FULL COPY, not in place!). You will see how project structure can be mapped into the REAPER's world (but that is just my mapping, you can arrange things differently). On Cockos side there are tutorial videos how to do everything, I strongly recommends to watch them to avoid frustration right at the beginning... (the reason I have not considered REAPER long time ago).
REAPER is cross-platform (Windows/Linux/Apple) and works on RaspberryPI as well (some people really use it such way, no unexpected OS updates, 6W power consumption and "nano" form factor).
PS. "Cakewalk must be reactivated within 13 day(s)"... right now (not updated it last half a year). The first time I got "Demo" mode was with Sonar Platinum, right at the middle of video recording about AZ Controller. That alone made me rather suspicious about all versions above X3. REAPER is the ONLY DAW which doesn't require Internet connection nor dongle when you run it on arbitrary computer. You can run it even in case you currently don't have your license file. Download ANY version (you still can download REAPER 0.0) and/or run it from any USB stick. I like a DAW which I am able to run anytime anywhere, I can sacrifice many other features just for that...
Thanks for these pros and cons.
I will try it on a brand new project, and watch the numerous videos by Kenny Gioia ! ;D
following your advice, I finnaly bought a used Behringer Xtouch mini for 30 Euros...
So I will use it for single track with the potential of infinite encoders, and use Novation for multiple tracks.
BTW, is it possible to open AZSlow for several controllers at the same time ?
You can register arbitrary named extra AZ Controllers, related program is in AZ Controller folder.
Note that SPP files are registration specific, but you can transfer presets using Binary save/restore in the Options Tab.
You can instantiate 2 AZ Controllers without that features, but working with presets is nightmare in this case (Cakewalk easily mix which preset should be used for which instance).
You can start with existing Mini preset. Or you can create your own from scratch. I recommend MC mode, in this case A/B buttons are normal extra buttons and don't switch anything on the controller. Note that LED rings feedback is special in MC, not 0-127 (there is an action for it).
as soon as I receive the toy, I will let you know how it works ;)
This Reaper is quite powerful with a lot of custom addons from users.
But the learning curve is steep. Especially because tehre is a lot of menu/submenus (eventually with contexted right-click).
Some things are not obvious.
example : I first set track icon using the right clcik menu. If I want to change it, I could hope that I could just double click on the newly created icon. No : I have to do the whole menu/submenu thing again... Or am I missing something ? (same behaviour with a lot of other features).
But I will continue to learn it, because it seems a nice software, with a lot of dedicated people.
Yes, REAPER is rather flexible in customization, build-in or with add-ons (BTW SWS is the most popular). But I don't recommend modify anything at the beginning, f.e. don't install "Sonar like" schemas. Changes/flexibility was proposed by particular users, sometimes for particular purpose. Sure, REAPER can NOT work exactly as any other DAW, even with all its flexible.
Just learn how to do things "REAPER way". Everything is logical and consequent there, the logic is just different from other software.
A track icon is a "decoration element" of "Track control". So, it has no own definitions for mouse operations. Almost everything related to particular interface element can be found in its context menu. In short time, once you learn which interface elements exist, it is rather simple to navigate throw "menu jungles".
But menus is not the only way to do things in REAPER... All operations are "Actions". You can open the Actions dialog and search there (f.e. for "track icon"). Once you have found the Action, there are options how you can call it. You can define shortcut (in the same dialog), add it to toolbar (there are many...) or assign it to some mouse modifier (in Options). So, you can assign it to "Ctrl+Shift+Dbl. Click" for "Track control" area.
Still inconvenient? Why set colors/icons manually every time? Yup, you can set them automatically based on the track name. With SWS extension, "Auto color/icon" enabled and your own rules.
As the result, once you name a track "Gtx 3" its color and/or icon is changed to "Gtx 3" specific, or into "Gtx" (if you don't have "Gtx 3" specific).
If automatic is not what you want... there are still other options. F.e. you can create a toolbar with a set of particular track icons, when you click on a icon there it sets current track icon (color, name, whole track template, etc.) to that one (you will need SWS and a bit of time to prepare such toolbar).
So no, you can't assign it as dbl. click on the icon only, but there are many workarounds ;)
actions : nice, I love this kind of customization !
It's need a few hours of video tutorial now, and I see that there is a lot of possibilities.
Gives me the envy to move from cakewalk (20 years background) to reaper.
I will definitely try a whole project with it, before buying it.
But then AZSlow will be useless :-(
And I'm afraid to lose this new nice remote control...
Just one remark... "AZSlow" is my nick, "AZ Controller" is my program. I don't think I am completely useless in the REAPER world ;)
For controllers... Some projects exist. Most prominent are CSI, MIDILearn and OSCII-bot. REAPER also has build-in MIDI assignments to Actions (also parametrized Actions like Volume).
And nothing prevent you use both DAWs. Or even more then just 2... Ableton, Tracktion, etc. have many unique nice features. Presonus has Cakewalk like DAW with deep integration for own hardware (interfaces and surfaces).
I have found "pros" and "cons" of Cakewalk only after I have looked at other DAWs. My choice of REAPER was driven primary by its tech. Core developers, one of which is the owner, are nice people and programmers (you can communicated with them on there forum, like with Noel from Cakewalk), the last DAW with offline authorization, top in the list of Accessible DAWs (before on top was Cakewalk SONAR 8.5) and the only alternative to Cakewalk which has open source Surface API (well... Ableton and Bitwig are semi-open in that respect).
> Just one remark... "AZSlow" is my nick, "AZ Controller" is my program. I don't think I am completely useless in the REAPER world ;)
Sorry Alexei !
What did you already commit in the reaper world ? (apart the cake to reaper importer) ?
Did you try to write some plugin ? I'll have to dive into this ! I saw that you can edit the code of ReaPlugins ! I suppose that you can write your own, and even Virtual Synths I suppose ?
> For controllers... Some projects exist. Most prominent are CSI, MIDILearn and OSCII-bot. REAPER also has build-in MIDI assignments to Actions (also parametrized Actions like Volume).
I'll have a look.
> And nothing prevent you use both DAWs. Or even more then just 2...
rhaaaaa, are you kidding ? My brain is already a mess. :o I do not have any memory left to master 2 DAW. Too many shorcuts and differents logics. I prefer stick to one. And really this reaper is mind blowing ! ;D
My commitments to REAPER, apart from ReaCWP, are in fact small (for normal users). Just "lets try" projects:
* NotA... allows use mouse or computer keyboard as a dedicated MIDI controller in REAPER
* FluidSynthVST a wrapper for FluidSynth SF2 Linux synth in VST format, so compatible with REAPER (works under Linux and Windows, for some reason doesn't work in Cakewalk).
Most of the time I have invested into accessibility project SIBIAC, to allow blind users control some plug-ins (which they can't control otherwise). Started for Sonar, the project was migrated to REAPER.
found something that I miss :
- quantize several items from the track pane, using the same complex quantize menu available in MIDI editor. I did not find any turnaround...
I may be wrong, but extended "MIDI editing" is a part of "MIDI editor". If you look at "Content" options in the MIDI editor, it is already quite a mess. Duplicating all that in the track pane will be confusing. I mean Quantize dialog has many options like "Selected events", in addition to still applied settings of "editability" for particular items, influenced by defaults for MIDI editor possibly modified manually in the track list (of MIDI editor...).
I guess that comes from general REAPER concept. Unlike let say Cakewalk, REAPER has some kind of "micro core". Plug-ins always had a possibility to work and modify Items (any) as such. And probably MIDI editor is just a "build-in plug-in". I mean anyone can script "Quantize all selected items to strait 1/4", but mentioned quantize dialog is a part of MIDI editor and so works in its context only (or had to be rewritten as an independent plug-in, f.e. SWS does many operations with MIDI).
In Cakewalk, close to everything is a kind of integral part of internal engine. There is just one known "interface" to MIDI context, CAL scripting. Audio content was made available for plug-ins under ARA only (for specially prepared parts). So "tricks" are easy to implement, since everything is available all the time (with the consequence of monstrosity and so unavoidable bugs).
ha ha, you give me good developper's reasons, but I think as a final musician user :
once I recorded a lot of separate MIDI takes, I'd like quantize them all at once, or maybe humanize them, of transpose them.
I saw that there are MIDI plugins that can work on tracks, but no quantize here. Maybe they do not work on moving notes in time.
I had a look at SWS, but it only proposes "item : quantize on grid"
I will see later if I can write some kind of plugin in JSFX. It will be a good exercise.
Anyway, I love this Reaper. I just bought a licence.
If you want process whole/part of MIDI, you just open MIDI editor and do it there. There are plenty of options to select visibility and locking for particular MIDI items.
Scripting in REAPER are definitively more powerful and user friendly then CAL in Cakewalk. But possibilities take time you can spend for something else (f.e. music...) ;)
I loved CAL (but it was so limited), so I'll definitely have a look at JSFX ;D
wonder how they can optimize JSFX audio plugins that are compiled on the fly.
I suppose that they consume more CPU than classic VST plugins ?
Just received the Xtouch mini.
Works like a charm under Cakewalk with you template.
But under Reaper, that's something else...
I tried it under mackie mode with Klinke MCU but the mackie mode of the Xtouch is poorly implemented : these are not the functions I want.
What kind of Reaper "plugin" do you advice me to look at , in order to get some of teh functionnality I was looking for with my launchpad
(single track vol/pan/gain/mute/solo/arm + scroll/zoom + set loop points + loop on/off)
And will I be able to light the buttons and the rotaries ?... :-(
EEL2 is Open Source, so you can check "how they can..." yourself ;)
Interpreters/JIT can't compete with global/local optimizations of powerful compilers, so huge calculations will take more time. In practice modern CPUs are fast, JSFX has pre-compiled functions for common CPU intensive DSP operations and EEL2 is for sure not the slowest scripting system. For MIDI processing you will not notice the different, for audio processing you easily can write something slow. But the same can be written about many C++ VSTs.
Well, I could spot the slowness of some JSFX plug-ins when my desktop was 2 cores Celeron based...
For surface in REAPER first look at CSI. May be there are some presets for LounchControl and/or Mini for it.
For the moment, Reaper recognizes Xtouch when in MC mode, but cannot open it as a MIDI device when in "not MC" mode...
strange.
Because in MIDI mode, I checked with the simple software MIDIOX and the Xtouch does send MIDI messages.
Don't understand why Reaper does not want to open it as a midi device...
It is better use it in MC mode, as I have noted before.
CSI most probably able to use corresponding communication.
It can also work in MIDI mode. At the end, the device is the same, just communication messages are different.
Don't forget remove Mackie surface module. Unlike in Cakewalk, REAPER surface modules block attached MIDI device. Not good for Ableton oriented devices with keyboards and one port, but has no disadvantages in your case.
I forgot to clean my other tests... Now it works.
I found a template for CSI + Xtouch mini that works fine, with nice feedback on rotary leds (depending on rotary value type)
I will adapt it for my needs.
Well CSI is obviously not as complete as your AZControl !!!
Now that you moved to Reaper, is there any chance that you adapt AZControl to reaper ? It would be huge ! ;D
Is JSFX suitable for that ? JSFX can receive, treat and send MIDI as far as I know. So it can exchange with a controller ? But it would mean adding a MIDIFX to a track and not using the "preference / control surface" menu...
But then, can it send command to reaper ? There is a hint here :
https://forum.cockos.com/showthread.php?t=241016
Maybe not enough to transfer volume, pan, and target specific channels, etc... :-\
I see there is also a Reaper API , but it's too much for my knowledge...
https://mespotin.uber.space/Ultraschall/Reaper_Api_Documentation.html
Yes, I still have a plan some day write something like that for REAPER. But AZ Controller was a big project... ;)
I don't know why Justin has considered EEL2 for OSCII-bot, but not as a REAPER add-on for surfaces. I mean I don't know why OSCII-bot is a separate program.
Writing particular controllers support in EEL2 should be ok (like in Python and JS for other DAWs). Whiting platform like AZ Controller in EEL2, while somehow possible,
is harder then in conventional languages (AZ Controller is written in plain C).
Quote from: azslow3 on October 23, 2021, 06:53:30 PM
Yes, I still have a plan some day write something like that for REAPER. But AZ Controller was a big project... ;)
Oh yes, now I really see it ! I wonder if something intermediate between CSI and AZControl complex logic could be written (to make it more accessible to "average" human beings ;D )
Why do you talk about OSC ? I thought it was a protocol for network connected device, not USB/MIDI control surfaces ?
https://www.reaper.fm/sdk/osc/osc.php
I do not get your point (my english understanding not always good) : do you think it's actually possible to write a AZControl-like plugin in EEL2 in Reaper, but you consider EEL2 is not adapted ?
CSI seems to be also written in C, like AZControl.
https://github.com/GeoffAWaddington/reaper_csurf_integrator
CSI is in fact not so difficult to understand and it is quite flexible. I mean you can create a preset similar to your current AZ Controller preset.
OSCII-bot works with MIDI and OSC. It can communicated with REAPER throw OSC (bi-directionally), so people which don't want/know C++ programming
write MIDI communication in EEL2 as OSCII-bot script.
Writing AZ Controller in EEL2 is like playing drums with e-guitar... You can use audio2midi plug-in and then map midi notes to drum kit peaces. So, possible.
But there are better approaches to play drums ;)
CSI (as REAPER and all its extensions) are written in C++. Justin has claimed it is not possible write GCC compiled REAPER add-ons.
Well... "NotA" extension and "ReaCWP" are written in plain C, cross compiled under Linux with GCC.
Noel has thought exporting Cakewalk projects is not possible without internal knowledge (someone before me has even tried, without success), yet ReaCWP is the first (and for the moment the only) cross-DAW project converter ;).
I mean many things are possible, but hard to implement. Some of these "hard to do" things have a good reason to exist. At the same time, if something is hard to do that does not mean it should be implemented ::)
> CSI is in fact not so difficult to understand and it is quite flexible. I mean you can create a preset similar to your current AZ Controller preset.
Well, that's what I try to do know, but alas, it's not as flexible.
Seems to be hard to simulate a jog wheel AND classic encoder usage at the same time.
But I will do a basic setup that will suit my needs of a recording remote.
> OSCII-bot works with MIDI and OSC. It can communicated with REAPER throw OSC (bi-directionally), so people which don't want/know C++ programming
write MIDI communication in EEL2 as OSCII-bot script.
ooooooooh, that's for me !!! ;D
I'll have a look at it.
Alexei, maybe you could be interested by this post, that describes the new and awaited implementation of MIDI into REAscripts.
It's in the DEV version, but will be soon in a stable version.
https://forums.cockos.com/showthread.php?t=258544
Could be helpful for exchanging with control surfaces, no ?
There is "programmers community" in the REAPER world. They write fancy staff, and once something is inconvenient, they ask Justin for build-in solution.
In this particular case, a solution for RR (Retrospective Recording) for MIDI. So, you have jammed with your MIDI keyboard and some synth, without recording
anything. At some moment you think: "WOW that was brilliant improvisation! I wish I have turned on recording before playing it :(..."
With mentioned function the implementation is strait forward, you can render everything you have played "post mortem".
For control surfaces it make no big sense, surfaces control parameters irrespective transport and so there is no "performed but not remembered" situation.
PS. diving into scripting challenge can be fun, but that is outside of my current objectives.
PSPS. in Cakewalk MIDI processing is unfortunately horrible, "thanks" to used MIDI FX API with several design mistakes. I have implemented LuaMFX, so a kind of
JSFX but for Cakewalk and Lua language (someone has requested such feature...). It was never popular ;)
Hi Alexei,
just a little hello, and also to thank you to lead me to Reaper, it's really the tool that I needed ! So many customization. I really can modify it to my needs ;D. Sorry but bye bye Cakewalk :(
You will probably remember some Cakewalk features later...
But REAPER in fact is the only DAW which can be customized to something different. I have not realized that till I had a look at Ultraschall (Podcast studio). It still has "REAPER inside", but lol, its interface and behavior has little to do with original REAPER ;)
> You will probably remember some Cakewalk features later...
The fact IS that I often miss some cakwalk features, but with a little search, I always find that there is a solution, in reaper itself, or in a script.
And so many features that are lacking in cakewalk are here.
But Cakewalk was very good, I do not spit on it at all. I made a lot of projects with it, and was very happy. But I just did not realize that I could be even happier ;D