On Sun, Aug 1, 2021 at 1:33 AM Jean Abou Samra <j...@abou-samra.fr> wrote:

>
> Does this code illustrate your problem?
>
> \version "2.22.1"
>
> {
>    \override Accidental.X-extent = #'(-2 . 2)
>    <ges' aes'>
> }
>

Yes and no. Your code *does* allow me to set the X-extent with those 2
numbers and it has an effect, whereas in persian.ly changing the
X-extent numbers has zero effect.

I added your code but get a runtime error or warning (?) at your
"(ly:stencil-add", referring to attached persianT.ly:

mintty screen dump

Drawing systems...persianT.ly:349:8: In procedure ly_stencil_add in
expression (ly:stencil-add (ly:grob-property grob #)
(ly:separation-item::print grob)):     persianT.ly:349:8: Wrong type
(expecting Stencil): #f


I still can't control spacing with those additions by tweaking the #s.

Next, if I just add the latter part of your suggested code (ie not
after-line-breaking = stuff) there is an effect.
I can now move the first troublesome koron around with the X-extent number
pair, but this is no help as the notes don't move out of the way and the
accidental is still on top of one of the notes, so it seems to control
location but not size of the accidental?.

Cheers,
Kees


> If so, this comes from the spacing of accidentals
> being based on so-called skylines, namely outlines,
> and not only extents. This was probably not the
> case for accidentals in an old version such as 2.12.
> You can observe the skylines using
>
> \version "2.22.1"
>
> #(ly:set-option 'debug-skylines)
>
> \layout {
>    \context {
>      \Score
>      \override Accidental.after-line-breaking =
>      #(lambda (grob)
>         (set! (ly:grob-property grob 'stencil)
>               (ly:stencil-add
>                 (ly:grob-property grob 'stencil)
>                 (ly:separation-item::print grob))))
>      % \override Accidental.horizontal-skylines =
> #ly:grob::simple-horizontal-skylines-from-extents
>    }
> }
>
> {
>    \override Accidental.X-extent = #'(-2 . 2)
>    <ges' aes'>
> }
>
>
> Now try adding
>
> \layout {
>    \context {
>      \Score
>      \override Accidental.horizontal-skylines =
> #ly:grob::simple-horizontal-skylines-from-extents
>    }
> }
>
> and you'll get an effect on spacing.
>
> Best,
> Jean
>
>
\version "2.22.0"
%{
Author: Kees van den Doel kvand...@shaw.ca

Init file for Persian music notation.

To  use download  the PostScript  Type  1 Microtonal  Font from  Andrián
Pertout  (http://www.pertout.com/PhD2007Introduction.htm)  and copy  the
.pfb            file            into            the            directory
LilyPond/usr/share/lilypond/current/fonts/type1.

This header file defines Persian microtonal alterations, the approximate
quartertone   flat  (koron)  and   the  approximate   quartertone  sharp
(sori). They can be obtained by  appending 'k' (koron) and 'o' (sori) to
the English note symbol.  The  standard symbols for this were introduced
by Vaziri.

Key  signatures are  defined  for all  the  Persian modes,  there are  5
distinct scales  with microtones  and the normal  major scale.   All the
gushe's from all dastgahs can be notated with just these 6.

The note immediately  following a koron is sometimes  (when the interval
defined by  the note  before the koron  and after  the koron is  a minor
third, and the note below the  finalis in esfahan according to some (but
not all)  Persian musicians))  lowered by about  20 cents.  This  is not
notated, but considered part of the scale tuning. To accomodate this for
getting better sounding  MIDI I've introduced the "vlat"  (append 'v' to
the note) to indicate this. Actually  this note should also get a strong
vibrato,  and the  vibrato and  low tuning  are  perceptually integrated
(serialism!). This is just for MIDI and has no effect on the notation.

In the tuning  I've followed "Traditional Persian Art  Music, by Dariush
Tala'i".  The  tunings are  also very close  to those suggested  in "The
Dastgah  Concept in  Persian Music,  by  Hormoz Farhat".   See also  "Le
repertoire-modele  de  la  musique  iranienne,  by  Jean  During"  which
contains measurements  of the  intervals in actual  practice, consistent
with the tuning in this file.

There are no other tuning issues  in Persian music. Because the music is
monophonic  the difference  between  just intonation  (for example)  and
equal temperament is merely academic, because are no chords where out of
tune intervals are noticeable.

Note name suffixes:

            ff for double-flat
			f  for flat
			k  for koron (about quarter-flat, -3/10 of whole tone, 60 cent)
			o  for sori  (about quarter-sharp, 2/10 of whole tone, 40 cent)
			s  for sharp
			x  for double-sharp
            v  for 20 cent flat tuned note ("vlat", not notated)
            fv for flat tuned 20C down (notated as a normal flat)
            sv for sharp tuned 20C down (notated as a normal sharp: will never occur in traditional Persian music)

6 Persian  key signatures are  provided they are:

        shur?       (shur gushe's with natural 5th degree)
        shurk?      (shur gushe's with koron 5th degree)
        esfahan?
        mokhalefsegah?
        chahargah?
        mahur?

where ? is the key (A-G) of the mode.

Setting the  key signatures  requires two commmands,  one to  define the
alterations,  and one  to set  the key  signature (append  "Key"  to the
name). For example for chahargah in D:

\include "persian.ly"
\score {
  \relative c' {
           \set Staff.keyAlterations = \chahargahD
           \override Score.KeySignature.text = #chahargahDKey
            bk'8 a gs fo r g ak g fs ek d c d ef16 d c4
     }
  \midi { }
  \layout { }
  }
}


%}

% Define tunings:

#(define-public KORON -3/10)
#(define-public SORI 1/5)
#(define-public VLAT -1/10)
#(define-public FVLAT -3/5)
#(define-public SVLAT 2/5)

pitchnamesEnglish = #`(
	(c-flatflat . ,(ly:make-pitch -1 0 DOUBLE-FLAT))
	(c-flat . ,(ly:make-pitch -1 0 FLAT))
	(c . ,(ly:make-pitch -1 0 NATURAL))
	(c-sharp . ,(ly:make-pitch -1 0 SHARP))
	(c-sharpsharp . ,(ly:make-pitch -1 0 DOUBLE-SHARP))
	(d-flatflat . ,(ly:make-pitch -1 1 DOUBLE-FLAT))
	(d-flat . ,(ly:make-pitch -1 1 FLAT))
	(d . ,(ly:make-pitch -1 1 NATURAL))
	(d-sharp . ,(ly:make-pitch -1 1 SHARP))
	(d-sharpsharp . ,(ly:make-pitch -1 1 DOUBLE-SHARP))
	(e-flatflat . ,(ly:make-pitch -1 2 DOUBLE-FLAT))
	(e-flat . ,(ly:make-pitch -1 2 FLAT))
	(e . ,(ly:make-pitch -1 2 NATURAL))
	(e-sharp . ,(ly:make-pitch -1 2 SHARP))
	(e-sharpsharp . ,(ly:make-pitch -1 2 DOUBLE-SHARP))
	(f-flatflat . ,(ly:make-pitch -1 3 DOUBLE-FLAT))
	(f-flat . ,(ly:make-pitch -1 3 FLAT))
	(f . ,(ly:make-pitch -1 3 NATURAL))
	(f-sharp . ,(ly:make-pitch -1 3 SHARP))
	(f-sharpsharp . ,(ly:make-pitch -1 3 DOUBLE-SHARP))
	(g-flatflat . ,(ly:make-pitch -1 4 DOUBLE-FLAT))
	(g-flat . ,(ly:make-pitch -1 4 FLAT))
	(g . ,(ly:make-pitch -1 4 NATURAL))
	(g-sharp . ,(ly:make-pitch -1 4 SHARP))
	(g-sharpsharp . ,(ly:make-pitch -1 4 DOUBLE-SHARP))
	(a-flatflat . ,(ly:make-pitch -1 5 DOUBLE-FLAT))
	(a-flat . ,(ly:make-pitch -1 5 FLAT))
	(a . ,(ly:make-pitch -1 5 NATURAL))
	(a-sharp . ,(ly:make-pitch -1 5 SHARP))
	(a-sharpsharp . ,(ly:make-pitch -1 5 DOUBLE-SHARP))
	(b-flatflat . ,(ly:make-pitch -1 6 DOUBLE-FLAT))
	(b-flat . ,(ly:make-pitch -1 6 FLAT))
	(b . ,(ly:make-pitch -1 6 NATURAL))
	(b-sharp . ,(ly:make-pitch -1 6 SHARP))
	(b-sharpsharp . ,(ly:make-pitch -1 6 DOUBLE-SHARP))

	(cff . ,(ly:make-pitch -1 0 DOUBLE-FLAT))
	(cf . ,(ly:make-pitch -1 0 FLAT))
	(cv . ,(ly:make-pitch -1 0 VLAT))
	(cfv . ,(ly:make-pitch -1 0 FVLAT))
	(ck . ,(ly:make-pitch -1 0 KORON))
	(c . ,(ly:make-pitch -1 0 NATURAL))
	(co . ,(ly:make-pitch -1 0 SORI))
	(cs . ,(ly:make-pitch -1 0 SHARP))
	(csv . ,(ly:make-pitch -1 0 SVLAT))
	(css . ,(ly:make-pitch -1 0 DOUBLE-SHARP))
	(cx . ,(ly:make-pitch -1 0 DOUBLE-SHARP))

	(dff . ,(ly:make-pitch -1 1 DOUBLE-FLAT))
	(df . ,(ly:make-pitch -1 1 FLAT))
	(dv . ,(ly:make-pitch -1 1 VLAT))
	(dfv . ,(ly:make-pitch -1 1 FVLAT))
	(dk . ,(ly:make-pitch -1 1 KORON))
	(d . ,(ly:make-pitch -1 1 NATURAL))
	(do . ,(ly:make-pitch -1 1 SORI))
	(ds . ,(ly:make-pitch -1 1 SHARP))
	(dsv . ,(ly:make-pitch -1 1 SVLAT))
	(dss . ,(ly:make-pitch -1 1 DOUBLE-SHARP))
	(dx . ,(ly:make-pitch -1 1 DOUBLE-SHARP))

	(eff . ,(ly:make-pitch -1 2 DOUBLE-FLAT))
	(ef . ,(ly:make-pitch -1 2 FLAT))
	(ev . ,(ly:make-pitch -1 2 VLAT))
	(efv . ,(ly:make-pitch -1 2 FVLAT))
	(ek . ,(ly:make-pitch -1 2 KORON))
	(e . ,(ly:make-pitch -1 2 NATURAL))
	(eo . ,(ly:make-pitch -1 2 SORI))
	(es . ,(ly:make-pitch -1 2 SHARP))
	(esv . ,(ly:make-pitch -1 2 SVLAT))
	(ess . ,(ly:make-pitch -1 2 DOUBLE-SHARP))
	(ex . ,(ly:make-pitch -1 2 DOUBLE-SHARP))

	(fff . ,(ly:make-pitch -1 3 DOUBLE-FLAT))
	(ff . ,(ly:make-pitch -1 3 FLAT))
	(fv . ,(ly:make-pitch -1 3 VLAT))
	(ffv . ,(ly:make-pitch -1 3 FVLAT))
	(fk . ,(ly:make-pitch -1 3 KORON))
	(f . ,(ly:make-pitch -1 3 NATURAL))
	(fo . ,(ly:make-pitch -1 3 SORI))
	(fs . ,(ly:make-pitch -1 3 SHARP))
	(fsv . ,(ly:make-pitch -1 3 SVLAT))
	(fss . ,(ly:make-pitch -1 3 DOUBLE-SHARP))
	(fx . ,(ly:make-pitch -1 3 DOUBLE-SHARP))

	(gff . ,(ly:make-pitch -1 4 DOUBLE-FLAT))
	(gf . ,(ly:make-pitch -1 4 FLAT))
	(gv . ,(ly:make-pitch -1 4 VLAT))
	(gfv . ,(ly:make-pitch -1 4 FVLAT))
	(gk . ,(ly:make-pitch -1 4 KORON))
	(g . ,(ly:make-pitch -1 4 NATURAL))
	(go . ,(ly:make-pitch -1 4 SORI))
	(gs . ,(ly:make-pitch -1 4 SHARP))
	(gsv . ,(ly:make-pitch -1 4 SVLAT))
	(gss . ,(ly:make-pitch -1 4 DOUBLE-SHARP))
	(gx . ,(ly:make-pitch -1 4 DOUBLE-SHARP))

	(aff . ,(ly:make-pitch -1 5 DOUBLE-FLAT))
	(af . ,(ly:make-pitch -1 5 FLAT))
	(av . ,(ly:make-pitch -1 5 VLAT))
	(afv . ,(ly:make-pitch -1 5 FVLAT))
	(ak . ,(ly:make-pitch -1 5 KORON))
	(a . ,(ly:make-pitch -1 5 NATURAL))
	(ao . ,(ly:make-pitch -1 5 SORI))
	(as . ,(ly:make-pitch -1 5 SHARP))
	(asv . ,(ly:make-pitch -1 5 SVLAT))
	(ass . ,(ly:make-pitch -1 5 DOUBLE-SHARP))
	(ax . ,(ly:make-pitch -1 5 DOUBLE-SHARP))

	(bff . ,(ly:make-pitch -1 6 DOUBLE-FLAT))
	(bf . ,(ly:make-pitch -1 6 FLAT))
	(bv . ,(ly:make-pitch -1 6 VLAT))
	(bfv . ,(ly:make-pitch -1 6 FVLAT))
	(bk . ,(ly:make-pitch -1 6 KORON))
	(b . ,(ly:make-pitch -1 6 NATURAL))
	(bo . ,(ly:make-pitch -1 6 SORI))
	(bs . ,(ly:make-pitch -1 6 SHARP))
	(bsv . ,(ly:make-pitch -1 6 SVLAT))
	(bss . ,(ly:make-pitch -1 6 DOUBLE-SHARP))
	(bx . ,(ly:make-pitch -1 6 DOUBLE-SHARP))
)


