<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-15"
 http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Tanu,<br>
<br>
thanks, appreciate your explanation of sinks and sources.<br>
<br>
1) I'm presuming that I cannot use the Simple API for stereo mixing;
only the Async API should be used?<br>
<br>
2) is there any app (e.g gnome-sound-recorder) that uses PA for
recording sound? I can look at the source and learn.<br>
<br>
thanks again<br>
L.K<br>
<br>
Tanu Kaskinen wrote:
<blockquote cite="mid:1331193196.2373.24.camel@laptop" type="cite">
  <pre wrap="">On Wed, 2012-03-07 at 21:39 -0800, Laxmikant Rashinkar wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Hi,

I'm brand new to pulseaudio. I want to dive right in and write a cmd 
line application that records whatever is being played on the speaker to 
a disk file (aka stereo mix).

Can someone give me a general idea of how to go about doing this?
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Output devices are represented by "sinks" and input devices are
represented by "sources" in Pulseaudio. Assuming that a sound card
supports both output and input, it usually shows up as one sink and one
source. In addition to that, every sink has an automatically generated
"monitor source" that can be used just like any other source. So,
whatever you play to a sink, you can record it from its monitor source.

Sinks and sources have names. The easiest way to recognize a monitor
source is looking at its name: the monitor source names always end with
".monitor". For example, "pactl list sinks | grep Name: ; pa list
sources | grep Name:" prints this on my system:

        Name: alsa_output.pci-0000_00_1b.0.analog-stereo
        Name: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
        Name: alsa_input.pci-0000_00_1b.0.analog-stereo

The first one is the sink name for my laptop's internal sound card's
output, the second one is the monitor source for that sink, and the
third one is the source name for the internal sound card's input.

I hope the concept of monitor sources is now clear. You'll just have to
make an application that records from the monitor sources. I don't know
how you'll want to handle the case where the system has multiple sound
cards.

  </pre>
</blockquote>
</body>
</html>