+++ /dev/null
-#!/bin/bash
-### Script converts flac to mp3 and added ID3-Tag
-### include cover and replaygain Information from flac file
-
-DefaultVariables()
-{
- BITRATE=192
- MODE="j"
-}
-
-# config .flactomp3v2.conf can set BITRATE and MODE
-LoadConfigFile()
-{
- if [ -f $HOME/.flactomp3v2.conf ]; then
- source $HOME/.flactomp3v2.conf
- fi
-}
-
-ReadFlacToMp3Tags()
-{
- local readonly INPUTFILE="$1"
- local readonly OUTPUTFILE="$2"
- local readonly INPUTFILEDIR=${INPUTFILE%/*}
-
- # get the tags from flac file
- local readonly ARTIST=$(metaflac "$INPUTFILE" \
- --show-tag=ARTIST | sed s/.*=//g)
- local readonly TITLE=$(metaflac "$INPUTFILE" \
- --show-tag=TITLE | sed s/.*=//g)
- local readonly ALBUM=$(metaflac "$INPUTFILE" \
- --show-tag=ALBUM | sed s/.*=//g)
- local readonly GENRE=$(metaflac "$INPUTFILE" \
- --show-tag=GENRE | sed s/.*=//g)
- local readonly TRACKNUMBER=$(metaflac "$INPUTFILE" \
- --show-tag=TRACKNUMBER | sed s/.*=//g)
- local readonly DATE=$(metaflac "$INPUTFILE" \
- --show-tag=DATE | sed s/.*=//g)
- local readonly RRL=$(metaflac "$INPUTFILE" \
- --show-tag=REPLAYGAIN_REFERENCE_LOUDNESS | tr '=' ':')
- local readonly RTG=$(metaflac "$INPUTFILE" \
- --show-tag=REPLAYGAIN_TRACK_GAIN | tr '=' ':')
- local readonly RTP=$(metaflac "$INPUTFILE" \
- --show-tag=REPLAYGAIN_TRACK_PEAK | tr '=' ':')
- local readonly RAG=$(metaflac "$INPUTFILE" \
- --show-tag=REPLAYGAIN_ALBUM_GAIN | tr '=' ':')
- local readonly RAP=$(metaflac "$INPUTFILE" \
- --show-tag=REPLAYGAIN_ALBUM_PEAK | tr '=' ':')
-
- # --------------------------------------------------
-
- # ID3v2.3 tagging with cover and without cover
- local eyed3Command="eyeD3 --v2 --to-v2.3 \
- --artist=\"$ARTIST\" \
- --title=\"$TITLE\" \
- --album=\"$ALBUM\" \
- --genre=\"${GENRE:-12}\" \
- --track=\"${TRACKNUMBER:-0}\" --recording-date=\"$DATE\" \
- --user-text-frame=\"$RRL\" \
- --user-text-frame=\"$RTG\" \
- --user-text-frame=\"$RTP\" \
- --user-text-frame=\"$RAG\" \
- --user-text-frame=\"$RAP\""
-
- # add cover picture to command
- if [ -f $INPUTFILEDIR/cover.jpg ]; then
- local eyed3Command+=" \
- --add-image=\"$INPUTFILEDIR/cover.jpg\":FRONT_COVER"
- fi
-
- # finally command end
- local eyed3Command+=" \"$OUTPUTFILE\" > /dev/null 2>&1"
-
- # execute eyeD3 command
- eval $eyed3Command
-}
-
-EncodingFlacToMp3()
-{
- local readonly INPUTFILE="$1"
- local readonly OUTPUTFILE="$2"
-
- # stream flac into the lame encoder
- nice --adjustment=10 flac --silent --stdout --decode "$INPUTFILE" \
- | nice --adjustment=15 lame --silent \
- -b $BITRATE -m $MODE --noreplaygain - "$OUTPUTFILE"
-}
-
-main()
-{
- local readonly INPUTFILE="$1"
- local readonly OUTPUTFILE="${INPUTFILE[@]/%flac/mp3}"
-
- DefaultVariables
- LoadConfigFile
-
- EncodingFlacToMp3 "$INPUTFILE" "$OUTPUTFILE"
- ReadFlacToMp3Tags "$INPUTFILE" "$OUTPUTFILE"
-}
-
-main "$1"
-exit 0