LINUX.ORG.RU

Ответ на: комментарий от Falcon-peregrinus

Ты понял, что я имел в виду.

В amarok и clementine у меня отображается тупо один часовой (условно) файл .flac вместо списка треков, отмеченных в .cue. Как мне проигрывать по трекам?

dvrts ★★★
() автор топика

в deadbeef нормально открывается.

l0stparadise ★★★★★
()

В говядине и клементайне нормально.

Akamanah ★★★★★
()

В clementine. А вообще плеер под линукс без поддержки cue надо поискать.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от dvrts

А, понял как clementine заставить.

dvrts ★★★
() автор топика
Ответ на: комментарий от Falcon-peregrinus

Да, верно - я открывал папки с аудиофайлами, а надо было из библиотеки запускать.

dvrts ★★★
() автор топика

cue+flac нормально открывают только деадбиф и фубникс

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

На ПК нормально если cue нормальный. На плейере - shuffle не работает в таком случае - только подряд треки слушать или руками переключать.

dvrts ★★★
() автор топика

Есть split2flac. Кроме самой разбивки он еще и перекодирует всякие alac'и.

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

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

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

Ищет все .CUE и к ним .FLAC, .APE, .WV и делит их на треки, притом на выходе - flac.

#!/bin/sh

find \( -name "*.[aA][pP][eE]" -or -name "*.[fF][lL][aA][cC]" -or -name "*.[wW][vV]" \) -print | while read IMAGE ; do

        CUETAG="/home/kroz/bin/cuetag.sh"
        CUEBREAKPOINTS="/usr/bin/cuebreakpoints"
        SHNSPLIT="/usr/bin/shnsplit"

        P=`pwd`
        DIR=`echo "${IMAGE%/*}"`
        cd "$DIR"
        echo
        echo "====== Image"
        echo -n "Current dir: "
        pwd
        AUDIO=`echo "${IMAGE##*/}"`
        echo "Image file: '$AUDIO'"
        AUDIO_NOEXT=`echo "${AUDIO%.[aA][pP][eE]}"`
        AUDIO_NOEXT=`echo "${AUDIO_NOEXT%.[fF][lL][aA][cC]}"`
        AUDIO_NOEXT=`echo "${AUDIO_NOEXT%.[wW][vV]}"`
        if [ "$AUDIO" = "$AUDIO_NOEXT" ] ; then
                echo "ERROR: Neither APE nor FLAC file: '$AUDIO'"
                cd "$P"
                break
        fi
        CUE=`find -name "$AUDIO_NOEXT.[cC][uU][eE]" -or -name "$AUDIO_NOEXT.[aA][pP][eE].[cC][uU][eE]" -or -name "$AUDIO_NOEXT.[fF][lL][aA][cC].[cC][uU][eE]"  -or -name "$AUDIO_NOEXT.[wW][vV].[cC][uU][eE]"| head -n 1`
        #echo "find -name \"$AUDIO_NOEXT.[cC][uU][eE]\" -or -name \"$AUDIO_NOEXT.[aA][pP][eE].[cC][uU][eE]\" -or -name \"$AUDIO_NOEXT.[fF][lL][aA][cC].[cC][uU][eE]\"  -or -name \"$AUDIO_NOEXT.[wW][vV].[cC][uU][eE]\"| head -n 1"
        CUE=`echo "${CUE##*/}"`
        if [ -z "$CUE" ] ; then
                echo "CUE file does not exist"
                cd "$P"
                continue
        fi
        echo "CUE file: '$CUE'"
        
        OLD=`find -maxdepth 1 -name "split-track*.flac" `
        if [ ! -z "$OLD" ] ; then
                #There are old tracks
                OLDDIR="old."`date +%s`
                echo "WARNING: Old tracks detected. Moving to directory '$OLDDIR'"
                mkdir "$OLDDIR"
                mv split-track*.flac $OLDDIR/
        fi
        
        
        $CUEBREAKPOINTS "$CUE" | $SHNSPLIT -o flac "$AUDIO"
        $CUETAG "$CUE" `ls split-track*.flac`

        cd "$P"
done

Вот еще я правил какой-то скрипт для тегов:

#! /bin/sh

# cuetag.sh - tag files based on cue/toc file information
# uses cueprint output
# usage: cuetag.sh <cuefile|tocfile> [file]...
# originally - part of cuetools 1.3.1 . Modified by Kroz

CUEPRINT=cueprint
cue_file=""

usage()
{
        echo "usage: cuetag.sh <cuefile|tocfile> [file]..."
}

# Vorbis Comments
# for FLAC and Ogg Vorbis files
vorbis()
{
        # FLAC tagging
        # --remove-vc-all overwrites existing comments
        METAFLAC="metaflac --remove-all-tags --import-tags-from=-"

        # Ogg Vorbis tagging
        # -w overwrites existing comments
        # -a appends to existing comments
        VORBISCOMMENT="vorbiscomment -w -c -"

        case "$2" in
        *.[Ff][Ll][Aa][Cc])
                VORBISTAG="$METAFLAC"
                ;;
        *.[Oo][Gg][Gg])
                VORBISTAG="$VORBISCOMMENT"
                ;;
        esac

        # space seperated list of recomended stardard field names
        # see http://www.xiph.org/ogg/vorbis/doc/v-comment.html
        # TRACKTOTAL is not in the Xiph recomendation, but is in common use
        
        fields='TITLE VERSION ALBUM TRACKNUMBER TRACKTOTAL ARTIST PERFORMER COPYRIGHT LICENSE ORGANIZATION DESCRIPTION GENRE DATE LOCATION CONTACT ISRC'

        # fields' corresponding cueprint conversion characters
        # seperate alternates with a space
        TITLE='%t'
        VERSION=''
        ALBUM='%T'
        TRACKNUMBER='%n'
        TRACKTOTAL='%N'
        ARTIST='%c %p'
        PERFORMER='%p'
        COPYRIGHT=''
        LICENSE=''
        ORGANIZATION=''
        DESCRIPTION='%m'
        GENRE='%g'
        DATE=''
        LOCATION=''
        CONTACT=''
        ISRC='%i %u'

        (for field in $fields; do
                value=""
                for conv in `eval echo \\$$field`; do
                        value=`$CUEPRINT -n $1 -t "$conv\n" "$cue_file"`

                        if [ -n "$value" ]; then
                                echo "$field=$value"
                                break
                        fi
                done
        done) | iconv -f cp1251 -t UTF8 | $VORBISTAG "$2"
}

main()
{
        if [ $# -lt 1 ]; then
                usage
                exit
        fi

        cue_file="$1"

        shift

        ntrack=`cueprint -d '%N' "$cue_file"`
        trackno=1

        if [ $# -ne $ntrack ]; then
                echo "warning: number of files does not match number of tracks"
        fi

        for file in "$@"; do
                case "$file" in
                *.[Ff][Ll][Aa][Cc])
                        vorbis $trackno "$file"
                        ;;
                *.[Oo][Gg][Gg])
                        vorbis $trackno "$file"
                        ;;
                *)
                        echo "$file: uknown file type"
                        ;;
                esac
                trackno=$(($trackno + 1))
        done
}

main "$@"

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