summaryrefslogtreecommitdiff
path: root/gnu/packages/music.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2017-07-13 09:38:59 +0200
committerRicardo Wurmus <rekado@elephly.net>2017-07-17 14:01:47 +0200
commit5beecc320ee3f4224e356508547416b4bd24ad4b (patch)
tree293abf1708d9abe3b3b4de0cbb45b694402ca753 /gnu/packages/music.scm
parentc58d1b5f55632a664313426d909781bc94bb16c1 (diff)
gnu: Add sooperlooper.
* gnu/packages/patches/sooperlooper-build-with-wx-30.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/music.scm (sooperlooper): New variable.
Diffstat (limited to 'gnu/packages/music.scm')
-rw-r--r--gnu/packages/music.scm72
1 files changed, 72 insertions, 0 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index a3f3d4bacb..40996b11be 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -2345,6 +2345,78 @@ part. The player is based on a highly modified version of the ModPlug engine,
with a number of bugfixes and changes to improve IT playback.")
(license license:gpl2+)))
+(define-public sooperlooper
+ (package
+ (name "sooperlooper")
+ (version "1.7.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://essej.net/sooperlooper/sooperlooper-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0n2gdxw1fx8nxxnpzf4sj0kp6k6zi1yq59cbz6qqzcnsnpnvszbs"))
+ (patches (search-patches "sooperlooper-build-with-wx-30.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list "CXXFLAGS=-std=gnu++11")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'add-sigc++-includes
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((sig (assoc-ref inputs "libsigc++"))
+ (xml (assoc-ref inputs "libxml2"))
+ (cwd (getcwd)))
+ (setenv "CPATH"
+ (string-append sig "/include/sigc++-2.0:"
+ sig "/lib/sigc++-2.0/include:"
+ xml "/include/libxml2/:"
+ cwd "/libs/pbd:"
+ cwd "/libs/midi++")))
+ (substitute* '("src/control_osc.hpp"
+ "src/gui/app_frame.hpp"
+ "src/gui/config_panel.hpp"
+ "src/gui/keys_panel.hpp"
+ "src/gui/latency_panel.hpp"
+ "src/gui/main_panel.hpp"
+ "src/gui/midi_bind_panel.hpp"
+ "src/gui/prefs_dialog.hpp")
+ (("sigc\\+\\+/object.h")
+ "sigc++/sigc++.h"))
+ (substitute* '("src/engine.cpp"
+ "src/gui/latency_panel.cpp"
+ "src/gui/looper_panel.cpp"
+ "src/gui/main_panel.cpp")
+ (("(\\(| )bind " _ pre)
+ (string-append pre "sigc::bind ")))
+ #t))
+ (add-after 'unpack 'fix-xpm-warnings
+ (lambda _
+ (substitute* (find-files "." "\\.xpm$")
+ (("static char") "static const char"))
+ #t)))))
+ (inputs
+ `(("jack" ,jack-1)
+ ("alsa-lib" ,alsa-lib)
+ ("wxwidgets" ,wxwidgets-gtk2)
+ ("libsndfile" ,libsndfile)
+ ("libsamplerate" ,libsamplerate)
+ ("liblo" ,liblo)
+ ("rubberband" ,rubberband)
+ ("libxml2" ,libxml2)
+ ("libsigc++" ,libsigc++)
+ ("ncurses" ,ncurses)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://essej.net/sooperlooper/")
+ (synopsis "Live looping sampler")
+ (description
+ "SooperLooper is a live looping sampler capable of immediate loop
+recording, overdubbing, multiplying, reversing and more. It allows for
+multiple simultaneous multi-channel loops limited only by your computer's
+available memory.")
+ (license license:gpl2+)))
+
(define-public moc
(package
(name "moc")