project name:
project url:
author: infinitedigits
description: remotely control norns from the browser
discussion url:
tags: utility


connect. is a norns script, a script library, and a website.

share tapes. use the script to upload or download tapes to

share script saves. individual scripts also can upload/download saves to by going to the SHARE parameter from within a particular script (devs: feel free to ask me for help to add it your script).

listen and visualize. run the script to beam your audio+visual data to<yourname>.

remote control. the website<yourname> has the same inputs as your norns to provide remote access.

collaborate. use the script to connect to other norns via “rooms.” anyone in a “room” shares live audio. the latency is ~4 seconds, so you can imagine that you all are playing together while being socially distanced by a distance of a quarter-mile.

note: the script requires ffmpeg and mpv, which are automatically installed if you use this program (~300 MB).

future directions:



note: if this is the first time running, wait for the mpv and ffmpeg programs to be installed (~300 MB).

beam your norns

norns↔norns audio sharing



how does the streaming work?</summary> norns runs a service that sends screenshot updates to<yourname>. the website at<yourname> sends inputs back to norns. norns listens to to inputs and runs the acceptable ones (adjustable with parameters). if enabled, norns will also stream packets of audio and send those to the website. the website will buffer them and play them so anyone with your address can hear your norns. </details>

how does audio streaming work?</summary> a pre-compiled jack_capture periodically captures the norns output into 2-second flac files into a /dev/shm temp directory. each new flac packet is immediately sent out via websockets and then deleted. because of buffering, expect a lag of at least 4 seconds. when in a room, audio from other norns is piped into your norns via mpv. the incoming audio from other norns is added at the very end of the signal chain so (currently) it cannot be used as input to norns engines. </details>

is secure?</summary>

for,if you are online, you have security through obscurity (weak security). that means that anyone with the url<yourname> can access your norns so you can make <yourname> complicated to be more secure. code injection is not possible, as i took precautions to make sure the inputs are sanitized on the norns so that only enc() and key() and _menu.setmode() functions are available. but, even with these functions someone could reset your norns / make some havoc. if this concerns you, don't share <yourname> with anyone or avoid using this script entirely.


how does sharing work?</summary>

everything you pload to is made public but everything is also authenticated. authentication means that the data you download from someone named “bob” is truly data from the user who registered as “bob” and not someone posing as “bob”. the server does not ensure that “bob” is a good or bad person, but only that the “bob” the server knows is the “bob” that registered with the server. authentication is provided through using rsa key-pairs. the server verifies your data comes from who you say you are by checking the signature on the hash of anything you upload. in theory, other people can obtain your key-pair directly from you to independently verify your data is actually coming from you (so the server need not be trusted), but this is not implemented yet.


how much bandwidth does this use?</summary> if audio is enabled, a fair amount. the norns sends out screenshots periodically, but at the highest fps this is only ~18 kB/s. however, if audio is enabled - the norns sends flac packets periodically (~170 kB/s = ~616 MB/hr). if you are audio-sharing a room you will be receiving about that much for each norns in the room. i tried reducing bandwidth by using lossy audio (ogg) however the gapless audio playback only worked without pops when using flac or wav. </details>

how much cpu does this use?</summary> not too much. on a raspberry pi 3b+ this uses about ~4% total CPU for capturing and sending audio data. screenshots also take cpu and higher fps takes more. the exact fps depends on the max fps (set in params) and how fast the screen changes (only updated screens are sent). at max it might take up to 30% of the cpu (15 fps!), but usually its 1-15%. </details>

how much disk space does this use?</summary> installation requires ffmpeg and mpv which take up about 300MB. other than that, it only takes up space when you download shared script saves and tapes. </details>

my other norns scripts

  • barcode: replays a buffer six times, at different levels & pans & rates & positions, modulated by lfos on every parameter.
  • blndr: a quantized delay with time morphing
  • clcks: a tempo-locked repeater
  • oooooo: digital tape loops
  • piwip: play instruments while instruments play.
  • glitchlets: add glitching to everything.
  • abacus: sampler sequencer.