Hi again folks… Making some progress with my demo Cantabile rig. Discovered Linked Racks which solves some of the issues I have been trying to fix which is great.
In some sets I perform, I hold a synth note while I change backing tracks so there is no break (e.g. a pad flowing from the end of one song through the Intro of the next). I have achieved this using states within a song but what I’m looking to achieve is doing the same for changing Songs in Setlist (I don’t think states persist between songs?). By using Linked Racks, the delays or release time of the synth continues (which is better than when not using Linked Racks; the sound just gets killed) but there appears to be a Note Off sent when I switch songs. Is there a way around this?
I have read through the following two threads which helped me get to where I am (the thread relating to Sostenuto suggests it could/should work but still getting a Note Off) but hoping there’s a way I can achieve persistent notes through song changes.
The main problem with holding notes across song changes is that the routes from your controller keyboard to racks/plugins are disconnected and re-connected when changing songs, so even if the song routing and racks etc are the same, there’ll be a discontinuity, where MIDI notes get released.
One workaround is to do your routing inside a linked rack that exists in both songs, so connected directly from your MIDI controller port inside the rack to your plugin, and from the plugin’s audio output directly to your audio interface port, again inside the rack. That way, those connections are maintained and not cut, the way song-level audio/MIDI routes are. However, it’s cumbersome and you lose a lot of the flexibility of songs. However, if you don’t do it too often, it might be worth setting up a rack especially for this purpose, e.g. a pad rack that has that kind of routing, allowing you to hold a pad chord over a song change.
Maintaining held/sustained notes across song states works beautifully, however, so my recommendation would be that for pairs of songs you typically “join”, set them up as a single song in Cantabile, and just change via a song state. Not ideal, but it’ll work, as you’ve found.
Hi Neil. Thank you so much. I’ll try out both options but as you mentioned the loss of flexibility may be an issue as I develop the setlist further so I may go with having some of the songs combined using states (it’s not always one song to another so I guess I’d have multiple versions of songs that I’d use to build my setlist e.g.
Song1 (1 state)
Song2 (1 state)
Song3 (1 state)
Song1-2 (2 states)
Song1-3 (2 states) etc
The flexibility is wonderful but quite daunting and the worry is always if you hit a snag and need to change your entire approach then you may need to start from scratch - but certainly racks seems to be the way to start and I guess there’s nothing wrong with using states as songs and Songs as songs in a setlist… Whatever works right? Thanks again!
Ok - changing states and holding notes is fine however I am struggling a little to test out the option of routing WITHIN the linked rack. The only I option I see in routing within the rack is “Rack: MIDI In”. I’m not sure if it will help but here is how my “Song” and “Linked Rack” look.
I assume what you mean is I need to disconnect the MPK261 (i.e. delete it from the Song Routing) from the song routing and add it to the Rack routing instead (and likewise with the audio but I’ve not made it that far yet) but if I remove the MPK261 how does the MIDI get to the rack?
Sorry - I feel very noobish and not sure I understand the routing in Cantabile at all right now)
You’re on the right lines. Inside your rack, where you currently have Rack MIDI In, you’ll need MPK261, and where it says Rack Stereo Out, you’ll need Main Speakers. That way, all of the routing from your keyboard to the plugin, and out to the audio device, is encapsulated inside the rack, and does not rely on song-level routing.
You may find you’ll need to go into Preferences-Miscellaneous and enable “Show Environment Audio and MIDI Ports in Racks” in order to be able to select those ports inside your rack.
You can, of course, continue to have song-level routing for other racks etc. You only need to disconnect the song-level route into that particular rack that you want to hold across songs, because it’s getting its MIDI direct, rather than via song route (and similarly for its audio output - you don’t need to route the rack’s output anywhere).
The downside of this technique, however, is that you can no longer do song-level splits, filtering, transpose, or level control for that particular sound, which is obviously quite limiting. But it seems to be currently the only way to maintain that MIDI->Plugin->Audio chain uninterrupted between songs.
Aha…! That was the blighter I was missing - “Show Environment Audio and MIDI Ports in Racks”. This actually works perfectly - just as the states method did; no glitches, just continuous glorious sound.
But now I understand the limitation - its basically a fixed keyboard range and level for all songs I use with that rack! To be honest its probably the approach I will use as it means at a song level I don’t have to change anything e.g. I can just create a set with existing songs and not hash a couple together for one set, but I will see how it pans out as I progress. It’s not something used all the time (holding notes between songs) but one artist I work with likes a constant flow of audio so he will be happy with this.
Thank you so much - I really appreciate the pointers and advice!
You could create rack states for each song pairing that uses the rack, including transpose, splits, filtering etc. inside the rack. Not as elegant as doing this at the song level, but a usable workaround.
Indeed- we’re doing our latest album front to back and I set it up as a single song- admittedly, kind of out of ignorance because I was new to the software when I started programming it- but that said it does have its benefits, one being seamless transition all the way through. Since there’s no worry of ever changing the order or dropping a song one could argue there’s no compelling reason not to do it that way.
Wouldn’t it be cool if you could mark two adjacent songs in a setlist as being segued together, and it would allow you to play seamlessly between them?
Perhaps behind the scenes, both songs would be loaded at the same time, but you’d just see the routes, bindings, racks and plugins of the “current” song
When playing states in song 1, the routes and bindings of song 2 would be disabled, and the racks and plugins unique to song 2 would be disabled. And vice versa when playing states in song 2.
The exception is that racks/plugins that had an active route to them in the last state of song 1 remain active after transitioning to state 1 song 2 if they’re not present in song 2, or if they are present and active in song 2, to allow held notes to continue to sound after the transition. To make the logic simpler you could just say that held notes only work on embedded racks or unracked plugins.
Stepping beyond the last state of song 1 takes you to the first state of song 2 (and vice versa)
In practice, it would mean you could quite easily segue songs together in your setlist (maybe even more than 2 songs?). You could also set up long complex songs in multiple movements, programmed separately, but played together.
I don’t know if this would be technically / architecturally possible in Cantabile, or if I’ve overlooked something that would make the idea not viable. It would be great to have @brad’s input.
That’s pretty much how I used to use Cantabile 2.
OK - you lose one level of the hierarchy - but everything you need lives in that song.
The non sample synths load in an instant and anything with samples can be managed reasonably well by locking in what you need and swapping out what you need to - if you need to.
That’s an option I’ll look into too - not really looked at rack states as not really sure how they work. Song states are specific to a song but a rack state (which I guess includes transpose, splits, filtering etc) can work across any song which uses those linked racks - I guess I’m not sure how to recall rack states (I’ll look into this later today). Thanks for this suggestion though - another plus for flexibility of Cantabile!
I’m very new to Cantabile and still trying to work out the best approach to set it up as I need. I play in several acts with different kind of setups and I initially though of just using states as songs but a couple of the acts I perform with have a back catalogue of well over 100 songs, so when it comes to creating a set, this is not so appealing. I guess you can just re-order the states in the order you want to play (or even trigger a specific program change) but not sure how practical this would be. Admittedly I’ve yet to compile an entire set yet - just demo’ing and trying to understand all the concepts of routing, states, songs etc so it may be an approach I go with.
Coming from Forte this is pretty much the approach used there (in a way), you load a “Rack” (Forte uses rack for all the Scenes (states) and Songs (a combination of scenes) and setlists and ALL these “scenes” are loaded in memory which makes it a bit of a RAM monster - it works though). I like the idea of avoiding this by using Cantabile Songs so - depending on the setlist we are playing - I only load the songs and states I need. It just so happens that some of them need to segue together (Forte managed this by having a Scene (or rack) with exactly the same setting for an instrument however there would still be a little glitch as you switched but the note would hold). So I like your idea @Neil_Durant and if this is something that could be possible it would allow the use of songs (as I suppose intended although with the flexibility I guess anything is possible) but with the avoidance of disconnecting ports/routes between specified songs!?
Great to have all this input though - and good to hear how others are using states/songs and creating seamless play when needed. Thanks folks!