Over the last couple of months, we highlighted the work of The iBook Guy because it's very interesting. He also announced a rebrand to “The 8-Bit Guy” because he hasn't published an iBook video “in quite some time”. If you have been a long time follower of PC Perspective, you'll know that we have a history of changing our name to slightly less restrictive titles. Ryan initially named this site after the K7M motherboard, then Athlon motherboards in general, then AMD motherboards, then PC Perspective. I guess we shouldn't cover mobile or console teardowns…
Anywho… back to The 8-Bit Guy. This time, his video discusses how old PCs played (or, more frequently, synthesized) audio. He discusses the early, CPU-driven audio, which were quickly replaced by dedicated sound cards in the 1980s. They could drive audio waves that were either square, triangle, noise, or PCM (microphone-sampled). These four types were combined to make all of the music and sound effects of the time.
This brings us to today. He notes that, with today's modern computers having so much storage and RAM, we end up just mixing everything as an audio file and play that. This is where we can expand a little. Until around the Vista era, sound cards have been increasing in voice count. One of the last examples was the Creative SoundBlaster X-Fi. This card implemented their EAX 5.0 standard, which allowed up to 128 voices in games like Battlefield 2, and that was about it. When Microsoft released Vista, they replaced the entire audio stack with a software-based one. They stated that sound card drivers were a giant cause of bluescreen errors, and thus almost everything was moved out of the kernel.
At around this time, voice limits were removed. They don't make sense anymore because mixing is no longer being done in hardware. Nowadays, even websites through Web Audio API can play thousands of sounds simultaneously, although that probably will sound terrible in practice.
Audio processing doesn't end here, though. Now that we can play as many sounds as we like, and can do so with complete software control over the PCM waves, the problem is shifted into an algorithmic one.
This is an area that I, personally, am interested in.
Earlier this year, I created a demo in WebCL that rendered 20,000 – 30,000 sounds on an Intel HD 4600 GPU, with stereo positioning and linear distance falloff, while the system's main NVIDIA GeForce GTX 670 was busy drawing the WebGL scene. The future goal was to ray-trace (high frequency) and voxelize (low frequency) sound calls based on the environment, to simulate environmentally-accurate reverbs and echoes. Over the summer, I worked with a graduate student from Queen's University to offload audio in the Unity engine (I preferred Unreal). We have not yet introduced geometry.
At this year's Oculus Connect, Michael Abrash also mentioned that audio is interesting for VR, but that it needs to wait for more computational horsepower. A lot more. He also discussed HRTF, which is the current way of adding surround to stereo by measuring how an individual's ears modify sound depending on location. It gets worse if sounds are closer than a meter away, or the actual user's ears differ too much from the experiment subject.
Anyway, enough about me. The 8-Bit Guy's videos are interesting. Check them out.