0 %

Nodes

Rhythm nodes

Nodes for building, transforming, and combining rhythmic structures — from simple tuplets to deeply nested rhythm trees and stochastic rest insertion.

NodeInputsOutputsDescription
Rhythm Tree list tree structure
number time-signature (default: 4/4)
rhythm-tree The core rhythm node. Defines a nested proportional rhythm structure where each level subdivides its parent proportionally. For example, (1 (1 2 1)) divides a beat into three parts with durations in ratio 1:2:1. Negative values indicate rests. Supports arbitrary nesting depth for complex metric subdivisions.
Tuplet Tree number tuplet-type (default: 3)
number beats (default: 1)
number measures (default: 1)
rhythm-tree Generates a pre-built rhythm tree for a standard tuplet division, using MusicXML-compatible notation. Specify the tuplet type (3 for triplet, 5 for quintuplet, etc.) and how many beats and measures to fill.
Subdivide rhythm-tree tree
number beat-index
list divisions
rhythm-tree Subdivides a specific beat within an existing rhythm tree. Targets a beat by its index and replaces it with a new set of proportional divisions. Use this to add rhythmic complexity to particular moments within a larger structure.
Tuplet number n (default: 3)
number in-space-of (default: 2)
rhythm-tree Creates a simple tuplet: n equal notes in the space of a given number of regular notes. A triplet is 3-in-2; a quintuplet is 5-in-4. The simplest way to introduce irregular subdivisions.
Mixed Tuplet list divisions
number in-space-of (default: 2)
rhythm-tree Combines regular and tuplet divisions within a single beat group. The divisions list can contain both simple integers (regular subdivisions) and nested tuplet specifications, producing rhythms that mix binary and ternary divisions.
Dotted Rhythm number dots (1–3, default: 1)
number beats (default: 4)
rhythm-tree Generates long-short dotted rhythm pairs. A single dot produces a 3:1 ratio; double dot produces 7:1. The pattern repeats to fill the specified number of beats, creating the characteristic uneven pulse of dotted rhythms.
Rhythm Repeat rhythm-tree cell
number measures (default: 4)
rhythm-tree Repeats a rhythmic cell across N measures, maintaining the original proportional structure. Use this to create ostinato patterns or to extend a rhythmic idea across a longer time span.
Insert Rests rhythm-tree tree
list mask (binary, e.g. [1,0,1,1,0])
rhythm-tree Applies a binary mask to selectively silence events in a rhythm tree. A 1 in the mask keeps the event sounding; a 0 turns it into a rest. Inspired by Ferneyhough's approach to rhythmic filtering — the underlying proportional structure is preserved but events are selectively removed, creating patterns of presence and absence.
Rest Density rhythm-tree tree
bpf density-curve
rhythm-tree Controls rest placement through a BPF curve. At each time point, the curve value (0.0–1.0) determines the probability of an event being replaced by a rest. A rising curve gradually silences events; a falling curve gradually reveals them. Provides smooth, continuous control over rhythmic density.
Augment/Diminish rhythm-tree tree
number ratio (default: 1.0)
rhythm-tree Scales all durations in a rhythm tree by a multiplicative ratio. Ratio 2.0 doubles all durations (augmentation); ratio 0.5 halves them (diminution). Fractional ratios produce proportional stretching or compression of the entire rhythmic structure.
Rhythm Retrograde rhythm-tree tree rhythm-tree Reverses the temporal order of all events in a rhythm tree. The first event becomes the last and vice versa, while preserving the proportional structure of each sub-tree. The rhythmic equivalent of playing a tape backwards.
Rhythm Rotate rhythm-tree tree
number steps (default: 1)
rhythm-tree Cyclically rotates event order by N steps, like a phase shift. Events that fall off one end wrap around to the other. Useful for creating rhythmic canons or exploring different starting points of a rhythmic pattern.
Duration Series list durations (numeric series)
number unit (default: 1/16)
rhythm-tree Maps a number series to a sequence of durations. Each number in the input list is multiplied by the unit value to produce a duration. Used in integral serialism to derive rhythms from the same numeric series that generates pitches and dynamics — the Darmstadt approach of total organization.
Quantize Rhythm list free-durations
number grid (default: 1/16)
number time-signature (default: 4/4)
rhythm-tree Snaps free (non-metric) durations to the nearest value on a metric grid. Converts continuous time values into a notatable rhythm tree by rounding each duration to the nearest grid division. Essential for turning algorithmic output into performable notation.
Polyrhythm number stream-A (default: 3)
number stream-B (default: 4)
number measures (default: 1)
rhythm-tree stream-A
rhythm-tree stream-B
Creates two independent tuplet streams running simultaneously — for example 3-against-4 or 5-against-7. Each stream is output as a separate rhythm tree that can be paired with different pitch material and combined in a Voice Layer node for true polyrhythmic notation.

Studies that use these nodes

Wire these nodes into a piece of your own.

Create a free account14 days of Composer Pro, no card needed. Every account opens with the Examples folder.