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.scm205
1 files changed, 172 insertions, 33 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 5dfa320d2c..ac4333168c 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -17,11 +17,12 @@
 ;;; Copyright © 2018 nee <nee.git@hidamari.blue>
 ;;; Copyright © 2018 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
 ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;; Copyright © 2019 raingloom <raingloom@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -776,6 +777,11 @@ audio and video).")
        #:tests? #f ; no "check" target
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'be-permissive
+           (lambda _
+             (substitute* "SConstruct"
+               (("'-Wall'") "'-Wall', '-fpermissive'"))
+             #t))
          (add-after 'unpack 'replace-removed-scons-syntax
            (lambda _
              (substitute* "SConstruct"
@@ -1023,14 +1029,6 @@ Guile.")
                                                        (%current-system))))
                      '("--disable-sse")
                      '()))
-         #:phases
-         (modify-phases %standard-phases
-           (add-before
-            'configure 'set-flags
-            (lambda _
-              ;; Compile with C++11, required by libsigc++.
-              (setenv "CXXFLAGS" "-std=c++11")
-              #t)))
          #:python ,python-2))
       (inputs
        `(("jack" ,jack-1)
@@ -1543,7 +1541,7 @@ reverb effects.")
 (define-public setbfree
   (package
     (name "setbfree")
-    (version "0.8.8")
+    (version "0.8.9")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1552,7 +1550,7 @@ reverb effects.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "15dr1nyj69wc9jnjq5z8ril90a3c0mcrii4zjyz0z3h7dhia3382"))))
+                "1lpsa64xvwa9xbbp8zcwxy5w0daffc7fziny2pizabqh7m9xqjl2"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no "check" target
@@ -1790,7 +1788,7 @@ export.")
 (define-public pd
   (package
     (name "pd")
-    (version "0.49-0")
+    (version "0.50-0")
     (source (origin
               (method url-fetch)
               (uri
@@ -1798,10 +1796,10 @@ export.")
                               version ".src.tar.gz"))
               (sha256
                (base32
-                "18rzqbpgnnvyslap7k0ly87aw1bbxkb0rk5agpr423ibs9slxq6j"))))
+                "0hg4n5b55f650qsc0mjx559072dp7vfza7w0pvk6rk2l831cvsps"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no "check" target
+     `(#:tests? #f                      ; no "check" target
        #:configure-flags
        (list
         "--enable-jack"
@@ -2007,14 +2005,14 @@ browser.")
 (define-public drumstick
   (package
     (name "drumstick")
-    (version "1.1.2")
+    (version "1.1.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/drumstick/"
                                   version "/drumstick-" version ".tar.bz2"))
               (sha256
                (base32
-                "0kljqyqj7s1i2z52i24x7ail1bywn6dcxxfbad5c59drm8wv94bp"))))
+                "1n9wvg79yvkygrkc8xd8pgrd3d7hqmr7gh24dccf0px23lla9b3m"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; no test target
@@ -2050,6 +2048,52 @@ multiplatform realtime MIDI I/O library is also provided with various output
 backends, including ALSA, OSS, Network and FluidSynth.")
     (license license:gpl2+)))
 
+(define-public vmpk
+  (package
+    (name "vmpk")
+    (version "0.7.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/vmpk/vmpk/"
+                                  version "/vmpk-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1i3hnvdgz46n4k5v0q4jhgh7nkh0s390ix4nqr69z0q3026yp0p6"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f  ; no test target
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'fix-docbook
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "cmake_admin/CreateManpages.cmake"
+               (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
+                (string-append (assoc-ref inputs "docbook-xsl")
+                               "/xml/xsl/docbook-xsl-"
+                               ,(package-version docbook-xsl)
+                               "/manpages/docbook.xsl")))
+             #t)))))
+    (inputs
+     `(("drumstick" ,drumstick)
+       ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)
+       ("qttools" ,qttools)
+       ("qtx11extras" ,qtx11extras)))
+    (native-inputs
+     `(("libxslt" ,libxslt) ;for xsltproc
+       ("docbook-xsl" ,docbook-xsl)
+       ("pkg-config" ,pkg-config)))
+    (home-page "http://vmpk.sourceforge.net")
+    (synopsis "Virtual MIDI piano keyboard")
+    (description
+     "Virtual MIDI Piano Keyboard is a MIDI events generator and receiver.  It
+doesn't produce any sound by itself, but can be used to drive a MIDI
+synthesizer (either hardware or software, internal or external).  You can use
+the computer's keyboard to play MIDI notes, and also the mouse.  You can use
+the Virtual MIDI Piano Keyboard to display the played MIDI notes from another
+instrument or MIDI file player.")
+    (license license:gpl3+)))
+
 (define-public zynaddsubfx
   (package
     (name "zynaddsubfx")
@@ -2099,7 +2143,7 @@ capabilities, custom envelopes, effects, etc.")
 (define-public yoshimi
   (package
     (name "yoshimi")
-    (version "1.5.10.2")
+    (version "1.6.0.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/yoshimi/"
@@ -2107,10 +2151,10 @@ capabilities, custom envelopes, effects, etc.")
                                   "/yoshimi-" version ".tar.bz2"))
               (sha256
                (base32
-                "1rr99qkq80s8l2iv3x4ccxan07m15dvmd5s9b10386bfjbwbya01"))))
+                "140f2k4akj39pny8c7i794q125415gyvmy4rday0il5ncp3glik4"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f ; there are no tests
+     `(#:tests? #f                      ; there are no tests
        #:configure-flags
        (list (string-append "-DCMAKE_INSTALL_DATAROOTDIR="
                             (assoc-ref %outputs "out") "/share"))
@@ -2750,7 +2794,7 @@ websites such as Libre.fm.")
                   (add-before 'build 'change-directory
                     (lambda _
                       (chdir "instantmusic-0.1") #t))
-                  (add-before 'check 'fix-file-permissions
+                  (add-before 'install 'fix-file-permissions
                     (lambda _
                       ;; Fix some read-only files that would cause a build failure
                       (for-each (cut chmod <> #o644)
@@ -2766,14 +2810,13 @@ Songs can be searched by artist, name or even by a part of the song text.")
 (define-public beets
   (package
     (name "beets")
-    (version "1.4.7")
+    (version "1.4.9")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "beets" version))
-              (patches (search-patches "beets-python-3.7-fix.patch"))
               (sha256
                (base32
-                "0w3gz69s9gf5ih69d4sddgh7ndj7658m621bp742zldvjakdncrs"))))
+                "0m40rjimvfgy1dv04p8f8d5dvi2855v4ix99a9xr900cmcn476yj"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -2782,12 +2825,6 @@ Songs can be searched by artist, name or even by a part of the song text.")
            (lambda _
              (setenv "HOME" (string-append (getcwd) "/tmp"))
              #t))
-         (add-after 'unpack 'make-python3.7-compatible
-           (lambda _
-             ;; See <https://github.com/beetbox/beets/issues/2978>.
-             (substitute* "beets/autotag/hooks.py"
-              (("re\\._pattern_type") "re.Pattern"))
-             #t))
          (replace 'check
            (lambda _
              (invoke "nosetests" "-v"))))))
@@ -2811,7 +2848,7 @@ Songs can be searched by artist, name or even by a part of the song text.")
        ("python-mutagen" ,python-mutagen)
        ("python-pyyaml" ,python-pyyaml)
        ("python-unidecode" ,python-unidecode)))
-    (home-page "http://beets.io")
+    (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
@@ -2951,8 +2988,7 @@ with a number of bugfixes and changes to improve IT playback.")
               (patches (search-patches "sooperlooper-build-with-wx-30.patch"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags (list "CXXFLAGS=-std=gnu++11")
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'add-sigc++-includes
            (lambda* (#:key inputs #:allow-other-keys)
@@ -2964,7 +3000,8 @@ with a number of bugfixes and changes to improve IT playback.")
                                       sig "/lib/sigc++-2.0/include:"
                                       xml "/include/libxml2/:"
                                       cwd "/libs/pbd:"
-                                      cwd "/libs/midi++")))
+                                      cwd "/libs/midi++:"
+                                      (or (getenv "CPATH") ""))))
              (substitute* '("src/control_osc.hpp"
                             "src/gui/app_frame.hpp"
                             "src/gui/config_panel.hpp"
@@ -4483,3 +4520,105 @@ discard bad quality ones.
 controller.")
     (home-page "https://github.com/charlesfleche/lpd8editor")
     (license license:expat)))
+
+(define-public fmit
+  (package
+    (name "fmit")
+    (version "1.2.13")
+    (source (origin
+	      (method git-fetch)
+	      (uri (git-reference
+		    (url "https://github.com/gillesdegottex/fmit/")
+		    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+	      (sha256
+               (base32
+                "1qyskam053pvlap1av80rgp12pzhr92rs88vqs6s0ia3ypnixcc6"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+	 (delete 'configure)
+	 (add-before 'build 'qmake
+	   (lambda _
+	     (let ((out (assoc-ref %outputs "out")))
+               (invoke "qmake"
+                       "fmit.pro"
+                       (string-append "PREFIX=" out)
+                       (string-append "PREFIXSHORTCUT=" out)
+                       "CONFIG+=acs_qt acs_alsa acs_jack acs_portaudio"))))
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/fmit")
+                 `("QT_PLUGIN_PATH" ":" prefix
+                   ,(map (lambda (label)
+                           (string-append (assoc-ref inputs label)
+                                          "/lib/qt5/plugins"))
+                         '("qtbase" "qtmultimedia" "qtsvg")))
+                 `("QML2_IMPORT_PATH" ":" prefix
+                   ,(map (lambda (label)
+                           (string-append (assoc-ref inputs label)
+                                          "/lib/qt5/qml"))
+                         '("qtmultimedia"))))
+               #t))))))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("fftw" ,fftw)
+       ("jack" ,jack-1)
+       ("portaudio" ,portaudio)
+       ("qtbase" ,qtbase)
+       ("qtmultimedia" ,qtmultimedia)
+       ("qtsvg" ,qtsvg)))
+    (native-inputs
+     `(("gettext" ,gnu-gettext)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("itstool" ,itstool)
+       ("qttools" ,qttools)))
+    (synopsis "Musical instrument tuner")
+    (description "FMIT is a graphical utility for tuning musical instruments,
+with error and volume history, and advanced features.")
+    (home-page "https://gillesdegottex.github.io/fmit/")
+    ;; Most of the code is under GPL2+, but some abstract or helper classes
+    ;; are under LGPL2.1.
+    (license (list license:gpl2+ license:lgpl2.1))))
+
+(define-public mloop
+  (let ((commit "adebff98b0b4dc5872a03acb82e89c77cb29c127")
+        (revision "0"))
+    (package
+      (name "mloop")
+      (version (git-version "0.0.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "http://git.fuzzle.org/mloop")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "175gxvg5slq0bllcx1c381rjlq3xpxww8c3kpiw5i2kfr4m52myz"))))
+      (build-system waf-build-system)
+      (arguments
+       `(#:python ,python-2
+         #:tests? #f))                     ; no "check" target
+      (inputs
+       `(("jack" ,jack-1)
+         ("ncurses" ,ncurses)))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (home-page "https://fuzzle.org/~petern/mloop.html")
+      (synopsis "Live MIDI looper")
+      (description "mloop is a live MIDI looping system, using jack-midi.
+Loops are recorded, optionally with beat quantization, and can then be played
+back, either once or looping.  A 'note cache' system is implemented to
+remember which notes are pressed and their velocities.  This allows for a loop
+to start off with the currently pressed notes, making seamless loops much
+easier to perform.  Features include:
+
+@itemize
+@item Quantisation; end a loop on a beat exactly.
+@item Delayed recording; wait for a MIDI event before starting a loop record.
+@item Adjust tempo; Playback speed of loops can be adjusted on the fly.
+@end itemize\n")
+      (license license:gpl2))))