LINUX.ORG.RU
ФорумTalks

QShnToolSplit 0.0.1


0

0

Накачал кучу альбомов в flac/ape, а они все одним файлом с cue.
Шпилить их shntool вручную вбивая в консоль имена файлов задолбало.
Даже автодополнение табом не облегчело жизнь.

Написал на коленке графическую утилитку, которая, думаю, понравится убунтоидам и различным любителям повозить мышкой.

Делаем обзор файловой системы, зайдя в каталог с cue/flac автоматически выбираются эти файлы - далее нажимаем старт - и процесс пошел.

Лично мне теперь живется проще. Заполнение тегов из cue файла не делал и не буду делать - лично я все ранво прогоняю получившиеся файлы через Picard (musicBrainz).

Код еще не чистил и не причесывал.

Надеюсь некоторые заинтересованные из вас помогут отловить баги, укажут на неточности и предложат что-то улучшить.

После того как отзывы будут рассмотрены, будет страничка, будет перевод и нормальный релиз. Может быть даже новость на главной и грандиозная виртуальная пьянка.

Спасибо за внимание.

Скриншот: http://img136.imageshack.us/img136/498/19238214.jpg
Скачать: http://ifolder.ru/13573102

Традиционно: qmake && make

I_am_milk
() автор топика

> Заполнение тегов из cue файла не делал и не буду делать

А я себе лет пять назад написала скрипт на питоне, который все это режет и теги заполняет. Уже думала скачать твою программу, но увы, без тегов не годится :)

Dirty_Diana
()
Ответ на: комментарий от Dirty_Diana

> А я себе лет пять назад написала скрипт на питоне, который все это режет и теги заполняет. Уже думала скачать твою программу, но увы, без тегов не годится :)

А зачем? Picard (MusicBrainz) ведь православнее.

I_am_milk
() автор топика
Ответ на: комментарий от Dirty_Diana

> Ну а почему нет? Есть же вся метаинформация, зачем лезть на какие-то сервисы и искать?

На MusicBrainz тэги *правильные*, а в cue обычно корявые.
Если у вас есть мега-скрипт, в принципе в моей поделке можно сделать вызов скрипта после того как отработает shntool.

Так сойдет? =)

I_am_milk
() автор топика
Ответ на: комментарий от I_am_milk

Я даже не знаю, что там за корявости, не встречала :) Заполнение тегов легко добавить с помощью libtag, например, для этого не нужны скрипты :)

Dirty_Diana
()

поглядим на досуге, пока пользуюсь cue2tracks, многие русскоязычные альбомы отсутствуют в muzicbrainz

BTW, задания можно в очередь выстраивать?

MadCAD ★★
()
Ответ на: комментарий от MadCAD

> поглядим на досуге, пока пользуюсь cue2tracks, многие русскоязычные альбомы отсутствуют в muzicbrainz

ок, посмотрю как лучше прикрутить заполнение тегов.

> BTW, задания можно в очередь выстраивать?


Можно параллельно запускать несколько обработок. Очереди нельзя. Просто у меня четырех-ядерник, я запускаю столько пока каждое ядро не будет загружено...

Тоже стоит подумать над очередями.

Спасибо.

I_am_milk
() автор топика

А у меня тупой скрипт на баше, проходящийся по всем директориям в ./ и режущий все-все-все.
В любом случае, молодец, вещь полезная, только нехватает автоматизированности. Ведь каждый раз, как я понял, надо отдельно выбирать .cue и файл для разрезания?
Т.е., просто скормить директорий с кучей вложенных с куями и образами - нельзя?

NekoExMachina
()

Кстати, а кто-нибудь вообще может объяснить смысл выкладывания не порезанных альбомов с cue-шкой?

Ramen ★★★★
()
Ответ на: комментарий от Ramen

> Кстати, а кто-нибудь вообще может объяснить смысл выкладывания не порезанных альбомов с cue-шкой?

Позови tommy, он объяснит :)

