#!/bin/sh # mp3 to ogg script # # Author Thorsten Gunkel # # --- 25.04.2003 Thorsten Gunkel --- # * split 2mp3 into ogg2mp3 and mp32ogg # * FIXME: generes > 115? # --- Initial Release --- # get_title="/usr/bin/id3info \"\$ifilename\" | grep ^\=\=\=\ TIT2 | sed s/^[^:]*:\ //" get_artist="/usr/bin/id3info \"\$ifilename\" | grep ^\=\=\=\ TPE1 | sed s/^[^:]*:\ //" get_album="/usr/bin/id3info \"\$ifilename\" | grep ^\=\=\=\ TALB | sed s/^[^:]*:\ //" get_date="/usr/bin/id3info \"\$ifilename\" | grep ^\=\=\=\ TYER | sed s/^[^:]*:\ //" get_comment="/usr/bin/id3info \"\$ifilename\" | grep ^\=\=\=\ COMM | sed s/^[^:]*:\ // | sed s/^\(.*\)\"\[.*\]\":\ //" get_trcknr="/usr/bin/id3info \"\$ifilename\" | grep ^\=\=\=\ TRCK | sed s/^[^:]*:\ //" get_genre="convert_mp3tag \`/usr/bin/id3info \"\$ifilename\" | grep ^\=\=\=\ TCON | sed s/^[^:]*:\ // | sed s/^\(// | sed s/\)$//\`" recoder="nice /usr/bin/mpg321 -s -q --stereo \"\$ifilename\" | nice /usr/bin/oggenc -r -q 5 --output=\"\$ofilename\" --tracknum \"\$trcknr\" --title \"\$title\" --album \"\$album\" --artist \"\$artist\" -" suffix1="mp3" suffix2="ogg" # convert mp3 tag numeric genre to string convert_mp3tag() { case $1 in 0) echo "Blues";; 1) echo "Classic Rock";; 2) echo "Country";; 3) echo "Dance";; 4) echo "Disco";; 5) echo "Funk";; 6) echo "Grunge";; 7) echo "Hip-Hop";; 8) echo "Jazz";; 9) echo "Metal";; 10) echo "New Age";; 11) echo "Oldies";; 12) echo "Other";; 13) echo "Pop";; 14) echo "R&B";; 15) echo "Rap";; 16) echo "Reggae";; 17) echo "Rock";; 18) echo "Techno";; 19) echo "Industrial";; 20) echo "Alternative";; 21) echo "Ska";; 22) echo "Death Metal";; 23) echo "Pranks";; 24) echo "Soundtrack";; 25) echo "Euro-Techno";; 26) echo "Ambient";; 27) echo "Trip-Hop";; 28) echo "Vocal";; 29) echo "Jazz+Funk";; 30) echo "Fusion";; 31) echo "Trance";; 32) echo "Classical";; 33) echo "Instrumental";; 34) echo "Acid";; 35) echo "House";; 36) echo "Game";; 37) echo "Sound Clip";; 38) echo "Gospel";; 39) echo "Noise";; 40) echo "AlternRock";; 41) echo "Bass";; 42) echo "Soul";; 43) echo "Punk";; 44) echo "Space";; 45) echo "Meditative";; 46) echo "Instrumental Pop";; 47) echo "Instrumental Rock";; 48) echo "Ethnic";; 49) echo "Gothic";; 50) echo "Darkwave";; 51) echo "Techno-Industrial";; 52) echo "Electronic";; 53) echo "Pop-Folk";; 54) echo "Eurodance";; 55) echo "Dream";; 56) echo "Southern Rock";; 57) echo "Comedy";; 58) echo "Cult";; 59) echo "Gangsta";; 60) echo "Top 40";; 61) echo "Christian Rap";; 62) echo "Pop/Funk";; 63) echo "Jungle";; 64) echo "Native American";; 65) echo "Cabaret";; 66) echo "New Wave";; 67) echo "Psychadelic";; 68) echo "Rave";; 69) echo "Showtunes";; 70) echo "Trailer";; 71) echo "Lo-Fi";; 72) echo "Tribal";; 73) echo "Acid Punk";; 74) echo "Acid Jazz";; 75) echo "Polka";; 76) echo "Retro";; 77) echo "Musical";; 78) echo "Rock & Roll";; 79) echo "Hard Rock";; 80) echo "Folk";; 81) echo "Folk/Rock";; 82) echo "National Folk";; 83) echo "Swing";; 84) echo "Bebob";; 85) echo "Latin";; 86) echo "Revival";; 87) echo "Celtic";; 88) echo "Bluegrass";; 89) echo "Avantgarde";; 90) echo "Gothic Rock";; 91) echo "Progressive Rock";; 92) echo "Psychedelic Rock";; 93) echo "Symphonic Rock";; 94) echo "Slow Rock";; 95) echo "Big Band";; 96) echo "Chorus";; 97) echo "Easy Listening";; 98) echo "Acoustic";; 99) echo "Humour";; 100) echo "Speech";; 101) echo "Chanson";; 102) echo "Opera";; 103) echo "Chamber Music";; 104) echo "Sonata";; 105) echo "Symphony";; 106) echo "Booty Bass";; 107) echo "Primus";; 108) echo "Porn Groove";; 109) echo "Satire";; 110) echo "Slow Jam";; 111) echo "Club";; 112) echo "Tango";; 113) echo "Samba";; 114) echo "Folklore";; *) echo "";; esac } # --- ...2... --- # nr of parameters numb=$# # do while there are parameters while [ $numb -gt 0 ] do ifilename="$1"; shift; numb=`expr $numb - 1` # Does the input file exist? if [ -e "$ifilename" ]; then ofilename="`echo "$ifilename" | sed s/".$suffix1"$/".$suffix2"/`" echo "< $ifilename" # ignore files with wrong suffix if [ "$ifilename" != "$ofilename" -a ! -e "$ofilename" ]; then echo "> $ofilename" title="`eval $get_title`" artist="`eval $get_artist`" album="`eval $get_album`" date="`eval $get_date`" comment="`eval $get_comment`" trcknr="`eval $get_trcknr`" genre="`eval $get_genre`" eval "$recoder"; errornr=$? echo echo ">--------------" echo else echo echo "XXX Destination file already exists or wrong input file!" echo fi else echo "XXX File $ifilename does not exist!" fi done # --- ...2... ---