I'd like to programmatically set volume in Windows, Mac and Ubuntu using C/C++. Command line also can but C/C++ preferred. Thank you in advance!
For Windows, use the Windows APIs waveOutSetVolume
and waveOutGetVolume
Just a hint, In windows the 'philosophy' around volume adjustment has changed between XP and Vista/7. Code that would change the master volume on XP will only change the application specific volume setting in the mixer on Vista and 7.
Here is a good blog post by one of the MS audio dev team regarding this: Larry Osterman's Blog
Here are some codeproject pages that might prove useful:
Also, there are a few powerpoint presentations regarding the new api's here: AMP Summit ppts. The Audio Endpoints in Windows Vista presentation has some good info.
As for OsX and Ubuntu, i have no idea.
For Linux using ALSA sound system, you can use following command:
amixer set Master 50%
Here is an article (with code) about setting the master volume in Vista with C/C++: