On Tue, 26 Nov 2019 at 14:14, David Kastrup <d...@gnu.org> wrote:

> Thomas Morley <thomasmorle...@gmail.com> writes:
>
> > Am Di., 26. Nov. 2019 um 09:30 Uhr schrieb Gianmaria Lari
> > <gianmarial...@gmail.com>:
> >>
> >> This code works.
> >>
> >> \version "2.21.0"
> >> test = #(define-scheme-function (nota) (ly:music?)
> >>   #{
> >>      $nota ^\markup {M}
> >>   #})
>
> Ugh.  Why a scheme function?
>

Do you remember my work on accordion standard bass notation? Kids are grown
and now they play things with a more complex notation. I would like to
update the "library" I wrote years ago.

In my old version of the library I created a list of variables like this:

% c note

xcb  = {\tag #'midiOut \midiBass
       \tag #'screenOut \screenBass}
xcM = {\tag #'midiOut \midiMajorChord
       \tag #'screenOut \screenMajorChord}
xcm = {\tag #'midiOut \midiMinorChord
       \tag #'screenOut \screenMinorChord}
xcs = {\tag #'midiOut \midiDominantSeventhChord
       \tag #'screenOut \screenDominantSeventhChord}
xcd = {\tag #'midiOut \midiDiminishedSeventhChord
       \tag #'screenOut \screenDiminishedSeventhChord}


The same list exists for each note name: cis, d, dis e etc (it's not a long
work because it is only the variable name that change so it was almost a
copy&paste operation)
This worked pretty well except some small issue (ties and other small
things). But this year the score I have to engrave use also chords like
\chordmode {f/d}. Obviously I can't create a variable for each possible
chord like that. Now I would like to try to do the same using some scheme
functions.

Ciao, g.

Reply via email to