v0.1.0 - beta quality

outmoded cosmology in the service of composition

a norns shield running quintessence

quintessence simulates a set of three bodies in orbit around a single unmoving point, in perfect circles, advancing in accordance with the tempo. Melodic information is derived from the relative positions of these bodies.


  • Norns
  • PolyPerc engine (from we)
  • a MIDI output


quintessence’s functionality is organized into six screens. Presently, only the first two are populated. the rest will be updated over time.

1: MODEL displays the three bodies in their orbits. Lines are drawn between the three bodies, forming a triangle. These lines brighten and produce triggers when at extreme points (closest or furthest approach).

2: PARAM displays the same data in numerical format. K2 pauses their progress, and K3 resets the epoch. E2 cycles through the 3 radii, then the 3 starting phases, and E3 adjusts the selected parameters.

3: MODS displays modulation destinations and the values being sent to them. This is mostly a way for users to debug their configurations; you need to change mod parameters in the params menu of Norns.

Because the three bodies are in perfectly circular orbits, their positions are completely determined by their distance from the star (which is inversely proportional to their orbital speed), their starting phase (where on the orbit they were at time zero), and the current simulation time.

Setting the radii determines the structure of the melody; the relative phases determine the exact notes.

quintessence computes the maximum area of a triangle that could be produced by the three bodies and compares the actual area given by their present positions to that hypothetical maximum to generate a percentage value. that value is then scaled according to two parameters (presently only available in the Norns parameters menu) to produce notes across one or more octaves.

When any two bodies are at their closest or furthest extent, a MIDI NOTE ON message is generated with the current note value on every 1/16th note. Thus, one or more bodies orbiting at short radii will generate many short spans of notes, while bodies orbiting close together at large radii will generate long arpeggios.

PolyPerc engine parameters and modulation destinations and amounts can be set in the Norns parameters menu. Distances (between AB, BC, and CA) can modulate panning, filter cutoff, and pulse width, and for those three parameters, your engine settings are used as offsets for the modulation parameters.

This is a proof of concept related to the idea I shared here. I plan to add customizable triggers, quantization, and some other parameters in the future. Please DO suggest changes, enhancements, and nice-to-haves in this thread.

Suggested Ratios

  • 3:6:9 for a relatively simple, repetitive sequence
  • 3:11:22, 3:7:21, etc for simple but longer sequences
  • 7:17:31 and other relatively prime ratios for long, complex, sparse sequences


from maiden:

;install https://github.com/NoraCodes/quintessence

Version History

  • v0.1.0: engine parameters and modulation matrix
  • v0.0.3: load param defaults and load passthrough if not already loaded.
  • v0.0.2: output via PolyPerc. MIDI transport and clock. better organization.
  • v0.0.1: initial PoC. MIDI only.

See Also

@yaw’s wonderful orbital quadrature sequencer



Can’t wait to try it!


lovely idea!

thank you @NoraCodes

1 Like

Thank you, I hope you enjoy. I’d love to hear your thoughts on improvements I could make in the future.

1 Like

20 characters of Voltron???

1 Like

I’m afraid I’ve never seen it - maybe I should!

1 Like

Oh sorry! The newest reboot is all about the Quintessence. It is pretty darn good and really picks up in season 2. On Netflix in the US.

1 Like

hey ya!
looks cool…but…all i got was an error code saying missing PolySub.

i quit out of the script and tried to re-load…it doesn’t give me an error and it doesn’t run the script.

if i clear the script and restart from SLEEP…it just errors again.
if i leave the script loaded and restart from SLEEP it runs!
very weird.

1 Like

Looks SICK! :heart_eyes: Would it be possible to add an option to use one of synth engines? This way one could sketch some sequences without any external gear :star_struck:


That’s really very odd! Could you look at Maiden and tell me what the error message is? Thanks a ton!

Thanks!! That’s a very good idea; if I can get some time today I’ll bang out a basic implementation on PolySub.


U da best. Thanks! :nerd_face:

1 Like

Sorry … I can’t seem to install this from Maiden. I’m getting the following error:

install GitHub - NoraCodes/quintessence: outmoded cosmology in the service of composition

lua: attempt to call a string value

stack traceback

I’ve admittedly never installed anything outside of the community browser in Maiden so I’m probably doing something wrong.

are you placing a semi-colon before the install command?

it should be ;install github_link_here

Yes. But I’m not sure I’m typing it in the right spot. I’m just dropping it into the command line at the bottom of the screen.

1 Like

that sounds like the place :slight_smile:

gets me…

I wanted to avoid putting it in the community browser just yet, since it’s not really in a presentable state from a software engineering point of view, but I can do that if it would make things easier!

1 Like

No rush … I think I can get it sorted. Don’t post it unless you’re ready!

Edit: Got it working.

Edit - Edit: Is there a way to adjust orbital period of each body? Does mass factor into this in any way? I have a peculiar interest as I have a degree in physics. :slight_smile:


i was able to get a bit of info from maiden but…it would kill the connection when i did a restart from sleep and i wasn’t able to catch any errors after it would restart and load.

this is the error info i get when it complains about PolySub missing:


script load: /home/we/dust/code/quintessence/quintessence.lua


script clear

including /home/we/dust/code/quintessence/lib/phys_state.lua

including /home/we/dust/code/quintessence/lib/body.lua

including /home/we/dust/code/quintessence/lib/util.lua

script run

loading engine: PolySub

SCRIPT ERROR: missing PolySub

reading PMAP /home/we/dust/data/quintessence/quintessence.pmap

m.read: /home/we/dust/data/quintessence/quintessence.pmap not read.

after restart and the script was auto loaded and running it would just spit out numbers into maiden like this:






















besides all that though…
once it was working last night i was able to delve into a noiz session with it! :stuck_out_tongue:
it’s controlling a Virus B.
also helping was OOOOOO and Cheat Codes 2 along with some other noiz weaponry.

really looking forward to the other features you may be adding to the script!


Thanks! I still have no idea what the issue is with missing the engine, but the numbers it’s spitting out are actually a debug printout of the MIDI notes being generated. Thanks for posting that jam, really cool stuff.

I finally found my little usb-C audio interface and recorded a quick jam with, take a shot, Plaits, Rings, and Clouds.

In other news, I didn’t and won’t have time to work on the script before I leave, so I’m going to bring my Norns and perhaps work on it in San Diego.


Ear candy! The script is freakin great

1 Like