Chargement...
 
Skip to main content

4 - Toutes les autres applications, les émulateurs...


[sox] choisir une carte

Articles: 14
Bonjour,

Je ne parviens pas, avec SoX, à enregistrer sur ma deuxième carte plutôt que sur la carte par défaut.

Il semble qu'il y ait eu une option -d (--device=...) que je ne retrouve pas dans le man actuel; et/ou que je ne sais pas utiliser.

Bref, je suis dans la panade !

merci par avance de votre aide

--
Config :
Debian Stable
X11: absent
alsa
deux p'tites cartes sndBlaster (chipset Ensoniq {5880,ES1371})
Articles: 3938 France
salut !

d'apres la doc sur le site :
The AUDIODEV environment variable can be used to override the default audio device; e.g.
set AUDIODEV=/dev/dsp2
play ...
sox ... -t oss

or
set AUDIODEV=hw:soundwave,1,2
play ...
sox ... -t alsa



soit : il faut creer une variable dans l'environnement (sous linux) :
$ export AUDIODEV=hw:1
$ play ...
$ sox ... -t alsa


remplace hw:1 par hw:0 en fonction de l'ordre de tes cartes
et remplace le play par rec...
(enfin tes commandes habituelles quoi... 😉 )

note : je ne connais pas sox alors je ne peut pas tester pour toi...

qu'est-ce que ca donne ?

oliv'
Articles: 14
qu'est-ce ça donne ?
Ça laisse SoX totalement indifférent. 🙁
Je peux changer hw:0 par hw:1, et vice-versa, play continue de jouer...😧
Articles: 3938 France
mmm

c'est pas tres clair dans ton post, juste pour etre sur, Tu termines bien toutes les instances de sox en cours avant de faire la manip hein ?

sox utilise donc ta premiere carte par defaut, mais utilise-t-il alsa par defaut ?
si ca n'est pas le cas alors :
$ export AUDIODRIVER=alsa
$ export AUDIODEV=le_nom_de_ta_carte
$ rec ....


et biensur, pour vérifier :
$ echo $AUDIODRIVER $AUDIODEV

(envoi ici ce resultat)

