Skip to main content

concertina-helper

PyPI version

concertina_helper is a python script and supporting API to find good fingerings on bisonoric concertinas for tunes in ABC notation.

CLI usage

pip install concertina-helper
concertina-helper --help
usage: concertina-helper [-h] [--output_format {UNICODE,ASCII,LONG,COMPACT}]
                         (--layout_path PATH | --layout_name {20_cg,30_jefferies_cg,30_wheatstone_cg})
                         [--layout_transpose SEMITONES]
                         [--bellows_change_cost N]
                         [--finger_in_same_column_cost N]
                         [--pull_at_start_of_measure_cost N]
                         [--outer_fingers_cost N] [--show_all]
                         input

Given a file containing ABC notation, and a concertina type, prints possible
fingerings.

positional arguments:
  input                 Input file: Parsed either as a list of pitches, one
                        per line, or as ABC, if the first lines starts with
                        "X:".

options:
  -h, --help            show this help message and exit
  --output_format {UNICODE,ASCII,LONG,COMPACT}
                        Output format. "UNICODE" uses "○" and "●" to represent
                        button state / "ASCII" uses "." and "@" to represent
                        button state / "LONG" spells out the names of pressed
                        buttons / "COMPACT" multiple fingerings represented in
                        single grid (default: LONG)

Layout options:
  Supply your own layout, or use a predefined one, optionally transposed

  --layout_path PATH    Path of YAML file with concertina layout (default:
                        None)
  --layout_name {20_cg,30_jefferies_cg,30_wheatstone_cg}
                        Name of concertina layout (default: None)
  --layout_transpose SEMITONES
                        Semitones to transpose the layout; Negative transposes
                        down (default: 0)

Cost options:
  Configure the relative costs of different transitions between fingerings

  --bellows_change_cost N
                        Penalize fingerings where the bellows changes
                        direction between notes (default: 1)
  --finger_in_same_column_cost N
                        Penalize fingerings where one finger changes rows
                        between notes (default: 1)
  --pull_at_start_of_measure_cost N
                        Penalize fingerings where a pull begins a measure;
                        Hitting the downbeat with a push can be more musical.
                        (default: 1)
  --outer_fingers_cost N
                        Penalize fingerings that use outer fingers of either
                        hand instead of inner. This is useful as a tiebreaker.
                        (default: 1)
  --show_all            Ignore cost options and just show all possible
                        fingerings (default: False)

See EXAMPLES.md for examples of CLI usage.

API usage

See API documentation for details.

Development

See demo-api.sh for typical developer setup. The demo scripts are also used for CI.

To release a new version:

  • Make a feature branch
  • Update __version__ in __init__.py
  • Run flit publish
  • Make a PR with the updated version and merge.

Generate fingerings for tunes

Notes and chords

  • Anglo Piano: Web page with piano and a variety of concertina layouts. Shows all possible fingerings for notes and chords.
  • KonzertinaNetz: In German. Includes windows .exe for download.

Metadata

Release files for concertina_helper 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for concertina_helper 0.0.3
File Interpreter ABI Platform
concertina_helper-0.0.3-py3-none-any.whl Python 3 none any Details

Release files / concertina_helper-0.0.3-py3-none-any.whl

Download URL concertina_helper-0.0.3-py3-none-any.whl
Size 20.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9651f6e5750d923c408bbf28a9d7b8b81cb2577b3e0ed1b30b8231edf0b3be52
BLAKE2b-256 checksum
How to use checksums
73f170fb68f3813e0910c694fa389734c1b8c31ec1abf7dd6e1df5fa9f5aaf0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.28.2

Release history Release notifications | RSS feed

This release

0.0.3 This release

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page