FW: AG audio

Ivan R. Judson judson at mcs.anl.gov
Tue Apr 22 12:21:35 CDT 2003


This is very cool; we need to corner bob at the AHM and figure out how to
get this functionality into AG2 since it is one of our feature requests :-)

--Ivan

PS -- just highlighting windows would be good for us for now.

> -----Original Message-----
> From: Robert Putnam [mailto:putnam at tonka.bu.edu] 
> Sent: Tuesday, April 22, 2003 12:00 PM
> To: jtvh at bu.edu
> Cc: papka at mcs.anl.gov; glenn at bu.edu; stevens at mcs.anl.gov; 
> judson at mcs.anl.gov; disz at mcs.anl.gov
> Subject: Re: AG audio
> 
> 
>    Date: Tue, 22 Apr 2003 08:53:12 -0400
>    From: Jennifer Teig von Hoffman <jtvh at bu.edu>
>    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; 
> en-US; rv:1.2.1) Gecko/20021130
>    X-Accept-Language: en-us, en
>    CC: "'Glenn Bresnahan'" <glenn at bu.edu>,
>       "Rick L. Stevens" <stevens at mcs.anl.gov>, Ivan Judson 
> <judson at mcs.anl.gov>,
>       "'Terry Disz'" <disz at mcs.anl.gov>, putnam at bu.edu
>    Content-Type: text/plain; charset=us-ascii; format=flowed
> 
>    Hi Mike,
> 
>    Robert Putnam is developing this, and will be 
> demonstrating it next week 
>    at the AHM. He's currently running this with AG 1.x, but 
> developing it 
>    in such a way that it should be no problem to move it up 
> to 2.x once the 
>    various programming hooks are in place. He's planning to 
> eventually rely 
>    on AG2 authentication services to match vic and rat 
> streams appropriately.
> 
>    I'm cc-ing him here; Robert, can you say a bit more about it?
> 
> Sure.  Here's an abstract, plus a little internal memo I 
> wrote about it:
> 
>       This is a demonstration of a prototype AG system that 
> does left-right
>       panning of incoming Rat audio streams to their 
> corresponding Vic window
>       locations.  A modified version of Vic transmits window 
> locations to a
>       custom software application, which, in turn, issues 
> stereo positioning
>       commands to a standard (unmodified) Rat.  It is hoped 
> that the test
>       implementation will shed some light on the following 
> questions: What are
>       the hardware and software requirements of a positional 
> audio system?
>       What is the impact on system performance (e.g., 
> increased packet loss,
>       impaired echo-cancellation, etc.)?  Would another 
> mechanism, e.g.,
>       visually highlighting vic windows, be more effective at 
> helping users
>       identify the current speaker?  Does the system provide 
> an increased
>       sense of immersion?  Does it increase (or decrease) 
> intelligibility and
>       overall audio quality?  Is it distracting?  And do the 
> benefits of
>       positional audio justify the system's increased cost 
> and complexity?
> 
> Vic and Rat have a built-in message scheme called the 
> "conference bus" or "mbus."  Rat uses it to do interprocess 
> communication between the user interface and the audio 
> engine, but the standard AG Vic pretty much ignores mbus 
> messages.  My agent uses the mbus to communicate with both 
> Vic and Rat.
> 
> When the agent starts up, it reads a little database file 
> that has associations between the Vic and Rat capture machines: 
> 
>    site: Purdue University
>    rat_name: Purdue University
>    vic_name: Purdue University MAIN
>    vic_name: Purdue University PRESENTER
>    vic_name: Purdue University AUDIENCE
> 
> As I said at the meeting, I expect that this part of the 
> implementation will go away when I use AG 2.0 services to get 
> these associations.
> 
> The agent then starts monitoring the stream of messages Rat 
> sends from its audio engine to its user interface, including 
> periodic (every second or so) updates about the incoming 
> audio streams.  It puts into a array of structs the names and 
> IP addresses of the remote Rats and the local ID that Rat 
> uses for them.  Here's the current struct definition:
> 
>    struct db {
>      int site_id;
>      char site_name[STANDARD_STRING_LEN];
>      char vic_names[MAX_VICS][STANDARD_STRING_LEN];
>      char rat_name[STANDARD_STRING_LEN];
>      int last_xi;
>      int num_vics;
>      unsigned int data[3];
>    } Db[MAX_SITES];
> 
> My modified Vic puts a message on the mbus whenever the 
> operator adjusts a window location.  The message contains the 
> window XY location (scaled to floats between 0.0 and 1.0) and 
> the IP address and name of the remote Vic capture machine.  
> The agent reads the message off the mbus and tries to find 
> the corresponding rat capture machine, using a heuristic if 
> necessary. (Again, this will change in the future.)  If 
> there's a match, the agent puts a "3D audio" positioning 
> command (part of Rat's standard equipment) on the mbus.  The 
> message contains the local Rat ID for the stream, the azimuth 
> (-90 to 90 degrees) and whether to do simple panning or HRTF 
> (I'm using the former because I think it sounds better over 
> loudspeakers).
> 
> Note that this test implementation is made a little simpler 
> because interprocess communication is built into Vic and Rat, 
> and they are running on the same machine.  If this were a 
> more typical AG setup, I'd have to write a little socket code 
> for messages between Vic and the agent.
> 
> 
> Robert Putnam
> putnam at bu.edu
> (617) 353-8295
> 
> 
> 
> 
>    (P.S. Congrats on such a successful AG retreat!)
> 
>    - Jennifer
> 
>    Michael E. Papka wrote:
> 
>    >Glenn and Jennifer,
>    >
>    >Can I get more info on this?
>    >
>    >Enhanced AG Audio
>    >-	Developing positional audio for the AG
>    >-	Associate rat and vic streams
>    >-	Locate vic window on display surface, Uses a modified vic
>    >-	Send positional audio info to rat, Uses rat 3d audio 
> capabilities
>    >-	Will demonstrate proof of concept at AHM
>    >
>    >Thanks
>    >Mike
>    >  
>    >
> 
> 




More information about the ag-dev mailing list