Surround Sound WAV Editors?
dayeight
asks:
"Are there any surround sound .wav editor anywhere?
I want to sit in the middle of my room and have one speaker
start counting and have it jump to the next and so fourth.
Something with CoolEdit's stereo split would be nice, but
for all the (5.1) speakers available. Now that I have a
cd-burner I really want to do this. Or maybe, put a
seperate song for each speaker (screw the woofer). Can a
burners even do this?"
First of all, no soundcards greater than 2 channels are supported by
any Linux sound driver today. Secondly, whether your software
interfaces OSS, ESounD, WMSound, NAS, CRAPI, libmikmod, rplay, pciaudio, or
any of the other abstraction layers, the libraries themselves all
interface OSS.
Before Microsoft coined the term OSS to mean Open Source Software and
changed the world, OSS was better known as the Open Sound System
standard.
This unmicrosoftened OSS is what 99% of Linux audio applications use to
interface the audio hardware. There were some attempts to improve on
OSS itself, like ALSA, but these are platform dependant and
dynamically linking the ALSA library, or even so much as #including the ALSA
include file in your program locks you into very very restrictive
licensing.
OSS is platform independant and very liberal in its licensing, so it's
become the most pervasive.
OSS by definition can only support 4 channels per soundcard. Even if a
5 channel soundcard was supported by the Linux kernel, the method the
software uses to interface the soundcard, the OSS API, is limited to 4
channels. Supporting more than 4 channels per soundcard is binary
impossible without breaking all Linux software.
There were some attempts to support simultaneous soundcards at the
application level, limiting you only to the PCI slot count. Slab tried
to do this. Since OSS doesn't offer any method of synchronizing
multiple soundcards or transparently rolling multiple soundcards into
one, the only way to do it is a very platform and soundcard dependant
DMA routine at the application level. Only a couple soundcards work
with DMA methods and anyone using it has to rewrite their program
everytime a new kernel comes out so it hasn't really worked.
Okay this is easy. I'm assuming you're talking about dolby surround sound -- like what you get off TV and movies, the left, right, center and mono rear arrangement rather than the Dolby Digital 5.1 arrangement... doing the latter means having a licensed AC3 encoder.
Doing the former is a piece of cake. Surround sound is based on a simple concept of pulling two additional channels from the left and right channels. Center is easy -- anything that runs in the left and right channel at the same time, same amplitude, and so on, goes to the center channel. That's why you can turn the center channel off on a surround sound receiver and not really lose much.
The rear is just as simple. The rear is any sound thats identical in the left and right except the phase. Ie, one's the inverse of the other. So, to play sounds out your soundcard moving around the room, starting at the rear you'd output data like this: (assuming a mono source, where X is the 16 bit value for the current sample)
Left | Right
-----------------
Left X | 0
Center X | X
Right 0 | X
Rear 65535-X| X
Does that make sense? You simply want to invert the data stream on one of the channels to send it to the rear.