Aller au contenu

SoX

Un article de Wikipédia, l'encyclopédie libre.

Le logiciel SoX (SOund eXchange, en français : « échange de son ») est un utilitaire pour Unix (dont Linux), MacOS et Windows, en ligne de commande permettant la manipulation de sons et leur conversions dans différents format audio. Il est en ce sens similaire à ImageMagick pour les images ou FFmpeg pour la vidéo.

Fonctionnalités

[modifier | modifier le code]

SoX peut lire et enregistrer des sons depuis la majorité des plateformes en accédant aux périphériques audio.

Le Processeur de signal numérique (ou DSP) peut être utilisé pour l'accélération du traitement, sous Linux, l'interface ossdsp est utilisée via l'option -t ossdsp /dev/dsp, où /dev/dsp est le périphérique DSP à utiliser[2],[3].

Il peut appliquer différents effets aux sons qu'il traite, notamment à l'aide du support des plugins LADSPA[4]. Il peut fonctionner en multithread, afin d'accélérer les calculs d'effets[5] et peut générer des scripts pour répondre aux effets des filtres, à l'aide de Gnuplot ou de GNU Octave[6]. Les effets intégrés sont les suivants, ladspa servant à executer un plugin d'effet LADSPA[7] :

EFFECTS: allpass band bandpass bandreject bass bend biquad chorus channels compand contrast dcshift deemph delay dither divide  downsample earwax echo echos equalizer fade fir firfit  flanger gain highpass hilbert input# ladspa loudness lowpass mcompand noiseprof noisered norm oops output# overdrive pad phaser pitch rate remix repeat reverb reverse riaa silence sinc spectrogram speed splice stat stats stretch swap synth tempo treble tremolo trim upsample vad vol
  * Deprecated effect      Experimental effect    # LibSoX-only effect
EFFECT OPTIONS (effopts): effect dependent; see --help-effect

Il a un système de ré-échantillonnage avancé, permettant par exemple ed ré-échantillonner du débit DAT au format CD[8].

SoX peut également encoder et décoder dans les formats les plus courants de fichiers audio : aac, avi, flac, Opus, mp3, ogg, wav, wmv. Il permet de convertir les fichiers .au en .wav. La liste complète des formats supportés de la version peut-être obtenue par sox --help. Par exemple la version 14.4.2, pour Arch Linux, donne en  :

AUDIO FILE FORMATS: 8svx aif aifc aiff aiffc al amb amr-nb amr-wb anb au avr awb caf cdda cdr cvs cvsd cvu dat dvms f32 f4 f64 f8 fap flac fssd gsm gsrt hcom htk ima ircam la lpc lpc10 lu mat mat4 mat5 maud mp2 mp3 nist ogg opus paf prc pvf raw s1 s16 s2 s24 s3 s32 s4 s8 sb sd2 sds sf sl sln smp snd sndfile sndr sndt sou sox sph sw txw u1 u16 u2 u24 u3 u32 u4 u8 ub ul uw vms voc vorbis vox w64 wav wavpcm wv wve xa xi
PLAYLIST FORMATS: m3u pls
AUDIO DEVICE DRIVERS: alsa ao oss ossdsp pulseaudio

La partie AUDIO DEVICE DRIVERS dépend du système d'exploitation.

SoX permet aussi d'ajouter des filtres lors de la conversion, de concaténer et de mixer plusieurs fichiers.

Bibliothèque

[modifier | modifier le code]

En dehors de son utilisation en ligne de commande permettant de l'utiliser dans des scripts shell, le logiciel comprend une bibliothèque nommée libSox permettant l'intégration de toutes les fonctionnalités dans d'autres logiciels en langage C[9] et des wrappers dans différents langages de programmation :

Pour le langage Lua, il est possible d'utiliser les pipes shell pour échanger entre SoX et le module Luasynth[14]

Exemples de fonctionnement

[modifier | modifier le code]

La gestion des différents format de fichiers audio est transparente et détectée automatiquement pas SoX via l'extension du fichier (entrée et sortie), ou contenu (entrée).

La commande sox fichier lit le fichier audio. Cependant avec certains serveurs de son comme PulseAudio, il faut parfois contourner pour préciser le flux audio à utiliser. Pour Pulseaudio, par exemple, il faut passer par padsp (PulseAudioDSP)[2] : padsp sox fichier -t ossdsp /dev/dsp

Pour enregistrer l'entrée son du système vers un fichier audio, il suffit d'inverser sortie et entrée  : padsp sox -t ossdsp /dev/dsp fichier

La syntaxe pour convertir un fichier .au en .wav : sox fichiersource.au nouveaufichier.wav

SoX fut créé en par Lance Norskog et posté sur le groupe Usenet alt.sources sous l'appellation Aural eXchange: Sound sample translator. Norskog continua de maintenir et de sortir SoX via Usenet, ftp et le web, jusqu'au début de 1995. En 1996, Chris Bagwell lance sa propre sortie du programme patché après avoir effectué le portage sous Linux et Sun.

Ce programme est sous licence GPL. La dernière version au est la 14.4.2[4], mais le développement est toujours actif en 2020.

Références

[modifier | modifier le code]
  1. « [SoX-users] [ANNOUNCE] SoX 14.4.2 Released | SoX - Sound eXchange »
  2. a et b « PulseAudio, OSS, padsp », sur Archlinux.fr
  3. « tnt — Lire le flux sonore, avec SoX », sur Ubuntu-fr
  4. a et b (en) « $ox-14.4.2 », sur site Sourceforge de SoX,
  5. sox --help | grep thread
  6. sox --help | grep plot
  7. sox --help
  8. (en) « SoX - Sound eXchange », sur SoX
  9. « libsox », sur LinuxMAO.org
  10. (en) Rachel M. Bittner, Eric Humphrey, Juan P. Bello, « PySoX: Leveraging the audio signal, processing power of SoX in Python », sur pcdn.com
  11. (en) « Beirdo / sox-ruby », sur github
  12. (en) « Krig / go-sox », sur github
  13. (en) « Awesome Go — Audio and Music », sur Awesome-go.com
  14. (en) « graue / luasynth », sur github

Bibliographie

[modifier | modifier le code]
  • (en) Nitin Arora, « AudioRegent: Exploiting SimpleADL and SoX for Digital Audio Delivery », Code{4}lib Journal, no 10,‎ (lire en ligne)

Liens externes

[modifier | modifier le code]