guix-devel
[Top][All Lists]
Advanced

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

Re: [PATCH]: add freepats and timidity


From: Ricardo Wurmus
Subject: Re: [PATCH]: add freepats and timidity
Date: Sun, 22 Feb 2015 11:27:38 +0100

Attached are two new patches for Freepats and TiMidity++.

The contents of the Freepats tarball are now unpacked to
$out/share/freepats/, so there should be no conflicts anymore.

In TiMidity++ I removed the Tcl/Tk interface and added the ncurses
interface instead (the Tcl interface didn't actually work but the
ncurses interface does).  I also enabled the server mode to be built.
The default path to the configuration file is now set to
$out/etc/timidity/timidity.cfg.

If you insist I can rename both package and variable from "timidity++"
to "timidity".

What do you think?

~~ Ricardo

>From 79cce5f61e55dda39b04844773e757e63f3b73ce Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Thu, 19 Feb 2015 16:56:39 +0100
Subject: [PATCH 1/2] gnu: Add Freepats.

* gnu/packages/audio.scm (freepats): New variable.
---
 gnu/packages/audio.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index c668211..f4a98a7 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -23,9 +23,12 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system waf)
+  #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages glib)
@@ -190,6 +193,45 @@ bass section with five drawbars.  A standalone JACK 
application and LV2
 plugins are provided.")
     (license license:gpl2)))
 
+(define-public freepats
+  (package
+    (name "freepats")
+    (version "20060219")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://freepats.zenvoid.org/freepats-";
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder (begin
+                   (use-modules (guix build utils))
+                   (let ((out (string-append %output "/share/freepats")))
+                     (setenv "PATH" (string-append
+                                     (assoc-ref %build-inputs "bzip2") "/bin:"
+                                     (assoc-ref %build-inputs "tar") "/bin"))
+                     (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
+                     (chdir "freepats")
+                     ;; Use absolute pattern references
+                     (substitute* "freepats.cfg"
+                       (("Tone_000") (string-append out "/Tone_000"))
+                       (("Drum_000") (string-append out "/Drum_000")))
+                     (mkdir-p out)
+                     (copy-recursively "." out)))))
+    (native-inputs
+     `(("tar" ,tar)
+       ("bzip2" ,bzip2)))
+    (home-page "http://freepats.zenvoid.org";)
+    (synopsis "GUS compatible patches for MIDI players")
+    (description
+     "FreePats is a project to create a free and open set of GUS compatible
+patches that can be used with softsynths such as Timidity and WildMidi.")
+    ;; GPLv2+ with exception for compositions using these patches.
+    (license license:gpl2+)))
+
 (define-public jack-1
   (package
     (name "jack")
-- 
2.1.0

>From 5ea972bfa27bdc0348a94867e41953e515889a39 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Thu, 19 Feb 2015 16:57:33 +0100
Subject: [PATCH 2/2] gnu: Add TiMidity++.

* gnu/packages/audio.scm (timidity++): New variable.
---
 gnu/packages/audio.scm | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index f4a98a7..acc73b1 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
@@ -691,6 +692,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")
-- 
2.1.0


reply via email to

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