KXkonstantinos.xafis
Full-Stack & CloudflareArchived2022

Byzantine Music Text Editor

TypeScriptOffice Add-inOOXMLopentype.jswebpackClerk

Overview

Byzantine chant notation (neumes) is not supported by standard word processors. This Word add-in provides an on-screen neume keyboard inside the Word taskpane, maps physical Greek and English keyboard layouts to chant glyphs, and inserts the result as valid WordprocessingML into the document.

What I built

A custom grid-based text editor in the taskpane, with rows and columns of chant characters and cursor handling for composition. fontMaps.ts maps each named neume (Ison, Oligon, Petasti, Apostrofos, Yporroi, Diesi, Gorgon, Klasma…) to its Unicode code point in the SERAFIM+ font — mostly on the astral or private-use plane — and keyboard.ts provides the Greek/English keyboard synthesis layout.

sendOOXML.ts serializes the grid into WordprocessingML via xmlbuilder2 with unit-conversion helpers (PxToDxa, CmToDxa) for A4/A3/Letter/Legal paper. Authentication is embedded via Clerk, and compositions persist locally.

Technical highlights

Outcome

A functional notation editor for Word; superseded by later school tooling.