0

I have monitor speakers that go into a sleep state when they don't receive a certain level of sound input. The speakers often turn off when I am watching/listening to something quietly.

To remedy this, I have a crontab set to play a 10Hz wave file every 15 minutes using Sox Play:

*/15 * * * * XDG_RUNTIME_DIR=/run/user/1000 /usr/bin/play -v 1.25 /home/USER/rmas/10Hz.wav

This works much of them time, but I have to be sure to have my system volume up around 40+% and my application volume super low.

This is due to the -v (--volume) option being relative to system volume.

I need a way to do this in an absolute fashion, where the sound is played at 100% (or a user-specified variable) volume without affecting the sound level of anything else.  And I do not want any windows popping up (action should occur completely in the background).

Am I able to do this with Sox? or what is another route I could take?

  • Pop!_OS 22.04 -
  • KRK Rokit 5 Monitors (Gen 2) -
  • Scarlett 2i2 USB Audio Interface routing sound to speakers.
5
  • What does KRK say about this? That sounds like a very bad bug… Commented Dec 12, 2023 at 11:37
  • by the way, have you tried lowering the gain on the speakers themselves, but increasing the gain / output level on your USB audio interface? Commented Dec 12, 2023 at 11:39
  • @MarcusMüller I haven't seen what KRK has to say about this. Possibly some EU power regulations is what I'm seeing. link This guy made a Windows app that does the 10Hz thing. I think it has the same issue with volume level as what I'm doing. I do have the speaker gain down about 1/2 way, I might be able to make it a bit lower and still have the headroom I want. And the volume on the Audio Interface is maxed out. 11/10. Great advice though! You figured that part out way quicker than I did.
    – keenwa
    Commented Dec 13, 2023 at 3:10
  • I don't think the EU mandates speakers to shut off while operating; That just seems kind of a lame excuse by someone with overzealous shutdown in their monitor boxes :) Commented Dec 13, 2023 at 12:03
  • 100% Cheap Truth. Anybody have an idea of how to override system volume for one app in a script, software or otherwise?
    – keenwa
    Commented Dec 14, 2023 at 7:09

1 Answer 1

0

So the problem here is that, by design, your sound system's "system volume" affects all sources of sound, by affecting the gain of after the point all the streams are added up. Can't work around that!


                                    +--- Sound Server---------------+
                                    |                           /----- Firefox
USB Audio Interface <--- ALSA <---- | Mixer for ALSA device XYZ ------ VLC
                                    |                           \----- play
                                    +-------------------------------+
                                        ^^^
                                        Volume adjustment happens here

So, the sensible solution is to make a new virtual device that becomes the default device for all your applications, and simply don't use that for play 10Hz.wav:


                  +--- Sound Server-----------------------------+
                  |                                          /----- Firefox
… <--- ALSA <---- | Mixer for ALSA device XYZ <- Virtual Mixer----- VLC
                  |                           \-------------------- play
                  +---------------------------------------------+
                                                      ^^^
                                        Volume adjustment happens here

You're probably using Pipewire as sound server, so the Pipewire docs have a good explanation of the coupled streams you'll want – it's just a minor configuration tweak.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .