tr-igem / ekmelily

Extension for LilyPond for the notation of microtonal music
http://www.ekmelic-music.org/en/extra/ekmelily.htm
GNU General Public License v3.0
0 stars 1 forks source link

Note names not recognized #3

Open imwihfm opened 1 month ago

imwihfm commented 1 month ago

I have the following ly file wherein I use ekmelily, but the file can't compile due to "... is not a note name". Could you please take a look and tell me if you have any ideas why the names are not suppoerted? Thank you in advance!

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Generated by Klarenz v190624 %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Load modules, setup & configurations %%%
#(set-default-paper-size "quarto")
#(set-global-staff-size 14)
\version "2.24.3"
\language "deutsch"
\include "ekmel-31.ily"
\ekmelicStyle std

\header {
    tagline = "Generated by Klarenz v190624"  

}

\layout {
    \context {
        \Score
        \remove "Timing_translator"
        \remove "Default_bar_line_engraver"
    }
    \context {
        \Staff
        \consists "Timing_translator"
        \consists "Default_bar_line_engraver"
        \RemoveEmptyStaves
    }
}

\paper {
    left-margin = 20
    right-margin = 20
    score-system-spacing = #'( (basic-distance . 10) (minimum-distance . 10) (padding . 10) (stretchability . 0) )
    system-system-spacing = #'( (basic-distance . 0) (minimum-distance . 0) (padding . 10) (stretchability . 0) )
    top-margin = 20
    bottom-margin = 20
    indent = 0
    %% entfernt die Trennline oberhalb der Fußnotentexte am Seitenende
    footnote-separator-markup = ##f  
}

%%% Load parts and score %%%

KLARENZAAAAB = \new Staff \with {instrumentName = #"" shortInstrumentName = #""}
{
\clef "treble"  \time 4/4  c'4 as4 es4 g4 |
 dis'4 as,4 g'4 c'4 |
 as4 es4 g4 dis'4 |
 as,4 gih'4 hesih4 as4 |
 es4 gih4 disih'4 gesih,4 |
 gih'4 hesih4 as4 es4 |
 gih4 disih'4 gesih,4 gis'4 |
 hesih4 as4 desih4 disih'4 |
 g,4 gisih'4 hesih4 as4 |
 desih4 e'4 g,4 gisih'4 |
 h4 as4 desih4 e'4 |
 gesesih,4 a'4 h4 as4 |
 desih4 gis4 gesesih,4 aih'4 |
 h4 as4 c4 dih4 |
 gisih4 ges,4 ais'4 h4 |
 as4 c4 dih4 gisih4 |
 ges,4 ais'4 besih4 as4 |
 hesih,4 dih4 eih'4 asesih4 |
 fesih,4 aisih'4 besih4 as4 |
 h,4 d4 f'4 a4 |
 fesih,4 h'4 besih4 as4 |
 h,4 d4 f'4 a4 |
 f,4 h'4 b4 as4 |
 besih,4 d4 f'4 a4 |
 f,4 hih'4 b4 as4 |
 b,4 d4 fih'4 aesih4 |
 eesih,4 c''4 b4 as4 |
 b,4 d4 fih'4 aesih4 |
 eesih,4 c''4 b4 as4 |
 aesih,4 d4 fis'4 b4 |
 e,4 cih''4 aesih4 as4 |
 a,4 d4 fis'4 b4 |
 e,4 cis''4 aesih4 as4 |
 a,4 d4 fis'4 b4 |
 esesih,4 cis''4 aesih4 as4 |
 asesih,4 cisih4 fisih'4 esesih,4 |
 cisih''4 a4 as4 as,4 |
 cisih4 fisih'4 es,4 d''4 |
 a4 as4 as,4 cisih4 |
 fisih'4 besih4 d''4 a4 |
 as4 gesih,4 cisih4 g'4 |
 h4 dih''4 as4 g,4 |
 cisih4 g'4 desih,4 h4 |
 dis''4 as4 gesesih,4 cisih4 |
 g'4 d,4 h4 disih''4 |
 as4 gesesih,4 cisih4 gih'4 |
 d,4 hih4 disih''4 as4 |
 ges,4 cis4 gih'4 desesih,4 |
 hih4 e''4 as4 fesih,4 |
 cis4 gih'4 desesih,4 hih4 |
 eih''4 as4 fesih,4 cis4 |
 gis'4 des,4 c'4 eih''4 |
 as4 f,4 cis4 gis'4 |
 des,4 c'4 f''4
}

\score {
 \KLARENZAAAAB
}
tr-igem commented 1 month ago

Your file uses the 31-edo version of ekmelily which doesn't define names with the suffixes -ih and -eh. There are only the names "eh" and "ah" which are substitutes for "ee" and "aa". See the table of note names for 31edo at ekmelic-music.org . And the \language command should be placed after the \include. It is an override of LilyPonds original command.

imwihfm commented 1 month ago

But I am sure this code was working a couple of years ago. Do the error-making names exist in some other \include system? A little background: I wrote a lilypond wrapper around 2018 (https://klarenz.codeberg.page/), and from the beginning I had support added to it for microtonal notation via Ekmelily. Back then such code was working, as I look into the making microtonal note-names of my python package: https://codeberg.org/klarenz/klarenz/src/commit/49484466b38719a335a5f5d01f3d7092d46f8fcd/src/klarenz/pitch.py#L17

tr-igem commented 1 month ago

The note names created in your python package are for 72edo not 31edo. Vou have to include "ekmel.ily" instead of "ekmel-31.ily". I introduced support for other systems than 72 with version 3.0 in 2019, where for each system own sets of note names are defined. You can find old versions in this archive . I assume you refering to version 2.0, 2.1, or 2.2 from 2018 or maybe even an older one. Actually, I removed note names starting with ae- or aa- in later versions since they are absolute nonsense in German. But they exist in \language "nederlands". I also found in your posted score the name besih from "nederlands" which must be hesih in "deutsch".

tr-igem commented 4 weeks ago

I think the best solution is to provide this special set of note names in a separate language table. I have uploaded now an include file "ekmel-old.ily" with only these note names and the notation style arrow which is probably what you mean with std which is not defined in 72edo, but arrow is the default style. So you don't need the commands \language and \ekmelicStyle. This solution is anyway better than using an old version of ekmelily. I compiled your score with Lilypond 2.24.2 without errors, but with a warning that Default_bar_line_engraver does not exist. It is documented in 2.22 but no longer in 2.24.