microsoft / microsoft/terminal
Replace DirectSound with WASAPI
- 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
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