[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lilypond-user
Subject:    Re: New package implementing support for The Helmholtz-Ellis Just Intonation (HEJI) pitch notation s
From:       Gregory Evans <gregoryrowlandevans () gmail ! com>
Date:       2024-03-20 2:09:26
Message-ID: CA+Y=1vjQNd3eWY9A0mRMB2OFH5WNw85d4GRYLXrvwn6WdFuNkg () mail ! gmail ! com
[Download RAW message or body]

Hi masterbuilder/Gylfi,
This looks like a cool package. Designing the user interface, I think,
really is a matter of taste. My abjad-ext-microtones is meant specifically
to work with the abjad API, so I only implemented a set of accidental
overrides. I also thought it was important to design the stylesheets so
that a different font could be swapped out if desired. The real goal of the
python aspect of my program was to allow tones to be composed numerically
(i.e. as transpositions above a fundamental) so if you had the ability to
model something like \ji-multiplication c' 7/4 (which would result in a
septimally lowered bf') that would be my preferred interface. I'm certain
the two interface systems could even collaborate with one another.
Unfortunately I personally don't know how to do this in scheme, thus: my
python system. Conveniently, I already compose mainly with python so I am
not in desperate need of the interface I just described. However, I think
the true ratio-based system is what a lot of composers want from JI. And a
software system is great for automatically calculating transpositions.

again: the project is very nice.

warm regards,
gregory rowland evans

On Tue, Mar 19, 2024 at 11:30 AM Gylfi <gylfi@stebbi.is> wrote:

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


-- 
gregory rowland evans
http://www.gregoryrowlandevans.com
https://github.com/GregoryREvans
https://soundcloud.com/gregory-rowland-evans

[Attachment #3 (text/html)]

<div dir="ltr"><div class="markdown-here-wrapper" style=""><p style="margin:0px 0px \
1.2em!important">Hi masterbuilder/Gylfi,<br>This looks like a cool package. Designing \
the user interface, I think, really is a matter of taste. My <code \
style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px \
0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid \
rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">abjad-ext-microtones</code> \
is meant specifically to work with the <code \
style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px \
0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid \
rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">abjad</code> \
API, so I only implemented a set of accidental overrides. I also thought it was \
important to design the stylesheets so that a different font could be swapped out if \
desired. The real goal of the python aspect of my program was to allow tones to be \
composed numerically (i.e. as transpositions above a fundamental) so if you had the \
ability to model something like <code \
style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px \
0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid \
rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">\ji-multiplication \
c&#39; 7/4</code> (which would result in a septimally lowered <code \
style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px \
0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid \
rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">bf&#39;</code>) \
that would be my preferred interface. I'm certain the two interface systems could \
even collaborate with one another. Unfortunately I personally don't know how to do \
this in scheme, thus: my python system. Conveniently, I already compose mainly with \
python so I am not in desperate need of the interface I just described. However, I \
think the true ratio-based system is what a lot of composers want from JI. And a \
software  system is great for automatically calculating transpositions.</p> <p \
style="margin:0px 0px 1.2em!important">again: the project is very nice.</p> <p \
style="margin:0px 0px 1.2em!important">warm regards,<br>gregory rowland evans</p> \
<div title="MDH:SGkgPHNwYW4gemV1bTRjMj0iUFJfMThfMCIgZGF0YS1kZG53YWI9IlBSXzE4XzAiIGFyaWEtaW52
 YWxpZD0ic3BlbGxpbmciIGNsYXNzPSJMSSBuZyI+bWFzdGVyYnVpbGRlcjwvc3Bhbj4vR3lsZmks
PGRpdj5UaGlzIGxvb2tzIGxpa2UgYSBjb29sIHBhY2thZ2UuIERlc2lnbmluZyB0aGUgdXNlciBp
bnRlcmZhY2UsIEkgdGhpbmssIHJlYWxseSBpcyBhIG1hdHRlciBvZiB0YXN0ZS4gTXkgYGFiamFk
LWV4dC1taWNyb3RvbmVzYCBpcyBtZWFudCBzcGVjaWZpY2FsbHkgdG8gd29yayB3aXRoIHRoZSBg
YWJqYWRgIEFQSSwgc28gSSBvbmx5IGltcGxlbWVudGVkIGEgc2V0IG9mIGFjY2lkZW50YWwgb3Zl
cnJpZGVzLiBJIGFsc28gdGhvdWdodCBpdCB3YXMgaW1wb3J0YW50IHRvIGRlc2lnbiZuYnNwO3Ro
ZSBzdHlsZXNoZWV0cyBzbyB0aGF0IGEgZGlmZmVyZW50IGZvbnQgY291bGQgYmUgc3dhcHBlZCBv
dXQgaWYgZGVzaXJlZC4gVGhlIHJlYWwgZ29hbCBvZiBteSBwcm9ncmFtIHdhcyB0byBhbGxvdyB0
b25lcyB0byBiZSBjb21wb3NlZCBudW1lcmljYWxseSAoaS5lLiBhcyB0cmFuc3Bvc2l0aW9ucyBh
Ym92ZSBhIGZ1bmRhbWVudGFsKSBzbyBpZiB5b3UgaGFkIHRoZSBhYmlsaXR5IHRvIG1vZGVsIHNv
bWV0aGluZyBsaWtlIGBcamktbXVsdGlwbGljYXRpb24gYycgNy80YCAod2hpY2ggd291bGQgcmVz
dWx0IGluIGEgc2VwdGltYWxseSBsb3dlcmVkIGBiZidgKSB0aGF0IHdvdWxkIGJlIG15IHByZWZl
cnJlZCBpbnRlcmZhY2UuIEknbSBjZXJ0YWluIHRoZSB0d28gc3lzdGVtcyBjb3VsZCBldmVuIGNv
bGxhYm9yYXRlIHdpdGggb25lIGFub3RoZXIuIFVuZm9ydHVuYXRlbHkgSSBwZXJzb25hbGx5IGRv
bid0IGtub3cgaG93IHRvIGRvIHRoaXMgPHNwYW4gemV1bTRjMj0iUFJfMTlfMCIgZGF0YS1kZG53
YWI9IlBSXzE5XzAiIGFyaWEtaW52YWxpZD0iZ3JhbW1hciIgY2xhc3M9IkxtIG5nIj5pbiBzY2hl
bWU8L3NwYW4+LCB0aHVzIG15IHB5dGhvbiBzeXN0ZW0uIENvbnZlbmllbnRseSwgSSBhbHJlYWR5
IDxzcGFuIHpldW00YzI9IlBSXzIwXzAiIGRhdGEtZGRud2FiPSJQUl8yMF8wIiBhcmlhLWludmFs
aWQ9ImdyYW1tYXIiIGNsYXNzPSJMbSBuZyI+Y29tcG9zZTwvc3Bhbj4gbWFpbmx5IHdpdGgmbmJz
cDtweXRob24gc28mbmJzcDtJIGFtIG5vdCBpbiBkZXNwZXJhdGUmbmJzcDtuZWVkIG9mIHRoZSZu
YnNwO2ludGVyZmFjZSBJIGp1c3QgZGVzY3JpYmVkLiBIb3dldmVyLCBJIHRoaW5rIHRoZSB0cnVl
IHJhdGlvLWJhc2VkIHN5c3RlbSBpcyB3aGF0IGEgbG90IG9mIGNvbXBvc2VycyB3YW50IGZyb20g
SkkuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5hZ2FpbjogdGhlIHByb2plY3QgaXMgdmVyeSBu
aWNlLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+d2FybSByZWdhcmRzLDwvZGl2PjxkaXY+Z3Jl
Z29yeSByb3dsYW5kIGV2YW5zPC9kaXY+" \
style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0"></div></div><div></div><div></div></div><br><div \
class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Mar 19, 2024 at \
11:30 AM Gylfi &lt;<a href="mailto:gylfi@stebbi.is">gylfi@stebbi.is</a>&gt; \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div \
dir="ltr"><div><div><span><span>Greetings \
everyone,</span></span></div></div><div><span><span><br></span></span></div><div><span><span>I \
want to share with the community some work I&#39;ve been doing on implementing proper \
support for the HEJI</span></span> notation system in LilyPond. I wouldn&#39;t call \
it stable quite yet, as I&#39;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:</div><div><br></div><div><a \
href="https://github.com/BridgeTheMasterBuilder/heji-ly" \
target="_blank">https://github.com/BridgeTheMasterBuilder/heji-ly</a></div><div><br></div><div>(let \
me know if you are opposed to using GitHub, I can also host it somewhere \
else)</div><div><br></div><div>The differences between this package and existing \
packages that also implement HEJI support (I am personally only aware of two: <a \
href="https://github.com/levinericzimmermann/ekme-heji.ily" \
target="_blank">https://github.com/levinericzimmermann/ekme-heji.ily</a> and <a \
href="https://github.com/GregoryREvans/abjad-ext-microtones" \
target="_blank">https://github.com/GregoryREvans/abjad-ext-microtones</a>) are the \
following:</div><div><ul><li>Complete support for all accidentals, with the exception \
of &quot;enharmonic schismas&quot; and equal-tempered accidentals which are planned \
for future releases.</li><li>Modular interface for arbitrary combinations of \
accidentals (this is perhaps what I&#39;m most interested in getting feedback on - to \
me it&#39;s a reasonable interface but I don&#39;t know what other people&#39;s \
opinion will be)</li><li>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.</li></ul><div>I&#39;ve included some example scores in the repository, \
including: Recreating the otonal and utonal harmonic series examples found here <a \
href="https://marsbat.space/pdfs/HEJI2_legend+series.pdf" \
target="_blank">https://marsbat.space/pdfs/HEJI2_legend+series.pdf</a>; 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&#39;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 \
&quot;natural&quot; 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).</div><div><br></div><div>Before starting this \
project I had virtually no exposure to the Scheme API (though I&#39;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.<br></div><div><br></div><div>I hope \
this will be useful to others.</div><div><br></div><div>Best \
regards,</div><div>masterbuilder <br></div></div></div> </blockquote></div><br \
clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div \
dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr">gregory rowland \
evans<br><div><div><a href="http://www.gregoryrowlandevans.com/" \
style="color:rgb(17,85,204)" target="_blank"><font face="times new roman, serif" \
size="1">http://www.gregoryrowlandevans.com</font></a><br></div><div><font size="1" \
face="times new roman, serif"><a href="https://github.com/GregoryREvans" \
style="color:rgb(17,85,204)" \
target="_blank">https://github.com/GregoryREvans</a></font><font face="times new \
roman, serif" size="1"><br></font></div><div><a \
href="https://soundcloud.com/gregory-rowland-evans" style="color:rgb(17,85,204)" \
target="_blank"><font face="times new roman, serif" \
size="1">https://soundcloud.com/gregory-rowland-evans</font></a></div></div></div></div></div></div>




[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic