I propose to add sound split command to NVDA. As usual, I will implement this myself if approved.
Description
NVDA+Alt+S would toggle sound split. In sound split mode NVDA speech and beeps will be heard in one channel (say left), while sounds from all other applications will be heard in the other channel (right).
- I will also add a checkbox setting in Audio panel to allow users to toggle sound split from settings dialog.
- I will also add a new setting in Audio panel to allow users to select which channel NVDA will be redirected to and which channel will be for all other apps
Prior context.
@CyrilleB79 pointed out that this is a duplicate of #12985, but I would like to check that my implementation plan is OK with NVAccess before implementing this.
Prior discussion: #16037
Technical details
Two things I'd like NVAccess to be aware of:
- Sound Splitting can be achieved using wasapi by adjusting the volume of all running applications and setting left volume to zero, while setting NVDA right volume to zero (or vice versa). So I will need to call wasapi COM objects. I would need to implement interfaces in Python for these objects. I am not very familiar with Python interoperability with COM, and I haven't found a way to automatically generate Python stubs for COM interfaces, so I propose to copy relevant interfaces from PyCaw library. The library is published under a permissive MIT license and based on Google v. Oracle case a couple of years ago - APIs are not copyrightable. An alternative solution could be including PyCaw library as a dependency, but I personally think this would be an overkill.
- In order for sound split to work properly, we would need to monitor audio sessions and if new audio sessions appear, we'd need to adjust their volume. I propose to create a new thread for that. The thread would be checking all audio sessions every second and adjust volume of new ones.
I propose to add sound split command to NVDA. As usual, I will implement this myself if approved.
Description
NVDA+Alt+Swould toggle sound split. In sound split mode NVDA speech and beeps will be heard in one channel (say left), while sounds from all other applications will be heard in the other channel (right).Prior context.
@CyrilleB79 pointed out that this is a duplicate of #12985, but I would like to check that my implementation plan is OK with NVAccess before implementing this.
Prior discussion: #16037
Technical details
Two things I'd like NVAccess to be aware of: