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

1st Binary Release of Java Music Composer

  • submit to reddit
Today marks the availability of the first binary release of the open source JFugue Music NotePad. The core basic functionality of the tool is available and ready to be tried out.

After downloading and unzipping the archive, you need to specify the location of the JDK (JDK 5 or above, so Mac users are welcome too), in etc/mnotepad.conf, which is in the unzipped archive's main directory.

The binary can be downloaded here:

Once you have done so, you can launch it, which should result in the following main window at start up:

Here it is on the Mac:

Then choose File | New, to define a new composition:

Click Finish and you can begin composing music. To do so, choose notes from the toolbar and point/click to add them to the composition. Currently you can't add notes between existing notes. However, select one/more notes with your mouse, the notes turn red to show they are selected, and then use up/down to move notes up the scale and left/right to decrease/increase their length. While doing this part of the work, compositions typically look something like this:

You can change instruments by right-clicking one in the Instruments window and choosing "Select". Finally, click Play to play the music or Save to save it. Compositions are saved to disk in midi format, the status bar shows where they are saved to, in the installation directory.

Architecture. Instead of dealing directly with the Midi API, the JFugue API is used instead. The JFugue API provides an extremely transparent, simple, yet surprisngly powerful layer of functionality on top of the complexities of typical Midi programming. The user interface is pure Swing on top of the NetBeans Platform, therefore the application has a very mature window system (max/minimize, dock/undock) and is pluggable out of the box, among other features.

User Comments. One of the user comments thus far: "It's definitely very cool! And as promised, you already got a whole bunch of subtle features for free from the NetBeans Platform (windowing, favorites, etc). :-D It already looks more stable and trustworthy than any other app with the same amount of work invested, just because of the solid and consistent windowing system."

Known Issues. Amongst others, the following: several usability issues, such as that it isn't easy to know/see from the ui that notes can be changed by selecting them and moving up/down/left/right. Should be able to specify where saved midi file should be saved to. Some users report not being able to change instruments. Keyboard window currently unused. Playing of tune blocks the ui.

Feedback Welcome. The JFugue Music NotePad is an open source project at You are welcome to join, especially if you are able to offer time/insight to add missing features. Especially programmers who are also musicians are welcome. For example, this application could do with a metronome, which could be provided by a separate plugin...

jfugue-1.png82.47 KB
jfugue-2.png49.62 KB
jfugue-3.png41.56 KB
jfugue-4.png86.59 KB
Published at DZone with permission of its author, Geertjan Wielenga.


Michael Bien replied on Wed, 2008/04/09 - 7:30am


please add support for importing tabs. I would love to play smoke on the water while the unit tests are running ;)

(and The End from The Doors if they fail :D)

Dieter Krachtus replied on Wed, 2008/04/09 - 8:46am


Feedback: Why does the music play in the EDT resulting in GUI freeze until the tune finishes (same when sampling single instruments)? This makes it also impossible to add a "Stop Playback" button to the menu, which is a feature people might like. The Save icon in the toolbar har the wrong tooltip "Play". I would also consider using nicer icons for new/save/play. Netbeans icons when scaled down might be just fine. Somehow it doesn't always work for me to select a new instrument and add notes with that instrument? Is it double click on the instrument or select from the context-menu? By selecting a note (red) one could modify the funtion of the "Play" button into a "Play starting from selected note" button.

Anyway, that's what came to mind after 3 min. testing...keep up the great work!

Mike P(Okidoky) replied on Wed, 2008/04/09 - 10:57am

It starts up nicely.  I didn't have to finick around with java path environment variables.  I'm on Linux.

I created a new file, selected an instrument, and deposited a few notes.  It plays.
But how do I insert notes between other notes and how do I drag around notes?
Also, every time I click the save button, it creates a new file.  mifi-file5.mid etc...
The save option from the menu is always grayed out.  Strange to see Tools - midi files instead of a file->open option.

One of the CPU's goes to 100% when a note is selected is red and stays at 100% until it is no longer red.

I tried loading a bunch of midi files, but showed up as text.  Incompatibility between different midi versions?  File does hat the MThd MDtr things like that...

Anyway, it looks good though.  It reminds me of that music program that I got for the Amiga eons ago.

Can you hook up external midi keyboards?  Can I play music through the computer's keyboard? 

Andrew McVeigh replied on Wed, 2008/04/09 - 11:20am

looks very nice, but i was unable to get the midi playback under linux?  has anyone managed to get java midi working under linux?


Jonathan replied on Wed, 2008/04/09 - 11:29am

Hey guys, I recognize that treble clef, it's from the Opus font which is part of the well-known Sibelius notation program.

Are you using that font, or have you taken a bitmap?


Mike P(Okidoky) replied on Wed, 2008/04/09 - 11:38am in response to: Andrew McVeigh

It just kind of worked.  Do you have sound working through ALSA?  Or the older OSS?  I think it wants ALSA.

Andrew McVeigh replied on Wed, 2008/04/09 - 12:16pm in response to: Mike P(Okidoky)

It just kind of worked.  Do you have sound working through ALSA?  Or the older OSS?  I think it wants ALSA.

 yeah, it's all configured as alsa. i'm looking into why it doesn't work...

 isn't it ironic though -- i moved off windows to linux about 3 years ago, and this is the first time that i've noticed that sound in java doesn't work!  clearly a very important part of the programs i write...


Geertjan Wielenga replied on Thu, 2008/04/10 - 12:09am

Thanks all for the comments! Yes, several things need to be worked on still (as indicated in the "Known Issues" above, which already listed most of the issues in these comments). By the way, you can't open files into the composer yet, as Mike P above tried to do, you can only create new music. External MIDI keyboards can't be hooked up yet, but that's a plan for the future. Don't know about the bitmap question, someone else on the project worked on that part. Thanks for the tips for getting Java sound working on Linux, because I have the same problem too since moving to Gutsy Gibbon!

Comment viewing options

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