💾 Archived View for gemini.zachdecook.com › capsule › 2021-08-17-verovio.gmi captured on 2023-04-19 at 22:31:29. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-11-30)

-=-=-=-=-=-=-

Contributing to open-source for work (Verovio on Hymnary)

While my first introduction into software was in the mac ecosystem, maybe the first open-source program I used was GIMP. Often touted as a free photoshop alternative, I just used it because appleworks paint wasn't cutting it for my early pixel-art needs.

A spritesheet I made circa 2008. Intended for a fanmade Nintendo DS "Smash" game.

Eventually, I started writing software myself, and benefited greatly from open source libraries written by other people. Contributing to open-source was a whole other thing. Some guide online suggested: "Don't start your own open source project until you've contributed to someone else's project." Is this good advice for how to 'get into' open-source software? What does it really mean to 'get into' that scene, and is that even important? That's a question for another day. Today, we'll just talk about how I 'got into' becoming a contributor to Verovio.

It all started with a vision, back in 2008. No, not my vision, but one of... well I don't need to give the full history of Hymnary.org here. There's another blog out there which details this.

"History of Hymnary" video

"The Future of Congregational Song" document

Blog post announcing major additions for Hymnary.org

How does a large open-source program get into all of this? For our upcoming project, we wanted to revamp music rendering, as well as use a more flexible source format for our music library. Instead of serving PNGs (raster images) generated server-side with Lilypond, we wanted to create SVGs (vector images) client-side.

Slides I created for an internal presentation comparing engraving options. (Pretend like there's some narration for these slides).

After careful consideration, we landed on Verovio as our music engraving option.

One of the factors I considered was "Hackability": how easy it would be to contribute changes to each project.

My first Pull Request to Verovio was approved and merged very quickly into the main project.

Active maintenance of the Verovio project encouraged us to keep contributing changes upstream. Easy, encouraging communication among core contributors helped move from issue-creation to implementation very painlessly.

Now, hundreds of lines of code and dozens of commits later, we've added features to Verovio from improved MusicXML import to additional rendering options. Because of the nature of open-source, these changes can be used by countless others for rendering music.

The joy of open source is that many people can choose their priorities to work on something, and this can benefit not just hobbyist individuals, but also companies as well. Open source licenses make software open to all. "Ethical" or "non-commercial" licenses exclude others from using, others who could be potential contributors.

My.Hymnary uses Verovio to offer music for printing as well as for presenting as a slideshow, and that would not be nearly as good if it wasn't for the cooperation of many through this large open-source program.

"Just as I am" hymn on My.Hymnary.org. Rendered with Verovio.