aargh - that’s a tricky one! So you need to create a specific MIDI input port as a loopback target for your songs to route MIDI to your background rack - it does actually work! Not really what loopback ports were created for, but a creative solution - congrats!
But it’s a bit of a clunky solution; it would actually be nice to have the MIDI and audio ports of the background rack available as targets and sources in our songs. Not sure why @brad prevents this?
But TBH, for the use case of instruments used in multiple songs, the best mechanism are actually linked racks; that’s exactly what they were created for.
No need to have a multi-gigabyte instrument load every time when starting Cantabile - you might not even want it this time. Better to have pre-loaded setlists; then you can have Cantabile automatically pre-load the racks you need for your song.
To minimize duplicate loading in pre-loaded setlists, try to put ALL (or at least most) of your plugins into re-usable linked racks, and use songs simply to route audio and MIDI between racks. I don’t have ANY plugins at song level; I just select presets of my instrument and effects racks and connect MIDI and audio as I need it for a specific song and set my levels with rack gain.
Sure! It’s a bit complicated at first and using linked racks is way more easier, but since I was not aware of this function before (it was quite a busy time before the gig and I had not the chance to check out every detail), I used this technique.
First you need to go into options, misc and activate the loopback ports and also (I don’t think if its necessary…) “show environment audio[…]in racks”.
This procedure works also the other way around:
Go into your backgroundrack and load the desired instrument. Let’s say FM8. Now go into options and open the MIDI ports menu. Create a midi input called FM8 (or whatever you want) and do not assign any physical MIDI input to it. Now go to the audio ports, create a new stereo input (!) port and call it “Audio FM8” and do not assign any physical audio input to it.
Close the options window and open the input routes of the background rack. Set up a new route from the new created FM8-MIDI port to the input of the plugin. At the plugin choose “Loopback - Audio FM8” as output port.
Now close the background rack and go into your song. Open the route menu. Create a route from your mainkeyboard to the “Loopback - FM8” MIDI port. Create another route from “Audio FM8” to your Main Outputs.
Done!
It sounds quite complicated but it works perfectly. Anyway: I’m really with Torsten. Using linked racks is a better method for that.
//edit: @Torsten You wrote that it would be nice to have midi and audio ports of the BR available… they are if you do it like this. But of course depending on how many different plugins you want to use you can easily loose oversight.
Thanks a lot for your suggestions. There is a lot to try.
The preload setlist is no option for me, I tried it and it took C3 about 20 min. to load all songs and my 16 GB of RAM were completely overflown. I got about 70 songs (more than 400 plug-ins) in my setlist (I have to play 4-5 hrs. per show) and each song uses special created sounds. So the background rack seems to me also as not a good solution, for it would take nearly the same time and memory to load. What I tried is to load Kontakt and then to load the library. The loading time of the plugin itsself is about 2-3 sec. in C3 and in Forte. That’s okay. Then I loaded the library. C3 needed 25 sec. Forte only 4 sec. is this normal? I would be very sad to switch back to Forte, I really like the features of Cantabile.
Something is wrong in your system. On my side the loading times of the library (session horns) is much shorter. Normally when loading a library Kontakt loads only the first milliseconds of the samples that are used in an instrument. As soon as the notes are played, the rest of the samples is streamed from the disk (if I remember correctly). So maybe your Kontakt loads the whole instrument with full length samples into the memory.
Maybe you can check with the task-manager how much is loaded into RAM when loading the library and compare it to the value shown in Kontakt.
Yes, that’s what will happen when you create your songs with the plugins directly in the songs. A pre-loaded setlist only works with your instruments encapsuled in racks, so that they can be re-used and need to be loaded only once. Of course, this will also be difficult when using mostly large sample-sets, since this limits the re-use. But when using mostly synths and just a small number of sample sets, this is the way to go: create linked racks made up of your key instruments plus the necessary processing plugins to shape the sound, then create your songs from combinations of these racks and their presets.
And nothing is keeping you from creating specific presets for individual songs in your racks - I do this all the time; there are rack states like “Comfortably Numb Solo”, “Time To Wonder Crunch”, “Time To Wonder Clean”, etc. in my setup. But overall, I have about 70 plug-ins in my racks that need to be loaded for a total setlist of ca. 50 songs. Load time is pretty reasonable.
So, TL;DR: encapsulate all your plugins in racks and re-use them; don’t put any plugins into your songs if you want to pre-load.
I think we had better go back and find all those posts in which we were claiming there was no way in or out of the background rack!
Knowing this trick, I will probably set up with the Background rack visible fulltime.
This trick also allows you to use plugins, that make problems when getting loaded. f.e. it seems that FM8 sometimes produces crashs when getting loaded. So, load it once in your background rack and it stays there the whole time without any problems!
I’m talking about the trick of inserting the background rack as if it were a normal rack which then allows ‘normal’ routing.
There’s a risk of getting in a mess, of course. If sources are different between songs, the background rack won’t know what’s going on. Maybe that’s an issue, maybe not.
Although it feels like a nifty trick, putting the background rack into a song, I think I’m going to keep mine well and truly hidden in the “background”. It’s nice to have all my rig-wide setup in there, hidden so I can forget about it, and not be tempted to drive it in any song-specific way. I’m just wondering if there could be undesirable side effects if for example modify it by song states etc.
But what I’m after would be to have the Background Rack audio and midi ports accessible in my songs. This would allow me to
Put all my master processing (master compression, volume, EQ) into my Background Rack (with multiple input ports) and route all my songs to these ports to be processed before output to physical output ports.
Create a MIDI pre-processing chain for my various master keyboards in the master rack (different velocity curves), merging them into one global rack output (instead of MainKeyboard). Would be a really cool way to customize the response of different hardware keyboards and still feed them to my songs in parallel, so that I can freely choose to play either my little 49 keys production board on my desk or my 88 keys stage masterkeyboard next to it and still have a similar feel.
create a standard microphone processing chain (compressor, EQ) in the global rack that I can then feed into my songs for further individual processing.
For this, I would need to be able to select the global rack stereo inputs as routing targets in songs, as well as select global rack MIDI outputs as routing source. As I’ve learned from @FantomXR, I can use loopback ports to fiddle my way around this, but TBH, it looks a bit complicated and difficult to understand when looking at my songs, so having Background Rack ports directly available in songs would be preferable to this convoluted work-around.
@Torsten’s suggestion would be really cool. I think many of us have a standard rack we put at the end of our songs as a general output processing rack (levels, compression, EQ etc). Being able to set this up as standard and hide it away in the background would be nice, to reduce song clutter.
Similarly, being able to pre-process incoming audio and MIDI before reaching the song would be really handy. And it would be great to use background rack states to choose different incoming hardware configurations (big keyboard rig vs pub rig, gigs where you have extra mic or guitar inputs etc) while keeping the inputs at the song level abstracted.
But I wonder if it would be better to have new racks for these - dedicated input and output background racks, which have constrained ports (input rack would see all the environment input ports, but only have configurable rack audio/MIDI outs, and the output rack would have configurable audio/MIDI inputs but environment output ports). Then maintain the existing background rack as it is, for backwards compatibility, and as a place for general background processing that doesn’t fall into the pre or post processing categories.
This is totally possible. I used the backgroundrack for exactly this cases on my last gig. In my BR I’ve inserted all audio in- and outputs as racks. So this allows me very quick routing options f.e. if you send the click to various destinations. No problem with that.
But you are right: You have to name the ports so that you don’t get lost!
Tyger, Steve Steele shared a video on YouTube shown below that, although about Digital Performer, Vienna Pro and Kontakt, shows some Kontakt optimizations that, if I remember the video correctly, could vastly improve your load times. It is an awesome trick that only loads the actual samples for the notes you really use, as I recall. (I don’t have time to watch the video again right now, but I’m pretty sure it was Kontakt he optimized here…) From his description of the video, it seems I remember correctly:
I show you five ways to optimize Kontakt 5 in a large film scoring type template to take up less of a memory footprint, use less CPU threads and how to save the optimize version in your template.
Intros video I cover:
Kontakt’s Multiprocessor Support (CPU core count).
Kontakt’s Database and how to manage it.
How Kontakt’s uses DFD and how to set it for your system.
Kontakt’s CPU Profiling Mode
How to correctly Purge Kontakt.
Perhaps this will be helpful to you and others loading large sample instruments.
This seems like a perfectly reasonable to me, but…
Just to be clear this wouldn’t give functional difference over adding the background rack to the song right? It’s simply a shortcut in that the rack’s audio and MIDI ports would be available in the song without having to reference the background rack.
Nope, that’s exactly what I am asking. The difference being that this helps clean up my songs and have clearer separation between global and song-specific processing
Also, if I referenced the background rack in my songs as a linked rack, wouldn’t the bindings I have defined in my background rack be instantiated twice - and midi commands be triggered twice? I have a number of bindings for ‘next state’, ‘next song’ etc in my background rack - I’d be afraid they get triggered twice when inserting the background rack into my songs - need to test this…