Audio plugins no longer detected after switching to nix 2.4 + flakes

Hi folks!

Since switching from a channel-based NixOS configuration to a flake-oriented one, neither Carla or Ardour are detecting any of my audio plugins. Other than the top-level nix flake I now use, my configuration is for the most part unchanged. This is the only issue I’ve noticed since making the switch a week or so ago - the rest of my packages still seem to work nicely.

Previously, Ardour, Carla and other audio software used to successfully detect all of my installed plugins. In order to have them find the plugins, I had to set a few ENV vars like the following In my home config:

LV2_PATH = "$HOME/.lv2:$HOME/.nix-profile/lib/lv2:/run/current-system/sw/lib/lv2";

When I echo LV2_PATH in my terminal today I can confirm that the env var is still available. I wonder if, since switching to using flakes, the nixos config no longer makes use of one of these paths like it used to? Is there perhaps another path I should be checking now?

In case anyone is interested in taking a look, here is my configuration. You can find the switch to flakes within the last couple of commits at either repo.

Any ideas about what might be going on here would be appreciated!

1 Like

I’m also on flakes and I’m having a similar issue. The audio plugin lib directories don’t even exist either in ~/.nix-profile/lib or /run/current-system/sw/lib on my NixOS system though. Do the lv2 and vst directories are linked in there on your system? edit: maybe setting them with environment.extraOutputsToInstall

Any word on this?

I found a solution for those who still have this problem. The audio plugins are probably stored in /etc/profiles/per-user/$USER/lib if they were installed with home manager.

  home.sessionVariables = {
    DSSI_PATH = "$HOME/.dssi:$HOME/.nix-profile/lib/dssi:/run/current-system/sw/lib/dssi:/etc/profiles/per-user/$USER/lib/dssi";
    LADSPA_PATH = "$HOME/.ladspa:$HOME/.nix-profile/lib/ladspa:/run/current-system/sw/lib/ladspa:/etc/profiles/per-user/$USER/lib/ladspa";
    LV2_PATH = "$HOME/.lv2:$HOME/.nix-profile/lib/lv2:/run/current-system/sw/lib/lv2:/etc/profiles/per-user/$USER/lib/lv2";
    LXVST_PATH = "$HOME/.lxvst:$HOME/.nix-profile/lib/lxvst:/run/current-system/sw/lib/lxvst:/etc/profiles/per-user/$USER/lib/lxvst";
    VST_PATH = "$HOME/.vst:$HOME/.nix-profile/lib/vst:/run/current-system/sw/lib/vst:/etc/profiles/per-user/$USER/lib/vst";
  };

here is the block I used in my home manager config. Seems to work well.

2 Likes

for reference:

(some talk in 2022 about the vst and lv2 directories)