theHarmonicAlgorithm-3.0.0: Real-time harmonic progression generation for TidalCycles live performance
Safe HaskellSafe-Inferred
LanguageHaskell2010

Harmonic.Framework.Builder.Diagnostics

Description

Functions for printing generation diagnostics at various verbosity levels, computing chord traces during generation, and rendering chord names.

Synopsis

Diagnostic Printing

printDiagnostics :: Int -> GenerationDiagnostics -> IO () Source #

Print diagnostics collected during generation.

Selects output level based on verbosity parameter:

0 - Silent
No output
1 - Standard
Per-step candidate pools, selections, rendered chords
2 - Verbose
Standard plus transform and advance traces

Useful for manually reprinting diagnostics after extraction from tuple, or batch processing multiple results at different verbosity levels.

printHeader :: Text -> Double -> HarmonicContext -> IO () Source #

Print generation header based on composer selection Takes raw Text instead of parsed ComposerWeights, plus entropy

printStrataDiagnostics :: Int -> GenerationDiagnostics -> IO () Source #

Per-bar rendering for genP'genP'''genP'''. Shows the triad (3 notes), the strata chroma (5 notes), the mode chroma (7 notes), the active tristrata, and — at verbosity 2 — the soft-boost applied.

Noop when sdStrataLabel is Nothing for every step, so it's safe to call unconditionally on any diagnostics value.

Chord Tracing

computeChordTrace :: Int -> CadenceState -> (Maybe String, Maybe TransformTrace) Source #

Compute chord rendering and transform trace based on verbosity level. Note: Reads raw DB data from the cadence within the state (which is the selected cadence after advance).

showChord :: Chord -> String Source #

Show a chord as "Root Functionality"

Candidate Rendering

parseCadenceFromString :: String -> Int -> Maybe String Source #

Parse candidate name like "( pedal -> min )" and render with posterior root Returns "C min" for "( pedal -> min )" when posterior root is C

Multi-attempt scoreboard (Verbose only)

printAttemptScoreboard :: Double -> [AttemptDiagnostic] -> IO () Source #

Render the multi-attempt rank-and-select scoreboard. Called from generateBest when _gcVerbosity == Verbose and _gcMaxAttempts > 1. Silent and Standard verbosity print nothing (the caller suppresses the call).

Rows sorted by adTotal descending; the picked attempt is marked with ← PICK. The chord-name sequence is truncated to the first 8 chords with an ellipsis if longer.