You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

747 lines
26 KiB

  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
  3. ;;;
  4. ;;; This file is part of GNU Guix.
  5. ;;;
  6. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  7. ;;; under the terms of the GNU General Public License as published by
  8. ;;; the Free Software Foundation; either version 3 of the License, or (at
  9. ;;; your option) any later version.
  10. ;;;
  11. ;;; GNU Guix is distributed in the hope that it will be useful, but
  12. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  13. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. ;;; GNU General Public License for more details.
  15. ;;;
  16. ;;; You should have received a copy of the GNU General Public License
  17. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  18. (define-module (gnu packages audio)
  19. #:use-module (guix packages)
  20. #:use-module (guix download)
  21. #:use-module (guix git-download)
  22. #:use-module ((guix licenses) #:prefix license:)
  23. #:use-module (guix build-system gnu)
  24. #:use-module (guix build-system waf)
  25. #:use-module (guix build-system trivial)
  26. #:use-module (gnu packages)
  27. #:use-module (gnu packages algebra)
  28. #:use-module (gnu packages boost)
  29. #:use-module (gnu packages base)
  30. #:use-module (gnu packages compression)
  31. #:use-module (gnu packages curl)
  32. #:use-module (gnu packages databases)
  33. #:use-module (gnu packages glib)
  34. #:use-module (gnu packages gtk)
  35. #:use-module (gnu packages gnome)
  36. #:use-module (gnu packages ncurses)
  37. #:use-module (gnu packages qt)
  38. #:use-module (gnu packages linux)
  39. #:use-module (gnu packages mp3) ;taglib
  40. #:use-module (gnu packages perl)
  41. #:use-module (gnu packages pkg-config)
  42. #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
  43. #:use-module (gnu packages python)
  44. #:use-module (gnu packages rdf)
  45. #:use-module (gnu packages readline)
  46. #:use-module (gnu packages xiph)
  47. #:use-module (gnu packages xml)
  48. #:use-module (srfi srfi-1))
  49. (define-public aubio
  50. (package
  51. (name "aubio")
  52. (version "0.4.1")
  53. (source (origin
  54. (method url-fetch)
  55. (uri (string-append
  56. "http://aubio.org/pub/aubio-" version ".tar.bz2"))
  57. (sha256
  58. (base32
  59. "15f6nf76y7iyl2kl4ny7ky0zpxfxr8j3902afvd6ydnnkh5dzmr5"))))
  60. (build-system waf-build-system)
  61. (arguments
  62. `(#:tests? #f ; no check target
  63. #:configure-flags
  64. '("--enable-fftw3f"
  65. "--enable-jack"
  66. "--enable-sndfile"
  67. "--enable-samplerate"
  68. ;; enable compilation with avcodec once available
  69. "--disable-avcodec")
  70. #:python ,python-2))
  71. (inputs
  72. `(("jack" ,jack-1)
  73. ("libsndfile" ,libsndfile)
  74. ("libsamplerate" ,libsamplerate)
  75. ("fftwf" ,fftwf)))
  76. (native-inputs
  77. `(("pkg-config" ,pkg-config)))
  78. (home-page "http://aubio.org/")
  79. (synopsis "A library for audio labelling")
  80. (description
  81. "aubio is a tool designed for the extraction of annotations from audio
  82. signals. Its features include segmenting a sound file before each of its
  83. attacks, performing pitch detection, tapping the beat and producing MIDI
  84. streams from live audio.")
  85. (license license:gpl3+)))
  86. (define-public ardour
  87. (package
  88. (name "ardour")
  89. (version "3.5.403")
  90. (source (origin
  91. ;; The project only provides tarballs upon individual request
  92. ;; (or after payment) so we take the code from git.
  93. (method git-fetch)
  94. (uri (git-reference
  95. (url "git://git.ardour.org/ardour/ardour.git")
  96. (commit version)))
  97. (snippet
  98. '(call-with-output-file
  99. "libs/ardour/revision.cc"
  100. (lambda (port)
  101. (format port "#include \"ardour/revision.h\"
  102. namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }"))))
  103. (sha256
  104. (base32
  105. "01b0wxh0wlxjfz5j8gcwwqhxc6q2kn4njz2fcmzv9fr3xaya5dbp"))
  106. (file-name (string-append name "-" version))))
  107. (build-system waf-build-system)
  108. (arguments
  109. `(#:tests? #f ; no check target
  110. #:python ,python-2))
  111. (inputs
  112. `(("alsa-lib" ,alsa-lib)
  113. ("aubio" ,aubio)
  114. ("lrdf" ,lrdf)
  115. ("boost" ,boost)
  116. ("atkmm" ,atkmm)
  117. ("cairomm" ,cairomm)
  118. ("gtkmm" ,gtkmm-2)
  119. ("glibmm" ,glibmm)
  120. ("libart-lgpl" ,libart-lgpl)
  121. ("libgnomecanvasmm" ,libgnomecanvasmm)
  122. ("pangomm" ,pangomm)
  123. ("liblo" ,liblo)
  124. ("libsndfile" ,libsndfile)
  125. ("libsamplerate" ,libsamplerate)
  126. ("libxml2" ,libxml2)
  127. ("libogg" ,libogg)
  128. ("libvorbis" ,libvorbis)
  129. ("flac" ,flac)
  130. ("lv2" ,lv2)
  131. ("vamp" ,vamp)
  132. ("curl" ,curl)
  133. ("fftw" ,fftw)
  134. ("fftwf" ,fftwf)
  135. ("jack" ,jack-1)
  136. ("serd" ,serd)
  137. ("sord" ,sord)
  138. ("sratom" ,sratom)
  139. ("suil" ,suil)
  140. ("lilv" ,lilv)
  141. ("rasqal" ,rasqal)
  142. ("raptor2" ,raptor2)
  143. ("redland" ,redland)
  144. ("rubberband" ,rubberband)
  145. ("taglib" ,taglib)
  146. ("python-rdflib" ,python-rdflib)))
  147. (native-inputs
  148. `(("perl" ,perl)
  149. ("pkg-config" ,pkg-config)))
  150. (home-page "http://ardour.org")
  151. (synopsis "Digital audio workstation")
  152. (description
  153. "Ardour is a multi-channel digital audio workstation, allowing users to
  154. record, edit, mix and master audio and MIDI projects. It is targeted at audio
  155. engineers, musicians, soundtrack editors and composers.")
  156. (license license:gpl2+)))
  157. (define-public azr3
  158. (package
  159. (name "azr3")
  160. (version "1.2.3")
  161. (source (origin
  162. (method url-fetch)
  163. (uri (string-append "mirror://savannah/ll-plugins/azr3-jack-"
  164. version
  165. ".tar.bz2"))
  166. (sha256
  167. (base32
  168. "18mdw6nc0vgj6k9rsy0x8w64wvzld0frqshrxxbxfj9qi9843vlc"))))
  169. (build-system gnu-build-system)
  170. (arguments
  171. `(#:tests? #f ; no check target
  172. #:make-flags
  173. (list "LV2PEG=ttl2c"
  174. (string-append "prefix=" %output)
  175. (string-append "pkgdatadir=" %output "/share/azr3-jack"))))
  176. (inputs
  177. `(("gtkmm" ,gtkmm-2)
  178. ("lvtk" ,lvtk)
  179. ("jack" ,jack-1)
  180. ("lash" ,lash)))
  181. (native-inputs
  182. `(("pkg-config" ,pkg-config)))
  183. (home-page "http://ll-plugins.nongnu.org/azr3/")
  184. (synopsis "Tonewheel organ synthesizer")
  185. (description
  186. "AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ
  187. with drawbars, distortion and rotating speakers. The organ has three
  188. sections, two polyphonic sections with nine drawbars each and one monophonic
  189. bass section with five drawbars. A standalone JACK application and LV2
  190. plugins are provided.")
  191. (license license:gpl2)))
  192. (define-public freepats
  193. (package
  194. (name "freepats")
  195. (version "20060219")
  196. (source (origin
  197. (method url-fetch)
  198. (uri (string-append "http://freepats.zenvoid.org/freepats-"
  199. version ".tar.bz2"))
  200. (sha256
  201. (base32
  202. "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82"))))
  203. (build-system trivial-build-system)
  204. (arguments
  205. `(#:modules ((guix build utils))
  206. #:builder (begin
  207. (use-modules (guix build utils))
  208. (let ((out (string-append %output "/share/freepats")))
  209. (setenv "PATH" (string-append
  210. (assoc-ref %build-inputs "bzip2") "/bin:"
  211. (assoc-ref %build-inputs "tar") "/bin"))
  212. (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
  213. (chdir "freepats")
  214. ;; Use absolute pattern references
  215. (substitute* "freepats.cfg"
  216. (("Tone_000") (string-append out "/Tone_000"))
  217. (("Drum_000") (string-append out "/Drum_000")))
  218. (mkdir-p out)
  219. (copy-recursively "." out)))))
  220. (native-inputs
  221. `(("tar" ,tar)
  222. ("bzip2" ,bzip2)))
  223. (home-page "http://freepats.zenvoid.org")
  224. (synopsis "GUS compatible patches for MIDI players")
  225. (description
  226. "FreePats is a project to create a free and open set of GUS compatible
  227. patches that can be used with softsynths such as Timidity and WildMidi.")
  228. ;; GPLv2+ with exception for compositions using these patches.
  229. (license license:gpl2+)))
  230. (define-public jack-1
  231. (package
  232. (name "jack")
  233. (version "0.124.1")
  234. (source (origin
  235. (method url-fetch)
  236. (uri (string-append
  237. "http://jackaudio.org/downloads/jack-audio-connection-kit-"
  238. version
  239. ".tar.gz"))
  240. (sha256
  241. (base32
  242. "1mk1wnx33anp6haxfjjkfhwbaknfblsvj35nxvz0hvspcmhdyhpb"))))
  243. (build-system gnu-build-system)
  244. (inputs
  245. `(("alsa-lib" ,alsa-lib)
  246. ("bdb" ,bdb)
  247. ("readline" ,readline)))
  248. ;; uuid.h is included in the JACK type headers
  249. (propagated-inputs
  250. `(("libuuid" ,util-linux)))
  251. (native-inputs
  252. `(("pkg-config" ,pkg-config)))
  253. (home-page "http://jackaudio.org/")
  254. (synopsis "JACK audio connection kit")
  255. (description
  256. "JACK is a low-latency audio server. It can connect a number of
  257. different applications to an audio device, as well as allowing them to share
  258. audio between themselves. JACK is different from other audio server efforts
  259. in that it has been designed from the ground up to be suitable for
  260. professional audio work. This means that it focuses on two key areas:
  261. synchronous execution of all clients, and low latency operation.")
  262. ;; Most files are licensed under the GPL. However, the libjack/ tree is
  263. ;; licensed under the LGPL in order to allow for proprietary usage.
  264. (license (list license:gpl2+ license:lgpl2.1+))))
  265. (define-public jack-2
  266. (package (inherit jack-1)
  267. (name "jack2")
  268. (version "1.9.10")
  269. (source (origin
  270. (method url-fetch)
  271. (uri (string-append
  272. "https://github.com/jackaudio/jack2/archive/v"
  273. version
  274. ".tar.gz"))
  275. (sha256
  276. (base32
  277. "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8"))))
  278. (build-system waf-build-system)
  279. (arguments
  280. `(#:tests? #f ; no check target
  281. #:configure-flags '("--dbus"
  282. "--alsa")))
  283. (inputs
  284. `(("alsa-lib" ,alsa-lib)
  285. ("dbus" ,dbus)
  286. ("expat" ,expat)
  287. ("libsamplerate" ,libsamplerate)
  288. ("opus" ,opus)
  289. ("readline" ,readline)))
  290. (native-inputs
  291. `(("pkg-config" ,pkg-config)))
  292. ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
  293. (license (list license:gpl2+ license:lgpl2.1+))))
  294. (define-public jalv
  295. (package
  296. (name "jalv")
  297. (version "1.4.6")
  298. (source (origin
  299. (method url-fetch)
  300. (uri (string-append "http://download.drobilla.net/jalv-"
  301. version ".tar.bz2"))
  302. (sha256
  303. (base32
  304. "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9"))))
  305. (build-system waf-build-system)
  306. (arguments `(#:tests? #f)) ; no check target
  307. (inputs
  308. `(("lv2" ,lv2)
  309. ("lilv" ,lilv)
  310. ("suil" ,suil)
  311. ("gtk" ,gtk+-2)
  312. ("gtkmm" ,gtkmm-2)
  313. ("qt" ,qt-4)
  314. ("jack" ,jack-1)))
  315. (native-inputs
  316. `(("pkg-config" ,pkg-config)))
  317. (home-page "http://drobilla.net/software/jalv/")
  318. (synopsis "Simple LV2 host for JACK")
  319. (description
  320. "Jalv is a simple but fully featured LV2 host for JACK. It runs LV2
  321. plugins and exposes their ports as JACK ports, essentially making any LV2
  322. plugin function as a JACK application.")
  323. (license license:isc)))
  324. (define-public ladspa
  325. (package
  326. (name "ladspa")
  327. (version "1.13")
  328. (source (origin
  329. (method url-fetch)
  330. (uri (string-append
  331. "http://www.ladspa.org/download/ladspa_sdk_"
  332. version
  333. ".tgz"))
  334. (sha256
  335. (base32
  336. "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"))))
  337. (build-system gnu-build-system)
  338. (arguments
  339. `(#:tests? #f ; the "test" target is a listening test only
  340. #:phases
  341. (alist-replace
  342. 'configure
  343. (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
  344. (chdir "src")
  345. (let ((out (assoc-ref outputs "out")))
  346. (substitute* "makefile"
  347. (("/usr/lib/ladspa/") (string-append out "/lib/ladspa/"))
  348. (("/usr/include/") (string-append out "/include/"))
  349. (("/usr/bin/") (string-append out "/bin/"))
  350. (("-mkdirhier") "mkdir -p")
  351. (("^CC.*") "CC = gcc\n")
  352. (("^CPP.*") "CPP = g++\n"))))
  353. (alist-delete 'build %standard-phases))))
  354. (home-page "http://ladspa.org")
  355. (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)")
  356. (description
  357. "LADSPA is a standard that allows software audio processors and effects
  358. to be plugged into a wide range of audio synthesis and recording packages.")
  359. (license license:lgpl2.1+)))
  360. (define-public lash
  361. (package
  362. (name "lash")
  363. (version "0.6.0-rc2")
  364. (source (origin
  365. (method url-fetch)
  366. ;; The tilde is not permitted in the builder name, but is used
  367. ;; in the tarball.
  368. (uri (string-append
  369. "mirror://savannah/lash/lash-"
  370. (string-join (string-split version #\-) "~")
  371. ".tar.bz2"))
  372. (file-name (string-append name "-" version ".tar.bz2"))
  373. (sha256
  374. (base32
  375. "12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw"))))
  376. (build-system gnu-build-system)
  377. (inputs
  378. `(("bdb" ,bdb)
  379. ("gtk" ,gtk+-2)
  380. ("jack" ,jack-1)
  381. ("readline" ,readline)
  382. ("python" ,python-2)))
  383. ;; According to pkg-config, packages depending on lash also need to have
  384. ;; at least the following packages declared as inputs.
  385. (propagated-inputs
  386. `(("alsa-lib" ,alsa-lib)
  387. ("dbus" ,dbus)
  388. ("libxml2" ,libxml2)))
  389. (native-inputs
  390. `(("pkg-config" ,pkg-config)))
  391. (home-page "http://www.nongnu.org/lash/")
  392. (synopsis "Audio application session manager")
  393. (description
  394. "LASH is a session management system for audio applications. It allows
  395. you to save and restore audio sessions consisting of multiple interconneced
  396. applications, restoring program state (i.e. loaded patches) and the
  397. connections between them.")
  398. (license license:gpl2+)))
  399. (define-public liblo
  400. (package
  401. (name "liblo")
  402. (version "0.28")
  403. (source (origin
  404. (method url-fetch)
  405. (uri (string-append
  406. "mirror://sourceforge/liblo/liblo-"
  407. version
  408. ".tar.gz"))
  409. (sha256
  410. (base32
  411. "02drgnpirvl2ihvzgsmn02agr5sj3vipzzw9vma56qlkgfvak56s"))))
  412. (build-system gnu-build-system)
  413. (arguments
  414. `(;; liblo test FAILED
  415. ;; liblo server error 19 in setsockopt(IP_ADD_MEMBERSHIP): No such device
  416. #:tests? #f))
  417. (home-page "http://liblo.sourceforge.net")
  418. (synopsis "Implementation of the Open Sound Control protocol")
  419. (description
  420. "liblo is a lightweight library that provides an easy to use
  421. implementation of the Open Sound Control (OSC) protocol.")
  422. (license license:lgpl2.1+)))
  423. (define-public lilv
  424. (package
  425. (name "lilv")
  426. (version "0.20.0")
  427. (source (origin
  428. (method url-fetch)
  429. (uri (string-append "http://download.drobilla.net/lilv-"
  430. version
  431. ".tar.bz2"))
  432. (sha256
  433. (base32
  434. "0aj2plkx56iar8vzjbq2l7hi7sp0ml99m0h44rgwai2x4vqkk2j2"))))
  435. (build-system waf-build-system)
  436. (arguments `(#:tests? #f)) ; no check target
  437. ;; required by lilv-0.pc
  438. (propagated-inputs
  439. `(("serd" ,serd)
  440. ("sord" ,sord)
  441. ("sratom" ,sratom)))
  442. (inputs
  443. `(("lv2" ,lv2)))
  444. (native-inputs
  445. `(("pkg-config" ,pkg-config)))
  446. (home-page "http://drobilla.net/software/lilv/")
  447. (synopsis "Library to simplify use of LV2 plugins in applications")
  448. (description
  449. "Lilv is a C library to make the use of LV2 plugins as simple as possible
  450. for applications. Lilv is the successor to SLV2, rewritten to be
  451. significantly faster and have minimal dependencies.")
  452. (license license:isc)))
  453. (define-public lv2
  454. (package
  455. (name "lv2")
  456. (version "1.10.0")
  457. (source (origin
  458. (method url-fetch)
  459. (uri (string-append "http://lv2plug.in/spec/lv2-"
  460. version
  461. ".tar.bz2"))
  462. (sha256
  463. (base32
  464. "1md41x9snrp4mcfyli7lyfpvcfa78nfy6xkdy84kppnl8m5qw378"))))
  465. (build-system waf-build-system)
  466. (arguments
  467. `(#:tests? #f ; no check target
  468. #:configure-flags '("--lv2-system")))
  469. (inputs
  470. ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
  471. `(("libsndfile" ,libsndfile)))
  472. (native-inputs
  473. `(("pkg-config" ,pkg-config)))
  474. (home-page "http://lv2plug.in/")
  475. (synopsis "LV2 audio plugin specification")
  476. (description
  477. "LV2 is an open specification for audio plugins and host applications.
  478. At its core, LV2 is a simple stable interface, accompanied by extensions which
  479. add functionality to support the needs of increasingly powerful audio
  480. software.")
  481. (license license:isc)))
  482. (define-public lvtk
  483. (package
  484. (name "lvtk")
  485. (version "1.2.0")
  486. (source (origin
  487. (method url-fetch)
  488. (uri (string-append "https://github.com/lvtk/lvtk/archive/"
  489. version
  490. ".tar.gz"))
  491. (sha256
  492. (base32
  493. "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd"))))
  494. (build-system waf-build-system)
  495. (arguments
  496. `(#:tests? #f ; no check target
  497. #:python ,python-2
  498. #:configure-flags
  499. (list (string-append "--boost-includes="
  500. (assoc-ref %build-inputs "boost")
  501. "/include"))))
  502. (inputs
  503. `(("boost" ,boost)
  504. ("lv2" ,lv2)))
  505. (native-inputs
  506. `(("pkg-config" ,pkg-config)))
  507. (home-page "https://github.com/lvtk/lvtk")
  508. (synopsis "C++ libraries for LV2 plugins")
  509. (description
  510. "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
  511. extensions into easy to use C++ classes. It is the successor of
  512. lv2-c++-tools.")
  513. (license license:gpl3+)))
  514. (define-public patchage
  515. (package
  516. (name "patchage")
  517. (version "1.0.0")
  518. (source (origin
  519. (method url-fetch)
  520. (uri (string-append "http://download.drobilla.net/patchage-"
  521. version
  522. ".tar.bz2"))
  523. (sha256
  524. (base32
  525. "1agdpwwi42176l4mxj0c4fsvdiv1ig56bfnnx0msckxmy57df8bb"))))
  526. (build-system waf-build-system)
  527. (arguments `(#:tests? #f)) ; no check target
  528. (inputs
  529. `(("alsa-lib" ,alsa-lib)
  530. ("boost" ,boost)
  531. ("jack" ,jack-1)
  532. ("ganv" ,ganv)
  533. ("glib" ,glib)
  534. ("glibmm" ,glibmm)
  535. ("gtkmm" ,gtkmm-2)
  536. ("dbus" ,dbus)
  537. ("dbus-glib" ,dbus-glib)))
  538. (native-inputs
  539. `(("pkg-config" ,pkg-config)))
  540. (home-page "http://drobilla.net/software/patchage/")
  541. (synopsis "Modular patch bay for audio and MIDI systems")
  542. (description
  543. "Patchage is a modular patch bay for audio and MIDI systems based on JACK
  544. and ALSA.")
  545. (license license:gpl3+)))
  546. (define-public rubberband
  547. (package
  548. (name "rubberband")
  549. (version "1.8.1")
  550. (source (origin
  551. (method url-fetch)
  552. (uri
  553. (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
  554. version
  555. ".tar.bz2"))
  556. (sha256
  557. (base32
  558. "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
  559. (build-system gnu-build-system)
  560. (arguments `(#:tests? #f)) ; no check target
  561. (inputs
  562. `(("ladspa" ,ladspa)
  563. ("libsamplerate" ,libsamplerate)
  564. ("vamp" ,vamp)))
  565. (native-inputs
  566. `(("pkg-config" ,pkg-config)))
  567. (home-page "http://breakfastquay.com/rubberband/")
  568. (synopsis "Audio time-stretching and pitch-shifting library")
  569. (description
  570. "Rubber Band is a library and utility program that permits changing the
  571. tempo and pitch of an audio recording independently of one another.")
  572. (license license:gpl2+)))
  573. (define-public sratom
  574. (package
  575. (name "sratom")
  576. (version "0.4.6")
  577. (source (origin
  578. (method url-fetch)
  579. (uri (string-append "http://download.drobilla.net/sratom-"
  580. version
  581. ".tar.bz2"))
  582. (sha256
  583. (base32
  584. "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4"))))
  585. (build-system waf-build-system)
  586. (arguments `(#:tests? #f)) ; no check target
  587. (inputs
  588. `(("lv2" ,lv2)
  589. ("serd" ,serd)
  590. ("sord" ,sord)))
  591. (native-inputs
  592. `(("pkg-config" ,pkg-config)))
  593. (home-page "http://drobilla.net/software/sratom/")
  594. (synopsis "Library for serialising LV2 atoms to/from RDF")
  595. (description
  596. "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
  597. the Turtle syntax.")
  598. (license license:isc)))
  599. (define-public suil
  600. (package
  601. (name "suil")
  602. (version "0.8.2")
  603. (source (origin
  604. (method url-fetch)
  605. (uri (string-append "http://download.drobilla.net/suil-"
  606. version
  607. ".tar.bz2"))
  608. (sha256
  609. (base32
  610. "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq"))))
  611. (build-system waf-build-system)
  612. (arguments `(#:tests? #f)) ; no check target
  613. (inputs
  614. `(("lv2" ,lv2)
  615. ("gtk+-2" ,gtk+-2)
  616. ("qt-4" ,qt-4)))
  617. (native-inputs
  618. `(("pkg-config" ,pkg-config)))
  619. (home-page "http://drobilla.net/software/suil/")
  620. (synopsis "Library for loading and wrapping LV2 plugin UIs")
  621. (description
  622. "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
  623. Suil makes it possible to load a UI of a toolkit in a host using another
  624. toolkit. The API is designed such that hosts do not need to explicitly
  625. support specific toolkits – if Suil supports a particular toolkit, then UIs in
  626. that toolkit will work in all hosts that use Suil automatically.
  627. Suil currently supports every combination of Gtk 2, Qt 4, and X11.")
  628. (license license:isc)))
  629. (define-public timidity++
  630. (package
  631. (name "timidity++")
  632. (version "2.14.0")
  633. (source (origin
  634. (method url-fetch)
  635. (uri (string-append
  636. "mirror://sourceforge/timidity/TiMidity++-"
  637. version ".tar.bz2"))
  638. (sha256
  639. (base32
  640. "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr"))))
  641. (build-system gnu-build-system)
  642. (arguments
  643. '(#:configure-flags
  644. (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex"
  645. "--enable-ncurses"
  646. "--enable-server"
  647. "--enable-alsaseq"
  648. (string-append "--with-default-path="
  649. (assoc-ref %outputs "out") "/etc/timidity"))
  650. #:phases
  651. (alist-cons-after
  652. 'install 'install-config
  653. (lambda _
  654. (let ((out (string-append (assoc-ref %outputs "out")
  655. "/etc/timidity")))
  656. (mkdir-p out)
  657. (call-with-output-file
  658. (string-append out "/timidity.cfg")
  659. (lambda (port)
  660. (format port (string-append "source "
  661. (assoc-ref %build-inputs "freepats")
  662. "/share/freepats/freepats.cfg"))))))
  663. %standard-phases)))
  664. (inputs
  665. `(("alsa-lib" ,alsa-lib)
  666. ("ao" ,ao)
  667. ("flac" ,flac)
  668. ("jack" ,jack-1)
  669. ("libogg" ,libogg)
  670. ("speex" ,speex)
  671. ("ncurses" ,ncurses)
  672. ("freepats" ,freepats)))
  673. (native-inputs
  674. `(("pkg-config" ,pkg-config)))
  675. (home-page "http://timidity.sourceforge.net/")
  676. (synopsis "Software synthesizer for playing MIDI files")
  677. (description
  678. "TiMidity++ is a software synthesizer. It can play MIDI files by
  679. converting them into PCM waveform data; give it a MIDI data along with digital
  680. instrument data files, then it synthesizes them in real-time, and plays. It
  681. can not only play sounds, but also can save the generated waveforms into hard
  682. disks as various audio file formats.")
  683. (license license:gpl2+)))
  684. (define-public vamp
  685. (package
  686. (name "vamp")
  687. (version "2.5")
  688. (source (origin
  689. (method url-fetch)
  690. (uri (string-append
  691. "https://code.soundsoftware.ac.uk"
  692. "/attachments/download/690/vamp-plugin-sdk-"
  693. version
  694. ".tar.gz"))
  695. (sha256
  696. (base32
  697. "178kfgq08cmgdzv7g8dwyjp4adwx8q04riimncq4nqkm8ng9ywbv"))))
  698. (build-system gnu-build-system)
  699. (arguments
  700. `(#:tests? #f ; no check target
  701. #:phases
  702. (alist-cons-after
  703. 'install 'remove-libvamp-hostsdk.la
  704. (lambda* (#:key outputs #:allow-other-keys)
  705. ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656
  706. (for-each delete-file
  707. (let ((out (assoc-ref outputs "out")))
  708. (list (string-append out "/lib/libvamp-sdk.la")
  709. (string-append out "/lib/libvamp-hostsdk.la"))))
  710. #t)
  711. %standard-phases)))
  712. (inputs
  713. `(("libsndfile" ,libsndfile)))
  714. (native-inputs
  715. `(("pkg-config" ,pkg-config)))
  716. (home-page "http://vamp-plugins.org")
  717. (synopsis "Modular and extensible audio processing system")
  718. (description
  719. "Vamp is an audio processing plugin system for plugins that extract
  720. descriptive information from audio data — typically referred to as audio
  721. analysis plugins or audio feature extraction plugins.")
  722. (license
  723. (license:x11-style
  724. "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))