Helper functions for working with musical scales.

scale_diatonic(key = "c", collapse = FALSE, ignore_octave = FALSE)

scale_major(key = "c", collapse = FALSE, ignore_octave = FALSE)

scale_minor(key = "am", collapse = FALSE, ignore_octave = FALSE)

scale_harmonic_minor(key = "am", collapse = FALSE, ignore_octave = FALSE)

scale_hungarian_minor(key = "am", collapse = FALSE, ignore_octave = FALSE)

scale_melodic_minor(
  key = "am",
  descending = FALSE,
  collapse = FALSE,
  ignore_octave = FALSE
)

scale_jazz_minor(key = "am", collapse = FALSE, ignore_octave = FALSE)

scale_chromatic(
  root = "c",
  collapse = FALSE,
  sharp = TRUE,
  ignore_octave = FALSE
)

Arguments

key

character, key signature.

collapse

logical, collapse result into a single string ready for phrase construction.

ignore_octave

logical, strip octave numbering from scales not rooted on C.

descending

logical, return the descending scale, available as a built-in argument for the melodic minor scale, which is different in each direction.

root

character, root note.

sharp

logical, accidentals in arbitrary scale output should be sharp rather than flat.

Value

character

Details

For valid key signatures, see keys().

Examples

scale_diatonic(key = "dm")
#> <Noteworthy string>
#>   Format: vectorized time
#>   Values: d e f g a b_ c'
scale_minor(key = "dm")
#> <Noteworthy string>
#>   Format: vectorized time
#>   Values: d e f g a b_ c'
scale_major(key = "d")
#> <Noteworthy string>
#>   Format: vectorized time
#>   Values: d e f# g a b c#'

scale_chromatic(root = "a")
#> <Noteworthy string>
#>   Format: vectorized time
#>   Values: a, a#, b, c c# d d# e f f# g g#

scale_harmonic_minor("am")
#> <Noteworthy string>
#>   Format: vectorized time
#>   Values: a, b, c d e f g#
scale_hungarian_minor("am")
#> <Noteworthy string>
#>   Format: vectorized time
#>   Values: a, b, c d# e f g#

identical(scale_melodic_minor("am"), scale_jazz_minor("am"))
#> [1] TRUE
rev(scale_melodic_minor("am", descending = TRUE))
#> <Noteworthy string>
#>   Format: vectorized time
#>   Values: a, b, c d e f g
scale_jazz_minor("am")
#> <Noteworthy string>
#>   Format: vectorized time
#>   Values: a, b, c d e f# g#