JFrets: Learning to Play Guitar with Java
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)!