% Define accidental symbols. 
% Really need to have accidentals.koron and accidentals.sori

persianGlyphs = #`((-3/10 . "accidentals.mirroredflat")
       (1/5 . "accidentals.sharp.slashslash.stem")
       (0 . "accidentals.natural")
       (1/2 . "accidentals.sharp")
       (2/5 . "accidentals.sharp")
       (-1/2 . "accidentals.flat")
       (-3/5 . "accidentals.flat")
       (-1/10 . "")
       (-3/5 . "")
       (-1 . "accidentals.flatflat")
       ( 1 . "accidentals.doublesharp")
)


% For now use an external font as a workaround

FONTNAME = "Microtonal Notation Text"
%FONTNAME = "PersianMusicSymbols"
%FONTNAME = "Vaziri"

% emacs: to enter UTF-8 set coding system utf-8, the use M-x ucs-insert for Hex unicode

% symbols from font "PersianMusicSymbols 001.000"

NATURALSYMBOL = "'"
KORONSYMBOL = ""
SORISYMBOL = ""
FLATSYMBOL = "\""
SHARPSYMBOL = "!"
DFLATSYMBOL = "$"
DSHARPSYMBOL = "#"


% symbols from font "Vaziri"

NATURALSYMBOL = ""
KORONSYMBOL = ""
SORISYMBOL = ""
FLATSYMBOL = ""
SHARPSYMBOL = ""
DFLATSYMBOL = ""
DSHARPSYMBOL = ""

