It's great to finally be able to give you some details about a cool JavaFX project in which I've had the privilege of participating. For the last couple of months, some co-workers at Veriana and I have been helping Indaba Music create an internet-based, collaborative recording studio named Indaba Console 2.0. The alpha release was this morning (July 9, 2009) and it is written entirely in JavaFX/Java. Check out this screenshot, and a Wired article that contains a demonstration video by musician and co-founder Dan Zaccagnino.
If you were at JavaOne 2009 you may remember the JavaFX panel session on which Chris Danzig (Indaba co-founder) and I participated.
One of the main reasons that Indaba chose JavaFX/Java is that it enables recording high-quality audio directly onto the client platform. This is achieved by leveraging the capability of JavaFX to call Java methods, and Java to call JavaFX functions. One person with whom we work closely is Bjorn Roche, who created a Java-based facility and API that interacts with the audio capabilities of the client machine. The JavaFX portion of the Console provides most of the UI, and uses the Java-based API when it needs to play a track, apply audio effects, render a sound-wave, or record music. This Java library then invokes JavaFX callback functions as it is doing its work.
The UI consists of many custom components, some of which subclass CustomNode, and many which subclass Contol (when skinnable and/or highly interactive components are required). Recording session, mix, and audio data are stored "in the cloud", as they say. The application is written in JavaFX 1.1, but is being ported to JavaFX 1.2, where performance and memory usage are greatly optimized.
Congrats, and thanks to the Indaba folks! Please give the music console a whirl and unleash your musical creativity!