Универсальные

Способ 1

Понадобится установить три пакета. Скачиваем первый пакет:

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:

cd ~/Music/Shopen

После чего набираем команду:

shnconv -o flac *.ape

Результатом выполнения команды будет переконвертация всех файлов APE в формат FLAC

А эта команда преобразовывает APE в WAV:

shnconv -o wav *.ape

И так далее.

Способ 2 (подходит для amd64)

  1. Ставим пакеты

    sudo aptitude install cuetools shntool flac wavpack

    Отсюда (т.к. репозиторий, который был указан в статье на Opennet, не хотел добавляться) ставим libmac2 и monkeys-audio

  2. Выделяем треки из 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» задает имя префикса для сохраняемой группы файлов.

  3. Заполняем теги:

    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/)

flac-mp3.sh
#!/bin/bash
for f in *.flac; do
  avconv -i "$f" -qscale:a 0 "${f[@]/%flac/mp3}"
done

Алгоритм действий

Переходим в папку с flac файлами запускаем скрипт в виде ~/bin/flac-mp3.sh

Flac-образ в mp3 c разбивкой на трэки

Зависимости

sudo apt-get install shntool cuetools lame enca

Скрипт

flac-image-mp3.sh
#!/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 и проверьте, что названия полей совпадают с теми, что будут использоватся в скрипте.

Другие программы

  • Flacon audio converter — программа на Qt 4.x
  • gCue2tracks — ещё одна графическая программа, написана на python
  • Cueek — скрипт для конвертирования образов музыкальных альбомов в другой формат потреково, с переносом тэгов.
  • cue2tracks — скрипт для Nautilus для конвертирования и разбития на дорожки по cue
  • soundKonverter - для KDE

и множество подобных.

Ссылки