diff options
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r-- | gnu/packages/music.scm | 242 |
1 files changed, 173 insertions, 69 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 35d75d274a..879d90b241 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -73,11 +73,13 @@ #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) + #:use-module (gnu packages build-tools) #:use-module (gnu packages cdrom) #:use-module (gnu packages code) #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) @@ -145,6 +147,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) @@ -775,6 +778,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") @@ -1231,7 +1303,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 @@ -1240,7 +1312,7 @@ device supports.") (file-name (git-file-name name version)) (sha256 (base32 - "0w21kzq695xy4i1r6xvvh7sad5m0rlmdgc7ykmrlzfsm1252dz80")))) + "0w7iwzz2r4a699fi24qk71vv2k3jpl9ylzlgmvyc3rlgad0m01k1")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -1319,9 +1391,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.") @@ -1344,11 +1416,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 @@ -1982,7 +2054,7 @@ export.") (define-public pd (package (name "pd") - (version "0.51-1") + (version "0.51-2") (source (origin (method url-fetch) (uri @@ -1990,7 +2062,7 @@ export.") version ".src.tar.gz")) (sha256 (base32 - "0imbha9h96vqa967cbmdj7kkx7zrs054n5w2bjnifxdzws3qbxf6")))) + "1jgklcnaxypc8hr5j6mng8dd4na4ygfdixsfch8b86glssddi6mh")))) (build-system gnu-build-system) (arguments (let ((wish (string-append "wish" (version-major+minor @@ -2603,14 +2675,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 @@ -2844,7 +2916,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 @@ -2852,7 +2924,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 @@ -2871,7 +2944,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) @@ -2887,16 +2961,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 @@ -4158,7 +4234,7 @@ sample library.") (define-public muse-sequencer (package (name "muse-sequencer") - (version "3.0.0") + (version "3.1.1") (source (origin (method git-fetch) (uri (git-reference @@ -4170,19 +4246,30 @@ sample library.") (file-name (git-file-name name version)) (sha256 (base32 - "1nninz8qyqlxxjdnrm79y3gr3056pga9l2fsqh674jd3cjvafya3")))) + "1rasp2v1ds2aw296lbf27rzw0l9fjl0cvbvw85d5ycvh6wkm301p")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; there is no test target #:configure-flags - (list "-DENABLE_LV2_SUPPLIED=OFF" - "-DENABLE_RTAUDIO=OFF" ; FIXME: not packaged - "-DENABLE_INSTPATCH=OFF" ; FIXME: not packaged - "-DENABLE_VST_NATIVE=OFF") + (list "-DENABLE_INSTPATCH=OFF" ; FIXME: not packaged + "-DENABLE_VST_NATIVE=OFF" + (string-append "-DCMAKE_EXE_LINKER_FLAGS=" + "-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib/muse-" + ,(version-major+minor version) "/modules") + (string-append "-DCMAKE_SHARED_LINKER_FLAGS=" + "-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib/muse-" + ,(version-major+minor version) "/modules")) #:phases (modify-phases %standard-phases (add-after 'unpack 'chdir - (lambda _ (chdir "muse3")))))) + (lambda _ (chdir "muse3") #t)) + (add-after 'chdir 'fix-include + (lambda _ + (substitute* "muse/driver/rtaudio.h" + (("rtaudio/RtAudio.h") "RtAudio.h")) + #t))))) (inputs `(("alsa-lib" ,alsa-lib) ("lash" ,lash) @@ -4195,10 +4282,14 @@ sample library.") ("sord" ,sord) ("libsndfile" ,libsndfile) ("libsamplerate" ,libsamplerate) + ("lrdf" ,lrdf) ("fluidsynth" ,fluidsynth) ("pcre" ,pcre) + ("pulseaudio" ,pulseaudio) ; required by rtaudio ("qtbase" ,qtbase) - ("qtsvg" ,qtsvg))) + ("qtsvg" ,qtsvg) + ("rtaudio" ,rtaudio) + ("rubberband" ,rubberband))) (native-inputs `(("pkg-config" ,pkg-config) ("qttools" ,qttools))) @@ -4988,7 +5079,7 @@ and reverb.") (define-public lsp-plugins (package (name "lsp-plugins") - (version "1.1.24") + (version "1.1.26") (source (origin (method git-fetch) @@ -4997,7 +5088,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 @@ -5008,18 +5099,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 @@ -5129,12 +5220,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.") @@ -5250,7 +5341,7 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.") (define-public geonkick (package (name "geonkick") - (version "2.3.7") + (version "2.3.8") (source (origin (method git-fetch) @@ -5259,8 +5350,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 @@ -5428,12 +5518,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 @@ -5442,8 +5532,13 @@ and as an LV2 plugin.") (define-public zrythm (package + ;; Zrythm contains trademarks and comes with a trademark policy found in + ;; TRADMARKS.md inside the release distribution. The trademark policy + ;; allows verbatim re-distribution, and it also allows FSF-approved + ;; distros to make necessary changes to integrate the software into the + ;; distribution. (name "zrythm") - (version "0.8.333") + (version "0.8.911") (source (origin (method url-fetch) @@ -5451,13 +5546,19 @@ and as an LV2 plugin.") version ".tar.xz")) (sha256 (base32 - "0x2kxr5zz058jpy6k6ymj0fi2gqfcgrlv4qkwz9443hjy5345iwb")))) + "1xyp70sjc2k5pfdqbwqa988v86da0rmmyl8ry86bqv4ja80sc6g9")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t + #:meson ,meson-0.55 #:configure-flags - `("-Denable_tests=true" "-Dmanpage=true" - "-Dinstall_dseg_font=false" "-Denable_ffmpeg=true") + `("-Dtests=true" + "-Dmanpage=true" + "-Ddseg_font=false" + "-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 @@ -5470,7 +5571,6 @@ and as an LV2 plugin.") `(("alsa-lib" ,alsa-lib) ("jack" ,jack-1) ("font-dseg" ,font-dseg) - ("ffmpeg" ,ffmpeg) ("fftw" ,fftw) ("fftwf" ,fftwf) ("gettext" ,gettext-minimal) @@ -5479,19 +5579,23 @@ and as an LV2 plugin.") ("gtk+" ,gtk+) ("gtksourceview" ,gtksourceview) ("guile" ,guile-2.2) + ("libaudec" ,libaudec) ("libcyaml" ,libcyaml) ("libsamplerate" ,libsamplerate) ("libsndfile" ,libsndfile) ("libyaml" ,libyaml) ("lilv" ,lilv) + ("lv2" ,lv2) + ("reproc" ,reproc) + ("rubberband" ,rubberband) + ("rtmidi" ,rtmidi) + ("sdl2" ,sdl2) ("xdg-utils" ,xdg-utils) - ("rubberband" ,rubberband))) + ("zstd" ,zstd "lib"))) (native-inputs `(("pkg-config" ,pkg-config) ("help2man" ,help2man) - ("libaudec" ,libaudec) - ("lv2" ,lv2) - ("glib" ,glib "bin"))) ;for 'glib-compile-resources' + ("glib" ,glib "bin"))) ; for 'glib-compile-resources' (synopsis "Digital audio workstation focusing on usability") (description "Zrythm is a digital audio workstation designed to be featureful and easy to use. It offers unlimited automation options, LV2 @@ -5744,9 +5848,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 @@ -5802,9 +5906,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.") @@ -5884,12 +5988,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 |