<p>Thanks all,</p>
<p>The scenario is odd... Its a intercom with some funky features.</p>
<p>3 ALSA inputs/outputs for headsets/microphones, all audio from all microphones should go to all earpieces. </p>
<p>There is one special case input; A microphone is placed in the ambient noise (in an aircraft)<br>
The audio is inverted and added to the other 3 headset outputs - this should give Active noise cancellation; or some effect close to it.</p>
<p>It is easier to do using discrete op-amps, but this is more fun :D</p>
<p>Richard <br>
</p>
<div class="gmail_quote">On Aug 19, 2012 8:03 AM, "Emile Semmes" <<a href="mailto:emile.semmes@e6group.com">emile.semmes@e6group.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 8/18/2012 12:23 PM, Tim-Philipp Müller wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Sat, 2012-08-18 at 17:43 +0100, Richard wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Is there a component that is capable of combining/mixing multiple<br>
audio tracks in to one? I am reading audio from multiple ALSA devices<br>
and need to combine in to one stream and then output to multiple audio<br>
sinks.<br>
</blockquote>
Perhaps the "adder" element is what you're looking for? If not, maybe<br>
the interleave element?<br>
<br>
Cheers<br>
-Tim<br>
<br>
______________________________<u></u>_________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.<u></u>freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/<u></u>mailman/listinfo/gstreamer-<u></u>devel</a><br>
</blockquote>
Tim,<br>
<br>
You beat me to the punch. I second using adder too.<br>
<br>
Can you just have a pipeline from one alsasrc directly to the alsasink or do you need something like an output-selector for dynamic alsasink selection? Is this on the same device for immediate playback or can you save this to a file for later playback? There are a couple of ways to skin this cat.<br>
<br>
Note: these are prototype pipelines. I haven't tested them.<br>
<br>
Assuming you're using multichannel inputs, you could try using the interleave and deinterleave elements but that's kinda hackish<br>
alsasrc device="hw:1,0" ! deinterleave name=d1 \<br>
alsasrc device="hw:1,1" ! deinterleave name=d2 \<br>
interleave name=i \<br>
d1.src0 ! i.sink0 \<br>
d1.src1 ! i.sink1 \<br>
d2.src0 ! i.sink2 \<br>
d3.src1 ! i.sink3<br>
... and then the reverse to get to your alsasink. If you need to swap inputs to outputs, you'll have to throw in output-selectors. That's going to be a pretty complex pipeline, but it may do the trick. (This actually sounds like fun. Let me know if you need help doing this one)<br>
<br>
<br>
For later playback, if you can mux them into a quicktime container. Your pipeline would look something like:<br>
<br>
alsasrc device="hw:1,0" ! queue ! mux.audio_00 \<br>
alsasrc device="hw:1,1" ! queue ! mux.audio_01 \<br>
alsasrc device="hw:1,2" ! queue ! mux.audio_02 \<br>
qtmux name=mux ! filesink<br>
<br>
You might have to do some tricks with qtmux so you can play it back. qtdemux was complaining about an empty atom during demuxing.<br>
<br>
Have fun,<br>
Emile<br>
<br>
______________________________<u></u>_________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.<u></u>freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/<u></u>mailman/listinfo/gstreamer-<u></u>devel</a><br>
</blockquote></div>