1

I'm using both Windows and Ubuntu, so a solution for either (or both!) would be great!


I live in an apartment complex, and love to listen to bassy music and watch movies. My neighbors are fine with this during the day, but not at night. Is there a program that will automatically lower just my subwoofer's volume at night (or transition between equalizer settings at certain times of day), in much the same way f.lux manages my displays' white points?

Ky -
  • 971
  • 4
  • 12
  • 29
  • How are the speakers connected to your system? Are they even capable of being controlled by software? – Karan Apr 26 '15 at 01:39
  • @Karan through 3 3-pole 3.5mm audio ports on the motherboard. The default drivers easily separate each speaker, so I'm currently manually turning down the subwoofer at night. http://i.imgur.com/NYdxpXP.png – Ky - Apr 26 '15 at 01:47

1 Answers1

2
  1. Download NirCmd (it's portable).

  2. On the Control Panel > Sound > Playback tab check what your default playback device is called. By default it is "Speakers", but in your case it seems to be "5.1 Speakers" (you can always rename it on the General tab of the device's Properties page).

  3. Right-click the default playback device, click on Properties, then go to the Levels tab and check what you specifically want to control the volume of. In your case it is "Subwoofer":

    1

  4. See if the setsubunitvolumedb command works:

    nircmd setsubunitvolumedb "5.1 Speakers" "Subwoofer" -10
    

    setsubunitvolumedb [Device Name] [Subunit Name] [Decibel Value]

    Set the sound volume (in Decibels) of sound device subunit.

    The [Device Name] is the name of the device, as appeared in the sound devices list of windows. In most cases the device name is 'Speakers'.

    The [Subunit Name] is the name of a subunit, as appeared in the 'Level' tab of the device properties window. Examples for subunit name: Phone Line, Microphone, Internal MIC, Line In, and so on...

  5. If it does, you can simply create a couple of shortcuts to NirCmd.exe (for increasing and decreasing volume) with the appropriate parameters added to the Target fields. You can also create a couple of scheduled tasks that run NirCmd.exe automatically with the appropriate parameters twice a day - once in the morning to increase and again in the evening to decrease the volume.


Edit: Ok, this should work no matter what sound card you have.

  1. Download SoundVolumeView (it's portable too).

    2

  2. Set the volume levels you want for morning and save them to a profile named (for example) Morning_Profile.spr. Similarly create an Evening_Profile.spr with the required volume levels for each sound component.

  3. Now you can use SoundVolumeView /LoadProfile [Filename] to load the profile you want (create shortcuts or scheduled tasks as required).

  4. You can also directly set the volume of the subwoofer using SoundVolumeView /SetVolume [Name or Item ID] [Volume]. Name or Item ID for the subwoofer can be noted from the respective columns in the program, and Volume is a number between 0 and 100.

Karan
  • 55,947
  • 20
  • 119
  • 191
  • Also see [mutesubunitvolume](http://nircmd.nirsoft.net/mutesubunitvolume.html). – Karan Apr 26 '15 at 02:58
  • The command you quoted isn't changing the volume level. Also, nothing is output, so I don't know if something went wrong. I'm feeling a message was sent nowhere. – Ky - Apr 26 '15 at 03:09
  • So the subwoofer volume didn't change at all? If you change the device name from "5.1 Speakers" to just "Speakers" and also the command accordingly, does that help? Otherwise NirCmd may just not be able to interface with the speaker-specific volume sliders that the driver displays. – Karan Apr 26 '15 at 03:14
  • Changing the name and command did not work; the outcome is the same. – Ky - Apr 26 '15 at 03:16
  • Then possibly the only way to automate this will be to create a complex AutoHotkey script. :( Edit: If you use Process Monitor while changing the subwoofer's volume, can you figure out which registry key the setting is saved to? – Karan Apr 26 '15 at 03:22
  • I'm sure other/custom drivers would be a much better solution, especially since such a script would do terrible things, such as interrupt video playback, catch my actual keystrokes, fail due to assumed circumstances or poor timing, etc. – Ky - Apr 26 '15 at 03:24
  • Can you post a screenshot of what `nircmd showsounddevices` shows? – Karan Apr 26 '15 at 03:28
  • http://i.imgur.com/cOFjgID.png – Ky - Apr 26 '15 at 15:46
  • See if the edit above helps you. – Karan May 04 '15 at 20:08
  • How do I automate that so it applies the profiles every morning and evening? Also, when I right-click Subwoofer and click mute, nothing actually happens aside from the icons changing. – Ky - Jun 21 '15 at 18:09
  • Just create a scheduled task that invokes `SoundVolumeView /LoadProfile [Filename]` at the time you want. Regarding muting the subwoofer, if that doesn't work with your setup for some reason then just save a profile with the subwoofer volume set to 0. – Karan Jun 22 '15 at 13:19