From 43093ef054078acabb3577834ef04fcf7f738aec Mon Sep 17 00:00:00 2001 From: Anett Seeker Date: Sun, 5 Dec 2021 21:00:20 +0100 Subject: [PATCH] Release 0.9.0 (#91) --- CHANGELOG.md | 7 ++++ Cargo.lock | 95 ++++++++++++++++++++++++---------------------------- Cargo.toml | 4 +-- README.md | 62 ++++++++++++++++++++++++---------- 4 files changed, 97 insertions(+), 71 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac74172..cbd4850 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [0.9.0] - 2021-12-05 + +* Add more chord types and symbols ([#35](https://github.com/noeddl/ukebox/issues/35)). +* Allow several symbols for the same chord ([#32](https://github.com/noeddl/ukebox/issues/32)). +* Add subcommand `chords` that lists all chord types and symbols currently supported. +* Fix bug in fingering calculation that made the same finger appear multiple times. + ## [0.8.0] - 2021-05-23 * Simplify chord name parsing and remove `regex` dependency. diff --git a/Cargo.lock b/Cargo.lock index e3bd66b..2fe2be5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,7 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "aho-corasick" version = "0.7.18" @@ -11,9 +13,9 @@ dependencies = [ [[package]] name = "ansi_term" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" dependencies = [ "winapi", ] @@ -51,27 +53,21 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "bitflags" -version = "1.2.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bstr" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" dependencies = [ "lazy_static", "memchr", "regex-automata", ] -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - [[package]] name = "cfg-if" version = "1.0.0" @@ -80,9 +76,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "2.33.3" +version = "2.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ "ansi_term", "atty", @@ -128,33 +124,33 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.9.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" [[package]] name = "heck" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" dependencies = [ "unicode-segmentation", ] [[package]] name = "hermit-abi" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ "libc", ] [[package]] name = "indexmap" -version = "1.6.2" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" +checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" dependencies = [ "autocfg", "hashbrown", @@ -186,15 +182,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.94" +version = "0.2.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" +checksum = "f98a04dce437184842841303488f70d0188c5f51437d2a834dc097eafa909a01" [[package]] name = "memchr" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" [[package]] name = "normalize-line-endings" @@ -243,12 +239,12 @@ checksum = "57e35a3326b75e49aa85f5dc6ec15b41108cf5aee58eabb1f274dd18b73c2451" [[package]] name = "predicates-tree" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f553275e5721409451eb85e15fd9a860a6e5ab4496eb215987502b5f5391f2" +checksum = "338c7be2905b732ae3984a2f40032b5e94fd8f52505b186c7d4d68d193445df7" dependencies = [ "predicates-core", - "treeline", + "termtree", ] [[package]] @@ -277,18 +273,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.27" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" +checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43" dependencies = [ "unicode-xid", ] [[package]] name = "quote" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" dependencies = [ "proc-macro2", ] @@ -306,12 +302,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4" -dependencies = [ - "byteorder", -] +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" [[package]] name = "regex-syntax" @@ -379,15 +372,21 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.72" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82" +checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59" dependencies = [ "proc-macro2", "quote", "unicode-xid", ] +[[package]] +name = "termtree" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13a4ec180a2de59b57434704ccfad967f789b12737738798fa08798cd5824c16" + [[package]] name = "textwrap" version = "0.11.0" @@ -397,15 +396,9 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "treeline" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" - [[package]] name = "ukebox" -version = "0.8.0" +version = "0.9.0" dependencies = [ "assert_cmd", "indoc", @@ -419,15 +412,15 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" [[package]] name = "unicode-width" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" [[package]] name = "unicode-xid" diff --git a/Cargo.toml b/Cargo.toml index 28e2105..cf43fa5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "ukebox" -version = "0.8.0" +version = "0.9.0" authors = ["Anett Seeker"] edition = "2018" license = "MIT OR Apache-2.0" -description = "A ukulele chord finder in Rust" +description = "A ukulele chord toolbox in Rust" readme = "README.md" homepage = "https://github.com/noeddl/ukebox" repository = "https://github.com/noeddl/ukebox" diff --git a/README.md b/README.md index e7d13f1..4f02893 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ OPTIONS: SUBCOMMANDS: chart Chord chart lookup + chords List all supported chord types and symbols help Prints this message or the help of the given subcommand(s) name Chord name lookup voice-lead Voice leading for a sequence of chords @@ -290,24 +291,49 @@ A ||---|-2-|---|---|- B ## Supported chord types -Currently, `ukebox` can handle the following types of chords: - -* major chords, e.g. `C`, `D#`, `Eb` -* minor chords, e.g. `Cm`, `D#m`, `Ebm` -* suspended second chords, e.g. `Csus2`, `D#sus2`, `Ebsus2` -* suspended fourth chords, e.g. `Csus4`, `D#sus4`, `Ebsus4` -* augmented triads, e.g. `Caug`, `D#aug`, `Ebaug` -* diminished triads, e.g. `Cdim`, `D#dim`, `Ebdim` -* dominant 7th chords, e.g. `C7`, `D#7`, `Eb7` -* minor 7th chords, e.g. `Cm7`, `D#m7`, `Ebm7` -* major 7th chords, e.g. `Cmaj7`, `D#maj7`, `Ebmaj7` -* minor/major 7th chords, e.g. `CmMaj7`, `D#mMaj7`, `EbmMaj7` -* augmented 7th chords, e.g. `Caug7`, `D#aug7`, `Ebaug7` -* augmented major 7th chords, e.g. `CaugMaj7`, `D#augMaj7`, `EbaugMaj7` -* diminished 7th chords, e.g. `Cdim7`, `D#dim7`, `Ebdim7` -* half-diminished 7th chords, e.g. `Cm7b5`, `D#m7b5`, `Ebm7b5` - -More types of chords will be supported in future versions (see [#35](https://github.com/noeddl/ukebox/issues/35)). +Run `ukebox chords` to get a list of the chord types and symbols currently supported. + +``` +$ ukebox chords +Supported chord types and symbols + +The root note C is used as an example. + +C major - C, Cmaj, CM +C major 7th - Cmaj7, CM7 +C major 9th - Cmaj9, CM9 +C major 11th - Cmaj11, CM11 +C major 13th - Cmaj13, CM13 +C major 6th - C6, Cmaj6, CM6 +C 6th/9th - C6/9, Cmaj6/9, CM6/9 +C dominant 7th - C7, Cdom +C dominant 9th - C9 +C dominant 11th - C11 +C dominant 13th - C13 +C dominant 7th flat 9th - C7b9 +C dominant 7th sharp 9th - C7#9 +C dominant 7th flat 5th - C7b5, C7dim5 +C suspended 4th - Csus4, Csus +C suspended 2nd - Csus2 +C dominant 7th suspended 4th - C7sus4, C7sus +C dominant 7th suspended 2nd - C7sus2 +C minor - Cm, Cmin +C minor 7th - Cm7, Cmin7 +C minor/major 7th - CmMaj7, CmM7, CminMaj7 +C minor 6th - Cm6, Cmin6 +C minor 9th - Cm9, Cmin9 +C minor 11th - Cm11, Cmin11 +C minor 13th - Cm13, Cmin13 +C diminished - Cdim, Co +C diminished 7th - Cdim7, Co7 +C half-diminished 7th - Cm7b5, Cø, Cø7 +C 5th - C5 +C augmented - Caug, C+ +C augmented 7th - Caug7, C+7, C7#5 +C augmented major 7th - CaugMaj7, C+M7 +C added 9th - Cadd9, Cadd2 +C added 4th - Cadd4 +``` ## License