On Tue, 26 Nov 2019 at 14:14, David Kastrup <[email protected]> wrote:
> Thomas Morley <[email protected]> writes:
>
> > Am Di., 26. Nov. 2019 um 09:30 Uhr schrieb Gianmaria Lari
> > <[email protected]>:
> >>
> >> 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.