如何從多個 FLAC 檔案製作 FLAC+cue?

如何從多個 FLAC 檔案製作 FLAC+cue?

我嘗試過谷歌搜索,但只能找到相反的指南。

我有一些專輯中的 flac 文件,都已正確標記。我想將它們自動製作成帶有提示表的單一 flac 檔案(即不貼到 Audacity 並自行製作提示)。

這可能嗎?

答案1

使用工具,一個多用途、多格式的命令列工具,用於操作無損音訊檔案。

shntool join -o flac *.flac

這會產生一個文件joined.flac,其中包含 中每個文件的音訊內容*.flac。請注意,您可能想要指定 FLAC 檔案的名稱,而不是將其保留為*.flac.這可以讓您確保檔案以正確的順序連接,並且不會包含不需要的 FLAC 檔案。

shntool cue *.flac > joined.cue

這會產生一個 CUE 文件joined.cue,一個列出曲目和計時的簡單文字檔案。指定 FLAC 檔案名稱時同樣需要注意。 (如果您按順序嘗試這些命令,joined.flac現在將是陷入其中的文件之一*.flac。)

答案2

提示工具應該讓你這樣做 - 你可以選擇文件所在的整個文件夾,然後選擇“嵌入”模式(嵌入是指專輯封面,而不是 flac 文件。選擇圖像+提示作為單獨的專輯封面圖像)和“編碼” “為了行動。選擇 flac 作為檔案類型,選擇 libflake 作為編碼器

在此輸入影像描述

這將彈出一個窗口,其中包含提示表的幾組數據 - 第一個數據是基於您的數據,其他數據基於 freedb 和其他站點。

在此輸入影像描述

這將為您提供一個帶有提示文件的 flac 文件。

答案3

我嘗試了 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

答案4

看看 Foobar2000,它可以創建帶有嵌入式提示表的單一文件,還可以嵌入藝術作品,也可以播放生成的文件 http://www.foobar2000.org/

相關內容