JavaScript Chant Library
  • For web developers and other programmers:

    I'd like to share the JavaScript library I've been putting together that takes gabc and creates SVGs in square note notation, entitled exsurge. My focus has mostly been client side rendering (the code is rendered in the browser), but eventually server side processing is also on the horizon via node.js. The idea is that web developers and site admins can easily enable chant fragments for display on their website.

    It could power something like illuminare's score editor, though my purpose is to try to make a general purpose chant renderer for lots of different situations (editors, online chant database tools, even mobile chant apps via cordova). I'm also trying to keep to the high standards I set for Caeciliae years back of creating excellent, print-worthy, chant. Thus not only does exsurge use the Caeciliae glyphs, but it also supports advanced OpenType features via the browser when available.

    Preliminary live testing page can be seen here.
    GitHub repo here.

    Not all of the gabc spec is implemented yet, and it's sure to have bugs and need a lot of work, but if you're adventurous then you might enjoy jumping in.

    Any development inquiries or issues should go through the github tracker rather than here. My day is filled with priestly and religious duties, so who knows how much time I'll be able to devote to this...?
  • BenBen
    Posts: 3,114
    That is really cool! I'll certainly be following it on github and maybe integrating into a site if the opportunity arises....maybe even implementing a <gabc> tag here on the forum....
  • Hi Ben, thanks for your feedback!

    Custom tags via html5 hooks are already in the works, mostly I'm just trying to figure out an elegant way to allow for customizing the chant output without having tons of attributes or complicated html. But on my local branch, already
    <chant-visual>(c4) Par()ce() Do()mi()ne()</chant-visual>
    will insert a graphic with the chant code rendered.
    Thanked by 1Ben