LINUX.ORG.RU

flac tracks > cue


0

1

Дано: flac файлы с тэгами. Задача: сгенерить для них cue, чтобы можно было потом их собрать в образ и, если понадобится, разобрать обратно. Средства желательно нативные.

★★★★★

Ответ на: комментарий от unikum

пробуй так:

 $cuebreakpoints file.cue | shnsplit -o flac file.flac[br]
$cuetag file.cue split-track*.flac 

остаётся только переименовать файлы, воспользовавшись easytag'ом. ;)

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

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

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

собирает, но тэги идут лесом. упреждая следующий пост:

shncue -sc *
FILE "joined.wav" WAVE
  TRACK 01 AUDIO
    INDEX 01 0:00:00
  TRACK 02 AUDIO
    INDEX 01 9:13:36
  TRACK 03 AUDIO
    INDEX 01 17:44:09
  TRACK 04 AUDIO
    INDEX 01 22:59:47
  TRACK 05 AUDIO
    INDEX 01 30:11:66
  TRACK 06 AUDIO
    INDEX 01 37:38:01
  TRACK 07 AUDIO
    INDEX 01 42:20:22
  TRACK 08 AUDIO
    INDEX 01 52:02:13
  TRACK 09 AUDIO
    INDEX 01 60:09:63
  TRACK 10 AUDIO
    INDEX 01 67:11:26

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

Покопался в мане к shtool. Вот что нашёл(проверено раборает, но нет тегов в .cue, время проставлено)

$ls -C1 *.flac > filelist
$shntool cue -F filelist > joined.cue
$shntool join -F filelist -o flac
ciiccii ()
Ответ на: комментарий от unikum

одновременно :)

видимо тут без велосипеда не обойдёшься(к foobar'у есть плагин который это умеет, но это конечно немного не то)

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

похоже без костыля никак. накопал кое-что:

metaflac --show-tag=title *
metaflac --show-tag=date *
metaflac --show-tag=artist *
metaflac --show-tag=album *
metaflac --show-tag=genre *

unikum ★★★★★ ()
#!/bin/bash

# File : mergeflacs
# (c) Alexander Sokolov sokoloff.a@gmail.com
#
# 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 the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# Ver. 0.1


OUT_FORMAT='flac'
CUE_FILE="joined.cue"
TMP_CUE_FILE="tmp.cue"

firstFile=$1
IFS="\n"

function help {
    echo "Usage: mergeflacs file1 file2 [file3 ...]"
    echo "Joins multiple FLAC files into one, and create CUE file with tags."
}

function flacTag {
    tag=$1
    flacFile=$2
    metaflac --show-tag="$1" $2 | awk '{split($0,a,"="); print a[2]}'
}

if [ -z "$1" ]; then
    echo "error: need two or more files to process."
    help
    exit 1
fi

shntool join -o ${OUT_FORMAT} -O always  $@
shntool cue  $@ > "$TMP_CUE_FILE"

# Create CUE file .........................................
echo -n > "$CUE_FILE"

val=`flacTag GENRE "$firstFile"`
[  -n "$val" ] && echo "REM GENRE \"$val\"" >> "$CUE_FILE"

val=`flacTag DATE "$firstFile"`
[  -n "$val" ] && echo "REM DATE \"$val\"" >> "$CUE_FILE"

val=`flacTag ALBUM "$firstFile"`
[  -n "$val" ] && echo "TITLE \"$val\"" >> "$CUE_FILE"

grep "FILE.*WAVE"  "$TMP_CUE_FILE" >> "$CUE_FILE"

n=0
for f in "$@"; do
    n=$((n+1))
    index=`printf %02d $n`

    echo "  TRACK $index AUDIO" >> "$CUE_FILE"
    grep -A1 "TRACK $index"  "$TMP_CUE_FILE" | grep -v "TRACK" >> "$CUE_FILE"

    val=`flacTag ARTIST "$f"`
    [  -n "$val" ] && echo "    PERFORMER \"$val\"" >> "$CUE_FILE"

    val=`flacTag TITLE "$f"`
    [  -n "$val" ] && echo "    TITLE \"$val\"" >> "$CUE_FILE"
    
done;

http://code.google.com/p/flacon/downloads/detail?name=mergeflacs-0.1.tgz&can=2&q=

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