47c8174
Pinchord · pinchord.git · Tickets · Changelog
Branches > build-process > 47c8174 > files / setup.cfg
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"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))))