Sound and audio

From Emulation General Wiki
(Redirected from Audio simulation)
Jump to navigation Jump to search
Also see PC emulator comparisons#Audio and Wrappers sections. Recommended to see PCGamingWiki's surround sound page.

The late 1990s and early 2000s saw a major shift from legacy DOS audio standards to new, more advanced APIs for 3D positional audio, primarily in Windows 9x and XP. The battle for market dominance was fought between key players:

Audio APIs

[edit | edit source]
  • Creative EAX (Environmental Audio Extensions):
 * Technology: EAX was a proprietary API developed by Creative Labs as an extension to Microsoft's DirectSound3D. It was the most widely adopted standard for environmental audio effects.
 * Function: EAX's main purpose was to add realistic audio effects like reverb, echo, and occlusion by simulating different acoustic environments (e.g., a cavern, a stadium, a hallway). Instead of calculating the entire 3D soundscape, it applied pre-designed effects to sound sources based on their position relative to the listener and the simulated environment.
 * Impact: Due to Creative's dominant market share with their Sound Blaster Live! and Audigy cards, EAX became a de-facto standard. Many games from the era, such as Quake III Arena, Unreal Tournament, and Deus Ex, featured dedicated EAX support for a more immersive experience.
  • Aureal A3D:
 * Technology: A3D was a competing proprietary API from Aureal Semiconductor. It was celebrated for its more physically accurate approach to 3D audio rendering.
 * Function: A3D used a technology called HRTF (Head-Related Transfer Function) to model how sound waves travel and reflect off surfaces in a virtual environment. This allowed A3D to create a highly realistic perception of sound direction, distance, and even height.
 * Impact: Although technologically superior to early EAX versions, A3D never achieved the same market penetration. Aureal's legal battles with Creative and eventual bankruptcy in 2000 led to the demise of the technology. Creative later acquired Aureal's assets, including patents, effectively ending the competition.
  • DirectSound3D:
 * Technology: DirectSound3D was Microsoft's API (but most of the time it functioned as a piece of middleware), part of the DirectX suite. It was the foundation for 3D audio in Windows and provided basic positional sound capabilities.
 * Function: It handled the core 3D calculations, like adjusting volume based on distance and panning based on direction. However, it lacked the advanced environmental effects that EAX and A3D provided.
 * Impact: While it was the universal standard, games often used DirectSound3D in conjunction with either the EAX or A3D API to add richer environmental effects. As dedicated sound cards declined, DirectSound3D eventually gave way to newer, more hardware-agnostic APIs.
  • OpenAL (Open Audio Library):
 * Technology: OpenAL was an open-source, cross-platform audio API designed to be a successor to both DirectSound3D and EAX.
 * Function: It provided a flexible framework for handling 3D audio, and while initially slow to gain adoption, it became more prominent in the later 2000s, especially with the decline of dedicated sound cards and the shift towards integrated audio solutions and software-based processing.
 * Impact: OpenAL's open nature and platform independence made it a viable option for developers. It is still used in many modern games, often with software-based processing that mimics the effects of the older hardware-accelerated solutions.

Middleware for Sound APIs

[edit | edit source]

