abc4j / handling abc notation in Java

abc4j / handling abc notation in Java

Some time back I was looking for a Java library that would handle abc notation. There are lots of historical mentions of a library called abc4j around the internet, but it looks like it is no longer being actively developed or maintained.

All I can seem to find is the following:
- an old Google Code archive, which advises that abc4j only supports abc v1.6. The current version of abc is 2.1. (https://code.google.com/archive/p/abc4j/)
- a Google Group that hasn’t had a post since March 2015 (https://groups.google.com/forum/#!forum/abc4j)
- a fork of the abc4j project on GitHub, again with no recent changes (https://github.com/Sciss/abc4j)
- a handful of tutorials that seem to either not compile, or fail to work in some way. Admittedly I didn’t spend too much time troubleshooting.

I’m now looking again for a means of dealing with abc notation in Java.

My questions are:
1. Is anyone aware of abc4j being actively developed somewhere out there?
2. Is there any other decent (Java) alternative library for working with abc?
3. If I ‘rolled my own’, are there many people out there who would be interested in using it?
4. If I roll my own, I’m considering implementing only a subset of the abc standard that is relevant to notating Irish tunes. i.e. things like multiple voices, chords, lyrics etc. would all be out of scope. Would creating an ‘abcLite’ be a terrible idea?

Re: abc4j / handling abc notation in Java

There hasn’t been any mention of abc4j on the main abc email list for many years.

Java has never been popular with the kind of people who do open source and music, so I suspect you’re going to be on your own with it.

There have been a few attempts to create a general purpose abc library over the years, none of which have been especially successful, sadly.

Posted by .

Re: abc4j / handling abc notation in Java

Out of curiosity, which lanaguages are more popular among open source/music people? Python?

One of my motivations for using Java, apart from already being familiar with it, is that a Java library could be used in Android apps.

Re: abc4j / handling abc notation in Java

Check out the music21 Python project. You might be able to use it with Java through Jython.

Re: abc4j / handling abc notation in Java

abcm2ps was C. Python is probably the first choice now - ABCExplorer is a Python frontend, the XML tools are Python I think.

The main abc list is the best place to ask about this - quite a few developers on there.

Posted by .

Re: abc4j / handling abc notation in Java

That music21 project looks really cool - thanks for bringing it to my attention. Sounds like I’ll have to start learning Python properly…

Re: abc4j / handling abc notation in Java

I wrote a java desktop app a few years ago - five line skink. The source is available on github

https://github.com/Wil-Macaulay/5-Line-Skink

you’re welcome to take a look and use whatever is useful. I implemented the abc parsing with javacc, and used midi for playback.

I’m spending most of my time on the iOS side these days with the Craic ( http://thecraic.co ), so I haven’t kept the java app up to date…

Re: abc4j / handling abc notation in Java

Thanks Wil - I have a little bit of homework now!