undertaker ★★
()

Хорошая тулза))развивай и ждем в репах дебиана))

DoctorSinus ★★★★★
()
Ответ на: комментарий от NekoExMachina

> А у меня тупой скрипт на баше, проходящийся по всем директориям в ./ и режущий все-все-все.

А если в одном каталоге несколько cue/media - ведь shntool режет файлы задавая им одинаковые имена - будут пересечения.

> В любом случае, молодец, вещь полезная, только нехватает автоматизированности. Ведь каждый раз, как я понял, надо отдельно выбирать .cue и файл для разрезания?


При разворачивании нового каталога в комбо-боксах выбираются первые из списка cue/media файлы.

> Т.е., просто скормить директорий с кучей вложенных с куями и образами - нельзя?


Как тогда быть с тем, когда в одном каталоге несколько cue/media файлов? Пересечения имен. И возможность указывать каталог для сохранения получившихся файлов не нужна - так как опять те же самые пересечения имен.

I_am_milk
() автор топика
Ответ на: комментарий от fdd

>А что линуксовые плееры не умеют проигрывать flac/ape + cue???

Во-первых, не все. Во-вторых, это не удобно. В третьих, есть ещё железные плееры.

>QShnToolSplit не нужен!

Ещё как нужен. Мне вот гуйня ближе и родней скрипта всегда, а порезать много всего надо.

yahoo ★★★
()
Ответ на: комментарий от Ramen

>Кстати, а кто-нибудь вообще может объяснить смысл выкладывания не порезанных альбомов с cue-шкой?

Аудиофилы объясняли мне, что так теплей и ламповей. Осознание того, что альбом порезан на кусочки и потому может не совпадать с оригиналом байт в байт, травмирует их нежные души.

А вообще, я подозреваю выкладывающих flac+cue в латентном гомосексуализме, ну а уж по поводу выкладывающих ape+cue и сомнений быть не может.

yahoo ★★★
()
Ответ на: комментарий от madgnu

> Молодец!

Спасибо.

> // на скрине просто феерическое ШГ :)


Может быть пора поменять монитор - у меня все отлично =))

I_am_milk
() автор топика
Ответ на: комментарий от I_am_milk

Мопед не мой. 
Найдено на просторах инета.
Консоль наше всио


#!/bin/bash

#USAGE: script file.cue

