GNU/Linux >> Tutoriels Linux >  >> Linux

ALSA Api :Comment lire deux fichiers wave simultanément ?

Vous pouvez configurer le dmix d'ALSA plugin pour permettre à plusieurs applications de partager des périphériques d'entrée/sortie.

Un exemple de configuration pour ce faire est ci-dessous :

pcm.dmixed {
    type dmix
    ipc_key 1024
    ipc_key_add_uid 0
    slave.pcm "hw:0,0"
}
pcm.dsnooped {
    type dsnoop
    ipc_key 1025
    slave.pcm "hw:0,0"
}

pcm.duplex {
    type asym
    playback.pcm "dmixed"
    capture.pcm "dsnooped"
}

# Instruct ALSA to use pcm.duplex as the default device
pcm.!default {
    type plug
    slave.pcm "duplex"
}
ctl.!default {
    type hw
    card 0
}

Cela fait ce qui suit :

  • crée un nouvel appareil en utilisant le dmix plugin, qui permet à plusieurs applications de partager le flux de sortie
  • en crée un autre en utilisant dsnoop qui fait la même chose pour le flux d'entrée
  • les fusionne dans un nouveau duplex périphérique qui prendra en charge l'entrée et la sortie en utilisant le asym plugin
  • dites à ALSA d'utiliser le nouveau duplex appareil comme appareil par défaut
  • dites à ALSA d'utiliser hw:0 pour contrôler le périphérique par défaut (alsamixer, etc.)

Collez ceci dans l'un ou l'autre ~/.asoundrc ou /etc/asound.conf et vous devriez être prêt à partir.

Pour plus d'informations, voir http://www.alsa-project.org/main/index.php/Asoundrc#Software_mixing.


ALSA ne fournit pas de mélangeur. Si vous devez lire plusieurs flux audio en même temps, vous devez les mélanger vous-même.

La façon la plus simple d'y parvenir est de décoder les fichiers WAV en float échantillons, ajoutez-les et découpez-les lors de leur conversion en échantillons entiers.

Alternativement, vous pouvez essayer d'ouvrir le fichier par défaut périphérique audio (et pas un périphérique matériel comme "hw:0") plusieurs fois, une fois pour chaque flux que vous souhaitez lire, et espérons que le plugin dmix ALSA est chargé et fournira la fonctionnalité de mixage.


Linux
  1. Comment joindre deux fichiers texte sous Linux

  2. Comment dire à Firefox d'utiliser un autre appareil Alsa ?

  3. Comment copier plusieurs fichiers simultanément à l'aide de scp

  4. Comment joindre deux fichiers CSV ?

  5. Comment puis-je différencier deux fichiers XML ?

Comment lire des MP3 dans Ubuntu

Comment jouer à It Takes Two sur Linux

Comment afficher deux fichiers côte à côte sous Linux

Comment comparer deux fichiers dans un terminal Linux

Comment synchroniser automatiquement des fichiers entre deux serveurs Linux

Comment puis-je voir simultanément deux fichiers tex dans TeXstudio?