summary refs log tree commit diff
path: root/gnu/packages/music.scm
diff options
context:
space:
mode:
authorChristopher Rodriguez <yewscion@gmail.com>2022-06-12 22:48:05 -0400
committerChristine Lemmer-Webber <cwebber@dustycloud.org>2022-06-26 15:38:46 -0400
commita21583de5452d11f1446c44fbb8bf8c1d28bfee2 (patch)
treee72af9062b6627bbd26d9bbd933af1be92c057ab /gnu/packages/music.scm
parentccdc0cf2520928b2f5ae6befbe2fc7819e3a9df0 (diff)
downloadguix-a21583de5452d11f1446c44fbb8bf8c1d28bfee2.tar.gz
gnu: Add orca-music.
* gnu/packages/music.scm (orca-music): New variable.
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r--gnu/packages/music.scm58
1 files changed, 58 insertions, 0 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 60cb176320..ce0fb2d500 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -6769,3 +6769,61 @@ local music library, along with flexible search capabilities.  It includes
 a tag editor, which can also be invoked as a standalone program, and further
 supports streaming audio and feeds (such as podcasts).")
     (license license:gpl2+)))
+
+(define-public orca-music
+  (let ((commit "e55b8fdc3606341345938d5b24b2d9d9326afdb5") (revision "1"))
+    (package
+      (name "orca-music")
+      ;; No upstream version numbers; Using commit instead.
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.sr.ht/~rabbits/orca")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0xf5i9vd2wyrhvfp68j5gvd40iqm9rf6g1p74jan7d875g6kpppq"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ;No autoconf
+           (replace 'build
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (setenv "CC"
+                       ,(cc-for-target))
+               (invoke "make" "release")))
+           (add-after 'build 'rename-orca
+             (lambda* _
+               (invoke "mv" "-v" "./build/orca" "./build/orca-music")))
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out")) (dest-bin (string-append
+                                                                 out "/bin"))
+                      (share (string-append out "/share"))
+                      (dest-examples (string-append share "/examples"))
+                      (dest-doc (string-append share "/doc")))
+                 (install-file "./build/orca-music" dest-bin)
+                 (copy-recursively "./examples" dest-examples)
+                 (install-file "./README.md" dest-doc)))))))
+      (inputs (list ncurses portmidi alsa-plugins
+                    `(,alsa-plugins "pulseaudio")))
+      (native-inputs (list pkg-config))
+      (native-search-paths
+       (list (search-path-specification
+              (variable "TERMINFO_DIRS")
+              (files '("share/terminfo")))))
+      (synopsis "Musical live-coding environment")
+      (description
+       "This is the C implementation of the ORCĪ› language and terminal
+livecoding environment.  It's designed to be power efficient.  It can handle
+large files, even if your terminal is small.
+
+Orca is not a synthesizer, but a flexible livecoding environment capable of
+sending MIDI, OSC, and UDP to your audio/visual interfaces like Ableton,
+Renoise, VCV Rack, or SuperCollider.")
+      (home-page "https://100r.co/site/orca.html")
+      (license license:expat))))