% symbols from font "Microtonal Notation Text"

NATURALSYMBOL = "'"
KORONSYMBOL = "ù"
SORISYMBOL = "ø"
FLATSYMBOL = "\""
SHARPSYMBOL = "!"
DFLATSYMBOL = "$"
DSHARPSYMBOL = "#"


persianStrings = #`(
       (-3/10 . ,KORONSYMBOL)
       (1/5 .   ,SORISYMBOL)
       (0 .     ,NATURALSYMBOL)
       (1/2 .   ,SHARPSYMBOL)
       (2/5 .   ,SHARPSYMBOL)
       (-1/2 .  ,FLATSYMBOL)
       (-3/5 .  ,FLATSYMBOL)
       (-1/10 .  "")
       (-1 .    ,DFLATSYMBOL)
       ( 1 .    ,DSHARPSYMBOL)
)

persianStringsOffsets = #`(
       (-3/10 . (-.2 . -1.7) )
       (1/5   . (0 . -1))
       (0     . (0 . -1))
       (1/2   . (0 . -1))
       (2/5   . (0 . -1))
       (-1/2  . (0 . -.5))
       (-3/5  . (0 . -.5))
       (-1/10 . (0 . 0))
       (-1    . (0 . -.5))
       ( 1    . (0 . -1))
)

