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

Harmonic.Rules.Import.CSV

Description

Parses Yale Classical Archives Corpus data from CSV format into typed Haskell records for downstream transformation and graph storage.

Synopsis

Corpus rows

data YCACLRow Source #

One row of the YCACL artifact exported by scripts/export_ycacl.R.

The CSV carries pitches as a space-separated string in a single column; the FromNamedRecord instance splits and parses that into yrPitches.

Constructors

YCACLRow 

Fields

Instances

Instances details
Show YCACLRow Source # 
Instance details

Defined in Harmonic.Rules.Import.CSV

FromNamedRecord YCACLRow Source # 
Instance details

Defined in Harmonic.Rules.Import.CSV

Methods

parseNamedRecord :: NamedRecord -> Parser YCACLRow

Eq YCACLRow Source # 
Instance details

Defined in Harmonic.Rules.Import.CSV

Nested corpus map

type ComposerId = Text Source #

Composer name, used as the outer key of YCACLData. Case is preserved here; composer matching is case-insensitive and happens downstream.

type PieceId = Text Source #

Piece identifier, unique within one composer.

type YCACLData = Map ComposerId (Map PieceId [ChordSlice]) Source #

The whole corpus, grouped composer then piece, with each piece reduced to its ordered list of slices.

Loading

loadYCACLData :: FilePath -> IO YCACLData Source #

Load YCACL artifact (composer, piece, order, pitches, fundamental) into nested maps.