Your questions, I’m guessing, are pretty much where we all started, and it’s essentially, ’ I can tell this thing has massive potential to control a monster rig - but how can I be sure that I’m going about this the most future proof way?’
This becomes even more perplexing when you see how creatively users like Torsten are employing their rigs!
The whole thing about working live is that you need to be working with presets if you’re going to manage setups that are, by any standard, more exotic than any classic monster keyboard setup. The ‘presets’ can be as variable as any piece of analog gear if you want them to be, but the presets (states) are the launching pad.
Formulating these presets is about creating basic building blocks - and those building blocks are Rack files and States in our Cantabile world.
You can tailor any Rack file to very specific requirements and save its state.
How you get to those states quickly is as important as the time you invest creating those states. No point in having 2000 setups if you can’t get there fast!
Having your hardware set to jump directly to useful setups using one button push is as important as being able to step through states sequentially. Regardless, there was a point in the evolution of everyone’s setup, where ‘scratch’ was where we were at.
Just set up those building blocks.
Once you have given yourself access to your plugins by creating racks, the rest falls into place; what is switched on or off, where the splits are, which controllers address specific performance functions etc.
That’s when the real creative questions start developing - because once these essentials are in place, the artistry of applying them creatively follows.
Just a couple of observations for a Monday morning
For the situation in the original post, I have a “songwriting” song template which has about a dozen states, most of which route the whole keyboard to a different basic sound (pianos, organs, strings etc ), and a few states with typical splits for leads etc. This song has something like a dozen racks loaded for my typical sounds. Then in a rehearsal I reorder the states or duplicate them in order to build up an approximation to what’s required, which is really fast to do. I modify splits by dragging zones in the on-screen keyboard (never tried this with a touch device). I save this as a new song, leaving the original songwriting song template untouched. Then once musical ideas solidify, I rework this into a proper song at home, removing redundant states, fine tuning levels, velocity curves, tweaking sounds etc.
I also use Show Notes to make quick notes of stuff while we’re working - chords, changes, time signatures, song arrangement notes etc., as well as “To do” items for things I know I need to work on offline. So in a way, I’m using them as rehearsal / songwriting notes. Then when I’m at home I work through this stuff, and write real show notes for the song.
I have a similar approach to @Neil_Durant for my rehearsals setup:
For rehearsals, I have two “universal” songs: one for keys, one for guitars. Each has 8 states that I can quickly select via my master keyboard, all bread & butter sounds.
For keys, these are the typical “full-keyboard-presets”, like acoustic piano (with optional strings layer), electric pianos (wurly & rhodes), some hammond presets, a big pad, a brass sound with a piano/hammond layer in the left hand, one synth lead with piano/strings in the left hand.
For guitar, I have the usual assortment of clean, clean + chorus, blues crunch, rock crunch, 2 lead sounds, plus some effect-laden cleans
With these “standard patches”, I usually get through rehearsals, experimenting with new songs, or some spontaneous improvisation.
For song creation, I have a standard, write-protected template that contains my typical racks (piano, e-piano, string layer, main synth, solo synth) already pre-routed, with routes for MIDI notes and bindings for controllers (makes things more explicit to see on your bindings page where pitch bend or aftertouch goes), plus some initialization bindings that set initial volumes and effect levels.
With this, I simply delete the racks I don’t need for the song (or replace default ones with more exotic ones), select the necessary rack states and my first state is ready! If more customization is needed, I may design song-specific sounds as new states of one or several racks.
At first, I didn’t quite get your dramatic step of filtering out all controllers and then remaking the specific routes in bindings - but I think that is a really forward thinking and brave approach.
You know what’s going where at a glance and you’re eliminating the possibility of something getting tweaked which shouldn’t be tweaked.
I like it.
Yup - before @brad enabled MIDI-to-MIDI bindings, I usually created specific routes explicitly for individual controllers. I always have the typical controller issue with layers or splits: what controllers should be sent to what layer or zone? I want to be sure that modulation only goes to the ePiano, but not to the strings. At the same time, I want the sustain pedal to apply to both, ePiano and strings. And aftertouch should only be sent to the solo synth in the “solo” state.
The only way to have clarity on what goes where is to route controllers separately from notes.
My issue with using routes for this was that I had to use filters for this - but filters are hidden behind a little icon, and you can’t change them per song state. This is why I prefer bindings: very explicitly route mod wheel to control volume in the string layers rack - easy to understand at a glance…
Plus. as you wrote: I can make very sure that only a very limited set of controllers reaches my racks - no interference or funny side-effects from one of my master keyboard controllers.
My admittedly simple solution: I have one big ~120 setlist holding all the songs my band plays, with the ones in our current rehearsal setlist at the top. At the very bottom I have some standard presets for common sounds. In the moment I just grab whatever sound is closest. It would annoy the other band members if I spend more than 10 seconds fiddling with sounds; they’d rather have the sound be just in the general vicinity than to lose valuable rehearsal time waiting while I fiddle.
After Brad’s recent notes, I’m renaming these to start with zz_ so they get autosorted on name to the bottom.
I had so many “AHA!” moments reading this thread! Exactly what I needed to improve my workflow within Cantabile. Love the template song idea from @Neil_Durant . Your method is like subtractive synthesis. While I was always thinking more in the Additive synthesis method. It’s much faster to delete what you don’t need from a template than it is to add what you do need. Love this approach. Rack states are all removable at the song level screen so less menu diving also saves time.
It’s probably very obvious to you all but I just realized that when you have a rack midi routed the way you want it on the song level, if you choose “Replace Rack” all your midi routes stay in tact but with the new sound. That’s a huge time saver!
I was asking about this feature and it turns out it’s already implemented! I didn’t know you could do this. I’m really excited to try it out and see if it works with the touchscreen. Wow! Cantabile is always a few steps ahead of me.
Current Question:
How to I ensure that a specific rack state does not change (like a default state)?
Scenario: If I’m adjusting the default template I can quickly save it as a new rack state to be used in a new song without having to worry that I’m messing with a rack state that is being used by other songs/song states?
Success Story:
I had a great rehearsal the other day using cantabile, I made a masteraudio rack specifically to be used with my Spacestation mid-side stereo amp. Cantabile has allowed me to process the mid and side information separately with Fabfilter EQ and light multi band compression with fabfilter MB to tame some of the brittle highs and boomy/boxy lows. Unbelievable sound! I was blown away by the clarity. This amp was hit or miss for me in the past using hardware gear. But now that I have finer control of the sound being send to the Spacestation I can hear the detail in my patches. I was blown away. The sound quality I experienced will make it hard for me to go back to harware rigs now. The Keycapes stuff sounded sooo details and cut through the mix in such a musical way. It felt like I had brought my actual Rhodes and Wurly + a giant processing rack to rehearsal with me.
In reality, this is the size of my new Rig:
As long as I have these two things, I can control the most important parameters of all my instruments. I can use any midi controller on the road. (Overweight luggage fees and extra bag fees are insane now). We live in the future!
Please keep this thread going if you have anything to contribute. It’s a massive help. Things that seem obvious to the expert users will probably be the things that help me the most!
From (experimental) build 3233 onwards, there’s a new feature where you can lock song and rack states by right-clicking on them in the list and choosing “Locked”. This will prevent Cantabile from saving the states automatically - they’ll only get saved if you explicitly save. You can also set a rack/song-wide policy for whether or not you should be prompted to save in File->Rack/Song Options.
Here’s Brad’s blog entry with more detail about it.
If you want to be super-safe about it, you can also just find the rack/song file on disk, go to Properties, and set it read-only. This is probably a good thing to do for template songs.
The other thing you can do to avoid modifying states you’re using in other songs is to group your rack states into “Generic” and “Song” states. Generic ones are just generally usable ones, and when you find one you want to use in a song, immediately save the state in your “Song” states grouping, and make any modifications there. That way you know no other song is using it. I do this for all my songs - they all use song-specific rack states just in case I want to make a tweak to the sound, without affecting other songs. I partition the rack states by simply adding a dummy rack state called “========” as a separator.
I stayed with the stable build for my show last week, and then we have a break before the next ones, so I upgraded to the experimental one. Having played with the experimental build quite a lot at home, it feels solid - if I had another gig now I’d use the build live without any qualms.
Another question for today:
Can I save my control binding positions for different rack states?
I can do it using triggers but it would be much faster to be able to tweak all my assigned controllers and be able to recall those controller/binding settings as a rack state.
Yes - for example, if you have a controller bound to a plugin parameter, just enable state behaviour for that parameter, and the value will be stored in each state. Some plugins require you to explicitly map synth controls to automation parameters exposed to the host, and some expose all automatically for you. VB3 is a good example of the latter - you can store all the plugin parameters in Cantabile state, so you no longer need to save actual presets.
The same goes for bindings to Cantabile faders or anything else - just enable state behaviour for the target of the binding.
You can also get parameters in a rack stored in the song state instead of the rack state, using the exported state behaviour box in the state behaviour panel.
Once you start storing such stuff in states, you may also wish to set up jump prevention on your bindings, as the targets will be driven from two sources (physical controller and states).
I’ve run into a little hitch, I’m trying to set up a controller to bind to a parameter that has abnormal min and max values… This is working great 99% of the time with other plugins. The plugin in question is keyscapes (this is not the first compatibility issue I’ve run into using keyscapes).—> Keyspace Not Loading Samples
When I look in the parameter list. when the value is all the way left (min) it reads 0.454 . When it is all the way to the right (max) it reads 0.600 .
I tried setting a regular control knob using these values but now that control knob only gives me a limited range of the parameter and that range still does not save the parameter setting correctly.
The parameter knob in the plugin default position is at the top (12o’clock like a pan knob setup)
When I use a regular controller with values set min:0.00 max: 1.00 everything actually works well as long as I don’t try to save the state. as soon as I try to save the rack state the information is not stored correctly for that parameter. This results in a parameter jumping to an unintended position. The parameter does move a little bit in the right direction but it looks like the scaling isn’t high enough resulting in the parameter not moving far enough for accurate recall.
I’ve been experimenting but I don’t fully understand the various settings in the controller bindings. For example the differences between regular controller, controller (fine,coarse ect…) Relative scaling…
I’m managed to have some success by setting up a trigger to move the parameter after the rack has opened. But this obviously isn’t the ideal solution for saving rack states quickly.
Hmmm, That makes sense but still no luck. Keyscapes seems to be using its own custom control parameters. Some of them use strange increments. Its strange because the controller input works fine but when it comes time to recall that position I think keyscapes can’t interpret the saved parameter state from cantabile.