From fd64baa4128744c603d5d7b11bd82dc295ad7b6b Mon Sep 17 00:00:00 2001 From: Jake Zerrer Date: Wed, 26 Nov 2025 15:10:20 -0500 Subject: Add namespace header with credits --- src/unheard/cycles.clj | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src/unheard/cycles.clj') diff --git a/src/unheard/cycles.clj b/src/unheard/cycles.clj index 3cbfb97..a067142 100644 --- a/src/unheard/cycles.clj +++ b/src/unheard/cycles.clj @@ -1,4 +1,32 @@ -(ns unheard.cycles) +(ns unheard.cycles + "Pattern composition library for temporal sequences. + + This library provides combinators and modifiers for building hierarchical + pattern structures that unfold into concrete time intervals. It supports + sequential, parallel, and forking composition, along with temporal + transformations like rate scaling, elongation, and replication. + + The design is inspired by TidalCycles and Strudel, with each function + documented alongside its equivalent operator from those systems. + + Core Combinators: + - l (list/fastcat): Sequential subdivision in lockstep + - f (fork/slowcat): Sequential cycling across iterations + - p (parallel/stack): Simultaneous overlay + + Modifiers: + - rate: Speed scaling (* and / operators) + - elongate: Temporal weighting (@ operator) + - rep: Element replication (! operator) + + Unique Operators: + - paste: Template-based pattern construction (not in TidalCycles/Strudel) + + See: https://tidalcycles.org + https://strudel.cc + + Credit: TidalCycles by Alex McLean + Strudel by Felix Roos and contributors") (defn l "List combinator: subdivides time evenly among children, advancing in lockstep. -- cgit v1.2.3