47c8174
Pinchord · pinchord.git · Tickets · Changelog
Branches > build-process > 47c8174 > files / CONTRIBUTING.md
Move bank chord definitions into :chords/bank-keys map in chords.edn
Commit: 47c81746a507ea3e3dc72aad25f684c973d64dd3
Parent: fc28cd9
3 changed files:
chords.edn view file
@@ -6,343 +6,345 @@ :finals "LRPKFST*" :suffixes "es"} ;:keys "#+TSPWHR&AOIU^LRPKFST*es"- :initials {"T" "t"- "TSP&" "sk"- "TP" "f"- "TP&" "ph"- "TSWR" "kr"- "THR" "thr"- "TPR" "fr"- "PWR" "br"- "SH&" "sch"- "TSPR" "scr"- "TSPR&" "skr"- "TSWH" "kn"- "TWH" "thw"- "PWHR" "bl"- "SPWHR" "cl"- "SPWHR&" "chl"- "TS" "st"- "TSH" "sth"- "TS&" "ts"- "SPR" "spr"- "SHR&" "shr"- "HR" "l"- "HR&" "ll"- "WH" "wh"- "WH&" "hw" ; The two hwat?- "TW" "tw"- "S" "s"- "SR" "v"- "SR&" "vr"- "TPWR" "dr"- "TPWH" "x"- "H" "h"- "PR" "pr"- "TSPWR" "gr"- "SHR" "sl"- "SW" "sw"- "SW&" "sv"- "SWR" "y"- "TSPWH" "gh"- "R" "r"- "R&" "rh"- "SWHR" "squ"- "TSR" "str"- "TSR&" "tz"- "TWHR" "j"- "SH" "sh"- "PH" "m"- "TSP" "sc"- "TR" "tr"- "P" "p"- "WHR" "qu"- "WHR&" "q"- "TPHR" "fl"- "TPHR&" "phl"- "TPR&" "phr"- "TH" "th"- "WR" "wr"- "SPWR" "cr"- "SPWR&" "chr"- "SPH" "sm"- "SPH&" "schm"- "TSW" "k"- "SPHR" "spl"- "TSPWHR" "gl"- "TSWHR" "kl"- "SPW" "c"- "SWH" "z"- "PHR" "pl"- "SPWH" "ch"- "TSPW" "g"- "W" "w"- "SP" "sp"- "SP&" "sph"- "TSPH" "sn"- "TSPHR" "scl"- "TPH" "n"- "TPH&" "mn"- "TPW" "d"- "PW" "b"- "" "{^}"} - :vowels {"OU" "ou"- "OU^" "uo"- "AU" "au"- "AOI" "ei"- "AO" "oa"- "AO^" "ao"- "AU^" "ua"- "AI^" "ia"- "IU^" "ee"- "IU" "e"- "AIU" "ea"- "OI^" "io"- "AIU^" "ae"- "AOU" "ui"- "AOI^" "ie"- "U" "u"- "O" "o"- "O^" "oo"- "A" "a"- "A^" "aa"- "I" "i"- "I^" "eu"- "^" "y"- "OIU" "eo"- "OIU^" "oe"- "AOU^" "iu"- "OI" "oi"- "U^" "ue"- "AI" "ai"}+ :chords/bank-chords {:prefixes {"#" "{-|}"+ "+" "{^}"+ ; TODO this isn't even valid syntax so it's clearly not being used at all+ #_["#+" "{^-|}"]} - :finals {"FS" "v"- "FS*" "vv"- "LFS" "lv"- "LFS*" "'ve"- "LRFS" "nv"- "RFS" "rv"- "KFS" "sh"- "LKFS" "lsh"- "LRKFS" "nsh"- "RKFS" "rsh"- "L" "l"- "LR" "rl"- "LR*" "rly"- "R" "r"- "P" "p"- "LP" "lp"- "LP*" "pl"- "LRP" "mp"- "LRP*" "mpl"- "RP" "rp"- "PK" "b"- "LPK" "lb"- "LRPK" "mb"- "RPK" "rb"- "PF" "n"- "LPF" "ln"- "LRPF" "nn"- "RPF" "rn"- "PKFS" "g"- "LPKFS" "lg"- "LPKFS*" "gl"- "LRPKFS" "ng"- "LRPKFS*" "gn"- "RPKFS" "rg"- "RPKFS*" "dg"- "KFS*" "gh"+ :initials {"T" "t"+ "TSP&" "sk"+ "TP" "f"+ "TP&" "ph"+ "TSWR" "kr"+ "THR" "thr"+ "TPR" "fr"+ "PWR" "br"+ "SH&" "sch"+ "TSPR" "scr"+ "TSPR&" "skr"+ "TSWH" "kn"+ "TWH" "thw"+ "PWHR" "bl"+ "SPWHR" "cl"+ "SPWHR&" "chl"+ "TS" "st"+ "TSH" "sth"+ "TS&" "ts"+ "SPR" "spr"+ "SHR&" "shr"+ "HR" "l"+ "HR&" "ll"+ "WH" "wh"+ "WH&" "hw" ; The two hwat?+ "TW" "tw"+ "S" "s"+ "SR" "v"+ "SR&" "vr"+ "TPWR" "dr"+ "TPWH" "x"+ "H" "h"+ "PR" "pr"+ "TSPWR" "gr"+ "SHR" "sl"+ "SW" "sw"+ "SW&" "sv"+ "SWR" "y"+ "TSPWH" "gh"+ "R" "r"+ "R&" "rh"+ "SWHR" "squ"+ "TSR" "str"+ "TSR&" "tz"+ "TWHR" "j"+ "SH" "sh"+ "PH" "m"+ "TSP" "sc"+ "TR" "tr"+ "P" "p"+ "WHR" "qu"+ "WHR&" "q"+ "TPHR" "fl"+ "TPHR&" "phl"+ "TPR&" "phr"+ "TH" "th"+ "WR" "wr"+ "SPWR" "cr"+ "SPWR&" "chr"+ "SPH" "sm"+ "SPH&" "schm"+ "TSW" "k"+ "SPHR" "spl"+ "TSPWHR" "gl"+ "TSWHR" "kl"+ "SPW" "c"+ "SWH" "z"+ "PHR" "pl"+ "SPWH" "ch"+ "TSPW" "g"+ "W" "w"+ "SP" "sp"+ "SP&" "sph"+ "TSPH" "sn"+ "TSPHR" "scl"+ "TPH" "n"+ "TPH&" "mn"+ "TPW" "d"+ "PW" "b"+ "" "{^}"} - "KFST" "ty"- "LKFST" "lty"- "LKFST*" "y'd"- "LRKFST" "nty"- "RKFST" "rty"- "KFST*" "ght"+ :vowels {"OU" "ou"+ "OU^" "uo"+ "AU" "au"+ "AOI" "ei"+ "AO" "oa"+ "AO^" "ao"+ "AU^" "ua"+ "AI^" "ia"+ "IU^" "ee"+ "IU" "e"+ "AIU" "ea"+ "OI^" "io"+ "AIU^" "ae"+ "AOU" "ui"+ "AOI^" "ie"+ "U" "u"+ "O" "o"+ "O^" "oo"+ "A" "a"+ "A^" "aa"+ "I" "i"+ "I^" "eu"+ "^" "y"+ "OIU" "eo"+ "OIU^" "oe"+ "AOU^" "iu"+ "OI" "oi"+ "U^" "ue"+ "AI" "ai"} - "F" "f"- "F*" "ff"- "LF" "lf"- "LF*" "fl"- "LRF" "nf"- "LRF*" "fn" ;; :garfsmie:- "RF" "rf"- "PFT" "y"- "PFT*" "ption"- "LPFT" "ly"- "RPFT*" "rry" ; TODO this was wrong update it spooglypop- ; -tz- "LRPFT*" "nny"- "LPFT*" "lly"- "RPFT" "ry"- "LRPFT" "ny"+ :finals {"FS" "v"+ "FS*" "vv"+ "LFS" "lv"+ "LFS*" "'ve"+ "LRFS" "nv"+ "RFS" "rv"+ "KFS" "sh"+ "LKFS" "lsh"+ "LRKFS" "nsh"+ "RKFS" "rsh"+ "L" "l"+ "LR" "rl"+ "LR*" "rly"+ "R" "r"+ "P" "p"+ "LP" "lp"+ "LP*" "pl"+ "LRP" "mp"+ "LRP*" "mpl"+ "RP" "rp"+ "PK" "b"+ "LPK" "lb"+ "LRPK" "mb"+ "RPK" "rb"+ "PF" "n"+ "LPF" "ln"+ "LRPF" "nn"+ "RPF" "rn"+ "PKFS" "g"+ "LPKFS" "lg"+ "LPKFS*" "gl"+ "LRPKFS" "ng"+ "LRPKFS*" "gn"+ "RPKFS" "rg"+ "RPKFS*" "dg"+ "KFS*" "gh" - "PKST" "ct"- "LPKST" "lct"- "LRPKST" "nct"- "RPKST" "rct"+ "KFST" "ty"+ "LKFST" "lty"+ "LKFST*" "y'd"+ "LRKFST" "nty"+ "RKFST" "rty"+ "KFST*" "ght" - "PKF" "d"- "LPKF" "ld"- "LRPKF" "nd"- "RPKF" "rd"+ "F" "f"+ "F*" "ff"+ "LF" "lf"+ "LF*" "fl"+ "LRF" "nf"+ "LRF*" "fn" ;; :garfsmie:+ "RF" "rf"+ "PFT" "y"+ "PFT*" "ption"+ "LPFT" "ly"+ "RPFT*" "rry" ; TODO this was wrong update it spooglypop+ ; -tz+ "LRPFT*" "nny"+ "LPFT*" "lly"+ "RPFT" "ry"+ "LRPFT" "ny" - "PKF*" "dd"- "LPKF*" "ndl"- "LRPKF*" "ddl"- "RPKF*" "rld"+ "PKST" "ct"+ "LPKST" "lct"+ "LRPKST" "nct"+ "RPKST" "rct" - "KS" "x"- "RKS" "rx"- "LKS" "lx"- "LRKS" "nx"- "KST" "xt"- "RKST" "rxt"- "LKST" "lxt"- "LRKST" "nxt"- "KF" "ch"- "KF*" "q"- "LKF" "lch"- "LRKF" "nch"- "LRKF*" "nsion"- "RKF" "rch"- "K" "k"- "K*" "ck"- "LK*" "lck"- "LRK*" "nck"- "RK*" "rck"- "LK" "lk"- "LRK" "nk"- "RK" "rk"- "S" "s"- "LS" "ls"- "LS*" "'s"- "LRS" "ns"- "RS" "rs"- "PS" "m"- "LPS" "lm"- "LPS*" "'m"- "LRPS" "mn"- "LRPS*" "gm"- "RPS" "rm"- "PFS" "z"- "PFS*" "zz"- "LPFS" "lz"- "LRPFS" "nz"- "RPFS" "rz"- "T" "t"- "LT" "lt"- "LRT" "nt"- "LRT*" "n't"- "RT" "rt"- "RT*" "rnt"- "ST" "st"- "ST*" "ts"- "LST" "lst"- "LST*" "t's"- "LRST" "nst"- "RST" "rst"- "PT" "pt"- "LPT" "lpt"- "LRPT" "mpt"- "RPT" "rpt"+ "PKF" "d"+ "LPKF" "ld"+ "LRPKF" "nd"+ "RPKF" "rd" - "PKST*" "kt"- "LPKST*" "lkt"- "LRPKST*" "nkt"- "RPKST*" "rkt"+ "PKF*" "dd"+ "LPKF*" "ndl"+ "LRPKF*" "ddl"+ "RPKF*" "rld" - "KT" "h"- "KT*" "hh"- "PKT*" "hp" ; :p- "LPKT*" "'ll"- "LRPKT*" "'d"- "RPKT*" "'re"- "PKT" "ph"- "RPKT" "rph"- "LRPKT" "mph" ; is nph a thing?- "LPKT" "lph"- "LKT" "hl"- "LRKT" "hn"- "RKT" "hr"- "FT" "ft"- "FT*" "tion"- "LFT" "lft"- "LFT*" "ltion"- "LRFT" "nft"- "LRFT*" "ntion"- "RFT" "rft"- "RFT*" "stion"- "KFT" "tch"- "KFT*" "ction"- "LKFT" "ltch"- "LKFT*" "sion"- "LRKFT" "ntch"- "LRKFT*" "nction"- "RKFT" "rtch"- "RKFT*" "stian"- "PKFT" "ky"- "LPKFT" "lky"- "LRPKFT" "nky"- "RPKFT" "rky"- "PKFT*" "cky"- "LPKFT*" "lcky"- "LRPKFT*" "ncky"- "RPKFT*" "rcky"- "L*" "ll"- "R*" "rr"- "P*" "pp"- "PF*" "w"- "LPF*" "wl"- "LRPF*" "wn"- "RPF*" "rw"- "LPK*" "bl"- "LRPK*" "bbl"- "PKFS*" "gg"- "KS*" "sk"- "RKS*" "rsk"- "LKS*" "lsk"- "LRKS*" "nsk"+ "KS" "x"+ "RKS" "rx"+ "LKS" "lx"+ "LRKS" "nx"+ "KST" "xt"+ "RKST" "rxt"+ "LKST" "lxt"+ "LRKST" "nxt"+ "KF" "ch"+ "KF*" "q"+ "LKF" "lch"+ "LRKF" "nch"+ "LRKF*" "nsion"+ "RKF" "rch"+ "K" "k"+ "K*" "ck"+ "LK*" "lck"+ "LRK*" "nck"+ "RK*" "rck"+ "LK" "lk"+ "LRK" "nk"+ "RK" "rk"+ "S" "s"+ "LS" "ls"+ "LS*" "'s"+ "LRS" "ns"+ "RS" "rs"+ "PS" "m"+ "LPS" "lm"+ "LPS*" "'m"+ "LRPS" "mn"+ "LRPS*" "gm"+ "RPS" "rm"+ "PFS" "z"+ "PFS*" "zz"+ "LPFS" "lz"+ "LRPFS" "nz"+ "RPFS" "rz"+ "T" "t"+ "LT" "lt"+ "LRT" "nt"+ "LRT*" "n't"+ "RT" "rt"+ "RT*" "rnt"+ "ST" "st"+ "ST*" "ts"+ "LST" "lst"+ "LST*" "t's"+ "LRST" "nst"+ "RST" "rst"+ "PT" "pt"+ "LPT" "lpt"+ "LRPT" "mpt"+ "RPT" "rpt" - "PKS*" "sc"- "LPKS*" "lsc"- "LRPKS*" "nsc"- "RPKS*" "rsc"+ "PKST*" "kt"+ "LPKST*" "lkt"+ "LRPKST*" "nkt"+ "RPKST*" "rkt" - "KST*" "j"- "RKST*" "rj"- "LKST*" "lj"- "LRKST*" "nj"+ "KT" "h"+ "KT*" "hh"+ "PKT*" "hp" ; :p+ "LPKT*" "'ll"+ "LRPKT*" "'d"+ "RPKT*" "'re"+ "PKT" "ph"+ "RPKT" "rph"+ "LRPKT" "mph" ; is nph a thing?+ "LPKT" "lph"+ "LKT" "hl"+ "LRKT" "hn"+ "RKT" "hr"+ "FT" "ft"+ "FT*" "tion"+ "LFT" "lft"+ "LFT*" "ltion"+ "LRFT" "nft"+ "LRFT*" "ntion"+ "RFT" "rft"+ "RFT*" "stion"+ "KFT" "tch"+ "KFT*" "ction"+ "LKFT" "ltch"+ "LKFT*" "sion"+ "LRKFT" "ntch"+ "LRKFT*" "nction"+ "RKFT" "rtch"+ "RKFT*" "stian"+ "PKFT" "ky"+ "LPKFT" "lky"+ "LRPKFT" "nky"+ "RPKFT" "rky"+ "PKFT*" "cky"+ "LPKFT*" "lcky"+ "LRPKFT*" "ncky"+ "RPKFT*" "rcky"+ "L*" "ll"+ "R*" "rr"+ "P*" "pp"+ "PF*" "w"+ "LPF*" "wl"+ "LRPF*" "wn"+ "RPF*" "rw"+ "LPK*" "bl"+ "LRPK*" "bbl"+ "PKFS*" "gg"+ "KS*" "sk"+ "RKS*" "rsk"+ "LKS*" "lsk"+ "LRKS*" "nsk" - "PKS" "c"- "LPKS" "lc"- "LRPKS" "nc"- "RPKS" "rc"- "S*" "ss"- "PS*" "sp"- "T*" "tt"- "LT*" "ttl"+ "PKS*" "sc"+ "LPKS*" "lsc"+ "LRPKS*" "nsc"+ "RPKS*" "rsc" - "FST" "th"- "FST*" "fth"- "LFST" "lth"- "LFST*" "lfth"- "LRFST" "nth"- "LRFST*" "ndth"- "RFST" "rth"- "RFST*" "rmth"+ "KST*" "j"+ "RKST*" "rj"+ "LKST*" "lj"+ "LRKST*" "nj" - "PKFST" "cy"- "PKFST*" "sy"- "LPKFST" "lcy"- "LRPKFST" "ncy"- "LRPKFST*" "ngth"- "RPKFST" "rcy"}- :prefixes {"#" "{-|}"- "+" "{^}"- ; TODO this isn't even valid syntax so it's clearly not being used at all- #_["#+" "{^-|}"]}- :suffixes {"e" "{^}e"- "s" "{^}s"- "es" "{^}es"}}+ "PKS" "c"+ "LPKS" "lc"+ "LRPKS" "nc"+ "RPKS" "rc"+ "S*" "ss"+ "PS*" "sp"+ "T*" "tt"+ "LT*" "ttl"++ "FST" "th"+ "FST*" "fth"+ "LFST" "lth"+ "LFST*" "lfth"+ "LRFST" "nth"+ "LRFST*" "ndth"+ "RFST" "rth"+ "RFST*" "rmth"++ "PKFST" "cy"+ "PKFST*" "sy"+ "LPKFST" "lcy"+ "LRPKFST" "ncy"+ "LRPKFST*" "ngth"+ "RPKFST" "rcy"}+ :suffixes {"e" "{^}e"+ "s" "{^}s"+ "es" "{^}es"}}}pinchord-javelin-dictionary-v30.0.yaml view file
@@ -390,6 +390,7 @@ - {stroke: IU, data: e, order: 3, avoidMask: AO^} - {stroke: -R, data: r, order: 4, avoidMask: -LPKFST*} - {stroke: WH, data: wh, order: 2, avoidMask: TSPR&}+- {stroke: '#+', data: '#+', order: 1, avoidMask: ''} - {stroke: W&, data: W&, order: 2, avoidMask: TSPHR} - {stroke: PR, data: pr, order: 2, avoidMask: TSWH&} - {stroke: SH, data: sh, order: 2, avoidMask: TPWR&}@@ -421,7 +422,9 @@ - {stroke: +, data: '{^}', order: 1, avoidMask: '#'} - {stroke: ^, data: y, order: 3, avoidMask: AOIU} - {stroke: '-', data: '', order: 4, avoidMask: -LRPKFST*}+- {stroke: '-', data: '', order: 5, avoidMask: es} - {stroke: O, data: o, order: 3, avoidMask: AIU^} - {stroke: A, data: a, order: 3, avoidMask: OIU^} - {stroke: '', data: '', order: 3, avoidMask: AOIU^} - {stroke: '', data: '{^}', order: 2, avoidMask: TSPWHR&}+- {stroke: '', data: '', order: 1, avoidMask: '#+'}src/org/pinchord/generate.clj view file
@@ -37,24 +37,19 @@ rest-combos (map #(str (first s) %) rest-combos)))))) -(defn abbreviate-long-chords [s]- (update-vals s abbreviate))+(defn fill-gaps-in-banks [{:chords/keys [bank-chords bank-keys]}]+ (reduce (fn [acc [bank chords]]+ (let [default-chords (all-chords (bank-keys bank))]+ (assoc acc bank (-> (merge (zipmap default-chords default-chords) chords)+ (update-vals abbreviate)))))+ {} bank-chords)) -(defn with-gaps-filled [bank chords]- (let [s (remove (bank chords) (all-chords (bank (:chords/bank-keys chords))))]- (merge (bank chords) (abbreviate-long-chords (zipmap s s)))))--; TODO make this a function of bank-keys-(defn fill-gaps-in-banks [chords]- (assoc chords- :initials (with-gaps-filled :initials chords)- :vowels (with-gaps-filled :vowels chords)- :finals (with-gaps-filled :finals chords)))+(defn with-gaps-filled [chords]+ (assoc chords :chords/bank-chords (fill-gaps-in-banks chords))) ; TODO switch to JVM and use keys! with the latest alpha-(defn build-javelin-dictionary [{:chords/keys [banks bank-keys]- :keys [version]- :as chords}]+(defn build-javelin-dictionary [{:chords/keys [banks bank-keys bank-chords]+ :keys [version]}] (let [bank->priority (zipmap banks (map inc (range)))] {:name (str "Pinchord Base " version) :maximumOutlineLength 1@@ -71,14 +66,14 @@ (into acc (mapv (fn [[stroke translation]] {:stroke stroke :data translation :order (bank->priority bank)}) entries))))- #{} (select-keys chords banks))+ #{} bank-chords) (sort-by (comp - count :stroke)))})) (defn -main [& _args] (let [chords (-> (edn/read-string (slurp "chords.edn"))- fill-gaps-in-banks- (update :finals finalize)- (update :suffixes finalize))+ with-gaps-filled+ (update-in [:chords/bank-chords :finals] finalize)+ (update-in [:chords/bank-chords :suffixes] finalize)) dict (build-javelin-dictionary chords) dict-path (str "pinchord-javelin-dictionary-" (:version chords) ".yaml")] (spit dict-path (yaml/generate-string dict))))