{{tag>Focal Bionic audio}}
----
======SoX =====
SoX est un logiciel de traitement de son en **ligne de commande**. Il consiste en une suite d'outils permettant par exemple de changer le format, de filtrer, de rajouter des fondus, d'analyser un fichier, etc.
===== Pré-requis =====
* Avoir activé l'accès aux [[:depots#universe_et_multiverse|dépôts Universe]]
===== Installation =====
Il vous suffit, pour cela, d'[[:tutoriel:comment_installer_un_paquet|installer]] le paquet **[[apt>sox|sox]]**.
Afin de profiter pleinement des possibilités de SoX (comme la manipulation du mP3 ou de l'ogg ;-)), il est recommandé d'installer aussi le paquet **[[apt>libsox-fmt-all|libsox-fmt-all]]**.
===== Les différents outils ====
* [[#play]] : pour lire les fichiers musicaux
* [[#sox1|sox]]: pour manipuler les fichiers musicaux
* [[#rec]]: pour enregistrer des sons
==== play ====
**Play** lit les fichiers musicaux. Par exemple :
* pour lire tous les fichiers mp3 d'un répertoire à la suite :play *.mp3
* pour lire un fichier "2 fois plus fort" :play fichier.mp3 vol 2
==== sox ====
**Sox** permet la manipulation des fichiers. Par exemple :
* pour créer un ogg à partir d'un mp3 :sox fichier.mp3 fichier.ogg
* pour concaténer plusieurs fichiers en un seul :sox fichier1.ogg fichier2.ogg fichier_final.ogg
* pour augmenter de 10db sox entree.wav sortie.wav vol 10db
* pour augmenter les basses tout en évitant la saturation :sox entree.ogg sortie.ogg vol -6dB bass +6
* pour imprimer une analyse du fichier son (amplitude, volume...):sox entree.ogg -n stat
* pour imprimer une analyse du fichier son (dB, channel..) sox entree.ogg -n stats
* pour convertir un fichier stéreo en "fake"-surround ([[http://jeanbruenn.info/2011/10/22/stereo-to-fake-surround/|Source]])
#!/bin/bash
###
# stereo 2 surround
###
inFile="$1";
outFile="$2";
debug="$3";
# todo ...
#if [ ! -z sox ]; then
#echo "sox"
# run=0;
#fi
#if [ ! -x multimux ]; then
#echo "multimux"
# run=0;
#fi
#if [ ! -x soxi ]; then
#echo "soxi"
# run=0;
#fi
#if [ ! -x normalize ]; then
#echo "normalize"
# run=0;
#fi
# default parameter
soxParm="";
normParm="-q";
# debug parameter
if [ $debug -eq 1 ]; then
soxParm="-V -S";
normParm="-v";
fi
if [ $run -eq 0 ]; then
echo "Error: Requirenment missing: normalize multimux, sox or soxi";
else
echo " Preparing Source";
normalize $normParm $inFile;
rate=$(soxi $inFile | grep "Sample Rate" | awk '{ print $4; }');
# if rate is 44100, we'll most likely have stuff from an audio-cd,
# which we want to deemph at least i assume so
if [ $rate -eq 44100 ]; then
echo " + Source is 44.1kHz, De-Emphasing & Resampling...";
sox $soxParm -c 2 $inFile source.wav deemph rate -v -a 48000
else
sox $soxParm -c 2 $inFile source.wav rate -v -a 48000
fi
# create combined channel
sox $soxParm -c 2 source.wav -c 1 combined.wav mixer 0.5,0.5
normalize $normParm combined.wav
# create pre- left and right channels
sox $soxParm -c 2 source.wav -c 1 sleft.wav mixer -l
sox $soxParm -c 2 source.wav -c 1 sright.wav mixer -r
sox $soxParm -M -c 1 -v -1 sright.wav -c 1 combined.wav -c 1 right.wav
normalize $normParm right.wav
sox $soxParm -M -c 1 -v -1 sleft.wav -c 1 combined.wav -c 1 left.wav
normalize $normParm left.wav
# frequency games
sox $soxParm -c 1 left.wav -c 1 ls.wav sinc 100-6000 reverb
sox $soxParm -c 1 right.wav -c 1 rs.wav sinc 100-6000 reverb
sox $soxParm -c 1 combined.wav -c 1 c.wav sinc 80-12000
sox $soxParm -c 1 combined.wav -c 1 lfe.wav sinc 20-200
sox $soxParm -c 1 left.wav -c 1 lf.wav sinc 80-20000
sox $soxParm -c 1 right.wav -c 1 rf.wav sinc 80-20000
# normalize it in batch-mode
normalize $normParm -b ls.wav rs.wav c.wav lfe.wav lf.wav rf.wav
# let's mux it
multimux -d 0,0,15,15,0,0 lf.wav rf.wav ls.wav rs.wav c.wav lfe.wav > $outFile
# cleanup
rm left.wav right.wav combined.wav source.wav sleft.wav sright.wav
fi
==== rec ====
**Rec** permet d'enregistrer des sons.\\
Pour enregistrer l'entrée micro par défaut en un fichier audio au format ogg :
rec -d test.ogg
Le fichier test.ogg est alors créé dans le répertoire courant.
rec -d ~/Desktop/ma_voix.wav
Le fichier ma_voix.wav est créé sur le bureau.
Plus d'informations sur **rec** et ses nombreuses options avec son manuel :
rec --help
Un script pour faciliter l'utilisation de rec est disponible dans [[https://forum.ubuntu-fr.org/viewtopic.php?id=253255|ce sujet du forum]].
===== Liens =====
* [[http://sox.sourceforge.net/|site officiel (en)]]
* [[http://billposer.org/Linguistics/Computation/SoxTutorial.html|quelques exemples et explications (en)]]
----
//Contributeurs : [[:utilisateurs:ZondeR]] , [[:utilisateurs:Yannou90]]//