Java Sound & Music Software for Linux, Part 3

September 29th, 2008 by Dave Phillips in

Your rating: None Average: 4.8 (8 votes)

With this installment I complete my survey of Java-based sound and music applications that run under Linux. Again I've focused mainly on production software.

MIDI And Java

The Java Sound API contains strong support for MIDI, but I was surprised to find no full-size MIDI sequencers written for Java. Happily, JavaSound's MIDI capabilities are well-exploited by a variety of applications.

JSynthLib

If you own a MIDI hardware synthesizer you may have discovered that editing and storing new sounds can be a cumbersome task when performed from the synthesizer itself. In the late 1980s a flourishing market existed for software that could control remotely the editing process for a MIDI-enabled synth. At first these programs were written only for specific machines (e.g. a Roland D50) or a family of machines (e.g. the Yamaha DX/TX series), but later development tended towards the so-called universal synth editor/librarian that could ostensibly edit and store sound patches for any synthesizer.

Figure 1: JSynthLib

The JSynthLib (Figure 1) project aims to provide a universal synth editor for all Java-savvy platforms. At this point the public release supports almost forty synthesizers, though that support varies in depth. Some machines (like my Yamaha TX802 and Kawai K4r) enjoy complete support for all their features, while others have only partial support. Alas, the last public release was three years ago, and while JSynthLib remains useful it could certainly use some helping hands to put it on-track for expanded support for more machines and to complete support for feature sets on the synths already supported by the program.

Music Instruction

Bob Keller's Impro-Visor is an "improvisation advisor", i.e. it's a program that helps an improviser learn how to play over arbitrarily complex chord progressions. There's really nothing quite like Impro-Visor: It's not primarily an accompaniment generator a la Band In A Box, nor is it a mere software version of Music Minus One, though it is capable of functioning in those roles. It assists the musician with harmonic analysis and suggests possible routes for the improvisation to take through the chord changes. Its name reflects its intent, it advises the player regarding optimal note choices available and will generate a variety of possible takes for the soloist to consider. Impro-Visor is truly unique software, highly recommended to anyone learning the tangled ropes of the art of the musical improvisor.

Figure 2: Guitar Codex Plus

The needs of budding Linux guitar heroes and heroines are well-served by some helpful Java music software. Guitar Codex Plus (Figure 2) is for guitarists who want to learn more about chords and scales as they are played on the instrument. It can be used as a chord dictionary, a chord/scale display generator, an arpeggio finder, and more. The program represents these elements in common guitar tablature and realizes them via MIDI, so the player can hear every example and alter tempo, key, and even instrumentation as desired. The Guitar Scale Assistant is a similar program with an excellent display and more than 600 scales for instant representation in the fingerboard view.

Figure 3: TuxGuitar

TuxGuitar (Figure 3) is advertised as a "multitrack tablature editor and player". Tablature is an instrument-specific form of music notation, but unlike standard Western notation tablature (better known simply as tab) is non-abstract, i.e., it is in effect a kind of map that indicates where the fingers should go. Tab's immediacy has great appeal to beginners, and a vast assortment of pieces in tab is available on the Web. TuxGuitar supports the popular GuitarPro and PowerTab tab formats, both of which add many features to the basic tab seen most frequently in the Web repositories.

Music Notation

Java's graphics capabilities are sufficiently refined to display the variety of signs and symbols required by standard Western music notation. The JMSL environment includes a standard score entry module for composers who wish to work in Ye Olden Ways, and a notation interface is also supported by the JMusic environment.

Figure 4: jEdit with the LilyPondTool plugin

jEdit is a popular text editor for Java. Though primarily designed for programmers, jEdit has many attractions for the normal non-programming user, including a plugin architecture to expand jEdit's already-impressive capabilities. Bertalan Fodor's LilyPondTool (Figure 4) is one such plugin that adds a complete environment to jEdit for creating, editing, viewing, and printing scores in the superb LilyPond music typesetting language. The jEdit/LilyPondTool combo is true powerhouse for LilyPond users looking for an all-in-one score production environment, and I consider it highly recommended software for the compleat Linux music studio.

Skink is a Java-based GUI front-end for the abc music notation software. I've written about Skink in a previous article, so I won't rehash that material here. It suffices to say that, like the LilyPondTool, Skink brings together the components needed for a complete system to edit, display and render abc music notation files, putting all the needed tools into one container.

