Însă ăsta nu e sfârșitul, ne vin în ajutor mai multe instrumente special concepute pentru divizare/editare a tagurilor/conversie a formatul lossless. Avem nevoie de următoarele tools-uri: cuetools, shntool, flac, lame, mp3info, și altele (gen: grep, sed, id3v2) care deja la sigur sunt instalate.
Studiind man-page-urile acestor tools-uri am creat un mic scriptuleț în bash pe care l-am numit flac2mp3 și se execută ca ./flac2mp3 /calea_spre_flac /calea_spre_cue și își face treaba singurel mai departe.
Lucrul lui constă din câțiva pași foarte simpli, pe care o să încerc să-i explic mai jos:#!/bin/bash F_FILE=$1 C_FILE=$2 if [ ! -r "$F_FILE" -o ! -r "$C_FILE" ] then echo "Can't read file $F_FILE or $C_FILE" >&1 exit 1 fi cuebreakpoints "$C_FILE" | shnsplit -o 'cust ext=mp3 lame -b 320 --vbr-new -V 0 --quiet - %f' "$F_FILE" cuetag.sh "$C_FILE" split-track* for i in split-track*.mp3 do TITLE="`id3info "$i" | grep '^=== TIT2' | sed -e 's/.*: //g'`" TRACKNUM="`id3info "$i" | grep '^=== TRCK' | sed -e 's/.*: //g'`" mv -v "$i" "$TRACKNUM - $TITLE.mp3" done echo "Done!"
- scriptul încearcă să determine dacă fișierele .cue și .flac există și dacă există permisiunea de a le citi;În cazul meu am băgat încă 2 linii în script pentru a determina timpul de execuție a lui. La început: start_time=$(date +%s);, ce ia valoarea numărului de secunde începând cu 1970-01-01 00:00:00 UTC ;] și la sfârșit am băgat echo "Script execution time: $(($(date +%s) - start_time)) secs.";. În 85 secunde am convertat un flac de 140MB și am obținut 8 fișiere mp3 pe un netbook. Un rezultat foarte bun, IMO ^_^
- cuebreakpoints determină intervalele pe care sunt plasate piesele;
- shnsplit divizează acel fșier .flac și îl convertează automat în mp3 prin tool-ul lame;
- cuetag.sh extrage id3 info din .cue și o distribuie fișierelor mp3 proaspăt create
- și în sfârșit, pentru a nu lăsa denumirile urâte gen split-trackXX.mp3, încercăm să le redenumim folosind informația din id3 tags. Numele finale e de forma tracknum - title.mp3
ps. Noapte bună ;D