Skip to main content

Script and supporting API to find good fingerings on bisonoric concertinas

Project description

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] [--format {unicode,ascii,long}]
                         (--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] [--show_all]
                         abc_path

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

positional arguments:
  abc_path              Path of ABC file

options:
  -h, --help            show this help message and exit
  --format {unicode,ascii,long}
                        Output format. "unicode" uses "○" and "●" to represent
                        button state / "ascii" uses "." and "@" to represent
                        button state / "long" spells out the names of pressed
                        buttons (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)
  --show_all            Ignore cost options and just show all possible
                        fingerings (default: False)

See demo-cli.sh 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.

Related tools

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

concertina_helper-0.0.2-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file concertina_helper-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for concertina_helper-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e9d7664235f848c653d0eb20ebd2735dca51890157127174c2cda675d7a1b202
MD5 e6b7b214be151bd1091ba27d947a735d
BLAKE2b-256 6a3db83ea9a7203c156b9ccd47fedb761f97b2374a1dbcd8a3a38931400c3a7c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page