Layer System
PERF generates up to 12 simultaneous layers of MIDI. Each layer runs its own instance of the rhythm engine, perforation engine, and pitch pattern, but shares global parameter settings (density, scale, articulation, etc.).
Layers are grouped into families that determine how they coordinate with each other.
Layer Count
| Parameter | ID | Range | Default | Description |
|---|
| Active Layers | activeLayers | 1–12 | 8 | Number of active generating layers |
Each layer receives a unique phase offset (0.0–1.0), seeded deterministically from its position. This means Layer 1 and Layer 7 will always produce different rhythmic patterns from the same algorithm settings — the variation is structural, not random.
Family Behaviors
Layers can be assigned to families (A, B, C, D) that control their coordination:
| Behavior | What It Does | Lineage |
|---|
| Synchronized | Layers within the family synchronize their perforation patterns. Gaps and events align, creating a unified rhythmic texture that breathes as one voice. | Messiaen’s rhythmic unisons. Orchestral tutti — all instruments articulating together as a collective body. |
| Complementary | Layers fill each other’s gaps. When one layer rests, another plays. Creates interlocking patterns where the composite texture is denser than any individual part. | African hocket technique — melody distributed across multiple performers, each contributing fragments. Machaut’s isorhythmic motets. Balinese kotekan interlocking patterns. |
| Cascade | Layers activate in sequence, creating staggered entrances. Each layer’s perforation pattern is phase-shifted relative to its family position, producing canon-like temporal offset. | Canon and fugal entries. Stretto technique. Nancarrow’s tempo canons — same material at different time scales. |
| Independent | Each layer generates with no coordination. Maximum textural complexity and density — every layer follows its own logic without regard to others. | Free polytonality. Ives’ layered independence (The Unanswered Question). Ligeti’s micropolyphony — many independent voices creating emergent texture. |
The family behavior is set globally via the Layer Interaction parameter:
| Parameter | ID | Options | Default |
|---|
| Layer Interaction | coordMode | Independent / Inverse / Complementary / Synchronized | Independent |
The Complementary (hocket) behavior is PERF’s default for a reason — it produces the most immediately musical results. 8 layers in Complementary mode create a dense but clear texture where no two layers compete for the same rhythmic space.