flora

Flora v1.3.7 (midi note quantization bug fix)

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

NEW: crow

As of v1.1.1, crow input 2 may be used to set the note scalar parameter for greater pitch variation. crow input 2 is enabled from the process crow in1 parameter in the crow sub-menu. the note scalar parameter is found on the water page as well as in the water parameters sub-menu.

As of the v0.4.0-beta, crow outputs 2 and 4 may be set individually to send envelopes, triggers, or gates. The trigger length is 5ms by default, but may be updated using the crow_trigger_2 and crow_trigger_2 variables set in /lib/globals.lua. When setting gates, the length of the gate is set by the value of env length on the plow (env) screen.

In addition, this release gives each plant its own default envelope shape, set by the constant variables DEFAULT_GRAPH_NODES_P1 and DEFAULT_GRAPH_NODES_P2 (defined in flora/lib/globals.lua).

W/ Integration

As of v0.4.0, Flora provides I2C integration via crow with Whimsical Raps’ W/2 eurorack module. All three modes, W/Tape, W/Syn, and W/Del, are supported.

Flora’s integration with W/2 is accessed via the PARAMETERS>EDIT menu. Prior to utilizing the parameters for a particular W/2 mode, W/2 must first be put into that mode. See the W/2 documentation on the lines forum for mode switching instructions.

W/Syn sequencing

W/Syn can be sequenced with Flora by setting the wsyn parameter in the parameters>edit>w/syn submenu. When setting the wsyn parameter to plants or plants + midi, each of Flora’s plant sequences is sent to a separate W/Syn voice.

Karplus-Strong sequencing

W/Del supports Karplus-Strong style string synthesis, which can be sequenced with Flora by setting the Karplus-Strong parameter in the parameters>edit>w/del submenu.

Integration with other norns scripts

Flora’s code to integrate with W/2 may be relatively easily dropped into other norns scripts. See the documentation on GitHub for details.

Community gardening

As of Flora v0.4.0, a community gardening feature has been added, which leverages norns.online to allow custom plant shapes (i.e. sequences) to be shared with other Flora users through the norns’ UI.

To take advantage of the community gardening feature, install Flora v0.4.0 or later as well as the norns.online script.

Once Flora v0.4.0 (or later) and norns.online have been installed, the community gardening features may be accessed from the Gardening section at the bottom of the PARAMATERS>EDIT menu as follows:

Steps to share a plant shape with the community

  1. Save plant to nursery: locally saves the active plant shape to the norns’ filesystem (in data/flora/nursery/)

  2. Select the Community gardening submenu

  3. Select refresh directory

  4. Select upload from nursery and choose a plant

  5. Choose the plant you saved to your nursery in step 1 above

Steps to get a plant shape from the community garden

  1. Select the Community gardening submenu

  2. Select refresh directory

  3. Select download to nursery and choose a plant

  4. Exit the Community gardening submenu

  5. Select Add plant to garden and choose the plant you downloaded from the community gardens

Note, selecting a plant to be added to your local ‘garden’ will append it to the of the list of selectable plants found on the plant screen. On this screen, use K1+E2 to select the plant. By default there are 11 plants, so the first plant added to the garden will be shown as plant i12, the second plant will be shown as plant i13, and so on.

Additional gardening features

  • Remove plant from nursery: locally removes a selected plant shape previously saved to the norns’ filesystem. Note, this cannot be undone as the plant definition is removed from the local filesystem.

  • Remove plant from garden: removes a plant from the garden. Note, removing a plant from the garden does not remove it from the nursery (that is, the plant definition remains on the local filesystem).

Flutter and wow

As of the v0.3.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.

Plant generation sequencing

As of version v1.3.2, a plant generation sequencer has been built into Flora. Controls work the same as for the PSET sequencer annd are accessed from the PARAMETERS->EDIT menu.

Midi

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

As of v1.3.5, midi stop/start messages may be used to stop and start the plant sequences.

As of v1.3.6 notes sent to the script via midi are now quantized. this featuret is turned on by default. to turn it off, there is a new parameter found in the ‘midi’ submenu under ‘inputs/outputs’ called ‘quantize midi.’

Preliminary Roadmap

  • (Done) Fix crow clock out.

  • (Done) Save modified l-system algorithms.

  • (Done) Community gardening: investigate using norns.online to share plant forms.

  • (Done) Improve outputs selection in params menu.

  • (Done) Fix intermittent plant freezing bug.

  • Support sending sysex messages to other midi controllers in addition to the 16n faderbank (currently supported)

  • Improve the quality and portability of the code.

  • Improve the documentation.

  • Utilize crow inputs.

  • (Done) Add option for crow outputs to send triggers and gates in addition to envelopes.

  • (Done) Add support for w/syn, w/tape, and w/del.

  • Create a detailed video walkthrough for the script.

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

  • Investigate infrequent error message when upgrading: update failed: worktree contains unstaged changes

Suggestions for improvement are welcome.

Requirements

norns (required)

norns.online (for community gardening)

Midi, Just Friends, crow, W/2 (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)

Changelog

Acknowledgements

167 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

9 Likes

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

3 Likes

Wow, love it! Cool name also :slight_smile:

2 Likes

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

6 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:

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

9 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