Flora (v0.3.0-beta: midi-in, l-system editing, flutter & wow)

Flora v0.3.0-beta

an L-systems sequencer and bandpass-filtered sawtooth engine

UI and Controls


e1: next page
k1+e1: select active plant
k1+e2: replace active plant
e3: increase/decrease angle
k2/k3: previous/next generation
k1+k3: reset plants to their original forms and restart their sequences


e1: next/previous page
k1+e1: select active plant
e2: select control
e3: select letter (‘suc’ and ‘axiom’ screens only)
e1 + e3: change control/letter value


e1: next/previous page
k1+e1: select active plant
e2: move up/down
e3: move left/right
k2/k3: zoom out/in
k1+k3: reset plants to their original forms and restart their sequences


e1: next/previous page
k1+e1: select active plant
e2: select control
e3: change control value
k2/k3: remove/add a control point

Plow modulation
(available with the v0.2.0-beta release)
k1+k3: show/hide plow modulation menu
k1+e1: select active plant
k2: select control
k3: change control value


e1: previous page
e2: select control
e3: change control value

Midi-in and out
Midi in and out parameters are set from the PARAMETERS->EDIT menu. As of the v3.0-beta, midi-in notes may be sent to Norns to sequence the Bandsaw SuperCollider engine. If audio is selected as one of the outputs, midi-in notes will play alongside the Flora sequencer.

Flutter and wow
As of the v3.0-beta, flutter and wow may be set for the Bandsaw SuperCollider engine from the PARAMETERS->EDIT menu.

PSET sequencing
As of version v0.2.0-beta, a PSET sequencer has been built into Flora. Controls for the PSET sequencer are accessed from the PARAMETERS->EDIT menu.

See the documentation on GitHub for details.

Community gardening
A community garden is under development to share L-system rulesets written by members of the lines community. See the community gardening documentation on GitHub for details.

Preliminary Roadmap

  • Save modified l-system algorithms.
  • Support sending sysex messages to other midi controllers in addition to the 16n faderbank (currently supported)
  • Community gardening: investigate using norns.online to share plant forms.
  • Improve outputs selection in params menu.
  • Fix intermittent plant freezing bug.
  • Improve the quality and portability of the code.
  • Improve the documentation.
  • Utilize crow inputs.
  • Add option for crow outputs to send triggers instead of envelopes.
  • Add support for w/syn.
  • Create a detailed video walkthrough for the script.
  • (added) Create a PSET sequencer
  • Add microtonal scales.
  • Increase and decrease the brightness of the circles that appear when each note plays according to the level of the note’s graph/envelope.

Suggestions for improvement are welcome.


Norns (required)
Midi, Just Friends, Crow (optional)
Computer (optional for generating custom L-system algorithms)


Press K1+K2 on each screen for basic key/encoder commands.

Complete documentation on GitHub (jaseknighter/flora)



jaseknighter/flora (changelog)

note: if downloading from GitHub directly, rename the default flora-main folder to flora.

Changelog (summary)

v0.1.0-beta (20210131)

  • Envelope and Bandsaw Engine output parameters from the plow and water screens may now be sent to midi, just friends, and crow.
  • New parameters may be used to send midi data to the 16n faderbank on multiple channels via sysex. The new parameters are:
    – plow1:midi cc channel
    – plow2:midi cc channel
    – water: midi cc channel

v0.2.0-beta (20210211)

  • A PSET sequencer. The sequencer’s controls are themselves defined with PSETs, so PSET sequencing can be triggered via midi.
  • The active plant instructions and plant angles may now be saved in PSETS.
  • New probability controls allow the time, level, and curve values for each envelope node to be modulated. The controls may be accessed by pressing k1+k3 on the plow screen as well as from the PARAMETERS menu.
  • Midi is now included in the 4th OUTPUT option.

v0.2.1-beta (20210214)
Fixes a bug with midi.event assignment (mentioned by @ngwese here: Norns: scripting - #56 by ngwese)

v0.2.2-beta (20210215)
Fixes a bug with new PSET names not immediately appearing while MIDI clock is coming in

v0.2.3-beta (20210216)
PSET improvements: plant generation and sentence settings may now be saved in PSETs.

v0.2.4-beta (20210227)
Fix for missing midi note off command.

v0.3.0-beta (20210417)

  • Midi-in control of Flora’s BandSaw bandpass-filtered sawtooth engine (select ‘midi’ from the outputs menu to play without Flora’s build-in sequencer).
  • Modify page now exposes the underlying l-system algorithms for each plant.
  • Wow and flutter the Bandsaw SuperCollider engine (accessed via the PARAMETERS>EDIT>wow & flutter menu).
  • PARAMETERS>EDIT menu cleanup.
  • New default l-system algorithm (plant #3) based on penrose tiling (see https://en.wikipedia.org/wiki/Penrose_tiling)



Awesome! I’d like to better understand how pitches are derived and specified. Does the user select a scale and generated pitches are quantized?

That is correct. Also, see the documentation on GitHub for a bit more info: GitHub - jaseknighter/flora: L-systems sequencer and bandpass filtered sawtooth engine for monome norns

1 Like

my jaw is on the floor


Nice! Also, +1 for Shiffman’s book!


Wow, love it! Cool name also :slight_smile:

1 Like

Wow - looks and sounds amazing. Here’s a first play. Can’t wait to try this with Just Friends


this looks and sounds absolutely amazing!

it reminds me a tiny bit of an idea i submitted on the ideas thread using virus genomes as a string of instructions and the virus structure / shape / graphic as a pathway for things to occur.

but THIS is on a whole other level entirely!!!


holy shit. that demo is deeply compelling and just, staggering. this is beyond. thank you so much for sharing this, for tending and growing it.


This sounds amazing. I’ll definitely be playing around with this tomorrow.

1 Like

I’m charmed by this beauty.
Many many thanks.

1 Like

so i got lost in the noiz of the script for tonight’s session…perfect weather for it here as well…cold and raining…

two instances of Flora with Cheat Codes 2.
some help from a Blippo Box, Wing Pinger and an LXR:

here’s some of the norns in action…:stuck_out_tongue:


this is excellent, thank you :slight_smile:

Sometimes happens that script does not sounds as well as the concept behind BUT here we have a great result! Sounds amazing.
Thank you

1 Like

Crikey if this isn’t the ultimate auto-generator of the stereotypical modular/monome plinky+reverb æsthetic on norns, with appropriately interesting conceptualization, I don’t know what is! Great work!! :seedling:


I had a lot of fun mixing flora’s output with another sequencer to produce interesting twists on a prepared sequence. This script is quite fun to use!

Regarding crow - not sure if I flubbed a setting somewhere or if this is WIP, but I’m only getting one note/gate pair (outputs 1 & 2)? I wasn’t getting any notes from crow’s third output.

Many thanks to everyone for their responses. I am deeply touched.

I just noticed my original post was missing an important UI feature: on the first screen (plant), the key/encoder combination K1+E2 cycles through a list of ten available plants. I’ve edited the post to include the missing feature.

@Gexex, when crow is selected all notes/gates are sent to outputs 1/2. I’m away from my crow today, but I should be able to work on this tomorrow and split the notes/gates so the first plant sends notes/gates to outputs 1/2 and the second plant sends notes/gates to outputs 3/4.


very very cool

note: to make it work i had to rename the default flora-main folder to flora as the includes path was hardcoded to look for that path.

1 Like

Thank you @hypoxic. I added a note to the Download section of the post about this.

Also, the program is now available via maiden’s project manager.


Very fun to explore! Would it be possible and beneficial to add a randomize function?

1 Like