harpwise ('wise' for short) supports the daily practice of bends,
scales, intervals or licks on a diatonic (richter) or chromatic
harmonica for various keys.

The wise recognizes single notes, that you play and it may play chords
for you (but does not recognize your chords); rhythm is out of its
scope entirely.

When invoking harpwise, the first argument on the command line
specifies the mode of operation; it can be one of:

  - listen: The wise listens to your playing, e.g. to monitor bends or
    scales
  - licks: Learn licks (only a few included, but pointers to find more)
  - quiz: Train your ear and musical memory

And with a less interactive interface and not using your microphone:

  - play: Wise plays scales, holes or licks, not asking you to play
    them back
  - print: Print and annotate the holes of scales or licks given
    on the commandline. Also print various informationo about licks,
    scales and much more
  - tools: Some simple, non-interactive tools related to basic
    harmonica theory
  - calibrate: Wise generates samples for holes, or assists in
    recording your own; this is a prereq to using many other modes;
    you will be asked to invoke it, when necessary

to read more details, usage examples and options for the individual
modes, invoke them without arguments, e.g.

  harpwise listen


After the first argument (which specifies the mode) some additional
arguments may be given:

  - type: mostly 'richter' or 'chromatic' but other choices might be
    defined. If omitted, this defaults to 'richter'.

  - key: key of harp, e.g. 'c' or 'g' or 'af' (a flat) or
    'ds' (d sharp). If omitted, this defaults to 'c'.

  - scale: scale on which you want to concentrate, e.g. 'blues',
    'major_pentatonic' or 'all'. No default; cannot be
    abbreviated.

    Note, that most scales are notated in second position (e.g. key of
    g for a c-harp); you may use the option --transpose-scale to
    change this.

    Finally, as a special case (and only for modes listen, quiz and
    licks) you may specify a set of holes (e.g. +1 +2 +3) as an adhoc
    scale.

    See the usage of mode 'listen' for an advanced example involving
    an adhoc scale and fourth position.


An example using all these arguments would be:

  harpwise listen richter c blues

this does listen to your playing, while marking notes from the
blues-scale.  And, relying on defaults, this could also be written as:

  harpwise listen blues

This example would listen especially for the first three notes of the
blues-scale, which are given as arguments as an adhoc scale

  harpwise listen -2 -3 +4


The possible scales depend on the chosen type of harmonica:

  <%=types_with_scales%>
  

Besides the arguments for type, key and scale, there are a lot of
options (introduced by '-'), some requiring an argument themselves.
All options are described in the usage info of the various modes.

Most arguments and options can be abbreviated, e.g 'lis' for 'listen',
'cal' for 'calibrate' or '-t' for '--tags-any'.

Also note, that for most modes, the behaviour (e.g. the kind of
display) of the wise can be changed interactively; type 'h' to see
help on this.

Suggested Reading:

  - Usage information for the individual modes
  - The top level file README.org, also available at:
    https://github.com/marcIhm/harpwise/blob/main/README.org

User Configuration:

  ~/.harpwise/config.ini

Quick Start:


Prepare your personal config with sound samples:

  harpwise calibrate c --auto    


Feedback on what you are playing:
  
  harpwise listen c              


then blow your harp and come back later to learn about other modes.


Version <%=$version%>
Copyright (c) 2021-2023 by Marc Ihm (marc@ihm.name) 
This program is subject to the MIT License.