In addition to direct APIs like EAX, A3D, DirectSound3D, and OpenAL, middleware audio libraries emerged in the late 1990s and early 2000s to simplify audio integration across diverse hardware and platforms. These tools abstracted low-level audio processing, offering developers flexible solutions for 2D/3D audio, music playback, and effects, often layering atop APIs like DirectSound or OpenAL.

  • Miles Sound System (MSS, formerly Audio Interface Library - AIL):
 * Technology: Developed by John Miles as AIL in 1991 for DOS, later evolving into MSS under RAD Game Tools. It provided a unified audio API supporting digital audio, MIDI/XMI, and basic 3D positional effects across varied sound cards.
 * Function: MSS handled streaming, mixing, and effects like panning and volume attenuation with low CPU overhead. It supported compression (e.g., DIGPAK) and acted as a driver layer, ensuring compatibility with hardware like Sound Blaster, Gravis Ultrasound, and integrated chipsets, often in tandem with DirectSound.
 * Impact: Used in over 7,000 games (e.g., titles from Epic, Capcom, Microsoft), MSS was a cornerstone of PC audio in the Windows 9x/XP era. Its open-source AIL v2 release aids modern DOS emulators (e.g., DOSBox forks) for authentic playback. MSS declined as DirectX and integrated audio matured but remains influential in emulation contexts.
  • FMOD:
 * Technology: Introduced by Firelight Technologies in ~1995, FMOD grew into a cross-platform audio middleware solution, gaining prominence in the 2000s as a successor to tools like MSS.
 * Function: FMOD provided advanced 3D audio, adaptive music, and multi-format playback (e.g., MP3, MIDI, streaming). It supported real-time effects and event-driven audio, integrating with engines like Unity and Unreal for dynamic soundscapes.
 * Impact: While less dominant in the 1990s, FMOD became a standard in the 2000s, especially for developers seeking hardware-agnostic solutions. Its flexibility and software-based processing made it a natural evolution of OpenAL and DirectSound3D, with ongoing relevance in modern games and emulators (e.g., via wrappers like DSOAL).
  • Interactive Spatial Audio Composition Technology (ISACT):
 * Technology: ISACT was a proprietary audio middleware developed by E-Cubed Technologies and acquired by Creative Labs around 2004–2005. It was designed as a high-level tool for composing and implementing interactive 3D spatial audio, often integrated with OpenAL 1.1 and Creative's EAX ADVANCED HD engine.
 * Function: ISACT provided developers with a multitrack-like editing environment (via the ISACT Production Studio) for creating dynamic sound events, randomizers, and entities tailored to gameplay. It supported formats like WAV, AIFF, PCM, ADPCM, WMA, XMA, and Ogg Vorbis, along with surround configurations, real-time effects, and hardware-accelerated output on Sound Blaster cards. This abstracted complex spatial mixing, occlusion, and environmental simulation, making it easier to layer audio atop APIs like DirectSound3D or OpenAL.
 * Impact: Primarily targeted at PC, Xbox, and Xbox 360 games in the mid-2000s (e.g., used in BioWare's Mass Effect for its audio system), ISACT aimed to bridge hardware-specific effects with cross-platform needs. However, Creative discontinued support by 2006–2007, purging documentation and limiting its legacy to niche modding communities. In emulation, its effects can sometimes be approximated via OpenAL wrappers or software renderers, though original assets remain hard to access due to the abandonment.

Soundfonts and MIDI

[edit | edit source]

Beyond 3D audio APIs, the Windows 9x and XP eras were also a golden age for MIDI music and soundfonts. This was a significant evolution from the simpler FM synthesis of the DOS era.

  • MIDI (Musical Instrument Digital Interface): MIDI is not an audio format itself but rather a set of instructions—a digital "sheet music"—that tells a synthesizer how to play a song. It contains data on which notes to play, their duration, volume, and which instruments to use.
  • Soundfonts: To play a MIDI file, you need a synthesizer to interpret the instructions. Older sound cards like the Sound Blaster AWE32 and AWE64 introduced Soundfonts. A soundfont is a file that contains a collection of digital audio samples (like recordings of real instruments) that are used by a MIDI synthesizer. This allowed for much higher-quality music than the earlier FM synthesis chips. Gamers and music enthusiasts could download and install custom soundfonts to drastically change the sound of a game's MIDI soundtrack. This gave users a new level of customization over the audio experience.
  • Integration with Windows: Windows 9x and XP fully supported MIDI and soundfonts. The operating system's built-in MIDI playback was often tied to the capabilities of the installed sound card. The Sound Blaster Live! and Audigy cards continued this tradition, with hardware synthesizers capable of loading large, high-quality soundfonts. This meant that the same MIDI soundtrack could sound vastly different—and better—depending on the user's sound card and their chosen soundfont. This era represented a perfect blend of hardware-accelerated 3D audio and customizable, high-quality MIDI music.

Dolby and Other Encoded Audio Formats

[edit | edit source]

In parallel to the battle over real-time 3D audio APIs on PCs, various audio formats played a complementary role on both computers and home consoles. Unlike the APIs above, these technologies focused on encoding and decoding pre-rendered or compressed audio streams, rather than creating real-time positional effects.

  • Dolby Pro Logic I & II:
 * Technology: Dolby Pro Logic is a matrix-encoding and decoding format. It takes a two-channel stereo signal and, using a special decoder, "unfolds" it to extract multi-channel information for a basic surround sound experience.
 * Function: This was a popular and cost-effective method for home consoles of the era, such as the GameCube and PlayStation 2. Many games used a Pro Logic mix to provide a sense of surround sound without requiring a dedicated multi-channel audio stream. The multi-channel information was "hidden" within the standard stereo audio.
 * Emulation Aspect: For emulators, this can be a key feature, Dolphin can either pass the matrixed stereo signal to a modern receiver for decoding or perform the Pro Logic decoding in software, outputting a discrete multi-channel signal to the user's speakers or headphones.
  • Dolby Digital (AC-3):
 * Technology: Dolby Digital is a discrete, lossy audio compression format that can carry up to six channels (5.1). Each channel is separate and independent, unlike the matrixed channels of Pro Logic.
 * Function: This format became the standard for multi-channel audio on DVDs and was also used by home consoles like the original Xbox and later on the PlayStation 2 and PlayStation 3. It delivered a true, discrete surround sound experience from games and movie content.
 * Integration with PC Gaming: On PCs, a key innovation was Dolby Digital Live, a real-time encoding technology available on some sound cards (e.g., certain Creative Audigy and X-Fi models). This could take the real-time, multi-channel audio from a game (rendered by DirectSound3D or OpenAL) and encode it on the fly into a Dolby Digital stream, which could then be sent over a single S/PDIF (optical/coaxial) cable to a home theater receiver. This was a crucial bridge that allowed PC gamers to get discrete surround sound without needing multiple analog cables.
  • QSound:
 * Technology: Developed by QSound Labs, QSound is a proprietary matrix-encoding technology introduced in 1991, primarily for arcade systems (e.g., Capcom’s CPS-1/2 hardware) and later adapted for consoles and some PC games.
 * Function: QSound creates a 3D audio illusion from stereo speakers by manipulating phase and amplitude to simulate directional sound. It was used in games like Street Fighter II and Darkstalkers to enhance spatial audio without requiring multi-channel setups. On PCs, the QMixer SDK integrated QSound with DirectSound for select ports, offering pseudo-3D effects.
 * Impact: QSound’s influence was strongest in arcades and consoles (e.g., Sega Genesis, PlayStation), but its PC presence was limited, often requiring specific hardware or software decoding. In emulation, QSound’s matrixed stereo can be passed to modern receivers or emulated in software (e.g., via MAME or RetroArch) to recreate its spatial effects, though it’s less critical for PC emulators compared to console-focused ones.

Audio filters and presets

[edit | edit source]

Simulation of characteristic playback limitations and coloration of vintage consumer audio hardware, such as CRT television speakers, arcade cabinets, handheld consoles, early PC sound outputs, and low-fidelity integrated speakers. These filters are not intended to be perfectly accurate recreations, but rather to evoke the tonal qualities, distortion, bandwidth limits, resonance, and compression associated with 8-bit and 16-bit era devices. Examples include mono or narrow stereo output, reduced frequency response, speaker cone distortion, mild saturation, aliasing, and preset lo-fi profiles inspired by classic TVs, portable game systems, radios, and retro multimedia hardware.

MIDI, soundfonts and software synth solutions

[edit | edit source]

Lots of projects out there for simulating these either via software implementation or FPGA solutions.

Here's why using soundfonts and MIDI is beneficial for PC emulators and emulation of sound cards;

useful resources;

Ambient sounds simulation

[edit | edit source]

Many emulators and frontends offer ambient sound simulation to recreate the auditory experience of vintage hardware. These projects simulate the mechanical clicks, whirs, and hums of classic computing, ranging from disk drives to CRT monitors.

Drive and Media Noise

[edit | edit source]

Some emulators, such as FS-UAE or various C64 emulators, feature built-in simulation of mechanical hard drives, tape decks, and floppy diskette drives during emulation.

CRT Monitor Hum

[edit | edit source]

The "Variable CRT Noise" project by ryzenvideous aims to accurately imitate the high-pitched hum produced by real CRT monitors. The pitch and volume dynamically shift based on the brightness and imagery displayed on the simulated monitor.

  • How to get it: It is included in the SDTV Experience Preset pack.
  • Setup Requirement: It is recommended to run your emulator in borderless windowed mode rather than exclusive fullscreen for to function correctly.
  • Note: This preset outputs a high-frequency ~15 kHz sine wave. Both your audio hardware (speakers/headphones) and your own hearing range must be capable of reproducing and perceiving high frequencies to experience it. It is best paired with CRT shaders for a complete retro effect.

Frontends and Boot Beeps

[edit | edit source]
  • Back-Ups Arcade: This frontend includes ambient arcade environment sounds to replicate the atmosphere of a physical arcade cabinet space.
  • Console Boot Beeps: Authentic hardware beep sounds can be downloaded for systems like the PlayStation 3 / PS4 and the Xbox 360 Slim.
    Tip: You can use a tool like `ffplay` (with -af "volume=8" -nodisp -autoexit CLI flags) inside a simple batch script to play these sounds right before launching an emulator to enhance nostalgia and immersion.
  • CRT power button, degaussing sound
    Tip: Highly recommended to use alongside the Variable CRT Noise tool. You can automate the entire sequence with a batch script: first, use ffplay to play the CRT power-on and degauss sound (with -af "volume=8" -nodisp -autoexit CLI flags). Once that finishes, the script will automatically launch the Variable CRT Noise tool alongside your favorite classic emulators.

Future

[edit | edit source]

Better audio filters and simulators

[edit | edit source]

Complementary audio DSP filters are advancing to emulate CRT/TV speakers (e.g., Retro Crisis presets for RF/composite distortion and mono harshness), cabinet resonance, composite distortion, and RF interference for complete sensory immersion, variable CRT flyback whine (Variable CRT Noise tool), ambient mechanical sounds (floppy/drive noises in emulators like 86Box), and MIDI/soundfont/synth emulation... Future work may integrate these more seamlessly or expand to cabinet resonance and era-specific interference.

References

[edit | edit source]