ijprest / keyboard-layout-editor

Web application to enable the design & editing of keyboard layouts
http://www.keyboard-layout-editor.com/
Other
1.3k stars 241 forks source link

"Upload JSON" should surface error message on failure #295

Open numist opened 3 years ago

numist commented 3 years ago

I wrote a script to generate a layout for a harmonic isomorphic midi keyboard in KLE's json style (Download):

[
  [{x:6.0},"C₈", "C₈#", "D₈", "D₈#", "E₈", "F₈", "F₈#", "G₈", "G₈#", "A₈", "A₈#", "B₈"],
  [{x:5.5},"G₇#", "A₇", "A₇#", "B₇", "C₈", "C₈#", "D₈", "D₈#", "E₈", "F₈", "F₈#", "G₈", "G₈#"],
  [{x:5.0},"E₇", "F₇", "F₇#", "G₇", "G₇#", "A₇", "A₇#", "B₇", "C₈", "C₈#", "D₈", "D₈#", "E₈", "F₈"],
  [{x:4.5},"C₇", "C₇#", "D₇", "D₇#", "E₇", "F₇", "F₇#", "G₇", "G₇#", "A₇", "A₇#", "B₇", "C₈", "C₈#", "D₈"],
  [{x:4.0},"G₆#", "A₆", "A₆#", "B₆", "C₇", "C₇#", "D₇", "D₇#", "E₇", "F₇", "F₇#", "G₇", "G₇#", "A₇", "A₇#", "B₇"],
  [{x:3.5},"E₆", "F₆", "F₆#", "G₆", "G₆#", "A₆", "A₆#", "B₆", "C₇", "C₇#", "D₇", "D₇#", "E₇", "F₇", "F₇#", "G₇", "G₇#"],
  [{x:3.0},"C₆", "C₆#", "D₆", "D₆#", "E₆", "F₆", "F₆#", "G₆", "G₆#", "A₆", "A₆#", "B₆", "C₇", "C₇#", "D₇", "D₇#", "E₇", "F₇"],
  [{x:2.5},"G₅#", "A₅", "A₅#", "B₅", "C₆", "C₆#", "D₆", "D₆#", "E₆", "F₆", "F₆#", "G₆", "G₆#", "A₆", "A₆#", "B₆", "C₇", "C₇#", "D₇"],
  [{x:2.0},"E₅", "F₅", "F₅#", "G₅", "G₅#", "A₅", "A₅#", "B₅", "C₆", "C₆#", "D₆", "D₆#", "E₆", "F₆", "F₆#", "G₆", "G₆#", "A₆", "A₆#", "B₆"],
  [{x:1.5},"C₅", "C₅#", "D₅", "D₅#", "E₅", "F₅", "F₅#", "G₅", "G₅#", "A₅", "A₅#", "B₅", "C₆", "C₆#", "D₆", "D₆#", "E₆", "F₆", "F₆#", "G₆", "G₆#"],
  [{x:1.0},"G₄#", "A₄", "A₄#", "B₄", "C₅", "C₅#", "D₅", "D₅#", "E₅", "F₅", "F₅#", "G₅", "G₅#", "A₅", "A₅#", "B₅", "C₆", "C₆#", "D₆", "D₆#", "E₆", "F₆"],
  [{x:0.5},"E₄", "F₄", "F₄#", "G₄", "G₄#", "A₄", "A₄#", "B₄", "C₅", "C₅#", "D₅", "D₅#", "E₅", "F₅", "F₅#", "G₅", "G₅#", "A₅", "A₅#", "B₅", "C₆", "C₆#", "D₆"],
  ["C₄", "C₄#", "D₄", "D₄#", "E₄", "F₄", "F₄#", "G₄", "G₄#", "A₄", "A₄#", "B₄", "C₅", "C₅#", "D₅", "D₅#", "E₅", "F₅", "F₅#", "G₅", "G₅#", "A₅", "A₅#", "B₅│
  [{x:0.5}, "A₃", "A₃#", "B₃", "C₄", "C₄#", "D₄", "D₄#", "E₄", "F₄", "F₄#", "G₄", "G₄#", "A₄", "A₄#", "B₄", "C₅", "C₅#", "D₅", "D₅#", "E₅", "F₅", "F₅#", "G₅"],
  [{x:1.0}, "F₃#", "G₃", "G₃#", "A₃", "A₃#", "B₃", "C₄", "C₄#", "D₄", "D₄#", "E₄", "F₄", "F₄#", "G₄", "G₄#", "A₄", "A₄#", "B₄", "C₅", "C₅#", "D₅", "D₅#"],
  [{x:1.5}, "D₃#", "E₃", "F₃", "F₃#", "G₃", "G₃#", "A₃", "A₃#", "B₃", "C₄", "C₄#", "D₄", "D₄#", "E₄", "F₄", "F₄#", "G₄", "G₄#", "A₄", "A₄#", "B₄"],
  [{x:2.0}, "C₃", "C₃#", "D₃", "D₃#", "E₃", "F₃", "F₃#", "G₃", "G₃#", "A₃", "A₃#", "B₃", "C₄", "C₄#", "D₄", "D₄#", "E₄", "F₄", "F₄#", "G₄"],
  [{x:2.5}, "A₂", "A₂#", "B₂", "C₃", "C₃#", "D₃", "D₃#", "E₃", "F₃", "F₃#", "G₃", "G₃#", "A₃", "A₃#", "B₃", "C₄", "C₄#", "D₄", "D₄#"],
  [{x:3.0}, "F₂#", "G₂", "G₂#", "A₂", "A₂#", "B₂", "C₃", "C₃#", "D₃", "D₃#", "E₃", "F₃", "F₃#", "G₃", "G₃#", "A₃", "A₃#", "B₃"],
  [{x:3.5}, "D₂#", "E₂", "F₂", "F₂#", "G₂", "G₂#", "A₂", "A₂#", "B₂", "C₃", "C₃#", "D₃", "D₃#", "E₃", "F₃", "F₃#", "G₃"],
  [{x:4.0}, "C₂", "C₂#", "D₂", "D₂#", "E₂", "F₂", "F₂#", "G₂", "G₂#", "A₂", "A₂#", "B₂", "C₃", "C₃#", "D₃", "D₃#"],
  [{x:4.5}, "A₁", "A₁#", "B₁ ", "C₂", "C₂#", "D₂", "D₂#", "E₂", "F₂", "F₂#", "G₂", "G₂#", "A₂", "A₂#", "B₂"],
  [{x:5.0}, "F₁#", "G₁", "G₁#", "A₁", "A₁#", "B₁", "C₂", "C₂#", "D₂", "D₂#", "E₂", "F₂", "F₂#", "G₂"],
  [{x:5.5}, "D₁#", "E₁", "F₁", "F₁#", "G₁", "G₁#", "A₁", "A₁#", "B₁", "C₂", "C₂#", "D₂", "D₂#"],
  [{x:6.0}, "C₁", "C₁#", "D₁", "D₁#", "E₁", "F₁", "F₁#", "G₁", "G₁#", "A₁", "A₁#", "B₁"]
]

Unfortunately the Upload JSON feature in the "Raw data" view produces an empty layout with this file. I've almost certainly gotten something wrong here, but the lack of error feedback makes progress difficult.

numist commented 3 years ago

(fwiw, changing the subscripts to normal ASCII numbers does not change anything)

numist commented 3 years ago

Figured it out:

["C₄", …, "B₅│

Should have been:

["C₄",…, "B₅"],

Surfacing an error message would have made this a lot easier to track down 😅