I must also mention abc4j, a library written "... for music notation in general and abc notation in particular". The project is relatively new, but it may be of particular interest to programmers working with standard notation displays in Java.

Java Drum Machines/Rhythm Programmers

Three programs caught my attention in my search for Java percussion/rhythm software. Ollie Glass's Breakage resembles a typical software drum machine complete with step-sequencer/pattern editor, samples browser/loader, and the expected transport controls. However, Breakage adds humanization and swing controls, probabilistic pattern morphing, and a neural network accompaniment trainer. Definitely not a typical drum machine. MuSing evolves rhythm patterns and loops from existing beat sets. The program's GUI is a bit unusual, but as I wrote in a previous review of MuSing I found that the interface is easy to learn and use. Patterns (audio or MIDI) are loaded into the program, and a single click generates musical variations. The orDrumbox presents the familiar pattern-based GUI (Figure 5) along with some handy tools for randomizing and otherwise modulating your basic material. The program is designed for experimentation and fast results, and I must confess that I did not want to stop playing with orDrumbox and its controls.

Figure 5: orDrumbox

The Java DAW

Perhaps the limitations of the Java Sound API have discouraged developers from creating the Java digital audio workstation (DAW), but fortunately it hasn't stopped some of them from trying.

XO Wave is designed to function more as a high-quality mastering suite than a DAW, but it can certainly serve duty as a principal hard-disk recording system. Its design biases favor CD mastering and podcast preparation, the program supports multitrack audio recording and editing, and its audio engine gets its gas from the PortAudio API. Hence, XOWave also supports JACK, if your build of PortAudio includes JACK.

Figure 6: Frinika

Frinika is an audio/MIDI sequencer with a variety of interfaces for music composition, including a piano-roll display (Figure 6), a tracker-style composer, and a standard music notation view. It also includes support for JACK via the JJack system (see Part 1 of this series). I was unable to test its JACK support, but the system falls back to the standard Java Sound API for its audio and MIDI I/O capabilities. When I played a demonstration file with the program's default settings the playback was choppy. However, the audio settings can be tuned, and there is still hope for a stable connection with JJack.

DJ Java

Only one DJ mixer is represented on the Linux DJ page at linux-sound.org, but that one program is a peach. UltraMixer is a commercial full-featured mixer for professional DJs, but a free edition is also available. Alas, the free version is not so feature-rich as the full-blown professional edition (see the UltraMixer features comparison page for the complete story). I was also unable to determine whether the program supports JACK. Perhaps a user can clarify that question ? Despite this uncertainty UltraMixer is obviously a well-designed product with a large and active user-base (the program is also available for Windows and the Mac, of course), and it is definitely worth the attention of the serious Linux DJ.

Soundfile Editors

The Java audio software armory includes some notable soundfile editors, each with some remarkable feature or features. The oddly-named AudioCutter Cinema includes unique tools for working with surround sound, Olivier Gräumann's LAoE (Layer-based Audio Editor) offers a large selection of processing modules and an unusual approach to editing, and the Eisenkraut editor enjoys the benefits of connectivity with OSC, JACK, and the SuperCollider3 audio synthesis and processing environment. Alas, development of AudioCutter and LAoE appears to have languished. Eisenkraut shows great potential with an excellent display (Figure 7) and the possibilities afforded by SuperCollider3. However, it requires a substantial number of external resources, and the benefit of its full power depends upon the user's knowledge of SuperCollider3.

Figure 7: Eisenkraut

Incidentally, Eisenkraut is not the only audio application that leverages the power of SuperCollider3 in the Java environment. Meloncillo is an assistant for composing sounds in space and for plotting their trajectories. A helpful GUI generates data sets that can be evaluated and performed by SuperCollider3 or CSound. The unreleased Scream software also uses SuperCollider3 as the audio engine for its AmbiPan and AmbiGranuSampler. Scream's screenshots look very interesting, but the project appears to have languished.

Outro

I found some applications that will open under Linux but will not perform to full capacity. For example, Balaftuna is a neat x/y controller for translating mouse movements to MIDI messages. Unfortunately its MIDI capability relies upon a component available only for Windows. The source code is open and free, but until someone re-writes the affected code the program will open but it will not function under Linux.

I hope you've enjoyed this trek through the domain of music and sound software for Java. During the research phase I discovered many applications that I had not known previously, and I now have a batch of Java audio/MIDI programs that I intend to explore more fully. I've already gone further into some of those applications, so there's a good chance that some of the programs I've presented will be reviewed more completely in future articles. Meanwhile I encourage readers to suggest their own favorites (Java-based or otherwise) for my perusal.

