Reputation: 41
I want to create a virtual audio mixer that allows me to route the audio signal coming from any input (recording) device to any output (playback) device.
I.E.: lets say I have 2 virtual input devices (IN-A and IN-B) and 2 output devices (OUT-C and OUT-D), so I want to
Spotify playing to IN-A -> OUT-C
MIC -> OUT-D
Chrome playing to IN-B -> OUT-C
Also, I want to be able to set devices volume or gain, mute a device and monitor signal or volume level in real time.
Question: I dont know even where to start. I'm guessing I will have to go for C++, but I dont know if there is an existing library that allows me to do so. I have been researching and I found portaudio (and others), but before investing more time, I want to know from experst which would be a good starting point to continue my research and POCs development.
NOTE: windows, or any OS native mixer does not cover my needs. I need to achieve this programmatically.
Thanks in advance!
Upvotes: 0
Views: 279
Reputation: 135
Take a look in this wikipedia artice:
https://en.wikipedia.org/wiki/Windows_legacy_audio_components
There are several ways to achieveing this. I personally did not wrote an audio mixer tool, but i did a synthesizer project based on winmm.lib functionality.
If you want low-latency mixer you have to write a software driver, which i would not recommend doing.
Upvotes: 0