persianStringsXExtents = #`(
       (-3/10 . (0 . 1) )
       (1/5   . (0 . 1.8))
       (0     . (0 . 1))
       (1/2   . (0 . 1))
       (2/5   . (0 . 1))
       (-1/2  . (0 . 1))
       (-3/5  . (0 . 1))
       (-1/10 . (0 . 1))
       (-1    . (0 . 1.8))
       ( 1    . (0 . 1.3))
)

persianStringsYExtents = #`(
       (-3/10 . (-1 . 1) )
       (1/5   . (-1 . 1))
       (0     . (-1 . 1))
       (1/2   . (-1 . 1))
       (2/5   . (-1 . 1))
       (-1/2  . (-1 . 1))
       (-3/5  . (-1 . 1))
       (-1/10 . (-1 . 1))
       (-1    . (-1 . 1))
       ( 1    . (-1 . 1))
)

\layout {
  \context {
    \Score
   \override KeySignature.glyph-name-alist = \persianGlyphs
   \override Accidental.glyph-name-alist = \persianGlyphs
    \override AccidentalCautionary.glyph-name-alist = \persianGlyphs
    \override TrillPitchAccidental.glyph-name-alist = \persianGlyphs
    \override AmbitusAccidental.glyph-name-alist = \persianGlyphs

    \override KeySignature.stencil = #ly:text-interface::print
    \override KeySignature.font-name = #FONTNAME
    \override KeySignature.font-size = #2

    \override Accidental.stencil = #ly:text-interface::print
    \override Accidental.font-name = #FONTNAME
    \override Accidental.font-size = #2
    \override Accidental.text = #(lambda (grob)
         (cdr (assoc (ly:grob-property grob 'alteration)
                  persianStrings)))
%% from Jean:
    \override Accidental.after-line-breaking =
    #(lambda (grob)
      (set! (ly:grob-property grob 'stencil)
       (ly:stencil-add
        (ly:grob-property grob 'stencil)
        (ly:separation-item::print grob))))
%%

    \override Accidental.extra-offset =  #(lambda (grob)
         (cdr (assoc (ly:grob-property grob 'alteration)
                  persianStringsOffsets)))

    \override Accidental.X-extent =  #(lambda (grob)
         (cdr (assoc (ly:grob-property grob 'alteration)
                  persianStringsXExtents )))

    \override Accidental.Y-extent =  #(lambda (grob)
         (cdr (assoc (ly:grob-property grob 'alteration)
                  persianStringsYExtents )))

    %% from Jean
    \override Accidental.horizontal-skylines =
    #ly:grob::simple-horizontal-skylines-from-extents
    %%
  }
}

pitchnames = \pitchnamesEnglish

#(ly:parser-set-note-names pitchnames)

%{
Define key signatures for Persian modes

There are fewer scales than dastgah's in Persian music, and each dastgah
can  have many  scales.  So  I provide  here key  signatures  for scales
(modes) named after representative dastgahs featuring this scale.

Dastgah shur can  have the 5th degree natural or  koron, so two versions
are  provided   (shur,  shurk).   Secondary   dastgahs  dashti,  abuata,
bayat-e-tork  have  the same  signature  as  shur,  and derived  dastgah
afshari has signature  shurk.  Nava on G is like shur  on D (4th apart).
Scale of segah is shurk. Other scales are esfahan (homayoun on C is like
esfahan on G, a 5th apart), chahargah, and mokhalef-segah.  For dastgahs
mahur and rast-panjgah we just use the same scale mahur.

Each  key  signature symbol  is  appended  by  a capitalized  "key"  (or
"finalis").  If  you want to use  the \transpose command  you'll have to
manually adjust the key signature of the scale.

All the various  modulatory gushes in all dastgah's  can be notated with
these  key  signatures with  the  exception  of  delkash in  mahur,  but
traditionally the peculiar accidentals there are notated explicitly.

%}

shurC = #`(
    (1 . ,KORON)
    (2 . ,FLAT)
    (5 . ,FLAT)
    (6 . ,FLAT)
  )

