Subject: [PATCH] gnu: Add music21.
From: jgart <[email-masked]>
To: [email-masked]
Cc: jgart <[email-masked]>
Date: Thu, 11 Nov 2021 04:12:54 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/music.scm (music21): New variable.
---
 gnu/packages/music.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 32ed4081b6..52b462815c 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1528,6 +1528,38 @@ (define-public lilypond
     ;; more than an hour of silence, so double the max silent time.
     (properties `((max-silent-time . 7200)))))
 
+(define-public music21
+  (package
+    (name "music21")
+    (version "7.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "music21" version))
+        (sha256
+          (base32 "17v2id8qm99xqymqsdczq173fmbdha4w109ahh8j1d9l5a7mqc86"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               ;; See: https://github.com/cuthbertLab/music21/issues/1164
+               (invoke "python" "-m" "music21.stream.tests")))))))
+    (propagated-inputs
+      `(("python-chardet" ,python-chardet)
+        ("python-joblib" ,python-joblib)
+        ("python-more-itertools" ,python-more-itertools)
+        ("python-webcolors" ,python-webcolors)))
+    (home-page "https://web.mit.edu/music21/")
+    (synopsis "Toolkit for Computational Musicology")
+    (description
+"Music21 is a set of tools for helping scholars and other active listeners
+answer questions about music quickly and simply.")
+    (license (list license:bsd-3 license:gpl3+))))
+
 (define-public abjad
   (package
     (name "abjad")
-- 
2.33.1