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

Plant


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

Modify


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

Observe


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

Plow


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

Water


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.

Requirements

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

Documentation

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

Complete documentation on GitHub (jaseknighter/flora)

Download

https://github.com/jaseknighter/flora/archive/main.zip

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)

Acknowledgements

137 Likes

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

8 Likes

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

2 Likes

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

5 Likes

HOLY FRACKEN WOW!!!
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!!!
WOW!
:open_mouth:

4 Likes

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.

8 Likes

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:
https://www.instagram.com/p/CJ29FAVpxmt/?utm_source=ig_web_copy_link

11 Likes

this is excellent, thank you :slight_smile:

Wow!
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:

2 Likes

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.

6 Likes

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.

3 Likes

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

1 Like