shurCKey = \markup{
  \translate  #'(-1 . -.5)   \FLATSYMBOL
  \translate  #'(-.5 . 1)   \FLATSYMBOL
  \translate  #'(-.7 . -1)  \FLATSYMBOL
  \translate  #'(-.5 . -.6) \KORONSYMBOL
}

shurD = #`(
    (2 . ,KORON)
    (6 . ,FLAT)
  )

shurDKey = \markup{
  \translate  #'(-1 . -.5)   \FLATSYMBOL
  \translate  #'(-.5 . -.1)   \KORONSYMBOL
}

shurE = #`(
    (3 . ,SORI)
  )

shurEKey = \markup{
  \translate  #'(-1 . 1)   \SORISYMBOL
}

shurF = #`(
    (1 . ,FLAT)
    (2 . ,FLAT)
    (4 . ,KORON)
    (5 . ,FLAT)
    (6 . ,FLAT)
  )

shurFKey = \markup{
  \translate  #'(-1 . -.5) \FLATSYMBOL
  \translate  #'(-1 . 1)   \FLATSYMBOL
  \translate  #'(-1 . -1)   \FLATSYMBOL
  \translate  #'(-1 . .5)  \FLATSYMBOL
  \translate  #'(-1 . -2.6) \KORONSYMBOL
}

shurG = #`(
    (2 . ,FLAT)
    (5 . ,KORON)
    (6 . ,FLAT)
  )

% alternative if you want to us shur on G with Bb vlat (bfv) instead of normal Bb (bf)
shurGvlat = #`(
    (2 . ,FLAT)
    (5 . ,KORON)
    (6 . ,FVLAT)
  )

