FLAC

From Indie IT Wiki
Revision as of 14:26, 18 February 2016 by imported>Plittlefield (→‎Split An Audio .flac File)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Convert From Flac to MP3

for f in *.flac; do avconv -i "$f" -acodec libmp3lame -ab 320k "${f%.flac}.mp3"; done

Create A Single .flac File From CD

abcde -1 -a default,cue

Create Both FLAC and MP3 Files From CD

~/.abcde.conf

OUTPUTTYPE="mp3,flac"
LAMEOPTS='--preset extreme'
FLACOPTS='--verify --best'
OUTPUTDIR="$HOME/Music/"
OUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM} ${TRACKFILE}'
VAOUTPUTFORMAT='${OUTPUT}/Various/${ALBUMFILE}/${TRACKNUM} - ${ARTISTFILE} ${TRACKFILE}'
PADTRACKS=y
EJECTCD=y
MAXPROCS=4

http://markledden.wordpress.com/2011/01/08/automated-cd-ripping-to-flac-mp3-simultaneously/

Split An Audio .flac File

#!/bin/bash

clear

# Introduction

echo
echo "This script will convert, split and tag FLAC files with an associated cue sheet"
echo
echo "WARNING: THIS SCRIPT WILL AUTOMATICALLY INSTALL SOME NECESSARY PACKAGES IF NOT ALREADY INSTALLED"
echo

# Filenaming template

# %a author
# %A album
# %g genre
# %n track number
# %t title
# %d date
# %c comments

# This is obviously the *correct* naming convetion :P
TEMPLATE='%A - %n - %a - %t'

# This will check if all packages needed are present in the system, and will install them if not.

FLAC=`which flac`
if [ -z "$FLAC" ]; then
  echo "ERROR (Don't worry) ;-)"
  echo "FLAC is not in your system, automatically installing..."
  sudo apt-get update && sudo apt-get install flac -y
  clear
  echo "OK NOW, PROCEEDING..."
  echo
fi

CUE=`which cuebreakpoints`
if [ -z "$CUE" ]; then
  echo "ERROR (Wish every error were like this one...) ;-)"
  echo
  echo "cuetools not present, automatically installing..."
  sudo apt-get update && sudo apt-get install cuetools -y
  clear
  echo "OK NOW, PROCEEDING..."
  echo
fi

SHN=`which shntool`
if [ -z "$SHN" ]; then
  echo "ERROR (Not the end of the world, anyway) ;-)"
  echo
  echo "shntool is not around here, let's get it..."
  sudo apt-get update && sudo apt-get install shntool -y
  clear
  echo "OK, PROCEEDING..."
  echo
fi

LL=`which lltag`
if [ -z "$LL" ]; then
  echo "OH, MY GOD! ;-)"
  echo
  echo "lltag is not in your computer, installing..."
  sudo apt-get update && sudo apt-get install lltag -y
  clear
  echo "AT LAST, PROCEEDING..."
  echo
fi

# Now it will check if we have chosen a cue file

for i in "$@"; do
  # There's no point in checking for a  mixed case file extension if we're 
  # going to rely on it having a lower case extenstion later on
  case "$i" in
    *.cue)
      echo "Checking if file $i is a .cue file...";;
    *)
      echo "Warning: File $i is not a .cue file. Aborting."
      continue
  esac

  # Processing files
  
  FILENAME=$(basename "$i" .cue)
  TMPCUE=$(mktemp --suffix=.cue)
  cp "$FILENAME.cue" "$TMPCUE"
  
  # Try to "fix" incompatible cue files (this is a guess but works for me)
  if grep "^\s*INDEX 00 00:00:00\s*$" "$TMPCUE" > /dev/null; then
    echo "Attempting to fix incompatible cue file..."
    sed -i -e "/^\s*INDEX 01/d" -e "s/^\(\s*\)INDEX 00/\1INDEX 01/" "$TMPCUE"
  fi

  echo "Splitting files..."
  cuebreakpoints  "$TMPCUE"
  shnsplit -o flac -f "$TMPCUE" "$FILENAME.flac"
  
  echo "Adding tags..."
  cuetag "$TMPCUE" split-track*.flac
  
  # This will rename files using the strucure "track-number title", the one I like, but it can be easyly changed using common parameters. Please read lltag manual for more information.
  
  echo "Renaming files..."
  lltag --yes --no-tagging --rename "$TEMPLATE" $(ls split-track*.flac)
  echo
  echo
  echo "Process ended."
done

# cleaning up
rm "$TMPCUE"

Thanks - http://ubuntuforums.org/showthread.php?t=2147598

Install the following programmes:

Linux Terminal $:

sudo apt-get install cuetools shntool flac

Split the audio file in the following manner, required commandline first followed by an example:

Linux Terminal $:

cuebreakpoints file.cue | shnsplit -o flac file.flac

cuebreakpoints Skyscraper.flac.cue | shnsplit -o flac Skyscraper.flac

Thanks go to Danilo Dellaquila for the above tutorial.