I have a dumb work related chrome thing, i’d like to make it so that when a certain notification sound plays in chromium, my computer does a few things automatically for me
Does anyone know a good way to make this happen?
I imagine it’d have to be setup like:
when chrome starts playing audio && check if that audio matches soundfile.ogg && myscript.sh, but I don’t know any good cli utilities that could get something like that done, and if there are any better ideas!
I actually want the sound thing because I think it would be cool for automating a lot of different things easily
It wouldn’t be like, optimal in terms of power consumption, but an audio signal in a specific program being recognized by my computer and executing a script is generalizable and useable in many places.
Are you on linux? If you’re using pipewire (or pulseaudio), you can connect the chromium audio pipe to your audio analyzer, analyze the audio, and execute commands on a match. Here’s an example of capturing audio with pipewire. It’s in C, but there’s also a Rust crate.
Maybe gstreamer could make it easier. Audio analysis will probably be some library that you have to search for.
What you’re trying to do is not very straight forward, IMO.
CC BY-NC-SA 4.0
How many audio notifications do you receive? The only ones I get are from the phone.
100+ a day
And also prone to misfires and missed detection
I would be interested in a solution to OP’s specific question. I have a friend who will play a particular annoying meme clip over discord. I would like something that can listen for that clip being played, and immediately disconnect him from the voice channel 😁.
Doesn’t need to be perfect. Misfires are also acceptable.
Not if it’s specified to a single app
My chrome is literally only used for this, as are my other ideas, so, as long as it’s half-decent at one specific sound per app it should work…
in theory
Sure if it doesn’t play any other sound concurrently
In my case it never does
Or at least you think so. Are you sure for example that the trigger sound can not play more than once at a time, before the first one has finished?
And then what if the webpage updates the sound it plays?
Why not just fire the automation if chrome plays sound, like at all?
There are two sounds it makes, they just never overlap
You’re still only explaining the Y problem, not the X one. Want to solve Y? Here you go https://people.csail.mit.edu/hubert/pyaudio/docs/ also prepare to learn a lot about streams and different audio formats, etc. You might have something usable in a few weeks or months depending on how fast you’re able to learn those.
And just so we’re clear, you mentioned chromium, so I’m 99.9% sure that there are easier solutions if you tell is the actual problem you’re trying to solve. There’s a reason no one is providing you with a simple script that does this, i.e. no one has ever needed this, and whenever you’re in a situation where no one has ever needed something before you might be a visionary or you might be missing something that’s obvious for everyone that came before and had the same problem you did.
here you go, if you have a better idea, pitch it:
but so far my solution is to setup dejavu to listen to a sink i’ve named work and then set chrome to play on that sink, and that sink will be setup to forward to my default audio device
https://github.com/worldveil/dejavu
He wants a script to trigger an alarm when he gets a call so he can get away with sleeping