microsoft / microsoft/terminal

Replace DirectSound with WASAPI

Open
#14,023 0 comments 2 reactions 0 assignees View on GitHub
Area-Quality Issue-Task Product-Terminal
Dominant language
C++
Stars
105k
Forks
9.6k
Avg merge
3d 17h
Merged PRs (30d)
29

Description

# Description of the new feature/enhancement

Apparently DirectSound is kind of poorly supported since Windows Vista. [Wikipedia](https://en.wikipedia.org/wiki/DirectSound#Windows_Vista/Windows_7):
> Windows Vista features a completely re-written audio stack based on the [Universal Audio Architecture](https://en.wikipedia.org/wiki/Universal_Audio_Architecture). Because of the architectural changes in the redesigned audio stack, a direct path from DirectSound to the audio drivers does not exist.[[8]](https://en.wikipedia.org/wiki/DirectSound#cite_note-8) DirectSound, [DirectMusic](https://en.wikipedia.org/wiki/DirectMusic) and other APIs such as [MME](https://en.wikipedia.org/wiki/MultiMedia_Extensions) are emulated as [WASAPI](https://en.wikipedia.org/wiki/Technical_features_new_to_Windows_Vista#Audio_stack_architecture) Session instances. DirectSound runs in emulation mode on the Microsoft software mixer. The emulator does not have hardware abstraction, so there is no hardware DirectSound acceleration, meaning hardware and software relying on DirectSound acceleration may have degraded performance. It's likely a supposed performance hit might not be noticeable, depending on the application and actual system hardware. In the case of hardware [3D audio effects](https://en.wikipedia.org/wiki/3D_audio_effect) played using DirectSound3D, they will not be playable; this also breaks compatibility with EAX extensions.[[9]](https://en.wikipedia.org/wiki/DirectSound#cite_note-creativeKB25937-9)

# Proposed technical implementation details (optional)

https://docs.microsoft.com/en-us/windows/win32/coreaudio/rendering-a-stream

Contributor guide

Open the contributing guide

Research direction

Start with the Windows Core Audio rendering-a-stream documentation linked in the issue, then locate the terminal's existing DirectSound integration. Confirm the replacement scope and treat equivalent terminal audio output through WASAPI, without DirectSound, as the completion criteria.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
audio-video-rtc, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.