Как сделать реплику FLAC+ из нескольких файлов FLAC?

Я пробовал поискать в Google, но могу найти путеводители только наоборот.

У меня есть несколько файлов flac из альбома, все помечены правильно. Я хотел бы превратить их в один файл flac с помощью cuesheet автоматически (т.е. не вставлять в Audacity и сам создавать Cue).

Это возможно?

5 ответов

Решение

Cuetools должен позволить вам сделать это - вы можете выбрать всю папку, в которой находятся файлы, и выбрать "Встроенный" для режима (встроенный относится к обложке альбома, а не к файлу flac. Выберите image + cue для отдельного изображения обложки альбома) и " Кодировать "Для действий". Выберите flac для filetype и libflake для кодировщика

введите описание здесь

Появится окно, в котором будет несколько наборов данных для контрольного листа - первый основан на ваших данных, другие - на freedb и других сайтах.

введите описание здесь

Это должно дать вам один файл flac с файлом cue.

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

shntool join -o flac *.flac

Это создает файл joined.flac который содержит аудиоконтент каждого из файлов в *.flac, Обратите внимание, что вы можете указать имена файлов FLAC, а не оставлять их *.flac, Это позволяет вам быть уверенным, что файлы объединены в правильном порядке, и что нежелательные файлы FLAC не будут включены.

shntool cue *.flac > joined.cue

Это создает файл CUE joined.cue, простой текстовый файл со списком треков и таймингов. То же самое относится и к указанию имен файлов FLAC. (Если вы пытаетесь эти команды по порядку, joined.flac теперь будет одним из файлов, захваченных в *.flac.)

Я попробовал маршрут foobar2000, но, к сожалению, он неточно распечатал переменную INDEX для каждой дорожки. Другие решения я тоже не смог заставить работать. Я проделал много проб и ошибок (с некоторой помощью ChatGPT) и написал скрипт bash, который делает именно это.

      #!/bin/bash

#if this doesn't work, you may need to install flac:
#sudo apt install flac
#written with significant help from ChatGPT

#INSTRUCTIONS: 1) Save this code as create_cue.sh
#                           2) Place it in the same folder as the .flac files you want to create a .cue sheet for
#                           3) Run the bash script (you may need to mark it as executable)
#                           4) Voila! Instant .cue file. Enjoy

# Get the first FLAC file in the directory
flac_file=$(ls *.flac | head -n 1)

# Get the header information from the FLAC file
PERFORMER=$(metaflac --show-tag=ARTIST "$flac_file" | cut -d= -f2)
TITLE=$(metaflac --show-tag=ALBUM "$flac_file" | cut -d= -f2)
DATE=$(metaflac --show-tag=DATE "$flac_file" | cut -d= -f2)
COMMENT=$(metaflac --show-tag=COMMENT "$flac_file" | cut -d= -f2)

# Set variables for the cue file
CUEFILE="$PERFORMER - $TITLE.cue"

# Initialize variables for cumulative time
HOURS=0
MINUTES=0
SECONDS=0

# Start writing cue file
echo "REM DATE $DATE" >> "$CUEFILE"
echo "REM COMMENT $COMMENT" >> "$CUEFILE"
echo "PERFORMER \"$PERFORMER\"" >> "$CUEFILE"
echo "TITLE \"$TITLE\"" >> "$CUEFILE"

# Loop through each flac file in the current directory
for flacfile in *.flac; do
    
    # Get track number, performer, and title from file tags
    TRACK=$(metaflac --show-tag=TRACKNUMBER "$flacfile" | sed 's/.*=//')
    PERFORMER=$(metaflac --show-tag=ARTIST "$flacfile" | sed 's/.*=//')
    TITLE=$(metaflac --show-tag=TITLE "$flacfile" | sed 's/.*=//')

    # Write track info to cue file
    printf "FILE \"$flacfile\" WAVE \n" >> "$CUEFILE"
    printf "  TRACK %02d AUDIO\n" "$TRACK" >> "$CUEFILE"
    printf "    TITLE \"%s\"\n" "$TITLE" >> "$CUEFILE"
    printf "    PERFORMER \"%s\"\n" "$PERFORMER" >> "$CUEFILE"
    printf "    INDEX 01 %02d:%02d:%02d\n" "$HOURS" "$MINUTES" "$SECONDS" >> "$CUEFILE"

    # Get length of track in seconds
    LENGTH=$(metaflac --show-total-samples "$flacfile")
    LENGTH=$((LENGTH/44100))

    # Update cumulative time
    SECONDS=$((SECONDS+LENGTH))
    if [ $SECONDS -ge 60 ]; then
        MINUTES=$((MINUTES+SECONDS/60))
        SECONDS=$((SECONDS%60))
    fi
    if [ $MINUTES -ge 60 ]; then
        HOURS=$((HOURS+MINUTES/60))
        MINUTES=$((MINUTES%60))
    fi

done

Нету. Согласно вики-странице CueTools "встроенный" относится к контрольному листу. У вас есть возможность встроить его в файл flac, создать два отдельных файла flac+cue или создать разные флаки для каждой дорожки в cue. (Хотя я не знаю программного плеера, который на самом деле поддерживает встроенные контрольные листы, вы можете знать о нем.)

Взгляните на Foobar2000, он может создавать отдельный файл со встроенным листом-подсказкой, а также может вставлять художественные работы и воспроизводить полученный файл http://www.foobar2000.org/

Другие вопросы по тегам