Next up, a review of discoDSP's new Discovery synthesizer, the first commercially available native Linux VSTi plugin.

__________________________


Special Magazine Offer -- 2 Free Trial Issues!
Receive 2 free trial issues of Linux Journal as well as instant online access to current and past issues. There's NO RISK and NO OBLIGATION to buy. CLICK HERE for offer

Linux Journal: delivering readers the advice and inspiration they need to get the most out of their Linux systems since 1994.

Sorry, offer available in the US only. International orders, click here.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Dave Phillips's picture

They just keep popping up...

On October 23rd, 2008 Dave Phillips says:

More Java sound & music software :

Mars Software - various interesting sound apps

The IBM Glass Engine - explores the music of Philip Glass

ProxyMusic - bindings to provide MusicXML interface for Java-based music notation apps

ALICE - a music composition system that learns by listening

The Shape Of Song - graphics of sound

CodeSounding - the sound of code

I missed adding Tom Erbe's original page on Java soundapps, so here it is :

Java Music Projects

For more Java sound apps see the JARS list :

JARS Multimedia Apps

The JARS list is especially helpful if you're looking for players and other utility applications.

Anonymous's picture

No software metronomes?

On October 15th, 2008 Anonymous (not verified) says:

I would like to suggest the inclusion of a simple free java metronome called Javtronome that can be found at www.javtronome.org. I might be accused of beating my own drum because I wrote it.

Dave Phillips's picture

MEAPsoft and JJack update

On October 11th, 2008 Dave Phillips says:

I keep finding gems:

MEAPsoft

The MEAPsoft site is a winner, with logos such Computers Doing Strange Things with Audio and Rearranging Audio Since 2005. I'm eager to test the program, it looks like cool fun.

Also, I heard from Jens Gulden that a JJack update is in the works now. I'll post any new reports.

Best,

dp

Arnout Engelen's picture

Java and JACK-connectable MIDI

On October 11th, 2008 Arnout Engelen (not verified) says:

Afaics, JJack only supports the waveform processing part of JACK, not MIDI (neither ALSA MIDI nor JACK MIDI).

I wonder which Java libraries can be used to read and/or write JACK-connectable MIDI applications in Java

Dave Phillips's picture

and two more...

On October 6th, 2008 Dave Phillips says:

jVSTwRapper is a helper for developers who want to write multi-platform VST/VSTi (and AudioUnit and LADSPA) plugins. JVstHost is a multi-platform host for VST/VSTi plugins. Again, I haven't tested these programs yet myself, and I welcome any reports and/or opinions regarding them.

Best,

dp

Dave Phillips's picture

and yet one more....

On October 2nd, 2008 Dave Phillips says:

A member of the Linux Audio Users group asked about the possibility of converting PDF scores to MIDI. Another member responded by pointing to a link for the Java-based
Audiveris Music Scanner. According to its Web site the software is "a complete music scanner going all the way from the scanned music sheet input to the MusicXML output". I have not yet tested it, but it's high on my list now.

Best,

dp

Post new comment

Please note that comments may not appear immediately, so there is no need to repost your comment.
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd> <i> <b>
  • Lines and paragraphs break automatically.

More information about formatting options

Featured Videos

The November 13, 2008 edition of Linux Journal Live! Shawn Powers and special guest, Linux Journal Author Daniel Bartholomew, talk e-book readers and Daniel's Kindle, DRM, and other goodness.

From the Magazine

December 2008, #176

The Oxford English Dictionary says the word "gadget" is a placeholder name for a technical item whose precise name one can't remember. Like that book-reader thingy from Amazon...what's it called? Spindle, Gindle...Kindle, that's it. Check it out in this month's gadget issue.

Other gadgets covered include the Nokia tablets, the BlackBerry, the Neo FreeRunner, the Dash Express, the Roku Netflix Player, the Kangaroo TV, The TomTom GO 930 and the MooBella Ice Cream System. On the larger hardware front, read the reviews of the Acer Aspire One and the YDL PowerStation. On the software front, check out the articles and columns on memcached, Samba security, Mutt, desktop gadgets, bash and Puppet. To wrap it all up, read Doc's thoughts on Google and the browser platform.

Read this issue

Sign up for our Email Newsletter