Monday, April 21, 2008

Bala

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.

Friday, April 18, 2008

Bala

Copperbox revision 131.

Updates to the LilyPond parser, plus a bug fix on the longestString parser combinator. It now does actually match the longest string and not the shortest.

Tuesday, April 15, 2008

Bala

Copperbox revision 130.

Updates to the LilyPond parser. I'm not sure I want to tackle the full LilyPond grammar so I've added two Parsec parsers for island parsing to Bala.BaseExtra.

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.

Saturday, April 12, 2008

Bala

Copperbox revision 128.

I've moved the Perform modules out of Bala.Base to their own directory, plus I've added a new module Meter to Base.

Wednesday, April 9, 2008

Bala

Copperbox revision 127.

The parsers for Roman numeral and jazz / guitar chord names had drop out of the repository - I've added them back into the module ChordSynonyms. I expect they will need quite a bit of reworking.

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}.

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.

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.

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.

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"

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.

Blog Archive

About Me

My photo
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.