Hi,<br><br>I'd agree that echo cancellation would be very handy - I've always understood it to be very computationally intensive function - especially when providing echo cancellation for a large room where one has to match and remove audio from a relatively large time slot in real-time. They usually seem to contain custom DSPs - but maybe one could utilise GPGPU/CUDA/OpenCL to speed such things up on general purpose hardware? But if Leon has been working on software DSP implementations then that is great! I know that the Speex project has an echo canceller module (which seems to be the best open source one available) but I've not had a chance to look at it closely. Then there is the integration work for RAT but that is comparatively simple.<br>
<br>Andrew no offence taken on RAT - sometimes it can be good develop new tools but as we have seen in the history of AccessGrid the work required to develop replacements often too much for a single project or institution and the projects never quite get finished. This probably down to the fact that tools are rather complex beasts and do require a substantial effort to copy or better. But if someone has effort then they're welcome to give it a shot. When one is developing [open source] software it is often a choice between modifying an existing tool or canabalising it and/or developing a totally new tool.<br>
<br>On RAT and JACK - one can use the alsa driver to connect to jack:<br><a href="http://alsa.opensrc.org/index.php/Jack_(plugin)">http://alsa.opensrc.org/index.php/Jack_(plugin)</a><br>However on Unbuntu you'll have to buil the libasound_module_pcm_jack.so from source as it isn't currently included:<br>
<a href="https://wiki.ubuntu.com/MainInclusionReportJACK">https://wiki.ubuntu.com/MainInclusionReportJACK</a><br><br>As Leon mentions - there are nasty issues when one attempts to use two separate cvards for input and output - though it is possible to resolve them one needs some extract tricks to do so. Again ALSA can help - it is possible to use your asounrc config to get ALSA to combin two sounds devices into one:<br>
<a href="http://alsa.opensrc.org/index.php/Asoundrc">http://alsa.opensrc.org/index.php/Asoundrc</a><br><br>As regards multiple sources for an E/C - as Leon mentioned I tend to agree that the E/C itself doesn't need multiple inputs - one needs a mixer to provide that. The mixer could be a software thing that controlls a multichannel card like the RME Hammerfall or Delta 410 etc.<br>
<br>Piers<br><br><div class="gmail_quote">2009/6/1 Andrew Ford <span dir="ltr"><<a href="mailto:acf0659@rit.edu" target="_blank">acf0659@rit.edu</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br><br>Yes, software echo cancellation would be incredibly useful! As far as I know, most hardware echo cancelling solutions (beyond things like personal tabletop mics like the Chat50) end up being US$2000+, which might not be a problem for some big-budget institutions, but tends to be an issue for us :) It may also make things like AG more accessible to people at home due to not having to buy extra audio equipment, bridge/network issues notwithstanding.<br>
<br>Polycom PVX, the drivers for Logitech webcams that have built-in mics, and Skype I think, all do software echo cancellation themselves, and I've heard of a Max/MSP implementation as well (but haven't been able to find much info on it), so it definitely seems possible.<br>
<br>In fact, I've been toying around with the idea of developing an entire replacement for RAT (no offense Piers/other UCL devs :) since I think there are a lot of issues and room for improvement: the Mac audio code needs to be rewritten to use the new API, it has no way of using multiple audio devices, even just 2 for separate input/output, it has no way of sending multiple streams, it doesn't support any kind of routing to external programs (ie JACK - could be very useful for compression, limiting, EQ), it tends to crash often (on Windows at least) due to Mbus (side note: are there any other nice ways for it to communicate with vic or other video apps?), and the interface should probably be redesigned. Software AEC and JACK-esque routing to external programs could make things like the XAP, Converge, etc. entirely unnecessary.<br>
<br>Let me know if there's any opportunity for any project like this - I do have experience with audio, and I'd love to be able to work on it. I'd start it up right now if I weren't somewhat busy with video stuff :)<br>
<br>--Andrew<br><br><div class="gmail_quote">2009/5/29 leon zadorin <span dir="ltr"><<a href="mailto:leonleon77@gmail.com" target="_blank">leonleon77@gmail.com</a>></span><div><div></div><div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello AccessGrid developers and visionaries :-)<br>
<br>
I have a quick question to ask...<br>
<br>
I was thinking of the nature of some R&D projects that I could propose<br>
to various organisations/universities/etc for undertaking et al and<br>
recalled the issue of audio 'echo-cancellation' when it comes to<br>
network-distributed, collaborative meetings.<br>
<br>
I am not sure of the current status of 'echo-canceling' solutions but,<br>
if my memory serves me right, there were numerous attempts to create<br>
an open-source, software-based solution for 'echo-cancellation' --<br>
with the majority of such attempts having come short of being<br>
comparable to hardware-based, proprietary products (in terms of<br>
quality, dynamic self-tuning etc).<br>
<br>
Presuming the above still holds and applying one's 'lateral thinking',<br>
I was wondering: if I was able to make such a self-tuning,<br>
dynamically-updating solution (both in software and deployable on<br>
regular computers -- without the need for any special graphics cards<br>
for extra processing power) -- how exactly useful or valuable would<br>
this solution be? I mean -- is there any use for it nowdays at all?<br>
<br>
I am asking because I remembered that during my days of<br>
forensic-analysis work there was a device which was doing a very<br>
similar thing (in fact such concepts are not new to the digital signal<br>
processing theory by a long shot and have been in public debate/view<br>
for quite some time now) and I think know how to make one (i.e. how to<br>
implement this theory in real-time on a modern computer) -- so there<br>
is a reasonable degree of expectation for the solution to work (i.e.<br>
self-tuning -adjusting software-based solution to cancel echoes in<br>
real-time network collaborations)... to this extent, I suppose, the<br>
whole uncertainty of "R" in "R&D" is somewhat reduced (albeit not<br>
completely eliminated).<br>
<br>
Anyway -- no point in considering anything unless it is actually<br>
needed :-) :-) :-)<br>
<br>
Kind regards<br>
<font color="#888888">Leon Zadorin.<br>
</font></blockquote></div></div></div><br>
</blockquote></div><br>