gnu: deutex: Update to 5.2.1.
[jackhill/guix/guix.git] / gnu / packages / mp3.scm
CommitLineData
d464e725
AE
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
d5ff67f4 3;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
c0eac5a8 4;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
d1cd67af 5;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
35e65701 6;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
b5f6700f 7;;; Copyright © 2017, 2019 Pierre Langlois <pierre.langlois@gmx.com>
7c64cc7a 8;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
8ce704b2 9;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
d464e725
AE
10;;;
11;;; This file is part of GNU Guix.
12;;;
13;;; GNU Guix is free software; you can redistribute it and/or modify it
14;;; under the terms of the GNU General Public License as published by
15;;; the Free Software Foundation; either version 3 of the License, or (at
16;;; your option) any later version.
17;;;
18;;; GNU Guix is distributed in the hope that it will be useful, but
19;;; WITHOUT ANY WARRANTY; without even the implied warranty of
20;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21;;; GNU General Public License for more details.
22;;;
23;;; You should have received a copy of the GNU General Public License
24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25
26(define-module (gnu packages mp3)
b5b73a82 27 #:use-module ((guix licenses) #:prefix license:)
25352fe1 28 #:use-module (gnu packages)
d464e725 29 #:use-module (gnu packages autotools)
194782a8
MW
30 #:use-module (gnu packages base)
31 #:use-module (gnu packages gcc)
9518fde1 32 #:use-module (gnu packages boost)
25352fe1 33 #:use-module (gnu packages cdrom)
8ce704b2 34 #:use-module (gnu packages check)
8cc9c0da 35 #:use-module (gnu packages compression)
54ff0b7d 36 #:use-module (gnu packages gettext)
25352fe1 37 #:use-module (gnu packages ghostscript)
68ff528c 38 #:use-module (gnu packages ncurses)
25352fe1
AE
39 #:use-module (gnu packages glib)
40 #:use-module (gnu packages gtk)
c23e9e48
AE
41 #:use-module (gnu packages pcre)
42 #:use-module (gnu packages pkg-config)
13ef3e99 43 #:use-module (gnu packages python)
2577d934 44 #:use-module (gnu packages python-web)
44d10b1f 45 #:use-module (gnu packages python-xyz)
54ff0b7d 46 #:use-module (gnu packages xiph)
1bdb591b 47 #:use-module (gnu packages pulseaudio)
a82bec4e 48 #:use-module (gnu packages linux) ;alsa-lib
9518fde1 49 #:use-module (gnu packages video) ;ffmpeg
d464e725
AE
50 #:use-module (guix packages)
51 #:use-module (guix download)
3d679ab1 52 #:use-module (guix utils)
086518dd 53 #:use-module (guix build-system gnu)
13ef3e99 54 #:use-module (guix build-system python)
086518dd 55 #:use-module (guix build-system cmake))
d464e725
AE
56
57(define-public libmad
58 (package
59 (name "libmad")
60 (version "0.15.1b")
61 (source (origin
62 (method url-fetch)
63 (uri (string-append "mirror://sourceforge/mad/libmad/"
64 version "/libmad-"
65 version ".tar.gz"))
66 (sha256
67 (base32
dd863f1f 68 "14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv"))
fc1adab1
AK
69 (patches (search-patches "libmad-armv7-thumb-pt1.patch"
70 "libmad-armv7-thumb-pt2.patch"
aac6c53a
MW
71 "libmad-md_size.patch"
72 "libmad-length-check.patch"
fc1adab1 73 "libmad-mips-newgcc.patch"))))
d464e725
AE
74 (build-system gnu-build-system)
75 (arguments
76 `(#:phases
dc1d3cde
KK
77 (modify-phases %standard-phases
78 (add-before 'configure 'remove-unsupported-gcc-flags
4f27a333
MB
79 (lambda _
80 ;; remove option that is not supported by gcc any more
81 (substitute* "configure" ((" -fforce-mem") ""))
82 #t)))))
35b9e423 83 (synopsis "MPEG audio decoder")
d464e725
AE
84 (description
85 "MAD (MPEG Audio Decoder) supports MPEG-1 and the MPEG-2 extension to
86lower sampling frequencies, as well as the de facto MPEG 2.5 format.
87All three audio layers — Layer I, Layer II, and Layer III (i.e. MP3) — are
88fully implemented.
89
90This package contains the library.")
91 (license license:gpl2+)
296f091b 92 (home-page "https://www.underbit.com/products/mad/")))
d464e725 93
8cc9c0da
AE
94(define-public libid3tag
95 (package
96 (name "libid3tag")
97 (version "0.15.1b")
98 (source (origin
99 (method url-fetch)
100 (uri (string-append "mirror://sourceforge/mad/libid3tag/"
101 version "/libid3tag-"
102 version ".tar.gz"))
103 (sha256
104 (base32
105 "0lb1w883dc46dajbdvnia5870brl5lvnlk7g7y58y9wpg5p4znk3"))))
106 (build-system gnu-build-system)
107 (inputs `(("zlib" ,zlib)))
35b9e423 108 (synopsis "Library for reading ID3 tags")
8cc9c0da 109 (description
35b9e423 110 "Libid3tag is a library for reading ID3 tags, both ID3v1 and the various
e881752c 111versions of ID3v2.")
8cc9c0da 112 (license license:gpl2+)
296f091b 113 (home-page "https://www.underbit.com/products/mad/")))
8cc9c0da 114
fbd84457
AE
115(define-public id3lib
116 (package
117 (name "id3lib")
118 (version "3.8.3")
119 (source (origin
120 (method url-fetch)
121 (uri (string-append "mirror://sourceforge/id3lib/id3lib/"
1f521b70 122 version "/id3lib-" version ".tar.gz"))
fbd84457
AE
123 (sha256
124 (base32
1f521b70 125 "0yfhqwk0w8q2hyv1jib1008jvzmwlpsxvc8qjllhna6p1hycqj97"))
35e65701
TD
126 (modules '((guix build utils)))
127 ;; Don't use bundled zlib
6cbee49d 128 (snippet '(begin (delete-file-recursively "zlib") #t))
b5f6700f
PL
129 (patches (search-patches "id3lib-CVE-2007-4460.patch"
130 "id3lib-UTF16-writing-bug.patch"))))
fbd84457 131 (build-system gnu-build-system)
35e65701 132 (inputs `(("zlib" ,zlib)))
fbd84457
AE
133 (arguments
134 `(#:phases
dc1d3cde
KK
135 (modify-phases %standard-phases
136 (add-before 'configure 'apply-patches
137 ;; TODO: create a patch for origin instead?
138 (lambda _
139 (substitute* "configure"
140 (("iomanip.h") "")) ; drop check for unused header
141 ;; see http://www.linuxfromscratch.org/patches/downloads/id3lib/
142 (substitute* "include/id3/id3lib_strings.h"
143 (("include <string>") "include <cstring>\n#include <string>"))
144 (substitute* "include/id3/writers.h"
145 (("//\\#include <string.h>") "#include <cstring>"))
146 (substitute* "examples/test_io.cpp"
147 (("dami;") "dami;\nusing namespace std;"))
148 #t)))))
35b9e423 149 (synopsis "Library for reading, writing, and manipulating ID3v1 and ID3v2 tags")
fbd84457 150 (description
35b9e423
EB
151 "Id3lib is a cross-platform software development library for reading,
152writing, and manipulating ID3v1 and ID3v2 tags. It is an on-going project
fbd84457
AE
153whose primary goals are full compliance with the ID3v2 standard, portability
154across several platforms, and providing a powerful and feature-rich API with
155a highly stable and efficient implementation.")
156 (license license:lgpl2.0+)
157 (home-page "http://id3lib.sourceforge.net/")))
158
086518dd
LC
159(define-public taglib
160 (package
161 (name "taglib")
d1451fa0 162 (version "1.11.1")
086518dd
LC
163 (source (origin
164 (method url-fetch)
165 (uri (string-append "http://taglib.github.io/releases/taglib-"
166 version ".tar.gz"))
167 (sha256
168 (base32
d1451fa0 169 "0ssjcdjv4qf9liph5ry1kngam1y7zp8fzr9xv4wzzrma22kabldn"))))
086518dd 170 (build-system cmake-build-system)
d1451fa0
PL
171 (arguments
172 '(#:tests? #f ; Tests are not ran with BUILD_SHARED_LIBS on.
173 #:configure-flags (list "-DBUILD_SHARED_LIBS=ON")))
086518dd 174 (inputs `(("zlib" ,zlib)))
d1451fa0 175 (home-page "http://taglib.org")
086518dd
LC
176 (synopsis "Library to access audio file meta-data")
177 (description
178 "TagLib is a C++ library for reading and editing the meta-data of several
179popular audio formats. Currently it supports both ID3v1 and ID3v2 for MP3
180files, Ogg Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC,
181Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.")
182
183 ;; Dual-licensed: user may choose between LGPLv2.1 or MPLv1.1.
184 (license (list license:lgpl2.1 license:mpl1.1))))
185
68ff528c
LC
186(define-public mp3info
187 (package
188 (name "mp3info")
189 (version "0.8.5a")
190 (source (origin
191 (method url-fetch)
192 (uri (string-append
296f091b 193 "https://ibiblio.org"
f8f8897f 194 "/pub/linux/apps/sound/mp3-utils/mp3info/mp3info-"
68ff528c
LC
195 version ".tgz"))
196 (sha256
197 (base32
198 "042f1czcs9n2sbqvg4rsvfwlqib2gk976mfa2kxlfjghx5laqf04"))
199 (modules '((guix build utils)))
200 (snippet
6cbee49d
MW
201 '(begin
202 (substitute* "Makefile"
203 (("/bin/rm") "rm")
204 (("/usr/bin/install") "install")
205 (("man/man1") "share/man/man1"))
206 #t))))
68ff528c
LC
207 (build-system gnu-build-system)
208 (outputs '("out" "gui")) ;GTK+ interface in "gui"
209 (arguments
dc1d3cde
KK
210 '(#:phases
211 (modify-phases %standard-phases
212 (replace 'configure
213 (lambda* (#:key outputs #:allow-other-keys)
214 (let ((out (assoc-ref outputs "out")))
215 (substitute* "Makefile"
216 (("prefix=.*")
217 (string-append "prefix := " out "\n"))))
218 #t))
219 (add-before 'install 'pre-install
220 (lambda* (#:key outputs #:allow-other-keys)
221 (let ((out (assoc-ref outputs "out")))
222 (mkdir-p (string-append out "/bin"))
223 (mkdir-p (string-append out "/share/man/man1")))
224 #t))
225 (add-after 'install 'post-install
226 (lambda* (#:key outputs #:allow-other-keys)
227 ;; Move the GTK+ interface to "gui".
228 (let ((out (assoc-ref outputs "out"))
229 (gui (assoc-ref outputs "gui")))
230 (mkdir-p (string-append gui "/bin"))
231 (rename-file (string-append out "/bin/gmp3info")
232 (string-append gui "/bin/gmp3info")))
233 #t)))
68ff528c
LC
234 #:tests? #f))
235 (native-inputs
236 `(("pkg-config" ,pkg-config)))
237 (inputs
238 `(("gtk+" ,gtk+-2)
239 ("ncurses" ,ncurses)))
296f091b 240 (home-page "https://www.ibiblio.org/mp3info/")
68ff528c
LC
241 (synopsis "MP3 technical info viewer and ID3 1.x tag editor")
242 (description
243 "MP3Info is a little utility used to read and modify the ID3 tags of MP3
e881752c 244files. MP3Info can also display various technical aspects of an MP3 file
68ff528c
LC
245including playing time, bit-rate, sampling frequency and other attributes in a
246pre-defined or user-specifiable output format.")
247 (license license:gpl2+)))
248
c23e9e48
AE
249(define-public libmp3splt
250 (package
251 (name "libmp3splt")
67a8298c 252 (version "0.9.2")
c23e9e48
AE
253 (source (origin
254 (method url-fetch)
255 (uri (string-append "mirror://sourceforge/mp3splt/libmp3splt/"
256 version "/libmp3splt-"
257 version ".tar.gz"))
258 (sha256
259 (base32
67a8298c 260 "1p1mn2hsmj5cp40fnc8g1yfvk72p8pjxi866gjdkgjsqrr7xdvih"))))
c23e9e48
AE
261 (build-system gnu-build-system)
262 (inputs `(("libid3tag" ,libid3tag)
263 ("libmad" ,libmad)
264 ("libogg" ,libogg)
3246cc91 265 ("libltdl" ,libltdl)
e881752c 266 ("libvorbis" ,libvorbis)
c23e9e48 267 ("pcre" ,pcre)))
c4c4cc05
JD
268 (native-inputs
269 `(("pkg-config" ,pkg-config)))
35b9e423 270 (synopsis "Library for splitting mp3 and ogg vorbis files")
c23e9e48
AE
271 (description
272 "Mp3splt is a utility to split mp3 and ogg vorbis files selecting a begin
35b9e423 273and an end time position, without decoding. For splitting an album, one may
e881752c 274select split points and file names manually or obtain them automatically from
35b9e423 275CDDB (internet or a local file) or from .cue files. The tool also supports
c23e9e48
AE
276automatic silence split, that can be used also to adjust cddb/cue splitpoints.
277
278This package contains the library.")
279 (license license:gpl2+)
280 (home-page "http://mp3splt.sourceforge.net/mp3splt_page/home.php")))
281
282(define-public mp3splt
283 (package
284 (name "mp3splt")
2041f901 285 (version "2.6.2")
c23e9e48
AE
286 (source (origin
287 (method url-fetch)
288 (uri (string-append "mirror://sourceforge/mp3splt/mp3splt/"
289 version "/mp3splt-"
290 version ".tar.gz"))
291 (sha256
292 (base32
2041f901 293 "1aiv20gypb6r84qabz8gblk8vi42cg3x333vk2pi3fyqvl82phry"))))
c23e9e48 294 (build-system gnu-build-system)
2041f901 295 (native-inputs `(("pkg-config" ,pkg-config)))
c23e9e48 296 (inputs `(("libmp3splt" ,libmp3splt)))
e881752c 297 (synopsis "Utility for splitting mp3 and ogg vorbis files")
c23e9e48
AE
298 (description
299 "Mp3splt is a utility to split mp3 and ogg vorbis files selecting a begin
35b9e423 300and an end time position, without decoding. For splitting an album, one may
e881752c 301select split points and file names manually or obtain them automatically from
35b9e423 302CDDB (internet or a local file) or from .cue files. The tool also supports
c23e9e48
AE
303automatic silence split, that can be used also to adjust cddb/cue splitpoints.
304
305This package contains the binary.")
306 (license license:gpl2+)
307 (home-page "http://mp3splt.sourceforge.net/mp3splt_page/home.php")))
308
1bdb591b
LC
309(define-public mpg123
310 (package
311 (name "mpg123")
eb28d9cf 312 (version "1.25.13")
1bdb591b
LC
313 (source (origin
314 (method url-fetch)
d5ff67f4
LC
315 (uri (list (string-append "mirror://sourceforge/mpg123/mpg123/"
316 version "/mpg123-" version ".tar.bz2")
317 (string-append
296f091b 318 "https://www.mpg123.org/download/mpg123-"
d5ff67f4 319 version ".tar.bz2")))
1bdb591b
LC
320 (sha256
321 (base32
eb28d9cf 322 "02l915jq0ymndb082g6w89bpf66z04ifa1lr7ga3yycw6m46hc4h"))))
1bdb591b
LC
323 (build-system gnu-build-system)
324 (arguments '(#:configure-flags '("--with-default-audio=pulse")))
325 (native-inputs `(("pkg-config" ,pkg-config)))
326 (inputs `(("pulseaudio" ,pulseaudio)
327 ("alsa-lib" ,alsa-lib)))
53a416d6 328 (home-page "https://www.mpg123.org/")
1bdb591b
LC
329 (synopsis "Console MP3 player and decoder library")
330 (description
35b9e423 331 "Mpg123 is a real time MPEG 1.0/2.0/2.5 audio player/decoder for layers
1bdb591b
LC
3321,2 and 3 (MPEG 1.0 layer 3 aka MP3 most commonly tested). It comes with a
333command-line tool as well as a C library, libmpg123.")
334 (license license:lgpl2.1)))
335
0a56fadb
LC
336(define-public mpg321
337 (package
338 (name "mpg321")
5ed7f28d 339 (version "0.3.2")
0a56fadb
LC
340 (source (origin
341 (method url-fetch)
de67e922 342 (uri (string-append "mirror://sourceforge/mpg321/mpg321/"
0a56fadb
LC
343 version "/mpg321-" version ".tar.gz"))
344 (sha256
345 (base32
5ed7f28d 346 "0ki8mh76bbmdh77qsiw682dvi8y468yhbdabqwg05igmwc1wqvq5"))))
0a56fadb
LC
347 (build-system gnu-build-system)
348 (arguments '(#:configure-flags '("--disable-alsa")))
349 (inputs
350 `(("zlib" ,zlib)
351 ("libmad" ,libmad)
352 ("libid3tag" ,libid3tag)
353 ("libao" ,ao)))
354 (home-page "http://mpg321.sourceforge.net/")
355 (synopsis "Command-line MP3 player")
35b9e423 356 (description "Mpg321 is a command-line mp3 player. mpg321 is used for
0a56fadb
LC
357frontends, as an mp3 player and as an mp3 to wave file decoder (primarily for
358use with CD-recording software).")
359 (license license:gpl2)))
2ae92cbc
AE
360
361(define-public lame
362 (package
363 (name "lame")
3d679ab1 364 (version "3.100")
2ae92cbc
AE
365 (source (origin
366 (method url-fetch)
3d679ab1
MB
367 (uri (string-append "mirror://sourceforge/lame/lame/"
368 (version-major+minor version) "/lame-"
2ae92cbc
AE
369 version ".tar.gz"))
370 (sha256
371 (base32
3d679ab1 372 "07nsn5sy3a8xbmw1bidxnsj5fj6kg9ai04icmqw40ybkp353dznx"))))
2ae92cbc
AE
373 (build-system gnu-build-system)
374 (home-page "http://lame.sourceforge.net/")
375 (synopsis "MPEG Audio Layer III (MP3) encoder")
376 (description "LAME is a high quality MPEG Audio Layer III (MP3) encoder.")
377 (license license:lgpl2.0)))
25352fe1
AE
378
379(define-public ripperx
380 (package
381 (name "ripperx")
d0dfc066 382 (version "2.8.0")
25352fe1
AE
383 (source (origin
384 (method url-fetch)
385 (uri (string-append "mirror://sourceforge/ripperx/ripperx/"
d0dfc066
AE
386 version "/ripperx-"
387 version ".tar.bz2"))
25352fe1
AE
388 (sha256
389 (base32
d0dfc066 390 "1ss3c1a5hx6c99q1cryxg0jhbnbdj6ga9xyz0dzlz9qhzg5qswfs"))
fc1adab1 391 (patches (search-patches "ripperx-missing-file.patch"))))
25352fe1
AE
392 (build-system gnu-build-system)
393 (propagated-inputs
394 `(("gs-fonts" ,gs-fonts)
395 ("cdparanoia" ,cdparanoia)
396 ("flac" ,flac)
397 ("lame" ,lame)
398 ("vorbis-tools" ,vorbis-tools)))
399 (inputs
01eafd38 400 `(("glib" ,glib)
8b0275b6 401 ("gtk+" ,gtk+-2)
d0dfc066
AE
402 ("id3lib" ,id3lib)
403 ("taglib" ,taglib)))
c4c4cc05
JD
404 (native-inputs
405 `(("pkg-config" ,pkg-config)))
25352fe1
AE
406 (synopsis "GTK program to rip and encode CD audio tracks")
407 (description
408 "RipperX is a GTK program to rip CD audio tracks and encode them to the
35b9e423
EB
409Ogg, MP3, or FLAC formats. Its goal is to be easy to use, requiring only
410a few mouse clicks to convert an entire album. It supports CDDB lookups
25352fe1
AE
411for album and track information.")
412 (license license:gpl2)
3b3b60d0 413 (home-page "https://sourceforge.net/projects/ripperx/")))
8f0fd238
LC
414
415(define-public libmpcdec
416 (package
417 (name "libmpcdec")
418 (version "1.2.6")
419 (source (origin
420 (method url-fetch)
421 (uri (string-append
296f091b 422 "https://files.musepack.net/source/libmpcdec-"
8f0fd238
LC
423 version ".tar.bz2"))
424 (sha256
425 (base32
426 "1a0jdyga1zfi4wgkg3905y6inghy3s4xfs5m4x7pal08m0llkmab"))))
427 (build-system gnu-build-system)
428 (synopsis "Decoding library for the Musepack audio format")
429 (description
430 "This library supports decoding of the Musepack (MPC) audio compression
431format.")
432 (license license:bsd-3)
296f091b 433 (home-page "https://musepack.net")))
8f0fd238
LC
434
435(define-public mpc123
436 (package
437 (name "mpc123")
438 (version "0.2.4")
439 (source (origin
440 (method url-fetch)
d1cd67af
EF
441 (uri (list (string-append "mirror://sourceforge/mpc123/version%20"
442 version "/mpc123-" version ".tar.gz")
443 (string-append "mirror://debian/pool/main/m/" name
444 "/" name "_" version ".orig.tar.gz")))
8f0fd238
LC
445 (sha256
446 (base32
86d07a55 447 "0sf4pns0245009z6mbxpx7kqy4kwl69bc95wz9v23wgappsvxgy1"))
fc1adab1 448 (patches (search-patches "mpc123-initialize-ao.patch"))))
8f0fd238
LC
449 (build-system gnu-build-system)
450 (arguments
1a847b70
EF
451 '(#:phases
452 (modify-phases %standard-phases
453 (replace 'configure
454 (lambda _
455 (substitute* "Makefile"
456 (("CC[[:blank:]]*:=.*")
457 "CC := gcc\n"))))
458 (replace 'install
459 (lambda* (#:key outputs #:allow-other-keys)
460 (let* ((out (assoc-ref outputs "out"))
461 (bin (string-append out "/bin")))
1a847b70 462 (install-file "mpc123" bin)))))
8f0fd238 463 #:tests? #f))
8f0fd238 464 (native-inputs
b94a6ca0 465 `(("gettext" ,gettext-minimal)))
8f0fd238
LC
466 (inputs
467 `(("libao" ,ao)
468 ("libmpcdec" ,libmpcdec)))
d1cd67af 469 (home-page "https://github.com/bucciarati/mpc123")
8f0fd238
LC
470 (synopsis "Audio player for Musepack-formatted files")
471 (description
35b9e423 472 "Mpc123 is a command-line player for files in the Musepack audio
e881752c 473compression format (.mpc files).")
8f0fd238 474 (license license:gpl2+)))
13ef3e99
LF
475
476(define-public eyed3
477 (package
478 (name "eyed3")
1cb82fa4 479 (version "0.8.11")
7c64cc7a
TGR
480 (source
481 (origin
482 (method url-fetch)
483 (uri (pypi-uri "eyeD3" version))
484 (sha256
1cb82fa4 485 (base32 "1347mhjysbdpmmvdqm6lhskdw0qj9vjdn4n172ffnz958adrnk0f"))))
13ef3e99
LF
486 (build-system python-build-system)
487 (arguments
7c64cc7a 488 `(#:tests? #f)) ; the required test data contains copyrighted material
33485fa9 489 (propagated-inputs
1825ce80
LF
490 `(("python-grako" ,python-grako)
491 ("python-magic" ,python-magic)
492 ("python-pathlib" ,python-pathlib)
493 ("python-six" ,python-six)))
13ef3e99
LF
494 (synopsis "MP3 tag ID3 metadata editor")
495 (description "eyeD3 is a Python tool for working with audio files,
496specifically mp3 files containing ID3 metadata (i.e. song info). It provides a
497command-line tool (eyeD3) and a Python library (import eyed3) that can be used
498to write your own applications or plugins that are callable from the
499command-line tool.")
998100e6 500 (home-page "https://eyed3.readthedocs.io/en/latest/")
13ef3e99 501 (license license:gpl2+)))
9518fde1
HG
502
503(define-public chromaprint
504 (package
505 (name "chromaprint")
1f577b46 506 (version "1.4.3")
9518fde1
HG
507 (source (origin
508 (method url-fetch)
509 (uri (string-append
1f577b46
TGR
510 "https://github.com/acoustid/chromaprint/releases/download/v"
511 version "/chromaprint-" version ".tar.gz"))
9518fde1 512 (sha256
3694a9b3 513 (base32
1f577b46 514 "10kz8lncal4s2rp2rqpgc6xyjp0jzcrihgkx7chf127vfs5n067a"))))
9518fde1
HG
515 (build-system cmake-build-system)
516 (arguments
517 `(#:tests? #f ; tests require googletest *sources*
518 ;;#:configure-flags '("-DBUILD_TESTS=ON") ; for building the tests
a509041f 519 #:configure-flags '("-DBUILD_TOOLS=ON") ; for fpcalc
9518fde1
HG
520 #:test-target "check"))
521 (inputs
522 ;; requires one of FFmpeg (prefered), FFTW3 or vDSP
523 ;; use the same ffmpeg version as for acoustid-fingerprinter
524 `(("ffmpeg" ,ffmpeg)
60e1de6d 525 ("boost" ,boost)))
9518fde1
HG
526 (home-page "https://acoustid.org/chromaprint")
527 (synopsis "Audio fingerprinting library")
528 (description "Chromaprint is a library for calculating audio
529fingerprints which are used by the Acoustid service. Its main purpose
530is to provide an accurate identifier for record tracks.")
531 (license license:lgpl2.1+)))
8ce704b2
RW
532
533(define-public python-audioread
534 (package
535 (name "python-audioread")
536 (version "2.1.8")
537 (source
538 (origin
539 (method url-fetch)
540 (uri (pypi-uri "audioread" version))
541 (sha256
542 (base32
543 "0s6iilb8ca6j6nv5a5hbyxi5alr3crvsbr6kggh82a44pkx08f87"))))
544 (build-system python-build-system)
545 (arguments `(#:tests? #f)) ; there is no "audiofile" fixture
546 (native-inputs
547 `(("python-pytest" ,python-pytest)
548 ("python-pytest-runner" ,python-pytest-runner)))
549 (home-page "https://github.com/sampsyo/audioread")
550 (synopsis "Decode audio files using whichever backend is available")
551 (description
552 "This package provides a Python library for audo decoding. It uses
553whatever audio backend is available, such as GStreamer, Core Audio, MAD,
554FFmpeg, etc.")
555 (license license:expat)))
2577d934
RW
556
557(define-public python-pyacoustid
558 (package
559 (name "python-pyacoustid")
560 (version "1.1.7")
561 (source
562 (origin
563 (method url-fetch)
564 (uri (pypi-uri "pyacoustid" version))
565 (sha256
566 (base32
567 "1zan6c22ca6sjy0g9ajwjp6mkzw7jv8r3n7jzska09a6x254lf87"))))
568 (build-system python-build-system)
569 (propagated-inputs
570 `(("python-audioread" ,python-audioread)
571 ("python-requests" ,python-requests)))
572 (home-page "https://github.com/sampsyo/pyacoustid")
573 (synopsis "Bindings for Chromaprint acoustic fingerprinting")
574 (description
575 "This package provides bindings for the Chromaprint acoustic
576fingerprinting library and the Acoustid API.")
577 (license license:expat)))