summaryrefslogtreecommitdiff
path: root/gnu/packages/music.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-06-08 14:46:24 +0200
committerLudovic Courtès <ludo@gnu.org>2022-06-08 14:46:24 +0200
commit8c3e9da13a3c92a7db308db8c0d81cb474ad7799 (patch)
tree88d06952aa5cc3a9c4991d9c43eb7950ff174fe1 /gnu/packages/music.scm
parent5439c04ebdb7b6405f5ea2446b375f1d155a8d95 (diff)
parent0c5299200ffcd16370f047b7ccb187c60f30da34 (diff)
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r--gnu/packages/music.scm623
1 files changed, 254 insertions, 369 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 25f2495c02..afd7ff40cf 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -13,7 +13,7 @@
;;; Copyright © 2017–2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2017, 2018, 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 nee <nee.git@hidamari.blue>
;;; Copyright © 2018, 2021 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
@@ -45,6 +45,9 @@
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021 Thomas Albers Raviola <thomas@thomaslabs.org>
;;; Copyright © 2022 Sughosha <sughosha@disroot.org>
+;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -153,6 +156,7 @@
#:use-module (gnu packages protobuf)
#:use-module (gnu packages pulseaudio) ;libsndfile
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-compression)
#:use-module (gnu packages python-web)
@@ -176,6 +180,7 @@
#:use-module (gnu packages vim) ;for 'xxd'
#:use-module (gnu packages web)
#:use-module (gnu packages webkit)
+ #:use-module (gnu packages wm)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
@@ -470,7 +475,7 @@ playing your music.")
(define-public strawberry
(package
(name "strawberry")
- (version "1.0.1")
+ (version "1.0.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -479,7 +484,7 @@ playing your music.")
(file-name (git-file-name name version))
(sha256
(base32
- "077dlj0kjcrj4g1h4w8finzykizaar67ik6yng6c8zjp2i5bam1j"))
+ "14fr2bm51k4n5byc9pwh3ba6v15s9jmqxigl1y9h00l7cvmfpbn1"))
(modules '((guix build utils)
(ice-9 regex)))
(snippet
@@ -705,7 +710,8 @@ background while you work.")
(arguments
'(#:tests? #f ; no check target
#:configure-flags
- (list "-DBUILD_SHARED_LIBS=ON"
+ (list "-DBUILD_ALLEGRO4=OFF"
+ "-DBUILD_SHARED_LIBS=ON"
"-DBUILD_EXAMPLES=OFF")))
(home-page "https://github.com/kode54/dumb")
(synopsis "Module audio renderer library")
@@ -729,7 +735,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
(arguments
(substitute-keyword-arguments (package-arguments dumb)
((#:configure-flags flags)
- `(cons "-DBUILD_ALLEGRO4=ON" ,flags))))
+ `(cons "-DBUILD_ALLEGRO4=ON" ,(delete "-DBUILD_ALLEGRO4=OFF" flags)))))
(inputs
(list allegro-4))))
@@ -1271,52 +1277,6 @@ standalone program which is able to download cover art, lyrics, photos,
biographies, reviews and more.")
(license license:lgpl3+)))
-(define-public gtklick
- (package
- (name "gtklick")
- (version "0.6.4")
- (source (origin
- (method url-fetch)
- (uri (string-append "http://das.nasophon.de/download/gtklick-"
- version ".tar.gz"))
- (sha256
- (base32
- "0dq1km6njnzsqdqyf6wzir9g733z0mc9vmxfg2383k3c2a2di6bp"))))
- (build-system python-build-system)
- (arguments
- `(#:tests? #f ; no tests
- #:python ,python-2
- #:phases
- (modify-phases %standard-phases
- (add-before 'build 'add-sitedirs
- ;; .pth files are not automatically interpreted unless the
- ;; directories containing them are added as "sites". The directories
- ;; are then added to those in the PYTHONPATH. This is required for
- ;; the operation of pygtk.
- (lambda _
- (substitute* "gtklick/gtklick.py"
- (("import pygtk")
- "import pygtk, site, sys
-for path in [path for path in sys.path if 'site-packages' in path]: site.addsitedir(path)"))))
- (add-after 'unpack 'inject-store-path-to-klick
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "gtklick/klick_backend.py"
- (("KLICK_PATH = 'klick'")
- (string-append "KLICK_PATH = '"
- (assoc-ref inputs "klick")
- "/bin/klick'")))
- #t)))))
- (inputs
- (list klick python2-pyliblo python2-pygtk))
- (native-inputs
- `(("gettext" ,gettext-minimal)))
- (home-page "http://das.nasophon.de/gtklick/")
- (synopsis "Simple metronome with an easy-to-use graphical interface")
- (description
- "Gtklick is a simple metronome with an easy-to-use graphical user
-interface. It is implemented as a frontend to @code{klick}.")
- (license license:gpl2+)))
-
(define-public lingot
(package
(name "lingot")
@@ -1749,20 +1709,20 @@ music theorist Paul Nauert's quantization grids or Q-Grids, for short.")
(define-public non-sequencer
;; The latest tagged release is three years old and uses a custom build
;; system, so we take the last commit.
- (let ((commit "5ae43bb27c42387052a73e5ffc5d33efb9d946a9")
- (revision "4"))
+ (let ((commit "257ec5951e7d4086344d98c99ebbe569f7c31211")
+ (revision "5"))
(package
(name "non-sequencer")
- (version (string-append "1.9.5-" revision "." (string-take commit 7)))
+ (version (git-version "1.9.5" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
- (url "git://git.tuxfamily.org/gitroot/non/non.git")
+ (url "https://github.com/falkTX/non/")
(commit commit)))
(sha256
(base32
- "1cljkkyi9dxqpqhx8y6l2ja4zjmlya26m26kqxml8gx08vyvddhx"))
- (file-name (string-append name "-" version "-checkout"))))
+ "0h6ycm3nbb5lvjvhymz5xlj8wqm3z3ggzn4ghmw6xyzd0l7c3m8b"))
+ (file-name (git-file-name name version))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ;no "check" target
@@ -1773,11 +1733,16 @@ music theorist Paul Nauert's quantization grids or Q-Grids, for short.")
(%current-system))))
'("--disable-sse")
'()))
- #:python ,python-2))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'setup-waf
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((waf (assoc-ref inputs "python-waf")))
+ (copy-file (string-append waf "/bin/waf") "waf")))))))
(inputs
(list jack-1 libsigc++-2 liblo ntk))
(native-inputs
- (list pkg-config))
+ (list python-waf pkg-config))
(home-page "https://non.tuxfamily.org/wiki/Non%20Sequencer")
(synopsis "Pattern-based MIDI sequencer")
(description
@@ -1788,6 +1753,31 @@ Sequencer happens on-line, in real-time. Music can be composed live, while the
transport is rolling.")
(license license:gpl2+))))
+(define-public new-session-manager
+ (package
+ (name "new-session-manager")
+ (version "1.6.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jackaudio/new-session-manager")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0ihngqbnc50izfy6x7nhgaah00byk8nl6n5smxbyb8fkhm2s8p21"))))
+ (build-system meson-build-system)
+ (native-inputs (list pkg-config))
+ (inputs (list fltk jack-2 liblo libx11))
+ (home-page "https://new-session-manager.jackaudio.org/")
+ (synopsis "Music production session management tool")
+ (description "New Session Manager (NSM) is a tool to assist music
+production by grouping standalone programs into sessions. It can be used
+create a session, or project, and add programs to it and then use commands to
+save, start/stop, hide/show all programs at once, or individually. The
+session can be interrupted and easily resumed at a later time.")
+ (license license:gpl3+)))
+
(define-public non-session-manager
(package (inherit non-sequencer)
(name "non-session-manager")
@@ -1799,14 +1789,15 @@ transport is rolling.")
(inputs
(list jack-1 liblo ntk))
(native-inputs
- (list pkg-config))
+ (list python-waf pkg-config))
(home-page "https://non.tuxfamily.org/nsm/")
(synopsis "Audio session management")
(description
"The Non Session Manager is an API and an implementation for audio
session management. NSM clients use a well-specified OSC protocol to
communicate with the session management daemon.")
- (license license:gpl2+)))
+ (license license:gpl2+)
+ (properties `((superseded . ,new-session-manager)))))
(define-public non-mixer
(package (inherit non-sequencer)
@@ -1817,9 +1808,9 @@ communicate with the session management daemon.")
`(cons "--project=mixer"
(delete "--project=sequencer" ,flags)))))
(inputs
- (list jack-1 liblo ladspa lrdf ntk))
+ (list jack-1 liblo ladspa lrdf ntk lv2 lilv))
(native-inputs
- (list pkg-config))
+ (list python-waf pkg-config))
(home-page "https://non.tuxfamily.org/wiki/Non%20Mixer")
(synopsis "Modular digital audio mixer")
(description
@@ -1841,7 +1832,7 @@ studio.")
(inputs
(list jack-1 liblo libsndfile ntk))
(native-inputs
- (list pkg-config))
+ (list python-waf pkg-config))
(home-page "https://non.tuxfamily.org/wiki/Non%20Timeline")
(synopsis "Modular digital audio timeline arranger")
(description
@@ -2019,74 +2010,85 @@ Key features include:
(define-public solfege
(package
(name "solfege")
- (version "3.22.2")
+ (version "3.23.5pre2")
(source (origin
- (method url-fetch)
- (uri (string-append
- "mirror://gnu/solfege/solfege-"
- version ".tar.xz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/solfege.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1w25rxdbj907nsx285k9nm480pvy12w3yknfh4n1dfv17cwy072i"))))
+ "1lmzp4kn0xh58yc8gzriz1i34g5qaa2xxrxzpmr7v9jyk19dqmcm"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; xmllint attempts to download DTD
- #:test-target "test"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-configuration
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "default.config"
- (("/usr/bin/aplay") "aplay")
- (("/usr/bin/timidity") "timidity")
- (("/usr/bin/mpg123") "mpg123")
- (("/usr/bin/ogg123") "ogg123"))
- #t))
- (add-before 'build 'patch-python-shebangs
- (lambda _
- ;; Two python scripts begin with a Unicode BOM, so patch-shebang
- ;; has no effect.
- (substitute* '("solfege/parsetree.py"
- "solfege/presetup.py")
- (("#!/usr/bin/python") (string-append "#!" (which "python"))))
- #t))
- (add-before 'build 'add-sitedirs
- ;; .pth files are not automatically interpreted unless the
- ;; directories containing them are added as "sites". The directories
- ;; are then added to those in the PYTHONPATH. This is required for
- ;; the operation of pygtk and pygobject.
- (lambda _
- (substitute* "run-solfege.py"
- (("import os")
- "import os, site
-for path in [path for path in sys.path if 'site-packages' in path]: site.addsitedir(path)"))
- #t))
- (add-before 'build 'adjust-config-file-prefix
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "run-solfege.py"
- (("prefix = os.path.*$")
- (string-append "prefix = " (assoc-ref outputs "out"))))
- #t))
- (add-after 'install 'wrap-program
- (lambda* (#:key inputs outputs #:allow-other-keys)
- ;; Make sure 'solfege' runs with the correct PYTHONPATH.
- (let* ((out (assoc-ref outputs "out"))
- (path (getenv "GUIX_PYTHONPATH")))
- (wrap-program (string-append out "/bin/solfege")
- `("GUIX_PYTHONPATH" ":" prefix (,path))))
- #t)))))
+ (list
+ #:tests? #f ;xmllint attempts to download DTD
+ #:test-target "test"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-version
+ (lambda _
+ (substitute* "autogen.sh"
+ (("python3 -c \"import tools.*create_versions_file.*")
+ (string-append "echo \"version_info = '"
+ #$version "' > solfege/_version.py\"\n")))
+ (substitute* "Makefile.in"
+ (("\\$\\(PYTHON) -c \"import tools.*create_versions_file.*")
+ "true\n"))
+ (substitute* "solfege/buildinfo.py.in"
+ (("from solfege._version import version_info")
+ "version_info = {'git_sha': 'N/A'}"))))
+ (add-after 'unpack 'fix-configuration
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "default.config"
+ (("/usr/bin/aplay") "aplay")
+ (("/usr/bin/timidity") "timidity")
+ (("/usr/bin/mpg123") "mpg123")
+ (("/usr/bin/ogg123") "ogg123"))))
+ (add-before 'build 'patch-python-shebangs
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Two python scripts begin with a Unicode BOM, so patch-shebang
+ ;; has no effect.
+ (substitute* '("solfege/parsetree.py"
+ "solfege/presetup.py")
+ (("#!/usr/bin/python")
+ (string-append "#!" search-input-file inputs "bin/python")))))
+ (add-before 'build 'add-sitedirs
+ ;; .pth files are not automatically interpreted unless the
+ ;; directories containing them are added as "sites". The
+ ;; directories are then added to those in the PYTHONPATH. This is
+ ;; required for the operation of pygtk and pygobject.
+ (lambda _
+ (substitute* "run-solfege.py"
+ (("import os")
+ "import os, site
+for path in [path for path in sys.path if 'site-packages' in path]: site.addsitedir(path)"))))
+ (add-before 'build 'adjust-config-file-prefix
+ (lambda _
+ (substitute* "run-solfege.py"
+ (("prefix = os.path.*$")
+ (string-append "prefix = " #$output)))))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Make sure 'solfege' runs with the correct PYTHONPATH.
+ (let ((path (getenv "GUIX_PYTHONPATH")))
+ (wrap-program (search-input-file outputs "bin/solfege")
+ `("GUIX_PYTHONPATH" ":" prefix (,path)))))))))
(inputs
- `(("python" ,python-2)
- ("pygtk" ,python2-pygtk)
- ("gettext" ,gettext-minimal)
- ("gtk" ,gtk+)
- ("lilypond" ,lilypond)))
+ (list python-wrapper
+ python-pygobject
+ gettext-minimal
+ gtk+
+ lilypond))
(native-inputs
- (list pkg-config
+ (list autoconf
+ automake
+ pkg-config
txt2man
- libxml2 ; for tests
+ libxml2 ; for tests
ghostscript
- texinfo-5))
+ texinfo))
(home-page "https://www.gnu.org/software/solfege/")
(synopsis "Ear training")
(description
@@ -2279,7 +2281,7 @@ perform creative live mixes with digital music files.")
(define-public synthv1
(package
(name "synthv1")
- (version "0.9.24")
+ (version "0.9.25")
(source (origin
(method url-fetch)
(uri
@@ -2287,7 +2289,7 @@ perform creative live mixes with digital music files.")
"/synthv1-" version ".tar.gz"))
(sha256
(base32
- "0m9xpl7kq0zlain8598q5cqrh1c7ima2w8jrpq7ds8vh97r7p1bl"))))
+ "1i16036f9wm52c5pxkllq7ir749jcknbh35i9wcxd5n88p6mzw02"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
@@ -2295,7 +2297,7 @@ perform creative live mixes with digital music files.")
(list jack-1
lv2
alsa-lib
- non-session-manager
+ new-session-manager
liblo
qtbase-5))
(native-inputs
@@ -2310,7 +2312,7 @@ oscillators and stereo effects.")
(define-public drumkv1
(package
(name "drumkv1")
- (version "0.9.24")
+ (version "0.9.25")
(source (origin
(method url-fetch)
(uri
@@ -2318,7 +2320,7 @@ oscillators and stereo effects.")
"/drumkv1-" version ".tar.gz"))
(sha256
(base32
- "04k0mkvlz9ka0mlck4g7c86s1rhb9pkhml6j6n9b5hwlbq8a9mxk"))))
+ "0p50b4k4zldagiwxs0micmdbqib46ysipdj8lkxqdv0pysmd72fc"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
@@ -2327,7 +2329,7 @@ oscillators and stereo effects.")
lv2
libsndfile
alsa-lib
- non-session-manager
+ new-session-manager
liblo
qtbase-5))
(native-inputs
@@ -2342,7 +2344,7 @@ effects.")
(define-public samplv1
(package
(name "samplv1")
- (version "0.9.24")
+ (version "0.9.25")
(source (origin
(method url-fetch)
(uri
@@ -2350,7 +2352,7 @@ effects.")
"/samplv1-" version ".tar.gz"))
(sha256
(base32
- "1c3ksd02dfqvzc3zk4x282b6gxr1l4ya9c4l04dcn55mrymgn2zz"))))
+ "0d05b03knrwh1zr4p0kcyn58scy6a392f0xxm78cqf0gikd3bw5c"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
@@ -2359,7 +2361,7 @@ effects.")
lv2
libsndfile
alsa-lib
- non-session-manager
+ new-session-manager
liblo
qtbase-5))
(native-inputs
@@ -2374,7 +2376,7 @@ effects.")
(define-public padthv1
(package
(name "padthv1")
- (version "0.9.24")
+ (version "0.9.25")
(source (origin
(method url-fetch)
(uri
@@ -2382,7 +2384,7 @@ effects.")
"/padthv1-" version ".tar.gz"))
(sha256
(base32
- "0p3qp2lzhmj8i17bcqzsi0782nz7s90hx3s8vax6bxl4mqxsvnxb"))))
+ "11fa2794g7dqsiw674wr2m4k0xdw89imqwa8mgms0igskxxbvjka"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
@@ -2390,7 +2392,7 @@ effects.")
(list jack-1
lv2
alsa-lib
- non-session-manager
+ new-session-manager
liblo
fftwf
qtbase-5))
@@ -2507,48 +2509,6 @@ modification devices that brought world-wide fame to the names and products of
Laurens Hammond and Don Leslie.")
(license license:gpl2+)))
-(define-public beast
- (package
- (name "beast")
- (version "0.10.0")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://testbit.eu/pub/dists/beast/beast-"
- version ".tar.xz"))
- (sha256
- (base32
- "1jzzmfwssklzw8fvvil04n8csc0zm99fnd9p2xa7c0xchg37lvhn"))))
- (build-system gnu-build-system)
- (arguments
- '(#:parallel-build? #f)) ; Race conditions cause build failures
- (inputs
- `(("rapicorn" ,rapicorn)
- ("guile" ,guile-1.8)
- ("python" ,python-2)
- ("libgnomecanvas" ,libgnomecanvas)
- ("libogg" ,libogg)
- ("libmad" ,libmad)
- ("flac" ,flac)
- ("alsa-lib" ,alsa-lib)
- ("libvorbis" ,libvorbis)
- ("gettext" ,gettext-minimal)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("glib:bin" ,glib "bin")
- ("cython" ,python2-cython)
- ("perl" ,perl)
- ("perl-xml-parser" ,perl-xml-parser)))
- (home-page "https://testbit.eu/wiki/Beast_Home")
- (synopsis "Music composition and modular synthesis environment")
- (description
- "Beast is a music composition and modular synthesis application. It
-supports a wide range of standards in the field, such as MIDI, various audio
-file formats and LADSPA modules. It allows for multitrack editing, real-time
-synthesis, 32bit audio rendering, precise timing down to sample granularity,
-on-demand and partial loading of wave files, on the fly decoding, stereo
-mixing, FFT scopes, MIDI automation and full scriptability in Scheme.")
- (license license:gpl3+)))
-
(define-public bristol
(package
(name "bristol")
@@ -2605,7 +2565,7 @@ is subjective.")
(define-public tuxguitar
(package
(name "tuxguitar")
- (version "1.5.4")
+ (version "1.5.5")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2613,7 +2573,7 @@ is subjective.")
version "/tuxguitar-" version "-src.tar.gz"))
(sha256
(base32
- "0fjhf56lhlhm84v08917xp4yw8y6d0qajm4qiy1gfp8dm74whwwg"))))
+ "1613aiq3x48l2nx1zxqh1cif6i5izkixfld8c9wri9nfv405b19f"))))
(build-system ant-build-system)
(arguments
`(#:build-target "build"
@@ -2651,8 +2611,7 @@ is subjective.")
"TuxGuitar-gm-utils"
"TuxGuitar-alsa"
"TuxGuitar-midi"
- "TuxGuitar-midi-ui"))
- #t)))
+ "TuxGuitar-midi-ui")))))
(add-after 'build 'build-jni
(lambda _
(setenv "CC" "gcc")
@@ -2711,8 +2670,7 @@ is subjective.")
" -Djava.library.path=" out "/lib"
" org.herac.tuxguitar.app.TGMainSingleton"
" \"$1\" \"$2\"")))))
- (chmod (string-append bin "/tuxguitar") #o555)
- #t))))))
+ (chmod (string-append bin "/tuxguitar") #o555)))))))
(inputs
(list alsa-lib java-swt))
(home-page "http://tuxguitar.com.ar/")
@@ -3324,14 +3282,14 @@ from the command line.")
(define-public qtractor
(package
(name "qtractor")
- (version "0.9.25")
+ (version "0.9.26")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.sourceforge.net/qtractor/"
"qtractor-" version ".tar.gz"))
(sha256
(base32
- "0x99yjabznr2pl867j3h9zdsjzkxzxm2c0xk1xwk50gfp8gwg9bh"))))
+ "02r4dhhbn3dzhqi5cnm2vwimqk10bdlpy233n4a3590qg4krnqkd"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no "check" target
@@ -3445,11 +3403,11 @@ analogue-like user interface.")
(define-public mod-host
;; The last release was in 2014 but since then hundreds of commits have
;; been made.
- (let ((commit "1726ad06b11323da7e1aaed690ff8aef91f702b5")
- (revision "3"))
+ (let ((commit "cdd30ddbd2cc916be8a0364275071c3d8335b3a7")
+ (revision "4"))
(package
(name "mod-host")
- (version (string-append "0.10.6-" revision "." (string-take commit 9)))
+ (version (git-version "0.10.6" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3457,34 +3415,33 @@ analogue-like user interface.")
(commit commit)))
(sha256
(base32
- "1nrd37c35w6z6ldczgrwmmd9hx1n3zyvcjcgb3mi4cygqdanvspv"))
- (file-name (string-append name "-" version "-checkout"))))
+ "1xnflvcyj071gn9nhv5dynd0v85nq99sz1wn3adlj43l5m4fbx3a"))
+ (file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; no tests included
- #:make-flags
- (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
- "CC=gcc")
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (add-after 'unpack 'fix-jack-installation-directory
- (lambda _
- ;; Do not attempt to install files to output of "jack" package.
- (substitute* "Makefile"
- (("\\$\\(shell pkg-config --variable=libdir jack\\)")
- "lib"))
- #t)))))
+ (list
+ #:tests? #f ; no tests included
+ #:make-flags
+ #~(list (string-append "PREFIX=" #$output) "CC=gcc")
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'fix-jack-installation-directory
+ (lambda _
+ ;; Do not attempt to install files to output of "jack" package.
+ (substitute* "Makefile"
+ (("\\$\\(shell pkg-config --variable=libdir jack\\)")
+ "lib")))))))
(inputs
(list lilv
fftw
fftwf
lv2
- jack-1
+ jack-2
readline))
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("python" ,python-2)))
+ (list pkg-config
+ python-wrapper))
(home-page "https://github.com/moddevices/mod-host")
(synopsis "LV2 host for Jack controllable via socket or command line")
(description "mod-host is an LV2 plugin host for JACK, controllable via
@@ -3675,9 +3632,6 @@ MusicBrainz database.")
;; 'musicbrainzngs/compat.py' is ISC licensed.
(license (list license:bsd-2 license:isc))))
-(define-public python2-musicbrainzngs
- (package-with-python2 python-musicbrainzngs))
-
(define-public python-isrcsubmit
(package
(name "python-isrcsubmit")
@@ -3699,39 +3653,6 @@ Standard Recording Code} (ISRCs) from audio CDs and submit them to
@url{https://musicbrainz.org/, MusicBrainz}.")
(license license:gpl3+)))
-(define-public python2-pyechonest
- (package
- (name "python2-pyechonest")
- (version "9.0.0")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "pyechonest" version))
- (sha256
- (base32
- "1584nira3rkiman9dm81kdshihmkj21s8navndz2l8spnjwb790x"))))
- (build-system python-build-system)
- (arguments
- `(;; Python 3 is not supported:
- ;; https://github.com/echonest/pyechonest/issues/42
- #:python ,python-2))
- (home-page "https://github.com/echonest/pyechonest")
- (synopsis "Python interface to The Echo Nest APIs")
- (description "Pyechonest is a Python library for the Echo Nest API. With
-Pyechonest you have Python access to the entire set of API methods including:
-
-@enumerate
-@item artist - search for artists by name, description, or attribute, and get
-back detailed information about any artist including audio, similar artists,
-blogs, familiarity, hotttnesss, news, reviews, urls and video.
-@item song - search songs by artist, title, description, or attribute (tempo,
-duration, etc) and get detailed information back about each song, such as
-hotttnesss, audio_summary, or tracks.
-@item track - upload a track to the Echo Nest and receive summary information
-about the track including key, duration, mode, tempo, time signature along with
-detailed track info including timbre, pitch, rhythm and loudness information.
-@end enumerate\n")
- (license license:bsd-3)))
-
(define-public python-pylast
(package
(name "python-pylast")
@@ -4478,91 +4399,6 @@ filters, crossovers, simple gain plugins without zipper noise, switch box
plugins, a switch trigger, a toggle switch, and a peakmeter.")
(license license:gpl2+))))
-(define-public ingen
- (let ((commit "cc4a4db33f4d126a07a4a498e053c5fb9a883be3")
- (revision "2"))
- (package
- (name "ingen")
- (version (string-append "0.0.0-" revision "."
- (string-take commit 9)))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.drobilla.net/ingen.git")
- (commit commit)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "1wg47vjw9djn99gbnsl2bcwj4xhdid61m4wrbn2nlp797flj91ic"))))
- (build-system waf-build-system)
- (arguments
- `(#:python ,python-2
- #:tests? #f ; no "check" target
- #:configure-flags (list "--no-webkit")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-wscript
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* "wscript"
- ;; FIXME: Our version of lv2specgen.py does not behave as
- ;; expected. Maybe this requires a development version of
- ;; LV2.
- (("lv2specgen.py") "touch ingen.lv2/ingen.html; echo")
- ;; Add libraries to RUNPATH.
- (("^(.+)target.*= 'src/ingen/ingen'," line prefix)
- (string-append prefix
- "linkflags=[\"-Wl,-rpath="
- out "/lib" "\"]," line)))
- (substitute* '("src/wscript"
- "src/server/wscript")
- ;; Add libraries to RUNPATH.
- (("bld.env.PTHREAD_LINKFLAGS" line)
- (string-append line
- " + [\"-Wl,-rpath=" out "/lib" "\"]")))
- (substitute* "src/client/wscript"
- ;; Add libraries to RUNPATH.
- (("^(.+)target.*= 'ingen_client'," line prefix)
- (string-append prefix
- "linkflags=[\"-Wl,-rpath="
- out "/lib" "\"]," line)))
- (substitute* "src/gui/wscript"
- ;; Add libraries to RUNPATH.
- (("^(.+)target.* = 'ingen_gui.*" line prefix)
- (string-append prefix
- "linkflags=[\"-Wl,-rpath="
- out "/lib" "\"]," line))))
- #t)))))
- (inputs
- (list boost
- python-rdflib
- python
- jack-1
- lv2
- lilv
- raul-devel
- ganv
- suil
- serd
- sord
- sratom
- gtkmm-2))
- (native-inputs
- (list pkg-config python-pygments))
- (home-page "https://drobilla.net/software/ingen")
- (synopsis "Modular audio processing system")
- (description "Ingen is a modular audio processing system for JACK and
-LV2 based systems. Ingen is built around LV2 technology and a strict
-separation of engine from user interface. The engine is controlled
-exclusively through a protocol, and can execute as a headless process, with an
-in-process GUI, or as an LV2 plugin. The GUI can run as a program which
-communicates over a Unix or TCP/IP socket, or as an embeddable LV2 GUI which
-communicates via LV2 ports. Any saved Ingen graph can be loaded as an LV2
-plugin on any system where Ingen is installed. This allows users to visually
-develop custom plugins for use in other applications without programming.")
- (license license:agpl3+))))
-
(define-public qmidiarp
(package
(name "qmidiarp")
@@ -5008,7 +4844,7 @@ studio.")
(define-public gsequencer
(package
(name "gsequencer")
- (version "3.14.5")
+ (version "3.18.2")
(source
(origin
(method git-fetch)
@@ -5017,7 +4853,7 @@ studio.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "18pfv4w30nng1p0vgmrnkfm38522iq1x1bj8iz4qfiffiv56dsnz"))))
+ (base32 "1lkn7rfrjvmds62i69igcgmic2snscgb9f6gdg5nzyfkis1fq5iz"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:phases
@@ -5672,45 +5508,6 @@ with error and volume history, and advanced features.")
;; are under LGPL2.1.
(license (list license:gpl2+ license:lgpl2.1))))
-(define-public mloop
- (let ((commit "adebff98b0b4dc5872a03acb82e89c77cb29c127")
- (revision "0"))
- (package
- (name "mloop")
- (version (git-version "0.0.1" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "http://git.fuzzle.org/mloop")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "175gxvg5slq0bllcx1c381rjlq3xpxww8c3kpiw5i2kfr4m52myz"))))
- (build-system waf-build-system)
- (arguments
- `(#:python ,python-2
- #:tests? #f)) ; no "check" target
- (inputs
- (list jack-1 ncurses))
- (native-inputs
- (list pkg-config))
- (home-page "https://fuzzle.org/~petern/mloop.html")
- (synopsis "Live MIDI looper")
- (description "mloop is a live MIDI looping system, using jack-midi.
-Loops are recorded, optionally with beat quantization, and can then be played
-back, either once or looping. A 'note cache' system is implemented to
-remember which notes are pressed and their velocities. This allows for a loop
-to start off with the currently pressed notes, making seamless loops much
-easier to perform. Features include:
-
-@itemize
-@item Quantisation; end a loop on a beat exactly.
-@item Delayed recording; wait for a MIDI event before starting a loop record.
-@item Adjust tempo; Playback speed of loops can be adjusted on the fly.
-@end itemize\n")
- (license license:gpl2))))
-
(define-public pragha
(package
(name "pragha")
@@ -6881,3 +6678,91 @@ choice.")
streaming audio server.")
(home-page "https://musikcube.com/")
(license license:bsd-3)))
+
+(define-public quodlibet
+ (package
+ (name "quodlibet")
+ (version "4.5.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/quodlibet/quodlibet")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1i5k93k3bfp7hpcwkbr865mbj9jam3jv2a5k1bazcyp4f5vdrb0v"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:modules '((guix build python-build-system)
+ ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+ (guix build utils))
+ #:imported-modules `((guix build python-build-system)
+ ,@%glib-or-gtk-build-system-modules)
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'pre-check
+ (lambda _
+ (setenv "HOME" (getcwd))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (invoke "xvfb-run" "pytest"
+ ;; needs network
+ "--ignore=tests/test_browsers_iradio.py"
+ ;; broken upstream
+ "--disable-warnings"
+ "--ignore=tests/quality")
+ (format #t "test suite not run~%"))))
+ (add-after 'install 'glib-or-gtk-wrap ; ensure icons loaded
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
+ (add-after 'install 'wrap-extra-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
+ (gst-plugins-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
+ (for-each
+ (lambda (prog)
+ (wrap-program (string-append out "/bin/" prog)
+ `("GI_TYPELIB_PATH" ":" = (,gi-typelib-path))
+ `("GST_PLUGIN_SYSTEM_PATH" ":" suffix (,gst-plugins-path))))
+ '("exfalso" "quodlibet"))))))))
+ (native-inputs (list xvfb-run gettext-minimal))
+ (inputs
+ (list adwaita-icon-theme
+ bash-minimal
+ glib
+ gsettings-desktop-schemas
+ gst-plugins-bad
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-ugly
+ gstreamer
+ gtk+
+ gtksourceview ; undo, redo, multiline text fields
+ hicolor-icon-theme
+ keybinder-3.0 ; keybindings outside of GNOME
+ librsvg
+ libsoup-minimal-2
+ python
+ python-cheetah
+ python-dbus
+ python-feedparser
+ python-gst
+ python-iniconfig
+ python-musicbrainzngs
+ python-mutagen
+ python-pycairo
+ python-pygobject
+ python-pyinotify
+ python-pytest
+ python-sgmllib3k
+ python-toml))
+ (home-page "https://github.com/quodlibet/quodlibet")
+ (synopsis "Music manager and player")
+ (description "Quod Libet provides several ways to browse and view your
+local music library, along with flexible search capabilities. It includes
+a tag editor, which can also be invoked as a standalone program, and further
+supports streaming audio and feeds (such as podcasts).")
+ (license license:gpl2+)))