At A Glance Main Projects Tutorials Resume

Contact


Email: palen1c at gmail.com




A Methodology For Surround Sound Support in Kiosk Applications

Thur, 30 Oct 2014 14:07:39 EST

Every now and then a project comes along that requires special manipulation of sound. On a recent project I had to deploy a three screen, three station user experience. In order to keep the costs down and programming streamlined, I specified the experience run on one computer. The trick here was that we needed to create the illusion of three individual stations.

To turn one computer into three stations, I needed to create the illusion that each individual station had it's own sound effects and ambiance. In hardware, this entails using a 5.1 surround sound card to output to six individual channels. So for this experience we used the following configuration:


Front Left, Front Right – Station 1
Center, Sub – Station 2
Rear Left, Rear Right – Station 3

By placing six stereo pairs of speakers across the three stations, we can create the illusion of three individual stations by directing our sound effects to the appropriate speakers.

Programming this solution turned out to be way more difficult than anticipated. The kiosk software itself was built in Adobe AIR. AIR does not support more than stereo.

I turned to another favorite language, C# for help and came across the Naudio project. Although Naudio supports re-mapping the output of sound channels, (which is what I needed to do; direct my sound effects to specific speakers only) it does not support surround setups very well. I was unable to use naudio.

The final solution I ended up using was a windows presentation foundation console application that implemented a simple TCP socket server. This application uses at its core, the Windows Presentation Foundation MediaElement. MediaElement can play 5.1 or 7.1 specially crafted wav files.

In the end instead of directing stereo sound effects to different channels, I created individual 5.1 wav files using audacity for each sound effect in each set of speakers. This has proved to be a reliable way to utilize surround sound in kiosk applications written in any programming language that supports TCP socket connections.

Charles Palen has been involved in the technology sector for several years. His formal education focused on Enterprise Database Administration. He currently works as the principal software architect and manager at Transcending Digital where he can be hired for your next contract project. Charles is a full stack developer who has been on the front lines of small business and enterprise for over 10 years. Charles current expertise covers the areas of .NET, Java, PHP, Node.js, Javascript, HTML, and CSS. Charles created Technogumbo in 2008 as a way to share lessons learned while making original products.

Comments

No one has posted any comments yet, be the first

Comments are currently disabled.


Techno Gumbo RSS Feed

Related Links