+
+(define-public noise-repellent
+ (package
+ (name "noise-repellent")
+ (version "0.1.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lucianodato/noise-repellent.git")
+ (commit version)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0rd3dlmk3vivjmcr6x2x860y0j1d49c2j95j6ny50v184mwvn11j"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (list "CC=gcc"
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:tests? #f ; there are none
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (inputs
+ `(("lv2" ,lv2)
+ ("fftwf" ,fftwf)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/lucianodato/noise-repellent")
+ (synopsis "LV2 plugin for broadband noise reduction")
+ (description "Noise Repellent is an LV2 plugin to reduce noise. It has
+the following features:
+
+@enumerate
+@item Spectral gating and spectral subtraction suppression rule
+@item Adaptive and manual noise thresholds estimation
+@item Adjustable noise floor
+@item Adjustable offset of thresholds to perform over-subtraction
+@item Time smoothing and a masking estimation to reduce artifacts
+@item Basic onset detector to avoid transients suppression
+@item Whitening of the noise floor to mask artifacts and to recover higher
+ frequencies
+@item Option to listen to the residual signal
+@item Soft bypass
+@item Noise profile saved with the session
+@end enumerate
+")
+ (license license:lgpl3+)))
+
+(define-public cli-visualizer
+ (package
+ (name "cli-visualizer")
+ (version "1.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/dpayne/cli-visualizer/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "07zkm87f2fr8kc6531zrkya7q81sdanm6813y2f54mg13g41y6hi"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("which" ,which)))
+ (inputs
+ `(("fftw" ,fftw)
+ ("googletest" ,googletest)
+ ("ncurses" ,ncurses)
+ ("pulseaudio" ,pulseaudio)))
+ (arguments
+ '(#:test-target "test"
+ #:make-flags
+ (list (string-append "PREFIX=" %output "/bin/") "ENABLE_PULSE=1")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-sudo
+ (lambda _
+ (substitute* "install.sh" (("sudo") ""))
+ #t))
+ (add-before 'check 'set-check-environment
+ (lambda _
+ (setenv "CXX" "g++")
+ (setenv "CC" "gcc")
+ #t))
+ (add-before 'install 'make-prefix
+ (lambda _
+ (mkdir-p (string-append (assoc-ref %outputs "out") "/bin"))
+ #t))
+ (add-after 'install 'data
+ (lambda _
+ (for-each (lambda (file)
+ (install-file file
+ (string-append (assoc-ref %outputs "out")
+ "/share/doc")))
+ (find-files "examples"))
+ #t)))))
+ (home-page "https://github.com/dpayne/cli-visualizer/")
+ (synopsis "Command-line audio visualizer")
+ (description "@code{cli-visualizer} displays fast-Fourier
+transforms (FFTs) of the sound being played, as well as other graphical
+representations.")
+ (license license:expat)))
+
+(define-public cava
+ (package
+ (name "cava")
+ (version "0.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/karlstav/cava/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1p24lz3h4d0h82ffylqr7mq8a8x1c66flm2r2bsv1liw51n1rma2"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (inputs
+ `(("fftw" ,fftw)
+ ("ncurses" ,ncurses)
+ ("pulseaudio" ,pulseaudio)))
+ (arguments
+ `(#:configure-flags
+ (list (string-append "PREFIX=" %output)
+ (string-append "FONT_DIR=" %output "/usr/share/consolefonts"))
+ #:make-flags
+ (let ((lib (string-append %output "/lib")))
+ (list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib)))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'bootstrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ (setenv "HOME" (getcwd))
+ (invoke "sh" "autogen.sh")))
+ (add-before 'build 'make-cava-ldflags
+ (lambda* (#:key outputs #:allow-other-keys)
+ (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))))
+ (add-after 'install 'data
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each (lambda (file)
+ (install-file file
+ (string-append (assoc-ref outputs "out")
+ "/share/doc/examples")))
+ (find-files "example_files")))))))
+ (home-page "https://karlstav.github.io/cava/")
+ (synopsis "Console audio visualizer for ALSA, MPD, and PulseAudio")
+ (description "C.A.V.A. is a bar audio spectrum visualizer for the terminal
+using ALSA, MPD, PulseAudio, or a FIFO buffer as its input.")
+ (license license:expat)))
+
+(define-public fluid-3
+ (let ((commit "871c8ce2002e8b3c198f532fdb4fbcce7914f951"))
+ (package
+ (name "fluid-3")
+ (version "2.1")
+ (source
+ (origin
+ (method url-fetch)
+ ;; Only one file is required, but the release bundles the whole
+ ;; software which is 50MiB as tar and 200MiB unpacked. The website
+ ;; directly links the soundfont release to the github file download.
+ (uri (string-append "https://github.com/musescore/MuseScore/raw/"
+ commit "/share/sound/FluidR3Mono_GM.sf3"))
+ (file-name (string-append name "-" version ".sf3"))
+ (sha256
+ (base32
+ "1hjfg5i15bw9279007xs92zsggjgn4s4k9pc00s851l3kvc6dkfg"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((file (assoc-ref %build-inputs "source"))
+ (out (string-append %output "/share/soundfonts")))
+ (mkdir-p out)
+ (copy-file file (string-append out "/FluidR3Mono_GM.sf3"))))))
+ (home-page "https://github.com/musescore/MuseScore/tree/master/share/sound")
+ (synopsis "Pro-quality GM soundfont")
+ (description "Fluid-3 is Frank Wen's pro-quality GM soundfont.")
+ (license license:expat))))