Sample features:
- input a set of notes, output fitting scales {haskell-prototyping.hs: improScale}
- input a scale, output its chords {haskell-prototyping.hs: scalechords}
- recognize known chords and scales {haskell-prototyping.hs: ictRecognizer}
- print all seventh chords within a given scale
- input a melody, output a harmonization
- input keys X, Y and an n, output n keys on a tonnetz/circle-of-fifths/... geodesic of X & Y
- input a chord progression, output its negative (in the sense of Ernst Levy)
- run fretboard quizes {haskell-prototyping.hs: fretboardQuizOneStandard, fretboardQuizTwoStandard}
You may compile the source text by running "ghc haskell-prototyping.hs" on a terminal and then open the program by entering "./haskell-prototyping".
Contents of file haskell-prototyping.hs:
- Preamble and stolen stuff
- An enumeration type for notes
1.1. Application: Impro suggester
1.2. Application: Scale chords
1.3. Application: Interval-chord-scale recognizer
1.4. Application: The seventh chords of a scale
1.5. Application: A literate suggester - An inductive type for chord constructions
- About rhythm
- Tymoczko chord change spaces
4.1. T-Closeness - Concerning the guitar
5.1. Application: Fretboard quizes