- Универсальные
- Способ 2 (подходит для amd64)
- Кодирование в mp3
- Flac в MP3
- Пофайловая конвертация c переносом ID тэгов
- Зависимости
- Скрипт
- Алгоритм действий
- Flac-образ в mp3 c разбивкой на трэки
- Зависимости
- Скрипт
- Примечания
- Ошибки
- Советы
- Другие программы
- Ссылки
- CUE Splitting
- Installation
- Splitting
- Tagging
- Alternatives
- Cue to wav linux
- Декодирование .flac файла в .wav
- Декодирование файлов формата WAVPACK
- Декодирование файлов формата APE
- Конвертация всех .flac-файлов из текущего каталога в .mp3 в наилучшем качестве
- Конвертация .wav-файлов в .mp3
- Разбиение .wav-файла на треки по CUE-таблице
- Linux Blog
- How do I mount a .cue/.wav
- 3 Answers 3
- Splitting into separate tracks
- Tagging FLAC CD images for use with players like foobar
Универсальные
Понадобится установить три пакета. Скачиваем первый пакет:
wget http://members.iinet.net.au/~aidanjm/mac-3.99-u4_b3-1_i386.deb
И устанавливаем его командой:
sudo dpkg -i mac-3.99-u4_b3-1_i386.deb
sudo apt-get install flac sudo apt-get install shntool
Допустим, нужно сделать преобразование APE ⇒ FLAC В терминале заходим в директорию, где лежат файлы APE:
После чего набираем команду:
Результатом выполнения команды будет переконвертация всех файлов APE в формат FLAC
А эта команда преобразовывает APE в WAV:
Способ 2 (подходит для amd64)
sudo aptitude install cuetools shntool flac wavpack
Отсюда (т.к. репозиторий, который был указан в статье на Opennet, не хотел добавляться) ставим libmac2 и monkeys-audio
Выделяем треки из sample.flac на основании индекса sample.cue, результат кодируем кодеком без потерь flac:
cuebreakpoints sample.cue | shnsplit -a "sample" -o flac sample.flac
При желании вместо «-o flac» можно указать «-o wav», «-o mp3» или «-o ogg». Опция «-a sample» задает имя префикса для сохраняемой группы файлов.
cuetag sample.cue sample*.flac
Если файл *.cue в неправильной кодировке, то сохраните его в правильной (geditom, например). Правильная — UTF-8.
Проверено на ubuntu 9.04 amd64
Кодирование в mp3
Вариант «-o mp3» не сработает, выдав ошибку:
shnsplit: error: invalid file format: [mp3] shnsplit: shnsplit: type 'shnsplit -h' for help
Смотрим man shnsplit, касательно ключа -o :
-o -o ’cust ext=mp3 lame --quiet - %f’ (create mp3 files using lame)
Он говорит, что конвертирование в mp3 делается через lame, т.е. нам нежен еще пакет lame :
sudo aptitude install lame
И, следовательно, команда будет выглядеть примерно так:
cuebreakpoints sample.cue | shnsplit -a "sample" -o 'cust ext=mp3 lame --quiet - %f' sample.flac
По другим форматам вывода смотрите man, например для вывода в wav достаточно -o wav :
cuebreakpoints sample.cue | shnsplit -a "sample" -o wav sample.flac
Flac в MP3
Пофайловая конвертация c переносом ID тэгов
Зависимости
Для конвертации понадобятся программы flac и lame
sudo apt-get install libav-tools
Скрипт
Скрипт для конвертации (сохранен в ~/bin/)
#!/bin/bash for f in *.flac; do avconv -i "$f" -qscale:a 0 "$" done
Алгоритм действий
Переходим в папку с flac файлами запускаем скрипт в виде ~/bin/flac-mp3.sh
Flac-образ в mp3 c разбивкой на трэки
Зависимости
sudo apt-get install shntool cuetools lame enca
Скрипт
#!/bin/sh FROMCP=`enca -e *.cue` iconv -f $FROMCP -t UTF-8 *.cue > /tmp/list.cue DATE=`grep "REM DATE" /tmp/list.cue | sed -e 's/REM DATE \(.*\)/\1/g'` GENRE=`grep "REM GENRE" /tmp/list.cue | sed -e 's/REM GENRE \(.*\)/\1/g'` COMMENT=`grep "REM COMMENT" /tmp/list.cue | sed -e 's/REM COMMENT \(.*\)/\1/g'` NUMBER=`cueprint -d "%N" /tmp/list.cue` shntool split -f /tmp/list.cue *.flac -t %n for((I=1;I=$NUMBER;I++)); do cueprint -n $I -t "ARTIST=\"%p\"\nALBUM=\"%T\"\nTRACKNUMBER=\"%n\"\nTITLE=\"%t\"\n" /tmp/list.cue > /tmp/tags . /tmp/tags J=`printf "%02d" $I` lame -b 192 --cbr \ --ty "$DATE" \ --tg "$GENRE" \ --tc "$COMMENT" \ --ta "$ARTIST" \ --tl "$ALBUM" \ --tn "$TRACKNUMBER" \ --tt "$TITLE" \ --add-id3v2 \ --id3v2-only \ $J.wav $J.mp3 rm $J.wav done rm /tmp/list.cue /tmp/tags
Примечания
Ошибки
iconv: convert from ASCII/CRLF is not supported
значит необходимо сконвертировать CRLF переносы строки при помощи dos2unix
sudo apt-get install dos2unix dos2unix *.cue
Советы
Для правильного распознования тэгов загляните в файл CUE и проверьте, что названия полей совпадают с теми, что будут использоватся в скрипте.
Другие программы
Cueek — скрипт для конвертирования образов музыкальных альбомов в другой формат потреково, с переносом тэгов.
Ссылки
APE => FLAC, APE =>WAV, WAV=>FLAC и другие комбинации перекодировок аудио — статья на форуме. Кроме прочего, содержит ссылки на другие программы.
CUE Splitting
This article describes how to split audio files using CUE metadata.
Installation
To split audio files you need shntool AUR . To split CD images in ISO or raw format you need bchunk .
The WAV format is supported natively for both input and output. To decode or encode files in other format you need an appropriate decoder. For example: flac , mac , or wavpack .
To tag audio files you need extra tools, such as cuetools , mp3info , or vorbis-tools . Alternatively, kid3 can be used for more advanced tagging needs, including importing from the MusicBrainz database for example.
Splitting
To split an audio file accompanied by a CUE sheet into tracks in .wav format, use the shnsplit command:
$ shnsplit -f file.cue file.wav
To split .bin file with CUE sheet into tracks in .wav format:
$ bchunk -v -w file.bin file.cue out
Format for output file names can be specified with the -t option ( %p for performer, %a for album, %t for title, and %n for track number):
$ shnsplit -f file.cue -t "%n %t" file.wav
shnsplit supports on-the-fly encoding to many lossless formats (see shntool(1) for the full list). For example to encode split tracks in the FLAC format:
$ shnsplit -f file.cue -o flac file.flac
Encoding options, including the encoder itself, can be specified with the -o parameter (see shntool(1) for details):
$ shnsplit -f file.cue -o "flac flac -s -8 -o %f -" file.flac
The formats supported by shntool and default encoder options can be view with the shntool -a command. If the desired format is not supported by shntool, it can be specified manually. For example, to encode split tracks directly into the Ogg Vorbis format:
$ shnsplit -f file.cue -o "cust ext=ogg oggenc -b 192 -o %f -" file.ape
This process can be applied to any other encoder, such as opusenc(1) or lame(1) , by specifying standard input (usually — ) as the source and %f as the destination. See the encoder’s man page for details.
Tagging
You will need cuetools to use cuetag.sh.
To copy the metadata from a CUE sheet to the split files you can use:
or if you need to select only certain files:
$ cuetag.sh file.cue track01.mp3 track02.mp3 track03.mp3 track04.mp3
cuetag.sh supports id3 tags for .mp3 files and vorbis tags for .ogg and .flac files.
Alternatives
- This is a script that splits and converts files to tagged FLAC: https://bbs.archlinux.org/viewtopic.php?id=75774.
- You may also use flaconAUR or flacon-gitAUR , a graphical Qt program that splits, converts and tags album audio files into song audio files. It also features automatic character set detection for CUE files.
- To avoid quality loss from transcoding mp3 files, mp3splt-gtk or mp3splt may be used to directly split mp3 files either manually or automatically with a provided cuesheet. Batch mode processing is also available.
Cue to wav linux
Тема заметки: конвертация музыкальных файлов (flac, mp3, wav, ape).
Все скрипты ниже даны исключительно для образовательных целей, последние их версии всегда на гитхабе (не копипастите их с этой страницы):
git clone https://github.com/sigsergv/music-tools.git
Далее приводятся листинги скриптов для всяких разных действий.
Декодирование .flac файла в .wav
Тут всё просто, понадобится только программа flac:
Декодирование файлов формата WAVPACK
Для этого используется программа wvunpack , в Debian она в пакете wavpack .
Декодирование файлов формата APE
Формат APE достаточно неприятный, для его декодирования используется программа mac и скрипт ниже. Программа входит в пакет monkeys-audio , который можно поставить в Debian с репозитория deb-multimedia.org.
1 2 3 4 5 6 7 8 9 10 11 12
#!/bin/sh FILENAME=$1 if [ "X$FILENAME" = "X" ]; then echo filename is required exit 1 fi WAV_FILENAME=`echo $FILENAME|sed -e 's/.ape$/.wav/'` mac "$FILENAME" "$WAV_FILENAME" -d
Конвертация всех .flac-файлов из текущего каталога в .mp3 в наилучшем качестве
Для работы понадобятся установленные программы flac и lame , в Ubuntu/Debian они находятся в одномённых пакетах. Скрипт flac2mp3 в гитхабовском репозитории.
#!/bin/sh # convert all flac files in the current dir for i in *.flac; do BASE=`basename "$i" .flac` flac -c -d "$i" | lame -q 0 -m s -cbr -b 320 - "$BASE.mp3" done
Конвертация .wav-файлов в .mp3
Скрипт в гитхабе под именем wav2mp3 , конвертирует все .wav-файлы из каталога в формат mp3 с наилучшим качеством.
#!/bin/sh # convert all flac files in the current dir for i in *.wav; do BASE=`basename "$i" .wav` lame -q 0 -m s -cbr -b 320 "$i" "$BASE.mp3" done
Разбиение .wav-файла на треки по CUE-таблице
Этот шаг обычно нужен для разбивания одного большого .flac-файла с CUE-таблицей на отдельные треки. В гитхабовском репозитории он в скрипте wav2tracks .
Для работы скрипта понадобятся программы cuebreakpoints и shnsplit , в Debian/Ubuntu ищите их в пакетах cuetools и shntool . Первым параметром в скрипт передаётся путь до CUE-файла, вторым — путь до WAV-файла.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
#!/bin/sh CUE=$1 WAV=$2 usage() echo -e "Usage:\n\t $0 " > if [ "X" = "X$CUE" ]; then echo "ERROR: is required" usage exit 1 fi if [ "X" = "X$WAV" ]; then echo "ERROR: is required" usage exit 1 fi if [ \! -e "$CUE" -o \! -e "$WAV" ]; then echo "Files not found" usage exit 1 fi cuebreakpoints "$CUE" | shnsplit -n "%02d" "$WAV"
Linux Blog
binchunker converts a CD image in a «.bin / .cue» format (sometimes «.raw / .cue») to a set of .iso and .cdr tracks. The bin/cue format is used by some popular non-Unix cd-writing software, but is not supported on most other CD burning programs. A lot of CD/VCD images distributed on the Internet are in BIN/CUE format.
The .iso track contains an ISO file system, which can be mounted through a loop device on Linux systems, or written on a CD-R using cdrecord. The .cdr tracks are in the native CD audio format. They can be either written on a CD-R using cdrecord -audio, or converted to WAV (or any other sound format for that matter) using sox. bchunk can also output audio tracks in WAV format.
Installation:
Debian / Ubuntu: sudo apt-get install bchunk
OpenSuSe 11.2 user can use «1-click» installer — here
Using bchunk:
Now enter the following command: bchunk
where the image.bin is the file that contains the actual data, image.cue is the catalogue file and basename is the name of the «output» that extracted files will go to. This command will create an iso image caled basename.iso
Enter the following comand: sudo mount -o loop basename.iso /mnt , this command will mount the iso file to /mnt
List the content using sudo ls /mnt
How do I mount a .cue/.wav
I have a .cue file which points to a .flac How can I mount the image as if it were an audio CD? Is it necessary to decode the .flac file into .wav and edit the cue sheet to point to a .wav file instead (it currently points to the flac)? I want to use abcde to split, tag, and encode the audio. Answers I’ve found on here already discuss .cue/.bin combo, not audio images..
3 Answers 3
You don’t. You either burn the CUE/FLAC combination in a burner that can decode the FLAC data or you play it in something that understands what CUEs are (lots of players AFAIK).
A CUE/FLAC is very much like an audio CD. An audio CD is just linear PCM data with a CDA-formatted header that states where all the track boundaries are. In your case the audio data has been losslessly compressed into the FLAC and the CUE is the track information.
Converting to WAV only serves to undo the compression. You might need to do this to burn it to disk.
Splitting into separate tracks
If you want to split the main FLAC into separate tracks, you can use the tools from the shntool package as suggested in this blog:
cuebreakpoints filename.cue | shntool split -o flac filename.flac
You can also specify another output format instead of FLAC (option -o flac in the example).
(You’ll need to install the commands first: sudo apt-get install cuetools shntool )
Tagging FLAC CD images for use with players like foobar
FLAC also allows for embedding cuesheets via metaflac and compatible taggers. Players like foobar2000 and it’s Linux equivalents (DeaDBeeF and Guayadeque) can parse and play files with such metadata. Importing a properly tagged cuesheet (along with other metadata like pictures), will also import tags like individual tracknames, tracknumbers, artist and album tags.
--import-cuesheet-from=file Import a cuesheet from a file. Use '-' for stdin. Only one FLAC file may be specified. A seekpoint will be added for each index point in the cuesheet to the SEEKTABLE unless --no-cued-seekpoints is specified.
But this kind of file format is rather unknown and unsupported outside the «distributed CD backup community». Mostly due to the fact that you cannot rip CDs to images on Linux like EAC does on Windows. (With EAC doing something very odd in this case, as I later learned.)