Feature request: Startup parameter to select audio driver

Hi!

This may have been covered in the past, but I couldn’t find anything.

I frequently switch between 2-3 different audio interfaces, so I have to change the driver in the audio engine settings a lot.

Is it possible for a future version to support setting the audio driver through a startup parameter? That way I can simply make different shortcuts on my desktop for each audio interface.

Or maybe there are other, even smoother, ways of soing this? I figured it was worth a thread at least :blush:

1 Like

Hi @EskilS,

have a look at this thread first. From there you can find other docs about how to start Cantabile with different configurations.

Gabriel

2 Likes

Thanks for the quick response.

Yes, I could set up a separate config, but the settings folder also includes so many other things (including things like linked racks, if I understand correctly, which I definitely use a lot). So if I make any change to one of them, I will have to recreate that in the other one. It’s definitely doable, but a bit of a hassle and easy to forget. I’ve got everything set up so that the only thing I change now is the audio driver, so I would really love to have just a slightly smoother way of doing that.

It’s not like it’s a major hassle that I have to deal with; it takes like 20 seconds to change the audi driver. But you know how it is with small tasks that have to be done over and over :smile:

Hi @EskilS,

sorry to hear that the config solution would not work in your case. However, there is no need to put the linked rack files in the same folder as settings files. The locations where songs, files, recordings, etc. are placed can be set in
Tools->Options->File Locations
and they can be the same for all the Cantabile configuration you are using.

Gabriel

Edit: actually I don’t think any of us would put songs and racks in the settings folder. I have them in folders inside Documents/Cantabile, as you can see in the picture.

Setting folders instead is

C:\Users\gabpa\AppData\Local\Topten Software\Cantabile 4.0 (x64)

From this picture you can see that I have also used configurations to handle different interfaces (I was using Cantabile 3 at that time) and to select different versions of Cantabile at run time (Solo vs Performer). For each config you get a different folder.

2 Likes

Ok cool, maybe the configuration doesn’t include quite as much of my setup as I thought.

I’ll have a play around with it and see if I can make it work :+1:

1 Like

Big +1 for this request. I also have 3-4 different audio interfaces, depending on the gig situation, with a separate configuration for each. Making a configuration change - defining a hotkey, changing an option, adding a MIDI port assignment (e.g. “Left Hand Bass”) requires making that change in each configuration. Then multiply that by 3 computers (desktop, gig laptop, backup gig laptop) … i actually have to use a spreadsheet to keep track of any time i make a global config change. Having the audio interface selected by a startup parameter would be a huge time and headache saver. Please @brad ?

1 Like

I can probably add this, but first…

Is it just the audio driver setting? I don’t want to end up having to create command line settings for a whole bunch of settings.

In the meantime, it wouldn’t be hard to write a simple script that patches the settings.json file and then launches Cantabile…

Brad

If memory serves gig performer has a feature that effectively allows it to fall back to another interface if primary not found. Maybe worth looking at?

I’ve never understood the configuration thing - sorry!

I switch from one environment to others regularly - sometimes in my studio with lots of keyboards and a huge audio interface, and sometimes falling back to my laptop’s Realtek audio driver and the on-screen keyboard to do some prep work in front of the TV.

I’d appreciate anything that makes switching rigs easier. Maybe optionally a list of ‘configurations’ to choose from at start up?

Yeah, just the driver name should do it (looking at the settings.json file, it looks like all the information for the audio driver is there in the audio channel data for every interface that this configuration has seen).

– Jimbo

What don’t you understand? It’s just a way of having a completely separate set of settings.

This will be in the next build.

Brad

2 Likes

Here you go…

Selecting Audio Driver via Command Line

2 Likes

Where do I get these ‘configuration’ files? How do I make one? Where do I store them? If I need to amend one of them, how do I do it?

I just don’t get it!

Don’t think of the actual files at all; they’re maintained automatically for you.

Once you provide different startup parameters for the config name (which you can define yourself), then Cantabile will create and maintain all the configuration files for you. It will basically create a completely blank installation, for all intents and purposes. Any change you make inside Cantabile to the preferences and configuration of the application will be stored as the active setup for the named configuration you used in the startup parameter.

