Geertjan is a DZone Zone Leader and has posted 466 posts at DZone. You can read more from them at their website. View Full User Profile

JFrets: Learning to Play Guitar with Java

  • submit to reddit
Matt Warman, who created and open sourced JFrets, the Java-based guitar-teaching tool, is at JavaOne! He'll be delivering a technical session and BOF. I bumped into him in one of the speaker rooms and we moved his application to the NetBeans Platform. Then we discussed his project.

Hi Matt, who are you?

I'm from Cincinnati, Ohio, where I live my two passions... guitar playing and Java. I am in two bands, where I play the guitar. The name of my band is "The Stone Bunnies", which is on MySpace, where you can listen to three of our songs, so that's kind of like "open source music"...

What, in short, is "JFrets"?

It is an interactive guitar teaching and tabbing tool. My students are using it already. They think it's a great educational research and lookup tool, replacing paper for looking up fingering positions for the chords and so that they can do their fingering exercises more easily.

Who would typically use it?

Beginning guitar players, to learn the guitar and any guitar player and any composer interested in writing their own music in guitar tabliture.

When did you start creating this?

December of '06. My first iteration was just a regular JTable that showed letters in columns. And now I have a metronome, a tuner, a scale player, and so on:

Does it actually play music?

Yes, of course. And you can save and load your music files.

So, did you have a hard time programming Midi?

It was very easy using JFugue. On my own it would have been lots of low-level code, but with JFugue it was literally nothing more than 5 lines.

What parts of the application are you most proud of?

The tab play back and the interactive fret board. It was a bit of a challenge to create an image that you could interact with. I extended the JPanel to accept graphics and overlaid a JTable on top of it and then made it transparent, to make it look like the image was on top instead of beneath. In fact, when you click on it, you're clicking on a column in the table, which is the fret board.

What's the future of this application?

I'm hoping to add more instruments, like base and drums. I will use JFugue's rhythm classes and have a kind of virtual rock band.

It's open source. Since when and what's the effect?

I open sourced right after JavaOne last year. I haven't received major contributions, but some minor ones that were really useful, especially on the graphics side. As a developer, having help on that side is a tremendous plus.

Now that it is moved to the NetBeans Platform, what are the advantages?

It will be a whole lot easier for me to maintain and users to download. I can use the NetBeans Platform's modular Swing basis. I can then integrate with other applications, like JFugue Music NotePad. As opposed to Eclipse RCP, I don't have to learn a whole new UI toolkit... I'm trying to limit the number of languages I need to learn, as opposed to expanding them! Here's the current state of the application:

Will you be presenting some of this at sessions during JavaOne?

I will be presenting a technical session with Dave Koelle from JFugue, who will show how the API is used. I will show some of the things you can do with it. In the BOF, we are going to cover a wide ranging group of music issues, with an all-star panel, including Dave Koelle, myself, and Paul Lamere. And we'll be discussing music issues, legal issues, cool uses of music in Java, and so on.

Come see what it's all about at the technical session at 16.10 on Thursday (room 303) and 19.30 on Thursday (in the BOF areas)!


jfrets-ported.png78.07 KB
tn.jpeg2.71 KB
metronome.png15.62 KB
scale-selector.png13.85 KB
tuner.png9.43 KB
Published at DZone with permission of its author, Geertjan Wielenga.


Matt Warman replied on Fri, 2008/05/09 - 1:45pm

It looks interesting. Maybe I can integrate into my project.

Dave Glasser replied on Fri, 2008/05/09 - 2:37pm

Be my guest!

Dave Glasser replied on Sat, 2008/05/10 - 5:26pm

Hey, why did my original comment disappear? I'm referring to the one with the link to the homepage for RPitch, my Java-based relative pitch ear training software. The homepage, which has, for several years, displayed the Javalobby logo, with a link to Javalobby, which I put there at the request of Rick Ross. Was that post in some way objectionable? If so, I'd like to know why.

Geertjan Wielenga replied on Sat, 2008/05/10 - 10:50pm

Don't think it came through, Dave. At least, I didn't see it. I'm Geertjan, I wrote this interview and published it. I'd have seen your comment if it had come through. Maybe some glitch somewhere. Apologies, in any case.

Dave Glasser replied on Sun, 2008/05/11 - 9:23am in response to: Geertjan Wielenga

When I first posted it, it was held for moderation for a while, and then it appeared on the page. In fact, that's the comment mattwrock was replying to when he said "that looks interesting". Yesterday, I got a notification email that this post had been updated (I guess since I'm subscribed to the thread) but when I came here, the only "update" I noticed was that my post was gone.

Geertjan Wielenga replied on Sun, 2008/05/11 - 10:28am

Apologies. Nothing personal. Must have been a glitch. I actually saw it too. Maybe it's something about the moderation thing. There's really no need to mark something for moderation. Anyway, the comment seems to have disappeared and I apologize.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.