summary refs log tree commit diff
path: root/gnu/packages/audio.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2015-02-19 16:57:33 +0100
committerRicardo Wurmus <rekado@elephly.net>2015-02-24 23:01:12 +0100
commit9ffee4571c0bf645ffeba2442a0065fb224d9765 (patch)
treefc1d0e9feb28d02680e9d496c2bfd6324312bc6d /gnu/packages/audio.scm
parent7c92efffe671d76e5e663b72a421778d9d1e5fdc (diff)
downloadguix-9ffee4571c0bf645ffeba2442a0065fb224d9765.tar.gz
gnu: Add TiMidity++.
* gnu/packages/audio.scm (timidity++): New variable.
Diffstat (limited to 'gnu/packages/audio.scm')
-rw-r--r--gnu/packages/audio.scm57
1 files changed, 57 insertions, 0 deletions
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index b6c3a37ed9..a4c16fb00b 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -34,6 +34,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages mp3) ;taglib
@@ -646,6 +647,62 @@ that toolkit will work in all hosts that use Suil automatically.
 Suil currently supports every combination of Gtk 2, Qt 4, and X11.")
     (license license:isc)))
 
+(define-public timidity++
+  (package
+    (name "timidity++")
+    (version "2.14.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/timidity/TiMidity++-"
+                    version ".tar.bz2"))
+              (sha256
+               (base32
+                "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags
+       (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
+             "--enable-ncurses"
+             "--enable-server"
+             "--enable-alsaseq"
+             (string-append "--with-default-path="
+                            (assoc-ref %outputs "out") "/etc/timidity"))
+       #:phases
+       (alist-cons-after
+        'install 'install-config
+        (lambda _
+          (let ((out (string-append (assoc-ref %outputs "out")
+                                    "/etc/timidity")))
+            (mkdir-p out)
+            (call-with-output-file
+                (string-append out "/timidity.cfg")
+              (lambda (port)
+                (format port (string-append "source "
+                                            (assoc-ref %build-inputs "freepats")
+                                            "/share/freepats/freepats.cfg"))))))
+        %standard-phases)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("ao" ,ao)
+       ("flac" ,flac)
+       ("jack" ,jack-1)
+       ("libogg" ,libogg)
+       ("speex" ,speex)
+       ("ncurses" ,ncurses)
+       ("freepats" ,freepats)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://timidity.sourceforge.net/")
+    (synopsis "Software synthesizer for playing MIDI files")
+    (description
+     "TiMidity++ is a software synthesizer.  It can play MIDI files by
+converting them into PCM waveform data; give it a MIDI data along with digital
+instrument data files, then it synthesizes them in real-time, and plays.  It
+can not only play sounds, but also can save the generated waveforms into hard
+disks as various audio file formats.")
+    (license license:gpl2+)))
+
 (define-public vamp
   (package
     (name "vamp")