shurGKey = \markup{
  \translate  #'(-1 . -.5) \FLATSYMBOL
  \translate  #'(-1 . 1) \FLATSYMBOL
  \translate  #'(-1 . -2.1) \KORONSYMBOL
}

shurA = #`(
    (6 . ,KORON)
  )

shurAKey = \markup{
  \translate  #'(-1 . -1.6) \KORONSYMBOL
}

shurB = #`(
    (0 . ,SORI)
    (3 . ,SHARP)
  )

shurBKey = \markup{
  \translate  #'(-1 . 1)  \SHARPSYMBOL
  \translate  #'(-.5 . -.5)     \SORISYMBOL
}

shurkC = #`(
    (1 . ,KORON)
    (2 . ,FLAT)
    (4 . ,KORON)
    (5 . ,FLAT)
    (6 . ,FLAT)
  )

shurkCKey = \markup{
  \translate  #'(-1 . -.5)   \FLATSYMBOL
  \translate  #'(-.5 . 1)   \FLATSYMBOL
  \translate  #'(-.7 . -1)  \FLATSYMBOL
  \translate  #'(-.5 . -.6) \KORONSYMBOL
  \translate  #'(-1 . -2.6) \KORONSYMBOL
}

shurkD = #`(
    (2 . ,KORON)
    (5 . ,KORON)
    (6 . ,FLAT)
  )

shurkDKey = \markup{
  \translate  #'(-1 . -.5)   \FLATSYMBOL
  \translate  #'(-.5 . -.1)   \KORONSYMBOL
  \translate  #'(-1 . -2.1)  \KORONSYMBOL
}

shurkE = #`(
    (3 . ,SORI)
    (6 . ,KORON)
  )

shurkEKey = \markup{
  \translate  #'(-1 . -1.6)  \KORONSYMBOL
  \translate  #'(-1 . 1)     \SORISYMBOL
}

shurkF = #`(
    (0 . ,KORON)
    (1 . ,FLAT)
    (2 . ,FLAT)
    (4 . ,KORON)
    (5 . ,FLAT)
    (6 . ,FLAT)
  )

shurkFKey = \markup{
  \translate  #'(-1 . -.5) \FLATSYMBOL
  \translate  #'(-1 . 1)   \FLATSYMBOL
  \translate  #'(-1 . -1)   \FLATSYMBOL
  \translate  #'(-1 . .5)  \FLATSYMBOL
  \translate  #'(-1 . -2.6) \KORONSYMBOL
  \translate  #'(-.8 . -1.1) \KORONSYMBOL
}

shurkG = #`(
    (1 . ,KORON)
    (2 . ,FLAT)
    (5 . ,KORON)
    (6 . ,FLAT)
  )

shurkGKey = \markup{
  \translate  #'(-1 . -.5) \FLATSYMBOL
  \translate  #'(-1 . 1) \FLATSYMBOL
  \translate  #'(-1 . -2.1) \KORONSYMBOL
  \translate  #'(-.8 . -.6) \KORONSYMBOL
}

shurkA = #`(
    (2 . ,KORON)
    (6 . ,KORON)
  )

shurkAKey = \markup{
  \translate  #'(-1 . -1.6) \KORONSYMBOL
  \translate  #'(-.5 . -.1) \KORONSYMBOL
}

shurkB = #`(
    (0 . ,SORI)
    (3 . ,SORI)
  )

shurkBKey = \markup{
  \translate  #'(-1 . 1)  \SORISYMBOL
  \translate  #'(-1 . -.5)     \SORISYMBOL
}

esfahanC = #`(
    (2 . ,FLAT)
    (5 . ,KORON)
  )

esfahanCKey = \markup{
  \translate  #'(-1 . 1)   \FLATSYMBOL
  \translate  #'(-1 . -2.1) \KORONSYMBOL
}

esfahanD = #`(
    (0 . ,SHARP)
    (6 . ,KORON)
  )

esfahanDKey = \markup{
  \translate  #'(-1 . -.5)   \SHARPSYMBOL
  \translate  #'(-.5 . -1.6) \KORONSYMBOL
}

esfahanE = #`(
    (0 . ,SORI)
    (1 . ,SHARP)
    (3 . ,SHARP)
  )

esfahanEKey = \markup{
  \translate  #'(-1 . 1)   \SHARPSYMBOL
  \translate  #'(-.5 . -.5) \SORISYMBOL
  \translate  #'(-.5 . 0)   \SHARPSYMBOL
}

esfahanF = #`(
    (1 . ,KORON)
    (5 . ,FLAT)
    (6 . ,FLAT)
  )