ensuite (ou d'abord 😀), pour verifier quel est le nom exact de ta carte :
$ sudo alsactl names
$ cat /etc/asound.names


poste le résultat ici, on va bien voir ce qu'on va voir !! 😁
(il ne va pas nous faire de resistance longtemps celui-la !!)

oliv'
Articles: 14
Voici le résultat des commandes :
Copy to clipboard
cat /etc/asound.names ctl { alsactl1 { name hw:0 comment 'Physical Device - Ensoniq AudioPCI ENS1371 at 0xd400, irq 11' } alsactl2 { name hw:1 comment 'Physical Device - Ensoniq AudioPCI ENS1371 at 0xdc00, irq 12' } } pcm { alsactl1 { name default:0 comment 'Abstract Device - Default Device (Duplex)' } alsactl2 { name plug:default:0 comment 'Abstract Device With Conversions - Default Device (Duplex)' } alsactl3 { name front:0 comment 'Abstract Device - Front Speakers (Duplex)' } alsactl4 { name plug:front:0 comment 'Abstract Device With Conversions - Front Speakers (Duplex)' } alsactl5 { name 'hw:0,0' comment 'Physical Device - ES1371 DAC2/ADC (Duplex)' } alsactl6 { name 'plughw:0,0' comment 'Physical Device With Conversions - ES1371 DAC2/ADC (Duplex)' } alsactl7 { name 'hw:0,1' comment 'Physical Device - ES1371 DAC1 (Playback)' } alsactl8 { name 'plughw:0,1' comment 'Physical Device With Conversions - ES1371 DAC1 (Playback)' } alsactl9 { name spdif:0 comment 'Abstract Device - S/PDIF (IEC958) Optical or Coaxial Wire (Duplex)' } alsactl10 { name plug:spdif:0 comment 'Abstract Device With Conversions - S/PDIF (IEC958) Optical or Coaxial Wire (Duplex)' } alsactl11 { name default:1 comment 'Abstract Device - Default Device (Duplex)' } alsactl12 { name plug:default:1 comment 'Abstract Device With Conversions - Default Device (Duplex)' } alsactl13 { name front:1 comment 'Abstract Device - Front Speakers (Duplex)' } alsactl14 { name plug:front:1 comment 'Abstract Device With Conversions - Front Speakers (Duplex)' } alsactl15 { name 'hw:1,0' comment 'Physical Device - ES1371 DAC2/ADC (Duplex)' } alsactl16 { name 'plughw:1,0' comment 'Physical Device With Conversions - ES1371 DAC2/ADC (Duplex)' } alsactl17 { name 'hw:1,1' comment 'Physical Device - ES1371 DAC1 (Playback)' } alsactl18 { name 'plughw:1,1' comment 'Physical Device With Conversions - ES1371 DAC1 (Playback)' } } rawmidi { alsactl1 { name default comment 'Abstract Device - Default Device (Duplex)' } alsactl2 { name 'hw:0,0' comment 'Physical Device - ES1371 (Duplex)' } alsactl3 { name 'hw:1,0' comment 'Physical Device - ES1371 (Duplex)' } alsactl4 { name virtual comment 'Virtual Device - Sequencer (Duplex)' } alsactl5 { name 'virtual:MERGE=0' comment 'Virtual Device - Sequencer (No Merge) (Duplex)' } } timer { alsactl1 { name 'hw:CLASS=1,SCLASS=0,CARD=-1,DEV=0,SUBDEV=0' comment 'Physical Device - system timer' } } seq { alsactl1 { name default comment 'Default Device - Sequencer (Duplex)' } alsactl2 { name hw comment 'Physical Device - Sequencer (Duplex)' } } export AUDIODRIVER="alsa" export AUDIODEV="hw:1" echo $AUDIO{DRIVER,DEV} alsa hw:1 rec -s -2 -r48000 testaudio.raw file testaudio.raw testaudio.raw: data arecord -vvf S16_LE -c2 -r 48000 -D hw:1 testaudio.raw file testaudio.raw testaudio.raw: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 48000 Hz


Ton aide est réellement appréciée.

(il ne va pas nous faire de resistance longtemps celui-la !!)
'manquerait plus que ça 😊
Articles: 3938 France
je viens de remarquer que l'exemple de la doc est :
AUDIODEV=hw:soundwave,1,2

c'est a dire que sox gere les noms de devices d'une maniere qui me depasse un peu...
(c'est plus facile avec jack !!) 😁
je m'interesse alors au control alsa n°16 : plughw:1,0
essai avec ca pour voir...


si j'ai un peu de temps ce soir j'installe sox et je test tout ca...

(tu auras remarqué je suis un bidouilleur pas un spécialiste) 😀

oliv'
Articles: 14

Bon, j'ai fait, je crois, un pas dans la bonne direction.
Je me suis déco., puis ai rouvert une session : les variables ne sont donc plus affectées.
Copy to clipboard
echo "${AUDIODRIVER:-nc} ${AUDIODEV:-nc}" nc nc rec -t alsa -r48000 -s hw:1 testaudio.raw Input File : 'default' (alsa) Sample Size : 16-bit (2 bytes) Sample Encoding: signed (2's complement) Channels : 1 Sample Rate : 48000 Time: 00:02.90 [00:00.00] of 00:00.00 (0.00%) Samples out: 131k Clips: 0 Skipped. Input File : 'hw:1' (alsa) Sample Size : 16-bit (2 bytes) Sample Encoding: signed (2's complement) Channels : 1 Sample Rate : 48000 Time: 00:03.24 [00:00.00] of 00:00.00 (0.00%) Samples out: 295k Clips: 0 ^C Done.
Mais, comme on peut le remarquer, SoX/rec "s'ouvre deux fois" :
une fois en utilisant 'default' (alsa)
une autre fois en utilisant 'hw:1' (alsa)
c'est cette dernière qui enregistre correctement, mais les deux sont enregistrés dans testaudio.raw, j'ai donc 131k de silence au début du fichier...


Edit:
Copy to clipboard
sox -r48000 -talsa hw:1 testaudio.raw silence 1 5 2% Input File : 'hw:1' (alsa) Sample Size : 16-bit (2 bytes) Sample Encoding: signed (2's complement) Channels : 1 Sample Rate : 48000 Time: 00:26.62 [00:00.00] of 00:00.00 (0.00%) Samples out: 1.14M Clips: 0 ^C Aborted.
Avec sox, ça fonctionne impec. Mais pas avec rec...
?
'comprend pas 😑