aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/music.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2024-04-20 11:47:50 +0100
committerChristopher Baines <mail@cbaines.net>2024-04-20 11:47:50 +0100
commitda77ea23daa0bfa4a73290dff99b22d6825ff80b (patch)
tree748d24e62b93c8ab8f999d6415d9f65c3d317da2 /gnu/packages/music.scm
parent4eeb6922449285f9bce615f6e4ffe4375fa0233f (diff)
parent949f97f7f98ac74306b9de79c93790337d804e32 (diff)
downloadguix-da77ea23daa0bfa4a73290dff99b22d6825ff80b.tar
guix-da77ea23daa0bfa4a73290dff99b22d6825ff80b.tar.gz
Merge commit '949f97f7f9' into core-update-new-2chris-core-updates-no-duplicates-attempt
Change-Id: Ibbd851541da42cc052ba58195fee033daadd57e5 Conflicts: gnu/local.mk gnu/packages/bioinformatics.scm gnu/packages/dictionaries.scm gnu/packages/display-managers.scm gnu/packages/engineering.scm gnu/packages/geo.scm gnu/packages/gl.scm gnu/packages/glib.scm gnu/packages/gnome-xyz.scm gnu/packages/gnome.scm gnu/packages/gtk.scm gnu/packages/image-processing.scm gnu/packages/linux.scm gnu/packages/llvm.scm gnu/packages/mail.scm gnu/packages/patches/eudev-rules-directory.patch gnu/packages/plotutils.scm gnu/packages/sdl.scm gnu/packages/syndication.scm
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r--gnu/packages/music.scm327
1 files changed, 243 insertions, 84 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 4244ffbbac..53db3fbf10 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>
@@ -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>
@@ -136,6 +136,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)
@@ -191,6 +192,7 @@
#:use-module (gnu packages terminals)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
+ #:use-module (gnu packages textutils)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
@@ -209,7 +211,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
@@ -218,7 +220,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "1nd764vd7qfy2x8dqapiyh5yrxjimm8b4himhm1qkgpf5hvh734l"))))
+ "1397z3c232n3zpqmpc77lbwv8z5szsbagawl3l7hiizn152hkgpv"))))
(build-system gnu-build-system)
(arguments
(list
@@ -244,7 +246,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")
@@ -599,6 +601,64 @@ you create custom user interfaces for your MIDI hardware.")
license:gpl3 ;JUCE
license:bsd-3)))))
+(define-public qmmp
+ (package
+ (name "qmmp")
+ (version "2.1.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://qmmp.ylsoftware.com/files/"
+ (version-major+minor version) "/"
+ "qmmp-" version ".tar.bz2"))
+ (sha256
+ (base32 "1jpflf17198ascaqmxla6ajb69bnj8zzngk32vdyyw5443kshylj"))))
+ (build-system qt-build-system)
+ (arguments
+ (list #:qtbase qtbase
+ #:tests? #f)) ; there are no tests
+ (inputs
+ ;; Missing optional inputs:
+ ;; libsidplay2 ; input plugin
+ ;; projectm ; visualization plugin
+ (list alsa-lib
+ curl
+ enca
+ faad2
+ ffmpeg
+ flac
+ jack-2
+ libarchive
+ libbs2b
+ libcddb
+ libcdio-paranoia
+ libgme
+ libmad
+ libshout
+ libsndfile
+ libvorbis
+ libxmp
+ opusfile
+ opus
+ pipewire
+ pulseaudio
+ qtmultimedia
+ qttools
+ soxr
+ taglib
+ wavpack
+ wildmidi))
+ (native-inputs
+ (list pkg-config))
+ (home-page "https://qmmp.ylsoftware.com")
+ (synopsis "Qt-based music player")
+ (description "Music player with support for most common audio formats, and
+plugins for various additional features such as visualization, effects and
+online service integration. In addition to a Qt-based interface it supports
+Winamp/XMMS skins.")
+ (license (list license:gpl2+ ; code
+ license:cc-by-sa4.0)))) ; src/plugins/Ui/skinned/glare
+
(define-public strawberry
(package
(name "strawberry")
@@ -2189,7 +2249,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
@@ -2198,30 +2258,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
@@ -3101,6 +3160,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")
@@ -4376,6 +4468,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")
@@ -5106,7 +5261,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
@@ -5115,7 +5270,7 @@ sample library.")
(file-name (git-file-name name version))
(sha256
(base32
- "1iihjivpkvmdfqf20kcl9k0s1iwlv9p5vpna7c58lbw3573fiyr4"))))
+ "13b9xx8x8yr58r8765xn770kfn3k2whmvmpl2657nc19max9n61g"))))
(build-system qt-build-system)
(arguments
(list
@@ -5155,7 +5310,8 @@ sample library.")
rubberband
sord))
(native-inputs
- (list perl
+ (list extra-cmake-modules
+ perl
pkg-config
python-wrapper
qttools-5))
@@ -5171,7 +5327,7 @@ studio.")
(define-public gsequencer
(package
(name "gsequencer")
- (version "6.1.3")
+ (version "6.5.2")
(source
(origin
(method git-fetch)
@@ -5180,7 +5336,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
@@ -5707,7 +5863,7 @@ at @code{musicbrainz.org}.")
(define-public clyrics
(package
(name "clyrics")
- (version "0.13")
+ (version "0.16")
(source
(origin
(method git-fetch)
@@ -5716,7 +5872,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
@@ -6704,7 +6860,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)
@@ -6712,49 +6868,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
@@ -6762,17 +6915,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
@@ -6791,7 +6948,6 @@ success = io_mkdir (tmp_log_dir, &err);")))
jack-2
json-glib
libadwaita
- libaudec
(module-ref
(resolve-interface '(gnu packages debug)) 'libbacktrace)
libcyaml
@@ -6801,8 +6957,10 @@ success = io_mkdir (tmp_log_dir, &err);")))
libsndfile
libyaml
lilv
+ lsp-dsp-lib
lv2
pango
+ pcre
pipewire
pulseaudio
reproc
@@ -6810,6 +6968,7 @@ success = io_mkdir (tmp_log_dir, &err);")))
rtmidi
rubberband
sdl2
+ soxr
vamp
xdg-utils
xxhash