/ascii_chord

Print guitar chord with ascii characters given its name

Primary LanguageRust

Ascii Chord

A command line tool for showing how to play guitar chords

Usage

For a single chord:

$ aschord get G

This is how you play 'G' chord: 
    ◯ ◯ ◯  
┌─┬─┬─┬─┬─┐
│ │ │ │ │ │
├─┼─┼─┼─┼─┤
│ ◯ │ │ │ │
├─┼─┼─┼─┼─┤
◯ │ │ │ │ ◯
└─┴─┴─┴─┴─┘

For multiple chords:

$ aschord list Em Esus4 Asus2 F

Em             Esus4          Asus2          F              
◯     ◯ ◯ ◯    ◯       ◯ ◯    x ◯     ◯ ◯                   
╒═╤═╤═╤═╤═╕    ╒═╤═╤═╤═╤═╕    ╒═╤═╤═╤═╤═╕    ╒═╤═╤═╤═╤═╕    
│ │ │ │ │ │    │ │ │ │ │ │    │ │ │ │ │ │    ◯-------◯-◯    
├─┼─┼─┼─┼─┤    ├─┼─┼─┼─┼─┤    ├─┼─┼─┼─┼─┤    ├─┼─┼─┼─┼─┤    
│ ◯ ◯ │ │ │    │ ◯ ◯ ◯ │ │    │ │ ◯ ◯ │ │    │ │ │ ◯ │ │    
├─┼─┼─┼─┼─┤    ├─┼─┼─┼─┼─┤    ├─┼─┼─┼─┼─┤    ├─┼─┼─┼─┼─┤    
│ │ │ │ │ │    │ │ │ │ │ │    │ │ │ │ │ │    │ ◯ ◯ │ │ │    
├─┼─┼─┼─┼─┤    ├─┼─┼─┼─┼─┤    ├─┼─┼─┼─┼─┤    ├─┼─┼─┼─┼─┤    
│ │ │ │ │ │    │ │ │ │ │ │    │ │ │ │ │ │    │ │ │ │ │ │    
└─┴─┴─┴─┴─┘    └─┴─┴─┴─┴─┘    └─┴─┴─┴─┴─┘    └─┴─┴─┴─┴─┘   

For different ways to play the same chord:

$ aschord list Bm --style full-name

B minor           B minor (no bar)
                  x x             
╒═╤═╤═╤═╤═╕       ╒═╤═╤═╤═╤═╕     
│ │ │ │ │ │       │ │ │ │ │ │     
├─┼─┼─┼─┼─┤       ├─┼─┼─┼─┼─┤     
◯-◯-------◯       │ │ │ │ │ ◯     
├─┼─┼─┼─┼─┤       ├─┼─┼─┼─┼─┤     
│ │ │ │ ◯ │       │ │ │ │ ◯ │     
├─┼─┼─┼─┼─┤       ├─┼─┼─┼─┼─┤     
│ │ ◯ ◯ │ │       │ │ ◯ ◯ │ │     
└─┴─┴─┴─┴─┘       └─┴─┴─┴─┴─┘     

For multiple chords with full names:

$ aschord list Em Esus4 Asus2 F --style full-name

E minor          E suspended 4th  A suspended 2nd  F major    
◯     ◯ ◯ ◯      ◯       ◯ ◯      x ◯     ◯ ◯                 
╒═╤═╤═╤═╤═╕      ╒═╤═╤═╤═╤═╕      ╒═╤═╤═╤═╤═╕      ╒═╤═╤═╤═╤═╕
│ │ │ │ │ │      │ │ │ │ │ │      │ │ │ │ │ │      ◯-------◯-◯
├─┼─┼─┼─┼─┤      ├─┼─┼─┼─┼─┤      ├─┼─┼─┼─┼─┤      ├─┼─┼─┼─┼─┤
│ ◯ ◯ │ │ │      │ ◯ ◯ ◯ │ │      │ │ ◯ ◯ │ │      │ │ │ ◯ │ │
├─┼─┼─┼─┼─┤      ├─┼─┼─┼─┼─┤      ├─┼─┼─┼─┼─┤      ├─┼─┼─┼─┼─┤
│ │ │ │ │ │      │ │ │ │ │ │      │ │ │ │ │ │      │ ◯ ◯ │ │ │
├─┼─┼─┼─┼─┤      ├─┼─┼─┼─┼─┤      ├─┼─┼─┼─┼─┤      ├─┼─┼─┼─┼─┤
│ │ │ │ │ │      │ │ │ │ │ │      │ │ │ │ │ │      │ │ │ │ │ │
└─┴─┴─┴─┴─┘      └─┴─┴─┴─┴─┘      └─┴─┴─┴─┴─┘      └─┴─┴─┴─┴─┘

For all support chords:

$ aschord all

Also see all supported chords here (auto-generated, do not edit).

Installation

Install local version:

git clone git@github.com:yzhong52/ascii_chord.git
cd ascii_chord
cargo install --path .

Install from https://crates.io/crates/aschord:

cargo install aschord

Development

Build & Run

Show a single chord:

cargo run -- G

Show multiple chords:

cargo run -- list Em Esus4 Asus2 Fm D Am

Show all chords:

cargo run -- all

Unit Tests

cargo test

Release

cargo publish