Greetings everyone,

I want to share with the community some work I've been doing on
implementing proper support for the HEJI notation system in LilyPond. I
wouldn't call it stable quite yet, as I'm still open to making breaking
changes to the interface based on feedback. However, I would say it has
(hopefully) reached the point where it is usable in real projects. You can
find the repository here:

https://github.com/BridgeTheMasterBuilder/heji-ly

(let me know if you are opposed to using GitHub, I can also host it
somewhere else)

The differences between this package and existing packages that also
implement HEJI support (I am personally only aware of two:
https://github.com/levinericzimmermann/ekme-heji.ily and
https://github.com/GregoryREvans/abjad-ext-microtones) are the following:

   - Complete support for all accidentals, with the exception of
   "enharmonic schismas" and equal-tempered accidentals which are planned for
   future releases.
   - Modular interface for arbitrary combinations of accidentals (this is
   perhaps what I'm most interested in getting feedback on - to me it's a
   reasonable interface but I don't know what other people's opinion will be)
   - Full playback support, even for chords, which I believe is just about
   as accurate as MIDI will allow. Sounds pretty good to my ears in any case.

I've included some example scores in the repository, including: Recreating
the otonal and utonal harmonic series examples found here
https://marsbat.space/pdfs/HEJI2_legend+series.pdf; some other examples
related to the harmonic series; a classic Ben Johnston chord from the song
Quietness; a Barbershop quartet arrangment of Kentucky Babe notated with
the exact harmonies that could plausibly appear in a performance (but still
highly theoretical and pure, it's not a transcription of any real
performance) and a traditional bagpipe tune Sweet Maid of Glendaruel. These
last two examples are a bit out there as far as using HEJI notation is
concerned. I only chose them because they are "natural" examples of 7-limit
just intonation that happen to be public domain (if anybody knows of any
other examples of public domain music in extended just intonation please
let me know).

Before starting this project I had virtually no exposure to the Scheme API
(though I've been a semi-casual LilyPond user for a long time), so I might
be doing some things inefficiently or violating some best practices, let me
know if you see something particularly egregious. There are some hacks in
there that I want to properly address at some point, they should be marked
with TODO.

I hope this will be useful to others.

Best regards,
masterbuilder

Reply via email to