I've implemented "chordmode" for Payasan patterned after LilyPond's chordmode.
Chordmode is intended as an intermediate layer for working with chords - LilyPond's chordmode is a bit inscrutable at some points and I believe I have a simpler representation for building and manipulating chords.
The implementation points to quite a few horrors in the module organization of Payasan that I will need to address. I already have 70 modules in the src directory which is excessive and I'll have to do something about combining some of them.
Monday, September 14, 2015
Sunday, September 13, 2015
Payasan
I've started to add support for LilyPond drum pitches. This work should point out what bits of Payasan need parameterizing on Pitch. The syntax is already polymorphic on pitch and duration, but so far I haven't treated the parsers and renderers systematically.
Friday, September 11, 2015
Payasan
I've implemented "full score" output for ABC and LilyPond rather than just output of note list fragments.
It is an expectation of Payasan that the output will be hand-edited after generation if the user wants to create proper scores. However, to "debug" note lists after they have been built, transformed, etc. a user needs to generate a "full score" that can be automatically rendered by LilyPond or ABC to see their work.
It is an expectation of Payasan that the output will be hand-edited after generation if the user wants to create proper scores. However, to "debug" note lists after they have been built, transformed, etc. a user needs to generate a "full score" that can be automatically rendered by LilyPond or ABC to see their work.
Thursday, September 10, 2015
Sunday, September 6, 2015
Payasan
I'm working towards adding debugging to the translation steps (LilyPond pitch conversion has had a bug for the best part of a week). I'm not sure what the API should be, but at least with the current temporary implementation I can see where the pitch conversion bug occurs.
Friday, September 4, 2015
Thursday, September 3, 2015
Payasan
I've added a very rough implementation of Humdrum-like output printing. The output is for debugging purposes (there is a problem with pitch conversion to or from LilyPond) and so doesn't attempt to properly match Humdrum: the output has to be readable (obviously) and decipherable i.e. it has to preserve information so it works for showing bugs.
Strictly following Humdrum would impede the second goal.
Strictly following Humdrum would impede the second goal.
Wednesday, September 2, 2015
Payasan
I've added interval addition and subtraction as per the algorithm in Francois Pachet's "An Object-Oriented Rerpresentation of Pitch-Classes, Intervals, Scales and Chords: The basic MusES" (page 9).
Both are a bit untested, I really should write Quick Check properties and tests at some point.
Both are a bit untested, I really should write Quick Check properties and tests at some point.
Tuesday, September 1, 2015
Payasan
I've worked on Pitch and Intervals as a prelude to sorting out the LilyPond relative pitch transformation.
A proper set of functions to manipulate pitches and intervals should provide the tools to encode the relative pitch transformation fairly simply. My previous ad hoc attempts were just confusing.
A proper set of functions to manipulate pitches and intervals should provide the tools to encode the relative pitch transformation fairly simply. My previous ad hoc attempts were just confusing.
Subscribe to:
Posts (Atom)
Blog Archive
About Me
- Stephen Tetley
- Disambiguating biog as there are a few Stephen Tetley's in the world. I'm neither a cage fighter or yachtsman. I studied Fine Art in the nineties (foundation Bradford 1992, degree Cheltenham 1992 - 95) then Computing part-time at Leeds Met graduating in 2003. I'm the Stephen Tetley on Haskell Cafe and Stackoverflow.