diff options
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r-- | gnu/packages/music.scm | 255 |
1 files changed, 177 insertions, 78 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 99de032825..a4feada47d 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2019 Eric Bavier <bavier@member.fsf.org> -;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015-2024 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2016 Al McElrath <hello@yrns.org> ;;; Copyright © 2016, 2017, 2019, 2021-2023 Efraim Flashner <efraim@flashner.co.il> @@ -135,6 +135,7 @@ #:use-module (gnu packages gnunet) #:use-module (gnu packages gnupg) #:use-module (gnu packages golang) + #:use-module (gnu packages golang-xyz) #:use-module (gnu packages gpodder) #:use-module (gnu packages graphics) #:use-module (gnu packages graphviz) @@ -208,7 +209,7 @@ (define-public alsa-scarlett-gui (package (name "alsa-scarlett-gui") - (version "0.3.3") + (version "0.4.0") (source (origin (method git-fetch) (uri (git-reference @@ -217,7 +218,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1nd764vd7qfy2x8dqapiyh5yrxjimm8b4himhm1qkgpf5hvh734l")))) + "1397z3c232n3zpqmpc77lbwv8z5szsbagawl3l7hiizn152hkgpv")))) (build-system gnu-build-system) (arguments (list @@ -243,7 +244,7 @@ "/share/glib-2.0/schemas")))))) (delete 'configure)))) (inputs - (list alsa-lib glib gtk)) + (list alsa-lib glib gtk openssl)) (native-inputs (list `(,glib "bin") pkg-config)) (home-page "https://github.com/geoffreybennett/alsa-scarlett-gui") @@ -2186,7 +2187,7 @@ your own lessons.") (define-public powertabeditor (package (name "powertabeditor") - (version "2.0.0-alpha14") + (version "2.0.0-alpha19") (source (origin (method git-fetch) (uri (git-reference @@ -2195,30 +2196,29 @@ your own lessons.") (file-name (git-file-name name version)) (sha256 (base32 - "1wsvni2aa9h2bpndlic7ckch4n600ahwm56n521y5vxivwjx3jmj")))) + "1fbrfw1ky57nms47pcfdrrwpa2jmgc8vgc68sz96wkvs49zzm5d1")))) (build-system cmake-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check (lambda _ (invoke "bin/pte_tests"))) - (add-after 'unpack 'fix-pugixml-detection - (lambda _ - (substitute* "cmake/third_party/pugixml.cmake" - (("add_library") "#add_library")) - #t))))) + (list + #:phases + '(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? (invoke "bin/pte_tests"))))))) (inputs - `(("alsa-lib" ,alsa-lib) - ("boost" ,boost) - ("minizip" ,minizip) - ("pugixml" ,pugixml) - ("qtbase" ,qtbase-5) - ("rapidjson" ,rapidjson) - ("rtmidi" ,rtmidi) - ("timidity" ,timidity++) - ("zlib" ,zlib))) + (list alsa-lib + boost + minizip + nlohmann-json + pugixml + qtbase-5 + qttools-5 ;for Qt5LinguistTools + rtmidi + timidity++ + zlib)) (native-inputs (list doctest pkg-config)) - (home-page "https://github.com/powertab/powertabedito") + (home-page "https://github.com/powertab/powertabeditor") (synopsis "Guitar tablature editor") (description "Power Tab Editor 2.0 is the successor to the famous original Power Tab @@ -3098,6 +3098,39 @@ using a system-independent interface.") "This package provides Python bindings to the PortMidi library.") (license license:expat)))) +(define-public python-pysmf + (let ((commit "8a98a557470301f5a471d07d37f334a5b8892602") + (revision "1")) + (package + (name "python-pysmf") + (version (git-version "0.1.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mididings/pysmf") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ic24k8jr7iwcrj7xaw5b9i22al05rxfpjw39bbjsg7v09kvygcv")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'fix-build-system + (lambda _ + (substitute* "setup.py" + (("from subprocess") "import sys; from subprocess"))))))) + (inputs (list libsmf glib)) + (native-inputs (list pkg-config python-cython python-pytest)) + (home-page "https://github.com/mididings/pysmf") + (synopsis "Read and write Standard MIDI files") + (description + "pysmf is a Python extension module for reading and writing Standard +MIDI files, based on libsmf.") + (license license:bsd-2)))) + (define-public frescobaldi (package (name "frescobaldi") @@ -4395,6 +4428,69 @@ standard MIDI file with the csvmidi program.") (home-page "https://www.fourmilab.ch/webtools/midicsv/") (license license:public-domain))) +(define-public mididings + (let ((commit "d98265be8afe7da20a5c7cfd0515f0d5fae5c53a") + (revision "1")) + (package + (name "mididings") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mididings/mididings") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1a8i4yac5jjkq0vh73nwkv0j7vnvfwbzzagam4xdl1gpnc26n5xi")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'build-manpages + (lambda _ + (with-directory-excursion "doc/man" + (for-each (lambda (doc) + (system (format #false + "scdoc < ~a.scd > ~a.1" doc doc))) + '(livedings mididings send_midi)))))))) + (inputs + (list alsa-lib + boost + jack-2 + `(,python "tk") + python-dbus + python-decorator + python-pyinotify + python-pyliblo + python-pysmf)) + (native-inputs (list python-pytest pkg-config scdoc)) + (home-page "https://github.com/mididings/mididings") + (synopsis "MIDI router and processor") + (description + "mididings is a MIDI router/processor based on Python, supporting ALSA +and JACK MIDI. Features include: + +@itemize +@item MIDI routing and filtering; filter events depending on their event type, + channel, note number, velocity, etc., and freely route them between an + arbitrary number of input and output ports. +@item Modifying and converting MIDI events; transpose notes, apply velocity + curves, change controller values and ranges, or convert events to any other + MIDI event type. mididings also includes more complex functions like a + diatonic harmonizer, floating split points, latched notes, and more. +@item Seamless switching between patches; set up different \"scenes\", each + with its own MIDI routing and processing, and switch between them at any time, + even while playing. Switching scenes does not affect notes already held, and + does not result in dropouts or stuck notes! +@item MIDI event monitoring, running external commands; print MIDI event data + to the console to help debugging your patches and configuring your MIDI + controllers. In addition to its MIDI output, mididings can also execute shell + commands and send OSC or DBUS messages. +@end itemize") + (license license:gpl2+)))) + (define-public gx-guvnor-lv2 (package (name "gx-guvnor-lv2") @@ -5727,7 +5823,7 @@ at @code{musicbrainz.org}.") (define-public clyrics (package (name "clyrics") - (version "0.13") + (version "0.16") (source (origin (method git-fetch) @@ -5736,7 +5832,7 @@ at @code{musicbrainz.org}.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0py31linlbphl18wxj5v00gggvxp9djg466mjncf5wpa147hs8r3")))) + (base32 "1izlqnzr1a504djhzk1a5k8dwwrkd5iyjfsfm5x48sb3vjlr1fr3")))) (build-system trivial-build-system) (inputs (list bash ; for the wrapped program @@ -6723,7 +6819,7 @@ and as an LV2 plugin.") ;; distros to make necessary changes to integrate the software into the ;; distribution. (name "zrythm") - (version "1.0.0-beta.4.9.1") + (version "1.0.0-beta.4.12.5") (source (origin (method url-fetch) @@ -6731,49 +6827,46 @@ and as an LV2 plugin.") version ".tar.xz")) (sha256 (base32 - "0skdb4bpw4v5175yw9wijrc6j36mxjq8i7p8nn9650lipxg6bshd")))) + "1kixf8rlim5qvkhcm65rf35mxkxv3hij039jc9rvh710vl2xxm0g")))) (build-system meson-build-system) (arguments - (list #:glib-or-gtk? #t - #:configure-flags - #~(list "-Dtests=true" - "-Dmanpage=false" ;fish-completions breaks this - "-Ddseg_font=false" - "-Dextra_optimizations=false" ;machine-specific - "-Dgraphviz=enabled" ;for exporting routing graphs - "-Dguile=enabled" ;for Guile scripting - "-Djack=enabled" ;for JACK audio/MIDI backend - "-Drtaudio=enabled" ;for RtAudio backend (ALSA) - "-Drtmidi=enabled" ;for RtMidi backend (ALSA sequencer) - "-Dsdl=enabled") ;for SDL audio backend (which uses ALSA) - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-tests - (lambda _ - ;; io_mkdir must be called with a GError value, not plain - ;; NULL, or else the assertion in io_mkdir segfaults. - (substitute* "tests/helpers/zrythm.h" - (("success = io_mkdir \\(tmp_log_dir, NULL\\);" m) - (string-append "err = NULL; -success = io_mkdir (tmp_log_dir, &err);"))) - - ;; zrythm: fails because curl wants to access the internet. - ;; project: unknown failure XXX - ;; The other tests fail with this error: - ;; error: attempt to map invalid URI `' - ;; This means that lilv is given an empty LV2 plugin URI. - ;; This is probably because we don't provide all LV2 - ;; plugins that are needed for running the tests. - (substitute* "tests/meson.build" - (("foreach name, info : tests") - "\ + (list + #:glib-or-gtk? #t + #:configure-flags + '(list "-Dtests=true" + "-Dmanpage=false" ;fish-completions breaks this + "-Ddseg_font=false" + "-Dextra_optimizations=false" ;machine-specific + "-Dgraphviz=enabled" ;for exporting routing graphs + "-Dguile=enabled" ;for Guile scripting + "-Djack=enabled" ;for JACK audio/MIDI backend + "-Drtaudio=enabled" ;for RtAudio backend (ALSA) + "-Drtmidi=enabled" ;for RtMidi backend (ALSA sequencer) + "-Dsdl=enabled") ;for SDL audio backend (which uses ALSA) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-tests + (lambda _ + ;; zrythm: fails because curl wants to access the internet. + ;; project: unknown failure XXX + ;; The other tests fail with this error: + ;; error: attempt to map invalid URI `' + ;; This means that lilv is given an empty LV2 plugin URI. + ;; This is probably because we don't provide all LV2 + ;; plugins that are needed for running the tests. + (substitute* "tests/meson.build" + (("foreach name, info : tests") + "\ disabled_tests = { - 'zrythm': 0, - 'project': 0, - 'audio/midi_track': 0, - 'integration/recording': 0, 'actions/mixer_selections_action': 0, - 'actions/tracklist_selections': 0 + 'actions/tracklist_selections': 0, + 'dsp/audio_region': 0, + 'dsp/audio_track': 0, + 'dsp/midi_track': 0, + 'dsp/pool': 0, + 'integration/recording': 0, + 'project': 0, + 'zrythm': 0 } enabled_tests = {} foreach name, info : tests @@ -6781,17 +6874,21 @@ success = io_mkdir (tmp_log_dir, &err);"))) enabled_tests += {name: info} endif endforeach - foreach name, info : enabled_tests")))) - (add-before 'build 'disable-guile-auto-compilation - (lambda _ - (setenv "GUILE_AUTO_COMPILE" "0"))) - (add-after 'install 'wrap-program - (lambda _ - (wrap-program (string-append #$output "/bin/zrythm") - ;; Wrapping GDK_PIXBUF_MODULE_FILE allows Zrythm to load - ;; its own SVG icons in pure environments. - `("GDK_PIXBUF_MODULE_FILE" = - (,(getenv "GDK_PIXBUF_MODULE_FILE"))))))))) + foreach name, info : enabled_tests")) + ;; Requires internet access + (substitute* "data/meson.build" + (("if appstream.*\\(\\)") + "if false")))) + (add-before 'build 'disable-guile-auto-compilation + (lambda _ + (setenv "GUILE_AUTO_COMPILE" "0"))) + (add-after 'install 'wrap-program + (lambda _ + (wrap-program (string-append #$output "/bin/zrythm") + ;; Wrapping GDK_PIXBUF_MODULE_FILE allows Zrythm to load + ;; its own SVG icons in pure environments. + `("GDK_PIXBUF_MODULE_FILE" = + (,(getenv "GDK_PIXBUF_MODULE_FILE"))))))))) (inputs (list alsa-lib boost @@ -6810,7 +6907,6 @@ success = io_mkdir (tmp_log_dir, &err);"))) jack-2 json-glib libadwaita - libaudec (module-ref (resolve-interface '(gnu packages debug)) 'libbacktrace) libcyaml @@ -6820,8 +6916,10 @@ success = io_mkdir (tmp_log_dir, &err);"))) libsndfile libyaml lilv + lsp-dsp-lib lv2 pango + pcre pipewire pulseaudio reproc @@ -6829,6 +6927,7 @@ success = io_mkdir (tmp_log_dir, &err);"))) rtmidi rubberband sdl2 + soxr vamp xdg-utils xxhash |