Musical Garden

The Musical Garden is an experiment in making music by planting and tending to a virtual garden.

This web instrument allows you to make music by planting and watering different kinds of “audio seeds” that grow into lush melodies and textures. Watering the seeds causes them to grow both visually and sonically, and distinct areas in the garden cause the plants to behave in different ways.

Composing using this interface is more spacial than linear. Plants emanate sound that you navigate through using the mouse, so moving through the space influences the mix of sounds.

The implementation represents different types of sound using basic geometric forms and generates growth patterns algorithmically using L-Systems — a technique for modeling generational systems. These patterns are at times also used to produce melodies.

The musical garden invites exploration...

Plant Rules

Screenshot of four shapes: circle, square, equilateral triangle and right triangle

Each seed type represents an oscillator waveform: circle = sine, square = square, equilateral triangle = triangle, right triangle = sawtooth. Each type has its own L-System rules for how to grow.

Ground Rules

Each ground area dictates how the plants should play audio. They define which synth the plant should use (incorporating the base oscillator type) and what to do when the plant is watered. They also attach audio effects specific to that area.

Screenshot of musical garden ground showing five distinct areas

Plants growing in the Brown/Purple Circles (bottom left) play melody based on the current L-System Sentence -- `[` means increase the note value and `]` means increase the note value. This means that shorter plants have shorter melodies.

Plants growing in the Blue Squares (middle) each add a note to a sequence played left to right — the note value is determined by the Y position and the time is determined by the X position. Watering increases note duration and modulates the synth.

Plants growing in the Red Diamonds (bottom middle) each loop one note on a random (within a set) interval — this generates polyrhythms between different plants. Watering increases the synths decay time and also randomizes the note.

Each plant in the Brown/Yellow Triangles (right) adds a voice to a chord that changes at random intervals, so all plants in this area are playing one note of the same chord. Watering increases the filter frequency and adds delay once the plant has stopped growing.

Each plant in the Black Squares (The Void) is assigned a random frequency. Watering adds vibrato and placing a plant changes the vibrato rate for the whole area.