Overview:

  The mode jamming works with 'harpwise listen' to provide impulse and
  runway for improvisation. For this it includes a backing-track with
  timestamps as well as matching sets of lick and chords.


Usage by Examples:

  The mode jamming is a remote control and helper for harpwise in mode
  listen; jamming plays a backing-track while making listen switch licks
  and chords (scales). This happens in time with the chord-changes of the
  track by means of a time-table (see below).


  To use harpwise jamming, you need *two* terminals. In the first one
  start e.g.:

    harpwise jam along 12bar

  this will give you the command for the second terminal, and will stand by
  until you have started it. For 'jam along 12bar' it will be like this:
  
    harpwise listen c --sc-prog 12bar --lick-prog box1 --jamming

  note, that advanced users may vary this command, e.g. by choosing
  a different lick-progression.
  
  As soon as both instances of harpwise are running, grab your harp and
  get into the flow.


  Once started, 'harpwise listen' (as usual) shows your playing on the
  harmonica-chart and indicates, how it matches the current chord; all
  with respect to the backing track beeing played. The scale-progression
  '12bar' is really a chord-progression (I,IV,V) and is switched along by
  mode jamming. This mode uses the timestamps from the file 12bar.json to
  trigger harpwise at the right moments.

  With the scripted chord-progression '12bar' you always see, which are
  the notes (holes) from the chord and may check easily, if you play
  within the current chord or not. In addition you have the licks of the
  lick-progression 'box1' (whose name comes from the box-pattern on
  guitar). These licks are switched along as the backing-track progresses
  (just like the chords). Start by playing the licks unil you feel in the
  mood for some improvisation, e.g. over the chords.

  Note, that in this accustic setup you may either need headphones or a
  hand-held microphone to keep apart your playing from the backing track
  beeing played.


  The argument '12bar' above is treated as a filename; it is expandeded to
  '12bar.json' and searched in two directories: ~/.harpwise/jamming. and
  the installation-dir of harpwise and

  The file '12bar.json' contains the required settings (e.g. location of
  the backing track) and has many comments, that can help to understand
  its content. This is not needed initially but becomes essential if you
  want to use your own backing-tracks or licks.


  If, over time, you have created multiple json-files with settings
  (e.g. different backing-tracks), you may use:

    harpwise jamming list

  to list them; if you have many files, you may create subdirectories.
  

  With all subcommands of 'harpwise jam' (e.g. along), you may abbreviate
  the name of the json-file and supply one or many strings that appear in
  the filename (in the given sequence); e.g.:

    harpwise jam along 2b       ## this saves us some typing 

  or even

    harpwise jam along 2b r

  of course, the example above ('2b r') is too wordy; however, if you
  create your own jamming-files and have multiple of them, this may
  help to distinguish among files with similar names.
  

  Finally, here is the list of supported extra arguments:

<%= get_extra_desc_all(for_usage: true).join("\n") %>

  which can be helpful before you start jamming.
