Silence of the LAN
Many people remember the old noises from operating systems gone by. The bongos in Ubuntu, the chimes of Windows and Macintosh. They became a part of our lives. The beeps, whirs and clicks of computers created a soundscape that gave them personality. However, as time goes on computers make less noises. This silence brings out the big questions. What would IBM Warp OS/2 sound like if it came out today? Why don’t modern systems have as many chimes and sounds? What does HAL 9000 sound like when it snores, dreaming of electric sheep? Shouldn’t booting up your computer sound grand? Shouldn’t your computer express itself? I recall an IBM 7094 singing the first song of a new age.
Sculpting a Soundscape
I decided my computer needed some more personality. I suppose it’s a sane default to not have the computer beeping away like a deranged vending machine. However, I miss the animated acknowledgement of a startup sound and the utility of an alarm for my timers. So I set to work with some free software. LMMS is a free digital audio workshop with the basic features I needed for this project. I used it to sequence the sounds. Then I mastered the volume with Tenacity. For the sonic motifs I decided to go with an eclectic theme of bongo drums, chimes, 8 bit sounds and a dubstep style talking bass. Ultimately, the soundscape is unique and nostalgic.
Implementing the soundscape
Now that I’ve composed the sounds I need a way for my computer to use them. Introducing ffplay. Ffplay is a GNU/Linux commandline program that comes with ffmpeg. Ffplay is a simple media player based on the ffmpeg libraries that come with most GNU/Linux systems. I use ffplay to automate sounds in shell scripts. Ffplay takes file locations as arguments. Then, to hide the window I use the -nodisp flag and -autoexit flag to close ffplay when the sound is done playing. After that I use the logical operator && to tell the script not to resume until the sound is done playing. For example…sleep 1h &&
ffplay ~/.config/qtile/sounds/notification.ogg -nodisp -autoexit &&
notify-send "time is up" "1 hour";;