The Source for Java Technology Collaboration
User: Password:



Jonathan Simon

Jonathan Simon's Blog

Whats up with the JavaSound team?

Posted by jonathansimon on June 16, 2003 at 11:44 AM | Comments (22)

As many o fyou know, I have been working with music and audio programming in Java for quite some time. This included work with Java sound. After my JavaSound talk this year at JavaOne, I got to grab a bite to eat with my fellow presenters Phil Burk and Nick Didkovsky and JavaSound lead Florian Bomers.

I've worked with Florian in the past, most;y communicating via the JavaSound listserv. Now, I always knew he was the only one that returned my emails. I just figured he was the head of the team or at least the designated spokesperson. Well, it turns out he is the team -- the whole team!

Basically, I dont know the whole story but here are some relevant facts as I understand them:

  • Sun licensed the beatnik audio engine: www.beatnik.com/
  • The entire JavaSound team split
  • JavaSound was defunct for a long time since no one was around to work on it
  • Florian got offerred a job by Sun to take over JavaSound
  • Florian actually was hired a year later
  • Florian is the whole team: development, management, QA, etc.
  • Florian has to support 100k+ lines of C beatnik code

This is ridiculous on a number of levels! How does Sun expect to put out a decent product with a single guy responsible for all of JavaSound? Also, the code was poorly designed to begin with, and Florian can't even really change it! So whats left is a really buggy, poorly designed library that is on every Java enabled PC!

