summaryrefslogtreecommitdiff
path: root/gnu/packages/music.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r--gnu/packages/music.scm283
1 files changed, 192 insertions, 91 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index a3e38dd1c8..830bc4dfbe 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -29,6 +29,8 @@
;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -137,6 +139,7 @@
#:use-module (gnu packages rsync)
#:use-module (gnu packages sdl)
#:use-module (gnu packages sqlite)
+ #:use-module (gnu packages stb)
#:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tex)
@@ -147,6 +150,7 @@
#:use-module (gnu packages vim) ;for 'xxd'
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
+ #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xiph)
@@ -743,16 +747,64 @@ MusePack, Monkey's Audio, and WavPack files.")
" --mcpu=generic --attr=none")))
#t)))))
(inputs
- `(("llvm" ,llvm-for-extempore)
+ `(("llvm"
+ ,(package
+ (inherit llvm-3.8)
+ (name "llvm-for-extempore")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://extempore.moso.com.au/extras/"
+ "llvm-3.8.0.src-patched-for-extempore.tar.xz"))
+ (sha256
+ (base32
+ "1svdl6fxn8l01ni8mpm0bd5h856ahv3h9sdzgmymr6fayckjvqzs"))))))
("libffi" ,libffi)
("jack" ,jack-1)
("libsndfile" ,libsndfile)
("glfw" ,glfw)
("apr" ,apr)
- ("stb-image" ,stb-image-for-extempore)
+ ("stb-image"
+ ,(let ((revision "1")
+ (commit "152a250a702bf28951bb0220d63bc0c99830c498"))
+ (package
+ (inherit stb-image)
+ (name "stb-image-for-extempore")
+ (version (git-version "0" revision commit))
+ (source
+ (origin (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/extemporelang/stb")
+ (commit commit)))
+ (sha256
+ (base32
+ "0y0aa20pj9311x2ii06zg8xs34idg14hfgldqc5ymizc6cf1qiqv"))
+ (file-name (git-file-name name version))))
+ (build-system cmake-build-system)
+ (arguments `(#:tests? #f)) ;no tests included
+ (inputs '()))))
("kiss-fft" ,kiss-fft-for-extempore)
("nanovg" ,nanovg-for-extempore)
- ("portmidi" ,portmidi-for-extempore)
+ ("portmidi"
+ ,(let ((version "217")
+ (revision "0")
+ (commit "8602f548f71daf5ef638b2f7d224753400cb2158"))
+ (package
+ (inherit portmidi)
+ (name "portmidi-for-extempore")
+ (version (git-version version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/extemporelang/portmidi")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1qidzl1s3kzhczzm96rcd2ppn27a97k2axgfh1zhvyf0s52d7m4w"))))
+ (build-system cmake-build-system)
+ (arguments `(#:tests? #f)) ;no tests
+ (native-inputs '()))))
("assimp" ,assimp)
("alsa-lib" ,alsa-lib)
("portaudio" ,portaudio)
@@ -777,6 +829,75 @@ are helpful when working in problem spaces where timing is important (such as
audio and video).")
(license license:bsd-2)))
+(define-public surge-synth
+ (package
+ (name "surge-synth")
+ (version "1.7.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/surge-synthesizer/surge")
+ (commit (string-append "release_" version))
+ (recursive? #t))) ; build system expects modules to be there
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1jhk8iaqh89dnci4446b47315v2lc8gclraygk8m9jl20zpjxl0l"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; no tests included
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'replace-python
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "CMakeLists.txt"
+ ((" python ")
+ (string-append " " (assoc-ref inputs "python")
+ "/bin/python3 ")))
+ #t))
+ (add-after 'unpack 'fix-data-directory-name
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "src/common/SurgeStorage.cpp"
+ (("/usr") (assoc-ref outputs "out")))
+ #t))
+ (replace 'install ; no install target
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((src (assoc-ref inputs "source"))
+ (out (assoc-ref outputs "out"))
+ (share (string-append out "/share"))
+ (lib (string-append out "/lib"))
+ (lv2 (string-append lib "/lv2"))
+ (vst3 (string-append lib "/vst3")))
+ (mkdir-p lv2)
+ (mkdir-p vst3)
+ ;; Install LV2 plugin.
+ (copy-recursively "surge_products/Surge.lv2"
+ (string-append lv2 "/Surge.lv2"))
+ ;; Install VST3 plugin.
+ (copy-recursively "surge_products/Surge.vst3"
+ (string-append vst3 "/Surge.vst3"))
+ ;; Install data.
+ (copy-recursively (string-append src "/resources/data")
+ (string-append share "/Surge"))
+ #t))))))
+ (inputs
+ `(("cairo" ,cairo)
+ ("libxkbcommon" ,libxkbcommon)
+ ("python" ,python)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-cursor" ,xcb-util-cursor)
+ ("xcb-util-keysyms" ,xcb-util-keysyms)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "https://surge-synthesizer.github.io/")
+ (synopsis "Synthesizer plugin")
+ (description
+ "Surge is a subtractive hybrid digital synthesizer. Each patch contains
+two @dfn{scenes} which are separate instances of the entire synthesis
+engine (except effects) that can be used for layering or split patches.")
+ (license license:gpl3+)))
+
(define-public klick
(package
(name "klick")
@@ -1233,7 +1354,7 @@ device supports.")
(define-public bsequencer
(package
(name "bsequencer")
- (version "1.6.0")
+ (version "1.8.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1242,7 +1363,7 @@ device supports.")
(file-name (git-file-name name version))
(sha256
(base32
- "0w21kzq695xy4i1r6xvvh7sad5m0rlmdgc7ykmrlzfsm1252dz80"))))
+ "0w7iwzz2r4a699fi24qk71vv2k3jpl9ylzlgmvyc3rlgad0m01k1"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@@ -1321,9 +1442,9 @@ B.Choppr is the successor of B.Slizr.")
(base32
"0kl6hrxmqrdf0195bfnzsa2h1073fgiqrfhg2276fm1954sm994v"))))
(inputs
- `(("cairo", cairo)
- ("libsndfile", libsndfile)
- ("lv2", lv2)))
+ `(("cairo" ,cairo)
+ ("libsndfile" ,libsndfile)
+ ("lv2" ,lv2)))
(synopsis "Pattern-controlled audio stream/sample re-sequencer LV2 plugin")
(description "B.Jumblr is a pattern-controlled audio stream / sample
re-sequencer LV2 plugin.")
@@ -1346,11 +1467,11 @@ re-sequencer LV2 plugin.")
(base32
"1c09acqrbd387ba41f8ch1qykdap5h6cg9if5pgd16i4dmjnpghj"))))
(inputs
- `(("cairo", cairo)
+ `(("cairo" ,cairo)
("fontconfig" ,fontconfig)
- ("libsndfile", libsndfile)
+ ("libsndfile" ,libsndfile)
("libx11" ,libx11)
- ("lv2", lv2)))
+ ("lv2" ,lv2)))
(home-page "https://github.com/sjaehn/BSchaffl")
(synopsis "Pattern-controlled MIDI amp & time stretch LV2 plugin")
(description "This package provides an LV2 plugin that allows for
@@ -1984,7 +2105,7 @@ export.")
(define-public pd
(package
(name "pd")
- (version "0.51-1")
+ (version "0.51-2")
(source (origin
(method url-fetch)
(uri
@@ -1992,7 +2113,7 @@ export.")
version ".src.tar.gz"))
(sha256
(base32
- "0imbha9h96vqa967cbmdj7kkx7zrs054n5w2bjnifxdzws3qbxf6"))))
+ "1jgklcnaxypc8hr5j6mng8dd4na4ygfdixsfch8b86glssddi6mh"))))
(build-system gnu-build-system)
(arguments
(let ((wish (string-append "wish" (version-major+minor
@@ -2113,29 +2234,6 @@ main purpose is to liberate raw audio rendering from audio and MIDI drivers.")
using a system-independent interface.")
(license license:expat)))
-(define-public portmidi-for-extempore
- (let ((version "217")
- (revision "0")
- (commit "8602f548f71daf5ef638b2f7d224753400cb2158"))
- (package (inherit portmidi)
- (name "portmidi-for-extempore")
- (version (git-version version revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/extemporelang/portmidi")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1qidzl1s3kzhczzm96rcd2ppn27a97k2axgfh1zhvyf0s52d7m4w"))))
- (build-system cmake-build-system)
- (arguments `(#:tests? #f)) ; no tests
- (native-inputs '())
- ;; Extempore refuses to build on architectures other than x86_64
- (supported-systems '("x86_64-linux"))
- (home-page "https://github.com/extemporelang/portmidi/"))))
-
(define-public python-pyportmidi
(package
(name "python-pyportmidi")
@@ -2605,14 +2703,14 @@ from the command line.")
(define-public qtractor
(package
(name "qtractor")
- (version "0.9.16")
+ (version "0.9.17")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.sourceforge.net/qtractor/"
"qtractor-" version ".tar.gz"))
(sha256
(base32
- "1l19g7cvgb7gfjmaihnd899k5hhxyf4sz22380y830xjfs2fvqxc"))))
+ "0mcfli3wffz5a9pkpcxli03ysyrr53ij3569m81ck9h8pr7yng4b"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; no "check" target
@@ -2846,7 +2944,7 @@ event-based scripts for scrobbling, notifications, etc.")
(define-public picard
(package
(name "picard")
- (version "2.1.3")
+ (version "2.4.4")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2854,7 +2952,8 @@ event-based scripts for scrobbling, notifications, etc.")
"picard/picard-" version ".tar.gz"))
(sha256
(base32
- "19w5k3bf4886gdycxjds9nkjvir0gwy2r5cqkz0lbls4ikk4y14f"))))
+ "1c5l7i43jaj3s4wklc0cba6nn2x9cmpcggk4q4h9m1bci2xilsiy"))
+ (patches (search-patches "picard-fix-id3-rename-test.patch"))))
(build-system python-build-system)
(arguments
'(#:use-setuptools? #f
@@ -2873,7 +2972,8 @@ event-based scripts for scrobbling, notifications, etc.")
(assoc-ref inputs "chromaprint") "/bin/fpcalc")))
#t)))))
(native-inputs
- `(("gettext" ,gettext-minimal)))
+ `(("gettext" ,gettext-minimal)
+ ("python-dateutil" ,python-dateutil)))
(inputs
`(("chromaprint" ,chromaprint)
("python-discid" ,python-discid)
@@ -2889,16 +2989,18 @@ formats, looking up tracks through metadata and audio fingerprints.")
(define-public python-mutagen
(package
(name "python-mutagen")
- (version "1.38")
+ (version "1.45.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "mutagen" version))
(sha256
(base32
- "0rl7sxn1rcjl48fwga3dqf9f6pzspsny4ngxyf6pp337mrq0z693"))))
+ "1qdk6i8gyhbi1c4j5jmbfpac3q8sff2ysri1pnp7nb9wzcp615v3"))))
(build-system python-build-system)
(native-inputs
- `(("python-pytest" ,python-pytest)))
+ `(("python-pytest" ,python-pytest)
+ ("python-hypothesis" ,python-hypothesis)
+ ("python-flake8" ,python-flake8)))
(home-page "https://bitbucket.org/lazka/mutagen")
(synopsis "Read and write audio tags")
(description "Mutagen is a Python module to handle audio metadata. It
@@ -3085,6 +3187,13 @@ websites such as Libre.fm.")
(arguments
`(#:phases
(modify-phases %standard-phases
+ ;; Reported upstream: <https://github.com/beetbox/beets/issues/3771>.
+ ;; Disable the faulty test as the fix is unclear.
+ (add-after 'unpack 'disable-failing-tests
+ (lambda _
+ (substitute* "test/test_mediafile.py"
+ (("def test_read_audio_properties") "def _test_read_audio_properties"))
+ #t))
(add-after 'unpack 'set-HOME
(lambda _
(setenv "HOME" (string-append (getcwd) "/tmp"))
@@ -4085,7 +4194,7 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke
(define-public musescore
(package
(name "musescore")
- (version "3.5")
+ (version "3.5.1")
(source
(origin
(method git-fetch)
@@ -4094,7 +4203,7 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1s8767imzv9hclpzvvvsqb3iyiv4y2klr6agf95zwym2xafy8p26"))
+ (base32 "01jj6rbvbjxvmv6q13a22vfqp3id52a5mf2a1vzph2giz7pr313x"))
(modules '((guix build utils)))
(snippet
;; Un-bundle OpenSSL and remove unused libraries.
@@ -5005,7 +5114,7 @@ and reverb.")
(define-public lsp-plugins
(package
(name "lsp-plugins")
- (version "1.1.24")
+ (version "1.1.26")
(source
(origin
(method git-fetch)
@@ -5014,7 +5123,7 @@ and reverb.")
(commit (string-append "lsp-plugins-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0rzgzkg6wvhjcf664i16nz4v30drgv80s34bhdflcjzx2x7ix5zk"))))
+ (base32 "1apw8zh3a3il4smkjji6bih4vbsymj0hjs10fgkrd4nazqkjvgyd"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@@ -5025,18 +5134,18 @@ and reverb.")
(string-append "ETC_PATH=" (assoc-ref %outputs "out") "/etc"))
#:phases
(modify-phases %standard-phases
- (delete 'configure)) ; no configure
+ (delete 'configure)) ; no configure script
#:test-target "test"))
(inputs
- `(("cairo", cairo)
- ("hicolor-icon-theme", hicolor-icon-theme)
- ("jack", jack-1)
- ("ladspa", ladspa)
- ("libsndfile", libsndfile)
- ("lv2", lv2)
- ("mesa", mesa)))
+ `(("cairo" ,cairo)
+ ("hicolor-icon-theme" ,hicolor-icon-theme)
+ ("jack" ,jack-1)
+ ("ladspa" ,ladspa)
+ ("libsndfile" ,libsndfile)
+ ("lv2" ,lv2)
+ ("mesa" ,mesa)))
(native-inputs
- `(("pkg-config", pkg-config)))
+ `(("pkg-config" ,pkg-config)))
(synopsis "Audio plugin collection")
(description "LSP (Linux Studio Plugins) is a collection of audio
plugins available as LADSPA/LV2 plugins and as standalone JACK
@@ -5146,12 +5255,12 @@ as a whole to realisticly reproduce the features and flaws of the real deal.")
`(("pkg-config" ,pkg-config)
("xxd" ,xxd)))
(inputs
- `(("cairo", cairo)
- ("fftw", fftw)
- ("fftwf", fftwf)
- ("jack", jack-1)
- ("lv2", lv2)
- ("mesa", mesa)))
+ `(("cairo" ,cairo)
+ ("fftw" ,fftw)
+ ("fftwf" ,fftwf)
+ ("jack" ,jack-1)
+ ("lv2" ,lv2)
+ ("mesa" ,mesa)))
(synopsis "Realtime graphical spectrum analyzer")
(description "Spectacle is a real-time spectral analyzer using the
short-time Fourier transform, available as LV2 audio plugin and JACK client.")
@@ -5267,7 +5376,7 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
(define-public geonkick
(package
(name "geonkick")
- (version "2.3.7")
+ (version "2.3.8")
(source
(origin
(method git-fetch)
@@ -5276,8 +5385,7 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "1wdcbwiyy6i5agq5lffkyilyc8mv1cc4mp9h0nybn240vb2flqc2"))))
+ (base32 "07809yy2q7dd6fcp0yndlg1vw2ca2zisnsplb3xrxvzdvrqlw910"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no tests included
@@ -5445,12 +5553,12 @@ MIDI drums and comes as two separate drumkits: Black Pearl and Red Zeppelin.")
("freetype2" ,freetype)
("hicolor-icon-theme" ,hicolor-icon-theme)
("libxcursor" ,libxcursor)
- ("libxinerama", libxinerama)
- ("jack", jack-1)
+ ("libxinerama" ,libxinerama)
+ ("jack" ,jack-1)
("mesa" ,mesa)))
(native-inputs
`(("pkg-config" ,pkg-config)
- ("lv2", lv2)))
+ ("lv2" ,lv2)))
(home-page "https://tytel.org/helm/")
(synopsis "Polyphonic synth with lots of modulation")
(description "Helm is a cross-platform polyphonic synthesizer available standalone
@@ -5465,7 +5573,7 @@ and as an LV2 plugin.")
;; distros to make necessary changes to integrate the software into the
;; distribution.
(name "zrythm")
- (version "0.8.911")
+ (version "1.0.0-alpha.3.0.1")
(source
(origin
(method url-fetch)
@@ -5473,7 +5581,7 @@ and as an LV2 plugin.")
version ".tar.xz"))
(sha256
(base32
- "1xyp70sjc2k5pfdqbwqa988v86da0rmmyl8ry86bqv4ja80sc6g9"))))
+ "06025367x08y4g9grhcn35bk1dsrpgm04c8l8j50i3p49dl3s1n0"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
@@ -5485,15 +5593,8 @@ and as an LV2 plugin.")
"-Dgraphviz=enabled" ; for exporting routing graphs
"-Dguile=enabled" ; for Guile scripting
"-Djack=enabled" ; for JACK audio/MIDI backend
- "-Dsdl=enabled") ; for SDL audio backend (which uses ALSA)
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-xdg-open
- (lambda _
- (substitute* "src/utils/io.c"
- (("OPEN_DIR_CMD")
- (string-append "\"" (which "xdg-open") "\"")))
- #t)))))
+ "-Drtmidi=enabled" ; for RtMidi backend (ALSA sequencer)
+ "-Dsdl=enabled"))) ; for SDL audio backend (which uses ALSA)
(inputs
`(("alsa-lib" ,alsa-lib)
("jack" ,jack-1)
@@ -5775,9 +5876,9 @@ plugin and a standalone JACK application.")
"/lib/lv2")
"install"))))))
(inputs
- `(("lv2", lv2)))
+ `(("lv2" ,lv2)))
(native-inputs
- `(("pkg-config", pkg-config)))
+ `(("pkg-config" ,pkg-config)))
(synopsis "Audio plugin collection")
(description "TAP (Tom's Audio Processing) plugins is a collection of
audio effect plugins originally released as LADSPA plugins. This package
@@ -5833,9 +5934,9 @@ plugin and a standalone JACK application.")
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
- `(("jack", jack-1)
- ("lv2", lv2)
- ("mesa", mesa)))
+ `(("jack" ,jack-1)
+ ("lv2" ,lv2)
+ ("mesa" ,mesa)))
(synopsis "Waveshaper plugin")
(description "Wolf Shaper is a waveshaper plugin with a graph editor.
It is provided as an LV2 plugin and as a standalone Jack application.")
@@ -5915,12 +6016,12 @@ It is provided as an LV2 plugin and as a standalone Jack application.")
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
- `(("cairo", cairo)
- ("glu", glu)
- ("jack", jack-1)
- ("lv2", lv2)
- ("mesa", mesa)
- ("pango", pango)))
+ `(("cairo" ,cairo)
+ ("glu" ,glu)
+ ("jack" ,jack-1)
+ ("lv2" ,lv2)
+ ("mesa" ,mesa)
+ ("pango" ,pango)))
(synopsis "Audio plugin collection")
(description "Shiru plugins is a collection of audio plugins created
by Shiru, ported to LV2 by the Linux MAO project using the DISTRHO plugin