How to migrate config to new version?

How can I take my configuration (key bindings, scripts assigned to buttons, UI layout) from one version of Ardour to another?

Whenever I have started a new version of Ardour it asks whether you want to import the existing config file.

1 Like

Oh I didn’t see that message, I’ll try the latest nightly and see if it pops up.

Good day,

In Windows, as in Linux, personal settings are stored in a different folder than the program folder. I think this is also true for a MAC.

This makes it easier to upgrade or update Ardour because the personal settings for Ardour are not deleted during an upgrade or update.

However, if you uninstall the older version before upgrading or updating, Ardour will also delete the personal settings. Then the new version is reinstalled and you have to make all the settings again.

Do not uninstall before upgrading or updating if you want to keep your personal settings.

However, if the older version caused problems, it makes a lot of sense to uninstall the older version and reinstall it before upgrading or updating.

This is not correct. User preferences are not deleted when Ardour is uninstalled.

  • on GNU/Linux config is stored in $XDG_CONFIG_PATH/ardour_VERSION, e.g. ~/.config/ardour7
  • in Windows %localappdata%\ardour7
  • and on macOS ~/Libraray/Preferences/Ardour7

Note however that you cannot simply copy over files if the major version mismatches. In that case it is preferable to remove the folder and let ardour convert the config files.

Keyboard bindings are not usually compatible, even minor versions. There is currently no mechanism to remove old bindings or merge with new bindings when they become available.

Which files do I need to copy across?

Thanks for the tip Robin. The latest installation scripts from the software manufacturers also clean up the personal folder. Then that would be a broad advantage for DHealey, no matter what he decides. Great.

Usually the whole folder, but only if its the same version of Ardour.

And when it’s not the same version? :wink:

When you first run a new major version, a dialog asks to convert and copy preferences from an older version.

but if you already have a ~/.config/ardour7 folder, that question will not be present.

1 Like

I’ll see it here before the release: if you’ve been using Ardour versions between 6.9 and the release of 7.0, you will be strongly recommended to remove your preferences folder for Ardour 7.0 before using the release version.

1 Like

I removed the Ardour 7 config folder and uninstalled the previously nightly version I had. I installed the latest nightly and copied my scripts folder from A6 to A7 config. When I start A7 it asked if I wanted to import my A6 config.

Unfortunately this hasn’t copied over my lua scripts setup or any of the key bindings I assigned to trigger these scripts. Is there a way I can do this easily without having to manually set everything up in A7?

I think you’re out of luck, sorry. :frowning:

The Lua API changed significantly (due to libardour’s time representation being completely overhauled), so there is a good chance that most script no longer work. At least those who use any time positions or control transport.

You could try copy

cp -a ~/.config/ardour6/scripts ~/.config/ardour7/
cp ~/.config/ardour6/ui_scripts ~/.config/ardour7/ui_scripts

but chances are that many will just error out.

As for keyboard bindings, those are even incompatible between minor versions (note how your ~/.config/ardour6/ folder has multiple *.key files).

It is in possible to manually merge the .key files, but converting .key files programmatically whenever available actions change between versions has so far been beyond the skills of programmers interested in implementing this.

Darn, oh well I’ll do it the old fashioned way, thanks for the input. I hope my positional scripts don’t need to much re-writing, have the scripting docs been updated?.

The manual, no. That will be updated with the v7 manual. But the example scripts folder has been: ardour/share/scripts at master · Ardour/ardour · GitHub


PS. Except I just realized that some script there have not yet been updated…

1 Like

Copying the ui_scripts and merging the ardour.keys file worked :slight_smile: I’m noticing minor issues with a couple of my scripts so I will update those.

@x42 How do I add/subtract time from a timestamp?

Previously I could write local pos = region:position () + value

Thanks for the tip . . . Paul.

It still works this way, except value must be a Temporal::timepos_t object, not a number.

I’ll update the scripts and API this week. So far the only way is inconveniently something like:

local tp = Temporal.timepos_t.from_superclock (Temporal.superclock_ticks_per_second () * Session:nominal_sample_rate () * value)

local pos = region:position () + tp

or if the offset is in music-time (bar/beats/ticks) tp = Temporal.timepos_t.from ticks()

1 Like

Just to be clear, the reason for this is that region:position() could be in audio time (samples) or music time (beats) and you can no longer just trivially add scalar values without paying attention to the time domain.

1 Like