nixos-config/nixos/system/desktop/audio.nix

74 lines
1.8 KiB
Nix

{ config, lib, pkgs, ... }:
let
library = import ../../library { inherit pkgs lib; };
mixxxBin = pkgs.writeShellScriptBin "mixxx"
"${pkgs.mixxx}/bin/mixxx --settingsPath ${config.users.users.mainUser.home}/music-library/mixxx";
mixxxDesktop = library.desktopFile mixxxBin { longName = "Mixxx"; };
mixxxFreeBin = pkgs.writeShellScriptBin "mixxx-free"
"${pkgs.mixxx}/bin/mixxx --settingsPath ${config.users.users.mainUser.home}/music-library-free/mixxx";
mixxxFreeDesktop = library.desktopFile mixxxFreeBin { longName = "Mixxx"; };
in
{
system.custom.audio = {
enable = true;
sinks = [{
name = "movieLimiterSink";
queue = [
{
# compress all sounds
plugin = "dyson_compress_1403";
label = "dysonCompress";
control = [
"0" # peak limit (dB)
"1" # release time (secons)
"0.2" # fast compression ration (unknown what that means)
"0.8" # compression ratio
];
}
{
# limit sound
plugin = "fast_lookahead_limiter_1913";
label = "fastLookaheadLimiter";
control = [
"20" # input gain (db)
"-10" # limit (db)
"1.1" # release time (s)
];
}
{
# avoid deep sounds
plugin = "dj_eq_1901";
label = "dj_eq";
control = [
"-9" # low gain (db) (100Hz)
"0" # mid gain (db) (1000Hz)
"0" # high gain (db) (10000Hz)
];
}
];
}];
};
programs.custom = {
easytag.enable = true;
espeak.enable = true;
};
environment.systemPackages = with pkgs; [
audacious
sox
id3v2
mixxxBin
mixxxDesktop
mixxxFreeBin
mixxxFreeDesktop
];
}