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.scm228
1 files changed, 130 insertions, 98 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 77e952d383..99de032825 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -10,7 +10,7 @@
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017 nikita <nikita@n0.is>
;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org>
-;;; Copyright © 2017–2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017–2024 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–2022 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -34,7 +34,7 @@
;;; Copyright © 2019 Riku Viitanen <riku.viitanen0@gmail.com>
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
-;;; Copyright © 2021, 2022, 2023 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021, 2022, 2023, 2024 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
;;; Copyright © 2021 Frank Pursel <frank.pursel@gmail.com>
@@ -52,8 +52,9 @@
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2023 Antero Mejr <antero@mailbox.org>
-;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2023, 2024 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -233,6 +234,13 @@
(string-append " "
#$(cc-for-target) " -o")))
(chdir "src")))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs #:allow-other-keys)
+ (wrap-program (string-append #$output "/bin/alsa-scarlett-gui")
+ ;; For GtkFileChooserDialog.
+ `("GSETTINGS_SCHEMA_DIR" =
+ (,(string-append #$(this-package-input "gtk")
+ "/share/glib-2.0/schemas"))))))
(delete 'configure))))
(inputs
(list alsa-lib glib gtk))
@@ -860,7 +868,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
(define-public hydrogen
(package
(name "hydrogen")
- (version "1.2.0")
+ (version "1.2.3")
(source
(origin
(method git-fetch)
@@ -869,7 +877,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0v4ir1my8zndw5rvz6jr42ysprwycgxrlsc53070y3620n699nha"))))
+ (base32 "0qb16yn3igs95silvngwy5mjwlzsyz5axwbd3lz6pjhwbf81rn7d"))))
(build-system cmake-build-system)
(arguments
`(#:test-target "tests"
@@ -1501,7 +1509,7 @@ and auto-mapping slices to MIDI note numbers.")
(define-public lilypond
(package
(name "lilypond")
- (version "2.24.1")
+ (version "2.24.3")
(source
(origin
(method url-fetch)
@@ -1509,7 +1517,7 @@ and auto-mapping slices to MIDI note numbers.")
"v" (version-major+minor version) "/"
"lilypond-" version ".tar.gz"))
(sha256
- (base32 "028m31fjcfgsq3f8ahz4hp2r36shsvkq1fjjibqdcp2aas3r1ifm"))))
+ (base32 "1gj4xjc9842wnqvqj08lkykpz2r72mqqw3x1fk6s9xbsxxv5y06z"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ;out-test/collated-files.html fails
@@ -1673,15 +1681,7 @@ typographic detail of symbols on the page.")
(sha256
(base32
"0wma9vzn42h1rhbzh2dwjsrzjhsi1yqdgn6wx1dfk78vaki6prd8"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "python" "-m" "pytest" ".")
- #t))))))
+ (build-system pyproject-build-system)
(native-inputs
(list lilypond
python-black
@@ -1691,7 +1691,8 @@ typographic detail of symbols on the page.")
python-mypy
python-pytest
python-pytest-cov
- python-pytest-helpers-namespace))
+ python-pytest-helpers-namespace
+ python-sphinx-autodoc-typehints))
(propagated-inputs
(list abjad))
(home-page "https://abjad.github.io")
@@ -1715,15 +1716,7 @@ and manipulating rhythms such as accelerandi, taleas, and more.")
(sha256
(base32
"05hr2lr6myzi493k8vc19cqzraxxnbdwlckwbnras19l5g5ns38x"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "python" "-m" "pytest" "tests")
- #t))))))
+ (build-system pyproject-build-system)
(native-inputs
(list lilypond
python-black
@@ -1733,7 +1726,8 @@ and manipulating rhythms such as accelerandi, taleas, and more.")
python-mypy
python-pytest
python-pytest-cov
- python-pytest-helpers-namespace))
+ python-pytest-helpers-namespace
+ python-sphinx-autodoc-typehints))
(propagated-inputs
(list abjad))
(home-page "https://abjad.github.io")
@@ -1788,7 +1782,7 @@ music theorist Paul Nauert's quantization grids or Q-Grids, for short.")
python-pytest-cov
python-pytest-helpers-namespace))
(propagated-inputs
- (list abjad jupyter))
+ (list abjad jupyter python-sphinx-autodoc-typehints))
(home-page "https://abjad.github.io")
(synopsis "Abjad IPython Extension")
(description
@@ -3047,38 +3041,63 @@ main purpose is to liberate raw audio rendering from audio and MIDI drivers.")
using a system-independent interface.")
(license license:expat)))
-(define-public python-pyportmidi
+(define-public portmidi-2
(package
- (name "python-pyportmidi")
- (version (package-version portmidi))
- (source (package-source portmidi))
- (build-system python-build-system)
+ (name "portmidi")
+ (version "2.0.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PortMidi/portmidi")
+ (commit "b808babecdc5d05205467dab5c1006c5ac0fdfd4")))
+ (sha256
+ (base32 "05a3dfpgbpcg08p8a3acjrrd1qy5hvvray2kz2asygy1vf3mx85s"))
+ (file-name (git-file-name name version))))
+ (build-system cmake-build-system)
(arguments
- `(#:tests? #f ; no tests included
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'enter-dir
- (lambda _ (chdir "pm_python") #t))
- (add-after 'enter-dir 'fix-setup.py
- (lambda _
- (substitute* "setup.py"
- ;; Use Python 3 syntax
- (("print (\".*\")" _ text)
- (string-append "print(" text ")\n"))
- ;; TODO.txt and CHANGES.txt don't exist
- (("CHANGES =.*") "CHANGES = \"\"\n")
- (("TODO =.*") "TODO = \"\"\n"))
- #t)))))
- (inputs
- (list portmidi alsa-lib))
- (native-inputs
- (list python-cython unzip))
- (home-page "https://portmedia.sourceforge.net/portmidi/")
- (synopsis "Python bindings to PortMidi")
+ `(#:tests? #f ;Tests are interactive and can be found in the
+ #:configure-flags ;pm_tests/ directory of the build tree.
+ (list "-DBUILD_PORTMIDI_TESTS=On")
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'fix-version
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("2.0.3")
+ (version))))))))
+ (inputs (list alsa-lib))
+ (native-inputs (list unzip))
+ (home-page "https://github.com/PortMidi/")
+ (synopsis "Library for MIDI I/O")
(description
- "This package provides Python bindings to the PortMidi library.")
+ "PortMidi is a library supporting real-time input and output of MIDI data
+using a system-independent interface.")
(license license:expat)))
+(define-public python-pyportmidi
+ (let ((commit "d9e5ee00b208b09618fa0d4a5bbce3c9c077b386")
+ (revision "0"))
+ (package
+ (name "python-pyportmidi")
+ (version (git-version "0.0.7" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PortMidi/pm_python")
+ (commit commit)))
+ (sha256
+ (base32 "1jvp9na8d1hw46w9ybhkimbavfb3ysw7hp30cbk6dj40k5y5vgvz"))
+ (file-name (git-file-name name version))))
+ (build-system python-build-system)
+ (inputs (list portmidi-2 alsa-lib))
+ (native-inputs (list python-cython))
+ (home-page "https://github.com/PortMidi")
+ (synopsis "Python bindings to PortMidi")
+ (description
+ "This package provides Python bindings to the PortMidi library.")
+ (license license:expat))))
+
(define-public frescobaldi
(package
(name "frescobaldi")
@@ -3087,32 +3106,39 @@ using a system-independent interface.")
(origin
(method url-fetch)
(uri (string-append
- "https://github.com/wbsoft/frescobaldi/releases/download/v"
+ "https://github.com/frescobaldi/frescobaldi/releases/download/v"
version "/frescobaldi-" version ".tar.gz"))
(sha256
(base32 "1n60gfnf6x0l1bac088g9adzx0lskbl9knd4y1ynr3y0zcs0kfcz"))))
(build-system python-build-system)
(arguments
(list
- #:tests? #f ;no tests included
- #:phases
- #~(modify-phases %standard-phases
- (add-before 'build 'generate-translations
- (lambda _
- (invoke "make" "-C" "i18n")))
- (add-before 'build 'generate-metadata
- (lambda _
- (invoke "make" "-C" "linux"))))))
- (inputs
- (list lilypond
- poppler
- portmidi
- python-ly
- python-poppler-qt5
- python-pyportmidi
- python-pyqt
- python-sip
- qpageview))
+ #:tests? #f ;no tests included
+ #:phases #~(modify-phases %standard-phases
+ (add-before 'build 'generate-translations
+ (lambda _
+ (invoke "make" "-C" "i18n")))
+ (add-before 'build 'generate-metadata
+ (lambda _
+ (invoke "make" "-C" "linux")))
+ (add-after 'install 'wrap-executable
+ (lambda _
+ ;; Ensure that icons are found at runtime.
+ (wrap-program (string-append #$output
+ "/bin/frescobaldi")
+ `("QT_PLUGIN_PATH" prefix
+ ,(list (getenv "QT_PLUGIN_PATH")))))))))
+ (inputs (list bash-minimal
+ lilypond
+ poppler
+ portmidi-2
+ python-ly
+ python-poppler-qt5
+ python-pyportmidi
+ python-pyqt
+ python-sip
+ qpageview
+ qtsvg-5))
(home-page "https://www.frescobaldi.org/")
(synopsis "LilyPond sheet music text editor")
(description
@@ -3821,7 +3847,7 @@ event-based scripts for scrobbling, notifications, etc.")
(define-public picard
(package
(name "picard")
- (version "2.10")
+ (version "2.11")
(source (origin
(method url-fetch)
(uri (string-append
@@ -3829,7 +3855,7 @@ event-based scripts for scrobbling, notifications, etc.")
"picard/picard-" version ".tar.gz"))
(sha256
(base32
- "0f9rvif9m83jhal9n9x8kks17c0cgcipi1hjqmki7a296lz175ss"))))
+ "0ppq2n9jf8c8r8p9dkpcyipd2psr9hg0zbd5hcdsicili25336j4"))))
(build-system python-build-system)
(arguments
(list
@@ -5022,7 +5048,7 @@ includes LV2 plugins and a JACK standalone client.")
(define-public musescore
(package
(name "musescore")
- (version "4.1.1")
+ (version "4.2.1")
(source
(origin
(method git-fetch)
@@ -5031,7 +5057,7 @@ includes LV2 plugins and a JACK standalone client.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "12h26k9qnsq027gdpch579nchwrqva1ymwm2fj5xmlh0aayrwy4d"))
+ (base32 "0rc5ma1k0cjllfl86apbyj61sh0691lsmqnvqicyn0zi53z8w9v0"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -5099,7 +5125,7 @@ sample library.")
(define-public muse-sequencer
(package
(name "muse-sequencer")
- (version "4.1.0")
+ (version "4.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -5108,7 +5134,7 @@ sample library.")
(file-name (git-file-name name version))
(sha256
(base32
- "1iihjivpkvmdfqf20kcl9k0s1iwlv9p5vpna7c58lbw3573fiyr4"))))
+ "13b9xx8x8yr58r8765xn770kfn3k2whmvmpl2657nc19max9n61g"))))
(build-system qt-build-system)
(arguments
(list
@@ -5148,7 +5174,8 @@ sample library.")
rubberband
sord))
(native-inputs
- (list perl
+ (list extra-cmake-modules
+ perl
pkg-config
python-wrapper
qttools-5))
@@ -5164,7 +5191,7 @@ studio.")
(define-public gsequencer
(package
(name "gsequencer")
- (version "6.1.3")
+ (version "6.5.2")
(source
(origin
(method git-fetch)
@@ -5173,7 +5200,7 @@ studio.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1h5zw9047qmhhc6n4ny11id1h1p8322wadl7p8j65bwrz8kbfx99"))))
+ (base32 "16rkwb60v7igixligkcm86l8l8vab1bhmwg8m7ihb051ryqixa3i"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:phases
@@ -5259,7 +5286,7 @@ specification and header.")
(define-public rosegarden
(package
(name "rosegarden")
- (version "23.06")
+ (version "23.12")
(source
(origin
(method url-fetch)
@@ -5267,7 +5294,7 @@ specification and header.")
(version-major+minor version) "/"
"rosegarden-" version ".tar.xz"))
(sha256
- (base32 "1k3j5p6lx3w6pbsh95xiyfj8g8ysmvd18v0wmx7kdb3vyj5mfd0z"))))
+ (base32 "0clkzrs931dypvqcn5hzx2v3bq9gc439g71phahgwkh4c1jfcmrz"))))
(build-system cmake-build-system)
(arguments
(list
@@ -7221,22 +7248,27 @@ It is provided as an LV2 plugin and as a standalone Jack application.")
(uri (git-reference
(url "https://github.com/jackaudio/a2jmidid")
(commit version)))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Fix build for for riscv64-linux, same as:
+ ;; https://github.com/jackaudio/a2jmidid/pull/18
+ '(substitute* "sigsegv.c"
+ (("!defined[(]__aarch64__[)]")
+ "!defined(__arch64__) && !defined(__riscv)")))
(sha256
(base32 "1x6rcl3f4nklnx4p5jln9a7fpj9y7agjxs9rw7cccmwnski7pnsq"))
(file-name (git-file-name name version))))
(arguments
- `(#:tests? #f ; No tests.
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'wrap-programs
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin/")))
- (substitute* (string-append bin "a2j")
- (("a2j_control") (string-append bin "a2j_control")))
- (wrap-program (string-append bin "a2j_control")
- `("PYTHONPATH" prefix (,(getenv "GUIX_PYTHONPATH"))))
- #t))))))
+ (list #:tests? #f ; No tests.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((bin (string-append #$output "/bin/")))
+ (substitute* (string-append bin "a2j")
+ (("a2j_control") (string-append bin "a2j_control")))
+ (wrap-program (string-append bin "a2j_control")
+ `("PYTHONPATH" prefix (,(getenv "GUIX_PYTHONPATH"))))))))))
(build-system meson-build-system)
(inputs
(list alsa-lib