esfahanFKey = \markup{
  \translate  #'(-1 . -.5)   \FLATSYMBOL
  \translate  #'(-.5 . -1) \FLATSYMBOL
  \translate  #'(-.5 . -.6)   \KORONSYMBOL
}

esfahanG = #`(
    (2 . ,KORON)
    (3 . ,SHARP)
    (6 . ,FLAT)
  )

esfahanGKey = \markup{
  \translate  #'(-1 . -.5)   \FLATSYMBOL
  \translate  #'(-.7 . 1) \SHARPSYMBOL
  \translate  #'(-.5 . -.1)   \KORONSYMBOL
}

esfahanA = #`(
    (3 . ,SORI)
    (4 . ,SHARP)
  )

esfahanAKey = \markup{
  \translate  #'(-1 . 1.5) \SHARPSYMBOL
  \translate  #'(-.5 . 1)   \SORISYMBOL
}

esfahanB = #`(
    (0 . ,SHARP)
    (3 . ,SHARP)
    (4 . ,SORI)
    (5 . ,SHARP)
  )

esfahanBKey = \markup{
  \translate  #'(-1 . 1) \SHARPSYMBOL
  \translate  #'(-.7 . -.5) \SHARPSYMBOL
  \translate  #'(-.7 . -1.5) \SHARPSYMBOL
  \translate  #'(-1.5 . 1.5)   \SORISYMBOL
}

mokhalefsegahC = #`(
    (2 . ,FLAT)
    (5 . ,KORON)
    (6 . ,KORON)
  )

mokhalefsegahCKey = \markup{
  \translate  #'(-.5 . -1.6) \KORONSYMBOL
  \translate  #'(-1 . 1) \FLATSYMBOL
  \translate  #'(-1 . -2.1) \KORONSYMBOL
}

mokhalefsegahD = #`(
    (0 . ,SORI)
    (6 . ,KORON)
  )

mokhalefsegahDKey = \markup{
  \translate  #'(-.5 . -1.6) \KORONSYMBOL
  \translate  #'(-.5 . -.5) \SORISYMBOL
}

mokhalefsegahE = #`(
    (0 . ,SORI)
    (1 . ,SORI)
    (3 . ,SHARP)
  )

mokhalefsegahEKey = \markup{
  \translate  #'(-1 . -.5) \SORISYMBOL
  \translate  #'(-.5 . 1) \SHARPSYMBOL
  \translate  #'(-.5 . 0) \SORISYMBOL

}

mokhalefsegahF = #`(
    (1 . ,KORON)
    (2 . ,KORON)
    (5 . ,FLAT)
    (6 . ,FLAT)
  )

mokhalefsegahFKey = \markup{
  \translate  #'(-1 . -.5) \FLATSYMBOL
  \translate  #'(-.5 . -.1) \KORONSYMBOL
  \translate  #'(-1 . -1) \FLATSYMBOL
  \translate  #'(-.5 . -.6) \KORONSYMBOL
}

mokhalefsegahG = #`(
    (2 . ,KORON)
    (3 . ,SORI)
    (6 . ,FLAT)
  )

mokhalefsegahGKey = \markup{
  \translate  #'(-1 . -.5) \FLATSYMBOL
  \translate  #'(-.5 . -.1) \KORONSYMBOL
  \translate  #'(-.5 . 1) \SORISYMBOL
}

mokhalefsegahA = #`(
    (3 . ,SORI)
    (4 . ,SORI)
  )

mokhalefsegahAKey = \markup{
  \translate  #'(-1 . 1) \SORISYMBOL
  \translate  #'(-.5 . 1.5) \SORISYMBOL
}

mokhalefsegahB = #`(
    (0 . ,SHARP)
    (3 . ,SHARP)
    (4 . ,SORI)
    (5 . ,SORI)
  )

mokhalefsegahBKey = \markup{
  \translate  #'(-1 . 1) \SHARPSYMBOL
  \translate  #'(-.5 . -.5) \SHARPSYMBOL
  \translate  #'(-.5 . -1.5) \SORISYMBOL
  \translate  #'(-2 . 1.5) \SORISYMBOL
}

chahargahC = #`(
    (1 . ,KORON)
    (5 . ,KORON)
  )

chahargahCKey = \markup{
  \translate  #'(-.5 . -.6) \KORONSYMBOL
  \translate  #'(-1 . -2.1) \KORONSYMBOL
}

chahargahD = #`(
    (0 . ,SHARP)
    (2 . ,KORON)
    (3 . ,SHARP)
    (6 . ,KORON)
  )

