tabr: Music Notation Syntax, Manipulation, Analysis and Transcription in R

Provides a music notation syntax and a collection of music programming functions for generating, manipulating, organizing and analyzing musical information in R. The music notation framework facilitates creating and analyzing music data in notation form. Music data can be viewed, manipulated and analyzed while in different forms of representation based around different data structures: strings and data frames. Each representation offers advantages over the other for different use cases. Music syntax can be entered directly and represented in character strings to minimize the formatting overhead of data entry by using simple data structures, for example when wanting to quickly enter and transcribe short pieces of music to sheet music or tablature. The package contains functions for directly performing various mathematical, logical and organizational operations and musical transformations on special object classes that facilitate working with music data and notation. The same music data can also be organized in tidy data frames, allowing for a more familiar and powerful approach to the analysis of large amounts of structured music data. Functions are available for mapping seamlessly between these data structures and their representations of musical information. The package also provides API wrapper functions for transcribing musical representations in R into guitar tablature ("tabs") and basic sheet music using the 'LilyPond' backend (<>). 'LilyPond' is open source music engraving software for generating high quality sheet music based on markup syntax. The package generates 'LilyPond' files from R code and can pass them to 'LilyPond' to be rendered into sheet music pdf files. The package offers nominal MIDI file output support in conjunction with rendering sheet music. The package can read MIDI files and attempts to structure the MIDI data to integrate as best as possible with the data structures and functionality found throughout the package.

Version: 0.4.5
Depends: R (≥ 2.10)
Imports: magrittr, tibble, dplyr, purrr, tidyr, crayon, ggplot2
Suggests: testthat, knitr, rmarkdown, covr, kableExtra, gridExtra, htmltools, fansi, tuneR, png
Published: 2021-02-20
Author: Matthew Leonawicz ORCID iD [aut, cre]
Maintainer: Matthew Leonawicz <mfleonawicz at>
License: MIT + file LICENSE
NeedsCompilation: no
SystemRequirements: LilyPond v2.23.0+ (only needed for rendering sheet music or writing MIDI files)
Materials: README NEWS
CRAN checks: tabr results


Reference manual: tabr.pdf
Vignettes: Chord functions
The music class
Note information
Note functions
Musical scales


Package source: tabr_0.4.5.tar.gz
Windows binaries: r-devel:, r-release:, r-oldrel:
macOS binaries: r-release (arm64): tabr_0.4.5.tgz, r-oldrel (arm64): tabr_0.4.5.tgz, r-release (x86_64): tabr_0.4.5.tgz, r-oldrel (x86_64): tabr_0.4.5.tgz
Old sources: tabr archive


Please use the canonical form to link to this page.