6 ms·
Show HN: Jazz up your Python scripts with sound effects
- fredley 6y agoThis will go great with my analogue terminal bell! https://news.ycombinator.com/item?id=24432930 https://news.ycombinator.com/item?id=24432930
- phantomshelby 6y agoLooks super cool : ) always loved old school
- H8crilA 6y agoThis is useful! Imagine running a long ML training script. Hearing a sound in your speakers when it ends (successfuly or not) is something I considered implementing, non ironically, at my job. Never got around to doing it.
- asah 6y agoAnother super easy option: send a slack message on a private channel (one LOC) which turns into a combo desktop and cellphone notification, which you can disable during sleeping hours, flow into zapier/ifttt etc etc etc
- Resinderate 6y agoDo this sometimes on mac, simply with: long_running_command && say "That's all folks"
- jedberg 6y agoMy favorite cron of all time was: 0 17 * * 1-5 say "You're gonna miss the train go now!!" Which I put on my work computer. Since it came out of the speaker most of the time, not only did I not miss the train, but everyone else knew I had to go and respected that.
- gknoy 6y agoI do the same thing with a shell alias called `SUCCESS`: alias SUCCESS='echo -e '\''\n\nSUCCESS'\'' && bash -c '\''mpv ~/bin/kazoo-fanfare.mp3 &'\'' || echo FAILED' # or play sad trombone sound # (some escaping might not survive ...) It's an always too-loud and too-annoying "Tadaa!" style fanfare that is very clearly NOT my music, and I will very frequently use it in the context of `make test && SUCCESS` to monitor long-running test suites while I do other work.
- computronus 6y agoThe built-in `afplay` shell command works for mp3s and for the stock aiff sounds under /System/Library/Sounds. I use this after my long-running Maven builds to play either a happy sound if the build succeeds or a sad (mocking) sound if it fails, based on the value of $?.
- lozf 6y agoLove the idea of checking the exit code! Seems I have some modifications to do. On Linux there's usually `aplay` but you'll need play (sox) or mpv etc. to play lossy-compressed audio... a bunch of sounds can be found under /usr/share/sounds/ depending on what's installed. `espeak-ng` doesn't have as good voices as `say`, but some `festival` ones come close, although these days I usually use Googles tts, and save the ones I use frequently.
- deleted 6y ago[deleted]
- jcelerier 6y agoThere's a whole research field about doing that actually. Here's the reference book on the topic: https://sonification.de/handbook/ https://sonification.de/handbook/ (PDF is on the right menu)
- mac-chaffee 6y agoIf you're using a cloud-based linux server, most of them have "mail": some_long_command | mail -s "Command finished" email@example.com
- encom 6y agoAhem... https://en.wikipedia.org/wiki/Bell_character https://en.wikipedia.org/wiki/Bell_character
- nicbou 6y agoI have an alias called "ding" that plays a sound. Add "; ding" to a command and you're set.
- ketzo 6y agoWow, I love that. Would you mind posting the full alias?
- nicbou 6y agoprintf '\a' or if you want to display a MacOS notification function alert { osascript -e 'display notification "'"$1"'"' }
- this_machine 6y agoI liked this idea so I packaged 'ding' into something you can install[1]. [1] https://github.com/alexdelorenzo/onhold https://github.com/alexdelorenzo/onhold
- joshvm 6y agoThere is a very simple way to tell if an ML script has failed: the GPU fans turn off. No joke. Even with a water cooled machine, I know something has gone wrong if I come back in an hour and the rig is silent.
- stonewareslord 6y agoOn Mac or Linux, I run "tput bel" to the end of expextedly long-running commands. On Mac, the icon bounces and system makes a beep sound. On linux (i3/urxvt), the window and workspace turns red until I focus it. You can usually also type it after the command has started and it’ll still work
- uryga 6y agoi've always used python -c 'print("\a")' without thinking too much about it, but yours is way nicer!
- vimax 6y agoOr for system monitoring. You could have different function play different sounds so the whole program sounds melodic in normal operation. If the melody is off or you hear discordant notes then you know something's up.
- rattray 6y agoAgreed! I played the star wars opening track on the conclusion of a script I wasn't sure would terminate. Very exciting. But turned out to have been triggered on an unexpected error case :(
- saboot 6y agoMy personal approach is a shell script that calls the slack webhook api, so I get a slack message when my job finishes.
- nl 6y agoI put 'say Data Prep phase 1 complete' in my training scripts. It works pretty well, but can be annoying when it goes off in a Zoom call...
- roywiggins 6y ago"No Copyright Infringement Intended" is a meaningless disclaimer. Either the music is public-domain or permissively licensed and you're fine, or it's not and you're probably not. If I were you, I'd try and find something that is Creative Commons, CC0 is best (the most permissive CC license). And then you can say in your disclaimer that the audio is CC licensed, which is ideal.
- joan_kode 6y agoIt's obviously not supposed to be a disclaimer of any legal value, judging from the sentence immediately after your quote: "I might take down these tracks or add more depending on the number of lawsuits I get slapped with". I don't particularly condone this attitude, but at least it's pretty clear. Either you slap him with a lawsuit/DMCA and the tracks will be removed or you don't and they probably won't.
- phantomshelby 6y agoHey OP here, the tracks I used are taken from https://www.youtube.com/user/gamingsoundfx https://www.youtube.com/user/gamingsoundfx which is kinda a royalty-free stock audio library, I realise now that my statement that was funny when I wrote it might come back to haunt me dreams so I am gonna update it, Thanks for letting me know
- skocznymroczny 6y agoI wouldn't describe it as 'royalty-free stock audio library'. It's obvious many sounds aren't free to use, be it rips from games or TV shows.
- devenblake 6y agoThe DMCA process with GitHub and most hosting sites is very straightforward and mostly automatic, I don't see why it would be a problem. With most older works it's nigh impossible to figure out who owns the copyright anyway.
- tubularhells 6y ago
- jedberg 6y agoFYI if you're on a Mac using a Virtualenv, you might need to do 'pip install pyobjc' to get the music to play.
- petargyurov 6y agoI like this. It doesn't take itself seriously and implementing it via decorators is a great choice. Might use it in some hobby scripts!
- harveywi 6y agoFezzik, do you hear that? That is the sound of ultimate suffering.
- griffinkelly 6y agoI have nightmares of the error sounds from Matlab, not sure if I need this in my python anytime soon.
- Fishysoup 6y agoI just discovered I've always wanted this.
- mattgreenrocks 6y agoIn the past, I’ve used the Mac’s text to speech capabilities to help debug async shell prompts. It’s hard to relate but using aural cues as clues to execution paths feels quite different from print-based debugging.
- just-juan-post 6y agoOk that's a seriously awesome idea. It's kinda like sonar: You know what's normal and then listen for the differences? Could you explain in detail or perhaps make a youtube video?
- jerf 6y agoNot the question you asked, but I bet you find this interesting: https://www.computerworld.com/article/2771333/the-history-of-ping---by-terry-slattery.html https://www.computerworld.com/article/2771333/the-history-of... , I'm referencing the part after "The best ping story".
- MalikNotah 6y agoNice!
- canada_dry 6y agoGetting mp3 to play on linux via python for some reason has been a challenge, and I ended up using this abomination: subprocess.Popen(['cvlc','--play-and-exit','/home/me/music/trumpet.mp3']) Going to give your library a try!
- thehappypm 6y agoThis doesn't look like an abomination to me!
- monadic2 6y agoThis is violence.
- mixmastamyk 6y agoReminds me of a similar but slightly more direct module I wrote named boombox: https://pypi.org/project/boombox/ https://pypi.org/project/boombox/
- deleted 6y ago[deleted]
- byteface 6y agogreat. now to add benny hill theme to all bulid scripts... https://www.youtube.com/watch?v=MK6TXMsvgQg https://www.youtube.com/watch?v=MK6TXMsvgQg