Projects
Multimedia
caudec
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 2
View file
caudec.changes
Changed
@@ -1,4 +1,69 @@ ------------------------------------------------------------------- +Mon Jul 28 18:50:12 UTC 2014 - dap.darkness@gmail.com + +- Updated to 1.7.5: + * new -2 parameter: convert mono and multichannel audio to stereo + (upmix / downmix), using proper channel mappings; + * '-r cd' preset now implies '-b 16 -r 44100 -2' + (includes automatic conversion to stereo where applicable); + * new -z parameter: produce machine-parsable output; + * added support for AIFF and CAF (Core Audio File); + * directories are now accepted as input: caudec will + automatically find all eligible files within those directories + (use in conjunction with 'ignoreUnsupportedFiles'); + * new 'ignoreUnsupportedFiles' configuration parameter: set to + true to prevent caudec from aborting when some of the input + files are unsupported (false by default); + * -t (testing file integrity) can now be used with all lossless + codecs, using hash metadata (-H); + * added SHA256 and SHA512 hashing; + * renamed 'CRC' to 'CRC32'; backward compatibility with files + tagged with 'CRC=' is maintained; + * check internal MD5 hash whenever possible, + to detect potential codec bugs; + * new 'enableColors' configuration parameter: true by default, + set to 'false' to disable coloring of human-readable output; + * new 'brightColors' configuration parameter: true by default, + set to 'false' to use darker colors + (enableColors needs to be true); + * -G parameter (apply gain) and -S parameter (compute Soundcheck + data) can now take an arbitrary value + (signed number from -99.99 to +99.99); + * significantly sped up computing album gain; + * check the output of replaygain tools more thoroughly; + * caudec -g: process multiline metadata; + * various fixes when computing Replaygain with Ogg Vorbis, + MP3 and AAC files; + * new dependencies: SoX (mandatory) and ffmpeg + (ALAC, AAC and Monkey's Audio); + * removed shntool and alac dependencies; + * let SoX output Microsoft-compliant WAV files (fixes some + compatibility issues with multichannel files); + * added support for eyeD3 version 0.6.x and 0.7.x; the former is + recommended however, as the latter is broken; + * workaround for broken eyeD3 0.7.1: set front cover artwork in MP3 files, if available; + * better handling of Windows binaries with Wine; search home + directory to find Wine user directories automatically; + * don't store empty hash metadata, when hashing fails; + * better detection of the number of CPU cores; + * improved example command line that caudec outputs + when fed too many files; + * removed confusing 'm4a' codec name (with -c); + * fixed lossyTAK regression; + * lossyWV: use --merge-blocks (better compression); + * better ramdisk space management + (various fixes and improvements); + * new ramdisk space usage monitoring function: + print a warning if the estimation was too low; + * better comparison of version numbers when checking for new + versions online; + * only strip out ENCODING metadata field when transcoding; + * more compact display of statistics in human-readable output: + removed unnecessary; values; + * many, many more fixes; + * read more at http://caudec.net/documentation/changelog/#v1.7.5 + +------------------------------------------------------------------- Tue Mar 26 20:03:17 UTC 2013 - dap.darkness@gmail.com - Initial package.
View file
caudec.spec
Changed
@@ -10,7 +10,7 @@ # Name: caudec -Version: 1.6.2 +Version: 1.7.5 Release: 0 License: GPL-3.0+ Summary: A multi-process audio transcoder @@ -22,7 +22,6 @@ BuildRoot: %{_tmppath}/build-%{name}-%{version} -Recommends: alac_decoder Recommends: apetag Recommends: cksfv Recommends: flac @@ -33,21 +32,19 @@ Recommends: nero-aac Recommends: opus Recommends: python-eyeD3 -Recommends: sox Recommends: vorbis-tools Recommends: vorbisgain +Recommends: wavegain Recommends: wavpack Recommends: wget Recommends: wine Requires: bash Requires: bc -Requires: coreutils Requires: findutils -Requires: grep Requires: procps Requires: sed -Requires: shntool +Requires: sox Requires: util-linux %description @@ -63,14 +60,14 @@ %install mkdir -p %{buildroot}%{_bindir} -%{__install} %{name} %{buildroot}%{_bindir} -mkdir -p %{buildroot}%{_sysconfdir} -%{__install} %{name}rc %{buildroot}%{_sysconfdir} +install -m 0755 %{name} APEv2 %{buildroot}%{_bindir} +install -D %{name}rc %{buildroot}%{_sysconfdir}/%{name}rc %files %defattr(-,root,root) -%doc LICENSE CHANGES README +%doc LICENSE* CHANGES README %{_bindir}/%{name} +%{_bindir}/APEv2 %{_sysconfdir}/%{name}rc %changelog
View file
caudec-1.7.5.tar.gz/APEv2
Added
@@ -0,0 +1,1648 @@ +#!/bin/bash + +# Copyright © 2013 - 2014 Guillaume Cocatre-Zilgien <gcocatre@gmail.com> +# http://caudec.net/ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This program is provided without warranty of any kind, either expressed, +# implied, or statutory. The entire risk as to the quality and performance +# of this program is with You. Under no circumstances and under no legal +# theory shall any Contributor, or anyone who distributes this program, +# be liable to You for any damages of any character. +# +# Full APEv2 specification: +# http://wiki.hydrogenaudio.org/index.php?title=APEv2_specification + +printUsage () +{ + echo "${me} ${VERSION}: APEv2 tagger +Copyright © 2013 - 2014 Guillaume Cocatre-Zilgien +http://caudec.net/ + +Usage: $me [ PARAMETERS ] FILE(S) +List, set or remove tags in APEv2 files (.ape, .wv, .mpc, .tak…). +Default action: list tags, with colored field names. + + +Tagging Parameters: +-------------------------------------------------------------------------------- + -i read and set tags from STDIN + -f FILE copy APEv2 tags from FILE (must contain a valid APEv2 tag) + -t F=V set tag item with field name F and value V + -r F remove tag item with field name F + -R remove all APEv2 data + + -a F=P set artwork tag item with field name F, with the contents of file P; + F must start with 'Cover Art', and P must be a valid path to the + file (normally, either .jpg, .png or .gif). + + -b F=P set binary tag item with field name F, with the contents of file P; + P must be a valid path to the file + + -d F=P dump value of tag item with field name F into file P; P may be a + filename, or '-' to dump to STDOUT. This parameter may be used with + any type of field (artwork, binary or text), and can only be used + on its own. When dumping artwork, ${me} will automatically append + the correct file extension, if the provided filename (P) ends with + a dot ('.'). + + +Output Formatting Parameters: +-------------------------------------------------------------------------------- + -C disable coloring + + -D print debugging information to STDERR + + -z machine-parsable output: replace new line chars with '\\n', + NULL chars with '\\x00', prefix read-only tag items with 'ro:', and + print artwork and binary data as Base64 (preceded by 'artwork:' and + 'data:', respectively). Implies -C. + + -Z raw mode: output new line chars, NULL chars and binary data as is. + Implies -C. Warning: this might mess up your terminal, unless you + redirect the output to a program that can handle it, or to a file. + + +Notes about output modes: +-------------------------------------------------------------------------------- +By default, $me prints tags in a colored, human readable format, with new line +characters printed as is, NULL characters replaced with ' / ', artwork +designated as 'artwork: <SIZE>' (byte size of the artwork) and binary data +designated as 'data: <SIZE>' (byte size of the data). + +To disable coloring, use -C. To change the color of field names, +export APEV2FCC='xyy', where 'x' is either '1' (bold) or '0', and 'yy' is +a number between 30 and 37 (see: man 4 console_codes). To change the color of +values, export APEV2VCC='xyy' (default: '000', i.e. no coloring of values). +If both environment variables are set to '000', coloring is disabled (like +using -C). Note that coloring is always disabled when using -z or -Z. + + +Notes about setting and removing tag items: +-------------------------------------------------------------------------------- +To specify new lines with -t or -i, write them as '\\n' (though actual new lines +are accepted as well); to specify NULL chars (for NULL separated lists of +values), write them as '\\x00'. The -z parameter uses those notations. + +When feeding tags via STDIN (-i), you must specify one FIELD=VALUE pair on each +line. Write new lines and NULL chars as '\\n' and '\\x00', respectively. +To read FIELD=VALUE pairs from a text file, simply run: +\$ ${me} -i file.ape < metadata.txt + +In order to mark a tag item read-only with -t, -i, -a or -b, precede the field +name with 'ro:', e.g.: -t \"ro:Artist=Daft Punk\". Read-only items cannot be +updated, but they may be explicitely removed with the -r parameter. + +Note that in the APEv2 specification, all field names are unique; using -i, -t, +-a or -b will either create new tag items, or replace existing ones. You may +also use the -r and -R parameters with -i, -t, -a and -b. + + +Miscellaneous: +-------------------------------------------------------------------------------- +The full APEv2 specification can be found on the Hydrogenaudio Wiki: +http://wiki.hydrogenaudio.org/index.php?title=APEv2_specification" +} + +cleanExit () +{ + if [ -n "$nProcesses" ]; then + if [ $nProcesses -gt 1 ]; then + kill $( jobs -p ) >/dev/null 2>&1 + fi + fi + if [ -n "$tempDir" -a -e "$tempDir" ]; then + rm -rf "$tempDir" >/dev/null 2>&1 + fi + exit $1 +} + +cleanAbort () +{ + if [ -n "$nProcesses" ]; then + if [ $nProcesses -gt 1 ]; then + kill $( jobs -p ) >/dev/null 2>&1 + fi + unset nProcesses + fi + echo + cleanExit $EX_INTERRUPT +} + +debugMsg () +{ + if [ $debug = true ]; then + echo -e "${WG}DEBUG:${NM} $1" 1>&2 + fi +} + +printWarning () +{ + if [ "$outputMode" = 'colors' ]; then + echo -e "${WG}Warning:${NM} $1" 1>&2 + else + echo -E "Warning: $1" 1>&2 + fi +} + +printError () +{ + if [ "$outputMode" = 'colors' ]; then + echo -e "${KO}Error:${NM} $1" 1>&2 + else + echo -E "Error: $1" 1>&2 + fi +} + +setColors () +{ + local boldCode='' colorCode='' + + if [ "$outputMode" = 'colors' ]; then # default mode + if [ "$APEV2FCC" = '000' -a "$APEV2VCC" = '000' ]; then + outputMode='human' # disable all coloring + else + NM="\\033[0m" # reset + OK="\\033[1;32m" # success: bright green + KO="\\033[1;31m" # failure: bright red + WG="\\033[1;33m" # warning: bright orange + FC="\\033[1;34m" # field names: bright blue + VC="$NM" # item values: no coloring + + # custom field name color + if [ "$APEV2FCC" = '000' ]; then + FC="$NM" # disable coloring of field names + elif [ "${#APEV2FCC}" -eq 3 ]; then + if [ "${APEV2FCC:0:1}" = '0' ]; then + boldCode='0' + else + boldCode='1' + fi + case "${APEV2FCC:1:2}" in + 3[0-7]) colorCode="${APEV2FCC:1:2}" ;; + *) colorCode='34' + esac + FC="\\033[${boldCode};${colorCode}m" + fi + + # custom item value color + if [ "$APEV2VCC" = '000' ]; then + VC="$NM" # disable coloring of item values + elif [ "${#APEV2VCC}" -eq 3 ]; then + if [ "${APEV2VCC:0:1}" = '0' ]; then + boldCode='0' + else + boldCode='1' + fi
View file
caudec-1.6.2.tar.gz/CHANGES -> caudec-1.7.5.tar.gz/CHANGES
Changed
@@ -1,7 +1,72 @@ +v1.7.5: WavPack lossy: don't remove Replaygain tags after transcoding + APEv2: don't store duplicate value, transform duplicate fields into unique multi-value fields + APEv2: fix handling of tags that start with '(' + Opus: added support for embedded artwork +v1.7.4: by default, set the number of processes to the number of logical CPU cores if equal to 4 or lower, or to the number of physical CPU cores + when applying Replaygain, make additional -G parameter act as a preamp value +v1.7.3: new -DDD parameter: delete source file upon successful transcoding (USE WITH CARE) + new sampling rates and presets: 352800 Hz, 384000 Hz, -r dxd + replaygain bugfix: check for multichannel audio instead of strictly mono or stereo + bugfix: sanitize track and disc number metadata +v1.7.2: added support for WavPack 4.70.0 + updated all URLs to http://caudec.net/ +v1.7.1: added peak normalization with '-G albumpeak' (by album) and '-G trackpeak' (by track) + use TAK multithreading when it makes sense + replaced apetag optional dependency with APEv2, which supports previously missing features: NULL separated lists, embedded artwork and binary data + added support for extracting and importing APEv2 artwork + significantly sped up extracting embedded artwork from FLAC files + support parsing version number of lossyWAV 1.3.1 and up + added support for PERFORMER metadata + new 'ID3Padding' configuration parameter: size in bytes of padding to add to ID3v2 tags (default: 512 bytes) +v1.7.0: new -2 parameter: convert mono and multichannel audio to stereo (upmix / downmix), using proper channel mappings + '-r cd' preset now implies '-b 16 -r 44100 -2' (includes automatic conversion to stereo where applicable) + new -z parameter: produce machine-parsable output + added support for AIFF and CAF (Core Audio File) + directories are now accepted as input: caudec will automatically find all eligible files within those directories (use in conjunction with 'ignoreUnsupportedFiles') + new 'ignoreUnsupportedFiles' configuration parameter: set to true to prevent caudec from aborting when some of the input files are unsupported (false by default) + -t (testing file integrity) can now be used with all lossless codecs, using hash metadata (-H) + added SHA256 and SHA512 hashing + renamed 'CRC' to 'CRC32'; backward compatibility with files tagged with 'CRC=' is maintained + check internal MD5 hash whenever possible, to detect potential codec bugs + new 'enableColors' configuration parameter: true by default, set to 'false' to disable coloring of human-readable output + new 'brightColors' configuration parameter: true by default, set to 'false' to use darker colors (enableColors needs to be true) + -G parameter (apply gain) and -S parameter (compute Soundcheck data) can now take an arbitrary value (signed number from -99.99 to +99.99) + significantly sped up computing album gain + check the output of replaygain tools more thoroughly + caudec -g: process multiline metadata + various fixes when computing Replaygain with Ogg Vorbis, MP3 and AAC files + new dependencies: SoX (mandatory) and ffmpeg (ALAC, AAC and Monkey's Audio) + removed shntool and alac dependencies + let SoX output Microsoft-compliant WAV files (fixes some compatibility issues with multichannel files) + added support for eyeD3 version 0.6.x and 0.7.x; the former is recommended however, as the latter is broken + workaround for broken eyeD3 0.7.1: set front cover artwork in MP3 files, if available + better handling of Windows binaries with Wine; search home directory to find Wine user directories automatically + don't store empty hash metadata, when hashing fails + better detection of the number of CPU cores + improved example command line that caudec outputs when fed too many files + removed confusing 'm4a' codec name (with -c) + fixed lossyTAK regression + lossyWV: use --merge-blocks (better compression) + better ramdisk space management (various fixes and improvements) + new ramdisk space usage monitoring function: print a warning if the estimation was too low + better comparison of version numbers when checking for new versions online + only strip out ENCODING metadata field when transcoding + more compact display of statistics in human-readable output: removed unnecessary values + many, many more fixes +v1.6.4: -o/O/P may now be specified after each -c parameter, in order to set per-codec destination directories (useful when transcoding to several codecs at once) + allow simultaneous usage of codecs with the same file extension (e.g. ALAC and AAC; just make sure to specify per-codec destination directories) + reduced ramdisk space requirements, especially with lossyWAV +v1.6.3: new -k parameter: keep existing destination files (don't overwrite them) + new -K parameter: keep existing destination files if they're newer than their source + fixed OS Ⅹ compatibility (GNU version of sed required: gsed) + fixed: -P DIR -c lossyWAV + fixed APEv2 to APEv2 tagging regression + fixed division by zero bug; use gdate on OS Ⅹ if available + removed fgrep and readlink dependencies, consolidated various command lines v1.6.2: new -u parameter: check for new versions new 'sendHardwareDetails' configuration parameter (defaults to false): include CPU and RAM information in caudec's User Agent string when checking for new versions added caudec's User Agent string in the output of 'caudec -h' (test with 'sendHardwareDetails' set to true and false) - added CBR (constant) and CVBR (constrained) bitrate modes and parameters (-b/-B) for Opus (see important note: http://caudec.outpost.fr/documentation/versions/#opus) + added CBR (constant) and CVBR (constrained) bitrate modes and parameters (-b/-B) for Opus (see important note: http://caudec.net/documentation/versions/#opus) added 'tagCompressionSetting' configuration parameter: store compression setting in metadata (defaults to false) v1.6.1: updated all files with new URL: http://caudec.outpost.fr/ v1.6.0: new feature: tag whitelisting and blacklisting (tagWhitelist='' and tagBlacklist='' in caudecrc) @@ -54,7 +119,7 @@ precise evaluation of ramdisk space requirements with TAK input files v1.4.1: fixed bug that made other instances stall when aborting one instance install.sh: autodetect path of current caudec installation -v1.4.0: now runs on Mac OS X (tested on Lion) +v1.4.0: now runs on OS Ⅹ (tested on OS Ⅹ Lion) smart handling of concurrent instances better detection of ramdisks don't abort if no ramdisk is available
View file
caudec-1.7.5.tar.gz/LICENSE-APEv2
Added
@@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices +
View file
caudec-1.7.5.tar.gz/LICENSE-caudec
Changed
(renamed from LICENSE)
View file
caudec-1.6.2.tar.gz/README -> caudec-1.7.5.tar.gz/README
Changed
@@ -1,8 +1,8 @@ -caudec 1.6.2: multi-process audio transcoder -Copyright © 2012 - 2013 Guillaume Cocatre-Zilgien -http://caudec.outpost.fr/ +caudec 1.7.5: multiprocess audio converter +Copyright © 2012 - 2014 Guillaume Cocatre-Zilgien +http://caudec.net/ -caudec is a BASH script for GNU/Linux that transcodes audio files from +caudec is a command-line utility that transcodes (converts) audio files from one format (codec) to another. It leverages multi-core CPUs with lots of RAM by using a ramdisk, and running multiple processes concurrently (one per file and per codec). @@ -11,12 +11,13 @@ arguably classier than ABBA, but caudec doesn't discriminate) from WAV to FLAC --best is done at 183x real time on a Core i7 @ 2.2 GHz with 8 processes, versus 46x with one process. FLAC -5 encodes at 532x, TAK -p2 at 705x. -* Supported input codecs: WAV, FLAC, WavPack, Monkey's Audio, TAK, - Apple Lossless (ALAC). -* Supported output codecs: WAV, FLAC, Flake, WavPack, Monkey's Audio, TAK, - Apple Lossless (ALAC), lossyWAV, LAME, Ogg Vorbis, Nero AAC, qaac, Musepack, - Opus. -* Support for high quality resampling with sox. +* Supported input formats / codecs: WAV, AIFF, CAF, FLAC, WavPack, + Monkey's Audio, TAK, Apple Lossless (ALAC). +* Supported output formats / codecs: WAV, AIFF, CAF, FLAC, Flake, WavPack, + Monkey's Audio, TAK, Apple Lossless (ALAC), lossyWAV, LAME, Ogg Vorbis, + Nero AAC, qaac, Musepack, Opus. +* Support for high quality resampling and downmixing / upmixing to stereo, + with SoX. * Optimized I/O: input files are copied onto a ramdisk sequentially, so as to get the best performance out of the underlying medium (e.g. a hard drive). Transcoding however is done concurrently. Example: file 1 gets copied. When @@ -26,62 +27,77 @@ decoding of input files is done only once. * Multiple instances of caudec can be run concurrently while sharing ressources. * Metadata is preserved (as much as possible) from one codec to another. -* Multi-process Replaygain scanner (except for Opus and Musepack) +* Multiprocess Replaygain scanner (except for Opus and Musepack) * Uses existing, popular command line encoders/decoders. caudec is most useful when dealing with one album at a time (with 1, 2 or 3 discs, with each track as a separate file). Handling of multiple albums is done -via scripting (see http://caudec.outpost.fr/documentation/examples/). +via scripting (see http://caudec.net/documentation/examples/). caudec cannot efficiently deal with very large files (recordings that are several hours long), or very large numbers of files (messy collections with a single directory and thousands of files). Those are known limitations, and they are not within the scope of this program. -Tested under Arch Linux (latest version) and Mac OS X Lion (version 1.4.1). -Thanks to Tobias Link for kindly giving me remote shell access to his Macbook -so I could port caudec to Mac OS X. +Tested under Arch Linux and OS Ⅹ Mountain Lion. Thanks to Tobias Link for +kindly giving me remote shell access to his Macbook so I could port caudec +to OS Ⅹ. -Please submit bug reports here: http://caudec.outpost.fr/redirect/bugs +Please submit bug reports here: http://caudec.net/redirect/bugs If you enjoy caudec and would like to make a donation, see: -http://caudec.outpost.fr/donate/ +http://caudec.net/donate/ -caudec uses common UNIX tools (grep, stat, sed, tr, cut, wc, df, mktemp, -readlink, xargs, nohup), as well as the following software: +caudec uses common UNIX tools (which, uname, grep, stat, sed/gsed, date/gdate, +tr, cut, wc, df, mktemp, xargs, nohup), as well as the following software: + +Mandatory Software: +-------------------------------------------------------------------------------- * bc: http://www.gnu.org/software/bc/ -* shntool: http://etree.org/shnutils/shntool/ -* sox: http://sox.sourceforge.net/ -* wget: http://www.gnu.org/software/wget/wget.html +* SoX: http://sox.sourceforge.net/ + +Optional Software: +-------------------------------------------------------------------------------- + +Native Codecs: * FLAC: http://flac.sourceforge.net/ * Flake: http://flake-enc.sourceforge.net/ * WavPack: http://www.wavpack.com/ * Monkey's Audio: http://www.monkeysaudio.com/ and http://etree.org/shnutils/shntool/support/formats/ape/unix/ -* TAK: http://thbeck.de/Tak/Tak.html -* ALAC decoder: http://craz.net/programs/itunes/alac.html -* ffmpeg (ALAC encoding): http://ffmpeg.org/ -* lossyWAV: http://wiki.hydrogenaudio.org/index.php?title=LossyWAV +* ffmpeg (ALAC, AAC, Monkey's Audio): http://ffmpeg.org/ * LAME: http://lame.sourceforge.net/ * Ogg Vorbis: http://www.vorbis.com/ * Nero AAC: http://www.nero.com/eng/technologies-aac-codec.html -* qaac (iTunes AAC encoding): https://sites.google.com/site/qaacpage/ * Musepack: http://musepack.net/ and http://wiki.hydrogenaudio.org/index.php?title=Musepack * Opus: http://www.opus-codec.org/ + +Windows Codecs: * Wine (for Windows binaries): http://www.winehq.org/ -* Apetag (for files with APEv2 metadata): http://muth.org/Robert/Apetag/ -* cksfv (for hashing CRCs): http://zakalwe.fi/~shd/foss/cksfv/ +* TAK: http://wiki.hydrogenaudio.org/index.php?title=TAK +* lossyWAV: http://wiki.hydrogenaudio.org/index.php?title=LossyWAV +* LAME: http://www.rarewares.org/mp3-lame-bundle.php +* Ogg Vorbis: http://www.rarewares.org/ogg-oggenc.php +* qaac (iTunes AAC encoding): https://sites.google.com/site/qaacpage/ + +Replaygain: * wavegain: http://freecode.com/projects/wavegain * vorbisgain: http://sjeng.org/vorbisgain.html * mp3gain: http://mp3gain.sourceforge.net/ * aacgain: http://aacgain.altosdesign.com/ -* eyeD3: http://eyed3.nicfit.net/ -In order to install the required software on Mac OS X, you may find the -following package management software useful: -* Homebrew: http://mxcl.github.com/homebrew/ -* MacPorts: http://www.macports.org/ -* Fink: http://www.finkproject.org/ +Miscellaneous: +* wget (for checking for new versions): http://www.gnu.org/software/wget/wget.html +* APEv2 (for files with APEv2 metadata): http://caudec.net/ +* cksfv (for hashing CRC32): http://zakalwe.fi/~shd/foss/cksfv/ +* md5sum (Linux) or md5 (OS Ⅹ) for hashing MD5 sums +* sha1sum, sha256sum, sha512sum (Linux) or shasum (OS Ⅹ) for hashing SHA sums +* eyeD3 (for MP3 tagging): http://eyed3.nicfit.net/ + + +In order to install caudec, required and optional software on OS Ⅹ, use the +Homebrew package management software: http://mxcl.github.io/homebrew/ +Note that the GNU version of sed (gsed) is required; gdate is optional. To install caudec when no package is available for your distribution, run: $ sudo ./install.sh [ --prefix=/some/custom/path ]
View file
caudec-1.6.2.tar.gz/caudec -> caudec-1.7.5.tar.gz/caudec
Changed
@@ -1,7 +1,7 @@ #!/bin/bash -# Copyright © 2012 - 2013 Guillaume Cocatre-Zilgien <guillaume@cocatre.net> -# http://caudec.outpost.fr/ +# Copyright © 2012 - 2014 Guillaume Cocatre-Zilgien <gcocatre@gmail.com> +# http://caudec.net/ # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -23,7 +23,22 @@ me='caudec' calledAs="${0##*/}" -VERSION='1.6.2' +VERSION='1.7.5' + +# EX_USAGE: The command was used incorrectly, e.g., with the wrong number of arguments, a bad flag, a bad syntax in a parameter, or whatever. +# EX_DATAERR: The input data was incorrect in some way. This should only be used for user's data & not system files. +# EX_NOINPUT: An input file (not a system file) did not exist or was not readable. This could also include errors like "No message" to a mailer (if it cared to catch it). +# EX_NOUSER: The user specified did not exist. This might be used for mail addresses or remote logins. +# EX_NOHOST: The host specified did not exist. This is used in mail addresses or network requests. +# EX_UNAVAILABLE: A service is unavailable. This can occur if a support program or file does not exist. This can also be used as a catchall message when something you wanted to do doesn't work, but you don't know why. +# EX_SOFTWARE: An internal software error has been detected. This should be limited to non-operating system related errors as possible. +# EX_OSERR: An operating system error has been detected. This is intended to be used for such things as "cannot fork", "cannot create pipe", or the like. It includes things like getuid returning a user that does not exist in the passwd file. +# EX_OSFILE: Some system file (e.g., /etc/passwd, /etc/utmp, etc.) does not exist, cannot be opened, or has some sort of error (e.g., syntax error). +# EX_CANTCREAT: A (user specified) output file cannot be created. +# EX_IOERR: An error occurred while doing I/O on some file. +# EX_TEMPFAIL: temporary failure, indicating something that is not really an error. In sendmail, this means that a mailer (e.g.) could not create a connection, and the request should be reattempted later. +# EX_PROTOCOL: the remote system returned something that was "not possible" during a protocol exchange. +# EX_NOPERM: You did not have sufficient permission to perform the operation. This is not intended for file system problems, which should use NOINPUT or CANTCREAT, but rather for higher level permissions. EX_OK=0 # successful termination EX_KO=1 # unsuccessful termination @@ -46,6 +61,11 @@ EL="\\033[2K\\033[0G" OK="\\033[1;32m" KO="\\033[1;31m" WG="\\033[1;33m" +DG="\\033[0;32m" # dark green +DR="\\033[0;31m" # dark red +BR="\\033[0;33m" # brown +DB="\\033[0;34m" # dark blue +BB="\\033[1;34m" # bright blue NM="\\033[0m" BD="\\033[1;37m" GR="\\033[1;30m" CY="\\033[0;36m" BCY="\\033[1;36m" # User settings ================================================================ @@ -53,9 +73,9 @@ if [ -r '/etc/caudecrc' ]; then . '/etc/caudecrc' test -n "$maxInstances" && rootMaxInstances="$maxInstances" - test -n "$maxInputFiles" && rootMaxInputFiles="$maxInputFIles" + test -n "$maxInputFiles" && rootMaxInputFiles="$maxInputFiles" test -n "$sendHardwareDetails" && rootSendHardwareDetails="$sendHardwareDetails" - test -n "$preloadSources" && rootPreloadSources="$preloadSource" + test -n "$preloadSources" && rootPreloadSources="$preloadSources" fi if [ -r "${HOME}/.caudecrc" ]; then @@ -64,18 +84,32 @@ # sanitize caudecrc input -test -z "$WIN32PATH" && WIN32PATH="${HOME}/.wine" -test -z "$WIN64PATH" && WIN64PATH="${HOME}/win64" +if [ -n "$WIN64PATH" -a ! -d "${WIN64PATH}/drive_c/windows/syswow64" ]; then WIN64PATH=''; fi +if [ -n "$WIN32PATH" -a ! -d "${WIN32PATH}/drive_c/windows" ]; then WIN32PATH=''; fi +export WINEDEBUG='err-all,warn-all,fixme-all,trace-all' + +if [ -n "$replaygain_percentile" ]; then # backwards compatibility + replaygainPercentile="$replaygain_percentile" + unset replaygain_percentile +fi +case "$replaygainPercentile" in + [0-9]*) if [ $replaygainPercentile -le 0 -o $replaygainPercentile -ge 100 ]; then replaygainPercentile=34; fi ;; + *) replaygainPercentile=34 ;; +esac -case "$replaygain_percentile" in - [0-9]*) if [ $replaygain_percentile -le 0 -o $replaygain_percentile -ge 100 ]; then replaygain_percentile=34; fi ;; - *) replaygain_percentile=34 ;; +case "$ID3Padding" in + [0-9]*) true ;; # nothing to do + *) ID3Padding=512 ;; esac -if [ "$preventClipping" = "true" ]; then preventClipping=true; else preventClipping=false; fi -if [ "$setCompilationFlagWithAlbumArtist" = "true" ]; then setCompilationFlagWithAlbumArtist=true; else setCompilationFlagWithAlbumArtist=false; fi -if [ "$keepWavMetadata" = "true" ]; then keepWavMetadata=true; else keepWavMetadata=false; fi -if [ "$tagCompressionSetting" = "true" ]; then tagCompressionSetting=true; else tagCompressionSetting=false; fi +# true by default +if [ "$preventClipping" = 'false' ]; then preventClipping=false; else preventClipping=true; fi + +# false by default +if [ "$tagCompressionSetting" = 'true' ]; then tagCompressionSetting=true; else tagCompressionSetting=false; fi +if [ "$setCompilationFlagWithAlbumArtist" = 'true' ]; then setCompilationFlagWithAlbumArtist=true; else setCompilationFlagWithAlbumArtist=false; fi +if [ "$keepWavMetadata" = 'true' ]; then keepWavMetadata=true; else keepWavMetadata=false; fi +if [ "$ignoreUnsupportedFiles" = 'true' ]; then ignoreUnsupportedFiles=true; else ignoreUnsupportedFiles=false; fi test -z "$hashes" && hashes='' if [ -n "$hashes" ]; then @@ -95,39 +129,41 @@ tagBlacklist="${tagBlacklist%,}" fi -if [ -n "$rootMaxInstances" ]; then - maxInstances="$rootMaxInstances" -elif [ -z "$maxInstances" ]; then - maxInstances=1 -fi +if [ -n "$rootMaxInstances" ]; then maxInstances="$rootMaxInstances"; fi case "$maxInstances" in [0-9]*) if [ $maxInstances -lt 1 ]; then maxInstances=1 ; fi ;; *) maxInstances=1 ;; esac -if [ -n "$rootMaxInputFiles" ]; then - maxInputFiles="$rootMaxInputFiles" -elif [ -z "$maxInputFiles" ]; then - maxInputFiles=100 -fi +if [ -n "$rootMaxInputFiles" ]; then maxInputFiles="$rootMaxInputFiles"; fi case "$maxInputFiles" in [0-9]*) if [ $maxInputFiles -lt 1 ]; then maxInputFiles=100 ; fi ;; *) maxInputFiles=100 ;; esac -if [ -n "$rootSendHardwareDetails" ]; then - sendHardwareDetails="$rootSendHardwareDetails" -elif [ -z "$sendHardwareDetails" ]; then - sendHardwareDetails=false +# false by default +if [ -n "$rootSendHardwareDetails" ]; then sendHardwareDetails="$rootSendHardwareDetails"; fi +if [ "$sendHardwareDetails" = 'true' ]; then sendHardwareDetails=true; else sendHardwareDetails=false; fi + +# true by default +if [ -n "$rootPreloadSources" ]; then preloadSources="$rootPreloadSources"; fi +if [ "$preloadSources" = 'false' ]; then preloadSources=false; else preloadSources=true; fi + +# true by default +if [ "$enableColors" = 'false' ]; then + enableColors=false + OK='' KO='' WG='' DG='' NM='' BD='' GR='' CY='' BCY='' +else + enableColors=true fi -if [ "$sendHardwareDetails" = "true" ]; then sendHardwareDetails=true; else sendHardwareDetails=false; fi -if [ -n "$rootPreloadSources" ]; then - preloadSources="$rootPreloadSources" -elif [ -z "$preloadSources" ]; then - preloadSources=false +# true by default +if [ "$useBrightColors" = 'false' ]; then + useBrightColors=false + OK="$DG" KO="$DR" WG="$BR" CY="$DB" +else + useBrightColors=true fi -if [ "$preloadSources" = "true" ]; then preloadSources=true; else preloadSources=false; fi # Global values ================================================================ @@ -136,116 +172,470 @@ piddir='/tmp/caudec' iodir="${piddir}/io" -takWinePrefix="$WIN32PATH" takWineExe='wine' -if [ -e "${WIN64PATH}/drive_c/windows/Takc.exe" ]; then takWinePrefix="$WIN64PATH" takWineExe='wine64' ; fi -lossywavWinePrefix="$WIN32PATH" lossywavWineExe='wine' -if [ -e "${WIN64PATH}/drive_c/windows/lossyWAV.exe" ]; then lossywavWinePrefix="$WIN64PATH" lossywavWineExe='wine64' ; fi -lameWinePrefix="$WIN32PATH" lameWineExe='wine' -if [ -e "${WIN64PATH}/drive_c/windows/lame.exe" ]; then lameWinePrefix="$WIN64PATH" lameWineExe='wine64' ; fi -qaacWinePrefix="$WIN32PATH" qaacWineExe='wine' -if [ -e "${WIN64PATH}/drive_c/windows/qaac.exe" ]; then qaacWinePrefix="$WIN64PATH" qaacWineExe='wine64' ; fi -oggencWinePrefix="$WIN32PATH" oggencWineExe='wine' -if [ -e "${WIN64PATH}/drive_c/windows/oggenc2.exe" ]; then oggencWinePrefix="$WIN64PATH" oggencWineExe='wine64' ; fi - # Functions ==================================================================== printUsage () { if [ "$calledAs" = 'decaude' ]; then - echo "caudec ${VERSION}: multi-process audio transcoder -Copyright © 2012 - 2013 Guillaume Cocatre-Zilgien -http://caudec.outpost.fr/ + echo "caudec ${VERSION}: multiprocess audio converter +Copyright © 2012 - 2014 Guillaume Cocatre-Zilgien +http://caudec.net/ Usage: decaude FILES -Decodes FILES to WAV (same as caudec -d). +Decodes FILES to WAV (same as 'caudec -d' and 'caudec -c wav'). +Instead of multiple files, one or more directories may be specified. See also: caudec -h" else genUserAgent - echo "caudec ${VERSION}: multi-process audio transcoder -Copyright © 2012 - 2013 Guillaume Cocatre-Zilgien -http://caudec.outpost.fr/ + echo "caudec ${VERSION}: multiprocess audio converter
View file
caudec-1.6.2.tar.gz/caudecrc -> caudec-1.7.5.tar.gz/caudecrc
Changed
@@ -2,9 +2,13 @@ # save this file to either /etc/caudecrc or ~/.caudecrc -# please set the full path, don't use '~' as an abbreviation for "${HOME}" -WIN32PATH="${HOME}/.wine" -WIN64PATH="${HOME}/win64" +# Wine user directory paths: please set the full path, don't use '~' as an abbreviation for "${HOME}" +# Examples: +# WIN32PATH="${HOME}/.wine" +# WIN64PATH="${HOME/win64" +# Leave blank if you want caudec to search your home directory and find the paths automatically. +WIN32PATH="" +WIN64PATH="" # default compression levels (try 'caudec -c CODEC -q help' for a full list of possible values) compression_FLAC=5 # 0-8 @@ -20,6 +24,7 @@ bitrate_LAME=320 # 16-320, used with LAME_MODE='CBR' average_bitrate_LAME=256 # 8-310, used with LAME_MODE='ABR' LAME_MODE='VBR' # 'VBR' (variable bitrate), 'CBR' (constant bitrate) or 'ABR' (average bitrate) +ID3Padding=512 # size in bytes of padding to add to ID3v2 tags compression_AAC=0.5 # 0.0-1.0, used with AAC_MODE='VBR' bitrate_AAC=256 # 0-320, used with AAC_MODE='CBR' @@ -47,8 +52,11 @@ preventClipping=true # reduce volume to prevent clipping, when resampling or applying gain setCompilationFlagWithAlbumArtist=false # always true when ALBUMARTIST="Various Artists" regardless of this setting keepWavMetadata=false # set to true to keep WAV metadata with FLAC and WavPack -hashes='' # comma separated list of hashes to compute and tag (CRC, MD5 and / or SHA1) +hashes='' # comma separated list of hashes to compute and tag (CRC32, MD5, SHA1, SHA256 and / or SHA512) tagCompressionSetting=false # store the compression setting in metadata +ignoreUnsupportedFiles=false # set to true to prevent caudec from aborting when some of the input files are unsupported +enableColors=true # Enable colors in human-readable output +useBrightColors=true # If enableColors=true, use bright colors (instead of darker ones) # Whitelist / Blacklist: lists of comma separated tags # Example: 'artist, date, album, tracknumber, title, genre, replaygain_reference_loudness, replaygain_track_gain, replaygain_track_peak, replaygain_album_gain, replaygain_album_peak' @@ -69,7 +77,7 @@ # tracktotal <---> totaltracks # If you find a tag mismatch, or a missing tag name variation, please report it on the issues tracker: -# http://caudec.outpost.fr/redirect/bugs +# http://caudec.net/redirect/bugs # tagWhitelist: tags to keep when transcoding (all others are discarded - inactive if empty) tagWhitelist='' @@ -78,10 +86,11 @@ tagBlacklist='' # By default, 'caudec -u' sets a user agent string specifying which version of caudec you are running, -# as well as the name of your kernel and the architecture of your computer: 'caudec x.x.x / Linux / x86_64' +# as well as the name of your kernel, the architecture of your computer, and whether you are using a caudecrc file: +# 'caudec x.x.x / Linux / x86_64 / - / - / - / none' # If you set the following parameter to true, caudec will put some extra information in its user agent string: # CPU name, number of logical CPU cores, and total amount of RAM: -# 'caudec x.x.x / Linux / x86_64 / Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz / 8 / 7898' +# 'caudec x.x.x / Linux / x86_64 / Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz / 8 / 7898 / none' # This parameter defaults to false (don't send information about CPU and RAM). # To see your user agent string without contacting the server, run 'caudec -h' sendHardwareDetails=false
View file
caudec-1.6.2.tar.gz/install.sh -> caudec-1.7.5.tar.gz/install.sh
Changed
@@ -57,7 +57,8 @@ install -m 0755 'caudec' "$bindir" && rm -f "${bindir}/decaude" && ln -s 'caudec' "${bindir}/decaude" && -echo "caudec and decaude installed in $bindir. See $caudecrcPath for configuration." +install -m 0755 'APEv2' "$bindir" && +echo "caudec, decaude and APEv2 installed in $bindir. See $caudecrcPath for configuration." if [ "$caudecrcPath" = '/etc/caudecrc' ]; then echo "You may also copy /etc/caudecrc to ~/.caudecrc." fi
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.