c1d3dbd
Pinchord · pinchord.git · Tickets · Changelog
Branches > serial-mods > c1d3dbd > files
Initial commit
Commit: c1d3dbd98a4ab2b9817feff2655ef86bb4ee0482
4 changed files:
.gitignore view file
@@ -0,0 +1,2 @@+.clj-kondo/+.lsp/pinchord-dict.clj view file
@@ -0,0 +1,284 @@+(def priority+ "Priorities used for javelin orthospelling."+ (zipmap [::pre-prefixes ::prefixes ::initials ::vowels ::finals ::suffixes]+ (rest (range))))++(comment+ (def yaml-dict (yaml/parse-string (slurp "pinchord-javelin-dictionary.yaml")))++ (->> (:letters yaml-dict)+ (filter #(= (:order %) 2))+ (map (fn [m] [(:stroke m) (:data m)]))+ (into {})))++(def initials {"T" "t",+ "TSP*" "sk"+ "TSPHR" "sv",+ "TP" "f",+ "TSWR" "kr",+ "THR" "thr",+ "TPR" "fr",+ "PWR" "br",+ "SH*" "sch",+ "TSPR" "scr",+ "TSWH" "kn",+ "TWH" "thw",+ "PWHR" "bl",+ "SPWHR" "cl",+ "TS" "st",+ "SPR" "spr",+ "SWHR" "shr",+ "HR" "l",+ "WH" "wh",+ "TW" "tw",+ "S" "s",+ "SR" "v",+ "TPWR" "dr",+ "H" "h",+ "PR" "pr",+ "TSPWR" "gr",+ "SHR" "sl",+ "SW" "sw",+ "SWR" "y",+ "TSPWH" "gh",+ "R" "r",+ "TSPR*" "squ",+ "TWR" "vr",+ "TSR" "str",+ "TWHR" "j",+ "SH" "sh",+ "PH" "m",+ "TSP" "sc",+ "TR" "tr",+ "P" "p",+ "WHR" "qu",+ "WHR*" "q",+ "TPHR" "fl",+ "TH" "th",+ "WR" "wr",+ "SPWR" "cr",+ "SPH" "sm",+ "TSW" "k",+ "SPHR" "spl",+ "TSPWHR" "gl",+ "TSWHR" "kl",+ "SPW" "c",+ "SWH" "z",+ "PHR" "pl",+ "SPWH" "ch",+ "TSPW" "g",+ "W" "w",+ "SP" "sp",+ "TSPH" "sn",+ "TPH" "n",+ "TPW" "d",+ "PW" "b"})++(def vowels {"OU" "ou",+ "AU" "au",+ "AOI" "ee",+ "AO^" "oa",+ "AU^" "ua",+ "AI^" "ia",+ "IU^" "ui",+ "IU" "e",+ "AIU" "ea",+ "OI^" "io",+ "AIU^" "ae",+ "AOU" "ei",+ "U^" "ue",+ "U" "u",+ "O" "o",+ "AO" "oo",+ "A" "a",+ "I" "i",+ "AOIU" "",+ "OIU" "oe",+ "AOU^" "ie",+ "OI" "oi",+ "OIU^" "eo",+ "AI" "ai"})++(def finals {"FS" "v"+ "FS*" "vv"+ "LFS" "lv"+ "LRFS" "nv"+ "RFS" "rv"+ "KFS" "sh"+ "LKFS" "lsh"+ "LRKFS" "nsh"+ "RKFS" "rsh"+ "KFS*" "w"+ "LKFS*" "wl"+ "LRKFS*" "wn"+ "RKFS*" "rw"+ "L" "l"+ "LR" "rl"+ "R" "r"+ "P" "p"+ "LP" "lp"+ "LRP" "mp"+ "RP" "rp"+ "PK" "b"+ "LPK" "lb"+ "LRPK" "mb"+ "RPK" "rb"+ "PF" "n"+ "LPF" "ln"+ "LRPF" "nn"+ "RPF" "rn"+ "PKFS" "g"+ "LPKFS" "lg"+ "LRPKFS" "ng"+ "RPKFS" "rg"+ "F" "f"+ "F*" "ff"+ "LF" "lf"+ "LRF" "nf"+ "LRF*" "fn" ;; :garfsmie:+ "RF" "rf"+ "PFT" "y"+ "PFT*" "yy"+ "LPFT" "ly"+ "LPFT*" "nly"+ "RPFT" "ry"+ "RPFT*" "rly"+ "LRPFT" "ny"++ "PKST" "j"+ "LPKST" "lj"+ "LRPKST" "nj"+ "RPKST" "rj"++ "PKF" "d"+ "LPKF" "ld"+ "LRPKF" "nd"+ "RPKF" "rd"+ "RPKF*" "dg"+ "KS" "x"+ "RKS" "rx"+ "LKS" "lx"+ "LRKS" "nx"+ "KST" "xt"+ "RKST" "rxt"+ "LKST" "lxt"+ "LRKST" "nxt"+ "KF" "ch"+ "LKF" "lch"+ "LRKF" "nch"+ "RKF" "rch"+ "K" "k"+ "LK" "lk"+ "LRK" "nk"+ "RK" "rk"+ "S" "s"+ "LS" "ls"+ "LRS" "ns"+ "RS" "rs"+ "PS" "m"+ "LPS" "lm"+ "LRPS" "mn"+ "RPS" "rm"+ ;"P" * "S h"+ ;"PKF" * "S gh"+ ;"PKF" * "TS ght"+ "PFS" "z"+ "LPFS" "lz"+ "LRPFS" "nz"+ "RPFS" "rz"+ "T" "t"+ "LT" "lt"+ "LRT" "nt"+ "RT" "rt"+ "ST" "st"+ "LST" "lst"+ "LRST" "nst"+ "RST" "rst"+ "PT" "pt"+ "KT" "kt"+ "FT" "ft"+ "PKFT" "ky"+ "RPKFT" "cky"+ "L*" "ll"+ "R*" "rr"+ "P*" "pp"+ "PK*" "w"+ "LPK*" "bl"+ "LRPK*" "bbl"+ "PKFS*" "gg"+ "LRPFT*" "nny"+ "PKF*" "dd"+ "LPKF*" "ddl"+ "LRPKF*" "rld"+ "KS*" "sk"+ "RKS*" "rsk"+ "LKS*" "lsk"+ "LRKS*" "nsk"+ "KST*" "sc"+ "RKST*" "rsc"+ "LKST*" "lsc"+ "LRKST*" "nsc"+ "KF*" "tch"+ "K*" "c"+ "LK*" "lc"+ "LRK*" "nc"+ "RK*" "rc"+ "S*" "ss"+ "PS*" "sp"+ ;"P*S*" "tion"+ ;"PKF*S*" "ction"+ ;"PKF*TS*" "nction"+ "PFS*" "zz"+ "T*" "tt"+ "LT*" "ttl"+ "ST*" "th"+ "LST*" "lth"+ "LRST*" "nth"+ "RST*" "rth"+ "KT*" "ct"+ "PKFT*" "cy"})++(defn finalize+ "Puts dashes before all the keys of m"+ [m]+ (update-keys m (partial str \-)))++;; Does not include empty entries since javelin doesn't...+(def layout+ {::pre-prefixes {"+" "{^}"+ "|" "({^}"+ "|+" "{^}-"+ "#|+" "{^}_"}+ ::prefixes {"#" "{-|}"}+ ::initials initials+ ::vowels vowels+ ::finals (finalize finals)+ ::suffixes (finalize {"E" "e"})})++(defn javelin-dict []+ {:name "Pinchord"+ :maximumOutlineLength 1+ :starters [{:stroke "" :definition "" :mask ""}]+ :letters (->> (reduce (fn [acc [layout entries]]+ (into acc (mapv (fn [[stroke translation]] {:stroke stroke :data translation :order (priority layout)})+ entries)))+ #{} layout)+ (sort-by (comp - count :stroke)))})++#_(defn javelin-dict []+ {:name "Pinchord"+ :maximumOutlineLength 1+ :starters [{:stroke "" :definition "" :mask ""}]+ :letters (sort-by (comp - count :stroke)+ (for [[layout-key entries] layout+ [stroke translation] entries]+ {:stroke stroke+ :data translation+ :priority (priority layout-key)}))})++(defn generate-javelin-dict! [dict]+ (->> (yaml/generate-string dict)+ (spit "pinchord-javelin-dictionary.yaml")))++(comment+ (generate-javelin-dict! (javelin-dict)))pinchord-javelin-dictionary.yaml view file
@@ -0,0 +1,227 @@+name: Pinchord+maximumOutlineLength: 1+starters:+- {stroke: '', definition: '', mask: ''}+letters:+- {stroke: -LRPKF*, data: rld, order: 5}+- {stroke: -LRKST*, data: nsc, order: 5}+- {stroke: -LRKFS*, data: wn, order: 5}+- {stroke: -LRPFT*, data: nny, order: 5}+- {stroke: -LRPKFS, data: ng, order: 5}+- {stroke: -LRPKST, data: nj, order: 5}+- {stroke: -LRKFS, data: nsh, order: 5}+- {stroke: -LPKF*, data: ddl, order: 5}+- {stroke: -LKFS*, data: wl, order: 5}+- {stroke: -LRKST, data: nxt, order: 5}+- {stroke: -LRKS*, data: nsk, order: 5}+- {stroke: -RPFT*, data: rly, order: 5}+- {stroke: TSPWHR, data: gl, order: 3}+- {stroke: -RPKF*, data: dg, order: 5}+- {stroke: -LRPFT, data: ny, order: 5}+- {stroke: -RPKST, data: rj, order: 5}+- {stroke: -RPKFS, data: rg, order: 5}+- {stroke: -LRPK*, data: bbl, order: 5}+- {stroke: -RKST*, data: rsc, order: 5}+- {stroke: -LRPFS, data: nz, order: 5}+- {stroke: -PKFS*, data: gg, order: 5}+- {stroke: -LPKFS, data: lg, order: 5}+- {stroke: -RPKFT, data: cky, order: 5}+- {stroke: -LPFT*, data: nly, order: 5}+- {stroke: -LRPKF, data: nd, order: 5}+- {stroke: -PKFT*, data: cy, order: 5}+- {stroke: -RKFS*, data: rw, order: 5}+- {stroke: -LPKST, data: lj, order: 5}+- {stroke: -LRST*, data: nth, order: 5}+- {stroke: -LKST*, data: lsc, order: 5}+- {stroke: -LRPS, data: mn, order: 5}+- {stroke: -LRF*, data: fn, order: 5}+- {stroke: -PKF*, data: dd, order: 5}+- {stroke: -LRFS, data: nv, order: 5}+- {stroke: -PKST, data: j, order: 5}+- {stroke: -KFS*, data: w, order: 5}+- {stroke: -LKST, data: lxt, order: 5}+- {stroke: -PKFS, data: g, order: 5}+- {stroke: -LPKF, data: ld, order: 5}+- {stroke: -LRPK, data: mb, order: 5}+- {stroke: -RST*, data: rth, order: 5}+- {stroke: TSPWR, data: gr, order: 3}+- {stroke: -RPFS, data: rz, order: 5}+- {stroke: -PFS*, data: zz, order: 5}+- {stroke: -LPFS, data: lz, order: 5}+- {stroke: SPWHR, data: cl, order: 3}+- {stroke: -KST*, data: sc, order: 5}+- {stroke: -RPKF, data: rd, order: 5}+- {stroke: -PFT*, data: yy, order: 5}+- {stroke: -RKS*, data: rsk, order: 5}+- {stroke: -LRK*, data: nc, order: 5}+- {stroke: TSPWH, data: gh, order: 3}+- {stroke: -PKFT, data: ky, order: 5}+- {stroke: -RPFT, data: ry, order: 5}+- {stroke: -LRKS, data: nx, order: 5}+- {stroke: -LKS*, data: lsk, order: 5}+- {stroke: -LRST, data: nst, order: 5}+- {stroke: TSWHR, data: kl, order: 3}+- {stroke: -LRKF, data: nch, order: 5}+- {stroke: -RKST, data: rxt, order: 5}+- {stroke: -LST*, data: lth, order: 5}+- {stroke: TSPHR, data: sv, order: 3}+- {stroke: -LPK*, data: bl, order: 5}+- {stroke: -LRPF, data: nn, order: 5}+- {stroke: TSPR*, data: squ, order: 3}+- {stroke: -RKFS, data: rsh, order: 5}+- {stroke: -LKFS, data: lsh, order: 5}+- {stroke: -LPFT, data: ly, order: 5}+- {stroke: TSPW, data: g, order: 3}+- {stroke: AIU^, data: ae, order: 4}+- {stroke: SPWH, data: ch, order: 3}+- {stroke: -LRT, data: nt, order: 5}+- {stroke: SWHR, data: shr, order: 3}+- {stroke: OIU^, data: eo, order: 4}+- {stroke: -LRK, data: nk, order: 5}+- {stroke: -RKF, data: rch, order: 5}+- {stroke: -LFS, data: lv, order: 5}+- {stroke: TPWR, data: dr, order: 3}+- {stroke: TSWH, data: kn, order: 3}+- {stroke: -LRP, data: mp, order: 5}+- {stroke: -KT*, data: ct, order: 5}+- {stroke: -RKS, data: rx, order: 5}+- {stroke: SPWR, data: cr, order: 3}+- {stroke: SPHR, data: spl, order: 3}+- {stroke: -KST, data: xt, order: 5}+- {stroke: -FS*, data: vv, order: 5}+- {stroke: -RPS, data: rm, order: 5}+- {stroke: -LT*, data: ttl, order: 5}+- {stroke: -LRS, data: ns, order: 5}+- {stroke: -RST, data: rst, order: 5}+- {stroke: -PFS, data: z, order: 5}+- {stroke: TSWR, data: kr, order: 3}+- {stroke: -PFT, data: y, order: 5}+- {stroke: -PKF, data: d, order: 5}pinchord-javelin-system.yaml view file
@@ -0,0 +1,320 @@+## Pinchord Version 7+name: "Pinchord"+## Eventually I think I could make this work with the normal extended stenotype layout?+## Requiring only the # S thing and to make ^+ maybe?+keys:+ - name: "#"+ mask: 0x01+ - name: "|"+ mask: 0x02+ - name: "+"+ mask: 0x04+ - name: "T"+ mask: 0x08+ - name: "S"+ mask: 0x10+ - name: "P"+ mask: 0x20+ - name: "W"+ mask: 0x40+ - name: "H"+ mask: 0x80+ - name: "R"+ mask: 0x100+ - name: "*"+ mask: 0x200++ - name: "A"+ mask: 0x400+ - name: "O"+ mask: 0x800+ - name: "-"+ mask: 0+ absentMask: 31744 ## match AOIU^+ presentMask: 16744448 ## Every key after AOIU^+ - name: "I"+ mask: 0x1000+ - name: "U"+ mask: 0x2000+ - name: "^"+ mask: 0x4000++ - name: "L"+ mask: 0x8000+ - name: "R"+ mask: 0x10000+ - name: "P"+ mask: 0x20000+ - name: "K"+ mask: 0x40000+ - name: "F"+ mask: 0x80000+ - name: "S"+ mask: 0x100000+ - name: "T"+ mask: 0x200000+ - name: "*"+ mask: 0x400000+ - name: "E"+ mask: 0x800000++undo: "-LR"++layout:+ - mask: 1+ name: "#"+ center: { "x": 0.5, "y": 0.06 }+ path: [+ { "c": "m", "p": [0.00454, 0] },+ { "c": "l", "p": [0.99545, 0] },+ { "c": "l", "p": [0.99545, 0.12] },+ { "c": "l", "p": [0.00454, 0.12] },+ { "c": "c" }+ ]+ - mask: 0x800000+ name: "^"+ center: { "x": 0.04545, "y": 0.275 }+ path: [+ { "c": "m", "p": [0.00454, 0.15] },+ { "c": "rl", "p": [0.08181, 0] },+ { "c": "rl", "p": [0, 0.25] },+ { "c": "rl", "p": [-0.08181, 0] },+ { "c": "c" }+ ]+ - mask: 0x1000000+ name: "+"+ center: { "x": 0.04545, "y": 0.53 }+ path: [+ { "c": "m", "p": [0.00454, 0.41] },+ { "c": "rl", "p": [0.08181, 0] },+ { "c": "rl", "p": [0, 0.17] },+ { "c": "rq", "p": [0, 0.12, -0.08181, 0.12, -0.08181, 0] },+ { "c": "c" }+ ]+ - mask: 2+ name: "S"+ center: { "x": 0.13636, "y": 0.4 }+ path: [+ { "c": "m", "p": [0.09545, 0.15] },+ { "c": "rl", "p": [0.08181, 0] },