summary refs log tree commit diff
path: root/gnu/packages/music.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r--gnu/packages/music.scm339
1 files changed, 247 insertions, 92 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 3736abb353..49f784f529 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -141,6 +141,7 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
+  #:use-module (gnu packages vim)       ;for 'xxd'
   #:use-module (gnu packages web)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xml)
@@ -384,14 +385,14 @@ many input formats and provides a customisable Vi-style user interface.")
 (define-public denemo
   (package
     (name "denemo")
-    (version "2.3.0")
+    (version "2.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://gnu/denemo/"
                            "denemo-" version ".tar.gz"))
        (sha256
-        (base32 "1blkcl3slbsq9jlhwcf2m9v9g38a0sjfhh9advgi2qr1gxri08by"))))
+        (base32 "145kq0zfgdadykl3i6na221i4s5wzdrcqq48amzyfarnrqk2rmpd"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1755,7 +1756,7 @@ is subjective.")
 (define-public tuxguitar
   (package
     (name "tuxguitar")
-    (version "1.5.3")
+    (version "1.5.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1763,7 +1764,7 @@ is subjective.")
                     version "/tuxguitar-" version "-src.tar.gz"))
               (sha256
                (base32
-                "1qy5kjcsl3c86kdlyvsf6dsfmfl1mv8zg0ln6g3qg3i8f35vlpp6"))))
+                "0fjhf56lhlhm84v08917xp4yw8y6d0qajm4qiy1gfp8dm74whwwg"))))
     (build-system ant-build-system)
     (arguments
      `(#:build-target "build"
@@ -1880,7 +1881,7 @@ export.")
 (define-public pd
   (package
     (name "pd")
-    (version "0.50-2")
+    (version "0.51-0")
     (source (origin
               (method url-fetch)
               (uri
@@ -1888,23 +1889,25 @@ export.")
                               version ".src.tar.gz"))
               (sha256
                (base32
-                "0dz6r6jy0zfs1xy1xspnrxxks8kddi9c7pxz4vpg2ygwv83ghpg5"))))
+                "0qzv4hjf4h7xx00ihnbl43pxa0fia9qkc8nwgzhqrs12jiljz6ps"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f                      ; no "check" target
-       #:configure-flags
-       (list
-        "--enable-jack"
-        (string-append "--with-wish=" (string-append
-                                       (assoc-ref %build-inputs "tk")
-                                       "/bin/wish8.6")))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'fix-with-path
-           (lambda _
-             (substitute* "tcl/pd-gui.tcl"
-               (("exec wish ") (string-append "exec " (which "wish8.6") " ")))
-             #t)))))
+     (let ((wish (string-append "wish" (version-major+minor
+                                        (package-version tk)))))
+       `(#:tests? #f                    ; no "check" target
+         #:configure-flags
+         (list
+          "--enable-jack"
+          (string-append "--with-wish=" (string-append
+                                         (assoc-ref %build-inputs "tk")
+                                         "/bin/" ,wish)))
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'fix-with-path
+             (lambda _
+               (substitute* "tcl/pd-gui.tcl"
+                 (("exec wish ") (string-append "exec " (which ,wish) " ")))
+               #t))))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -1915,7 +1918,7 @@ export.")
      `(("tk" ,tk)
        ("alsa-lib" ,alsa-lib)
        ("jack" ,jack-1)))
-    (home-page "http://puredata.info")
+    (home-page "https://puredata.info")
     (synopsis "Visual programming language for artistic performances")
     (description
      "Pure Data (aka Pd) is a visual programming language.  Pd enables
@@ -2237,61 +2240,66 @@ capabilities, custom envelopes, effects, etc.")
     (license license:gpl2)))
 
 (define-public yoshimi
-  (package
-    (name "yoshimi")
-    (version "1.7.0.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/yoshimi/"
-                                  (version-major+minor version)
-                                  "/yoshimi-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "1pkqrrr51vlxh96vy0c0rf5ijjvymys4brsw9rv1bdp1bb8izw6c"))))
-    (build-system cmake-build-system)
-    (arguments
-     `(#:tests? #f                      ; there are no tests
-       #:configure-flags
-       (list (string-append "-DCMAKE_INSTALL_DATAROOTDIR="
-                            (assoc-ref %outputs "out") "/share"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'enter-dir
-           (lambda _ (chdir "src") #t))
-         ;; Move SSE compiler optimization flags from generic target to
-         ;; athlon64 and core2 targets, because otherwise the build would fail
-         ;; on non-Intel machines.
-         (add-after 'unpack 'remove-sse-flags-from-generic-target
-          (lambda _
-            (substitute* "src/CMakeLists.txt"
-              (("-msse -msse2 -mfpmath=sse") "")
-              (("-march=(athlon64|core2)" flag)
-               (string-append flag " -msse -msse2 -mfpmath=sse")))
-            #t)))))
-    (inputs
-     `(("boost" ,boost)
-       ("fftwf" ,fftwf)
-       ("alsa-lib" ,alsa-lib)
-       ("jack" ,jack-1)
-       ("fontconfig" ,fontconfig)
-       ("minixml" ,minixml)
-       ("mesa" ,mesa)
-       ("fltk" ,fltk)
-       ("lv2" ,lv2)
-       ("readline" ,readline)
-       ("ncurses" ,ncurses)
-       ("cairo" ,cairo)
-       ("zlib" ,zlib)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (home-page "http://yoshimi.sourceforge.net/")
-    (synopsis "Multi-paradigm software synthesizer")
-    (description
-     "Yoshimi is a fork of ZynAddSubFX, a feature-heavy real-time software
+  ;; Release 1.7.1 doesn't build with our version of LV2.  Applying only
+  ;; 86996cbb235f0fe138ae814a6758c2c8ba1c2a38 is not enough.
+  (let ((commit "bfcadc6537dbcb301cd93346f21d36bcbffa36c7")
+        (revision "0"))
+    (package
+      (name "yoshimi")
+      (version (git-version "1.7.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://git.code.sf.net/p/yoshimi/code")
+               (commit commit)))
+         (sha256
+          (base32 "0vhdxj7ky4iyq11r5wj9jwavjih4xvcn2djbrlmwpkdhrzpy6myl"))
+         (file-name (git-file-name name version))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f                    ; there are no tests
+         #:configure-flags
+         (list (string-append "-DCMAKE_INSTALL_DATAROOTDIR="
+                              (assoc-ref %outputs "out") "/share"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'enter-dir
+             (lambda _ (chdir "src") #t))
+           ;; Move SSE compiler optimization flags from generic target to
+           ;; athlon64 and core2 targets, because otherwise the build would fail
+           ;; on non-Intel machines.
+           (add-after 'unpack 'remove-sse-flags-from-generic-target
+             (lambda _
+               (substitute* "src/CMakeLists.txt"
+                 (("-msse -msse2 -mfpmath=sse") "")
+                 (("-march=(athlon64|core2)" flag)
+                  (string-append flag " -msse -msse2 -mfpmath=sse")))
+               #t)))))
+      (inputs
+       `(("boost" ,boost)
+         ("fftwf" ,fftwf)
+         ("alsa-lib" ,alsa-lib)
+         ("jack" ,jack-1)
+         ("fontconfig" ,fontconfig)
+         ("minixml" ,minixml)
+         ("mesa" ,mesa)
+         ("fltk" ,fltk)
+         ("lv2" ,lv2)
+         ("readline" ,readline)
+         ("ncurses" ,ncurses)
+         ("cairo" ,cairo)
+         ("zlib" ,zlib)))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (home-page "http://yoshimi.sourceforge.net/")
+      (synopsis "Multi-paradigm software synthesizer")
+      (description
+       "Yoshimi is a fork of ZynAddSubFX, a feature-heavy real-time software
 synthesizer.  It offers three synthesizer engines, multitimbral and polyphonic
 synths, microtonal capabilities, custom envelopes, effects, etc.  Yoshimi
 improves on support for JACK features, such as JACK MIDI.")
-    (license license:gpl2)))
+      (license license:gpl2))))
 
 (define-public libgig
   (package
@@ -2499,14 +2507,14 @@ from the command line.")
 (define-public qtractor
   (package
     (name "qtractor")
-    (version "0.9.12")
+    (version "0.9.14")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://downloads.sourceforge.net/qtractor/"
+              (uri (string-append "https://downloads.sourceforge.net/qtractor/"
                                   "qtractor-" version ".tar.gz"))
               (sha256
                (base32
-                "06493sf4hr178jkvric3rmc2phh1ph2jlyh8kl9z248amq3zfnhy"))))
+                "1gh268gdpj7nw19xfh7k2l3aban4yrs1lmx33qswrnngs2izj1fk"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; no "check" target
@@ -2718,8 +2726,7 @@ tune-in sender list from @url{http://opml.radiotime.com}.")
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
-       #:make-flags (list "CC=gcc" "CFLAGS=-std=c99"
-                          (string-append "PREFIX=" %output))
+       #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
        #:phases (modify-phases %standard-phases
                   (delete 'configure))))
     (inputs
@@ -2962,7 +2969,7 @@ websites such as Libre.fm.")
     (home-page "https://github.com/yask123/Instant-Music-Downloader")
     (synopsis "Command-line program to download a song from YouTube")
     (description "InstantMusic downloads a song from YouTube in MP3 format.
-Songs can be searched by artist, name or even by a part of the song text.")
+    Songs can be searched by artist, name or even by a part of the song text.")
     (license license:expat))))
 
 (define-public beets
@@ -3011,9 +3018,9 @@ Songs can be searched by artist, name or even by a part of the song text.")
     (home-page "https://beets.io")
     (synopsis "Music organizer")
     (description "The purpose of beets is to get your music collection right
-once and for all.  It catalogs your collection, automatically improving its
-metadata as it goes using the MusicBrainz database.  Then it provides a variety
-of tools for manipulating and accessing your music.")
+    once and for all.  It catalogs your collection, automatically improving its
+    metadata as it goes using the MusicBrainz database.  Then it provides a variety
+    of tools for manipulating and accessing your music.")
     (license license:expat)))
 
 (define-public beets-bandcamp
@@ -3039,8 +3046,8 @@ of tools for manipulating and accessing your music.")
     (synopsis "Bandcamp plugin for beets")
     (description
      "This plugin for beets automatically obtains tag data from @uref{Bandcamp,
-https://bandcamp.com/}.  It's also capable of getting song lyrics and album art
-using the beets FetchArt plugin.")
+                                                                      https://bandcamp.com/}.  It's also capable of getting song lyrics and album art
+    using the beets FetchArt plugin.")
     (license license:gpl2)))
 
 (define-public milkytracker
@@ -3081,9 +3088,9 @@ using the beets FetchArt plugin.")
      `(("pkg-config" ,pkg-config)))
     (synopsis "Music tracker for working with .MOD/.XM module files")
     (description "MilkyTracker is a music application for creating .MOD and .XM
-module files.  It attempts to recreate the module replay and user experience of
-the popular DOS program Fasttracker II, with special playback modes available
-for improved Amiga ProTracker 2/3 compatibility.")
+    module files.  It attempts to recreate the module replay and user experience of
+    the popular DOS program Fasttracker II, with special playback modes available
+    for improved Amiga ProTracker 2/3 compatibility.")
     (home-page "https://milkytracker.titandemo.org/")
     ;; 'src/milkyplay' is under Modified BSD, the rest is under GPL3 or later.
     (license (list license:bsd-3 license:gpl3+))))
@@ -3107,8 +3114,8 @@ for improved Amiga ProTracker 2/3 compatibility.")
                `(begin
                   (substitute* "schism/version.c"
                     (("Schism Tracker built %s %s.*$")
-                     (string-append "Schism Tracker version " ,version "\");")))
-                  #t))))
+                     (string-append "Schism Tracker version " ,version "\") ;")))
+              #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -3686,7 +3693,7 @@ plugins, a switch trigger, a toggle switch, and a peakmeter.")
          ("lv2" ,lv2)
          ("lilv" ,lilv)
          ("raul" ,raul-devel)
-         ("ganv" ,ganv-devel)
+         ("ganv" ,ganv)
          ("suil" ,suil)
          ("serd" ,serd)
          ("sord" ,sord)
@@ -4127,14 +4134,14 @@ specification and header.")
 (define-public rosegarden
   (package
     (name "rosegarden")
-    (version "19.12")
+    (version "20.06")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/rosegarden/rosegarden/"
                            version "/rosegarden-" version ".tar.bz2"))
        (sha256
-        (base32 "1qcaxc6hdzva7kwxxhgl95437fagjbxzv4mihsgpr7y9qk08ppw1"))))
+        (base32 "1i9x9rkqwwdrk77xl5ra8i48cjirbc7fbisnj0nnclccwaq0wk6r"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release")
@@ -4864,6 +4871,48 @@ effects.  It contains a bitcrusher, delay, distortion, equalizer, compressor,
 and reverb.")
     (license license:gpl2+)))
 
+(define-public lsp-plugins
+  (package
+    (name "lsp-plugins")
+    (version "1.1.22")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/sadko4u/lsp-plugins.git")
+               (commit (string-append "lsp-plugins-" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0s0i0kf5nqxxywckg03fds1w7696ly60rnlljzqvp7qfgzps1r6c"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list
+         (string-append "CC=" ,(cc-for-target))
+         "BUILD_MODULES=\"lv2 ladspa jack\"" "VST_UI=0"
+         (string-append "PREFIX=" (assoc-ref %outputs "out"))
+         (string-append "ETC_PATH=" (assoc-ref %outputs "out") "/etc"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))   ; no configure
+       #:test-target "test"))
+    (inputs
+     `(("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)))
+    (synopsis "Audio plugin collection")
+    (description "LSP (Linux Studio Plugins) is a collection of audio
+plugins available as LADSPA/LV2 plugins and as standalone JACK
+applications.")
+    (home-page "https://lsp-plug.in/")
+    (license license:lgpl3)))
+
 (define-public sherlock-lv2
   (package
     (name "sherlock-lv2")
@@ -4893,6 +4942,49 @@ and debugging of event signal flows inside plugin graphs.")
     (home-page "https://open-music-kontrollers.ch/lv2/sherlock/")
     (license license:artistic2.0)))
 
+(define-public spectacle-analyzer
+  (package
+    (name "spectacle-analyzer")
+    (version "1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jpcima/spectacle.git")
+             (commit (string-append "v" version))
+             ;; Bundles a specific commit of the DISTRHO plugin framework.
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0xiqa6z8g68lcvnwhws4j7c4py35r9d20cirrili7ycyp3a6149a"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no check target
+       #:make-flags
+       (list "CC=gcc"
+             (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("xxd" ,xxd)))
+    (inputs
+     `(("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.")
+    (home-page "https://github.com/jpcima/spectacle")
+    ;; The project is licensed under the ISC license, and files in
+    ;; sources/plugin carry the Expat license.
+    (license (list license:isc license:expat))))
+
 (define-public x42-plugins
   (package
     (name "x42-plugins")
@@ -5538,3 +5630,66 @@ It is provided as an LV2 plugin and as a standalone Jack application.")
 It is provided as an LV2 plugin and as a standalone Jack application.")
     (home-page "https://github.com/pdesaulniers/wolf-spectrum")
     (license license:gpl3)))
+
+(define-public shiru-lv2
+  (let ((commit "08853f99140012234649e67e5647906fda74f6cc")
+        (revision "1"))
+    (package
+      (name "shiru-lv2")
+      (version (git-version "0.0" revision commit))
+      (source
+        (origin
+          (method git-fetch)
+          (uri (git-reference
+                 (url "https://github.com/linuxmao-org/shiru-plugins.git")
+                 (commit commit)
+                 ;; Bundles a specific commit of the DISTRHO plugin framework.
+                 (recursive? #t)))
+          (file-name (git-file-name name version))
+          (sha256
+            (base32
+              "00rf6im3rhg98h60sgl1r2s37za5vr5h14pybwi07h8zbc8mi6fm"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f                      ; no check target
+         #:make-flags (list "CC=gcc")
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)            ;no configure target
+           (replace 'install              ;no install target
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin"))
+                      (lv2 (string-append out "/lib/lv2")))
+                 ;; Install LV2.
+                 (for-each
+                  (lambda (file)
+                    (copy-recursively file
+                                      (string-append lv2 "/" (basename file))))
+                  (find-files "bin" "\\.lv2$" #:directories? #t))
+                 ;; Install executables.
+                 (for-each
+                   (lambda (file)
+                     (install-file file bin))
+                   (find-files "bin"
+                               (lambda (name stat)
+                                 (and
+                                   (equal? (dirname name) "bin")
+                                   (not (string-suffix? ".so" name))
+                                   (not (string-suffix? ".lv2" name))))))
+                 #t))))))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (inputs
+        `(("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
+  framework.")
+      (home-page "http://shiru.untergrund.net/software.shtml")
+      (license license:wtfpl2))))