Copperbox revision 1211.
I've reimplemented the repeat / repeat-alternative code for ABC. I'm working towards replacing the typeclass version of repeat syntax with one that uses concrete data types. This is the first step.
Copperbox revision 1212.
Seemingly I'd missed committing the changes to two files in revision 1211 - this commit corrects that mistake.
Monday, March 29, 2010
Sunday, March 28, 2010
Neume
Copperbox revision 1208.
The new beam splitting code is now in use. Unfortunately, I don't like the beam 'reconstitution' code - this has to check the beam extremities from the left and right - and I'll have to think about it some more.
Probably the StaffBar type should be a sequence rather than a list - then I have access to both ends to check the extremities and I can avoid the current complicated use of Hughes lists to avoid appends.
The new beam splitting code is now in use. Unfortunately, I don't like the beam 'reconstitution' code - this has to check the beam extremities from the left and right - and I'll have to think about it some more.
Probably the StaffBar type should be a sequence rather than a list - then I have access to both ends to check the extremities and I can avoid the current complicated use of Hughes lists to avoid appends.
Saturday, March 27, 2010
Friday, March 26, 2010
Thursday, March 25, 2010
Neume
Copperbox revision 1200.
Some work simplifying the Staff syntax data types (removing unnecessary newtype wrappers).
I also coded up the flat - TaggedStream - representation to where I could start experimenting with it. I didn't like it for beam grouping, so maybe a way forward is more work tidying up the beam grouping functionality, rather than a new representation.
Some work simplifying the Staff syntax data types (removing unnecessary newtype wrappers).
I also coded up the flat - TaggedStream - representation to where I could start experimenting with it. I didn't like it for beam grouping, so maybe a way forward is more work tidying up the beam grouping functionality, rather than a new representation.
Wednesday, March 24, 2010
Tuesday, March 23, 2010
Neume
Copperbox revision 1197.
I've added a flat representation of rose trees - TaggedStream - new levels are started with a tag like in XML but the are represented as a flat sequence of tokens with an end tag. A processing function must maintain some kind of stack to materialize the tree shape.
I'm going to see if this is easier to work with than then Staff and Markup syntax trees, which aren't working well.
I've added a flat representation of rose trees - TaggedStream - new levels are started with a tag like in XML but the are represented as a flat sequence of tokens with an end tag. A processing function must maintain some kind of stack to materialize the tree shape.
I'm going to see if this is easier to work with than then Staff and Markup syntax trees, which aren't working well.
Monday, March 22, 2010
Sunday, March 21, 2010
Neume
Copperbox revision 1195.
Preliminary work on fret diagrams in LilyPond output. Fret diagrams are due to be rendered as markup syntax - i.e. invisible spaces with above the staff markup annotations. This uses a simpler 'syntax' than standard staff notation - no graces, chords or beam groups - but quite a lot of the code to work with the simpler syntax is missing (e.g. bar splitting).
Preliminary work on fret diagrams in LilyPond output. Fret diagrams are due to be rendered as markup syntax - i.e. invisible spaces with above the staff markup annotations. This uses a simpler 'syntax' than standard staff notation - no graces, chords or beam groups - but quite a lot of the code to work with the simpler syntax is missing (e.g. bar splitting).
Saturday, March 20, 2010
Friday, March 19, 2010
Thursday, March 18, 2010
Neume
Copperbox revision 1190.
I'm concerned that to handle overlays, I'm going to have to make an overlay evaluator for every 'simple' evaluator as I can't see how to compose two tagless evaluators.
As a precaution, I've had a round of golf shortening all the definitions of the current tagless evaluators. So if evaluators are duplicated at least the code will be short.
I'm concerned that to handle overlays, I'm going to have to make an overlay evaluator for every 'simple' evaluator as I can't see how to compose two tagless evaluators.
As a precaution, I've had a round of golf shortening all the definitions of the current tagless evaluators. So if evaluators are duplicated at least the code will be short.
Wednesday, March 17, 2010
Neume
Copperbox revision 1187.
A better tagless evaluation for ABC that doesn't need the leaves of the "tree" to be pre-processed.
The code is a bit messy as I've left the old ABC evaluation machinery in place - I'll remove the redundant code in the next commit. Also I haven't looked at overlays or LilyPond yet.
A better tagless evaluation for ABC that doesn't need the leaves of the "tree" to be pre-processed.
The code is a bit messy as I've left the old ABC evaluation machinery in place - I'll remove the redundant code in the next commit. Also I haven't looked at overlays or LilyPond yet.
Tuesday, March 16, 2010
Monday, March 15, 2010
Neume
Copperbox revision 1183.
Initial work changing the score syntax into a tagless style. This has broken all the LilyPond code so all the examples except ABC_B6 have stopped compiling. The tagless style seems like the best bet to be able to perform the LilyPond relative pitch transformation across a score.
Initial work changing the score syntax into a tagless style. This has broken all the LilyPond code so all the examples except ABC_B6 have stopped compiling. The tagless style seems like the best bet to be able to perform the LilyPond relative pitch transformation across a score.
Sunday, March 14, 2010
Saturday, March 13, 2010
Friday, March 12, 2010
Thursday, March 11, 2010
Neume
Copperbox revision 1175.
Work on printing repeats in ABC. Unfortunately this work is rather complicated - whether or not some marks should be generated in the output is index sensitive - i.e. if the first bar is the start of a repeated section the begin repeat symbol should be omitted.
This commit isn't correct but its been quite a lot of work to get so far, so it bears check pointing.
Work on printing repeats in ABC. Unfortunately this work is rather complicated - whether or not some marks should be generated in the output is index sensitive - i.e. if the first bar is the start of a repeated section the begin repeat symbol should be omitted.
This commit isn't correct but its been quite a lot of work to get so far, so it bears check pointing.
Wednesday, March 10, 2010
Neume
Copperbox revision 1173.
Potential new way of dealing with overlays - concatenated Doc's.
I'm not sure overlays need to be manipulated after all, so it seems that, rather than make them a list of one-or-more "bars" then print them interspersing the overlay separator (&), I can concatenate them as docs with the overlay separator instead.
Note - LilyPond is a bit more convoluted as overlays must form a proper 2D matrix, with the same number of overlays in each bar even if the overlay is empty.
Potential new way of dealing with overlays - concatenated Doc's.
I'm not sure overlays need to be manipulated after all, so it seems that, rather than make them a list of one-or-more "bars" then print them interspersing the overlay separator (&), I can concatenate them as docs with the overlay separator instead.
Note - LilyPond is a bit more convoluted as overlays must form a proper 2D matrix, with the same number of overlays in each bar even if the overlay is empty.
Monday, March 8, 2010
Saturday, March 6, 2010
Friday, March 5, 2010
Thursday, March 4, 2010
Wednesday, March 3, 2010
Tuesday, March 2, 2010
Neume
Copperbox revision 1156.
I've added a prototype of the new beam algorithm. Because note-lists are now a fairly unwieldy shape to handle tuplets (a forest - i.e. a list of trees), it is not as precise as previous versions of the algorithm - e.g. its possible to have rests ending a beam group in some cases. But I think it is good enough.
Unfortunately the new beaming uses different data types to the CExpr (context expressions) that I had previously implemented so adding beaming fully will mean changing the all the LilyPond and ABC pretty print code.
I've added a prototype of the new beam algorithm. Because note-lists are now a fairly unwieldy shape to handle tuplets (a forest - i.e. a list of trees), it is not as precise as previous versions of the algorithm - e.g. its possible to have rests ending a beam group in some cases. But I think it is good enough.
Unfortunately the new beaming uses different data types to the CExpr (context expressions) that I had previously implemented so adding beaming fully will mean changing the all the LilyPond and ABC pretty print code.
Subscribe to:
Posts (Atom)
Blog Archive
-
▼
2010
(890)
-
▼
March
(52)
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
- Neume
-
▼
March
(52)
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.