X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/c2cf286c62933d2806ae17b8287520820bf87c7e..ffe714b5f441ca22d69ecef34bdbb8e61bf758c4:/gnu/packages/pulseaudio.scm diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index c2853dcd82..9522d023ad 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -9,7 +9,10 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2018 Pierre Langlois ;;; Copyright © 2019 Alex Griffin +;;; Copyright © 2019 Mathieu Othacehe ;;; Copyright © 2020 Amin Bandali +;;; Copyright © 2020 Michael Rohleder +;;; Copyright © 2020 Pierre Neidhardt ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,8 +33,13 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix utils) #:use-module ((guix licenses) #:prefix l:) + #:use-module (guix build-system cmake) + #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) + #:use-module (guix build-system meson) #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages algebra) @@ -42,12 +50,14 @@ #:use-module (gnu packages check) #:use-module (gnu packages dbm) #:use-module (gnu packages glib) + #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages libcanberra) #:use-module (gnu packages web) #:use-module (gnu packages linux) #:use-module (gnu packages m4) + #:use-module (gnu packages perl) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) @@ -107,10 +117,28 @@ for reading and writing new sound file formats.") "1ha46i0nbibq0pl0pjwcqiyny4hj8lp1bnl4dpxm64zjw9lb2zha")))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("automake" ,automake))) ;For up to date 'config.guess' and 'config.sub'. (propagated-inputs `(("libsndfile" ,libsndfile) ("fftw" ,fftw))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-configure + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.sub and config.guess: + (with-directory-excursion "Cfg" + (for-each (lambda (file) + (install-file (string-append + (assoc-ref + (or native-inputs inputs) "automake") + "/share/automake-" + ,(version-major+minor + (package-version automake)) + "/" file) ".")) + '("config.sub" "config.guess"))) + #t))))) (home-page "http://www.mega-nerd.com/SRC/index.html") (synopsis "Audio sample rate conversion library") (description @@ -197,9 +225,11 @@ rates.") ("eudev" ,eudev))) ;for the detection of hardware audio devices (native-inputs `(("check" ,check) + ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") - ("intltool" ,intltool) ("m4" ,m4) + ("perl" ,perl) + ("perl-xml-parser" ,perl-xml-parser) ("pkg-config" ,pkg-config))) (propagated-inputs ;; 'libpulse*.la' contain `-lgdbm' and `-lcap', so propagate them. @@ -223,7 +253,7 @@ sound server.") (define-public pavucontrol (package (name "pavucontrol") - (version "3.0") + (version "4.0") (source (origin (method url-fetch) (uri (string-append @@ -232,11 +262,12 @@ sound server.") ".tar.xz")) (sha256 (base32 - "14486c6lmmirkhscbfygz114f6yzf97h35n3h3pdr27w4mdfmlmk")))) - (build-system gnu-build-system) + "1qhlkl3g8d7h72xjskii3g1l7la2cavwp69909pzmbi2jyn5pi4g")))) + (build-system glib-or-gtk-build-system) (inputs - `(("libcanberra" ,libcanberra) + `(("adwaita-icon-theme" ,adwaita-icon-theme) ;hard-coded theme ("gtkmm" ,gtkmm) + ("libcanberra" ,libcanberra) ("pulseaudio" ,pulseaudio))) (native-inputs `(("intltool" ,intltool) @@ -288,7 +319,7 @@ sinks.") (define-public pulsemixer (package (name "pulsemixer") - (version "1.5.0") + (version "1.5.1") (source (origin (method git-fetch) (uri (git-reference @@ -297,7 +328,7 @@ sinks.") (file-name (git-file-name name version)) (sha256 (base32 - "162nfpyqn4gp45x332a73n07c118vispz3jicin4p67x3f8f0g3j")))) + "1jagx9zmz5pfsld8y2rj2kqg6ww9f6vqiawfy3vhqc49x3xx92p4")))) (build-system python-build-system) (arguments `(#:phases @@ -328,7 +359,7 @@ curses-style interfaces.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/masmu/pulseaudio-dlna.git") + (url "https://github.com/masmu/pulseaudio-dlna") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -377,7 +408,7 @@ install one or more of the following packages alongside pulseaudio-dlna: (origin (method git-fetch) (uri (git-reference - (url "https://github.com/cdemoulins/pamixer.git") + (url "https://github.com/cdemoulins/pamixer") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -412,7 +443,7 @@ volume levels of the sinks (get, set, decrease, increase, toggle mute, etc).") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/christophgysin/pasystray.git") + (url "https://github.com/christophgysin/pasystray") (commit (string-append name "-" version)))) (file-name (git-file-name name version)) (sha256 @@ -442,3 +473,122 @@ volume levels of the sinks (get, set, decrease, increase, toggle mute, etc).") PulseAudio server settings from the X11 system tray. See the project README.md for a detailed list of features.") (license l:lgpl2.1+))) + +(define-public paprefs + (package + (name "paprefs") + (version "1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.freedesktop.org/software/pulseaudio/" + name "/" name "-" version ".tar.xz")) + (sha256 + (base32 + "189z5p20hk0xv9vwvym293503j4pwl03xqk9hl7cl6dwgv0l7wkf")))) + (build-system meson-build-system) + (native-inputs + `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config))) + (inputs + `(("gtkmm" ,gtkmm) + ("pulseaudio" ,pulseaudio))) + (home-page "https://freedesktop.org/software/pulseaudio/paprefs/") + (synopsis "Simple GTK based configuration dialog for the PulseAudio sound +server") + (description "@command{paprefs} is a simple GTK based configuration +dialog for the PulseAudio sound server. Note that this program can +only configure local servers, and requires that a special module +module-gsettings is loaded in the sound server.") + (license l:gpl2))) + +(define-public rnnoise + (package + (name "rnnoise") + (version "0.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/werman/noise-suppression-for-voice") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "18bq5b50xw3d4r1ildinafpg3isb9y216430h4mm9wr3ir7h76a7")))) + (build-system cmake-build-system) + (arguments + ;; No tests. + '(#:tests? #f)) + (inputs + `(;; TODO: Package VST to build the corresponding plugin. + ("pulseaudio" ,pulseaudio))) + (home-page "https://github.com/werman/noise-suppression-for-voice") + (synopsis "Real-time Noise suppression plugin based on Xiph's RNNoise") + (description "The plugin is meant to suppress a wide range of noise +origins: computer fans, office, crowd, airplane, car, train, construction. + +Mild background noise is always suppressed, loud sounds, like +clicking of mechanical keyboard, are suppressed while there is no voice +however they are only reduced in volume when voice is present. + +The plugin is made to work with 1 or 2 channels (ladspa plugin), +16 bit, 48000 Hz audio input.") + (license l:gpl3))) + +(define-public noisetorch + (package + (name "noisetorch") + (version "0.7.2-beta") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lawl/NoiseTorch") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "06xlqjma8h7lcnqgc9226blps6m9dp487hk71lslfxj0jkay548k")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/lawl/NoiseTorch" + #:install-source? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'symlink-rnnoise + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "src/github.com/lawl/NoiseTorch" + (let ((dir "librnnoise_ladspa/bin/ladspa") + (rnnoise (assoc-ref inputs "rnnoise"))) + (mkdir-p dir) + (symlink (string-append rnnoise "/lib/ladspa/librnnoise_ladspa.so") + (string-append dir "/librnnoise_ladspa.so")))) + #t)) + (add-after 'unpack 'gen-version.go + (lambda _ + (with-directory-excursion "src/github.com/lawl/NoiseTorch" + (substitute* "main.go" + (("//go:generate go run scripts/embedversion\\.go") "")) + (with-output-to-file "version.go" + (lambda () + (format #t "package main~%~%var version=~s~&" ,version)))) + #t)) + (add-after 'unpack 'disable-update-check.go + (lambda _ + (with-directory-excursion "src/github.com/lawl/NoiseTorch" + (substitute* "main.go" + ((".*updateCheck.*") ""))) + #t)) + (add-before 'build 'go-generate + (lambda _ + (with-directory-excursion "src/github.com/lawl/NoiseTorch" + (invoke "go" "generate"))))))) + (inputs + `(("rnnoise" ,rnnoise))) + (home-page "https://github.com/lawl/NoiseTorch") + (synopsis "Real-time microphone noise suppression") + (description "NoiseTorch creates a virtual PulseAudio microphone that +suppresses noise, in any application. Use whichever conferencing or VOIP +application you like and simply select the NoiseTorch Virtual Microphone as +input to torch the sound of your mechanical keyboard, computer fans, trains +and the likes.") + (license l:gpl3)))