Flora v0.2.2-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: go to next/previous letter
e3: change letter
k2/k3: remove/add a letter
k1+k3: reset plants to their original forms and restart their sequences

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

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

  • Improve the quality and portability of the code.
  • Improve the documentation.
  • Fix bugs introduced with the v0.2.0 release:
    • PSET names do not not immediately appear while MIDI clock is coming in
    • Selecting PSET with the ‘load pset’ param doesn’t change from the number 1 when first saving PSETs
    • Changing the PSET with the ‘load pset’ param should load the complete state of the plants (not just instruction # and angle)
  • (done) Create an option with all the outputs (Audio, Midi, JF, and crow)
  • Add support for w/syn.
  • (added) Create a PSET sequencer
  • (done) Make additional Bandsaw engine and envelope variables available for Crow, Just Friends, and Midi outputs.
  • Add microtonal scales.
  • (done) Add a global setting to bypass the midi_note_off delay
  • (added) Setup parameters for plant and plow (envelope) settings so they can be saved and loaded via PSETs.
  • (added) Add modulation and probability controls for envelopes.
  • 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

Acknowledgements

131 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

7 Likes

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

1 Like

Wow, love it! Cool name also :slight_smile:

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:

3 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.

7 Likes

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

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

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