gnu: Rename (gnu packages oggvorbis) to (gnu packages xiph).
[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>
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
19(define-module (gnu packages mp3)
20 #:use-module ((guix licenses)
21 #:renamer (symbol-prefix-proc 'license:))
25352fe1 22 #:use-module (gnu packages)
d464e725 23 #:use-module (gnu packages autotools)
25352fe1 24 #:use-module (gnu packages cdrom)
8cc9c0da 25 #:use-module (gnu packages compression)
54ff0b7d 26 #:use-module (gnu packages gettext)
25352fe1
AE
27 #:use-module (gnu packages ghostscript)
28 #:use-module (gnu packages glib)
29 #:use-module (gnu packages gtk)
c23e9e48
AE
30 #:use-module (gnu packages pcre)
31 #:use-module (gnu packages pkg-config)
54ff0b7d 32 #:use-module (gnu packages xiph)
d464e725
AE
33 #:use-module (guix packages)
34 #:use-module (guix download)
35 #:use-module (guix build-system gnu))
36
37(define-public libmad
38 (package
39 (name "libmad")
40 (version "0.15.1b")
41 (source (origin
42 (method url-fetch)
43 (uri (string-append "mirror://sourceforge/mad/libmad/"
44 version "/libmad-"
45 version ".tar.gz"))
46 (sha256
47 (base32
dd863f1f
MW
48 "14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv"))
49 (patches (list (search-patch "libmad-mips-newgcc.patch")))))
d464e725
AE
50 (build-system gnu-build-system)
51 (arguments
52 `(#:phases
53 (alist-replace
54 'configure
55 (lambda* (#:key #:allow-other-keys #:rest args)
56 (let ((configure (assoc-ref %standard-phases 'configure)))
57 ;; remove option that is not supported by gcc any more
58 (substitute* "configure" ((" -fforce-mem") ""))
59 (apply configure args)))
60 %standard-phases)))
61 (synopsis "libmad, an MPEG audio decoder")
62 (description
63 "MAD (MPEG Audio Decoder) supports MPEG-1 and the MPEG-2 extension to
64lower sampling frequencies, as well as the de facto MPEG 2.5 format.
65All three audio layers — Layer I, Layer II, and Layer III (i.e. MP3) — are
66fully implemented.
67
68This package contains the library.")
69 (license license:gpl2+)
70 (home-page "http://www.underbit.com/products/mad/")))
71
8cc9c0da
AE
72(define-public libid3tag
73 (package
74 (name "libid3tag")
75 (version "0.15.1b")
76 (source (origin
77 (method url-fetch)
78 (uri (string-append "mirror://sourceforge/mad/libid3tag/"
79 version "/libid3tag-"
80 version ".tar.gz"))
81 (sha256
82 (base32
83 "0lb1w883dc46dajbdvnia5870brl5lvnlk7g7y58y9wpg5p4znk3"))))
84 (build-system gnu-build-system)
85 (inputs `(("zlib" ,zlib)))
86 (synopsis "libid3tag, a library for reading ID3 tags")
87 (description
88 "libid3tag is a library for reading ID3 tags, both ID3v1 and the various
89versions of ID3v2")
90 (license license:gpl2+)
91 (home-page "http://www.underbit.com/products/mad/")))
92
fbd84457
AE
93(define-public id3lib
94 (package
95 (name "id3lib")
96 (version "3.8.3")
97 (source (origin
98 (method url-fetch)
99 (uri (string-append "mirror://sourceforge/id3lib/id3lib/"
100 version "/id3lib-"
101 version ".tar.gz"))
102 (sha256
103 (base32
104 "0yfhqwk0w8q2hyv1jib1008jvzmwlpsxvc8qjllhna6p1hycqj97"))))
105 (build-system gnu-build-system)
106 (arguments
107 `(#:phases
108 (alist-replace
109 'configure
110 (lambda* (#:key #:allow-other-keys #:rest args)
111 (let ((configure (assoc-ref %standard-phases 'configure)))
112 (substitute* "configure"
113 (("iomanip.h") "")) ; drop check for unused header
114 ;; see http://www.linuxfromscratch.org/patches/downloads/id3lib/
115 (substitute* "include/id3/id3lib_strings.h"
116 (("include <string>") "include <cstring>\n#include <string>"))
117 (substitute* "include/id3/writers.h"
118 (("//\\#include <string.h>") "#include <cstring>"))
119 (substitute* "examples/test_io.cpp"
120 (("dami;") "dami;\nusing namespace std;"))
121 (apply configure args)))
122 %standard-phases)))
123 (synopsis "a library for reading, writing, and manipulating ID3v1 and ID3v2 tags")
124 (description
125 "id3lib is a cross-platform software development library for reading,
126writing, and manipulating ID3v1 and ID3v2 tags. It is an on-going project
127whose primary goals are full compliance with the ID3v2 standard, portability
128across several platforms, and providing a powerful and feature-rich API with
129a highly stable and efficient implementation.")
130 (license license:lgpl2.0+)
131 (home-page "http://id3lib.sourceforge.net/")))
132
c23e9e48
AE
133(define-public libmp3splt
134 (package
135 (name "libmp3splt")
136 (version "0.8.1a")
137 (source (origin
138 (method url-fetch)
139 (uri (string-append "mirror://sourceforge/mp3splt/libmp3splt/"
140 version "/libmp3splt-"
141 version ".tar.gz"))
142 (sha256
143 (base32
144 "0d20r1bd4fgp9kp7w3qixjgll34czck9dgw59mx2kbhb0mhh00d8"))))
145 (build-system gnu-build-system)
146 (inputs `(("libid3tag" ,libid3tag)
147 ("libmad" ,libmad)
148 ("libogg" ,libogg)
149 ("libtool" ,libtool)
150 ("libvorbid" ,libvorbis)
c23e9e48 151 ("pcre" ,pcre)))
c4c4cc05
JD
152 (native-inputs
153 `(("pkg-config" ,pkg-config)))
c23e9e48
AE
154 (synopsis "libmp3splt, a library for splitting mp3 and ogg vorbis files")
155 (description
156 "Mp3splt is a utility to split mp3 and ogg vorbis files selecting a begin
157and an end time position, without decoding. For splitting an album, one may
158select split points and filenames manually or obtain them automatically from
159CDDB (internet or a local file) or from .cue files. The tool also supports
160automatic silence split, that can be used also to adjust cddb/cue splitpoints.
161
162This package contains the library.")
163 (license license:gpl2+)
164 (home-page "http://mp3splt.sourceforge.net/mp3splt_page/home.php")))
165
166(define-public mp3splt
167 (package
168 (name "mp3splt")
169 (version "2.5.1")
170 (source (origin
171 (method url-fetch)
172 (uri (string-append "mirror://sourceforge/mp3splt/mp3splt/"
173 version "/mp3splt-"
174 version ".tar.gz"))
175 (sha256
176 (base32
177 "106dnka56prlc9nsfh300f8841am2lmkwlzgl9lkr25mgnc35wwh"))))
178 (build-system gnu-build-system)
179 (inputs `(("libmp3splt" ,libmp3splt)))
180 (synopsis "mp3splt, a utiliy for splitting mp3 and ogg vorbis files")
181 (description
182 "Mp3splt is a utility to split mp3 and ogg vorbis files selecting a begin
183and an end time position, without decoding. For splitting an album, one may
184select split points and filenames manually or obtain them automatically from
185CDDB (internet or a local file) or from .cue files. The tool also supports
186automatic silence split, that can be used also to adjust cddb/cue splitpoints.
187
188This package contains the binary.")
189 (license license:gpl2+)
190 (home-page "http://mp3splt.sourceforge.net/mp3splt_page/home.php")))
191
0a56fadb
LC
192(define-public mpg321
193 (package
194 (name "mpg321")
195 (version "0.3.1")
196 (source (origin
197 (method url-fetch)
198 (uri (string-append "mirror://sourceforge/mpg321/"
199 version "/mpg321-" version ".tar.gz"))
200 (sha256
201 (base32
202 "0yamsqvj15nsxxnjs9mgyslzx7krgsfk3q1hk3g6l8w9bbbj770b"))))
203 (build-system gnu-build-system)
204 (arguments '(#:configure-flags '("--disable-alsa")))
205 (inputs
206 `(("zlib" ,zlib)
207 ("libmad" ,libmad)
208 ("libid3tag" ,libid3tag)
209 ("libao" ,ao)))
210 (home-page "http://mpg321.sourceforge.net/")
211 (synopsis "Command-line MP3 player")
212 (description "mpg321 is a command-line mp3 player. mpg321 is used for
213frontends, as an mp3 player and as an mp3 to wave file decoder (primarily for
214use with CD-recording software).")
215 (license license:gpl2)))
2ae92cbc
AE
216
217(define-public lame
218 (package
219 (name "lame")
220 (version "3.99.5")
221 (source (origin
222 (method url-fetch)
223 (uri (string-append "mirror://sourceforge/lame/lame/3.99/lame-"
224 version ".tar.gz"))
225 (sha256
226 (base32
227 "1zr3kadv35ii6liia0bpfgxpag27xcivp571ybckpbz4b10nnd14"))))
228 (build-system gnu-build-system)
229 (home-page "http://lame.sourceforge.net/")
230 (synopsis "MPEG Audio Layer III (MP3) encoder")
231 (description "LAME is a high quality MPEG Audio Layer III (MP3) encoder.")
232 (license license:lgpl2.0)))
25352fe1
AE
233
234(define-public ripperx
235 (package
236 (name "ripperx")
237 (version "2.7.3")
238 (source (origin
239 (method url-fetch)
240 (uri (string-append "mirror://sourceforge/ripperx/ripperx/"
241 version "/ripperX-"
242 version ".tar.gz"))
243 (sha256
244 (base32
01eafd38
LC
245 "130rsb2ly0l6hz728m9qr605ir4073xfl2acvf83id63kxfzjn3x"))
246 (patches
247 ;; see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=713684
248 (list (search-patch "ripperx-libm.patch")))))
25352fe1
AE
249 (build-system gnu-build-system)
250 (propagated-inputs
251 `(("gs-fonts" ,gs-fonts)
252 ("cdparanoia" ,cdparanoia)
253 ("flac" ,flac)
254 ("lame" ,lame)
255 ("vorbis-tools" ,vorbis-tools)))
256 (inputs
01eafd38 257 `(("glib" ,glib)
8b0275b6 258 ("gtk+" ,gtk+-2)
c4c4cc05
JD
259 ("id3lib" ,id3lib)))
260 (native-inputs
261 `(("pkg-config" ,pkg-config)))
25352fe1
AE
262 (synopsis "GTK program to rip and encode CD audio tracks")
263 (description
264 "RipperX is a GTK program to rip CD audio tracks and encode them to the
265Ogg, MP3, or FLAC formats. It's goal is to be easy to use, requiring only
266a few mouse clicks to convert an entire album. It supports CDDB lookups
267for album and track information.")
268 (license license:gpl2)
269 (home-page "http://sourceforge.net/projects/ripperx/")))
8f0fd238
LC
270
271(define-public libmpcdec
272 (package
273 (name "libmpcdec")
274 (version "1.2.6")
275 (source (origin
276 (method url-fetch)
277 (uri (string-append
278 "http://files.musepack.net/source/libmpcdec-"
279 version ".tar.bz2"))
280 (sha256
281 (base32
282 "1a0jdyga1zfi4wgkg3905y6inghy3s4xfs5m4x7pal08m0llkmab"))))
283 (build-system gnu-build-system)
284 (synopsis "Decoding library for the Musepack audio format")
285 (description
286 "This library supports decoding of the Musepack (MPC) audio compression
287format.")
288 (license license:bsd-3)
289 (home-page "http://musepack.net")))
290
291(define-public mpc123
292 (package
293 (name "mpc123")
294 (version "0.2.4")
295 (source (origin
296 (method url-fetch)
297 (uri (string-append "mirror://sourceforge/mpc123/version%20"
298 version "/mpc123-" version ".tar.gz"))
299 (sha256
300 (base32
301 "0sf4pns0245009z6mbxpx7kqy4kwl69bc95wz9v23wgappsvxgy1"))))
302 (build-system gnu-build-system)
303 (arguments
304 '(#:phases (alist-replace
305 'configure
306 (lambda _
307 (substitute* "Makefile"
308 (("CC[[:blank:]]*:=.*")
309 "CC := gcc\n")))
310 (alist-replace
311 'install
312 (lambda* (#:key outputs #:allow-other-keys)
313 (let* ((out (assoc-ref outputs "out"))
314 (bin (string-append out "/bin")))
315 (mkdir-p bin)
316 (copy-file "mpc123" (string-append bin "/mpc123"))))
317 %standard-phases))
318 #:tests? #f))
319
320 (native-inputs
321 `(("gettext" ,gnu-gettext)))
322 (inputs
323 `(("libao" ,ao)
324 ("libmpcdec" ,libmpcdec)))
325 (home-page "http://mpc123.sourceforge.net/")
326 (synopsis "Audio player for Musepack-formatted files")
327 (description
328 "mpc123 is a command-line player for files in the Musepack audio
329compression format (.mpc files.)")
330 (license license:gpl2+)))