plot_fretboard()
and plot_chord()
including the addition of
fret_labels
and fret_offset
arguments.tabr_lilypond_api()
).tabr_lilypond_api()
).freq_ratio()
.dplyr
1.0+.freq_ratio()
generic for generating a data frame
of frequency ratios from frequencies, noteworthy objects, or music
objects.tabr
LilyPond API details.pitch_freq()
documentation error.as_music()
.bar
argument to phrase()
(and
associated functions) is now NULL
by default, or character,
rather than simply TRUE
or FALSE
. If a string
is provided, it is interpreted as LilyPond bar notation. E.g.,
bar = "|"
adds the LilyPond syntax \bar "|"
to
the end of a phrase.TRUE
is still accepted
and will insert a bar check only rather than a literal bar.
FALSE
is treated as NULL
for
completeness.pc()
and
pn()
.scale_note()
.track()
function. No
more relative transposed keys. Now takes an explicit key
argument that overrides the global key
from sheet music
render functions. Other arguments simplified and rearranged.noteinfo
to complement
noteworthy
and associated functions.music
which builds upon the combination
of noteworthy
and noteinfo
, similar in content
to phrase
but maintaining the structure of the other
tabr
classes for data manipulation and analysis.c
, length
, [
and
more to be used with special classes available in
tabr
.noteworthy
class.noteworthy
objects. For example, time_format
.t
-prefix, e.g., 4 4] t8 t8- t8^ 4
. Support
extends to music
objects and now also to
phrase()
, which alleviates reliance on the
triplet()
function and its limitations.lyrics
class that parallels the structure and
behavior of the other classes; added associated functions and generic
method implementations.lyrics
argument support to music
object construction and transformations.track*
functions to support
combining lyrics with an existing phrase
object.render_music*
functions for making simple sheet
music snippets directly from music
objects. This abstracts
the
phrase() |> track() [|> trackbind()] |> score() |> render_*()
pipeline from the user for simpler music that is essentially a single
voice, single track.plot_music*
function wrappers around
corresponding render_music*
functions to further abstract
the external LilyPond process.render_music*
and
plot_music*
functions to automatically handle lyrics
contained in a music object.colors
argument that takes a named list of
color overrides for lilypond()
and render_*
functions.tuneR
installation) and a set of functions for inspecting and manipulating the
table of MIDI music data.noteworthy
, noteinfo
, music
and
phrase
classes so the MIDI data can be analyzed,
transformed, edited and rendered to sheet music and a new MIDI
file.noteinfo
and music
objects.from_chorrrds()
(for chord
output from chorrrds
package) and
from_music21()
, for converting other music notation syntax
to tabr
syntax.track_*
wrapper functions to provide better
default track arguments for different instruments and use cases.render_tab()
alias to tab()
for
consistent naming, and other functions render_score()
and
render_midi()
as simpler wrappers around tab()
with appropriate fewer arguments and appropriate argument defaults.rests
argument to some note metadata
functions.-.
,
--
, -+
, etc. Otherwise spelled out in
bracketed text: -.
is the same as [staccato]
.
The break is that the old form of staccato ]
is no longer
allowed. Switch to -.
or [staccato]
. The
leading -
does not cause conflict with the single
-
, which continues to represent slide notation.s
-suffix string
numbering. All instances of single string number inputs are assumed
starting string and any additional strings are inferred
consecutively.plot_fretboard()
(renamed from
fretboard_plot
) and added wrapper function
plot_chord()
for more convenient chord diagrams.simplify_phrase()
and the new (default)
argument to lilypond()
, simplify = TRUE
, which
is also used by associated render_*
functions.fnord-repeater
for several helpful
suggestions and insights as well as example code that helped to make the
transcription pipeline better.sf_phrase()
.
Instead of providing the first three function arguments,
string
, fret
and info
,
separately, you can now provide everything to the first input
string
as a single character string containing all three
components separated by semicolons. This makes it easier to reason about
the input by time step rather than by argument.chord_root()
,
chord_top()
, chord_slice()
,
chord_is_major()
, chord_is_minor()
.pitch_freq()
, freq_pitch()
and other related
functions.no_tab
argument to track()
allowing
for suppression of tab staff when music staff is included, e.g., for
vocal tracks.no_tab
-associated documentation and unit test
updates.dup
and glue
. Now use
pn
for repeating phrases n
times and
pc
for concatenating multiple phrases.fretboard_plot
for making fretboard diagrams
outside of the LilyPond tablature pipeline. This necessitates importing
ggplot2
.chord_*
-named functions and also have shorter
x*
-named aliases. These are “piano chords,” i.e., based on
the condensed, defining intervals.guitarChords
dataset containing several thousand
formations of guitar chord voicings.guitarChords
for
obtaining guitar chord information and mapping between different
defining properties of a chord, most notably the addition of
gc_notes()
and gc_fretboard()
for mapping
chord names to noteworthy strings and fretboard diagram syntax.noteworthy
class, used internally, optional for
users (includes custom print and summary methods).mainIntervals
dataset.phrase
object construction).noteworthy
class output.transpose()
to handle additional edge cases,
including a new style option, strip
.NA
-valued no-chord rests
(s
or r
) were unnamed in output of
chord_set()
.tabrSyntax
.as_phrase()
..keydata
helper table.tabr
.tuplet()
and triplet()
to
accept a phrase object as well as a character string of notes.
Previously, only notes were accepted but this was too limiting. The
argument name has changed to from notes
to x
and tuplet()
will now check the class of x
and
handle phrase objects accordingly.tuplet()
.sf_phrase()
and sfp()
updated to allow
returning early with only the notes string as opposed to the entire
phrase object. This is useful if you just want a quick, cleaner string
representation of what notes are mapped by string/fret
combinations..onLoad
for non-Windows systems.tibble
package dependency. Using only
dplyr
suffices.lintr
to Suggests field in DESCRIPTION per CRAN
maintainer request regarding testthat
unit tests.lilypond()
example from dontrun
tag.tempdir()
location for examples that write
files.Adjustments to meet requirements for CRAN resubmission:
tempdir
.dontrun
tag around one last file-writing package
example that was using lilypond()
.lilypond()
, tab()
,
midily()
and miditab()
to work with system
calls that use absolute paths for output files instead of only working
with relative paths..ly
) files and wrapping around system calls to LilyPond
for rendering sheet music to pdf or png..mid
to .ly
and .mid
to
tab output convenience functions.