A rainy Paris café on the command line

Every once in a while I am gripped by an abyssal regret for having misspent my youth in a time and place other than Montmartre in the 1920s. It hardly matters, when wistfulness strikes, that I was born most of a century too late to experience the years of l’entre deux guerres.

A couple years ago, in the ferocious throes of such a mood, I decided to do something about it. No, not time travel. Nor even, in what would have borderline normal, taking next weekend’s flight to Paris.

Instead I decided to construct a virtual Paris café on a rainy day. On the command line. Since, being a proper geek, I’m generally looking at a laptop screen when in most cafés (including the one I’m in right now), the effect is exclusively aural.

To build your own café, you’ll need to grab the sound of a rain storm, a loop of coffee shop ambiance, some appropriate music and play them all the same time.

The first two links are searches rather than files, because at least one of them takes you into some legally dubious territory. But the idea is that you locate the following files:

And here’s a script that uses mplayer to layer these two files with a radio station that plays French jazz:


# Loop rain and coffeeshop ambiance
mplayer RainyMood.mp3 -loop 0 -volume 55 &
mplayer cafeBastille_paris_mp3.mp3 -loop 0 -volume 65 &

# Play appropriate radio station
mplayer -playlist http://listen.jazzradio.com/public3/pariscafe.pls -volume 45

# Stop all mplayer streams when aborting
killall mplayer

(This script should work on Linux & OS X. Sorry Windows people! You can just open all three pages in different tabs and tweak the volume sliders to your liking.)

When your wistfulness has been sated, hit Ctrl/Command+C in your terminal to stop all the streams.

If French jazz is not your thing, you can comment out the radio (line 8) and use your regular player to put on some sad bastard music instead.


For your convenience I’ve put up a gist with the script, including, while the links remain in place, a version that streams all three components.

Update ({{ page.update[0] | date: ‘%e %B %Y’ }})

Since you’ll need wget to use the streaming version, you might as well just grab it like this:

wget https://gist.githubusercontent.com/alehandrof/0f02ae69081efd67f8ad/raw/fe40fb3395e6a9ec7b6811638ddceb9b204c41a1/rainy-paris-cafe-stream.sh; chmod +x rainy-paris-cafe-stream.sh; ./rainy-paris-cafe-stream.sh

App Store here I come.

Did you enjoy this post? Tell me on Twitter or by email.