ukebox
is a ukulele chord finder for the command line written in Rust.
ukebox
is intended to be a stand-alone command-line application but for the time being you need Rust to build and run the program. The easiest way to install ukebox
is to use cargo
.
$ cargo install ukebox
Alternatively, get the source code by cloning the repo from Github.
$ git clone https://github.com/noeddl/ukebox
Downloadable binaries for different platforms will be provided in upcoming releases.
```
USAGE:
ukebox
FLAGS: -h, --help Prints help information -V, --version Prints version information
SUBCOMMANDS: chart Chord chart lookup help Prints this message or the help of the given subcommand(s) name Chord name lookup ```
When running the program with Rust, replace the command ukebox
with cargo run --release
, e.g. cargo run --release -- chart G
.
Use the subcommand chart
to look up the chart for a given chord name.
```
USAGE:
ukebox chart [OPTIONS]
FLAGS: -h, --help Prints help information -V, --version Prints version information
OPTIONS:
-f, --min-fret
ARGS:
Some examples:
``` $ ukebox chart G [G - G major]
A ||---|-o-|---|---|- B E ||---|---|-o-|---|- G C ||---|-o-|---|---|- D G o||---|---|---|---|- G ```
``` $ ukebox chart --tuning D G [G - G major]
B o||---|---|---|---|- B F# ||-o-|---|---|---|- G D o||---|---|---|---|- D A ||---|-o-|---|---|- B ```
``` $ ukebox chart --min-fret 3 G [G - G major]
A -|-o-|---|---|---|- D E -|---|---|-o-|---|- B C -|---|---|-o-|---|- G G -|---|---|-o-|---|- D 5 ```
``` $ ukebox chart --tuning D --min-fret 3 G [G - G major]
B -|-o-|---|---|---|- D F# -|---|---|-o-|---|- B D -|---|---|-o-|---|- G A -|---|---|-o-|---|- D 3 ```
``` $ ukebox chart --transpose 1 C [C# - C# major]
A ||---|---|---|-o-|- C# E ||-o-|---|---|---|- F C ||-o-|---|---|---|- C# G ||-o-|---|---|---|- G# ```
``` $ ukebox chart --transpose -2 C [Bb - Bb major]
A ||-o-|---|---|---|- Bb E ||-o-|---|---|---|- F C ||---|-o-|---|---|- D G ||---|---|-o-|---|- Bb ```
Use the subcommand name
to look up the chord name(s) corresponding to a given chord fingering.
```
USAGE:
ukebox name [OPTIONS]
FLAGS: -h, --help Prints help information -V, --version Prints version information
OPTIONS:
-t, --tuning
ARGS:
Some examples:
$ ukebox name 2220
D - D major
$ ukebox name --tuning D 2220
E - E major
$ ukebox name 0233
Csus2 - C suspended 2nd
Gsus4 - G suspended 4th
If the fret pattern contains fret numbers greater than 9 you have to add spaces between the fret numbers and embed them in quotes:
$ ukebox name "7 7 7 10"
G - G major
Currently, ukebox
can handle the following types of chords:
C
, D#
, Eb
Cm
, D#m
, Ebm
Csus2
, D#sus2
, Ebsus2
Csus4
, D#sus4
, Ebsus4
Caug
, D#aug
, Ebaug
Cdim
, D#dim
, Ebdim
C7
, D#7
, Eb7
Cm7
, D#m7
, Ebm7
Cmaj7
, D#maj7
, Ebmaj7
CmMaj7
, D#mMaj7
, EbmMaj7
Caug7
, D#aug7
, Ebaug7
CaugMaj7
, D#augMaj7
, EbaugMaj7
Cdim7
, D#dim7
, Ebdim7
Cm7b5
, D#m7b5
, Ebm7b5
More types of chords will be supported in future versions (see #35).
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.