[Ardour-Users] 4-channel stereo
Alex Lopez
aliksandr at gmail.com
Sat May 21 04:28:42 PDT 2016
# Splits all WAV files inside all folders under current directory into
mono files
for f in */*.WAV; do sox $f ${f%.WAV}-l.WAV remix 1; sox $f
${f%.WAV}-r.WAV remix 2; done
On 05/21/2016 01:08 PM, Ralf Mardorf wrote:
> On Sat, 21 May 2016 12:15:42 +0200, Alex Rodriguez Lopez wrote:
>> The way I do it, I split them before hand using sox (very handy command
>> line utility), so then you would have 4mono files you can use one per
>> channel in ardour. Its even fairly easy to write a script that will
>> split to mono all files of a certain extension in a folder using Sox.
> I'm using a script to split stereo files based on ffmpeg and added it as
> tool to spacefm, so just selecting a file and a shortcut is needed. This
> could be done using sox or ffmpeg with any number of channels.
>
> Perhaps not a beautiful script, but it does the job ;).
>
> $ cat /usr/local/bin/s2m
> #!/bin/dash
>
> version="2016-04-28"
>
> usage()
> {
> cat<<EOF
>
> s2m version $version rocketmouse
>
> stereo.wav > mono.wav:
> s2m input_file.wav
> stereo.wav > left.wav:
> s2l input_file.wav
> stereo.wav > right.wav:
> s2r input_file.wav
> stereo.wav > dual {left,right}.wav:
> s2d input_file.wav
> stereo.wav > all {mono,left,right}.wav:
> s2a input_file.wav
>
> EOF
> exit $1
> }
>
> outfile()
> {
> outfile="$(echo "$infile" | sed 's/\(.*\).wav/\1_'$1.$suffix/I)"
> if [ -f "$outfile" ]; then
> echo "$outfile already exists"
> usage 1
> fi
> }
>
> ex2file()
> {
> outfile $1
> echo "Export to $outfile"
> case $1 in
> mono)
> ffmpeg -i "$infile" -ac 1 "$outfile"
> ;;
> left)
> ffmpeg -i "$infile" -map_channel 0.0.0 "$outfile"
> ;;
> right)
> ffmpeg -i "$infile" -map_channel 0.0.1 "$outfile"
> ;;
> esac
> }
>
> case $1 in
> -h|--help)
> usage 0
> ;;
> esac
>
> infile="$1"
> if [ ! -f "$infile" ]; then
> echo "No file $infile"
> usage 1
> fi
>
> num_ch=$(exiftool "$infile" | grep -v "File Name" | grep -v "Directory" | grep "Num Channels" | cut -d: -f2 | sed s/\ //)
> plural=""
> if [ "$num_ch" = "" ]; then
> num_ch="No"
> else
> if [ "$num_ch" -ge "2" ]; then
> plural="s"
> fi
> fi
> if [ "$num_ch" != "2" ]; then
> echo "$num_ch channel$plural, not a stereo file"
> usage 1
> fi
>
> suffix=$(echo "$infile" | rev | cut -d. -f1 | rev)
> if [ "$(echo "$suffix" | tr [:upper:] [:lower:])" != "wav" ]; then
> echo "Suffix is \"$suffix\", must be \"wav\", case sensitivity is not required"
> usage 1
> fi
>
> case $(basename $0) in
> s2m)
> ex2file mono
> ;;
> s2l)
> ex2file left
> ;;
> s2r)
> ex2file right
> ;;
> s2d)
> outfile right
> ex2file left
> ex2file right
> ;;
> s2a)
> outfile left
> outfile right
> ex2file mono
> ex2file left
> ex2file right
> ;;
> esac
>
> exit
More information about the Ardour-Users
mailing list