chahargahDKey = \markup{
  \translate  #'(0 .      1) \SHARPSYMBOL
  \translate  #'(-.5 . -.5)  \SHARPSYMBOL
  \translate  #'(-.5 . -1.6) \KORONSYMBOL
  \translate  #'(-.5 . -.1)  \KORONSYMBOL
}


chahargahE = #`(
    (0 . ,SORI)
    (1 . ,SHARP)
    (3 . ,SORI)
    (4 . ,SHARP)
  )

chahargahEKey = \markup{
  \translate  #'(-1 .   1) \SORISYMBOL
  \translate  #'(-1 . -.5)  \SORISYMBOL
  \translate  #'(-1 . 1.5) \SHARPSYMBOL
  \translate  #'(-.5 . -0)  \SHARPSYMBOL
}

chahargahF = #`(
    (1 . ,KORON)
    (4 . ,KORON)
    (6 . ,FLAT)
  )

chahargahFKey = \markup{
  \translate  #'(-1 . -.5) \FLATSYMBOL
  \translate  #'(-.5 . -.6)  \KORONSYMBOL
  \translate  #'(-1.2 . -2.6)  \KORONSYMBOL
}

chahargahG = #`(
    (2 . ,KORON)
    (3 . ,SHARP)
    (5 . ,KORON)
  )

chahargahGKey = \markup{
  \translate  #'(-1 . 1) \SHARPSYMBOL
  \translate  #'(-.7 . -2.1)  \KORONSYMBOL
  \translate  #'(-.5 . -.1) \KORONSYMBOL
}

chahargahA = #`(
    (0 . ,SHARP)
    (3 . ,SORI)
    (4 . ,SHARP)
    (6 . ,KORON)
  )

chahargahAKey = \markup{
  \translate  #'(-1 . 1.5) \SHARPSYMBOL
  \translate  #'(-.5 . -.5) \SHARPSYMBOL
  \translate  #'(-.5 . 1)  \SORISYMBOL
  \translate  #'(-1 . -1.6) \KORONSYMBOL
}

chahargahB = #`(
    (0 . ,SORI)
    (1 . ,SHARP)
    (3 . ,SHARP)
    (4 . ,SORI)
    (5 . ,SHARP)
  )

chahargahBKey = \markup{
  \translate  #'(-1 . 1) \SHARPSYMBOL
  \translate  #'(-.5 . -1.5) \SHARPSYMBOL
  \translate  #'(-.5 . 0) \SHARPSYMBOL
  \translate  #'(-.5 . 1.5)  \SORISYMBOL
  \translate  #'(-1 . -.5) \SORISYMBOL
}


mahurF = #`(
    (6 . ,FLAT)
  )

mahurFKey = \markup{
  \translate  #'(-1 . -.5) \FLATSYMBOL
}


mahurG = #`(
    (3 . ,SHARP)
  )

mahurGKey = \markup{
  \translate  #'(-.5 . -1.5) \SHARPSYMBOL
}


delkashMahurF = #`(
    (1 . ,KORON)
    (2 . ,FLAT)
    (6 . ,FLAT)
  )

delkashMahurFKey = \markup{
  \translate  #'(-1 . -.5) \FLATSYMBOL
  \translate  #'(-1 . 1) \FLATSYMBOL
  \translate  #'(-.8 . -.6) \KORONSYMBOL
}



hicazG = #`(
    (3 . ,SHARP)
    (2 . ,FLAT)
    (6 . ,FLAT)
  )

hicazGKey = \markup{
  \translate  #'(-1 . 1) \SHARPSYMBOL
  \translate  #'(-.6 . 1) \FLATSYMBOL
  \translate  #'(-.6 . -.5)   \FLATSYMBOL
}



hicazA = #`(
    (4 . ,SHARP)
  )

hicazAKey = \markup{
  \translate  #'(-.1 . 1.5) \SHARPSYMBOL
}

esfahanETF = #`(
    (1 . ,FLAT)
    (5 . ,FLAT)
    (6 . ,FLAT)
  )

esfahanETFKey = \markup{
  \translate  #'(0 . .5)   \FLATSYMBOL
  \translate  #'(-.5 . -1) \FLATSYMBOL
  \translate  #'(-.5 . -.6)   \FLATSYMBOL
}

esfahanETG = #`(
    (2 . ,FLAT)
    (3 . ,SHARP)
    (6 . ,FLAT)
  )

esfahanETGKey = \markup{
  \translate  #'(-1 . -.5)   \FLATSYMBOL
  \translate  #'(-.7 . 1) \SHARPSYMBOL
  \translate  #'(-.5 . .8)   \FLATSYMBOL
}

Reply via email to