Re: ice1712 recording

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 8 Dec 2016 12:18:47 -0600, James Shatto wrote:
>As well as a few CLI options for the same.  Sox is good for that.

For SpaceFM I wrote a script to split and/or merge stereo wav. Written
on the fly, so most likely not good shell script writing, but it does
what it should do and IIRC ffmpeg was easier to use.

[rocketmouse@archlinux bin]$ ls -Ggl s2*
lrwxrwxrwx 1    3 Apr 27  2016 s2a -> s2m
lrwxrwxrwx 1    3 Apr 27  2016 s2d -> s2m
lrwxrwxrwx 1    3 Apr 27  2016 s2l -> s2m
-rwxr-xr-x 1 1791 Apr 28  2016 s2m
lrwxrwxrwx 1    3 Apr 27  2016 s2r -> s2m
[rocketmouse@archlinux bin]$ cat 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



------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user



[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux