Copperbox revision 133.
Not a very big update, but the LilyPond parser now has enough implemented to parse lists of glyphs (expressions in LilyPond terms) which can include: notes, rests, chords, slurs, ties and various commands.
Sunday, April 20, 2008
Bala
Copperbox revision 132.
More improvements to the LilyPond parser and pretty-printer. Plus I've reimplemented the island parser combinators. I seem to have revised the island parsers a lot (the previous ones were imported from another project), but previously I've failed to get them right. The new ones look correct - so I'm tempted to think they are.
More improvements to the LilyPond parser and pretty-printer. Plus I've reimplemented the island parser combinators. I seem to have revised the island parsers a lot (the previous ones were imported from another project), but previously I've failed to get them right. The new ones look correct - so I'm tempted to think they are.
Friday, April 18, 2008
Tuesday, April 15, 2008
Sunday, April 13, 2008
Bala
Copperbox revision 129.
Added EventTree a data-type to represent hierarchical music structures.
I've been developing this data type on and off for over three years, so I don't expect this version is correct. However, it can represent the 'minimally useful' set of examples that I've devised to test the usefulness of a representation.
There are no operations on it yet, except for instances of Functor, Foldable and Traversable.
Added EventTree a data-type to represent hierarchical music structures.
I've been developing this data type on and off for over three years, so I don't expect this version is correct. However, it can represent the 'minimally useful' set of examples that I've devised to test the usefulness of a representation.
There are no operations on it yet, except for instances of Functor, Foldable and Traversable.
Saturday, April 12, 2008
Wednesday, April 9, 2008
Tuesday, April 8, 2008
Bala
Copperbox revision 126.
New work on chords inspired by Francois Pachet's MusES paper - An Object-Oriented Representation of Pitch-Classes, Intervals, Scales and Chords.
Chords are now represented as a root note and finite map a finite map of intervals - {key : interval size, value : interval quality}.
New work on chords inspired by Francois Pachet's MusES paper - An Object-Oriented Representation of Pitch-Classes, Intervals, Scales and Chords.
Chords are now represented as a root note and finite map a finite map of intervals - {key : interval size, value : interval quality}.
Sunday, April 6, 2008
Bala
Copperbox revision 125.
Further work on intervals - the interval patterns for pentatonic scales were wrong, and this needed the parser for shorthand intervals to be extended. Shorthand intervals are letter + digit e.g. M3 major third, P5 perfect fifth, m2 minor second.
Also quite a bit of tidying up and adding Haddock documentation.
Further work on intervals - the interval patterns for pentatonic scales were wrong, and this needed the parser for shorthand intervals to be extended. Shorthand intervals are letter + digit e.g. M3 major third, P5 perfect fifth, m2 minor second.
Also quite a bit of tidying up and adding Haddock documentation.
Bala
Copperbox revisions 123 & 124.
Revision 123 - I've added a shell script to build Haddock docs for Bala - actually it's nothing I couldn't do at the command line except that I would forget the command. While Bala is still pretty unstable it is getting bigger, so having hyper-linked docs will help me see what I've got.
Also added some preliminary work to support LilyPond files.
Revision 124 - Added some Haddock documentation. Move some orphaned code into a new module Unifiled.hs.
Revision 123 - I've added a shell script to build Haddock docs for Bala - actually it's nothing I couldn't do at the command line except that I would forget the command. While Bala is still pretty unstable it is getting bigger, so having hyper-linked docs will help me see what I've got.
Also added some preliminary work to support LilyPond files.
Revision 124 - Added some Haddock documentation. Move some orphaned code into a new module Unifiled.hs.
Saturday, April 5, 2008
Bala
Copperbox revision 122.
I've improved the pitch spelling function spell and at last it appears to work correctly.
To get it to work I use the new function semitoneDisplacement (unlike semitoneDistance it takes direction into account). This has meant changes to some of the pitch typeclass names - I decided I preferred SemitoneDisplacement for measuring distance rather than adding semitones.
I've improved the pitch spelling function spell and at last it appears to work correctly.
To get it to work I use the new function semitoneDisplacement (unlike semitoneDistance it takes direction into account). This has meant changes to some of the pitch typeclass names - I decided I preferred SemitoneDisplacement for measuring distance rather than adding semitones.
Wednesday, April 2, 2008
Bala
Copperbox revision 121.
I've removed the file AffiDecoInstances.hs - Affi and Deco instances are now in the module with their respective types.
Slight improvement for pitch spelling sharpening and flattening keeps the pitch letter but changes the accidental:
sharp (c natural) => c #
sharp (c#) => c##
This has improved pitch spelling for scales, but things aren't perfect yet:
Scale> afficher $ makeScale (flat g4) (mkIS "WWHWWWH")
"Gb4 Ab4 Bb4 C###########4 Db5 Eb5 F5 Gb5"
I've removed the file AffiDecoInstances.hs - Affi and Deco instances are now in the module with their respective types.
Slight improvement for pitch spelling sharpening and flattening keeps the pitch letter but changes the accidental:
sharp (c natural) => c #
sharp (c#) => c##
This has improved pitch spelling for scales, but things aren't perfect yet:
Scale> afficher $ makeScale (flat g4) (mkIS "WWHWWWH")
"Gb4 Ab4 Bb4 C###########4 Db5 Eb5 F5 Gb5"
Tuesday, April 1, 2008
Bala
Copperbox revision 120.
Change the scale module to use the type Interval in IntervalStructures rather than a count of half steps.
As I thought yesterday `addSemi` is a problem for pitch spelling, but my simple solution didn't work so this needs some more thought.
Change the scale module to use the type Interval in IntervalStructures rather than a count of half steps.
As I thought yesterday `addSemi` is a problem for pitch spelling, but my simple solution didn't work so this needs some more thought.
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.