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: David Kastrup
Subject: Re: Position fingerings for diatonic accordion that include button name (not just finger)
Date: Mon, 11 Jul 2016 20:06:53 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux)

Ok, I'm starting to get backlogged on my replies so I'll finish this one
first.

Mojca Miklavec <address@hidden> writes:

> 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),

With regard to diatonic accordions, we only have the garmoshka in
Russia, the Basque trikitixa, the Swiss schwyzerörgeli, the Austrian
Styrian harmonica (three to five rows), the one-row German harmonica
also used for Cajun music in Louisiana and vicinity, the two-row Wiener
Harmonika, the three-row GCF diatonic played in Texmex music
(incidentally, the best-selling Hohner accordion model currently), the
2½ row club harmonica, the Irish C/B diatonic model (with its variant
Shand Morino), the Italian organetto, and I likely forgot a dozen other
common types and systems in current use (other systems like the
Schrammelharmonika are only played by few players focused on historic
music).

And that's just accordions, namely with chord buttons for the left hand.
You get quite more when relaxing that requirement, adding a large
variety of concertinas, bandonions, and others.

> 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=...

I think the fundamental question is how to provide the information.

We have a similar choice to make with tablature: enter the musical
information, or enter the playing instructions.

With tablature, the choice ended up being notes, occasionally helped
with string numbers.  Where this "occasionally helped" is not present,
you have the advantage of being able to _transpose_ and a new tablature
falls out.  You can change the string tuning, and a new tablature falls
out.  This would be the same with diatonic accordions: you could change
your instrument to one with a different tuning or transpose the melody,
and you'd get a new score.  And/or you could change your choice of when
to push or pull (assuming notes are available) and you'd get a new score
appropriately changed.

Now make no mistake: we had people complain that they cannot enter stuff
in tablature rather than notes.  Obviously, there is a market for that.

> 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).

Uh yes.  You were getting to that.

> 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> |

On offer right now would be something like

<\C4-2 \C5-3>4

However, this still does not jibe with \B3 4-1 since the concept of
"optional note duration" does not combine with a music function.

So integrating note-like functions into LilyPond's input is not (yet)
really supported.

I'll think about this and see whether I can come up with something that
can be wired up here.

However, since our basic turnaround time for developer releases is
2 weeks, you might want to see whether you can get a Lilydev virtual
Ubuntu running on your system (if getting the dependencies to work is
unrealistic): otherwise the feedback loop for getting your stuff up is
going to be rather tedious whenever recompilation is required for
testing.

>> Well, one can cheat by writing any old chord and then override the text,
>> like
>>
>>     \tweak text "D2" c1

That was intended in \chordmode, like when having

\new ChordNames \chordmode { \tweak ChordName.text "D2" c1 }

or so (untested, maybe I'm completely wrong here).

>> 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.)

Most of the "fake" suggestions are just proof-of-concept for seeing that
the basic mechanisms should be available already, even though not yet
tied into something working properly.

Some things are suggestions about what it's worth looking at already
while I try thinking about how to best molest LilyPond's parser into
supporting reasonably natural input here without having to create a
whole hard-coded parser mode in Bison/C++ like \figuremode .

-- 
David Kastrup



reply via email to

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