gnu: linux-libre-4.4: Update to 4.4.6.
[jackhill/guix/guix.git] / gnu / packages / music.scm
CommitLineData
1b6826d3 1;;; GNU Guix --- Functional package management for GNU
658212eb 2;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
a763ce7d 3;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
e8069d01 4;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
aa0edd3f 5;;; Copyright © 2016 Al McElrath <hello@yrns.org>
b7367762 6;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
1b6826d3
RW
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23(define-module (gnu packages music)
24 #:use-module (guix utils)
25 #:use-module (guix packages)
26 #:use-module (guix download)
8e80244a 27 #:use-module (guix git-download)
1b6826d3
RW
28 #:use-module ((guix licenses) #:prefix license:)
29 #:use-module (guix build-system gnu)
8b9ec354 30 #:use-module (guix build-system cmake)
821664f1 31 #:use-module (guix build-system python)
8e80244a 32 #:use-module (guix build-system waf)
1b6826d3 33 #:use-module (gnu packages)
ddfddb0c 34 #:use-module (gnu packages algebra)
c267cc15 35 #:use-module (gnu packages audio)
2d0fd07b 36 #:use-module (gnu packages autotools)
b7367762 37 #:use-module (gnu packages backup)
8b9ec354 38 #:use-module (gnu packages base) ;libbdf
1b6826d3 39 #:use-module (gnu packages bison)
b7367762 40 #:use-module (gnu packages boost)
e8069d01 41 #:use-module (gnu packages cdrom)
8b9ec354
RW
42 #:use-module (gnu packages code)
43 #:use-module (gnu packages check)
44 #:use-module (gnu packages compression)
aa0edd3f 45 #:use-module (gnu packages curl)
1b6826d3 46 #:use-module (gnu packages docbook)
bf76d780 47 #:use-module (gnu packages doxygen)
1b6826d3 48 #:use-module (gnu packages flex)
8e80244a 49 #:use-module (gnu packages fltk)
1b6826d3
RW
50 #:use-module (gnu packages fonts)
51 #:use-module (gnu packages fontutils)
6260d1a8 52 #:use-module (gnu packages gcc)
aa0edd3f 53 #:use-module (gnu packages gnupg)
1b6826d3
RW
54 #:use-module (gnu packages gettext)
55 #:use-module (gnu packages ghostscript)
ec8da0e2 56 #:use-module (gnu packages gl)
8e80244a 57 #:use-module (gnu packages glib)
c267cc15 58 #:use-module (gnu packages gnome)
1b6826d3
RW
59 #:use-module (gnu packages gtk)
60 #:use-module (gnu packages guile)
c267cc15 61 #:use-module (gnu packages image)
1b6826d3 62 #:use-module (gnu packages imagemagick)
6260d1a8 63 #:use-module (gnu packages java)
c267cc15
RW
64 #:use-module (gnu packages linux) ; for alsa-utils
65 #:use-module (gnu packages man)
66 #:use-module (gnu packages mp3)
e8069d01 67 #:use-module (gnu packages ncurses)
1b6826d3 68 #:use-module (gnu packages netpbm)
821664f1 69 #:use-module (gnu packages pdf)
1b6826d3
RW
70 #:use-module (gnu packages perl)
71 #:use-module (gnu packages pkg-config)
d231bb35 72 #:use-module (gnu packages pulseaudio) ;libsndfile
1b6826d3 73 #:use-module (gnu packages python)
8b9ec354 74 #:use-module (gnu packages qt)
d231bb35 75 #:use-module (gnu packages rdf)
c493679f 76 #:use-module (gnu packages readline)
1b6826d3 77 #:use-module (gnu packages rsync)
2d0fd07b 78 #:use-module (gnu packages tcl)
1b6826d3
RW
79 #:use-module (gnu packages texinfo)
80 #:use-module (gnu packages texlive)
e8069d01 81 #:use-module (gnu packages video)
8b9ec354 82 #:use-module (gnu packages web)
c267cc15 83 #:use-module (gnu packages xml)
ddfddb0c 84 #:use-module (gnu packages xorg)
c267cc15 85 #:use-module (gnu packages xiph)
2d0fd07b
RW
86 #:use-module (gnu packages zip)
87 #:use-module ((srfi srfi-1) #:select (last)))
1b6826d3 88
e8069d01
PW
89(define-public cmus
90 (package
91 (name "cmus")
92 (version "2.7.1")
93 (source (origin
94 (method url-fetch)
95 (uri (string-append
96 "https://github.com/" name "/" name "/archive/v"
97 version ".tar.gz"))
566fc7fa 98 (file-name (string-append name "-" version ".tar.gz"))
e8069d01
PW
99 (sha256
100 (base32
101 "0raixgjavkm7hxppzsc5zqbfbh2bhjcmbiplhnsxsmyj8flafyc1"))))
102 (build-system gnu-build-system)
103 (arguments
104 `(#:tests? #f ; cmus does not include tests
105 #:phases
106 (modify-phases %standard-phases
107 (replace
108 'configure
109 (lambda* (#:key outputs #:allow-other-keys)
110 (let ((out (assoc-ref outputs "out")))
111
112 ;; It's an idiosyncratic configure script that doesn't
113 ;; understand --prefix=..; it wants prefix=.. instead.
114 (zero?
115 (system* "./configure"
116 (string-append "prefix=" out)))))))))
117 ;; TODO: cmus optionally supports the following formats, which haven't yet
118 ;; been added to Guix:
119 ;;
120 ;; - Roar, libroar
121 ;;
122 ;; - DISCID_LIBS, apparently different from cd-discid which is included in
123 ;; Guix. See <http://sourceforge.net/projects/discid/>
124 (native-inputs
125 `(("pkg-config" ,pkg-config)))
126 (inputs
127 `(("alsa-lib" ,alsa-lib)
128 ("ao" ,ao)
129 ("ffmpeg" ,ffmpeg)
130 ("flac" ,flac)
131 ("jack" ,jack-1)
132 ("libcddb" ,libcddb)
133 ("libcdio-paranoia" ,libcdio-paranoia)
134 ("libcue" ,libcue)
135 ("libmad" ,libmad)
136 ("libmodplug" ,libmodplug)
137 ("libmpcdec" ,libmpcdec)
138 ("libsamplerate" ,libsamplerate)
139 ("libvorbis" ,libvorbis)
140 ("ncurses" ,ncurses)
141 ("opusfile" ,opusfile)
142 ("pulseaudio" ,pulseaudio)
143 ("wavpack" ,wavpack)))
144 (home-page "https://cmus.github.io/")
145 (synopsis "Small console music player")
146 (description "Cmus is a small and fast console music player. It supports
147many input formats and provides a customisable Vi-style user interface.")
148 (license license:gpl2+)))
149
d231bb35
RW
150(define-public hydrogen
151 (package
152 (name "hydrogen")
b7367762 153 (version "0.9.6.1")
d231bb35
RW
154 (source (origin
155 (method url-fetch)
156 (uri (string-append
b7367762
EF
157 "https://github.com/hydrogen-music/hydrogen/archive/"
158 version ".tar.gz"))
d231bb35
RW
159 (sha256
160 (base32
b7367762
EF
161 "0vxnaqfmcv7hhk0cj67imdcqngspnck7f0wfmvhfgfqa7x1xznll"))))
162 (build-system cmake-build-system)
d231bb35 163 (arguments
b7367762 164 `(#:test-target "tests"))
d231bb35 165 (native-inputs
b7367762 166 `(("cppunit" ,cppunit)
d231bb35
RW
167 ("pkg-config" ,pkg-config)))
168 (inputs
b7367762 169 `(("alsa-lib" ,alsa-lib)
d231bb35 170 ("jack" ,jack-1)
b7367762 171 ;; ("ladspa" ,ladspa) ; cannot find during configure
d231bb35 172 ("lash" ,lash)
b7367762
EF
173 ("libarchive" ,libarchive)
174 ("libsndfile" ,libsndfile)
175 ("libtar" ,libtar)
176 ("lrdf" ,lrdf)
d231bb35 177 ("qt" ,qt-4)
b7367762 178 ("zlib" ,zlib)))
d231bb35
RW
179 (home-page "http://www.hydrogen-music.org")
180 (synopsis "Drum machine")
181 (description
182 "Hydrogen is an advanced drum machine for GNU/Linux. Its main goal is to
183enable professional yet simple and intuitive pattern-based drum programming.")
184 (license license:gpl2+)))
185
8c454dcd
RW
186(define-public klick
187 (package
188 (name "klick")
189 (version "0.12.2")
190 (source (origin
191 (method url-fetch)
192 (uri (string-append "http://das.nasophon.de/download/klick-"
193 version ".tar.gz"))
194 (sha256
195 (base32
196 "0hmcaywnwzjci3pp4xpvbijnnwvibz7gf9xzcdjbdca910y5728j"))))
197 (build-system gnu-build-system)
198 (arguments
199 `(#:tests? #f ;no "check" target
200 #:phases
201 ;; TODO: Add scons-build-system and use it here.
202 (modify-phases %standard-phases
203 (delete 'configure)
204 (replace 'build
205 (lambda* (#:key inputs outputs #:allow-other-keys)
206 (let ((out (assoc-ref outputs "out")))
207 (mkdir-p out)
208 (zero? (system* "scons" (string-append "PREFIX=" out))))))
209 (replace 'install (lambda _ (zero? (system* "scons" "install")))))))
210 (inputs
211 `(("boost" ,boost)
212 ("jack" ,jack-1)
213 ("libsndfile" ,libsndfile)
214 ("libsamplerate" ,libsamplerate)
215 ("liblo" ,liblo)
216 ("rubberband" ,rubberband)))
217 (native-inputs
218 `(("scons" ,scons)
219 ("python" ,python-2)
220 ("pkg-config" ,pkg-config)))
221 (home-page "http://das.nasophon.de/klick/")
222 (synopsis "Metronome for JACK")
223 (description
224 "klick is an advanced command-line based metronome for JACK. It allows
225you to define complex tempo maps for entire songs or performances.")
226 (license license:gpl2+)))
227
048bfba1
RW
228(define-public gtklick
229 (package
230 (name "gtklick")
231 (version "0.6.4")
232 (source (origin
233 (method url-fetch)
234 (uri (string-append "http://das.nasophon.de/download/gtklick-"
235 version ".tar.gz"))
236 (sha256
237 (base32
238 "0dq1km6njnzsqdqyf6wzir9g733z0mc9vmxfg2383k3c2a2di6bp"))))
239 (build-system python-build-system)
240 (arguments
241 `(#:tests? #f ; no tests
242 #:python ,python-2
243 #:phases
244 (modify-phases %standard-phases
245 (add-before 'build 'add-sitedirs
246 ;; .pth files are not automatically interpreted unless the
247 ;; directories containing them are added as "sites". The directories
248 ;; are then added to those in the PYTHONPATH. This is required for
249 ;; the operation of pygtk.
250 (lambda _
251 (substitute* "gtklick/gtklick.py"
252 (("import pygtk")
253 "import pygtk, site, sys
254for path in [path for path in sys.path if 'site-packages' in path]: site.addsitedir(path)"))))
255 (add-after 'unpack 'inject-store-path-to-klick
256 (lambda* (#:key inputs #:allow-other-keys)
257 (substitute* "gtklick/klick_backend.py"
258 (("KLICK_PATH = 'klick'")
259 (string-append "KLICK_PATH = '"
260 (assoc-ref inputs "klick")
261 "/bin/klick'")))
262 #t)))))
263 (inputs
264 `(("klick" ,klick)
265 ("python2-pyliblo" ,python2-pyliblo)
266 ("python2-pygtk" ,python2-pygtk)))
267 (native-inputs
268 `(("gettext" ,gnu-gettext)))
269 (home-page "http://das.nasophon.de/gtklick/")
270 (synopsis "Simple metronome with an easy-to-use graphical interface")
271 (description
272 "Gtklick is a simple metronome with an easy-to-use graphical user
273interface. It is implemented as a frontend to @code{klick}.")
274 (license license:gpl2+)))
275
1b6826d3
RW
276(define-public lilypond
277 (package
278 (name "lilypond")
398abcf8 279 (version "2.19.33")
1b6826d3
RW
280 (source (origin
281 (method url-fetch)
282 (uri (string-append
283 "http://download.linuxaudio.org/lilypond/sources/v"
284 (version-major+minor version) "/"
285 name "-" version ".tar.gz"))
286 (sha256
287 (base32
398abcf8 288 "0s4vbbfy4xwq4da4kmlnndalmcyx2jaz7y8praah2146qbnr90xh"))))
1b6826d3
RW
289 (build-system gnu-build-system)
290 (arguments
127b04d7 291 `(#:tests? #f ; out-test/collated-files.html fails
1b6826d3 292 #:out-of-source? #t
409be57b 293 #:make-flags '("conf=www") ;to generate images for info manuals
127b04d7 294 #:configure-flags
409be57b
RW
295 (list "CONFIGURATION=www"
296 (string-append "--with-texgyre-dir="
127b04d7
RW
297 (assoc-ref %build-inputs "font-tex-gyre")
298 "/share/fonts/opentype/"))
1b6826d3 299 #:phases
a8bc747a 300 (modify-phases %standard-phases
409be57b
RW
301 (add-after 'unpack 'fix-path-references
302 (lambda _
a8bc747a
RW
303 (substitute* "scm/backend-library.scm"
304 (("\\(search-executable '\\(\"gs\"\\)\\)")
409be57b
RW
305 (string-append "\"" (which "gs") "\""))
306 (("\"/bin/sh\"")
307 (string-append "\"" (which "sh") "\"")))
a8bc747a
RW
308 #t))
309 (add-before 'configure 'prepare-configuration
310 (lambda _
311 (substitute* "configure"
312 (("SHELL=/bin/sh") "SHELL=sh"))
409be57b
RW
313 (setenv "out" "www")
314 (setenv "conf" "www")
315 #t))
316 (add-after 'install 'install-info
317 (lambda _
318 (zero? (system* "make"
319 "-j" (number->string (parallel-job-count))
320 "conf=www" "install-info")))))))
1b6826d3
RW
321 (inputs
322 `(("guile" ,guile-1.8)
323 ("font-dejavu" ,font-dejavu)
127b04d7 324 ("font-tex-gyre" ,font-tex-gyre)
1b6826d3
RW
325 ("fontconfig" ,fontconfig)
326 ("freetype" ,freetype)
327 ("ghostscript" ,ghostscript)
328 ("pango" ,pango)
329 ("python" ,python-2)))
330 (native-inputs
331 `(("bison" ,bison)
332 ("perl" ,perl)
333 ("flex" ,flex)
334 ("fontforge" ,fontforge)
335 ("dblatex" ,dblatex)
336 ("gettext" ,gnu-gettext)
337 ("imagemagick" ,imagemagick)
338 ("netpbm" ,netpbm) ;for pngtopnm
339 ("texlive" ,texlive) ;metafont and metapost
340 ("texinfo" ,texinfo)
341 ("texi2html" ,texi2html)
342 ("rsync" ,rsync)
343 ("pkg-config" ,pkg-config)
344 ("zip" ,zip)))
345 (home-page "http://www.lilypond.org/")
346 (synopsis "Music typesetting")
347 (description
348 "GNU LilyPond is a music typesetter, which produces high-quality sheet
349music. Music is input in a text file containing control sequences which are
350interpreted by LilyPond to produce the final document. It is extendable with
351Guile.")
55ca5e80
LC
352 (license license:gpl3+)
353
354 ;; On armhf and mips64el, building the documentation sometimes leads to
355 ;; more than an hour of silence, so double the max silent time.
356 (properties `((max-silent-time . 7200)))))
c267cc15 357
8e80244a
RW
358(define-public non-sequencer
359 ;; The latest tagged release is three years old and uses a custom build
360 ;; system, so we take the last commit affecting the "sequencer" directory.
361 (let ((commit "1d9bd576"))
362 (package
363 (name "non-sequencer")
364 (version (string-append "1.9.5-" commit))
365 (source (origin
366 (method git-fetch)
367 (uri (git-reference
368 (url "git://git.tuxfamily.org/gitroot/non/non.git")
369 (commit commit)))
370 (sha256
371 (base32
372 "0pkkw8q6d55j38xm7r4rwpdv1wy00a44h8c4wrn7vbgpq9nij46y"))
373 (file-name (string-append name "-" version "-checkout"))))
374 (build-system waf-build-system)
375 (arguments
376 `(#:tests? #f ;no "check" target
e591a4d6
RW
377 #:configure-flags
378 (list "--project=sequencer"
379 ;; Disable the use of SSE unless on x86_64.
380 ,@(if (not (string-prefix? "x86_64" (or (%current-target-system)
381 (%current-system))))
382 '("--disable-sse")
383 '()))
d8c317df
SB
384 #:phases
385 (modify-phases %standard-phases
386 (add-before
387 'configure 'set-flags
388 (lambda _
389 ;; Compile with C++11, required by libsigc++.
390 (setenv "CXXFLAGS" "-std=c++11")
391 #t)))
8e80244a
RW
392 #:python ,python-2))
393 (inputs
394 `(("jack" ,jack-1)
395 ("libsigc++" ,libsigc++)
396 ("liblo" ,liblo)
397 ("ntk" ,ntk)))
398 (native-inputs
399 `(("pkg-config" ,pkg-config)))
400 (home-page "http://non.tuxfamily.org/wiki/Non%20Sequencer")
401 (synopsis "Pattern-based MIDI sequencer")
402 (description
403 "The Non Sequencer is a powerful, lightweight, real-time,
404pattern-based MIDI sequencer. It utilizes the JACK Audio Connection Kit for
405MIDI I/O and the NTK GUI toolkit for its user interface. Everything in Non
406Sequencer happens on-line, in real-time. Music can be composed live, while the
407transport is rolling.")
408 (license license:gpl2+))))
409
c267cc15
RW
410(define-public solfege
411 (package
412 (name "solfege")
413 (version "3.22.2")
414 (source (origin
415 (method url-fetch)
416 (uri (string-append
417 "mirror://gnu/solfege/solfege-"
418 version ".tar.xz"))
419 (sha256
420 (base32
421 "1w25rxdbj907nsx285k9nm480pvy12w3yknfh4n1dfv17cwy072i"))))
422 (build-system gnu-build-system)
423 (arguments
424 `(#:tests? #f ; xmllint attempts to download DTD
425 #:test-target "test"
426 #:phases
427 (alist-cons-after
428 'unpack 'fix-configuration
429 (lambda* (#:key inputs #:allow-other-keys)
430 (substitute* "default.config"
431 (("csound=csound")
432 (string-append "csound="
433 (assoc-ref inputs "csound")
434 "/bin/csound"))
435 (("/usr/bin/aplay")
436 (string-append (assoc-ref inputs "aplay")
437 "/bin/aplay"))
438 (("/usr/bin/timidity")
439 (string-append (assoc-ref inputs "timidity")
440 "/bin/timidity"))
441 (("/usr/bin/mpg123")
442 (string-append (assoc-ref inputs "mpg123")
443 "/bin/mpg123"))
444 (("/usr/bin/ogg123")
445 (string-append (assoc-ref inputs "ogg123")
446 "/bin/ogg123"))))
447 (alist-cons-before
448 'build 'patch-python-shebangs
449 (lambda _
450 ;; Two python scripts begin with a Unicode BOM, so patch-shebang
451 ;; has no effect.
452 (substitute* '("solfege/parsetree.py"
453 "solfege/presetup.py")
454 (("#!/usr/bin/python") (string-append "#!" (which "python")))))
455 (alist-cons-before
456 'build 'add-sitedirs
457 ;; .pth files are not automatically interpreted unless the
458 ;; directories containing them are added as "sites". The directories
459 ;; are then added to those in the PYTHONPATH. This is required for
460 ;; the operation of pygtk and pygobject.
461 (lambda _
462 (substitute* "run-solfege.py"
463 (("import os")
464 "import os, site
465for path in [path for path in sys.path if 'site-packages' in path]: site.addsitedir(path)")))
466 (alist-cons-before
467 'build 'adjust-config-file-prefix
468 (lambda* (#:key outputs #:allow-other-keys)
469 (substitute* "run-solfege.py"
470 (("prefix = os.path.*$")
471 (string-append "prefix = " (assoc-ref outputs "out")))))
472 (alist-cons-after
473 'install 'wrap-program
474 (lambda* (#:key inputs outputs #:allow-other-keys)
475 ;; Make sure 'solfege' runs with the correct PYTHONPATH. We
476 ;; also need to modify GDK_PIXBUF_MODULE_FILE for SVG support.
477 (let* ((out (assoc-ref outputs "out"))
478 (path (getenv "PYTHONPATH"))
479 (rsvg (assoc-ref inputs "librsvg"))
480 (pixbuf (find-files rsvg "^loaders\\.cache$")))
481 (wrap-program (string-append out "/bin/solfege")
482 `("PYTHONPATH" ":" prefix (,path))
483 `("GDK_PIXBUF_MODULE_FILE" ":" prefix ,pixbuf))))
484 %standard-phases)))))))
485 (inputs
486 `(("python" ,python-2)
487 ("pygtk" ,python2-pygtk)
488 ("gettext" ,gnu-gettext)
489 ("gtk" ,gtk+)
e8309291 490 ("lilypond" ,lilypond)
c267cc15
RW
491 ("librsvg" ,librsvg) ; needed at runtime for icons
492 ("libpng" ,libpng) ; needed at runtime for icons
493 ;; players needed at runtime
494 ("aplay" ,alsa-utils)
495 ("csound" ,csound) ; optional, needed for some exercises
496 ("mpg123" ,mpg123)
497 ("ogg123" ,vorbis-tools)
498 ("timidity" ,timidity++)))
499 (native-inputs
500 `(("pkg-config" ,pkg-config)
501 ("txt2man" ,txt2man)
502 ("libxml2" ,libxml2) ; for tests
503 ("ghostscript" ,ghostscript)
c267cc15
RW
504 ("texinfo" ,texinfo)))
505 (home-page "https://www.gnu.org/software/solfege/")
506 (synopsis "Ear training")
507 (description
508 "GNU Solfege is a program for practicing musical ear-training. With it,
509you can practice your recognition of various musical intervals and chords. It
510features a statistics overview so you can monitor your progress across several
511sessions. Solfege is also designed to be extensible so you can easily write
512your own lessons.")
513 (license license:gpl3+)))
6260d1a8 514
8b9ec354
RW
515(define-public powertabeditor
516 (package
517 (name "powertabeditor")
d19cf783 518 (version "2.0.0-alpha8")
8b9ec354
RW
519 (source (origin
520 (method url-fetch)
521 (uri (string-append
522 "https://github.com/powertab/powertabeditor/archive/"
523 version ".tar.gz"))
524 (file-name (string-append name "-" version ".tar.gz"))
525 (sha256
526 (base32
d19cf783 527 "0gaa2x209v3azql8ak3r1n9a9qbxjx2ssirvwdxwklv2lmfqkm82"))
8b9ec354
RW
528 (modules '((guix build utils)))
529 (snippet
530 '(begin
531 ;; Remove bundled sources for external libraries
532 (delete-file-recursively "external")
533 (substitute* "CMakeLists.txt"
534 (("include_directories\\(\\$\\{PROJECT_SOURCE_DIR\\}/external/.*") "")
8b9ec354
RW
535 (("add_subdirectory\\(external\\)") ""))
536 (substitute* "test/CMakeLists.txt"
537 (("include_directories\\(\\$\\{PROJECT_SOURCE_DIR\\}/external/.*") ""))
538
539 ;; Add install target
540 (substitute* "source/CMakeLists.txt"
541 (("qt5_use_modules")
542 (string-append
543 "install(TARGETS powertabeditor "
544 "RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)\n"
545 "install(FILES data/tunings.json DESTINATION "
546 "${CMAKE_INSTALL_PREFIX}/share/powertabeditor/)\n"
547 "qt5_use_modules")))
548 #t))))
549 (build-system cmake-build-system)
550 (arguments
7e11d113 551 `(#:modules ((guix build cmake-build-system)
8b9ec354
RW
552 (guix build utils)
553 (ice-9 match))
554 #:configure-flags
555 ;; CMake appears to lose the RUNPATH for some reason, so it has to be
556 ;; explicitly set with CMAKE_INSTALL_RPATH.
7e11d113
RW
557 (list "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
558 "-DCMAKE_ENABLE_PRECOMPILED_HEADERS=OFF" ; if ON pte_tests cannot be built
559 (string-append "-DCMAKE_INSTALL_RPATH="
8b9ec354
RW
560 (string-join (map (match-lambda
561 ((name . directory)
562 (string-append directory "/lib")))
563 %build-inputs) ";")))
564 #:phases
565 (modify-phases %standard-phases
7e11d113
RW
566 (replace
567 'check
568 (lambda _
569 (zero? (system* "bin/pte_tests"
570 ;; Exclude this failing test
571 "~Formats/PowerTabOldImport/Directions"))))
572 (add-before
573 'configure 'fix-tests
574 (lambda _
575 ;; Tests cannot be built with precompiled headers
576 (substitute* "test/CMakeLists.txt"
577 (("cotire\\(pte_tests\\)") ""))
578 #t))
8b9ec354
RW
579 (add-before
580 'configure 'remove-third-party-libs
581 (lambda* (#:key inputs #:allow-other-keys)
582 ;; Link with required static libraries, because we're not
583 ;; using the bundled version of withershins.
584 (substitute* '("source/CMakeLists.txt"
585 "test/CMakeLists.txt")
7e11d113 586 (("target_link_libraries\\((powertabeditor|pte_tests)" _ target)
8b9ec354
RW
587 (string-append "target_link_libraries(" target " "
588 (assoc-ref inputs "binutils")
589 "/lib/libbfd.a "
d6902798 590 (assoc-ref inputs "libiberty")
8b9ec354
RW
591 "/lib/libiberty.a "
592 "dl")))
593 #t)))))
594 (inputs
595 `(("boost" ,boost)
596 ("alsa-lib" ,alsa-lib)
597 ("qt" ,qt)
598 ("withershins" ,withershins)
d6902798 599 ("libiberty" ,libiberty) ;for withershins
8b9ec354
RW
600 ("binutils" ,binutils) ;for -lbfd and -liberty (for withershins)
601 ("timidity" ,timidity++)
602 ("pugixml" ,pugixml)
603 ("rtmidi" ,rtmidi)
604 ("rapidjson" ,rapidjson)
605 ("zlib" ,zlib)))
606 (native-inputs
607 `(("catch" ,catch-framework)
608 ("pkg-config" ,pkg-config)))
609 (home-page "http://powertabs.net")
610 (synopsis "Guitar tablature editor")
611 (description
612 "Power Tab Editor 2.0 is the successor to the famous original Power Tab
613Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.")
614 (license license:gpl3+)))
615
ec8da0e2
RW
616(define-public setbfree
617 (package
618 (name "setbfree")
619 (version "0.8.0")
620 (source (origin
621 (method url-fetch)
622 (uri
623 (string-append
624 "https://github.com/pantherb/setBfree/releases/download/v"
625 version "/setbfree-" version ".tar.gz"))
626 (sha256
627 (base32
628 "045bgp7qsigpbrhk7qvgvliwiy26sajifwn7f2jvk90ckfqnlw4b"))))
629 (build-system gnu-build-system)
630 (arguments
631 `(#:tests? #f ; no "check" target
632 #:make-flags
633 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
634 (string-append "FONTFILE="
635 (assoc-ref %build-inputs "font-bitstream-vera")
b42d4508
RW
636 "/share/fonts/truetype/VeraBd.ttf")
637 ;; Disable unsupported optimization flags on non-x86
638 ,@(let ((system (or (%current-target-system)
639 (%current-system))))
640 (if (or (string-prefix? "x86_64" system)
641 (string-prefix? "i686" system))
642 '()
643 '("OPTIMIZATIONS=-ffast-math -fomit-frame-pointer -O3"))))
ec8da0e2
RW
644 #:phases
645 (modify-phases %standard-phases
646 (add-before 'build 'set-CC-variable
647 (lambda _ (setenv "CC" "gcc") #t))
648 (delete 'configure))))
649 (inputs
650 `(("jack" ,jack-1)
651 ("lv2" ,lv2)
652 ("zita-convolver" ,zita-convolver)
653 ("glu" ,glu)
654 ("ftgl" ,ftgl)
655 ("font-bitstream-vera" ,font-bitstream-vera)))
656 (native-inputs
657 `(("help2man" ,help2man)
658 ("pkg-config" ,pkg-config)))
659 (home-page "http://setbfree.org")
660 (synopsis "Tonewheel organ")
661 (description
662 "setBfree is a MIDI-controlled, software synthesizer designed to imitate
663the sound and properties of the electromechanical organs and sound
664modification devices that brought world-wide fame to the names and products of
665Laurens Hammond and Don Leslie.")
666 (license license:gpl2+)))
667
96250294
RW
668(define-public bristol
669 (package
670 (name "bristol")
671 (version "0.60.11")
672 (source (origin
673 (method url-fetch)
674 (uri (string-append "mirror://sourceforge/bristol/bristol/"
675 (version-major+minor version)
676 "/bristol-" version ".tar.gz"))
677 (sha256
678 (base32
679 "1fi2m4gmvxdi260821y09lxsimq82yv4k5bbgk3kyc3x1nyhn7vx"))))
680 (build-system gnu-build-system)
18ef998b
RW
681 (arguments
682 `(#:phases
683 (modify-phases %standard-phases
684 (add-after 'unpack 'remove-sse-flags
685 (lambda* (#:key system #:allow-other-keys)
686 (when (not (or (string-prefix? "x86_64" system)
687 (string-prefix? "i686" system)))
688 (substitute* "bristol/Makefile.in"
689 (("-msse -mfpmath=sse") "")))
690 #t)))))
96250294
RW
691 (inputs
692 `(("alsa-lib" ,alsa-lib)
693 ("jack" ,jack-1)
694 ("liblo" ,liblo)
695 ("libx11" ,libx11)))
696 (native-inputs
697 `(("pkg-config" ,pkg-config)))
698 (home-page "http://bristol.sourceforge.net/")
699 (synopsis "Synthesizer emulator")
700 (description
701 "Bristol is an emulation package for a number of different 'classic'
702synthesizers including additive and subtractive and a few organs. The
703application consists of the engine, which is called bristol, and its own GUI
704library called brighton that represents all the emulations. There are
705currently more than twenty different emulations; each does sound different
706although the author maintains that the quality and accuracy of each emulation
707is subjective.")
708 (license license:gpl3+)))
709
6260d1a8
RW
710(define-public tuxguitar
711 (package
712 (name "tuxguitar")
713 (version "1.2")
714 (source (origin
715 (method url-fetch)
716 (uri (string-append
717 "mirror://sourceforge/tuxguitar/TuxGuitar/TuxGuitar-"
718 version "/tuxguitar-src-" version ".tar.gz"))
719 (sha256
720 (base32
721 "1g1yf2gd06fzdhqb8kb8dmdcmr602s9y24f01kyl4940wimgr944"))))
722 (build-system gnu-build-system)
723 (arguments
724 `(#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
725 (assoc-ref %outputs "out") "/lib")
726 (string-append "PREFIX="
727 (assoc-ref %outputs "out"))
728 (string-append "SWT_PATH="
729 (assoc-ref %build-inputs "swt")
730 "/share/java/swt.jar"))
731 #:tests? #f ;no "check" target
732 #:parallel-build? #f ;not supported
733 #:phases
5f1c9498
RW
734 (modify-phases %standard-phases
735 (delete 'configure)
736 (add-before 'build 'enter-dir-and-set-flags
737 (lambda* (#:key inputs #:allow-other-keys)
738 (chdir "TuxGuitar")
739 (substitute* "GNUmakefile"
6da2e99e
RW
740 (("GCJFLAGS\\+=(.*)" _ rest)
741 (string-append "GCJFLAGS=-fsource=1.4 -fPIC " rest))
5f1c9498
RW
742 (("PROPERTIES\\?=")
743 (string-append "PROPERTIES?= -Dswt.library.path="
744 (assoc-ref inputs "swt") "/lib"))
745 (("\\$\\(GCJ\\) -o") "$(GCJ) $(LDFLAGS) -o"))
746 #t)))))
6260d1a8
RW
747 (inputs
748 `(("swt" ,swt)))
749 (native-inputs
397dbde8 750 `(("gcj" ,gcj)
6260d1a8
RW
751 ("pkg-config" ,pkg-config)))
752 (home-page "http://tuxguitar.com.ar")
753 (synopsis "Multitrack tablature editor and player")
754 (description
755 "TuxGuitar is a guitar tablature editor with player support through midi.
756It can display scores and multitrack tabs. TuxGuitar provides various
757additional features, including autoscrolling while playing, note duration
758management, bend/slide/vibrato/hammer-on/pull-off effects, support for
759tuplets, time signature management, tempo management, gp3/gp4/gp5 import and
760export.")
761 (license license:lgpl2.1+)))
2d0fd07b
RW
762
763(define-public pd
764 (package
765 (name "pd")
766 (version "0.45.4")
767 (source (origin
768 (method url-fetch)
769 (uri
770 (string-append "mirror://sourceforge/pure-data/pure-data/"
771 version "/pd-" (version-major+minor version)
772 "-" (last (string-split version #\.))
773 ".src.tar.gz"))
774 (sha256
775 (base32
776 "1ls2ap5yi2zxvmr247621g4jx0hhfds4j5704a050bn2n3l0va2p"))))
777 (build-system gnu-build-system)
778 (arguments
779 `(#:tests? #f ; no "check" target
780 #:phases
781 (modify-phases %standard-phases
782 (add-before
783 'configure 'fix-wish-path
784 (lambda _
785 (substitute* "src/s_inter.c"
786 ((" wish ") (string-append " " (which "wish8.6") " ")))
787 (substitute* "tcl/pd-gui.tcl"
788 (("exec wish ") (string-append "exec " (which "wish8.6") " ")))
789 #t))
790 (add-after
791 'unpack 'autoconf
792 (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
793 (native-inputs
794 `(("autoconf" ,autoconf)
795 ("automake" ,automake)
796 ("libtool" ,libtool)
797 ("gettext" ,gnu-gettext)
798 ("pkg-config" ,pkg-config)))
799 (inputs
800 `(("tk" ,tk)
801 ("alsa-lib" ,alsa-lib)
802 ("jack" ,jack-1)))
803 (home-page "http://puredata.info")
804 (synopsis "Visual programming language for artistic performances")
805 (description
806 "Pure Data (aka Pd) is a visual programming language. Pd enables
807musicians, visual artists, performers, researchers, and developers to create
808software graphically, without writing lines of code. Pd is used to process
809and generate sound, video, 2D/3D graphics, and interface sensors, input
810devices, and MIDI. Pd can easily work over local and remote networks to
811integrate wearable technology, motor systems, lighting rigs, and other
812equipment. Pd is suitable for learning basic multimedia processing and visual
813programming methods as well as for realizing complex systems for large-scale
814projects.")
815 (license license:bsd-3)))
821664f1
RW
816
817(define-public frescobaldi
818 (package
819 (name "frescobaldi")
7ff165da 820 (version "2.18.2")
821664f1
RW
821 (source (origin
822 (method url-fetch)
823 (uri (string-append
824 "https://github.com/wbsoft/frescobaldi/releases/download/v"
825 version "/frescobaldi-" version ".tar.gz"))
826 (sha256
827 (base32
7ff165da 828 "1yns7nq2a2hz5rv4xjp21bgcdi1xj6fq48lqjrld7ypqqi5nfjp5"))))
821664f1
RW
829 (build-system python-build-system)
830 (inputs
831 `(("lilypond" ,lilypond)
832 ("python-pyqt-4" ,python-pyqt-4)
833 ("python-ly" ,python-ly)
834 ("poppler" ,poppler)
835 ("python-poppler-qt4" ,python-poppler-qt4)
836 ("python-sip" ,python-sip)))
837 (home-page "http://www.frescobaldi.org/")
838 (synopsis "LilyPond sheet music text editor")
839 (description
840 "Frescobaldi is a LilyPond sheet music text editor with syntax
841highlighting and automatic completion. Among other things, it can render
842scores next to the source, can capture input from MIDI or read MusicXML and
843ABC files, has a MIDI player for proof-listening, and includes a documentation
844browser.")
845 (license license:gpl2+)))
ddfddb0c 846
bf76d780
RW
847(define-public drumstick
848 (package
849 (name "drumstick")
cfac1272 850 (version "1.0.2")
bf76d780
RW
851 (source (origin
852 (method url-fetch)
853 (uri (string-append "mirror://sourceforge/drumstick/"
854 version "/drumstick-" version ".tar.bz2"))
855 (sha256
856 (base32
cfac1272 857 "0l47gy9yywrc860db5g3wdqg8yc8qdb2lqq6wvw1dfim5j0vbail"))))
bf76d780
RW
858 (build-system cmake-build-system)
859 (arguments
860 `(#:tests? #f ; no test target
861 #:configure-flags '("-DLIB_SUFFIX=")
862 #:phases
863 (modify-phases %standard-phases
864 (add-before 'configure 'fix-docbook
865 (lambda* (#:key inputs #:allow-other-keys)
866 (substitute* "cmake_admin/CreateManpages.cmake"
867 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
868 (string-append (assoc-ref inputs "docbook-xsl")
869 "/xml/xsl/docbook-xsl-"
870 ,(package-version docbook-xsl)
871 "/manpages/docbook.xsl")))
872 #t)))))
873 (inputs
874 `(("qt" ,qt)
875 ("alsa-lib" ,alsa-lib)
876 ("fluidsynth" ,fluidsynth)))
877 (native-inputs
878 `(("pkg-config" ,pkg-config)
879 ("libxslt" ,libxslt) ;for xsltproc
880 ("docbook-xsl" ,docbook-xsl)
881 ("doxygen" ,doxygen)))
882 (home-page "http://drumstick.sourceforge.net/")
883 (synopsis "C++ MIDI library")
884 (description
885 "Drumstick is a set of MIDI libraries using C++/Qt5 idioms and style. It
886includes a C++ wrapper around the ALSA library sequencer interface. A
887complementary library provides classes for processing SMF (Standard MIDI
888files: .MID/.KAR), Cakewalk (.WRK), and Overture (.OVE) file formats. A
889multiplatform realtime MIDI I/O library is also provided with various output
890backends, including ALSA, OSS, Network and FluidSynth.")
891 (license license:gpl2+)))
892
8e92cfb1
RW
893(define-public vmpk
894 (package
895 (name "vmpk")
fb492b9a 896 (version "0.6.2a")
8e92cfb1
RW
897 (source (origin
898 (method url-fetch)
899 (uri (string-append "mirror://sourceforge/vmpk/vmpk/"
fb492b9a
RW
900 (string-drop-right version 1)
901 "/vmpk-" version ".tar.bz2"))
8e92cfb1
RW
902 (sha256
903 (base32
fb492b9a 904 "0259iikvxnfdiifrh02g8xgcxikrkca4nhd3an8xzx0bd6bk8ifi"))))
8e92cfb1
RW
905 (build-system cmake-build-system)
906 (arguments
907 `(#:tests? #f ; no test target
908 #:phases
909 (modify-phases %standard-phases
910 (add-before 'configure 'fix-docbook
911 (lambda* (#:key inputs #:allow-other-keys)
912 (substitute* "cmake_admin/CreateManpages.cmake"
913 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
914 (string-append (assoc-ref inputs "docbook-xsl")
915 "/xml/xsl/docbook-xsl-"
916 ,(package-version docbook-xsl)
917 "/manpages/docbook.xsl")))
918 #t)))))
919 (inputs
920 `(("drumstick" ,drumstick)
921 ("qt" ,qt)))
922 (native-inputs
923 `(("libxslt" ,libxslt) ;for xsltproc
924 ("docbook-xsl" ,docbook-xsl)
925 ("pkg-config" ,pkg-config)))
926 (home-page "http://vmpk.sourceforge.net")
927 (synopsis "Virtual MIDI piano keyboard")
928 (description
929 "Virtual MIDI Piano Keyboard is a MIDI events generator and receiver. It
930doesn't produce any sound by itself, but can be used to drive a MIDI
931synthesizer (either hardware or software, internal or external). You can use
932the computer's keyboard to play MIDI notes, and also the mouse. You can use
933the Virtual MIDI Piano Keyboard to display the played MIDI notes from another
934instrument or MIDI file player.")
935 (license license:gpl3+)))
936
ddfddb0c
RW
937(define-public zynaddsubfx
938 (package
939 (name "zynaddsubfx")
138e7697 940 (version "2.5.3")
ddfddb0c
RW
941 (source (origin
942 (method url-fetch)
943 (uri (string-append
944 "mirror://sourceforge/zynaddsubfx/zynaddsubfx/"
138e7697 945 version "/zynaddsubfx-" version ".tar.bz2"))
ddfddb0c
RW
946 (sha256
947 (base32
138e7697 948 "04da54p19p7f5wm6vm7abbjbsil1qf7n5f4adj01jm6b0wqigvgb"))))
ddfddb0c 949 (build-system cmake-build-system)
00dfc97c
RW
950 (arguments
951 `(#:phases
952 (modify-phases %standard-phases
953 ;; Move SSE compiler optimization flags from generic target to
954 ;; athlon64 and core2 targets, because otherwise the build would fail
955 ;; on non-Intel machines.
956 (add-after 'unpack 'remove-sse-flags-from-generic-target
957 (lambda _
958 (substitute* "src/CMakeLists.txt"
959 (("-msse -msse2 -mfpmath=sse") "")
960 (("-march=(athlon64|core2)" flag)
961 (string-append flag " -msse -msse2 -mfpmath=sse")))
962 #t)))))
ddfddb0c
RW
963 (inputs
964 `(("liblo" ,liblo)
965 ("ntk" ,ntk)
966 ("alsa-lib" ,alsa-lib)
967 ("jack" ,jack-1)
968 ("fftw" ,fftw)
969 ("minixml" ,minixml)
970 ("libxpm" ,libxpm)
971 ("zlib" ,zlib)))
972 (native-inputs
973 `(("pkg-config" ,pkg-config)))
974 (home-page "http://zynaddsubfx.sf.net/")
975 (synopsis "Software synthesizer")
976 (description
977 "ZynAddSubFX is a feature heavy realtime software synthesizer. It offers
978three synthesizer engines, multitimbral and polyphonic synths, microtonal
979capabilities, custom envelopes, effects, etc.")
980 (license license:gpl2)))
c493679f
RW
981
982(define-public yoshimi
983 (package
984 (name "yoshimi")
8ddc5d57 985 (version "1.3.8.2")
c493679f
RW
986 (source (origin
987 (method url-fetch)
988 (uri (string-append "mirror://sourceforge/yoshimi/"
989 (version-major+minor version)
990 "/yoshimi-" version ".tar.bz2"))
991 (sha256
992 (base32
8ddc5d57 993 "0wl4ln6v1nkkx56kfah23chyrhga2vi93i82g0s200c4s4184xr8"))))
c493679f
RW
994 (build-system cmake-build-system)
995 (arguments
996 `(#:tests? #f ; there are no tests
997 #:configure-flags
998 (list (string-append "-DCMAKE_INSTALL_DATAROOTDIR="
999 (assoc-ref %outputs "out") "/share"))
1000 #:phases
1001 (modify-phases %standard-phases
1002 (add-before 'configure 'enter-dir
1003 (lambda _ (chdir "src") #t))
1004 ;; Move SSE compiler optimization flags from generic target to
1005 ;; athlon64 and core2 targets, because otherwise the build would fail
1006 ;; on non-Intel machines.
1007 (add-after 'unpack 'remove-sse-flags-from-generic-target
1008 (lambda _
1009 (substitute* "src/CMakeLists.txt"
1010 (("-msse -msse2 -mfpmath=sse") "")
1011 (("-march=(athlon64|core2)" flag)
1012 (string-append flag " -msse -msse2 -mfpmath=sse")))
1013 #t)))))
1014 (inputs
1015 `(("boost" ,boost)
1016 ("fftwf" ,fftwf)
1017 ("alsa-lib" ,alsa-lib)
1018 ("jack" ,jack-1)
1019 ("fontconfig" ,fontconfig)
1020 ("minixml" ,minixml)
1021 ("mesa" ,mesa)
1022 ("fltk" ,fltk)
1023 ("lv2" ,lv2)
1024 ("readline" ,readline)
1025 ("ncurses" ,ncurses)
1026 ("cairo" ,cairo)
1027 ("zlib" ,zlib)))
1028 (native-inputs
1029 `(("pkg-config" ,pkg-config)))
1030 (home-page "http://yoshimi.sourceforge.net/")
1031 (synopsis "Multi-paradigm software synthesizer")
1032 (description
1033 "Yoshimi is a fork of ZynAddSubFX, a feature heavy realtime software
1034synthesizer. It offers three synthesizer engines, multitimbral and polyphonic
1035synths, microtonal capabilities, custom envelopes, effects, etc. Yoshimi
1036improves on support for JACK features, such as JACK MIDI.")
1037 (license license:gpl2)))
658212eb
LF
1038
1039(define-public cursynth
1040 (package
1041 (name "cursynth")
1042 (version "1.5")
1043 (source
1044 (origin
1045 (method url-fetch)
1046 (uri (string-append "mirror://gnu/cursynth/cursynth-"
1047 version ".tar.gz"))
1048 (sha256
1049 (base32 "1dhphsya41rv8z6yqcv9l6fwbslsds4zh1y56zizi39nd996d40v"))
1050 (patches (list (search-patch "cursynth-wave-rand.patch")))))
1051 (build-system gnu-build-system)
1052 (native-inputs `(("pkg-config" ,pkg-config)))
1053 ;; TODO: See https://github.com/iyoko/cursynth/issues/4 which currently
1054 ;; prevents us from using pulseaudio
1055 (inputs `(("ncurses" ,ncurses)
1056 ("alsa" ,alsa-lib)))
1057 (home-page "http://www.gnu.org/software/cursynth")
1058 (synopsis "Polyphonic and MIDI subtractive music synthesizer using curses")
1059 (description "GNU cursynth is a polyphonic synthesizer that runs
1060graphically in the terminal. It is built on a full-featured subtractive
1061synthesis engine. Notes and parameter changes may be entered via MIDI or the
1062computer's keyboard.")
1063 (license license:gpl3+)))
a763ce7d
RW
1064
1065(define-public qtractor
1066 (package
1067 (name "qtractor")
1068 (version "0.7.3")
1069 (source (origin
1070 (method url-fetch)
1071 (uri (string-append "http://downloads.sourceforge.net/qtractor/"
1072 "qtractor-" version ".tar.gz"))
1073 (sha256
1074 (base32
1075 "1vy4297myyqk0k58nzybgvgklckhngpdcnmp98k0rq98dirclbl7"))))
1076 (build-system gnu-build-system)
1077 (arguments `(#:tests? #f)) ; no "check" target
1078 (inputs
1079 `(("qt" ,qt)
1080 ("alsa-lib" ,alsa-lib)
1081 ("jack" ,jack-1)
1082 ("libsndfile" ,libsndfile)
1083 ("ladspa" ,ladspa)
1084 ("lv2" ,lv2)
1085 ("lilv" ,lilv)
1086 ("suil" ,suil)
1087 ("libsamplerate" ,libsamplerate)
1088 ("libvorbis" ,libvorbis)
1089 ("libmad" ,libmad)
1090 ("rubberband" ,rubberband)
1091 ("liblo" ,liblo)
1092 ("zlib" ,zlib)))
1093 (native-inputs
1094 `(("pkg-config" ,pkg-config)))
1095 (home-page "http://qtractor.sourceforge.net/")
1096 (synopsis "Audio/MIDI multi-track sequencer")
1097 (description
1098 "Qtractor is an Audio/MIDI multi-track sequencer application. It uses
1099JACK for audio and ALSA sequencer for MIDI as multimedia infrastructures and
1100follows a traditional multi-track tape recorder control paradigm.")
1101 (license license:gpl2+)))
aa0edd3f
AM
1102
1103(define-public pianobar
1104 (package
1105 (name "pianobar")
1106 (version "2015.11.22")
1107 (source (origin
1108 (method url-fetch)
1109 (uri (string-append "https://github.com/PromyLOPh/"
1110 name "/archive/" version ".tar.gz"))
1111 (file-name (string-append name "-" version ".tar.gz"))
1112 (sha256
1113 (base32
1114 "022df19bhxqvkhy0qy21xahba5s1fm17b13y0p9p9dnf2yl44wfv"))))
1115 (build-system gnu-build-system)
1116 (arguments
1117 `(#:tests? #f ; no tests
1118 #:make-flags (list "CC=gcc" "CFLAGS=-std=c99"
1119 (string-append "PREFIX=" %output))
1120 #:phases (modify-phases %standard-phases
1121 (delete 'configure))))
1122 (inputs
1123 `(("ao" ,ao)
1124 ("curl" ,curl)
1125 ("libgcrypt" ,libgcrypt)
1126 ("json-c" ,json-c)
1127 ("ffmpeg" ,ffmpeg)))
1128 (native-inputs
1129 `(("pkg-config" ,pkg-config)))
1130 (home-page "http://6xq.net/projects/pianobar/")
1131 (synopsis "Console-based pandora.com player")
1132 (description "pianobar is a console-based music player for the
1133personalized online radio pandora.com. It has configurable keys for playing
1134and managing stations, can be controlled remotely via fifo, and can run
1135event-based scripts for scrobbling, notifications, etc.")
1136 (license license:expat)))