What we really need is an overhaul of JavaSound. One of the more interesting topics that came up at the post JavaOne talk gathering was replacing the internal JavaSound audio engine with PortAudio (http://www.portaudio.com) an open source cross platform audio engine. This would be pretty cool, but is beyond the scope of acceptable changes and would have to go through JCP. Now you tell me who is going to spend time on an audio JSR!

At the heart of the matter is the whole so called desktop push by Sun. We are hearing alot of hype abut Java on the desktop without a lot of backing. Audio, along with Graphics and Deployment are areas that simply have to be nailed by Sun in order for Java to take off on the desktop. If Sun can't nail all of these J2SE areas, then we are just fooling ourselves thinking Java can be a first class citizen on the desktop.

This brings me to java.net... What I would like to see is sort of a grass-roots movement to demand a major JavaSound overhaul. Get a good cross platform framework in place. Make audio and MIDI playback simple, and importing and implementing new audio codecs simple, and very importantly... guarantee accurate timing! I think there is alot of static to redoing JavaSound because no one is using it. I think that no one is using it because its tough to use and buggy. I would love to see a revamped audio API and some rocking Java audio apps in the near future.

Sorry for the long rant. I would just love to see sound kick on Java like it should! Any ideas on what we could do on java.net to foster this?


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • lets write a couple of api's for the JCP
    I don't want to imply any blame on Florian. He is doing a great job on the javasound forum emails.

    I agree that Sun must do more to improve JavaSound. I see a need for a merger a realtime Java and JavaSound and this combination would result in a new api: JavaSoundRT.

    We don't need to rant, we just need to write a JSR to the JCP. I wrote one in 2000 and it was accepted (JSR 100). It is not hard to do. Unfortunately my needs for JavaSound are far from the game and music group (aka entertainement). We could have two api's, one for the lower-level audio stuff, like mine, and one for the gamers, and the gamers api should work with MIDP 2.x

    The JCP is not a slow and heavy process when you know what you want and when you keep it simple (your api, I mean).

    serge

    Posted by: sm1 on June 16, 2003 at 12:41 PM

  • maybe..
    Maybe we should go ahead with some sort of specification requests targetted at specific features of Javasound and see the response and get it from there so someone at Sun can pick up things from here

    Posted by: ravneetg on June 16, 2003 at 04:00 PM

  • It seems to me that...
    ...there are a few things we might do. One is to come up with a semi-formal list of grievances we have with the current API/reference implementation. Another is to compile a list of requirements for a proposed future version which may include a complete redesign. Also, I hesitate to mention this, but it may be that there's already some third-party API that would meet our requirements (my hesitation comes from the fact that home-brewed/open-source software tends to suck for general-purpose use because good engineers have day jobs and limit their involvement). Then it seems we should formulate some plan which stands the greatest chance of getting our desired API/implementation adopted by Sun. This may include settling for something less desirable, but with an increased likelihood of adoption.

    I must agree that I always found the design of the Java Sound API baffling, in stark contrast to say Swing or the collections framework, which make complete sense on first glance.

    For five years or so now I've wanted to write multi-track recording software in Java in my spare time, but so far I've been unsuccessful, at least partly because of deficiencies in the Java Sound API. Chief among these is the difficulty of synchronizing input and output lines (i.e. I'd love to see Mixer.synchronize() implemented sometime). There's probably a way to do this, but clearly it was the last thing on the minds of the people who layed out the initial design of the API. Making this and all the things that people want to do with Java Sound easier seems like it should be the primary goal of any future efforts.

    Posted by: ihsahn_sorbo on June 17, 2003 at 05:25 AM

  • What about the OpenAL bindings?
    I don't know much about PortAudio, but the Gaming group here at java.net already has started JOAL, a Java binding to the cross-platfrom OpenAL audio libraries.
    The gaming community has been fed up with the sorry state of JavaSound for a while now, as for gaming it is a poor fit. Perhaps JOAL is general enough for everyone?

    Posted by: swpalmer on June 17, 2003 at 07:02 AM

  • What about the OpenAL bindings?
    Can you post a link to JOAL? Ill forward it to the appropriate JavaSound resources...

    I just want to note a key flaw in community with this. If the entire community is using a separate competing API to an API already in the JDK, maybe the API in the JDK should be replaced. That was the idea with PortAudio.

    Posted by: jonathansimon on June 17, 2003 at 07:34 AM

  • What about the OpenAL bindings?
    Here you go:
    http://joal.dev.java.net/

    Posted by: swpalmer on June 17, 2003 at 09:18 AM

  • My thoughts
    Personally, I think that the JavaSound API is fine. The only thing that needs improvement is the implementation. My first thought is that they should be able to get a LOT more out of Beatnik/Headspace. It is after all a highly encompassing API with many, many, many, many features that are never seen in Java.

    My second thought, beatnik aside, is that changes to the underlying implementation shouldn't need to change as long as the API itself stays the same. JSRs have always defined APIs and not the implementation, the OSS (http://www.opensound.com/oss.html) style of the Java API should lend itself well to any underlying sound system.

    Posted by: jbanes on June 17, 2003 at 11:11 AM

  • My thoughts
    Hmm... bit of a typo in my second thought there. What I was trying to say is that changes shouldn't need to go back through a JSR as long as they are implementation changes and not API changes.

    Posted by: jbanes on June 17, 2003 at 11:46 AM

  • Ogg Vorbis
    I was not at JavaOne, but one Birds-of-a-Feather session that sounded interesting to me was Florian Bomers' "What's New in Java Sound API in Tiger" .

    The blurb for it enticingly suggests, "For example, find out if MP3 or Ogg Vorbis will be finally supported, or if professional support for multi-channel soundcards is on its way into the Java technology core."

    Can anyone comment on this? Is there any evidence that there will be Vorbis support built into J2SE 1.5 or was it just hype?

    Thanks,
    Dave

    Posted by: dmh on June 17, 2003 at 11:51 AM

  • Ogg Vorbis
    Check out the Tritonus project: http://www.tritonus.org/

    Tritonus is an open source implementation of JavaSound by Florian Bomers (the guy who does the 'real' JavaSound) and Matthias Pfisterer.

    Currently there is support for MP3 and Ogg. Check it out.

    Posted by: jonathansimon on June 17, 2003 at 12:58 PM

  • It seems to me that...
    I've got a multitrack project at : https://sourceforge.net/projects/adsystem/
    What I did was create the GUI and hope that the sound API would mature. I personaly think that having projects in development would add some legitimacy to our cause. I just hope that it's not too late since the trafic on the mailing list has seemed to drop off lately indicating that many may have just lost interest and moved on. It might also help if we started openly debating this issue on the mailing list. I still think that the javax.sound api's eventually mature given the popularity of Java, although when is anybodys guess. At any rate I'm willing to help the cause anyway I can.
    Robert

    Posted by: lonedragon on June 17, 2003 at 11:34 PM

  • What about the OpenAL bindings?
    Just to be clear, OpenAL (and by extension JOAL) is an API for doing hardware-supported 3D spatialized audio designed to be comnpatible with OpenGL. It is a relatively low-level API which while enabling the developer to control the location, direction, velocity, etc of a sound source in a 3D environment, it contains no real support for audio synthesis, filtering or mixing and only minimal support for streaming, So while there is plenty of room for improvement in JavaSound, JOAL is more of a complementary tecnology rather than a replacement for it.

    Posted by: gamesadmin on June 20, 2003 at 09:13 AM

  • Java Sound as a basis for professional tools
    The Java Sound API doesn't give developers what we need to create real world applications. I investigated the API earlier this year as a solution to the constructions of bespoke audio programs (radio-like), and didn't get beyond the lack of timing/synchroniation. Such a capability is essential to allow audio programs to be tailor-made for users without resorting to a trial and error based timing/track transition solution that probably doesn't travel across platforms/environments. This has to be a fundamental requirement for anyone wanting to do more than just playback from a single source.

    Posted by: eneylon on June 30, 2003 at 01:38 AM

  • Stable is all we care about and JavaSound is not.
    I am not comfortably with seeing a VM crash, but JavaSound is the root cause of more then 90% of our application's VM crashes. I have yet to try out 1.4.2, but this is true as of 1.4.1_03 (exceptions in jsound.dll).

    This VM crash happens frequently on certain machine configurations, yet there is hardly any documentation of these failures on the Internet. We can only conclude we are one of the few people using the JavaSound API.

    While API itself could be overhauled to be simpler to use, I personally would settle for anything that could play a WAV file without bringing down the app.

    Posted by: brendonm on June 30, 2003 at 01:54 AM

  • PortAudio in JavaSound
    As a musician, I use PortAudio-powered software every day, and I can only recommend it in terms of both stability and features. Although it may sometimes be the case that "home-brewed/open-source software tends to suck for general-purpose use because good engineers have day jobs and limit their involvement", this is absolutely, categorically not the case with PortAudio.

    If it were to become the internal engine for JavaSound, then we would have a rock solid basis for almost any audio app that anyone might care to develop.

    So how about getting started on that JSR?!

    Posted by: adamvert on September 30, 2003 at 03:10 AM

  • Ogg Vorbis
    There are only a few problems with tritonus
    First it's not pure java. It is built for Linux and performance is unreliable on any other platform.
    Second, I'm not sure development is still going on. Even the web page is very old.

    Posted by: sasdav on March 08, 2004 at 11:26 AM

  • Got a Grievance? : RFE
    I haven't used JavaSound heaps, but I've used it a bit and I generally like it. Obiously some things have been missing or slow in coming, but knowing that only one guy is working on it has to give you some sympathy - it's a big job.

    Even with the limited experience I've had in using JavaSound, I quickly found some things that I wasn't happy with. Rather than write a Weblog about it or go Googling for a new API, I submitted two RFEs to the java bug tracker, both of which would result in API changes. The response to both was something like "This is a good idea. Let's do this. Commit to Mustang." Unfortunately I was a little late for Tiger - the Betas were alreay out - but I expect my suggestions will be included before the next major release, which is a really cool feeling. It's just like open source, but without the hard work! : )

    My point is: if you feel that JavaSound isn't all that it could be, don't whinge about it or abandon it for something better: figure out what it is you want and submit an RFE so that it has a chance of becoming all it could be. If you're feeling pro-active, you could even write the code, release it publicly/freely and refer to it from your RFE so that the JavaSound team has a starting point and so the rest of the community can use your code in the meantime. (Yes, I know this is not always possible.)

    To summarise: Products don't change in response to weblogs or silence. They change in response to RFEs and active involvement. Think about it.

    Posted by: grlea on June 08, 2004 at 10:59 PM

  • Looks like things have become a bit worse ...
    Florian is gone now too.

    http://blogs.sun.com/roller/page/plamere/20040811#what_s_next_for_javasound

    Posted by: lamere on August 11, 2004 at 03:13 AM

  • Looks like things have become a bit worse ...
    Anybody ever read "And then there were none" ...

    Posted by: jonathansimon on August 11, 2004 at 06:22 PM

  • Well, maybe we can do something like what Java3D did with OpenGL, use OpenAL as a basis, and build higher level functionality on top of it.

    Posted by: billksun on December 21, 2004 at 11:16 PM

  • 网络营销软件
    网络营销软件
    网络营销软件
    群发软件
    群发软件
    ---
    群发软件
    网络营销软件网络推广软件网站推广软件下载引擎登陆软件论坛群发软件下载免费版
    论坛群发软件,信息群发软件,群发软件,网络营销软件,网站推广软件引擎登陆软件下载
    网站排名软件网站推广软件信息群发软件博客群发软件论坛群发软件免费下载
    群发软件,信息群发软件,博客群发软件,论坛群发软件,免费下载:群发软件系统
    推广小助手破解版
    论坛群发软件
    网站排名软件
    群发软件
    推荐给你很好的群发软件和信息群发软件和供求群发软件
    推荐给你很好的群发软件和信息群发软件和供求群发软件博客群发软件网络营销软件网络营销软件
    网站排名软件网站排名软件网站优化软件信息群发软件信息群发软件信息群发软件论坛群发软件网站推广软件网站推广软件博客群发软件博客群发软件

    群发软件群发软件博客群发软件论坛群发软件网络营销软件论坛群发软件
    信息群发软件推广软件网站推广软件网络营销软件网站推广软件群发软件网站排名软件网站推广软件博客群发软件论坛群发软件群发软件网站排名软件网站推广软件博客群发软件论坛群发软件
    网站排名软件
    博客群发软件
    网站排名软件
    网站推广软件
    群发软件信息群发软件
    免费论坛群发软件
    论坛群发软件
    网站排名软件
    免费博客群发软件
    网站推广软件

    群发软件
    博客群发软件
    网站排名软件
    网站推广软件
    群发软件信息群发软件
    免费论坛群发软件
    论坛群发软件
    网站排名软件
    免费博客群发软件
    博客群发软件

    Posted by: 3ufblog9 on November 28, 2007 at 09:23 PM

  • wow power leveling
    wow powerleveling
    wow power leveling
    wow gold
    wow items
    feelingame.com
    wow tips
    Most Valuable WOW Power Leveling Service
    wow power leveling faq
    cheap wow power leveling
    wow power leveling
    wow powerleveling
    wow power lvl

    Posted by: wowpower on December 11, 2007 at 10:50 PM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds