Flora (v0.2.4-beta: midi note off bug fix)

Flora v0.2.4-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.
  • Add option for crow outputs to send triggers instead of envelops.
  • 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.
  • Create a detailed video walkthrough for the script.
  • (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

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.

Acknowledgements

135 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