;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
+;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org>
;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
+;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
(define-public aria-maestosa
(package
(name "aria-maestosa")
- (version "1.4.11")
+ (version "1.4.13")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/ariamaestosa/ariamaestosa/"
version "/AriaSrc-" version ".tar.bz2"))
(sha256
(base32
- "0gf9z96z83jiabxhpl856j15vl9flfgs6x1r0r6hc7g2xvwag0vy"))))
+ "1cs3z6frx2ch7rm5ammx9p0rxcjrbj1vq14hvcbimpaw39rdsn3d"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no tests
(define-public denemo
(package
(name "denemo")
- (version "2.0.14")
+ (version "2.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/denemo/denemo-"
version ".tar.gz"))
(sha256
(base32
- "1a7g38695g7jjypx25qp0dx0asrh72xwdj0mdhmb9pfyzlppq0wh"))))
+ "0hggf8c4xcrjcxd5m00r788r7jg7g8ff54w2idfaqpj5j2ix3299"))))
(build-system gnu-build-system)
(arguments
`(#:phases
("emacs" ,emacs-no-x)))
;; Extempore refuses to build on architectures other than x86_64
(supported-systems '("x86_64-linux"))
- (home-page "http://benswift.me/extempore-docs/index.html")
+ (home-page "http://digego.github.io/extempore/")
(synopsis "Programming environment for live coding of multimedia")
(description
"Extempore is a programming language and runtime environment designed
(define-public lilypond
(package
(name "lilypond")
- (version "2.19.51")
+ (version "2.19.58")
(source (origin
(method url-fetch)
(uri (string-append
name "-" version ".tar.gz"))
(sha256
(base32
- "1b4jvc0fixbnp8x457fzk5wgb4zd03npwwivp60kc27fmv63w5l1"))))
+ "0wjapb3if6qqdmr57z20hidx7czhl023cjimr01i8yf7k41fakh7"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; out-test/collated-files.html fails
(define-public non-sequencer
;; The latest tagged release is three years old and uses a custom build
;; system, so we take the last commit.
- (let ((commit "a22f33f486a5c6f75b60e36f66504c036c0f6f8c")
- (revision "2"))
+ (let ((commit "10c31e57291b6e42be53371567a722b62b32d220")
+ (revision "3"))
(package
(name "non-sequencer")
(version (string-append "1.9.5-" revision "." (string-take commit 7)))
(commit commit)))
(sha256
(base32
- "09q5x8i4f8mqnl8w6xnsq5zriy4bzdl4x2vq9n34a433rfrk84bg"))
+ "080rha4ffp7qycyg1mqcf4vj0s7z8qfvz6bxm0w29xgg2kkmb3fx"))
(file-name (string-append name "-" version "-checkout"))))
(build-system waf-build-system)
(arguments
(define-public powertabeditor
(package
(name "powertabeditor")
- (version "2.0.0-alpha8")
+ (version "2.0.0-alpha9")
(source (origin
(method url-fetch)
(uri (string-append
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0gaa2x209v3azql8ak3r1n9a9qbxjx2ssirvwdxwklv2lmfqkm82"))
+ "1zjdz1qpkl83xr6dkap8airqcyjs3mxc5dzfyhrrvkyr7dics7ii"))
(modules '((guix build utils)))
(snippet
'(begin
;; Remove bundled sources for external libraries
(delete-file-recursively "external")
+ ;; Use only system libraries
(substitute* "CMakeLists.txt"
- (("include_directories\\(\\$\\{PROJECT_SOURCE_DIR\\}/external/.*") "")
- (("add_subdirectory\\(external\\)") ""))
- (substitute* "test/CMakeLists.txt"
- (("include_directories\\(\\$\\{PROJECT_SOURCE_DIR\\}/external/.*") ""))
-
- ;; Add install target
- (substitute* "source/CMakeLists.txt"
- (("qt5_use_modules")
- (string-append
- "install(TARGETS powertabeditor "
- "RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)\n"
- "install(FILES data/tunings.json DESTINATION "
- "${CMAKE_INSTALL_PREFIX}/share/powertabeditor/)\n"
- "qt5_use_modules")))
+ (("include\\( PTE_ThirdParty \\)")
+ "\
+include(third_party/Qt)
+include(third_party/boost)
+add_library( Catch INTERFACE IMPORTED )
+add_library( rapidjson INTERFACE IMPORTED )"))
#t))))
(build-system cmake-build-system)
(arguments
;; CMake appears to lose the RUNPATH for some reason, so it has to be
;; explicitly set with CMAKE_INSTALL_RPATH.
(list "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
- "-DCMAKE_ENABLE_PRECOMPILED_HEADERS=OFF" ; if ON pte_tests cannot be built
(string-append "-DCMAKE_INSTALL_RPATH="
(string-join (map (match-lambda
((name . directory)
(string-append directory "/lib")))
- %build-inputs) ";")))
+ %build-inputs) ";"))
+ "-DPTE_DATA_DIR=share/powertabeditor")
#:phases
(modify-phases %standard-phases
- (replace
- 'check
- (lambda _
- (zero? (system* "bin/pte_tests"
- ;; Exclude this failing test
- "~Formats/PowerTabOldImport/Directions"))))
- (add-before
- 'configure 'fix-tests
- (lambda _
- ;; Tests cannot be built with precompiled headers
- (substitute* "test/CMakeLists.txt"
- (("cotire\\(pte_tests\\)") ""))
- #t))
- (add-before
- 'configure 'remove-third-party-libs
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Link with required static libraries, because we're not
- ;; using the bundled version of withershins.
- (substitute* '("source/CMakeLists.txt"
- "test/CMakeLists.txt")
- (("target_link_libraries\\((powertabeditor|pte_tests)" _ target)
- (string-append "target_link_libraries(" target " "
- (assoc-ref inputs "binutils")
- "/lib/libbfd.a "
- (assoc-ref inputs "libiberty")
- "/lib/libiberty.a "
- "dl")))
- #t)))))
+ (replace 'check
+ (lambda _
+ (zero? (system* "bin/pte_tests"
+ ;; FIXME: one test fails.
+ "exclude:Formats/PowerTabOldImport/Directions"))))
+ (add-after 'unpack 'set-target-directories
+ (lambda _
+ (substitute* "cmake/PTE_Executable.cmake"
+ (("set\\( install_dir.*")
+ "set( install_dir bin )\n"))
+ (substitute* "cmake/PTE_Paths.cmake"
+ (("set\\( PTE_DATA_DIR .*")
+ "set( PTE_DATA_DIR share/powertabeditor )\n"))
+ ;; Tests hardcode the data directory as "data"
+ (substitute* "test/CMakeLists.txt"
+ (("\\$\\{PTE_DATA_DIR\\}") "data"))
+ #t))
+ (add-before 'configure 'remove-third-party-libs
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Link with required static libraries, because we're not
+ ;; using the bundled version of withershins.
+ ;; Also add pthread for fixing a linker error.
+ (substitute* "source/build/CMakeLists.txt"
+ (("withershins" line)
+ (string-append line "\n"
+ (assoc-ref inputs "binutils")
+ "/lib/libbfd.a\n"
+ (assoc-ref inputs "libiberty")
+ "/lib/libiberty.a\n"
+ "dl\n"
+ "pthread\n"
+ "z\n")))
+ #t)))))
(inputs
`(("boost" ,boost)
("alsa-lib" ,alsa-lib)
(define-public synthv1
(package
(name "synthv1")
- (version "0.8.0")
+ (version "0.8.1")
(source (origin
(method url-fetch)
(uri
"/synthv1-" version ".tar.gz"))
(sha256
(base32
- "155pfyhr6d35ciw95pbxlqy7751cmij8j5d849rvblqbjzyzb5qx"))))
+ "0rzkr8mgy28j5kg56qqrdm05ml2wlm651yk27c2mn5ql7v92gdx3"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There are no tests.
(define-public drumkv1
(package
(name "drumkv1")
- (version "0.8.0")
+ (version "0.8.1")
(source (origin
(method url-fetch)
(uri
"/drumkv1-" version ".tar.gz"))
(sha256
(base32
- "1n2kd468kn71yp2asmamprvblmdlvh0zd8lsh3598dwi4b7aa3ga"))))
+ "0l6kjb1q9vslwy56836a0c65mf8z8ycam5vzz3k4qvd8g74bs1zq"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There are no tests.
(define-public samplv1
(package
(name "samplv1")
- (version "0.8.0")
+ (version "0.8.1")
(source (origin
(method url-fetch)
(uri
"/samplv1-" version ".tar.gz"))
(sha256
(base32
- "0j3hkmd9q0bw9b7nk9cssqywlrishkd1n790a9vq6gh3pdc5sf3r"))))
+ "15rp9d1jbb56idyrnn9cqi1i7a70z1a1qdyz7ryn0bla0ghjnich"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There are no tests.
(define-public amsynth
(package
(name "amsynth")
- (version "1.6.4")
+ (version "1.7.1")
(source
(origin
(method url-fetch)
"/amsynth-" version ".tar.bz2"))
(sha256
(base32
- "07dp9dl38g9krjqxxh89l2z42z08yzrl57cx95b1l67xnxwjp5k3"))))
+ "1882pfcmf3rqg3vd4qflzkppcv158d748i603spqjbxqi8z7x7w0"))))
(build-system gnu-build-system)
(arguments
`(#:phases
`(("alsa-lib" ,alsa-lib)
("jack" ,jack-1)
("lv2" ,lv2)
+ ("lash" ,lash)
("libsndfile" ,libsndfile)
("gtk+" ,gtk+-2)
("gtkmm" ,gtkmm-2)))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
(home-page "http://amsynth.github.io")
(synopsis "Analog modeling synthesizer")
(description
(define-public setbfree
(package
(name "setbfree")
- (version "0.8.1")
+ (version "0.8.4")
(source (origin
(method url-fetch)
(uri
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0hj0rqk5yd4fzs7bwy6a6nhqgrmcggkjcr4il76rxy92r7nwabf3"))))
+ "1g4s1920kb2q5gpp82l2vxia29qa8g8zvdjgrca8ypynvxpzn65f"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
(substitute* "bristol/Makefile.in"
(("-msse -mfpmath=sse") "")))
#t))
+ ;; alsa-lib 1.1.x no longer provides iatomic.h. That's okay because
+ ;; bristol actually doesn't use it.
+ (add-after 'unpack 'do-not-use-alsa-iatomic
+ (lambda _
+ (substitute* "libbristolaudio/audioEngineJack.c"
+ (("#include <alsa/iatomic.h>") ""))
+ #t))
;; We know that Bristol has been linked with JACK and we don't have
;; ldd, so we can just skip this check.
(add-after 'unpack 'do-not-grep-for-jack
(define-public tuxguitar
(package
(name "tuxguitar")
- (version "1.3.2")
+ (version "1.4")
(source (origin
(method url-fetch)
(uri (string-append
version "/tuxguitar-" version "-src.tar.gz"))
(sha256
(base32
- "0ldml31zvywid1w28mfd65ramyiics55fdl0ch846vm7j7nwv58j"))
+ "041275vwfr82kass7wiq9g2y82w9qrbzfinzcvfij2f2q45njwmc"))
(modules '((guix build utils)))
(snippet
- ;; Delete pre-built classes
- '(delete-file-recursively "TuxGuitar-android/bin"))))
+ '(begin
+ ;; Delete pre-built classes
+ (delete-file-recursively "TuxGuitar-android-gdrive/bin")
+ (delete-file-recursively "TuxGuitar-android-gdrive-gdaa/bin")
+ #t))))
(build-system ant-build-system)
(arguments
`(#:build-target "build"
(modify-phases %standard-phases
(add-after 'unpack 'enter-dir
(lambda _ (chdir "TuxGuitar-lib") #t))
- (add-after 'build 'build-editor-utils
+ (add-after 'build 'build-libraries
(lambda* (#:key inputs outputs #:allow-other-keys)
- (chdir "..")
- (let ((cwd (getcwd)))
- (setenv "CLASSPATH"
- (string-append
- cwd "/TuxGuitar-lib/tuxguitar-lib.jar" ":"
- cwd "/TuxGuitar-editor-utils/build/jar/tuxguitar-editor-utils.jar" ":"
- (getenv "CLASSPATH"))))
- (chdir "TuxGuitar-editor-utils")
- ;; Generate default build.xml
- ((@@ (guix build ant-build-system) default-build.xml)
- "tuxguitar-editor-utils.jar"
- (string-append (assoc-ref outputs "out")
- "/share/java"))
- ((assoc-ref %standard-phases 'build))))
- (add-after 'build-editor-utils 'build-application
+ (let* ((initial-classpath (getenv "CLASSPATH"))
+ (build-dir (lambda (dir)
+ (chdir "..")
+ (setenv "CLASSPATH"
+ (string-join (cons initial-classpath
+ (find-files (getcwd) "\\.jar$"))
+ ":"))
+ (chdir dir)
+ (if (file-exists? "build.xml")
+ ((assoc-ref %standard-phases 'build)
+ #:build-target "build")
+ (begin
+ ;; Generate default build.xml
+ ((@@ (guix build ant-build-system) default-build.xml)
+ (string-append (string-downcase dir) ".jar")
+ (string-append (assoc-ref outputs "out")
+ "/share/java"))
+ ((assoc-ref %standard-phases 'build)))))))
+ (map build-dir '("TuxGuitar-editor-utils"
+ "TuxGuitar-ui-toolkit"
+ "TuxGuitar-ui-toolkit-swt"
+ "TuxGuitar-awt-graphics")))))
+ (add-after 'build-libraries 'build-application
(lambda _
(chdir "../TuxGuitar")
((assoc-ref %standard-phases 'build)
(for-each (lambda (file)
(install-file file lib))
(find-files ".." "\\.jar$"))
+
;; install all resources
- (for-each (lambda (file)
- (install-file file share))
- (find-files "share" ".*"))
+ (copy-recursively "share" share)
+
;; create wrapper
(call-with-output-file (string-append bin "/tuxguitar")
(lambda (port)
#t))))))
(inputs
`(("java-swt" ,java-swt)))
- (home-page "http://tuxguitar.com.ar")
+ (home-page "http://tuxguitar.pw")
(synopsis "Multitrack tablature editor and player")
(description
"TuxGuitar is a guitar tablature editor with player support through midi.
(define-public pd
(package
(name "pd")
- (version "0.45.4")
+ (version "0.47-1")
(source (origin
(method url-fetch)
(uri
- (string-append "mirror://sourceforge/pure-data/pure-data/"
- version "/pd-" (version-major+minor version)
- "-" (last (string-split version #\.))
- ".src.tar.gz"))
+ (string-append "http://msp.ucsd.edu/Software/pd-"
+ version ".src.tar.gz"))
(sha256
(base32
- "1ls2ap5yi2zxvmr247621g4jx0hhfds4j5704a050bn2n3l0va2p"))))
+ "0k5s949kqd7yw97h3m8z81bjz32bis9m4ih8df1z0ymipnafca67"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
- (add-before
- 'configure 'fix-wish-path
- (lambda _
- (substitute* "src/s_inter.c"
- ((" wish ") (string-append " " (which "wish8.6") " ")))
- (substitute* "tcl/pd-gui.tcl"
- (("exec wish ") (string-append "exec " (which "wish8.6") " ")))
- #t))
- (add-after
- 'unpack 'autoconf
- (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
+ (add-before 'configure 'fix-wish-path
+ (lambda _
+ (substitute* "src/s_inter.c"
+ ((" wish ") (string-append " " (which "wish8.6") " ")))
+ (substitute* "tcl/pd-gui.tcl"
+ (("exec wish ") (string-append "exec " (which "wish8.6") " ")))
+ #t))
+ (add-after 'unpack 'autoconf
+ (lambda _ (zero? (system* "bash" "./autogen.sh")))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
(define-public frescobaldi
(package
(name "frescobaldi")
- (version "2.19.0")
+ (version "3.0.0")
(source (origin
(method url-fetch)
(uri (string-append
version "/frescobaldi-" version ".tar.gz"))
(sha256
(base32
- "1rnk8i8dlshzx16n2qxcsqcs7kywgyazzyzw2vy4vp2gsm9vs9ml"))))
+ "15cqhbjbjikr7ljgiq56bz2gxrr38j8p0f78p2vhyzydaviy9a2z"))))
(build-system python-build-system)
(arguments `(#:tests? #f)) ; no tests included
(inputs
`(("lilypond" ,lilypond)
("portmidi" ,portmidi)
- ("python-pyqt-4" ,python-pyqt-4)
+ ("python-pyqt" ,python-pyqt)
("python-ly" ,python-ly)
("python-pyportmidi" ,python-pyportmidi)
("poppler" ,poppler)
- ("python-poppler-qt4" ,python-poppler-qt4)
+ ("python-poppler-qt5" ,python-poppler-qt5)
("python-sip" ,python-sip)))
(home-page "http://www.frescobaldi.org/")
(synopsis "LilyPond sheet music text editor")
(define-public yoshimi
(package
(name "yoshimi")
- (version "1.5.0")
+ (version "1.5.1.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/yoshimi/"
"/yoshimi-" version ".tar.bz2"))
(sha256
(base32
- "10s1i18xlmvqfrnr0zn2mj2b28i7p62dlqzzzkmpaapqj1gsgpz5"))))
+ "1gjanmbn08x11iz4bjlkx3m66x0yk401ddkz8fqkj7y3p5ih1kna"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; there are no tests
improves on support for JACK features, such as JACK MIDI.")
(license license:gpl2)))
+(define-public libgig
+ (package
+ (name "libgig")
+ (version "4.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://download.linuxsampler.org/packages/"
+ "libgig-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1wr8mwjmqpnyz6bx9757lspiii1zzn8zfbqsvn2ipzpgqkxv6kaz"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libuuid" ,util-linux)
+ ("libsndfile" ,libsndfile)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://linuxsampler.org/libgig/")
+ (synopsis "C++ library for working with Gigasampler (.gig) files")
+ (description
+ "Libgig is a C++ library for loading, modifying existing and creating new
+Gigasampler (.gig) files and DLS (Downloadable Sounds) Level 1/2 files, KORG
+sample based instruments (.KSF and .KMP files), SoundFont v2 (.sf2) files and
+AKAI sampler data. The package includes a couple of command line tools based
+on the library.")
+ ;; The library and tools are released under the GPL, except the AKAI
+ ;; classes which are released under the LGPL.
+ (license (list license:gpl2+ license:lgpl2.1+))))
+
(define-public jack-keyboard
(package
(name "jack-keyboard")
;; prevents us from using pulseaudio
(inputs `(("ncurses" ,ncurses)
("alsa" ,alsa-lib)))
- (home-page "http://www.gnu.org/software/cursynth")
+ (home-page "https://www.gnu.org/software/cursynth/")
(synopsis "Polyphonic and MIDI subtractive music synthesizer using curses")
(description "GNU cursynth is a polyphonic synthesizer that runs
graphically in the terminal. It is built on a full-featured subtractive
(define-public qtractor
(package
(name "qtractor")
- (version "0.8.0")
+ (version "0.8.1")
(source (origin
(method url-fetch)
(uri (string-append "http://downloads.sourceforge.net/qtractor/"
"qtractor-" version ".tar.gz"))
(sha256
(base32
- "17v563liyqcvil204ry1qfp09d91944nqz2ig33f5c3pyg4z2427"))))
+ "1pvs9r5ykfaci900p0kz2xc5xsrswnwwbcl2chsvd98f1ns4vwds"))))
(build-system gnu-build-system)
(arguments `(#:tests? #f)) ; no "check" target
(inputs
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
- (home-page "http://qtractor.sourceforge.net/")
+ (home-page "http://qtractor.org/")
(synopsis "Audio/MIDI multi-track sequencer")
(description
"Qtractor is an Audio/MIDI multi-track sequencer application. It uses
(define-public ams-lv2
(package
(name "ams-lv2")
- (version "1.2.0")
+ (version "1.2.1")
(source
(origin
(method url-fetch)
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1392spswkhfd38fggf584wb3m8aqpg7csfrs9zxnzyvhgmp0fgqk"))))
+ "1xacxyzqcj83g9c1gwfn36gg1c6yi15v7km4vidfidrjzb4x27fq"))))
(build-system waf-build-system)
(arguments
`(#:phases
(define-public mod-host
;; The last release was in 2014 but since then more than 140 commits have
;; been made.
- (let ((commit "72aca771e3a4e3889641b9bab84985586c9bb926")
- (revision "1"))
+ (let ((commit "299a3977476e8eb0285837fbd7522cec506a11de")
+ (revision "2"))
(package
(name "mod-host")
(version (string-append "0.10.6-" revision "." (string-take commit 9)))
(commit commit)))
(sha256
(base32
- "19szi8cy65jlchbrmbjbma03g6gxj9zyyp4dgw1k06r0cxbx82gq"))
+ "128q7p5mph086v954rqnafalfbkyvhgwclaq6ks6swrhj45wnag6"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
#t)))))
(inputs
`(("lilv" ,lilv)
- ("fftw" ,fftw-with-threads)
- ("fftwf" ,fftwf-with-threads)
+ ("fftw" ,fftw)
+ ("fftwf" ,fftwf)
("lv2" ,lv2)
("jack" ,jack-1)
("readline" ,readline)))
(define-public pianobar
(package
(name "pianobar")
- (version "2015.11.22")
+ (version "2016.06.02")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/PromyLOPh/"
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "022df19bhxqvkhy0qy21xahba5s1fm17b13y0p9p9dnf2yl44wfv"))))
+ "1hi5rr6jcr0kwf4xfz007ndwkjkp287lhwlsgfz6iryqa5n6jzcp"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
(define-public python-mutagen
(package
(name "python-mutagen")
- (version "1.35.1")
+ (version "1.36")
(source (origin
(method url-fetch)
(uri (pypi-uri "mutagen" version))
(sha256
(base32
- "0klk68c1n3285vvm2xzk8ii7mlqp1dxii04askan0gi1wlpagka9"))))
+ "1kabb9b81hgvpd3wcznww549vss12b1xlvpnxg1r6n4c7gikgvnp"))))
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)))
(base32
"0bml11gfkxqd3i2jxkn5k2xllc4rvxjcyhs8an05gcyy1zp2bwvb"))))
(build-system python-build-system)
+ (arguments
+ '(#:tests? #f)) ; FIXME: Requires unpackaged python-flaky.
(native-inputs
`(("python-coverage" ,python-coverage)
("python-mock" ,python-mock)
(define-public beets
(package
(name "beets")
- (version "1.4.2")
+ (version "1.4.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "beets" version))
(sha256
(base32
- "0sna2hx8sdaa36jnvw5a7m31wzfm717lw2ixh906fsfp43i74k5m"))))
+ "0r743a2pv1iyw50jsdl01v2ml3pdkhdp920a5d1wsacak48vwgxr"))))
(build-system python-build-system)
(arguments
`(#:phases
;; TODO: Install optional plugins and dependencies.
(inputs
`(("python-discogs-client" ,python-discogs-client)
- ("python-enum34" ,python-enum34)
("python-jellyfish" ,python-jellyfish)
("python-munkres" ,python-munkres)
("python-musicbrainzngs" ,python-musicbrainzngs)
(define-public milkytracker
(package
(name "milkytracker")
- (version "0.90.86")
+ (version "1.0.0")
(source (origin
(method url-fetch)
- (uri (string-append "http://milkytracker.titandemo.org/files/"
- name "-" version ".tar.bz2"))
+ (uri (string-append "https://github.com/milkytracker/"
+ "MilkyTracker/archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1v9vp8vi24lkagfpr92c128whvakwgrm9pq2zf6ijpl5sh7014zb"))))
- (build-system gnu-build-system)
+ "1p1jd4h274jvcvl05l01v9bj19zhq4sjag92v1zawyi93ib85abz"))
+ (modules '((guix build utils)))
+ ;; Remove non-FSDG compliant sample songs.
+ (snippet
+ '(begin
+ (delete-file-recursively "resources/music")
+ (substitute* "CMakeLists.txt"
+ (("add_subdirectory\\(resources/music\\)") ""))))))
+ (build-system cmake-build-system)
(arguments
- `(#:make-flags '("CXXFLAGS=-lasound")))
+ '(#:tests? #f)) ; no check target
(inputs
`(("alsa-lib" ,alsa-lib)
("jack" ,jack-1)
- ("sdl" ,sdl)
+ ("sdl" ,sdl2)
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(define-public schismtracker
(package
(name "schismtracker")
- (version "20160521")
+ (version "20160913")
(source (origin
(method url-fetch)
(uri (string-append
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0c6r24wm3rldm4j8cskl9xnixj3rwi3lnrhckw5gv43wpy6h4jcz"))
+ "1sc813qi4gl6mf7xp8rrarvyigzhxv3qdrryqsy42yxsb2jcwbrw"))
(modules '((guix build utils)))
(snippet
;; Remove use of __DATE__ and __TIME__ for reproducibility.
`(substitute* "schism/version.c"
- (("Schism Tracker build %s %s.*$")
+ (("Schism Tracker built %s %s.*$")
(string-append "Schism Tracker version " ,version "\");"))))))
(build-system gnu-build-system)
(arguments
(define-public moc
(package
(name "moc")
- (version "2.5.1")
+ (version "2.5.2")
(source (origin
(method url-fetch)
(uri (string-append "http://ftp.daper.net/pub/soft/"
name "-" version ".tar.bz2"))
(sha256
(base32
- "1wn4za08z64bhsgfhr9c0crfyvy8c3b6a337wx7gz19am5srqh8v"))))
+ "026v977kwb0wbmlmf6mnik328plxg8wykfx9ryvqhirac0aq39pk"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Remove use of __DATE__ and __TIME__ for reproducibility.
+ '(substitute* "main.c"
+ (("printf \\(\" Built : %s\", __DATE__\\);") "")
+ (("printf \\(\" %s\", __TIME__\\);") "")))))
(build-system gnu-build-system)
(inputs
`(("alsa-lib" ,alsa-lib)
("libmodplug" ,libmodplug)
("libmpcdec" ,libmpcdec)
("libmad" ,libmad)
+ ("libogg" ,libogg)
+ ("libvorbis" ,libvorbis)
("ncurses" ,ncurses)
("openssl" ,openssl)
("sasl" ,cyrus-sasl)
(license license:public-domain)))
(define-public gx-guvnor-lv2
- (let ((commit "9f528a7623a201383e119bb6a2df32b18396a9d5")
- (revision "1"))
- (package
- (name "gx-guvnor-lv2")
- (version (string-append "0-" revision "." (string-take commit 9)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/brummer10/GxGuvnor.lv2")
- (commit commit)))
- (sha256
- (base32
- "10zx84p2vd7i1yqc5ma9p17927265j4g0zfwv9rxladw0nm8y45k"))
- (file-name (string-append name "-" version "-checkout"))))
- (build-system gnu-build-system)
- (arguments
- `(;; The check target is used only to output a warning.
- #:tests? #f
- #:make-flags
- (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda _
- (substitute* "Makefile"
- (("INSTALL_DIR = .*") "INSTALL_DIR=/lib/lv2\n")
- ;; Avoid rebuilding everything
- (("install : all") "install:"))
- #t)))))
- (inputs
- `(("lv2" ,lv2)))
- (home-page "https://github.com/brummer10/GxGuvnor.lv2")
- (synopsis "Overdrive/distortion pedal simulation")
- (description "This package provides the LV2 plugin \"GxGuvnor\", a
+ (package
+ (name "gx-guvnor-lv2")
+ (version "0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/brummer10/GxGuvnor.lv2/"
+ "archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0rnfvrvs8qmmldyfmx4llyly33zp68448gx40ywdwj42x0mam92p"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(;; The check target is used only to output a warning.
+ #:tests? #f
+ #:make-flags
+ (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "Makefile"
+ (("INSTALL_DIR = .*") "INSTALL_DIR=/lib/lv2\n"))
+ #t)))))
+ (inputs
+ `(("lv2" ,lv2)))
+ (home-page "https://github.com/brummer10/GxGuvnor.lv2")
+ (synopsis "Overdrive/distortion pedal simulation")
+ (description "This package provides the LV2 plugin \"GxGuvnor\", a
simulation of an overdrive or distortion pedal for guitars.")
- ;; The LICENSE file says GPLv3 but the license headers in the files say
- ;; GPLv2 or later.
- (license license:gpl2+))))
+ ;; The LICENSE file says GPLv3 but the license headers in the files say
+ ;; GPLv2 or later.
+ (license license:gpl2+)))
(define-public gx-vbass-preamp-lv2
(let ((commit "0e599abab10c7669dd444e5d06f671c2fc1b9c6c")
(base32
"1dzksdfrva666gpi62fd2ni9rhf18sl917f1894qr0b17pbdh9k1"))
(file-name (string-append name "-" version "-checkout"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments gx-guvnor-lv2)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace 'configure
+ (lambda _
+ (substitute* "Makefile"
+ (("INSTALL_DIR = .*") "INSTALL_DIR=/lib/lv2\n")
+ (("install : all") "install :"))
+ #t))))))
(home-page "https://github.com/brummer10/GxVBassPreAmp.lv2")
(synopsis "Simulation of the Vox Venue Bass 100 Pre Amp Section")
(description "This package provides the LV2 plugin \"GxVBassPreAmp\", a
(define-public gx-overdriver-lv2
(let ((commit "ed71801987449414bf3adaa0dbfac68e8775f1ce")
(revision "1"))
- (package (inherit gx-guvnor-lv2)
+ (package (inherit gx-vbass-preamp-lv2)
(name "gx-overdriver-lv2")
(version (string-append "0-" revision "." (string-take commit 9)))
(source (origin
(define-public gx-tone-mender-lv2
(let ((commit "b6780b4a3e4782b3ed0e5882d6788f178aed138f")
(revision "1"))
- (package (inherit gx-guvnor-lv2)
+ (package (inherit gx-vbass-preamp-lv2)
(name "gx-tone-mender-lv2")
(version (string-append "0-" revision "." (string-take commit 9)))
(source (origin
(define-public gx-push-pull-lv2
(let ((commit "7f76ae2068498643ac8671ee0930b13ee3fd8eb5")
(revision "1"))
- (package (inherit gx-guvnor-lv2)
+ (package (inherit gx-vbass-preamp-lv2)
(name "gx-push-pull-lv2")
(version (string-append "0-" revision "." (string-take commit 9)))
(source (origin
simulation of a push pull transistor fuzz effect with added high octave."))))
(define-public gx-suppa-tone-bender-lv2
- (let ((commit "4e6dc713ec24e7fcf5ea23b7e685af627c01b9c9")
- (revision "1"))
- (package (inherit gx-guvnor-lv2)
- (name "gx-suppa-tone-bender-lv2")
- (version (string-append "0-" revision "." (string-take commit 9)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/brummer10/GxSuppaToneBender.lv2")
- (commit commit)))
- (sha256
- (base32
- "1i22xr252nkbazkwidll2zb3i96610gx65qn5djdkijlz7j77138"))
- (file-name (string-append name "-" version "-checkout"))))
- (home-page "https://github.com/brummer10/GxSuppaToneBender.lv2")
- (synopsis "Simulation of the Vox Suppa Tone Bender pedal")
- (description "This package provides the LV2 plugin
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-suppa-tone-bender-lv2")
+ (version "0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/brummer10/"
+ "GxSuppaToneBender.lv2/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1j90fns87035sfr6bxs4cvqxbyy3pqjhihx1nis8xajn202nl1hx"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (home-page "https://github.com/brummer10/GxSuppaToneBender.lv2")
+ (synopsis "Simulation of the Vox Suppa Tone Bender pedal")
+ (description "This package provides the LV2 plugin
\"GxSuppaToneBender\", a simulation modelled after the Vox Suppa Tone Bender
-pedal."))))
+pedal.")))
(define-public gx-saturator-lv2
(let ((commit "0b581ac85c515325b9f16e51937cae6e1bf81a0a")
(revision "2"))
- (package (inherit gx-guvnor-lv2)
+ (package (inherit gx-vbass-preamp-lv2)
(name "gx-saturator-lv2")
(version (string-append "0-" revision "." (string-take commit 9)))
(source (origin
saturation effect."))))
(define-public gx-hyperion-lv2
- (let ((commit "6a096a664e553e551e179e85cf390bd1683410fb")
- (revision "2"))
- (package (inherit gx-guvnor-lv2)
- (name "gx-hyperion-lv2")
- (version (string-append "0-" revision "." (string-take commit 9)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/brummer10/GxHyperion.lv2")
- (commit commit)))
- (sha256
- (base32
- "1ksv3wmylhwbf6kjl2lnhr14h9rfl291cfm21471gnb1r68yqfxh"))
- (file-name (string-append name "-" version "-checkout"))))
- (home-page "https://github.com/brummer10/GxHyperion.lv2")
- (synopsis "Simulation of the Hyperion Fuzz pedal")
- (description "This package provides the LV2 plugin \"GxHyperion\", a
-simulation of the Hyperion Fuzz pedal."))))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-hyperion-lv2")
+ (version "0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/brummer10/"
+ "GxHyperion.lv2/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1pd7l33a14kq73wavgqq7csw4n3mwjz9d5rxaj0jgsyxd3llp3wh"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (home-page "https://github.com/brummer10/GxHyperion.lv2")
+ (synopsis "Simulation of the Hyperion Fuzz pedal")
+ (description "This package provides the LV2 plugin \"GxHyperion\", a
+simulation of the Hyperion Fuzz pedal.")))
(define-public gx-voodoo-fuzz-lv2
- (let ((commit "aec7889b489385e8add06126e7a36ae2e26254b1")
- (revision "2"))
- (package (inherit gx-guvnor-lv2)
- (name "gx-voodoo-fuzz-lv2")
- (version (string-append "0-" revision "." (string-take commit 9)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/brummer10/GxVoodoFuzz.lv2")
- (commit commit)))
- (sha256
- (base32
- "0mc41ldlv89069iaysnfiqxy5h5sr8mdi5cxm3ij5q5v4jv3viwx"))
- (file-name (string-append name "-" version "-checkout"))))
- (home-page "https://github.com/brummer10/GxVoodoFuzz.lv2")
- (synopsis "Fuzz effect modelled after the Voodoo Lab SuperFuzz")
- (description "This package provides the LV2 plugin \"GxVoodooFuzz\", a
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-voodoo-fuzz-lv2")
+ (version "0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/brummer10/"
+ "GxVoodoFuzz.lv2/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0cc8sg7q493bs6pcq4ipqp6czpxv04nh9yvn8kq2x65ni2208n2f"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (home-page "https://github.com/brummer10/GxVoodoFuzz.lv2")
+ (synopsis "Fuzz effect modelled after the Voodoo Lab SuperFuzz")
+ (description "This package provides the LV2 plugin \"GxVoodooFuzz\", a
simulation modelled after the Voodoo Lab SuperFuzz pedal. It's basically a
Bosstone circuit, followed by the tone control of the FoxToneMachine in
-parallel with a DarkBooster, followed by a volume control."))))
+parallel with a DarkBooster, followed by a volume control.")))
(define-public gx-super-fuzz-lv2
- (let ((commit "f40389575812c909007d140d327ce579930b71f7")
- (revision "2"))
- (package (inherit gx-guvnor-lv2)
- (name "gx-super-fuzz-lv2")
- (version (string-append "0-" revision "." (string-take commit 9)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/brummer10/GxSuperFuzz.lv2")
- (commit commit)))
- (sha256
- (base32
- "174bibj8qzm8zr6f5h8bcj94iry17zravk8flpdy84n6yg7cixji"))
- (file-name (string-append name "-" version "-checkout"))))
- (home-page "https://github.com/brummer10/GxSuperFuzz.lv2")
- (synopsis "Fuzz effect modelled after the UniVox SuperFuzz")
- (description "This package provides the LV2 plugin \"GxVoodooFuzz\", an
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-super-fuzz-lv2")
+ (version "0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/brummer10/"
+ "GxSuperFuzz.lv2/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0pnivq05f1kji8c5jxsqdzhdfk3xn422v2d1x20x3jfsxnaf115x"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (home-page "https://github.com/brummer10/GxSuperFuzz.lv2")
+ (synopsis "Fuzz effect modelled after the UniVox SuperFuzz")
+ (description "This package provides the LV2 plugin \"GxSuperFuzz\", an
analog simulation of the UniVox SuperFuzz pedal. In this simulation the trim
-pot, which is usualy in the housing, is exposed as a control parameter. It
-adjusts the amount of harmonics."))))
+pot, which is usually in the housing, is exposed as a control parameter. It
+adjusts the amount of harmonics.")))
(define-public gx-vintage-fuzz-master-lv2
- (let ((commit "0fec0bc1e8a8ba909a68e916e036138a3425d7db")
- (revision "2"))
- (package (inherit gx-guvnor-lv2)
- (name "gx-vintage-fuzz-master-lv2")
- (version (string-append "0-" revision "." (string-take commit 9)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/brummer10/GxVintageFuzzMaster.lv2")
- (commit commit)))
- (sha256
- (base32
- "06szi6d2iwkygbw5azhwzhcl2as4lmk2gs9hanngsf46a1zbdcp7"))
- (file-name (string-append name "-" version "-checkout"))))
- (home-page "https://github.com/brummer10/GxVintageFuzzMaster.lv2")
- (synopsis "Fuzz effect simulation of the vintage Fuzz Master")
- (description "This package provides the LV2 plugin
-\"GxVintageFuzzMaster\", a simulation of the vintage Fuzz Master pedal."))))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-vintage-fuzz-master-lv2")
+ (version "0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/brummer10/"
+ "GxVintageFuzzMaster.lv2/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0bdkfj6xi2g4izfw3pmr4i0nqzg8jnkdwc23x9ifxwc6p1kbayzk"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (home-page "https://github.com/brummer10/GxVintageFuzzMaster.lv2")
+ (synopsis "Fuzz effect simulation of the vintage Fuzz Master")
+ (description "This package provides the LV2 plugin
+\"GxVintageFuzzMaster\", a simulation of the vintage Fuzz Master pedal.")))
(define-public gx-slow-gear-lv2
(let ((commit "cb852e0426f4e6fe077e7f1ede73a4da335cfc5e")
(revision "2"))
- (package (inherit gx-guvnor-lv2)
+ (package (inherit gx-vbass-preamp-lv2)
(name "gx-slow-gear-lv2")
(version (string-append "0-" revision "." (string-take commit 9)))
(source (origin
(define-public gx-switchless-wah-lv2
(let ((commit "7b08691203314612999f0ce2328cdc1161cd6665")
(revision "2"))
- (package (inherit gx-guvnor-lv2)
+ (package (inherit gx-vbass-preamp-lv2)
(name "gx-switchless-wah-lv2")
(version (string-append "0-" revision "." (string-take commit 9)))
(source (origin
(define-public python2-discogs-client
(package-with-python2 python-discogs-client))
+
+(define-public libsmf
+ (package
+ (name "libsmf")
+ (version "1.3")
+ (source
+ (origin
+ (method url-fetch)
+ ;; SF download page says development moved, but the link it points to
+ ;; is gone (https://github.com/nilsgey/libsmf). Someone else adopted
+ ;; it but made no release so far (https://github.com/stump/libsmf).
+ (uri (string-append "mirror://sourceforge/libsmf/libsmf/"
+ version "/libsmf-" version ".tar.gz"))
+ (sha256
+ (base32
+ "16c0n40h0r56gzbh5ypxa4dwp296dan3jminml2qkb4lvqarym6k"))))
+ (build-system gnu-build-system)
+ (outputs '("out"
+ "static")) ; 88KiB of .a files
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'move-static-libraries
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Move static libraries to the "static" output.
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (static (assoc-ref outputs "static"))
+ (slib (string-append static "/lib")))
+ (mkdir-p slib)
+ (for-each (lambda (file)
+ (install-file file slib)
+ (delete-file file))
+ (find-files lib "\\.a$"))
+ #t))))))
+ (inputs
+ `(("readline" ,readline)
+ ("glib" ,glib)))
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("pkg-config" ,pkg-config)))
+ (home-page "http://libsmf.sourceforge.net/")
+ (synopsis "Standard MIDI File format library")
+ (description
+ "LibSMF is a C library for handling SMF (\"*.mid\") files. It transparently handles
+conversions between time and pulses, tempo map handling and more. The only dependencies
+are a C compiler and glib. Full API documentation and examples are included.")
+ (license license:bsd-2)))
+
+(define-public lmms
+ (package
+ (name "lmms")
+ (version "1.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/LMMS/lmms/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1g76z7ha3hd53vbqaq9n1qg6s3lw8zzaw51iny6y2bz0j1xqwcsr"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before
+ 'configure 'set-ldflags
+ (lambda* (#:key outputs #:allow-other-keys)
+ (setenv "LDFLAGS"
+ (string-append
+ "-Wl,-rpath=\""
+ (assoc-ref outputs "out") "/lib/lmms"
+ ":"
+ (assoc-ref outputs "out") "/lib/lmms/ladspa"
+ "\"")))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("sdl" ,sdl)
+ ("qt" ,qt-4)
+ ("fltk" ,fltk)
+ ("libogg" ,libogg)
+ ("libsamplerate" ,libsamplerate)
+ ("fluidsynth" ,fluidsynth)
+ ("libvorbis" ,libvorbis)
+ ("alsa-lib" ,alsa-lib)
+ ("portaudio" ,portaudio)
+ ("ladspa" ,ladspa)
+ ("libsndfile1" ,libsndfile)
+ ("libxft" ,libxft)
+ ("freetype2" ,freetype)
+ ("fftw3f" ,fftwf)))
+ (home-page "https://lmms.io/")
+ (synopsis "Music composition tool")
+ (description "LMMS is a digital audio workstation. It includes tools for sequencing
+melodies and beats and for mixing and arranging songs. LMMS includes instruments based on
+audio samples and various soft sythesizers. It can receive input from a MIDI keyboard.")
+ (license license:gpl2+)))