Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
404 commits
Select commit Hold shift + click to select a range
053cc8a
Start coding abctranspose, by simply reading the file and writing it …
colomon May 31, 2012
d13c7ad
Try to start setting up framework for transposition.
colomon Jun 3, 2012
3c1943f
Add transpose to Stem.
colomon Jun 3, 2012
8841e3b
Support transpose for broken rhythms, grace notes, and tuplets, too.
colomon Jun 3, 2012
d39bfc4
Move some stuff to ABC::Utils, pitch-to-ordinal and ordinal-to-pitch …
colomon Jun 5, 2012
db67a22
Sort out chords, stringify, and transposition.
colomon Jun 5, 2012
719c0aa
Track changes in chord stringification in abc2ly.
colomon Jun 25, 2012
228f881
Add +D.S.+.
colomon Aug 16, 2012
d916fde
Allow processing multiple ABC files at once, some new test stuff.
colomon Aug 22, 2012
f66e5b6
Hack to hopefully improve partial bar situation.
colomon Sep 24, 2012
91e8692
Add test file that had gotten left out of the git repo somhow.
colomon Sep 24, 2012
da4ff16
Changes needed to make ABC work on Rakudo again.
colomon Feb 7, 2013
9c1390f
Switch from the complete tuplet implementation to the simpler one tha…
colomon Feb 8, 2013
4c3cea5
Add a bang line at the top to try to help out panda.
colomon Feb 23, 2013
4a76448
Try a different shebang.
colomon Feb 23, 2013
8d20fde
Add the full set of rules for the K: field.
colomon Mar 2, 2013
c6e0e71
Fix thinkos, support global-accidental with simple tests.
colomon Mar 2, 2013
3986c30
Clean up left-over debugging "say" statements.
colomon Mar 2, 2013
d3768b4
Get rid of now obsolete key_sig token.
colomon Mar 2, 2013
5eb61bd
Start ABC::KeyInfo class to hold all the information found in the ABC…
colomon Mar 3, 2013
4d73dc3
Very basic clef information now stored.
colomon Mar 3, 2013
e6cc1fa
Allow clefs other than treble.
colomon Mar 3, 2013
fb9a8ff
Expand octave range a bit to allow bass clef tunes.
colomon Mar 4, 2013
b159299
Working on NIecza again, I think.
colomon Mar 4, 2013
97b612b
Improve error message.
colomon Mar 6, 2013
ac2edf3
Start sketching in ABC::Context type.
colomon Apr 27, 2013
23d5e7c
Add early version of tootorial script.
colomon Apr 29, 2013
f6df70d
Add ABC::Context, stream-of-notes function, start changing tootorial …
colomon Apr 29, 2013
f93b84c
Make simple repeats work in stream-of-notes.
colomon Apr 29, 2013
c6825f1
Rewrite tootorial to use stream-of-notes.
colomon Apr 29, 2013
592c225
Add actions for nth_repeat (that returns a Set).
colomon May 1, 2013
554507f
Extend C hack for simple tests.
colomon May 1, 2013
2e48b60
Add ElementToStr rule for new nth_repeat handling.
colomon May 1, 2013
44064cd
Move location of "[2" stringification test.
colomon May 1, 2013
f46a8df
Repeats work again, and now with endings!
colomon May 1, 2013
d636a65
Add in rest of standard whistle scale, fix line that went missing at …
colomon May 2, 2013
352cca3
Give stream-of-notes support for tuplets and broken_rhythms.
colomon May 2, 2013
10ad17c
Add half-holed notes.
colomon Jun 14, 2013
35ccb2b
Refactor Context a tad to use ABC::Context. Somewhat less elegant th…
colomon Jun 14, 2013
2787937
Switch "our method" to just plain "method".
colomon Aug 4, 2013
59b69d7
Tweak commented out footer message.
colomon Aug 29, 2013
1522250
Bring ABC up to the current spec for bless.
colomon Sep 1, 2013
917258e
Catch three more blesses.
colomon Sep 1, 2013
ce43d74
Fix think-o.
colomon Sep 2, 2013
982963c
Expanded tuplet processing code a bit. Definitely still needs work!
colomon Sep 2, 2013
6646402
Refactor a tad and implement "proper" tuplet stringification.
colomon Sep 2, 2013
7178514
Change ElementToStr to element-to-str.
colomon Sep 2, 2013
48282e6
Fix Set usage to match current spec.
colomon Sep 6, 2013
1c2829e
Get rid of calls to Hash.exists.
colomon Nov 26, 2013
20bb5da
Add support for +breath+.
colomon Nov 29, 2013
682426b
Enable selection of an individual tune from a larger tune file.
colomon Jan 3, 2014
817476f
Add -o option too.
colomon Jan 3, 2014
8e34d56
Add default-length-from-meter sub and use it in abc2ly.
colomon Jan 18, 2014
ee107a1
Switched eval to EVAL.
colomon Jan 23, 2014
4500f87
Simple script to transpose tunes up an octave. Not heavily tested yet!
colomon Mar 24, 2014
f97e8c2
Refactor octave shifter a tad.
colomon Mar 24, 2014
538f29d
Refactor again, allow shifting by any number of octaves.
colomon Mar 24, 2014
83a3767
Add simple tests for pitch-to-ordinal and ordinal-to-pitch.
colomon Mar 24, 2014
0b456fc
Borrow code from abcoctave, start properly implementing transpose.
colomon Mar 24, 2014
5e9d01a
Simple transpose from C to D working.
colomon Mar 24, 2014
512cc71
Get basic (if slightly stupid) transpose working.
colomon Mar 25, 2014
08048d2
Handle inline_fields properly!
colomon Mar 25, 2014
57214a1
Handle inline_fields properly on abcoctave too!
colomon Mar 25, 2014
cac0f9d
Set executable flag.
colomon May 2, 2014
122b7fd
Add #! line at beginning.
colomon May 2, 2014
d091357
Fix a couple of deprecated things.
colomon Jul 25, 2014
d9dd317
Update for latest Rakudo.
colomon Aug 17, 2014
7face63
Switch last change from { True } to *.
colomon Aug 17, 2014
00a935e
Add --mc option to show the webpage.
colomon Aug 22, 2014
5bc86a9
Tweak list-flattening things.
colomon Nov 7, 2014
ca18a0c
Fix flattening, and use of deprecated .slurp on file handle
moritz Dec 23, 2014
a8f36e7
Merge pull request #1 from moritz/fix-deprecation-flattening
colomon Dec 23, 2014
332376f
Switch from .map to .for
moritz Dec 30, 2014
89b2120
Merge pull request #2 from moritz/map-to-for
colomon Dec 30, 2014
e429bac
add provides section for latest panda (S11 support)
FROGGS Mar 29, 2015
fd6a595
Merge pull request #3 from FROGGS/patch-1
colomon Mar 29, 2015
385d6ec
Replace isa_ok with isa-ok
paultcochrane Jun 15, 2015
3a4d6f1
Replace method for statement with flatmap
paultcochrane Jun 15, 2015
b4bd31f
Update tests now that non-matching regexps return Nil
paultcochrane Jun 15, 2015
9b2a558
Flatten zip operator output explicitly
paultcochrane Jun 15, 2015
2b74283
Merge pull request #4 from paultcochrane/pr/use-kebab-case-for-test-funs
colomon Jun 16, 2015
5f012d6
Merge pull request #5 from paultcochrane/pr/method-for-to-flatmap
colomon Jun 16, 2015
edc921f
Merge pull request #6 from paultcochrane/pr/null-matches-return-nil
colomon Jun 16, 2015
75678c5
Merge pull request #7 from paultcochrane/pr/flatten-zip-output
colomon Jun 16, 2015
7736b57
'provides' file path corrections
ugexe Jun 18, 2015
df17259
Merge pull request #8 from ugexe/patch-1
colomon Jun 18, 2015
321157c
Work on deprecated messages.
colomon Jun 20, 2015
c9e42f0
Updates to grammar to accommodate header comments.
colomon Aug 17, 2015
1c063f4
Allow interior_header_field_name to be 'w'.
colomon Aug 17, 2015
3c78789
Fix up headers a bit.
colomon Aug 22, 2015
3f40362
Try to fix final double barline.
colomon Aug 22, 2015
1649ea9
Add "T" as old-fashioned version of +trill+.
colomon Sep 1, 2015
6ff397b
Empty header fields shouldn't eat the next line.
colomon Sep 1, 2015
d0823ce
Handy debugging dd, commented out.
colomon Sep 1, 2015
1a2dd37
First stage of GLR-releated changes.
colomon Sep 6, 2015
bc6c779
Flatten / slip as appropriate.
colomon Sep 6, 2015
c3b5121
Little more slipping.
colomon Sep 6, 2015
acf2cbf
Believe this is a single element or undef now.
colomon Oct 3, 2015
1f19a26
Call LilyPond once .ly file is output.
colomon Oct 3, 2015
22cfdc4
Add a .travis.yml file
moritz Oct 13, 2015
cc5ca4c
Merge pull request #9 from moritz/travis
colomon Oct 13, 2015
ee2af56
Add "octave=<number>" to clef definition.
colomon Nov 9, 2015
d319f94
Fix crescendo / diminuendo.
colomon Nov 9, 2015
5a20267
Cresc / dim code was right the first time.
colomon Nov 9, 2015
d924070
Support sfz.
colomon Nov 12, 2015
d0ae778
Properly support acciaccatura.
colomon Nov 12, 2015
612461c
Add marcato symbol.
colomon Nov 12, 2015
d8e8444
Fix removed @*INC
zoffixznet Dec 4, 2015
6e22abd
Merge pull request #10 from zoffixznet/fix-inc
colomon Dec 4, 2015
e0e06f7
Add sensible defaults for key-info fields.
colomon Dec 26, 2015
0134058
Fix broken Note.perl.
colomon Dec 26, 2015
b1865b1
Treble as default clef, test default octive-shift.
colomon Dec 26, 2015
68855d0
Fix broken ABC::Header.set-key.
colomon Mar 2, 2016
5c6ae2d
If no title, label "Untitled".
colomon Oct 5, 2016
c442d38
Turn on cautionary accidentals.
colomon Oct 5, 2016
50d794b
Only output \partial once in a piece.
colomon Oct 5, 2016
222b5cc
Add --fancy option to abc2ly.
colomon Oct 18, 2016
61bab75
Add mandatory "perl" META field
zoffixznet Oct 26, 2016
aaef4eb
Add mandatory "perl" META field
zoffixznet Oct 26, 2016
c86cd07
Merge pull request #12 from zoffixznet/patch-2
colomon Oct 27, 2016
4a1f13e
Merge pull request #11 from zoffixznet/patch-1
colomon Oct 27, 2016
0938bf0
Get rid of .for instances.
colomon Feb 6, 2017
5acc64c
Merge branch 'master' of github.com:colomon/ABC
colomon Feb 6, 2017
bc0fb69
Update README to the state of things in 2017.
colomon Feb 7, 2017
4594221
Add link to Wayback Machine version of ABC BNF.
colomon Feb 7, 2017
0c7f0c5
Improved tuplet handling for (2 and (4.
colomon Feb 11, 2017
2f4adb2
Add simple support for the N: field.
colomon Feb 11, 2017
773a133
Improved tweak for quotation marks.
colomon Feb 11, 2017
6da432c
Better origin/dedication handling.
colomon Feb 11, 2017
392625e
Allow P: in the body of a tune.
colomon Feb 12, 2017
2778fb3
Allow user-defined single-letter gracings.
colomon Feb 12, 2017
792a12c
Add tests for single char gracings T and v.
colomon Feb 12, 2017
a7850a4
Initial symbol is optional for a text expression.
colomon Feb 12, 2017
2274457
Very basic support for M: none.
colomon Mar 12, 2017
5bd5967
Remove debugging code accidentally left in.
colomon Mar 12, 2017
4b1191e
Don't display bar numbers if M: none sections.
colomon Mar 13, 2017
c7f69ce
Use modern META filename
zoffixznet Apr 25, 2017
5d2ac7c
Merge pull request #13 from zoffixznet/patch-1
colomon Apr 25, 2017
6cf937b
Allow !decoration! as well as +decoration+.
colomon Sep 12, 2017
e6ab4ff
Try to give it an actual version number.
colomon Sep 12, 2017
d4d964a
Get rid of leading / trailing spaces on the meter.
colomon Sep 12, 2017
9d39a77
Test for new form of long gracing.
colomon Sep 12, 2017
e48d7aa
Make abctranspose handle gracings and chords/text.
colomon Nov 1, 2017
4645214
Handle mordent.
colomon Jan 5, 2018
f221e42
Bump version number.
colomon Jan 5, 2018
97e07bc
prall instead of mordent?
colomon Jan 5, 2018
ff07708
Bump version again.
colomon Jan 5, 2018
3cd1c43
First working --score option.
colomon Feb 20, 2018
d2e05bc
Get the names right for --score.
colomon Feb 20, 2018
e9187c2
Update version number, fix provides.
colomon Feb 20, 2018
50f128b
Allow whitespace between key name and modified, e.g. "G Major".
sciurius Dec 10, 2018
6bc1979
Fix "G Major" "G bass major" conflict.
sciurius Dec 10, 2018
7f53a6e
Merge pull request #15 from sciurius/keyparse
colomon Dec 11, 2018
361689a
If original has accidental, transposed gets one.
colomon Jun 24, 2019
1cdfcb9
Handle Z with no duration.
colomon Jul 15, 2019
399d622
Support +fine+ (with text "Fine").
colomon Jul 26, 2019
ce3f790
Allow whitespace in double stop stems.
colomon Aug 26, 2019
5e0f4c7
Tuplets are allowed to have internal spaces.
colomon Aug 28, 2019
9fd0b2f
Update version number for last change.
colomon Aug 28, 2019
42751a7
Make 6/4 bars beam in half notes.
colomon Oct 21, 2019
5459f7c
Honor ABC file line breaks in Lilypond output.
colomon Oct 24, 2019
3963587
Refactor tad.
colomon Oct 31, 2019
d297fcf
Aborted attempt at individual tune extraction.
colomon Oct 31, 2019
46cc35a
Smarter .gitignore.
colomon Oct 31, 2019
1763081
Factor out main Lilypond generation code.
colomon Oct 31, 2019
16b3ef8
Remove unneeded uses.
colomon Oct 31, 2019
df81410
Refactor to create tune-to-score.
colomon Oct 31, 2019
c3f2fbf
Start sanitize-quotation-marks.
colomon Oct 31, 2019
9339c4c
First implementation of abc2book.
colomon Oct 31, 2019
4242bf9
New substitution facility for printed text strings
colomon Oct 31, 2019
45f23a0
Generate index and table of contents.
colomon Nov 1, 2019
b99c72b
Smarter sorting for index.
colomon Nov 1, 2019
1779c5c
:global not :globlal
colomon Nov 1, 2019
312acb3
Code to scan generated PDF and make a LaTeX index.
colomon Nov 3, 2019
81744a1
External index generation!
colomon Nov 3, 2019
a27e448
Handle ties inside multi-note stems.
colomon Nov 4, 2019
85b41b2
Update version number.
colomon Nov 4, 2019
5ebd05b
Properly center end of tune text notes.
colomon Nov 4, 2019
4b1e1a4
Bump version number.
colomon Nov 4, 2019
9f71186
Always reading nth endings with a leading [
colomon Nov 7, 2019
abd9ca8
Properly handle # signs with Lilypond.
colomon Nov 7, 2019
22bdadc
Don't insert noPageBreak before free text block.
colomon Nov 7, 2019
70a1499
Handle unicode full width hash in LaTeX output.
colomon Nov 7, 2019
cb90fe2
Switch to letter size paper.
colomon Nov 7, 2019
04fb98b
Add experimental code for figuring out tonic.
colomon Nov 7, 2019
63e2622
Allow passing through Lilypond commands.
colomon Nov 7, 2019
4439b63
Bump version number.
colomon Nov 7, 2019
a39539a
Better rules for ' handling in text.
colomon Dec 14, 2019
92a3b4e
Fix beaming on 3/4 tunes.
colomon Dec 14, 2019
499e3aa
Update minor version number.
colomon Dec 14, 2019
2dca8bb
dvipdf stopped working, so work around that.
colomon Dec 30, 2019
9e9e241
Tweak lyrics output.
colomon Jan 25, 2020
7e02ebd
Make trailing text cling to tune above it.
colomon Jan 26, 2020
a99ffc5
Add centered text block.
colomon Jan 26, 2020
16742eb
Switch qqx to run.
colomon Feb 9, 2020
ccc9fcb
Working implementation of --split mode.
colomon Feb 9, 2020
4bc615f
Make --split mandatory for split MAIN.
colomon Mar 20, 2020
040d1f0
Support !+! for pizzicato.
colomon Apr 18, 2020
5170fbf
Update version number.
colomon Apr 18, 2020
bb33d2e
TitleSkip support.
colomon May 9, 2020
3658532
Factor out start-lilypond for top-of-file.
colomon May 14, 2020
7cc61e8
First reasonably successful rewrite of sections.
colomon May 14, 2020
66aadd1
Use "so" to collapse junctions.
colomon May 25, 2020
cd130b4
First changes needed for DucksRevenge.abc.
colomon May 25, 2020
757010b
Improve section handling.
colomon May 27, 2020
080c8b9
Include "end_nth_ending" as space type.
colomon May 28, 2020
c308eca
Expand concept of "space".
colomon May 28, 2020
c491915
Introducing $log, have debugging info dumped to it.
colomon Jun 9, 2020
39ce79a
Update version number.
colomon Jun 9, 2020
caff391
Front and back cover support.
colomon Jun 10, 2020
d07a25d
Add Intro feature to book.
colomon Jun 10, 2020
bc8ef39
Shrink music by 15%.
colomon Jun 16, 2020
14c47f1
Redo margins to compensate for shrinking.
colomon Jun 16, 2020
5165769
Make page 1 the first page of music.
colomon Jun 16, 2020
ce4c48b
Refactor to create write-section.
colomon Jun 18, 2020
2bf7fdb
Catch repeated section after endings.
colomon Jun 18, 2020
347508b
Split front cover and title pages plus --no-cover
colomon Jun 20, 2020
2580824
Send table of contents to LaTeX.
colomon Jun 21, 2020
f9e6e18
Update version number!
colomon Jun 21, 2020
0eb9ca6
Index header goes across columns.
colomon Jun 23, 2020
1e9d14b
Tweak font sizes for table of contents and index.
colomon Jun 23, 2020
85c465f
Vertically center table of contents.
colomon Jun 24, 2020
366743c
Add empty markup to allow breaks between tunes.
colomon Jun 28, 2020
80d2be8
Set ragged-bottom for normal ABC output.
colomon Jun 28, 2020
0609d50
Update version number to reflect abc2ly fix.
colomon Jun 28, 2020
6e90c42
Updated the README to 2020.
colomon Jul 6, 2020
615d7f2
Rework how we look for partial bars to mark.
colomon Jul 21, 2020
28b845c
Add commented out alternate code for DS/DC.
colomon Sep 13, 2020
c494d4c
Avoid every tune ending with a no-page-break.
colomon Sep 13, 2020
30b2a85
Make sure index starts on new page
colomon Dec 9, 2020
043104c
Allow copyright at end of TOC
colomon Dec 9, 2020
4b8afa4
Add additional accent support.
colomon Jan 22, 2021
deca93b
Add auth to META6.json.
colomon Jan 22, 2021
b835f39
Needed auth to use zef???
colomon Jan 22, 2021
91e2d12
Add tenuto
colomon Mar 20, 2021
7543260
Update version number
colomon Mar 20, 2021
2345c64
Handle chord_or_text in abcoctave
colomon Jul 29, 2021
9c007c3
Clean up test by switching to heredoc
colomon Sep 18, 2022
b50e358
Nicer README, update META6.json
colomon Sep 18, 2022
88104d8
First attempt at quick script to start book
colomon Oct 6, 2022
a144a29
Tweak to make table of contents work for new book
colomon Oct 7, 2022
67d9878
Allow notes to be passed in
colomon Oct 7, 2022
e59b04d
Allow notes file to override ABC file N: fields
colomon Oct 7, 2022
f17169e
Add abc2tuneindex, bump version number
colomon Oct 7, 2022
67d2c6d
Add '[|' to the grammar, subtitles
colomon Mar 24, 2024
25588c5
Rename files to new standards
colomon Mar 24, 2024
7cc304a
Update version number, filenames
colomon Mar 24, 2024
ac0121f
Supress error on warning
colomon Dec 10, 2024
5ff5e8a
Sanitize TOC entry
colomon May 27, 2024
604dee5
Don't issue bar markers for normal measures
colomon Dec 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*.pdf
*.ly
*.ps
.precomp
blib
5 changes: 5 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
sudo: false
language: perl6
perl6:
- latest
36 changes: 36 additions & 0 deletions META6.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"perl" : "6.*",
"name" : "ABC",
"version" : "0.7.2",
"auth" : "zef:colomon",
"description" : "Toolkit for dealing with ABC music notation",
"depends" : [ "File::Temp" ],
"license" : "Artistic-2.0",
"provides" : {
"abc2ly" : "bin/abc2ly",
"abc2book" : "bin/abc2book",
"abctranspose" : "bin/abctranspose",
"abcoctave" : "bin/abcoctave",
"abc2tuneindex" : "bin/abc2tuneindex",
"ABC::Duration" : "lib/ABC/Duration.rakumod",
"ABC::Pitched" : "lib/ABC/Pitched.rakumod",
"ABC::Header" : "lib/ABC/Header.rakumod",
"ABC::Grammar" : "lib/ABC/Grammar.rakumod",
"ABC::Note" : "lib/ABC/Note.rakumod",
"ABC::Stem" : "lib/ABC/Stem.rakumod",
"ABC::KeyInfo" : "lib/ABC/KeyInfo.rakumod",
"ABC::Utils" : "lib/ABC/Utils.rakumod",
"ABC::Tune" : "lib/ABC/Tune.rakumod",
"ABC::Rest" : "lib/ABC/Rest.rakumod",
"ABC::Tuplet" : "lib/ABC/Tuplet.rakumod",
"ABC::BrokenRhythm" : "lib/ABC/BrokenRhythm.rakumod",
"ABC::Chord" : "lib/ABC/Chord.rakumod",
"ABC::LongRest" : "lib/ABC/LongRest.rakumod",
"ABC::GraceNotes" : "lib/ABC/GraceNotes.rakumod",
"ABC::Context" : "lib/ABC/Context.rakumod",
"ABC::Actions" : "lib/ABC/Actions.rakumod",
"ABC::ToLilypond" : "lib/ABC/ToLilypond.rakumod"
},
"source-type" : "git",
"source-url" : "git://github.com/colomon/ABC.git"
}
Empty file removed README
Empty file.
40 changes: 40 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# ABC

This module is a set of tools for dealing with [ABC music notation](https://abcnotation.com/wiki/abc:standard:v2.1) files in Raku (formerly known as Perl 6). This includes a grammar for most of the notation format (the standard has a lot of twisty corners, and we do not support all of them), Raku data structures for representing them, and some useful utilities.

```raku
my $music = q:to<ABC-end>;
X:044
T:Elsie Marley
B:Robin Williamson, "Fiddle Tunes" (New York 1976)
N:"printed by Robert Petrie in 1796 and is
N:"described by him as a 'bumpkin'."
Z:Nigel Gatherer
M:6/8
L:1/8
K:G
BAB G2G|G2g gdc|BAB G2G|=F2f fcA|
BAB G2G|G2g gdB|c2a B2g|A2=f fcA:|
ABC-end

my $match = ABC::Grammar.parse($music, :rule<tune>, :actions(ABC::Actions.new));
ok $match, 'tune recognized';
isa-ok $match.ast, ABC::Tune, 'and ABC::Tune created';
ok $match.ast.header.is-valid, "ABC::Tune's header is valid";
is $match.ast.music.elems, 57, '$match.ast.music has 57 elements';
```

There are several scripts in bin/ built on the library:

* abc2ly: converts an ABC file to the Lilypond ly format, then invokes Lilypond on it to create high quality sheet music. If you install ABC using zef you should just be able to say ```abc2ly wedding.abc```to convert ```wedding.abc``` to ```wedding.pdf``` via Lilypond file ```wedding.ly```

NOTE: Lilypond also has an abc2ly script; last time I tried it it produced
hideous looking output from Lilypond. If you've got both installed, you will
have to make sure the Raku bin of abc2ly appears first in your PATH.

* abc2book: Given an ABC file and a simple “book” instructions file (our own format), this makes a book PDF. This uses Lilypond for music formatting, LaTeX for table of contents and index of tunes, and qpdf to stitch the results together into one file. This is still pretty experimental, but has produced one published book, [The Fiddle Music of Newfoundland & Labrador Volume 1, Revised 2020 Edition](https://fmnl1.nltrad.ca)

* abctranspose: Simple tool for transposing ABC files.

* abcoctave: Simple tool for shifting the octave of ABC files.

Loading