Description
This is a programm for storing songs, songbook in short words. It use its own system for storing chords, not a chordpro format (yes, i love to reinvent the wheel), and not only chords, also you can mark stressed syllables with some symbols (as a dot or some numbers or whatever you want, only one symbol per mark). Also there's some notes (and a little bit of other stuff)
Written in pure Rust.
Installation
Download latest release here.
Or if you have Rust:
cargo install songbook --features tui
TUI
F1- Open help screenEsc- Close help screenq- Quit
Library
Short commands
j,Up- Go upk,Down- Go downh,Left,Backspace- Go backl,Right,Enter- Open a song/dirc- Cut a song/dirp- Paste a song/dirS- The same as a commandsortin CLID- Delete a song/dir
Long commands
N(dir name) - Create a new dir with (dir name)R(new name) - Rename current song/dir with (new name)F(find query) - Find (find query)A(eArtist - Title/tArtist - Title/c) - Add new song to librarye- the same as a commandadd empty, needs Artist - Titlet- the same as a commandadd from-text, needs Artist - Titlec- the same as a commandadd from-chordpro
Song
Short commands
j,Up- Scorll upk,Down- Scroll downh,Left- Scroll leftl,Right- Scroll rightJ,PageDown- Scroll page downK,PageUp- Scroll page upHome- Scroll to the startEnd- Scroll to the endc- Toggle chordsr- Toggle rhythmf- Toggle fingeringsn- Toggle notes;- Toggle librarye- Edit song in your text editora- Toggle autoscrollh,Left- Decrease autoscroll speedl,Right- Increase autoscroll speed
Long commands
S(speed) - Set autoscroll speed, only when autoscroll is onT(num) - Transpose a song to a given num, examples: T7, T-4, T+10C(fret num) - Transpose a song to a capo, examples: C7, C0, C2
A long command ends when you hit an Enter
CLI
Commands
-
init- create a directory for storing songs, mandatory! Paths for all platforms you can find here -
fret -t TUNING- print guitar fretboard for a given tuning -
circle-of-fifth,cof- print circle of fifth (not a circle) -
chord CHORD- print fingering for a given chord -
fingering- set your fingering for a chord-c, --chord CHORD- chord name-f, --fingering FINGERING- fingering for chord, example for Am: 0 1 2 2 0 x
-
showpath/to/song/(relative to library) - show a song-k, --keyKEY- transpose a song to a given key-c, --chords- show chords-r, --rhythm- show rhythm marks-f, --fingerings- show fingerings for chords-n, --notes- show notes--colored
-
editpath/to/song/(relative to library) - edit a song -
add- add new song to the libraryempty-aArtist-tTitlefrom-txt-aArtist-tTitlepath/to/file.txtfrom-chordpropath/to/chordpro/song
-
sort- sort songs in the library, will songs in next struct lib/Artist/Title -
rm- remove a file or a directory -
mv- move files or dirs somewhere -
ls- show files in a directory -
tree- show library as a tree -
mkdir- create a directory