enregistreur 4 canaux avec Delta44
Par Laurent le mardi 15 mai 2012, 12:48 - linux - Lien permanent
Sur base d'une carte son m-audio Delta 44, réalisation d'une machine (sans interface graphique) pour l'enregistrement continu de 4 canaux au format MP3. Chaque canal dans un fichier distinct.
Article mis à jour le 01/08/2012.
Exemple de branchement :
La carte son coûte environ 140 euros.
L'installation est réalisée sur un PC ancien avant une mise en production vers
une machine plus récente.
La carte son intégrée est désactivée du Bios.
L'OS choisi est : Ubuntu Server 12.04. L'installation
est standard, en fin de parcours, choix d'un package en plus : OpenSSH
Server.
Ensuite :
Installer les utilitaires Alsa (qui fournissent entre autre alsamixer) :
Régler la carte son :sudo apt-get install alsa-utils
F5 pour choisir tout, régler tout à 80 environ.sudo alsamixer
L'enregistrement sera réalisé par ecasound :
Installer un MTA (qui n'est pas installé par défaut), sinon un message : MTA not found pourrait apparaître dans vos logs :sudo apt-get install ecasound
Pour enregistrer les 4 canaux dans 1 fichier séparé (voir documentation : Multichannel Processing) :apt-get install exim4
Attention dans certains cas, l'interface son devra être nommée comme suit : alsa,plughw:0sudo ecasound -f:16,4,44100 -a 1,2,3,4 -i:alsahw,0,0 -a:1 -f:16,1,44100 -o:/home/sound/1ch-file.wav -a:2 -f:16,1,44100 -o:/home/sound/2ch-file.wav -chcopy:2,1 -a:3 -f:16,1,44100 -o:/home/sound/3ch-file.wav -chcopy:3,1 -a:4 -f:16,1,44100 -o:/home/sound/4ch-file.wav -chcopy:4,1
Tout se passe à merveille pour le format WAV mais pas pour le MP3, car par défaut lors de la conversion, les canaux sont joints !
Dans /usr/share/ecasound/ecasoundrc se trouvent les réglages de lame qui s'occupe de la conversion vers le format MP3, on va en créer un personnalisé dans /root/.ecasound/ecasoundrc :
ce qui est important : -m d (qui divise les canaux)ext-cmd-mp3-output lame -b 128 -s 44.1 -m d -r --big-endian -S - %f
Pour dégrader la qualité du son (voix par exemple) :
Ce qui donne pour l'enregistrement en MP3 :ext-cmd-mp3-output lame -b 128 -s 44.1 -m d -r --big-endian -S --resample 11.025 --lowpass 4.5 - %f
Si lors de l'incorporation de cette commande à un script, le log du mail vous affiche : TERM environment variable not set ajouter au début du script :sudo ecasound -f:16,4,44100 -a 1,2,3,4 -i:alsahw,0,0 -a:1 -f:16,1,44100 -o:/home/sound/1ch-file.mp3 -a:2 -f:16,1,44100 -o:/home/sound/2ch-file.mp3 -chcopy:2,1 -a:3 -f:16,1,44100 -o:/home/sound/3ch-file.mp3 -chcopy:3,1 -a:4 -f:16,1,44100 -o:/home/sound/4ch-file.mp3 -chcopy:4,1
Pour mémoire (je ne l'ai finalement pas utilisé), voici un fichier /root/.asoundrc (documentation, source) :#!/bin/bash
TERM=dumb
export TERM
Ensuite :#START
pcm.ice1712 {
type hw
card 0
device 0
}
pcm.channel1 {
type plug
ttable.0.0 1 # (Delta 1)
slave.pcm ice1712
}
pcm.channel2 {
type plug
ttable.0.1 1 # (Delta 2)
slave.pcm ice1712
}
pcm.channel3 {
type plug
ttable.0.2 1 # (Delta 3)
slave.pcm ice1712
}
pcm.channel4 {
type plug
ttable.0.3 1 # (Delta 4)
slave.pcm ice1712
}
pcm.hwout {
type plug
slave.pcm ice1712
}
ctl.channel1 {
type hw
card 0
}
ctl.channel2 {
type hw
card 0
}
ctl.channel3 {
type hw
card 0
}
ctl.channel4 {
type hw
card 0
}
#END
Pour enregistrer le canal 1 :
Pour enregistrer le canal 2 :sudo ecasound -f:32,1,44100 -i:alsa,channel1 -o:1ch-file.wav
Pour enregistrer le canal 3 :sudo ecasound -f:32,1,44100 -i:alsa,channel2 -o:2ch-file.wav
Pour enregistrer le canal 4 :sudo ecasound -f:32,1,44100 -i:alsa,channel3 -o:3ch-file.wav
...sudo ecasound -f:32,1,44100 -i:alsa,channel4 -o:4ch-file.wav