'Twas brillig, and Chris cowden at 27/04/10 12:27 did gyre and gimble: > Dear PulseAudio community, > > My apologies if this is either a double post or simply a stupid > question. As the subject line suggests I'm interested in recording > something like a Skype conversation. I say something like a Skype > conversation because I work with some similar voip teleconferencing > programs other than Skype. > > I've been looking in several places for some information. Hopefully I'm > close to having a solution, but I'm not quite there. > > pacat -r -d alsa_output.pci-0000_00_14.2.analog-stereo.monitor > > I've used the above command to capture audio passing through my sound > server. Good so far. > I've also added a virtual device in my > /etc/alas/pulse-default.conf file. So I can also capture that audio > with other programs such as Audacity. THis is not really correct. For one you should not really edit the system files, but instead edit your own users' ~/.asoundrc file. Secondly, what definition did you add here? In theory you should need none. You generally should just tell audacity to "use pulse" then when it is recording fire up an application like pavucontrol, go to the "Recording tab" and locate the Audacity recroding stream, then move it so that it is recording from the monitor device you want. This choice will be remembered for next time. > So I need to include my > microphone to the recording. > > I've found the following command, which doesn't work for me, to pass two > streams: > > pacat -r -d alsa_input.pci-0000_00_14.2.analog-stereo | pacat -p -d > alsa_output.pci-0000_00_14.2.analog-stereo.monitor This will certainly not work. YOu are trying to record from your input device (mic) and then play it back via another input device (the monitor of you output is an input!). If you were to play it back properly, it would sound awful to the person speaking on the VoIP app in question. I'll outline my recommendation below. > The above results in: > > Stream error: No such entity > write() failed: Broken pipe > > for me. > > So, is there a way to combine my two devices? I'm assuming something > like a pacmd script will do the trick, but I don't yet understand how > the module-combine statements work. Well module-combine is technially module-combine-sink. i.e. is allows you to combine multiple outputs, but not multiple inputs. What you want to do is take two inputs (your mic and the monitor of your output) and combine then and record them. There is not (currently) a module-combine-source so this is impossible. However you can do soemthing that approximates this. Firstly load a null sink: pactl load-module module-null-sink sink_name='foo' Then load two module loops backs: pactl load-module module-loopback pactl load-module module-loopback Using pavucontrol, connect the output of the two loopbacks to the null sink. Connect the input of the two loopbacks to: alsa_output.pci-0000_00_14.2.analog-stereo.monitor and alsa_input.pci-0000_00_14.2.analog-stereo This means that you will effectively be recording both your mic and the output of your sound card and playing back both streams on the null sink. As it is a null sink you wont be able to hear it, but you should be able to see the VU meter in the playback tab of pavucontrol. Then in order to record the combined result, you will simply select foo.monitor. pacat -r -d foo.monitor Jobs a good 'un! :p HTHs Col -- Colin Guthrie gmane(at)colin.guthr.ie http://colin.guthr.ie/ Day Job: Tribalogic Limited [http://www.tribalogic.net/] Open Source: Mandriva Linux Contributor [http://www.mandriva.com/] PulseAudio Hacker [http://www.pulseaudio.org/] Trac Hacker [http://trac.edgewall.org/]