Scriptorium is a free editor for Gregorian chant in traditional square notation, written to run entirely in a web browser. It engraves neumes on the four-line staff — punctum, virga, podatus, clivis, torculus, porrectus, climacus, scandicus, quilisma, oriscus and the liquescent forms — together with episemas, morae, flats and naturals, do and fa clefs, the divisions from the comma to the double bar, drop caps, and the titles and mode annotations a chant book prints.
It reads and writes GABC, the notation used by Gregorio and by Source & Summit, so a chant can be carried between them. Finished scores export as PDF, SVG or PNG, or save as a .gabc file, and the chant can be played back to check it by ear.
| Apply | Keeps the music of every word still present in the text, matching words by their letters, so you can add, remove or reorder words without losing what you have written. Words that are new to the text come through without music. |
| Start fresh | For when you are replacing the text entirely: the old music is thrown away and one plain note is put under every syllable of the new words. |
| Fill empty syllables | Gives the chosen note to any syllable that has none. The words are left divided exactly as you typed them — Scriptorium never re-spells or hyphenates them for you. |
| Click a note | Select it — the note itself turns red. |
| ↑ ↓ | Move the selected note up or down the staff. |
| ⇧ + ↑ ↓ | Move the whole neume together. |
| Drag a note | Drag vertically to move it — the note follows your pointer. |
| ← → | Step through notes and divisions, in score order. |
| a – m | Type a pitch letter to set the selected note directly. |
| Enter | Add a note after the selected one, at the same pitch. |
| Space | Start a new neume at the selected note, on the same syllable. Press again to rejoin. |
| , ; : | Add that division after the selected neume. Press : twice for a double bar. |
| Delete | Remove the selected note or division. |
| . _ ' ~ v w o r | Toggle mora, episema, ictus, liquescent, virga, quilisma, oriscus, cavum. |
| Click a lyric | A cursor appears in the text on the page and you type straight into it. Paste freely — spaces start new words, hyphens split a word into syllables, so Ky-ri-e e-lé-i-son lays out as six syllables. |
| Click a heading | Click a title, subtitle, annotation or side reference on the page to edit it in place, the same way you edit a lyric. Enter or click away to keep it. |
| Episemas in a row | When neighboring notes of one neume each carry an episema — all three of a torculus, say — they are drawn as a single continuous line, set at the height of the highest note, as the chant books print them. |
| ↵ (new line) | Insert a line break so the following chant starts a new line. Shift-click to justify (stretch) the line it ends. In GABC this is (Z) / (z). For a break with no custos at the end of the line before it — as at the close of a EUOUAE — use (z0) from the More menu. |
| ▾ (after Shape) | The rest of the note shapes: the ascending and descending liquescents (<, >) and the two forced oriscus directions (o<, o>). Each replaces whatever shape the note carries; click the same row again to clear it. |
| More ▾ | At the far right of the toolbar: spacing within a neume (!, /, //), an episema below the note (_0), the acute accent (r1), a custos placed by hand (+), a discretionary break (z0), and the four lyric styles — bold, italic, red and small capitals — which wrap whatever words you have selected. |
| Drag a panel edge | The Headings, Layout and Edit Text panels can be made narrower or wider by dragging their inner edge. The width you choose is remembered when you close and reopen them. |
| Side tabs | The same three panels can be opened and closed from the tabs down the left and right edges of the page, without going back up to the buttons at the top. |
| Clef | The clef button shows the clef in force. Click it to choose another: each one is drawn on its own scrap of staff, so you pick the clef you want to see rather than its code. The lower half of the same box changes clef part-way through a chant — select the division where the change belongs, and the new clef holds for the rest of the piece. |
| Enter (in text) | Cut the word at the cursor and give the part before it a note in the middle of the staff: with the cursor after the y of Kyrie you get Ky(g)rie, and the cursor carries on into rie ready for the next syllable. |
| Tab (in text) | Move to the next syllable, so a whole text can be typed straight through. ⇧+Tab goes back. |
| Space (in text) | At the end of a word, opens a fresh word to the right ready to type, with a note under it. Inside a word it divides that word into two syllables instead, so a whole text can be typed straight through with nothing but the space bar. |
| ↑ (in text) | Keeps the words and adds a note, exactly as Enter does. |
| ⇧+Enter | From a selected note back to the words of its syllable. Enter on its own still adds a note, so the two do not collide. |
| Backspace / Delete (in text) | At the start or end of an empty syllable, steps out of it to the one beside. |
| A new tab | Opens on a four-line staff with a do clef and the first syllable's place marked in red. Clicking the mark begins the chant. |
| The drop cap | Click the large initial to change the letter in a box of its own. Typing a second letter carries on into the word. The place where the rest of the first word goes can be clicked to start typing, even when the drop cap has taken the whole word. |
| A picture instead | Inset a custom letter, beside the drop cap switch in Headings, puts a picture in place of the letter — PNG, JPEG, SVG, WebP or GIF. It need not be square: drag it about and size it until the part you want fills the frame. It is kept in the chant itself, so the file carries its own art. |
| fill with | Names the notes as they are sung — do, re, mi — following whichever clef is in force, with the GABC letter beside each. |
| Edit Text | The words flow both ways: typing in the box sets the chant as you type, and editing the chant on the page sets the box. What you are half-way through typing is never overwritten. |
| Ctrl+Z / Ctrl+Y | Undo / redo any change. |
| Esc | Close a popup, or clear the selection. |
| Click the clef | Selects it. ↑ ↓ move it up and down the staff. ← changes it to a fa (F) clef; → turns a fa clef back into a do (C) clef, or moves on to the first neume. Enter always moves on to the music. |
| Click a division | Selects that bar. ↑ ↓ make the pause longer or shorter — virgula, quarter, half, full, double. Delete removes it, and , ; : set one directly. |
| (c4) (c3) (c2) (c1) | C-clef on line 4 / 3 / 2 / 1 — c4 is the most common. |
| (f3) (f4) | F-clef on line 3 / 4. |
| (cb4) (cb3) | C-clef with a standing B-flat, printed beside the clef. |
Edit Text (top right) opens a panel where you can type or paste the words of the chant on their own, without the music notation in the way. Separate words with spaces and syllables with hyphens. Apply rebuilds the chant, keeping the neumes you already have wherever the syllables still line up.
Auto-detect syllables splits any whole word into syllables and drops a note under every syllable that hasn't got one, so eleison with no music becomes e(g)le(g)i(g)son(g). Choose which note it fills with from the menu beside the button.
Header fields end at a semicolon or at the end of the line, so GABC pasted in from elsewhere still reads correctly when some lines are missing their ;. Layout sets the page size and margin in inches or centimeters, chooses among the serif faces used for chant — EB Garamond, Cardo, Cormorant, Crimson, Baskerville, Gentium, Alegreya, Vollkorn, Spectral, Junicode — and controls every size independently: lyrics, drop cap, titles, annotation, side text, staff, notes, line thickness, and horizontal and vertical spacing. The staff can be black, red or sepia, and notes, lyrics, titles and the page itself each take their own color. When you change any one setting a small ↺ appears beside it to put just that setting back to its default. The drop cap toggle now lives in the Headings panel; the transparent background option and the file name live in the Export menu.
The Headings panel writes the standard GABC header fields above the %% separator:
A space inside the parentheses starts a new neume over the same syllable:
A porrectus followed by a climacus, both sung on al, with one lyric underneath.
Click any lyric and paste a whole line. Each syllable arrives without music, and Enter gives the one you are on a note in the middle of the staff — then the arrow keys move it where it belongs. Use the á é í palette for accented vowels, æ, œ and the ℣ ℟ ✠ marks.
Or type the word whole and cut it up as you go: put the cursor where a syllable ends and press Enter. Kyrie becomes Ky(g)rie, then Ky(g)r(g)ie, laying a note under each syllable as you divide it.
| a b c d | Low range — d sits on line 1 (bottom). |
| e f g h | Middle range — f = line 2, h = line 3. |
| i j k l m | High range — j = line 4 (top). |
| (f) | Single note (punctum) |
| (fg) | Two ascending (pes / podatus) |
| (gf) | Two descending (clivis / flexa) |
| (hGF) | Climacus — capitals give the diamond shapes |
| (fgf) | Torculus |
| (gfg) | Porrectus |
| f. f_ f' | Mora, horizontal episema, ictus |
| f~ | Liquescent (small note) |
| fv fw fo fr | Virga, quilisma, oriscus, cavum |
| fx fy | Flat / natural (written before the note: fxf) |
| f+ | Custos — the guide mark at a line end |
| (space) | Inside parentheses: start a new neume on the same syllable |
Scriptorium runs entirely on your own computer. The chant you write is never uploaded, never stored on a server, and never seen by anyone else. There is no account to create and nothing to sign in to.
So that your work is still there if you close the tab by accident, Scriptorium keeps a copy of whatever you last had open in your own browser's storage. That copy stays on your machine, belongs to you, and can be cleared at any time with Forget saved work below or by clearing your browser's site data. Nothing else is kept.
If the site counts visits, it does so without cookies and without collecting anything that identifies you personally — no tracking across sites, no advertising, no selling anything to anybody.
Feedback is sent only when you choose to send it, and only contains what you can see in the feedback box before you press Send.
Scriptorium Chant Engraver. Copyright © 2026. You are free to use it to write, print and publish chant, and anything you write with it is entirely your own.
Chant is engraved by exsurge, an open-source chant rendering engine by Fr. Matthew Spencer, used here in a corrected and extended form. exsurge is released under the MIT Licence, which requires that this notice travel with the program:
Copyright © Fr. Matthew Spencer, OSJ. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the above copyright notice and this permission notice being included in all copies or substantial portions of the Software.
Words are divided with Hypher by Bram Stein, under the BSD 3-Clause Licence, using the TeX hyphenation patterns for Latin (Claudio Beccari) and English, distributed by the TeX Users Group.
Typefaces are served by Google Fonts under the SIL Open Font Licence. The chant texts themselves are the common property of the Church; the example is from the Kyriale.
Scriptorium is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. In no event shall the authors be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use of it. Keep your own copies of work that matters to you: export it, or save the .gabc file.