#  -*- mode: conf-mode; fill-column: 65 -*-
#
# Library of licks used in modes licks or play.
#
#
# This lickfile is for type 'richter'.
#
# It is made up of [sections].
# Empty lines and comments are ignored.
#

#
# A lick (e.g. 'wade') can be defined like this:
#
[wade]

  # This is what will be displayed on screen and asked to play back
  holes = -2 -3/ -2 -3/ -2 -2 -2 -2/ -1 -2/ -2 

  # The description will be shown at the bottom of the screen,
  # when the lick is played.
  desc = Wade in the Water

  # We have a recording for this lick; will be searched in subdir 'recordings'.
  rec = wade.mp3

  # Next two lines are optional; useful if you only want to play
  # part of the recording
  rec.start = 0.0
  # a negative value would count from the end of the recording
  rec.length = 10

  # This has the tags 'samples' and 'favorites', that can be used
  # to select among a larger number of licks
  tags = samples favorites fav

  # Key of 'c' is the default key, use this if the recording
  # is done with a different harmonica
  rec.key = a

#
# A second lick, mostly without comments
#
[st-louis]
  holes = -1 +2 -2 -3/ +3 -3/ -3// -2
  desc = St. Louis Blues
  rec = st-louis.mp3
  tags = samples favorites
  rec.key = a

#
# The third lick, that comes with harpwise as a starter-pack
#
[feeling-bad]
  holes = +6 +5 +6 +6 +6 +5 -4 -4 +4
  desc = Going down the road feeling bad
  rec = feeling-bad.mp3
  tags = samples favorites
  rec.key = c

#
# The blues scale as a lick
#
[blues]
  holes = -2 -3/ +4 -4/ -4 -5 +6
  tags = scales theory

#
# The major pentatonic scale as a lick
#
[mape]
  holes = -2 -3// -3 -4 +5 +6
  tags = scales theory

#
# Ascending box pattern for i, iv and v
# Semitone steps are: tonic 7st 10st octave
#
# See https://www.youtube.com/watch?v=cDRsdNGrkVI
# for Adam Gussows rendition of this.
#
[box-i]
  holes = -2 -4 -5 +6
  tags = i-chord box

[box-iv]
  holes = +1 -2 -3/ +4
  tags = iv-chord box

[box-v]
  holes = -1 -3// +4 -4
  tags = v-chord box

#
# A simple trunaround
#
[simple-turn]
  holes = -2 +2 -1 -1
  desc = simple, standard turnaround
  tags = turn

#
#  ***  ABOUT THE REST OF THIS FILE  ***

#
# The rest of this file contains comments only; they are on two
# different topics:
#
#  - On getting more licks
#
#  - Advanced Features in this file: Defaults and Variables
#


#
#  ***  ON GETTING MORE LICKS  ***
#
<%= lick_sources.map {|l| "# #{l}"}.join %>


#
#  ***  ADVANCED FEATURES IN THIS FILE: DEFAULTS AND VARIABLES  ***
#

# The rest of this file is commented out (with '## '), so it does
# not add anything to your library of licks. But by reading it,
# you may more fully understand the format used and the features
# available. This can be useful, if managing lots of licks
# becomes cumbersome ...

#
# Once you have defined more than a dozen licks (recommended !),
# you may or may not want to reduce typing effort when adding a
# new lick. This can be done by setting some default-information
# and reusing it in many licks.
#
# To this end there are two Special sections:
#
#   [vars]     defining global variables to be used in tags;
#              this may help to save some typing.
#   [default]  define values, that will be included in any lick;
#              only allowed, for tags; in an individual lick you
#              may override or add to this.
#
# both sections are totally optional, so you may just omit them
# at start, or if you find them confusing.


## [default]
##   # This applies for all licks until overwritten by another [default];
##   # tags specified in the individual lick will be added
##   tags = samples
##   desc = some text that should appear in all licks below
##   desc.add = more text we intend to overwrite in some licks below
## 
## [special]
## 
##   # A lick requires a series of holes ('holes =') to be played.
##   #
##   # A lick may also contain inline comments (e.g. '(slide)' or
##   # '[+123]'), that are recognized by the surrounding parens or
##   # brackets; they may contain anything you choose and will not
##   # be played; neither will you be expected to play them.
##   #
##   # Remark: An exception in beeing ignored would be a number
##   #   in parens or brackets: If it follows a normal note,
##   #   e.g. '+1 (0.4)', then harpwise would take it as a
##   #   duration of 0.4 secs when playing the hole +1.
##   #
##   # To give different meanings to parens and brackets, you may or
##   # may not adopt these simple convention:
##   #
##   # - Use '()' for any instructions that modify, how the whole
##   #   written before should be played; an example would be:
##   #   '+1 (slide) +4'.
##   #
##   # - Use '[]' for any musical event, that cannot be reconized by
##   #   harpwise, but nevertheless should be played on its own; an
##   #   example would be a chord '[+123]'.
##   #
##   # - For more complex inline comments you may also want to add a
##   #   short note in the description.
## 
##   holes = -1 +1 -2 (pull) -1
##   # This tag adds a tag to those given by the defaults
##   tags.add = advanced
##   # You may also add to the description
##   desc.add = Notice the pull
##   # unfortunately no recording
## 
## [vars]
##   # Variables may help to save typing; they are useful in tags
##   $source = theory
## 
## [default]
##   # notice the use of the variable
##   tags = scales $source
## 
## [blues-full] # all octaves
##   holes = +1 -1/ -1 -2// -2 -3/ +4 -4/ -4 -5 +6 -6/ -6 +7 -8 -9 +9 -10
##   # has tags 'scales' and 'theory'
## 
## [mape-full] # major pentatonic scales about all octaves
##   holes = -1 +2 -2 -3// -3 -4 +5 +6 -6 -7 -8 +8 +9
##   # has tags 'scales' only
##   tags = scales
## 
## 
