Tag: sox

  • Convert audio between MP3, FLAC, WAV – including hi-fi and lo-fi and short clips

    Using Sox, LAME, FLAC, and madplay – I put together this “dictionary” of shell commands that can be run to convert audio from one format to other, including dialup-modem-streamable lofi mono MP3 files, and including shorter clips of music.

    Above each command-line and the INPUT and OUTPUT audio formats. (represented by $in and $out in the command line.)

    For short audio clips, you need $start – what second to start the clip at, and $duration – how long the clip should go. All clips have a 1-second fade-in, and 2-second fade-out.

    flac wav
    flac -sd $in -o $out

    flac wav clip
    flac -sdc $in | sox -t wav – -t raw -s -w -c 2 – trim $start $duration | sox -t raw -r 44100 -s -w -c 2 – $out fade h 1 $duration 2

    flac wav-lofi
    flac -sdc $in | sox -t wav – -s -w -c 1 -r 22050 $out rate

    flac mp3-hifi
    flac -sdc $in | lame – $out

    flac mp3-hifi clip
    flac -sdc $in | sox -t wav – -t raw -s -w -c 2 – trim $start $duration | sox -t raw -r 44100 -s -w -c 2 – -t wav – fade h 1 $duration 2 | lame – $out

    flac mp3-lofi
    flac -sdc $in | sox -t wav – -t wav -s -w -c 1 -r 22050 – rate | lame -b 80 – $out

    flac mp3-lofi clip
    flac -sdc $in | sox -t wav – -t raw -s -w -c 1 -r 22050 – rate | sox -t raw -r 22050 -s -w -c 1 – -t raw -r 22050 -s -w -c 1 – trim $start $duration | sox -t raw -r 22050 -s -w -c 1 – -t wav – fade h 1 $duration 2 | lame -b 80 – $out

    wav flac
    flac -s $in -o $out

    wav wav clip
    sox -t wav $in -t raw -s -w -c 2 – trim $start $duration | sox -t raw -r 44100 -s -w -c 2 – -t wav $out fade h 1 $duration 2

    wav wav lofi
    sox -t wav $in -s -w -c 1 -r 22050 $out rate

    wav mp3-hifi
    lame $in $out

    wav mp3-hifi clip
    sox -t wav $in -t raw -s -w -c 2 – trim $start $duration | sox -t raw -r 44100 -s -w -c 2 – -t wav – fade h 1 $duration 2 | lame – $out

    wav mp3-lofi
    sox -t wav $in -t wav -s -w -c 1 -r 22050 – rate | lame -b 80 – $out

    wav mp3-lofi clip
    sox -t wav $in -t raw -s -w -c 1 -r 22050 – rate | sox -t raw -r 22050 -s -w -c 1 – -t raw -r 22050 -s -w -c 1 – trim $start $duration | sox -t raw -r 22050 -s -w -c 1 – -t wav – fade h 1 $duration 2 | lame -b 80 – $out

    mp3 flac
    madplay -q -o wave:- $in | flac -s – -o $out

    mp3 wav clip
    madplay -q -o wave:- $in | sox -t wav – -t raw -s -w -c 2 – trim $start $duration | sox -t raw -r 44100 -s -w -c 2 – $out fade h 1 $duration 2

    mp3 wav lofi
    madplay -q -o wave:$out -m -R 22050 $in

    mp3 mp3-hifi
    cp $in $out

    mp3 mp3-hifi clip
    madplay -q -o wave:- $in | sox -t wav – -t raw -s -w -c 2 – trim $start $duration | sox -t raw -r 44100 -s -w -c 2 – -t wav – fade h 1 $duration 2 | lame – $out

    mp3 mp3-lofi
    madplay -q -o wave:- -m -R 22050 $in | lame -b 80 – $out

    mp3 mp3-lofi clip
    madplay -q -o wave:- -m -R 22050 $in | sox -t raw -r 22050 -s -w -c 1 – -t raw -r 22050 -s -w -c 1 – trim $start $duration | sox -t raw -r 22050 -s -w -c 1 – -t wav – fade h 1 $duration 2 | lame -b 80 – $out

    Got any more single-line open-source audio-converting commands to add?

    ————————————————–

    Try this one :)

    ls *.flac |while read a; do n=$(basename \”$a\” .flac); flac -sdc \”$a\” |lame -V 1 – \”${n}.mp3\” ; done

    ————————————————

    just save this into a file
    such as convert.sh and make it executable

    #!/bin/bash
    FILES=$(ls *.flac | cut -d \’.\’ -f1)
    for i in $FILES; do
    echo converting: $i.flac
    flac -sdc $i.flac | lame – $i.mp3
    done

    —————————————-