Audio production

From NixOS Wiki
Revision as of 04:46, 25 September 2023 by imported>Deifactor (document how to install VSTs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

VSTs

VSTs go in either ~/.vst or ~/.vst3If using VSTs, they may depend on libraries that are not available in the Renoise path. This will show up in the logs as an error along the lines of

Vst3Plugs: Failed to load module: dlopen failed. libSM.so.6: cannot open shared object file: No such file or directory

To solve this, you'll need to turn Renoise into a wrapper that adds the missing libraries to the LD_LIBRARY_PATH:

let
  vstLibs = with pkgs; [
    # your libraries go here
  ];
  renoiseWithVsts = with pkgs;
    renoise.overrideAttrs (prev: {
      nativeBuildInputs = [ makeWrapper ];
      # keep the existing postFixup script as well
      postFixup = prev.postFixup + ''
        wrapProgram $out/bin/renoise \
          --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath vstLibs}"
      '';
    });
in
  environment.systemPackages = [
    renoiseWithVsts
    # your other packages
  ];

To figure out what libraries you need, run ldd path/to/your/vst.so ; ignore the warning about not having executable permissions if you get it. You'll get something like

	libasound.so.2 => not found
	libSM.so.6 => not found
	libICE.so.6 => not found
	libX11.so.6 => not found
	libXext.so.6 => not found
	libGL.so.1 => not found
	libfreetype.so.6 => not found
	libstdc++.so.6 => not found

Anything that already shows up in ldd $(which renoise) will already be loaded by Renoise itself. In this case, we can see we need libSM, libICE, libXext, libGL, and libfreetype. Using nix-index, we can find the corresponding packages are

  vstLibs = with pkgs; [
    xorg.libSM
    xorg.libICE
    xorg.libXext
    freetype
    libGL
  ];