여러 FLAC 파일에서 FLAC+큐를 어떻게 만들 수 있나요?

여러 FLAC 파일에서 FLAC+큐를 어떻게 만들 수 있나요?

인터넷 검색을 시도했지만 반대 방향의 가이드만 찾을 수 있습니다.

앨범에 몇 개의 flac 파일이 있는데 모두 제대로 태그가 지정되어 있습니다. 자동으로 큐시트가 포함된 단일 flac 파일로 만들고 싶습니다(즉, Audacity에 붙여넣지 않고 직접 큐를 만드는 것입니다).

이것이 가능한가?

답변1

사용신툴, 무손실 오디오 파일을 조작하기 위한 다목적, 다중 형식 명령줄 도구입니다.

shntool join -o flac *.flac

joined.flac그러면 에 있는 각 파일의 오디오 콘텐츠가 포함된 파일이 생성됩니다 *.flac. FLAC 파일 이름을 그대로 두는 대신 FLAC 파일 이름을 지정하고 싶을 수도 있습니다 *.flac. 이를 통해 파일이 올바른 순서로 결합되고 원치 않는 FLAC 파일이 포함되지 않도록 할 수 있습니다.

shntool cue *.flac > joined.cue

joined.cue그러면 트랙과 타이밍을 나열하는 간단한 텍스트 파일인 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/

관련 정보