Concertina Fingering

Help & Manual ← Back to tool

What does this tool do?

This tool finds the optimal fingering route for any tune on a 30-button Anglo concertina in C/G. You paste in a tune in ABC notation, and the tool tells you which button to press for each note — and whether to push or pull the bellows.

Because many notes can be played on more than one button, there are often hundreds or thousands of possible combinations for a whole tune. This tool searches through all of them and picks the route that is easiest to play — minimising awkward jumps, finger hops, and unnecessary bellows reversals.

The Anglo concertina

An Anglo concertina is a bisonoric instrument: each button produces a different note depending on whether you push or pull the bellows. A standard 30-button C/G Anglo has two sides (left hand and right hand), each with three rows of five buttons.

Left hand
t
5
4
3
2
1
c
5
4
3
2
1
g
5
4
3
2
1
Right hand
1
2
3
4
5
t
1
2
3
4
5
c
1
2
3
4
5
g

Rows are named t, c, and g (the main push notes of each row on the left side). Buttons are numbered 1–5, with 1 closest to the player. This tool covers all 60 button positions (30 push + 30 pull).

Button map (C/G Anglo, this instrument)

The note layout below matches exactly what is stored in KEYS_DATA. If your concertina differs, the source code can be adapted. Blue = push   Red = pull.

← Left hand (outer to inner) Right hand (inner to outer) →
Row btn 5btn 4btn 3btn 2btn 1 btn 1btn 2btn 3btn 4btn 5 Row
t E1F1 A1B♭1 C#2D#2 A2G2 G#2B♭2 C#3C#3 C#3D#3 G#3G3 C#4B♭3 A4D4 t
c C1G1 G1B1 C2D2 E2F2 G2A2 C3B2 E3D3 G3F3 C4A3 E4B3 c
g B1A1 D2F#2 G2A2 B2C3 D3E3 G3F#3 B3A3 D4C4 G4E4 D#4F#4 g

How to use the tool

1. Paste your ABC notation

Copy a tune in ABC format and paste it into the text area on the left. You can find thousands of tunes in ABC format at sites like thesession.org or abcnotation.com.

A minimal example:

X:1
T:The Kesh Jig
R:jig
M:6/8
L:1/8
K:Gmaj
|:GAG GAB|ABA ABd|egd edB|dBA ABd:|

2. Click Analyse

The tool parses the tune, reads the key signature, and runs the search. For most tunes this takes well under a second. The Tune Info panel on the right shows the metadata extracted from the ABC headers.

3. Read the results

Two panels appear:

Reading the button diagram

Each small diagram represents one note in the tune, labelled by position and note name (e.g. 3. G3). Inside each diagram, all 60 buttons are shown as dots:

Large blue dot — the recommended button, pressed on the push stroke.
Large red dot — the recommended button, pressed on the pull stroke.
Smaller blue/red dot — an alternative button that also appears in the best routes. Larger = used more often.
Small grey dot — button not used for this note in any of the best routes.

Example — three consecutive notes from a jig in G (G3, A3, B3):

Left-hand buttons appear on the left side of each diagram, right-hand buttons on the right. Within each side, button 1 is closest to the centre and button 5 is outermost. The three rows (t, c, g) run top to bottom.

ABC notation basics

ABC is a text-based music notation format. Here are the header fields this tool uses:

FieldMeaningExample
X:Tune index numberX:1
T:TitleT:The Kesh Jig
R:Rhythm / tune typeR:jig
M:Time signatureM:6/8
L:Default note lengthL:1/8
K:Key signatureK:Gmaj

Note notation

ABCNoteOctave
C, D, E,C, D, E …Octave 1 (very low)
C D EC, D, E …Octave 2
c d eC, D, E …Octave 3 (middle)
c' d' e'C, D, E …Octave 4 (high)

Sharps in the key signature are applied automatically from the K: field. Explicit accidentals (^ sharp, _ flat) in the note line are not yet supported — these are stripped during parsing.

Supported keys

The tool automatically applies the correct sharps for the following keys:

Note sharpenedKeys where it applies
F → F#G, D, A, Em, Bm, Cm, Edor, Ador
C → C#D, A, E, Bm, Edor
G → G#E, A

Keys not in this list are treated as having no sharps (e.g. C major, A minor, D Dorian).

How the algorithm works

The search is a beam search. For each note in the tune, all possible buttons that produce that note are looked up. The algorithm then builds all combinations, step by step, keeping only the most promising routes at each step.

Each transition between two buttons gets a score based on:

When the number of routes exceeds 4,096, the worst-scoring routes are pruned. The route with the lowest total score is returned as the best fingering.

Limitations

Tip: If you get unexpected results, check that the K: key field is present and correctly spelled in your ABC. The key signature has a big effect on which notes get sharpened.

About

This tool was originally written in Ruby in 2015–2018 under the name MUPHIN. The JavaScript port and web interface were created in 2024. The source code is available publicly — feel free to study, adapt, or improve it.

If this tool has been useful to you, consider buying the author a coffee: paypal.me/muphin