Releases: leonawicz/tabr
Releases · leonawicz/tabr
tabr 0.5.1 release
tabr 0.5.0 release
- Refactored and made improvements to
plot_fretboard()
andplot_chord()
including the addition offret_labels
andfret_offset
arguments. - Updated tests and documentation.
tabr 0.4.9 release
- Added required package alias in documentation.
- Various minor improvements, bug fixes, and updates, including for building against newer versions of LilyPond (see
tabr_lilypond_api()
). - General documentation updates.
tabr 0.4.5 release
- Lilypond API built and tested againsts a newer version of Lilypond: v2.23.0.
- Minor fixes and documentation updates.
tabr 0.4.4 release
- Documentation updates: readme, help docs, new vignette.
tabr 0.4.3 release
- Bug fix for dyads in
freq_ratio
. - Updated some generic method implementations required for working with
dplyr
1.0+.
tabr 0.4.2 release
- Added
freq_ratio
generic for generating a data frame of frequency ratios from frequencies, noteworthy objects, or music objects. - Added utility functions for retrieving LilyPond version and installation directory and
tabr
LilyPond API details. - Fixed bug where multiple sharps in tuning broke tab staff string label LilyPond syntax.
- Updated documentation.
tabr 0.4.1 release
- Fixed
pitch_freq
documentation error. - Fixed bug relating to multiple labels to
as_music
. - Fixed bug where lyrics were not parsed correctly when rests present for music object rendering functions.
- Fixed bug where an explicitly added bar inside quotes failed due to a line break inside the string.
- Added better support for a variety of line breaks.
- The
bar
argument tophrase
(and associated functions) is nowNULL
by default, or character, rather than simplyTRUE
orFALSE
. 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. - If only a bar check is desired,
TRUE
is still accepted and will insert a bar check only rather than a literal bar.FALSE
is treated asNULL
for completeness.
- The
- Handle extra whitespace in
pc
andpn
. - Fixed bug where final note in a scale was droppped by
scale_note
. - Unit test updates.
- Documentation updates.
tabr 0.4.0 release
- Breaking change: major refactor of
track
function. No more relative transposed keys. Now takes an explicitkey
argument that overrides the globalkey
from sheet music render functions. Other arguments simplified and rearranged. - Refactored many package functions. Most behavior unchanged, but some breaking changes were made based on intentional shifts in perspective about what some functions should do and how the user should interact with them. This included changes to function arguments as well as some redefinition of what certain functions do.
- Substantial code optimization was done, overhauling much of the package in the process.
- Vectorized functions that previously only operated note by note.
- Generalized functions that previously could accept notes but not chords, doing so on a case by case basis in ways that are meaningful and sensible for handling chords.
- Added new classes
noteinfo
to complementnoteworthy
and associated functions. - Added new class
music
which builds upon the combination ofnoteworthy
andnoteinfo
, similar in content tophrase
but maintaining the structure of the othertabr
classes for data manipulation and analysis. - Added implementations for several common R functions including primitives like
c
,length
,[
and more to be used with special classes available intabr
. - Added logical operator methods for the
noteworthy
class. - Refactored some basic metadata functions as generics to dispatch to the new classes rather than only working for
noteworthy
objects. For example,time_format
. - Added native triplet support in note info using the
t
-prefix, e.g.,4 4] t8 t8- t8^ 4
. Support extends tomusic
objects and now also tophrase
, which alleviates reliance on thetriplet
function and its limitations. - Added
lyrics
class that parallels the structure and behavior of the other classes; added associated functions and generic method implementations. - Added
lyrics
support tomusic
object construction and transformations. - Added lyrics argument to
track*
functions to support combining lyrics with an existingphrase
object. - Added
render_music_*
functions for making simple sheet music snippets directly frommusic
objects. This abstracts thephrase() %>% track() [%>% trackbind()] %>% score() %>% render_*()
pipeline from the user for simpler music that is essentially a single voice, single track. - Added
plot_music_*
function wrappers around correspondingrender_music_*
functions to further abstract the external LilyPond process. - Added support for
render_music_*
andplot_music_*
functions to automatically handle lyrics contained in a music object. - Added support for auto-cropping of rendered sheet music when the output format is png.
- Added transparent background png support.
- Added a
colors
argument that takes a named list of color overrides forlilypond
andrender_*
functions. - Added MIDI file read support (requires optional
tuneR
installation) and a set of functions for inspecting and manipulating the table of MIDI music data. - Added initial support for conversion of MIDI file input to
noteworthy
,noteinfo
,music
andphrase
classes so the MIDI data can be analyzed, transformed, edited and rendered to sheet music and a new MIDI file. - Added more functions for music data manipulation and analysis.
- Added more functions for mapping between noteworthy strings, phrase objects, and data frames.
- Added functions for summarizing times and durations in
noteinfo
andmusic
objects. - Added syntax converters
from_chorrrds
(for chord output fromchorrrds
package) andfrom_music21
, for converting other music notation syntax totabr
syntax. - Added
track_*
wrapper functions to provide better default track arguments for different instruments and use cases. - Added
render_tab
alias totab
for consistent naming, and other functionsrender_score
andrender_midi
as simpler wrappers aroundtab
with appropriate fewer arguments and appropriate argument defaults. - Added new vignettes on syntax conversion and rendering chord charts.
- Updated vignettes, readme and other documentation.
- Made improvements to print method for phrase objects.
- Added
rests
argument to some note metadata functions. - Breaking change: Added support for many articulations. Some have abbreviated syntax options beginning with a hyphen:
-.
,--
,-+
, 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. - No more need (or support for) the
s
-suffix string numbering. All instances of single string number inputs are assumed starting string and any additional strings are inferred consecutively. - Improvements to
plot_fretboard
(renamed fromfretboard_plot
) and added wrapper functionplot_chord
for more convenient chord diagrams. - Minor bug fixes.
- Significantly simplified LilyPond syntax for generated LilyPond files by adding
simplify_phrase
and the new (default) argument tolilypond
,simplify = TRUE
, which is also used by associatedrender_*
functions. - Thank you to fnord-repeater for several helpful suggestions and insights as well as example code that helped to make the transcription pipeline better.
- Thank you to Han Oostdijk for additional bug fixes and improvements to the code for the transcription pipeline.
tabr 0.3.5 release
- Added alternate input specification for
sf_phrase
. Instead of providing the first three function arguments,string
,fret
andinfo
, separately, you can now provide everything to the first inputstring
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. - Added chord helpers:
chord_root
,chord_top
,chord_slice
,chord_is_major
,chord_is_minor
. - Added notation-frequency conversion helpers:
pitch_freq
,freq_pitch
and other related functions. - Added several more functions for inspecting and manipulating noteworthy strings.
- Code and documentation formatting and style overhaul based on stricter linting rules.
- Updated documentation and unit tests.