guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/02: gnu: Add mididings.


From: guix-commits
Subject: 02/02: gnu: Add mididings.
Date: Mon, 1 Apr 2024 16:36:30 -0400 (EDT)

rekado pushed a commit to branch master
in repository guix.

commit 0f9f266542e611bee277b5e593072318942ed643
Author: Ricardo Wurmus <rekado@elephly.net>
AuthorDate: Mon Apr 1 22:35:29 2024 +0200

    gnu: Add mididings.
    
    * gnu/packages/music.scm (mididings): New variable.
    
    Change-Id: I7a4c6d05c04c1ed62ff467c83c77defaa114f37e
---
 gnu/packages/music.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 0572901ada..a8901d24a6 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -4428,6 +4428,69 @@ standard MIDI file with the csvmidi program.")
     (home-page "https://www.fourmilab.ch/webtools/midicsv/";)
     (license license:public-domain)))
 
+(define-public mididings
+  (let ((commit "d98265be8afe7da20a5c7cfd0515f0d5fae5c53a")
+        (revision "1"))
+    (package
+      (name "mididings")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/mididings/mididings";)
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1a8i4yac5jjkq0vh73nwkv0j7vnvfwbzzagam4xdl1gpnc26n5xi"))))
+      (build-system pyproject-build-system)
+      (arguments
+       (list
+        #:phases
+        '(modify-phases %standard-phases
+           (add-after 'unpack 'build-manpages
+             (lambda _
+               (with-directory-excursion "doc/man"
+                 (for-each (lambda (doc)
+                             (system (format #false
+                                             "scdoc < ~a.scd > ~a.1" doc doc)))
+                           '(livedings mididings send_midi))))))))
+      (inputs
+       (list alsa-lib
+             boost
+             jack-2
+             `(,python "tk")
+             python-dbus
+             python-decorator
+             python-pyinotify
+             python-pyliblo
+             python-pysmf))
+      (native-inputs (list python-pytest pkg-config scdoc))
+      (home-page "https://github.com/mididings/mididings";)
+      (synopsis "MIDI router and processor")
+      (description
+       "mididings is a MIDI router/processor based on Python, supporting ALSA
+and JACK MIDI.  Features include:
+
+@itemize
+@item MIDI routing and filtering; filter events depending on their event type,
+  channel, note number, velocity, etc., and freely route them between an
+  arbitrary number of input and output ports.
+@item Modifying and converting MIDI events; transpose notes, apply velocity
+  curves, change controller values and ranges, or convert events to any other
+  MIDI event type. mididings also includes more complex functions like a
+  diatonic harmonizer, floating split points, latched notes, and more.
+@item Seamless switching between patches; set up different \"scenes\", each
+  with its own MIDI routing and processing, and switch between them at any 
time,
+  even while playing.  Switching scenes does not affect notes already held, and
+  does not result in dropouts or stuck notes!
+@item MIDI event monitoring, running external commands; print MIDI event data
+  to the console to help debugging your patches and configuring your MIDI
+  controllers.  In addition to its MIDI output, mididings can also execute 
shell
+  commands and send OSC or DBUS messages.
+@end itemize")
+      (license license:gpl2+))))
+
 (define-public gx-guvnor-lv2
   (package
     (name "gx-guvnor-lv2")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]