aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/music.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r--gnu/packages/music.scm73
1 files changed, 73 insertions, 0 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 346fefccdb..935e6e444c 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -825,6 +825,13 @@ mixing, FFT scopes, MIDI automation and full scriptability in Scheme.")
(string-prefix? "i686" system)))
(substitute* "bristol/Makefile.in"
(("-msse -mfpmath=sse") "")))
+ #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
+ (lambda _
+ (substitute* "bin/startBristol.in"
+ (("ldd `which bristol` | grep jack") "echo guix"))
#t)))))
(inputs
`(("alsa-lib" ,alsa-lib)
@@ -952,6 +959,70 @@ programming methods as well as for realizing complex systems for large-scale
projects.")
(license license:bsd-3)))
+(define-public portmidi
+ (package
+ (name "portmidi")
+ (version "217")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/portmedia/portmidi/"
+ version "/portmidi-src-" version ".zip"))
+ (sha256
+ (base32
+ "03rfsk7z6rdahq2ihy5k13qjzgx757f75yqka88v3gc0pn9ais88"))
+ (patches (list (search-patch "portmidi-modular-build.patch")))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; tests cannot be linked
+ #:configure-flags
+ (list "-DPORTMIDI_ENABLE_JAVA=Off"
+ "-DCMAKE_BUILD_TYPE=Release" ; needed to have PMALSA set
+ "-DPORTMIDI_ENABLE_TEST=Off"))) ; tests fail linking
+ (inputs
+ `(("alsa-lib" ,alsa-lib)))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (home-page "http://portmedia.sourceforge.net/portmidi/")
+ (synopsis "Library for MIDI I/O")
+ (description
+ "PortMidi is a library supporting real-time input and output of MIDI data
+using a system-independent interface.")
+ (license license:expat)))
+
+(define-public python-pyportmidi
+ (package
+ (name "python-pyportmidi")
+ (version (package-version portmidi))
+ (source (package-source portmidi))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; no tests included
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'enter-dir
+ (lambda _ (chdir "pm_python") #t))
+ (add-after 'enter-dir 'fix-setup.py
+ (lambda _
+ (substitute* "setup.py"
+ ;; Use Python 3 syntax
+ (("print (\".*\")" _ text)
+ (string-append "print(" text ")\n"))
+ ;; TODO.txt and CHANGES.txt don't exist
+ (("CHANGES =.*") "CHANGES = \"\"\n")
+ (("TODO =.*") "TODO = \"\"\n"))
+ #t)))))
+ (inputs
+ `(("portmidi" ,portmidi)
+ ("alsa-lib" ,alsa-lib)
+ ("python-cython" ,python-cython)))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (home-page "http://portmedia.sourceforge.net/portmidi/")
+ (synopsis "Python bindings to PortMidi")
+ (description
+ "This package provides Python bindings to the PortMidi library.")
+ (license license:expat)))
+
(define-public frescobaldi
(package
(name "frescobaldi")
@@ -967,8 +1038,10 @@ projects.")
(build-system python-build-system)
(inputs
`(("lilypond" ,lilypond)
+ ("portmidi" ,portmidi)
("python-pyqt-4" ,python-pyqt-4)
("python-ly" ,python-ly)
+ ("python-pyportmidi" ,python-pyportmidi)
("poppler" ,poppler)
("python-poppler-qt4" ,python-poppler-qt4)
("python-sip" ,python-sip)))