Skip to main content

Perforation Engine

The Perforation Engine is RESERVOIR’s defining feature. After the Rhythm Engine generates a stream of events, the Perforation Engine decides which events are kept and which are removed — creating holes, gaps, and silence within the texture. This is not random muting. Each perforation method uses a distinct mathematical structure to determine its pattern of presence and absence, producing characteristic textural signatures.

Perforation Methods

MethodCharacter
EuclideanDistributes gaps as evenly as possible across the event stream. Produces the most uniform distribution of silence achievable for a given density.
Prime SieveRemoves events at positions divisible by primes. Creates quasi-periodic patterns with long-range structure.
FibonacciFilters events based on a Fibonacci index decomposition. Events with simpler representations are more protected from removal, creating self-similar filtering at all scales.
ModularKeeps events whose index satisfies a modular congruence. Creates perfectly periodic patterns with configurable modulus and phase offset.
Golden RatioQuasiperiodic lattice based on phi. Two modes: Phi creates beating between irrational and integer ratios; Spiral Holes uses the golden angle for maximally uniform distribution.
CellularA 1D cellular automaton evolves each cycle, producing complex emergent perforation structures from simple local rules. Creates chaotic non-repeating patterns.
Corpus DensityRest patterns shaped by a learned phrase-density model. Context-aware — considers note length, pitch direction, and repetition. Produces musically natural rest placement.

Parameters

ParameterRangeDefaultDescription
Perforation0.0–1.00.3Gap density — 0 = no gaps, 1 = maximum removal
Perforation MethodEuclideanAlgorithm selection
Spiral HolesOn/OffOffGolden Ratio mode toggle
Corpus Bias0.0–1.00.7How strongly the corpus model influences decisions (Corpus Density only)

Layer Interaction Modes

Perforation can operate independently per layer or coordinate across layers:
ModeWhat It Does
IndependentEach layer’s perforation pattern is unrelated to other layers. Maximum textural complexity.
InverseLayers become more active when other layers are quiet, and quieter when others are busy. Creates natural breathing between voices.
ComplementaryLayers actively fill each other’s gaps, producing interlocking patterns where silence in one voice is filled by another.
SynchronizedPerforation holes appear at similar times across all layers. Creates collective silence — the entire texture breathes together.
The layer interaction mode is set globally via the Layer Interaction parameter.
A Perforation amount of 0.3 means roughly 30% of generated events are removed. At 0.0, every event plays; at 1.0, maximum removal is applied. The exact density depends on the method — some methods are inherently denser than others at the same setting.