Helper functions for chord mapping.
gc_info(name, root_fret = NA, min_fret = NA, bass_string = NA,
open = NA, key = "c", ignore_octave = FALSE)gc_fretboard(name, root_fret = NA, min_fret = NA, bass_string = NA,
open = NA, key = "c", ignore_octave = FALSE)
gc_notes(name, root_fret = NA, min_fret = NA, bass_string = NA,
open = NA, key = "c", ignore_octave = FALSE)
chord_is_known(notes)
chord_name_split(name)
chord_name_root(name)
chord_name_mod(name)
character, chord name in tabr
format, e.g.,
"bM b_m b_m7#5"
, etc.
integer, optional filter for chords whose root note matches a specific fret. May be a vector.
integer, optional filter for chords whose notes are all at or above a specific fret. May be a vector.
integer, optional filter for chords whose lowest pitch string matches a specific string, 6, 5, or 4. May be a vector.
logical, optional filter for open and movable chords. NA
retains both types.
character, key signature, used to enforce type of accidentals.
logical, if TRUE
, functions like gc_info
and gc_fretboard
return more results.
character, a noteworthy string.
various, see details regarding each function.
These functions assist with mapping between different information that define chords.
For chord_is_known
, a check is done against chords in the
guitarChords
dataset.
A simple noteworthy string is permitted, but any single-note entry will
automatically yield a FALSE
result.
gc_info
returns a tibble data frame containing complete information
for the subset of predefined guitar chords specified by name
and
key
.
Any accidentals present in the chord root of name
(but not in the
chord modifier, e.g., m7_5
or m7#5
) are converted according to
key
if necessary.
gc_notes
and gc_fretboard
are wrappers around gc_info
,
which return noteworthy strings of chord notes and a named vector of
LilyPond fretboard diagram data, respectively.
Note that although the input to these functions can contain multiple chord
names, whether as a vector or as a single space-delimited string, the result
is not intended to be of equal length.
These functions filter guitarChords
. The result is the set of all
chords matched by the supplied input filters.
chord_name_split
splits a vector or space-delimited set of chord
names into a tibble data frame containing separate chord root and chord
modifier columns.
chord_name_root
and chord_name_mod
are wrappers around this.
# NOT RUN {
chord_is_known("a b_,fb_d'f'")
chord_name_root("a aM b_,m7#5")
chord_name_mod("a aM b_,m7#5")
gc_info("a") # a major chord, not a single note
gc_info("ceg a#m7_5") # only third entry is a guitar chord
gc_info("ceg a#m7_5", key = "f")
gc_info("a,m c d f,")
gc_fretboard("a,m c d f,", 0:3)
x <- gc_notes("a, b,", 0:2)
summary(x)
# }
Run the code above in your browser using DataLab