chordpro

Crates.iochordpro
lib.rschordpro
version0.3.1
sourcesrc
created_at2019-12-31 19:07:41.590864
updated_at2021-11-09 10:09:18.650695
descriptionA Chordpro parser for Rust
homepage
repositoryhttps://github.com/joseluiscd/chordpro-rs
max_upload_size
id193926
size30,526
José Luis C.D. (joseluiscd)

documentation

README

chordpro-rs

Latest Version Documentation Rust codecov

Chordpro file parser written in Rust. Chordpro is a simple text format for the notation of lyrics with chords. Although initially intended for guitarists, it can be used for all kinds of musical purposes.

Specification of the format can be found in the official website: https://www.chordpro.org/

Example

The std::str::FromStr is implemented for the Song struct:

# use chordpro::Song;
# use std::str::FromStr;

let song = Song::from_str(r##"
    {title: Song Title}"
    {artist: The Artist}
    
    This is the first verse.
    You can specify chords using brackets.
    This is a [G]chord

    {soc}
    This is the chorus of the song
    [Em]You can also add some chords
    {eoc}
"##).unwrap();

Supported directives

  • Metadata:
    • title (short: t)
    • subtitle (short: st)
    • artist
    • composer
    • lyricist
    • copyright
    • album
    • year
    • key
    • time
    • tempo
    • duration
    • capo
    • meta
  • Formatting:
    • comment (short: c)
    • comment_italic (short: ci)
    • comment_box (short: cb)
    • image
  • Environments:
    • start_of_chorus (short: soc)
    • end_of_chorus (short: eoc)
    • chorus
    • start_of_verse
    • end_of_verse
    • start_of_tab (short: sot)
    • end_of_tab (short: eot)
    • start_of_grid
    • end_of_grid
  • Custom extensions (prefixed by x_)

Supported chords

At the moment, only A-G notation is supported for parsing. Flats (with b), sharps (with #) and common postfixes (m, min, maj, numbers).

Wrapping a reference to the chord in a chordpro::Latin formats that chord with latin notation (Do, Re , Mi).

Commit count: 22

cargo fmt