harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jimmy,Jing Lv" <firep...@gmail.com>
Subject [classlib][sound]Proposal for Harmony Sound real implementation
Date Tue, 04 Sep 2007 09:00:48 GMT
Hi,

    I miss something last time, it seems if we want Harmony to play
music, we need a native support for sound in Harmony as well. RI's
implementation has a 100k-sized dll (sound.dll) under lib directory.
    However as we know, sound driver on windows and linux are totally
different,  and harmony port lib do not contain any support for this.
We need to write several libs for variety of platforms (windows,
linux, macos,etc).

    And RI currently support .au、.aiff、.Wav、.Midi、.rfm files (do I
miss something here?) As a result, Harmony'd better implement these
providers (And IMO, it'll be better if Harmony support more formats of
media).

    I try to google for more open source sound
providers/native-implementation these days, though most open source
music implementations are GPL licensed, still there're a few seems
good to use. For an example, "portaudio"[1] from Carnegie Mellon
University is  cross-platform APIs and library implementations for
music, under a MIT-like license, which seems compitable with APL., we
may use this library as our native lib of sound. But we'd better send
mail and ask them about this, do we?
    If we can use "portaudio" as our native lib, the next thing is to
implement our java providers for  .au、.aiff、.Wav、.Midi、.rfm, etc.
files, unluckiely, I dont find any non-GPLed or non-LGPLed open source
java sound provider yet. Is it acceptable for us to use LGPLed
providers (do not re-disturbute them, but ask harmony clients to
download themselves?) Or we can wrap native API, do some change to
comply java sound infrastructure. if native api is strong enough, the
wrapping may be not too costy.

    Currently the sound module test coverage is still low, if we
finish real implementation, we can make it 100%.

    Any comments/suggestions? And is it possible to mail portmusic and
use their lib as a part of Harmony? Thanks!

[1] http://www.cs.cmu.edu/~music/portmusic/

2007/8/28, Jimmy,Jing Lv <firepure@gmail.com>:
> Hi All,
>
>     Though sound module has 100% API coverage [1], a simple test on
> sound module shows that it lacks some real providers[2]. What's more,
> Harmony need a sound.properties file under jdk/jre/lib according to
> java doc [3].
>     It seems Harmony does not have a sound provider yet  (please
> correct me if I miss something). So we have two ways to go:
>     1. code a provider for Harmony, it may be more than 300K in binary
> size according to RI's implementation, so a lot of work to do :)
>     2. find a sound provider from other open source project. I googled
> open source sound provider, and find some of them. On the top of
> search result is a project named Tritonus[4],  though it does not
> update since 2003, it is said "Tritonus is an implementation of the
> Java Sound API" and has a full build for downloading, sounds perfectly
> meet our requirement (but I did not test it yet), however it is GPL
> licensed. Some other project, like JLayer/MP3SPI[5] does not support
> Midi at all which is required, and also LGPL licensed. If we want to
> use these providers, we can not re-distribute them with
> Harmony(according to GPL and APL) but ask users to download them
> theirslves.
>
>      Any suggestions on this? Or do someone know some APL or
> APL-compatible open source java sound provider? Thanks!
>
>
> [1] http://www.kaffe.org/~stuart/japi/htmlout/h-jdk15-harmony5.html
> [2] a small test try to play a midi will cause an Error as follows
> while RI plays well:
> java.lang.Error: There is no MidiFileReaderProviders on your system!!!
>         at javax.sound.midi.MidiSystem.getSequence(MidiSystem.java:315)
>         at testdecl.PlayMidi.<init>(PlayMidi.java:39)
>         at testdecl.PlayMidi.main(PlayMidi.java:81)
> [3] file:///C:/Spec/docs/api/javax/sound/midi/MidiMessage.html
> [4] http://tritonus.org/
> [5] http://www.javazoom.net/projects.html
> --
>
> Best Regards!
>
> Jimmy, Jing Lv
> China Software Development Lab, IBM
>


-- 

Best Regards!

Jimmy, Jing Lv
China Software Development Lab, IBM
Mime
View raw message