Keep a random sound of the day on norns.

A waveform of a camera shutter sound


A little utility which, if it works lol, keeps the random sample of the day on norns under dust/audio/freesoundoftheday. Old samples are deleted, so only the daily sample is kept in there for bringing into a project for fun and inspiration :seedling:

Shoutout to anyone who is using moving targets for inspiration such as randomized presets, weekly challenges etc. Plus also shoutout to people posting stuff about Lua and systemd on StackOverflow lol. A personal little one-day project, maybe it even works. Feedback, contributions welcome of course.


  • norns
  • Internet connection


This is kind of “advanced” in the sense that this assumes some familiarity with the operating system side of things on norns, the commandline etc GNU/Linux things. Maybe in the future this could be somehow turned to one of those “mods”, with design help/review from someone:

This is kind of running outside of the norns on the underlying platform as a systemd service. The README has installation instructions but basically, on the command line

  1. Install the software with ;install or clone the repo
  2. Install systemd service sudo ln -s /home/dust/code/freesoundoftheday/lib/freesoundoftheday.service /etc/systemd/system
  3. Finally sudo systemctl daemon-reload or restart norns.

You can use the command systemctl status freesoundoftheday to see information what this script has been doing lately.



amazing idea for a script :slight_smile: Love this kind of esoteric random connection-to-the-outside-universe thing in digital instruments

(hmmm… would it be possible to make a websdr client for Norns…!?)

(also a script to download a random cc0 freesound file on request would suit my workflow :slight_smile: )


Yeah “sound computer”, ie norns, is a great provocation :wink:

This wouldn’t be hard to expand to a random file on request and I considered it, but deliberately wanted to stick to the “slow down” inspiration of the daily rhythm of the random Freesound, to resist “punch a button until goodness arrives”… a kind of inspiration/material as a scarce resource to appreciate and stay with.

One thing i looked at and might do something about is the geotagging on Freesound :earth_africa::earth_asia::earth_americas::luggage:

(Currently a crunchy carpet of processed and abstracted camera shutter sounds in the background while winding down after a full day of programming and reading Maria Puig de la Bellacasa’s Nothing comes without its world. Thinking with care (The Sociological Review, 2012) for tomorrow’s reading group)


this stuff goes in maiden? I tried and got

lua: attempt to call a string value
stack traceback:

EDIT: oh wait i guess i SSH in and do it in the terminal…?
…nope that doesn’t work either,

@xmacex …i have no idea what i am doing (~___~:)>


It is I who don’t have an idea what I’m doing! I’m pushing the limits of what i can do with Lua, and what a “musical instrument” is… well of course following the path laid out by the wonderful monome folks and the community. Thanks for your interest in this contraption.

Anyhow, yes this stuff goes into that command line over SSH, that’s the right place. Did you get an error message? I :smiling_face_with_three_hearts: error messages.

1 Like

just got “sudo: luarocks: command not found”

Ah, thanks that makes me think i must have installed luarocks on my own in the past and didn’t include it in the installation instructions… super thanks for the feedback, I’m updating the installation instructions ASAP.

PS bummer today surfaced a bug: there are spaces in the name of today’s sound. I’ll see it fixed when i have the chance.


mainly: nice little script! love it.

just a thought: we don’t ship luarocks for Reasons. use it by all means if you know what you are doing. but it can pull in an arbitrary number of dependencies. for packages with binary components things can either just be broken or quickly get out of hand as the package manager attempts to install toolchains and build the modules etc.

so for a tiny dependency like lunajson i would recommend just including it in your script’s lib. (could be a submodule if you like.)

somewhat tangentially i would also recommend using luarocks with --local or --tree, esp. if you are automating or suggesting that step, so that sudo is not required. (we’d really like to eliminate all uses of sudo on norns someday.)


Much appreciated, thanks. I totally understand avoiding dependencies and support your efforts, and relating to norns as a *nix machine, basically the internet in a microcosm, is a troubling suggestion esp in communities where people relate to them otherwise. I was hesitating about publishing this thing, actually. Staying away from it is good product ownership/design on monome’s part, I think.

Anyway, i’ll see if i will manage to refactor that JSON parsing to goode old pattern matching from a string since the case is pretty simple. I didn’t think of storing local libs, that’s also a great idea.

1 Like

Check out how thirtythree pulls in a local cjson, this might be exactly what you want. (This link to a PR with a slight fix, but still). These few lines to add the path, and then get the file from thirtythree/lib/

1 Like

Refactored to ship with Lunajson, hopefully simplifying the installation procedure and decoupling from Luarocks. Maybe it worked :sweat: thanks for nudge everyone.

Today’s sound is

Without a doubt cheesy, but good material for sample mangling with Cheat Codes 2.

PS is anyone doing unit tests with Lua?


I’ll give this a swing!

Edit. Having trouble getting this running. Dropped ;install via maiden and sudo ln -s /home/dust/code/freesoundoftheday/lib/freesoundoftheday.service /etc/systemd/system via SSH. I can see five folders listed in the select menu but I can find the file folder at dust/audio/freesoundoftheday. (restarted a few times) and made a directory freesoundoftheday to the folder but it remains empty.

View to terminal
~ $ sudo ln -s /home/dust/code/freesoundoftheday/lib/freesoundoftheday.service /etc/systemd/system
ln: failed to create symbolic link '/etc/systemd/system/freesoundoftheday.service': File exists
~ $ systemctl status freesoundoftheday
Unit freesoundoftheday.service could not be found.

I’m digging the concept thou! Perhaps you know of CTAG Str?mpler already. Feels like a fun reference.