Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Jazz up your Python scripts with sound effects (github.com)
162 points by phantomshelby 4 days ago | hide | past | favorite | 45 comments

"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.

It'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.

Hey OP here, the tracks I used are taken from 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

I 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.

The 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.

> Either the music is public-domain or permissively licensed and you're fine, or it's not and you're probably not.

If only copyright were actually that simple. The music might be, and the performance not, or vice versa. Maybe the rights were assumed to be public domain, and then a company discovers the rights in their vault. Maybe the license is permissive, but one of the many people involved never agreed to it, and that means that it retroactively isn't licensed permissively.

All of the above have happened before.

Regardless of intent, infringement happens. Someone making the above statement seems to think “infringement” means “plagiarism.” Also, a DMCA takedown request isn’t “being slapped with a lawsuit.”

Using language that makes one amenable to takedown requests might be fine. But it’s no defense for infringing on others’ copyrights by posting their IP without a license.

OP, take parent comment’s advice and find some appropriately licensed music.

Made me remember the wild homemade sound effects on 90s shareware games


Which laws are okay to break for the sake of a joke and which aren't?

This 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.

On 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

i've always used

  python -c 'print("\a")'
without thinking too much about it, but yours is way nicer!

Do this sometimes on mac, simply with:

  long_running_command && say "That's all folks"

My 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.

The 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 $?.

Love 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.

I 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.

There 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.

There's a whole research field about doing that actually.

Here's the reference book on the topic: https://sonification.de/handbook/ (PDF is on the right menu)

Another 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

I have an alias called "ding" that plays a sound. Add "; ding" to a command and you're set.

Wow, I love that. Would you mind posting the full alias?

I liked this idea so I packaged 'ding' into something you can install[1].

[1] https://github.com/alexdelorenzo/onhold

    printf '\a'
or if you want to display a MacOS notification

    function alert {
        osascript -e 'display notification "'"$1"'"'

Or 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.

Agreed! 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 :(

If you're using a cloud-based linux server, most of them have "mail":

    some_long_command | mail -s "Command finished" email@example.com

I 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...

My personal approach is a shell script that calls the slack webhook api, so I get a slack message when my job finishes.

I like this. It doesn't take itself seriously and implementing it via decorators is a great choice. Might use it in some hobby scripts!

This will go great with my analogue terminal bell! https://news.ycombinator.com/item?id=24432930

Looks super cool : ) always loved old school

In 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.

Ok 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?

Not the question you asked, but I bet you find this interesting: https://www.computerworld.com/article/2771333/the-history-of... , I'm referencing the part after "The best ping story".

Getting mp3 to play on linux via python for some reason has been a challenge, and I ended up using this abomination:

Going to give your library a try!

This doesn't look like an abomination to me!

FYI if you're on a Mac using a Virtualenv, you might need to do 'pip install pyobjc' to get the music to play.

Reminds me of a similar but slightly more direct module I wrote named boombox:


great. now to add benny hill theme to all bulid scripts... https://www.youtube.com/watch?v=MK6TXMsvgQg

Fezzik, do you hear that? That is the sound of ultimate suffering.

I just discovered I've always wanted this.

I have nightmares of the error sounds from Matlab, not sure if I need this in my python anytime soon.

This is violence.

Applications are open for YC Winter 2021

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact