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.