Not sure if that made it any clearer, but the key is that if you want to set this up you will never actually have to do any sort of editing of a configuration file at any point. At worst, you may want to copy a set of files from one folder to another, if you want to start a new setup off as a copy of an existing one.

OK, let’s take this one bite at a time:

  • best read the relevant chapter in the guides section to familiarize yourself: Multiple Configurations - Cantabile - Software for Performing Musicians
  • Essentially, every “configuration” is a separate settings folder containing the relevant configuration files - a number of .json files storing settings and plugin configurations
  • when you start Cantabile with the command-line parameter /config:“MyConfig”, Cantabile will load the settings from the folder “Cantabile 4.0 (x64) (MyConfig)” (in my case, since I use the 64 bits version.
  • if that folder doesn’t exist, Cantabile will create it for you with initialized config files. That means you’ll have to make all your configuration settings (MIDI ports etc) within Cantabile after it starts
  • Cantabile will show the current configuration in its title bar, e.g. “Cantabile Performer (x64) (MyConfig)”
  • all changes you make to Cantabile’s setting once you have started it in a specific configuration will be saved to the configuration files in that specific folder
  • to avoid having to make all the settings from your original setup again (MIDI ports, audio ports, …), you can simply close Cantabile after the first start in a new configuration and copy the json files from a different configuration folder - saves a lot of work

The configuration folders are stored in %localappdata%/Topten Software - this what mine looks like with two band-specific configs (craenk and MTG):

The first folder (without a configuration name) is your basic Cantabile configuration. So after Cantabile creates a new folder for a new configuration (see above), you can close Cantabile, then copy the json files from the basic configuration to your newly created folder, which gives you your existing config under a new name. Now change things like audio driver, MIDI ports, default setlist etc. when working within that new config - the files in the new folders will be updated from that. Now you have two completely separated sets of configuration files for Cantabile to switch between - changing a setting (e.g. which setlist to load on startup) in one configuration will not affect the others.

I have setups for different bands that differ in terms of the MIDI and audio configuration (I use different hardware for these projects); also I pre-load a different repertoire setlist on startup. The button bar looks slightly different, but that’s minor.

So I start Cantabile in that specific configuration and everything is set up as I need it for that band - done! And when I change some settings within that configuration, they get saved automatically within that config folder.

The downside of this is that if you e.g. add a new piece of hardware to your setup, you’ll have to add it in all configurations that use it - no way around that. So you’ll need to start Cantabile in each config and add the new hardware (e.g. to your MIDI ports config), then close Cantabile, open it in the next config and make the change again.

Hope this helps!

Cheers,

Torsten

5 Likes

And don’t forget: The Appdata folder is hidden by default. You need to check the “Show hidden items” box in File Explorer (View menu) to show the folder and all its subfolders and files.

I’m happy to go through all this to gain an understanding, but TBH you’re making my point for me - i.e. couldn’t this be easier?

Maybe save a ‘setup’ within Cantabile and then have the ability to recall them?

Killer!

I couldn’t get it to work using just the driver name, but that’s probably user error. When I use the whole unique driver ID (including the GUID) it works like a charm

The name needs to be exactly right and it’s case sensitive. If you’d like to send me the details and a copy of your settings.json file I can check it out.

It probably could - if I thought there was the demand for it. And is it really that hard - it’s just one command line parameter on a short cut and the rest is automatic.

@torsten gave an excellent explanation of how it works, but you really don’t need to understand all that to use it. Just remember it’s a command line switch that loads a different set of settings.

I think not, at least not using manual profile settings.

On the other hand, I also think that a musician does not necessarily have to be a skilled computer scientist.
So I understand you. I’ve been helping musicians for 25 years (maybe more), configuring PCs and struggling with the big oddities in operating systems (ie Windows and MacOS), connecting devices and so on…
Not for money, it’s not my real job, just for the great pleasure of seeing a system working at its best and helping a musician make music.

1 Like