Quintessence

quintessence

v0.0.2 - proof of concept

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.

Requirements

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

Documentation

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.

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.

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; I will be away from my home and my Norns for a week or so starting Saturday, but as soon as I get back I will work on this again.

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

Install

from maiden:

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

Version History

  • 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

75 Likes

Beautiful!

Can’t wait to try it!

3 Likes

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

@NoraCodes
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.
however…
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:

2 Likes

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.

3 Likes

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:

4 Likes

ok…
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:

Summary

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

cleanup

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:

Summary

43

40

38

36

38

40

42

50

49

42

46

55

55

55

51

50

49

36

36

36

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!

2 Likes

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.

6 Likes

Ear candy! The script is freakin great

1 Like