#  -*- 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 with recording
#
[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

[chord-prog]
  holes = -2 -3 -4 +2 -2 -3 -3// +4 +5 -1 -2/ -3// -2
  desc = Jazz progression of chord triads I, VI, II-, V; shifts by +5st

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

#
# The major pentatonic scale as a lick
#
[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.
#
[box1-i]
  holes = -2 -4 -5 +6
  tags = i-chord box box1

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

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

#
# Lick progressions (see below) are optional, they group licks,
# that may lead through the chords of (e.g. ) a 12-bar blues.  They
# may be selected for mode licks via 'harpwise licks --lick-prog
# box1'
#
# You may lookup these progressions via:
#
#   harpwise print lick-progressions
#
# or for just a subset:
#
#   harpwise print lick-progressions -t fav
#
[prog box1]
  desc = Progression of licks for box-pattern 1, with turnaround
  licks = box1-i box1-iv box1-i box1-v box1-iv box1-i
  tags = fav

[prog box2]
  desc = Descending box pattern
  licks = box2-i box2-iv box2-i box2-v box2-iv box2-i

#
# Descending box pattern for i, iv and v
# Semitone steps are: tonic Octave 10st 7st
#
# See https://www.youtube.com/watch?v=VVe9qoUrDno
# for Tomlin Leckies rendition of this.
#
[box2-i]
  holes = -2 -2 +6 +6 -5 -5 -4 -4 
  tags = i-chord box box2

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

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

#
# Boogie-woogie pattern for i, iv and v
# Semitone steps are: tonic majorThird perfectFifth sixth flatSeventh
#
#
# See https://www.youtube.com/watch?v=DqbwHEscYoI
# for Tomlin Leckies rendition of this.
#
[boogie-i]
  holes = -2 -3 -4 +5 -5 +5 -4 -3
  tags = i-chord boogie

[boogie-iv]
  holes = +1 +2 -2 -3// -3/ -3// -2 +2 
  tags = v-chord boogie

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

#
# A simple turnaround
#
[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 licks
#              or lick-progressions, where it may help to save
#              some typing.
#              Once a variable is defined it keeps in value
#              until overwritten; so multiple [vars] sections
#              can contribute.
#              If a variable is used, but has not been defined
#              within your lickfile, it is tried as a (unix)
#              environment variable, which allows the file to
#              be more flexible.
#   [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.
#              Note, that only the most recent [default]-section
#              may have an effect; all prior ones are ignored.
#
# 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 = 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.
##   #
##   # Beside normal playable holes (e.g. '-2'), a lick may also contain	   
##   # various forms of inline-comments. As explained by examples:		   
##   # 									   
##   # - '[+123]' : Any text in brackets. This example it would be the	   
##   #   hint to play a blow-chord on holes 1, 2 and 3. By convention		   
##   #   brackets can be used to write down things that harpwise cannot		   
##   #   recognize or play (like chords), but which need to be played on	   
##   #   their own.								   
##   # - '(slow)' : Any text in parens. In this example the advice to play	   
##   #   slowly. By conventions parens can be used to note hints on how to	   
##   #   play the notes written before or after.				   
##   # - '.' or '.2beats' : A single dot ('.') or any word starting with a	   
##   #   dot. This can be used just like parens for any kind of comment, but	   
##   #   especially the single dot lends itself to mark pauses.		   
##   # - '~' or '~slide' : A single tilde ('~') or any word starting with a	   
##   #   tilde. This can be used just like parens for any kind of comment,	   
##   #   but especially the single tilde lends itself to mark a slide across	   
##   #   the harmonica or the gradual lift of a bend.
##   # - A single ',' or ';' e.g. to mark sections in a longer lick.
##   # 
##   # Please note, that parens, brackets and tilde might need to be quoted,
##   # when used on the commandline which is not needed in the lickfile.
##   # 									   
##   # Remark: An exception of the general rule that comments are ignored	   
##   # would be e.g. '+1 (0.4s)'. Harpwise would take this as an instruction	   
##   # to play the hole +1 for 0.4 seconds.                           
##   # 
## 
##   holes = -1 +1 -2 (pull) -1
##   # This 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 e.g. in tags
##   $source = theory
## 
## [default]
##   # notice the use of the variable
##   tags = scales $source
## 
## [blues] # 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] # 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
## 
## 
