summaryrefslogtreecommitdiff
path: root/gnu/packages/audio.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/audio.scm')
-rw-r--r--gnu/packages/audio.scm417
1 files changed, 399 insertions, 18 deletions
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 924fdd7f63..9447156e0e 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -32,6 +32,7 @@
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Jonathan Frederickson <jonathan@terracrypt.net>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -113,6 +114,7 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
@@ -127,6 +129,308 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
+(define-public opensles
+ (package
+ (name "opensles")
+ (version "1.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/KhronosGroup/OpenSL-ES-Registry.git")
+ (commit "ea5104bf37bf525c25e6ae2386586048179d0fda")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0j5bm7h3ahz66f23i9abwc0y10agfkpksnj6y078x2nichq66h4f"))
+ (patches
+ (search-patches "opensles-add-license-file.patch"))))
+ (build-system copy-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'clean
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/etc"))
+ (mkdir-p (string-append out "/include"))
+ (mkdir-p (string-append out "/share"))
+ (rename-file
+ (string-append out "/api/1.1/OpenSLES_IID.c")
+ (string-append out "/etc/OpenSLES_IID.c"))
+ (rename-file
+ (string-append out "/api/1.1/OpenSLES.h")
+ (string-append out "/include/OpenSLES.h"))
+ (rename-file
+ (string-append out "/api/1.1/OpenSLES_Platform.h")
+ (string-append out "/include/OpenSLES_Platform.h"))
+ (rename-file
+ (string-append out "/api/1.1/README.txt")
+ (string-append out "/share/README.txt"))
+ (rename-file
+ (string-append out "/LICENSE.txt")
+ (string-append out "/share/LICENSE.txt"))
+ (for-each delete-file-recursively
+ (list
+ (string-append out "/api")
+ (string-append out "/specs")))
+ (for-each delete-file
+ (list
+ (string-append out "/CODE_OF_CONDUCT.md")
+ (string-append out "/index.php")
+ (string-append out "/README.md"))))
+ #t)))))
+ (synopsis "Embedded Audio Acceleration")
+ (description "OpenSLES is a royalty-free, cross-platform,
+hardware-accelerated audio API tuned for embedded systems. It provides a
+standardized, high-performance, low-latency method to access audio
+functionality for developers of native applications on embedded mobile
+multimedia devices, enabling straightforward cross-platform deployment of
+hardware and software audio capabilities, reducing implementation effort, and
+promoting the market for advanced audio.")
+ (home-page "https://www.khronos.org/opensles/")
+ (license (license:non-copyleft "file:///LICENSE.txt"))))
+
+(define-public wildmidi
+ (package
+ (name "wildmidi")
+ (version "0.4.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/Mindwerks/wildmidi.git")
+ (commit (string-append name "-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01f4a9c5xlap5a4pkfnlgkzk5pjlk43zkq6fnw615ghya04g6hrl"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; No target
+ #:configure-flags
+ (list
+ "-DWANT_ALSA=ON"
+ "-DWANT_OSS=ON"
+ "-DWANT_OPENAL=ON")))
+ (inputs
+ `(("alsa" ,alsa-lib)
+ ("openal" ,openal)))
+ (synopsis "Software Synthesizer")
+ (description "WildMIDI is a simple software midi player which has a core
+softsynth library that can be use with other applications.")
+ (home-page "https://www.mindwerks.net/projects/wildmidi/")
+ (license
+ (list
+ ;; Library.
+ license:lgpl3+
+ ;; Player.
+ license:gpl3+))))
+
+(define-public webrtc-audio-processing
+ (package
+ (name "webrtc-audio-processing")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "http://freedesktop.org/software/pulseaudio/"
+ name "/" name "-" version ".tar.xz"))
+ (sha256
+ (base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0"))))
+ (build-system gnu-build-system)
+ (synopsis "WebRTC's Audio Processing Library")
+ (description "WebRTC-Audio-Processing library based on Google's
+implementation of WebRTC.")
+ (home-page
+ "https://freedesktop.org/software/pulseaudio/webrtc-audio-processing/")
+ (license (license:non-copyleft "file:///COPYING"))))
+
+(define-public vo-aacenc
+ (package
+ (name "vo-aacenc")
+ (version "0.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://sourceforge.net/projects/opencore-amr/files/"
+ name "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0dhghm3c8pqrriwwyj5x9i0yf52fmdfijbgqqkvqvwarldvp86p5"))))
+ (build-system gnu-build-system)
+ (synopsis "VisualOn AAC Encoder")
+ (description "VO-AACENC is the VisualOn implementation of Advanced Audio
+Coding (AAC) encoder.")
+ (home-page "https://sourceforge.net/projects/opencore-amr/")
+ (license license:asl2.0)))
+
+(define-public tinyalsa
+ (package
+ (name "tinyalsa")
+ (version "1.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/tinyalsa/tinyalsa.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ajyvml5bnzvhiyyrn42gqwgg23ssxkfh09rvsnywhzxhd0xai4h"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; No target
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))
+ #:make-flags
+ (list
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))))
+ (synopsis "ALSA interfacing library")
+ (description "TinyALSA is a small library to interface with ALSA in the
+Linux kernel.")
+ (home-page "https://github.com/tinyalsa/tinyalsa")
+ (license (license:non-copyleft "file:///NOTICE"))))
+
+(define-public libopenmpt
+ (package
+ (name "libopenmpt")
+ (version "0.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://download.openmpt.org/archive/libopenmpt/src/"
+ "libopenmpt-" version "+release.autotools.tar.gz"))
+ (sha256
+ (base32 "1cwpc4j90dpxa2siia68rg9qwwm2xk6bhxnslfjj364507jy6s4l"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--docdir=" (assoc-ref %outputs "out")
+ "/share/doc/" ,name "-" ,version))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'delete-static-libraries
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib")))
+ (for-each delete-file (find-files lib "\\.a$"))
+ #t))))))
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa" ,alsa-lib)
+ ("flac" ,flac)
+ ("mpg123" ,mpg123)
+ ("portaudio" ,portaudio)
+ ("pulseaudio" ,pulseaudio)
+ ("sdl2" ,sdl2)
+ ("sndfile" ,libsndfile)
+ ("vorbis" ,libvorbis)
+ ("zlib" ,zlib)))
+ (synopsis "Audio tracking library")
+ (description "LibOpenMPT is a cross-platform C++ and C module playback
+library. It is based on the player code of the Open ModPlug Tracker project.")
+ (home-page "https://openmpt.org/")
+ (license (license:non-copyleft "file:///LICENSE"))))
+
+(define-public libofa
+ (package
+ (name "libofa")
+ (version "0.9.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://storage.googleapis.com/"
+ "google-code-archive-downloads/v2/code.google.com/"
+ "musicip-libofa/" name "-" version ".tar.gz"))
+ (sha256
+ (base32 "184ham039l7lwhfgg0xr2vch2xnw1lwh7sid432mh879adhlc5h2"))
+ (patches
+ (search-patches
+ "libofa-ftbfs-1.diff"
+ "libofa-curl.diff"
+ "libofa-ftbfs-2.diff"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("curl" ,curl)
+ ("expat" ,expat)))
+ (propagated-inputs
+ `(("fftw" ,fftw)))
+ (synopsis "Open Fingerprint Architecture")
+ (description "LibOFA is an audio fingerprint library, created and provided
+by MusicIP.")
+ (home-page "https://code.google.com/archive/p/musicip-libofa/")
+ (license license:gpl2+)))
+
+(define-public faac
+ (package
+ (name "faac")
+ (version "1.30")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://sourceforge.net/projects/faac/files/faac-src/"
+ "faac-1.30/faac-1_30.tar.gz/download"))
+ (sha256
+ (base32 "1lmj0dib3mjp84jhxc5ddvydkzzhb0gfrdh3ikcidjlcb378ghxd"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (synopsis "Freeware Advanced Audio Coder")
+ (description "FAAC is an MPEG-4 and MPEG-2 AAC encoder.")
+ (home-page "https://www.audiocoding.com/faac.html")
+ (license
+ (list
+ ;; ISO MPEG-4 reference code.
+ license:gpl2+
+ ;; Others.
+ license:lgpl2.0+))))
+
+(define-public libtimidity
+ (package
+ (name "libtimidity")
+ (version "0.2.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://sourceforge.net/projects/" name "/files/"
+ name "/" version "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0p2px0m907gi1zpdr0l9adq25jl89j85c11ag9s2g4yc6n1nhgfm"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f)) ; XXX: LibTiMidity could not be initialised
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("ao" ,ao)))
+ (synopsis "MIDI to WAVE converter library")
+ (description "LibTiMidity is a MIDI to WAVE converter library that uses
+Gravis Ultrasound-compatible patch files to generate digital audio data from
+General MIDI files.")
+ (home-page "http://libtimidity.sourceforge.net/")
+ (license
+ ;; This project is dual-licensed.
+ ;; Either of the following licenses can be exercised.
+ (list
+ license:lgpl2.1+
+ license:artistic2.0))))
+
(define-public vo-amrwbenc
(package
(name "vo-amrwbenc")
@@ -474,7 +778,7 @@ engineers, musicians, soundtrack editors and composers.")
;; SSE instructions are available on Intel systems only.
,@(if (any (cute string-prefix? <> (or (%current-target-system)
(%current-system)))
- '("x64_64" "i686"))
+ '("x86_64" "i686"))
'()
'("--enable-sse=no"))
;; portmidi, libid3tag and libmad provide no .pc files, so
@@ -1386,22 +1690,22 @@ also play midifiles using a Soundfont.")
(define-public faad2
(package
(name "faad2")
- (version "2.8.6")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/faac/faad2-src/faad2-"
- (version-major+minor version) ".0/"
- "faad2-" version ".tar.gz"))
- (sha256
- (base32
- "089zqykqgmmysznvk0bi2pfvdqwclnn540d0zks83sv2pynpfjb5"))))
+ (version "2.8.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "mirror://sourceforge/faac/faad2-src/faad2-"
+ (version-major+minor version) ".0/"
+ "faad2-" version ".tar.gz"))
+ (sha256
+ (base32 "0va284hndhn0ynm4lyn219qw4y8wa4agfkqgwlaji7bqp6nkyp4q"))))
(build-system gnu-build-system)
(home-page "https://www.audiocoding.com/faad2.html")
(synopsis "MPEG-4 and MPEG-2 AAC decoder")
(description
- "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,
-PS, and DAB+.")
- (license license:gpl2)))
+ "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR, -PS, and DAB+.")
+ (license license:gpl2+)))
(define-public faust
(package
@@ -1991,6 +2295,48 @@ with applications that support them (e.g. PulseAudio).")
implementation of the Open Sound Control (@dfn{OSC}) protocol.")
(license license:lgpl2.1+)))
+(define-public rtaudio
+ (package
+ (name "rtaudio")
+ (version "5.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/thestk/rtaudio")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "156c2dgh6jrsyfn1y89nslvaxm4yifmxridsb708yvkaym02w2l8"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("jack" ,jack-1)
+ ("pulseaudio" ,pulseaudio)))
+ (synopsis "Common API for real-time audio I/O")
+ (description
+ "RtAudio is a set of C++ classes that provides a common API for real-time
+audio input/output. It was designed with the following objectives:
+
+@itemize
+@item object-oriented C++ design
+@item simple, common API across all supported platforms
+@item only one source and one header file for easy inclusion in programming
+projects
+@item allow simultaneous multi-api support
+@item support dynamic connection of devices
+@item provide extensive audio device parameter control
+@item allow audio device capability probing
+@item automatic internal conversion for data format, channel number
+compensation, (de)interleaving, and byte-swapping
+@end itemize")
+ (home-page "https://www.music.mcgill.ca/~gary/rtaudio/")
+ ;; License is expat with a non-binding request to send modifications to
+ ;; original developer.
+ (license license:expat)))
+
(define-public python-pyaudio
(package
(name "python-pyaudio")
@@ -2582,9 +2928,12 @@ aimed at audio/musical applications.")
("automake" ,automake)
("pkg-config" ,pkg-config)
("libtool" ,libtool)))
- (synopsis "Real-time library for sampling rate conversion")
- (description "The @command{resample} software package contains free
-sampling-rate conversion and filter design utilities.")
+ (synopsis "Sampling rate conversion and filter design utilities")
+ (description "This package contains the @command{resample} and
+@command{windowfilter} command line utilities. The @command{resample} command
+allows changing the sampling rate of a sound file, while the
+@command{windowfilter} command allows to design Finite Impulse Response (FIR)
+filters using the so-called @emph{window method}.")
(home-page "https://ccrma.stanford.edu/~jos/resample/Free_Resampling_Software.html")
(license license:lgpl2.1+)))
@@ -3676,14 +4025,14 @@ on the ALSA software PCM plugin.")
(define-public snd
(package
(name "snd")
- (version "20.5")
+ (version "20.6")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
"snd-" version ".tar.gz"))
(sha256
(base32
- "1frg64q2d8cia6v7jia7kahzx0apwdl0z252mzlbwqdz5960nv90"))))
+ "1h4dsq5xcvwjbnayhn719cln0lg199w3xm59sl9d2jz8bq78gqgj"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:tests? #f ; no tests
@@ -4398,6 +4747,38 @@ minimum.")
(home-page "https://git.zrythm.org/cgit/ztoolkit/")
(license license:agpl3+)))
+(define-public libinstpatch
+ (package
+ (name "libinstpatch")
+ (version "1.1.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/swami/libinstpatch")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0psx4hc5yksfd3k2xqsc7c8lbz2d4yybikyddyd9hlkhq979cmjb"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f)) ;there are no tests
+ (native-inputs
+ `(("glib:bin" ,glib "bin")
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("glib" ,glib)
+ ("libsndfile" ,libsndfile)))
+ (home-page "http://www.swamiproject.org/")
+ (synopsis "Instrument file software library")
+ (description
+ "libInstPatch is a library for processing digital sample based MIDI
+instrument \"patch\" files. The types of files libInstPatch supports are used
+for creating instrument sounds for wavetable synthesis. libInstPatch provides
+an object framework (based on GObject) to load patch files, which can then be
+edited, converted, compressed and saved.")
+ (license license:lgpl2.1)))
+
(define-public ztoolkit-rsvg
(package
(inherit ztoolkit)