lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Position fingerings for diatonic accordion that include button name


From: Mojca Miklavec
Subject: Re: Position fingerings for diatonic accordion that include button name (not just finger)
Date: Sun, 10 Jul 2016 15:02:54 +0200

On 9 July 2016 at 17:07, David Kastrup wrote:
> Mojca Miklavec writes:
>
> This mechanism for pulling pitches and making graphics for them can be
> changed into something specific for your task.  However, we need
> additional information because the assignment of buttons to notes is not
> unique and also depends on push/pull.  So the question is how to get the
> information there.

I wanted to leave that for later, but since you started asking in that
direction, let me explain how I imagine to do this (for now with an
external script because I don't understand enough of that weird
programming language used in Lilypond :).

I'm not sure whether there are any substantially different accordions
around the world (not that the instrument is really common elsewhere),
but here most accordions follow more or less the same pattern.

You can check
    http://www.harmonika.com/de/lieferbare-tonarten
    http://www.harmonika.com/en/tone-types
and pick a 3-row C-F-B (B = Hes), the most commonly used one and the
one for which almost all the scores are written, so the "default"
output would follow that one. (Some basses seem wrong / different than
here and the layout / number of buttons is a bit weird on that
picture, but let's ignore that for a moment.)

The outer row (the top one on the picture) is usually labeled A, the
middle row is B, the bottom row is C, counting starts from head to
knee (on that figure that means from right to left). The three dark
orientation buttons are A6 (c''/h'), B6 (c''/c''), C6 (f''/f'').

I would start by defining all the pitches corresponding to individual
buttons in both directions, so something like:

push:
A0=c A1=e A2=g A3=c' A4=e' A5=g' A6=c'' A7=...
B0=c B1=f B2=a B3=c' B4=f' B5=a' B6=c'' B7=...
C0=f C1=b[es] C2=d' C3=f' C4=b[es]' C5=d'' C6=f'' C7=...

pull:
A0=f A1=g A2=h A3=d' A4=f' A5=a' A6=h' A7=...
B0=e B1=b B2=c' B3=e' B4=g' B5=b[es]' B6=c'' B7=...
C0=a C1=es' C2=f' C3=a' C4=c'' C5=es'' C6=f'' C7=...

All other accordions are just transpositions of these (for example the
next most common one, B-Es-As, is two half-tones lower), something
that Lilypond should be able to handle with ease. But anyone learning
on another type (different tuning) of accordion would normally use the
same learning material and would play the music pressing exactly the
same buttons as on the other types of accordions (some bands bring 4-5
accordions to the concert, so that they can play different songs).

The mapping from buttons to pitches is unique (it's some kind of a
surjective function), but pitches can have different buttons. So I
would prefer to enter buttons rather than pitches (it is of course
possible that two players would press different buttons to play the
same scores, but usually one button is easier to reach).

I would like to enter the music like in the following "pseudocode"
(comments are just for explanation):

\accordionPush
% <bes'4 d''> played with fingers 2 and 3 on buttons C4 and C5
<(C4)4-2 (C5)-3> |
% <a'2 c''> played with fingers 3 and 4 on buttons B5 and B6
% c' played with finger 1 on button B3
<(B5)2-3 (B6)-4> (B3)4-1 |
<(B4)2-2 (B5)-3> <(C4)-2 (C5)-3> |
\accordionPull
% <a'2 c''> played with fingers 1 and 2 on buttons C3 and C4
% <e'4 g'> played with fingers 1 and 2 on buttons B3 and B4
<(C3)2-1 (C4)-2> <(B3)-1 (B4)-2> |
<(B4)2-2 (B5)-3>
...

So from <(C4)4-2 (C5)-3>:
- (C4) would make a lookup in the accordion definition table => bes'
- (C5) would make a lookup in the accordion definition table => d''
- Lilypond would then draw <bes'4 d''> with the following label placed
above the pitch:
        3/C5
        2/C4

Also:
- The font / color / separator between the finger number and button
name would be configurable.
- Finger number would be optional and could be left out.
- Many teaching materials intentionally mark just the first pitch in
the song, so that the student gradually learns to interpret the scores
himself without the aid. Sometimes the button markings are left out
when changing from push to pull or vice versa because the buttons
should stay pressed, but the pitch changes. So there should be some
way to avoid printing the button names just for some scores.
- It should be easy to create a midi or print out the "proper" scores
for a differently tuned accordion by simply transposing the pitches,
but leaving all button markings the same.

>> Yes, I will need signs for directions (push/pull) etc., but the
>> following snippet could be a better minimal starting point for me:
>>
>> http://lilypond.org/doc/v2.18/Documentation/snippets/templates#templates-single-staff-template-with-notes-lyrics-chords-and-frets
>>
>> But the example requires specifying real chords. How could I write
>>    B3 (with finger 1)
>> without any real meaning or something like
>>    1.B3
>> instead of "C"? Or a "stacked" example
>>     3.B5
>>     2.B4
>> in place of another chord?
>
> Well, one can cheat by writing any old chord and then override the text,
> like
>
>     \tweak text "D2" c1
>
> but writing code that does that would only make sense once one has
> determined that chords are the best vehicle for faking this kind of
> functionality on.

To me, using something like
    ^\markup { \dir-column { "2.B4" "3.B5" } }
next to the pitch to get the output would make a lot more sense than
putting "fake chords" in a separate "layer". (Of course providing that
I could convince/configure the \markup to keep a constant
distance/height.)

Mojca



reply via email to

[Prev in Thread] Current Thread [Next in Thread]