(($# > 0)) || { echo "Error: CUE file not specified"; exit 1; }
DIR_NAME=$(dirname "$1")
[ -d "$DIR_NAME" ] || { echo "Error: Dir \"$DIR_NAME\" not found"; exit 2; }
pushd "$DIR_NAME" > /dev/null
CUE_FILE=$(basename "$1")
PRFX_NAME=${CUE_FILE%.[cC][uU][eE]}
FLA_FILE=$(find . -type f -iname "$PRFX_NAME.flac")
APE_FILE=$(find . -type f -iname "$PRFX_NAME.ape")
WAV_FILE=$(find . -type f -iname "$PRFX_NAME.wav")
[ -n "$FLA_FILE" -a -z "$APE_FILE" -a -z "$WAV_FILE" -o -z "$FLA_FILE" -a -n "$APE_FILE" -a -z "$WAV_FILE" -o -z "$FLA_FILE" -a -z "$APE_FILE" -a -n "$WAV_FILE" ] || { echo "Error: there is not one of FLAC/APE/WAV input files"; exit 3; }
[ -n "$CUE_FILE" -a -s "$CUE_FILE" ] || { echo "Error: CUE file \"$CUE_FILE\" not found"; exit 4; }
[ -n "$FLA_FILE" -a -s "$FLA_FILE" -o -z "$FLA_FILE" ] || { echo "Error: FLAC file \"$FLA_FILE\" not found"; exit 5;}
[ -n "$APE_FILE" -a -s "$APE_FILE" -o -z "$APE_FILE" ] || { echo "Error: APE file \"$APE_FILE\" not found"; exit 6; }
[ -n "$WAV_FILE" -a -s "$WAV_FILE" -o -z "$WAV_FILE" ] || { echo "Error: WAV file \"$WAV_FILE\" not found"; exit 7; }

# prepare CUE to embed into FLAC (optional)
recode 1251..utf8 < "$CUE_FILE" > tmp.cue

# convert [{ape,flac} -> ]wav -> flac, splitting result according to CUE on tracks NN.flac where NN is [0-9]+
if [ -n "$FLA_FILE" ]; then
  shnsplit -i flac -o 'flac flac -V -8 -e -p -o %f -' -t %n "$FLA_FILE" < tmp.cue
elif [ -n "$APE_FILE" ]; then
  shnsplit -i ape -o 'flac flac -V -8 -e -p -o %f -' -t %n "$APE_FILE" < tmp.cue
elif [ -n "$WAV_FILE" ]; then
  shnsplit -i wav -o 'flac flac -V -8 -e -p -o %f -' -t %n "$WAV_FILE" < tmp.cue
fi

# embed tags into tracks, rename tracks
for (( i=1 ; i <= $(cueprint -d '%N' tmp.cue) ; ++i )) ; do
  NN=$(printf '%02d' $i)
  [ -s "$NN.flac" ] && {
    # prepare track tags, filter out empty tags, embed the rest
    cueprint -n $i -t 'ARRANGER=%A\nCOMPOSER=%C\nGENRE=%G\nMESSAGE=%M\nTRACKNUMBER=%n\nARTIST=%p\nTITLE=%t\nALBUM=%T\n' tmp.cue |egrep -v '=$' |
    metaflac --import-tags-from=- $NN.flac
    # rename NN.flac to "NN - TrackTitle.flac"
    mv $NN.flac "$NN - `cueprint -n $i -t %t tmp.cue`.flac"
  }
done

rm tmp.cue
popd > /dev/null

Dao_Dezi
()
Ответ на: комментарий от I_am_milk

Скармливаешь ему cue-файл от {wv|flac|ape} образа.Он всё это хозяйство пилит на flac-дорожки. Насчёт тегов не помню, но название файла создаёт из данных cue

Извини, что в твоей теме - но для гуглителей будет удобно в одном месте и гуй и скрипт найти.

Dao_Dezi
()
Ответ на: комментарий от Dao_Dezi

> Скармливаешь ему cue-файл от {wv|flac|ape} образа.Он всё это хозяйство пилит на flac-дорожки. Насчёт тегов не помню, но название файла создаёт из данных cue

Открывать консоль, вбивать путь к cue-файлу? Это слишком муторно...
Проще время, потраченное на вбивание пути, или кликанье в файловом менеджере и последующим его копированием оттуда, потратить на кликанье в моей утилите.

Но я понял вас, от вбивания тегов не избавиться.

Тогда я подкорректирую скрипт, и сделаю его автоматический запуск (опциональный) после разбивания.

I_am_milk
() автор топика

>Шпилить их shntool вручную вбивая в консоль имена файлов задолбало.

так и не надо этого делать.

tommy ★★★★★
()
Ответ на: комментарий от tommy

> так и не надо этого делать.

А как это делать? Оставлять cue + media?
Это же паранойя. Когда друг меня просит выложить для него в интернете одну обсуждаемую песню, а я выкладываю весь альбом только потому что некоторым людям кажется что так православнее - это бред.

I_am_milk
() автор топика
Ответ на: комментарий от tommy

> а почему по битам сразу не нарезать и загнать их в SQL?

Зачем? Это сделает каталогизатор музыки пользователя.

I_am_milk
() автор топика
Ответ на: комментарий от I_am_milk

Не встречался с таким. Если >2 Дисков, то в релизах, что я встречал - были отдельные директории, disc_1 + disc_2.

NekoExMachina
()
Ответ на: комментарий от I_am_milk

На этого товарища внимания можно не обращать - фубаризм гм.

NekoExMachina
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.