A Thank You to the JFugue Community

How a 20+ year project inspired a generation

Creating and sharing JFugue has been an incredible journey for me, and I want to take a moment to express my gratitude to you, the JFugue community, and reflect on the ways in which JFugue has touched the lives of many people, including myself.

Making Programming Fun

I started JFugue in 2002. I was inspired by the programming that I used to do growing up with my Commodore 128: I made a lot of programs that created animated visual displays and played songs that I transcribed from music books. As an adult, I was surprised that computers had become more powerful, but the ability to easily do something fun and enjoyable -- play music from a program -- was more challenging than I had remembered. Sure, there was MIDI, but it was all technical and didn't speak the language of music. I wanted "Play a D note for a whole duration," not "MIDI Note On 62 Velocity 100 Channel 0, wait 100ms, MIDI Note Off 62 Velocity 64 Channel 0."

So, that's what I built: a music programming API that spoke the language of music. And it inspired a generation.

Inspiring a Generation of Music Programmers

JFugue has literally been around for over a generation. In the first decade or so, it was more common for me to receive emails from users who expressed appreciation for the tool and shared their projects with me. There was the amazing college student who was performing sentiment analysis on classic novels and turning that into music so we could hear the tension and struggles of the characters. There was the scientist who was turning astronomy data into sonified music so we could hear the patterns in the stars. There was the fellow engineer who turned log files of video server activity into an auditory experience so they could attend to other work and listen for when the servers were starting to get overloaded. And there was the brilliant contributor who had terminal brain cancer and decided that providing significant updates to JFugue would be his way of leaving a legacy and inspiring others (I've dedicated "The Complete Guide to JFugue" to him). Thank you to all of you who have been inspired to use JFugue in your projects.

Today, I see the next generation creating music tools that are directly inspired by JFugue. I had nothing to do with CFugue other than be an inspiration. The Ruby gem collavoce states plainly: "The note syntax is inspired by jFugue." Academic projects including Tonedef (a Columbia CS project/report) converts phrases to "JFugue-style music strings" and then uses JFugue to play them, and "Music in Space" describes generating a music string "according to the JFugue music programming API." JFugue and its MusicString (Staccato) format is used by Audovia Lite and Carnatic Music Guru / JRaaga. JFugue has left a legacy.

When Passion Projects Lead to Amazing Opportunities

When I first sat in my iconic green recliner to write JFugue in 2002, I had no idea about the doors that would become open to me and still impact my life 24 years later.

In the early days, I was encouraged by a fellow member of the Java community to propose a JavaOne conference talk about JFugue. I was unsure about this at the time, but I went for it (co-speaking with that colleague), and it was such a good presentation (complete with musical clips) that we both received JavaOne Rockstar Awards for that talk. That was in 2007; I spoke about JFugue again in 2008 and 2009, both times also receiving Rockstar Awards, becoming one of the very few people to receive three such awards. Log4JFugue, the logging tool that a friend and mentor built using JFugue, went on to win a Duke's Choice Award at JavaOne in 2010. I became a bit of a minor celebrity in the Java community, which led to some nice dinner invitations and friendships with several lovely people.

I later used my JavaOne experience as credibility to speak at SXSW Interactive. I have since led several sessions at SXSW, only one of which was about JFugue. The other sessions -- leading a discussion of minipreneurs and makers, serving as a mentor, teaching about system dynamics, hosting a panel on swarm systems -- were all possible because I got my foot in the door with that JFugue session. Again, I developed several important friendships through those sessions, and had the opportunity to learn so much about so many things by attending several SXSW conferences.

Meanwhile, I had written my own self-published book about JFugue, and JFugue was exciting enough for other people to include in their own books (for example, see Wicked Cool Java and Groovy in Action). I was later approached by Packt Publishing to co-author Practical XMPP -- not a book about music, but my existing writing gave the publisher confidence that I could write a book.

And then there is all of the learning that I was able to soak in over time. My programming improved. My understanding of music and music theory dramatically improved.

Finally, JFugue had been a wonderful project to talk about at job interviews. I knew the code solidly, I enjoyed the work, I was excited and energetic about it, and it was engaging to talk about. Having a passion project really gave a lift to potential job prospects.

If you're thinking about doing a passion project, I have one recommendation: DO IT and LOVE DOING IT. It will take you far.

Is this farewell?

This isn't goodbye; it is a heartfelt thank you.

Admittedly, I do see a waning interest in JFugue, at least measured in terms of emails I get from users and sales of the JFugue book. The landscape of programming has changed over these years. Today's developers often live in Python and JavaScript ecosystems, and that's exciting in its own way. And, the most recent version of JFugue has been very stable. I vacillate between releasing a final version, JFugue 6, that I envision will have better support for MIDI devices and digital audio workstations like Ableton Live and FL Studio. Livecoding crossed my mind, but there are already good tools for that (maybe they're also inspired by JFugue). At the same time, I'm not getting a demand signal that pushes me into that direction (DAWs have come a long way since 2002 as well!) and I have several other projects that I'd like to launch -- one of which is music related, and a few of which are not.

I am still emphatically interested in hearing your stories and your ideas for future work on JFugue. At the same time, I encourage you to enjoy what JFugue already offers and the inspiration that it has already provided.

This is definitely not "so long". But this is definitely "thanks for all the fish." Thank you for enjoying, using, contributing to, and being a part of JFugue! It means so much to me.