NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
17.64k stars 13.8k forks source link

Package request: pulsemeeter #297762

Open Veadro opened 6 months ago

Veadro commented 6 months ago

A frontend to ease the use of pulseaudio's routing capabilities, mimicking voicemeeter's workflow

Features Create virtual inputs and outputs Route audio from one device to another Volume control Equalizer for hardware and virtual outputs Rnnoise noise reduction (same algorithm as noisetorch) for hardware inputs

Metadata


Add a :+1: reaction to issues you find important.

pluiedev commented 6 months ago

Got it "working", but upstream hasn't been updated in literally 2 years and there are numerous outstanding bugs. I normally use Pipewire myself, and so I had to switch to Pulseaudio to test it, but if it crashes when Firefox is playing any audio, I seriously doubt it's at enough of a functional state to be in Nixpkgs.

Screenshot_20240322_124554

Regardless, here's the deriv I came up with so you can use it for now. Note that noise-suppression-for-voice and pulse-vumeter are unpackaged as of now:

{
  python3Packages,
  fetchPypi,
  gtk3,
  libappindicator,
  gobject-introspection,
  libpulseaudio,
  # noise-suppression-for-voice,
  ladspaPlugins,
  # pulse-vumeter,
  wrapGAppsHook,
}:
python3Packages.buildPythonPackage rec {
  pname = "pulsemeeter";
  version = "1.2.14";

  src = fetchPypi {
    inherit pname version;
    hash = "sha256-HrrJ+XQFm3v3Z9lWmNtHUCbkX/xvN3h2bCX8nRMBxpk=";
  };

  propagatedBuildInputs = [
    gtk3
    libappindicator
    gobject-introspection
    libpulseaudio
    ladspaPlugins

    python3Packages.pulsectl
    python3Packages.pygobject3
  ];

  nativeBuildInputs = [
    gobject-introspection
    wrapGAppsHook
  ];

  # Check somehow requires pip.
  doCheck = false;
}
pluiedev commented 6 months ago

Looks like someone already tried to package this a while ago: https://github.com/PassiveLemon/lemonix/blob/542a7e3b334ea0e78829b71272c02876905bd821/pkgs/pulsemeeter/default.nix

Found this through theRealCarneiro/pulsemeeter#121