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