project name: bloom
project url:
author: infinitedigits
description: recreation of Eno and Chilvers' 'bloom' app
discussion url:
documentation url:
tags: generative midi grid crow


a loving reimaginging of the “bloom” app, adapted for norns and SuperCollider.


this script aims to replicate the “bloom” app by Brian Eno and Peter Chilvers that was released in 2008. the major functionality persists: clicking on the grid / screen will create circles and sounds that grow and disappear. multiple touches will create sequences that also eventually fade away. the sounds belong to scales with alien names like “ambrette”, “benzoin”, “bergamot”, “labdanum”, “neroli”, “orris”, “tolu”, “vetiver”, and “ylang” - all which were painstakingly captured from the original app (PARAMS > scale). also, like the app, the norns script has an “evolve when idle” function (PARAMS > evolve when idle), and toggles for randomization (PARAMS > randomize).

there are major differences between the “bloom” app and the “bloom” norns script. its difficult to obtain 100% the same sounds of the app so I did my best with my synthesis knowledge to create a similar sounds with SuperCollider. the sounds I have are a bell-like feedback sine sound which can be mixed with a kalimba sample (swapping between acoustic and synthetic) (PARAMS > blend). the drone notes are taken from the scale, as in the app, but the switching between drones is not precisely the same.

another change is the introduction of “lanes” (PARAMS > lanes). this essentially splits the grid into multiple lanes where each lane is a separate sequencer. by default there is one lane, but you can have one lane for each row on your grid.



to get started - just click K3 to generate a random pattern. on the grid you can select specific notes.

in the parameters there are also options for outputs (midi, crow), sound design parameters, and parameters for generating/randomizing/evolving as per the original app.


without a norns, you can also run bloom with SuperCollider + a grid. just open ignore/runWithGrid.scd and follow the instructions and run.


massive thanks to @instantjuggler for supporting me in creating this and constantly inspiring!

also thanks to @tlubke and @catfact for the overhaul of the screen. this is my first script utilizing the refresh() which was fantastic for implementing the screen redraw without a clock.


you can install through maiden: