billboard-parser-1.0.0.1: A parser for the Billboard chord dataset

Portabilitynon-portable
Stabilityexperimental
MaintainerW. Bas de Haas <bash@cs.uu.nl>
Safe HaskellSafe-Inferred

Billboard.Annotation

Contents

Description

Summary: Billboard files can contain a variety of annoatations. This module aims at representing these as Haskell types

Synopsis

Types for storing annotations encountered in the Billboard dataset

data Annotation Source

an Annotation occurs either at the start or at the end of a chord sequence line.

Constructors

Start Label 
End Label 

data Label Source

All annotations contain information we term Label

Constructors

Struct Char Int

denoting A .. Z and the nr of primes (')

Instr Instrument 
Anno Description 
Modulation Root 

Instances

data Description Source

Representing typical structural segementation labels

Constructors

Chorus 
Intro 
Outro 
Bridge 
Interlude 
Solo 
Fadeout 
Fadein 
Prechorus 
Maintheme 
Keychange 
Secondarytheme 
Ending 
PhraseTrans 
Instrumental 
Coda 
Transition 
PreVerse 
Vocal 
Talking 
TalkingEnd 
Silence 
Applause 
Noise 
SongEnd 
ModulationSeg 
PreIntro 
Chords 
Repeat Int 
Verse (Maybe Int) 
InterpolationInsert

a chord inserted by the posprocessing interpolation

UnknownAnno String

a catch all description for unrecognised descriptions

Utilities

Tests

isStruct :: Label -> BoolSource

Returns True if the Annotation annotates a structural segmentation label

isStart :: Annotation -> BoolSource

Returns True if the Annotation occurs at the start of a line

isUnknown :: Annotation -> BoolSource

Returns True if the Annotation

isRepeat :: Annotation -> BoolSource

Returns True if the Annotation represents a repeat.

isEndAnno :: Annotation -> BoolSource

Returns True if the Annotation represents the end of a piece.

isFirstChord :: Annotation -> BoolSource

Returns True if the Annotation marks the start of a chord sequence

isLastChord :: Annotation -> BoolSource

Returns True if the Annotation marks the end of a chord sequence

Data access

getRepeats :: Annotation -> IntSource

Returns the number of repeats represented by this Annotation. If the Annotation describes something completely different (say Electricsitar) it will return 1.