Skip to main content

new incubator app and JMF issue

13 replies [Last post]
thaniwa
Offline
Joined: 2004-06-12

I commited new app, name as trumplayer, into the lg3d-incubator.
Trumplayer is a JMF based mp3 player.
A screenshot can be seen at following URL.
http://blogs.sun.com/roller/resources/thaniwa/trumplayer.jpg

Trumplayer is in the latest daily build (2006/07/29).

In present, trumplayer with lg3d daily build can be run, but trumplayer cannot play mp3 music by two reasons.

1) lg3d have no mp3plugin.jar.
Trumplayer and JMF requires mp3plugin.jar to play mp3.
(Windows version of JMF does not require mp3plugin.jar.)
http://java.sun.com/products/java-media/jmf/mp3/download.html

I don't know the details of the license of the mp3 plugin for JMF. If no problems, I want to include it into lg3d-incubator.

2) current settings of JMF in the lg3d-incubator.
Current JMF in the lg3d-incubator requires fobs4jmf.
lg3d-incubator has fobs4jmf.jar, but lg3d-incubator does
not have native libraries of fobs4jmf, therefore
lg3d get errors when jmf based application is started.

Therefore, to play mp3 sound, replacing jmf.properties and installing mp3player.jar are required in current status.

Trumplayer requires trumplayer.xml in your home directory and M3U/EXTM3U playlist.
Solaris or Linux : /home/${user}/trumplayer.xml
Windows : c:\documents and settings\${user}\trumplayer.xml

Trumplayer.xml is as follows.

=====
<?xml version="1.0" encoding="UTF-8"?>

JISAutoDetect
HGSGothicE

BoA
BEST OF SOUL
/windows/D/mp3/BoA/BEST OF SOUL.jpg
/windows/D/mp3/BoA/BEST OF SOUL.m3u

QUEEN
JEWELS
/windows/D/mp3/jewels.jpg
/windows/D/mp3/jewels.m3u

=====

thanks,

yasuhiro (thaniwa)

Reply viewing options

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

> just a pointer that may be usefull for the guessing system:
> http://id3lib.sourceforge.net/

wops, I got that link from Geertjan Wielenga's blog, and it seems he putted a
wrong link as this id3lib is a C++ thing. After some diggind and messaging
with he we found that he really was speaking about
http://www.ueberdosis.de/java/id3.html (which is Java based).

^-_-^

---------------------------------------------------------------------
To unsubscribe, e-mail: interest-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest-help@lg3d.dev.java.net

thaniwa
Offline
Joined: 2004-06-12

Hi, Juan

> > just a pointer that may be usefull for the guessing
> system:
> > http://id3lib.sourceforge.net/
>
> wops, I got that link from Geertjan Wielenga's blog,
> and it seems he putted a
> wrong link as this id3lib is a C++ thing. After some
> diggind and messaging
> with he we found that he really was speaking about
> http://www.ueberdosis.de/java/id3.html (which is Java
> based).
>
> ^-_-^

I found the following URL,
and I already implemented ID3 Tag V2 read algorithm for trumplayer by myself.

http://www.id3.org/develop.html

Trumplayer's ID3 read function is a light version.
So, trumplayer does not support all features of the ID3 Tag V2, but trumplayer can read enough informations
( artist name, song title, album title, track, genre and release year ) to use internally.

This function already included in latest cvs source code.

Thank you very much.

thaniwa
Offline
Joined: 2004-06-12

Hi all,

Trumplayer supports the following RFE from the latest daily builds.

When trumplayer cannot found $home/trumplayer.xml,
trumplayer runs the setup wizard to search mp3 files and create a trumplayer.xml and m3u playlists (for internally use).
The setup wizard creates playlists with ID3Tag informations of the mp3 files.

When $home/trumplayer.xml exists, the setup wizard will not be displayed.
So, after setup once , trumplayer cannot changed trumplayer.xml now.
But, I am trying to implement playlist management function (it can be call from trumplayer GUI).
If you want to use playlist management function, please wait for a while. Though I don't know when to complete it. ;-)

If you are interested in the new features, please try it.

Thanks,

Yasuhiro (thaniwa)

=====
My first RFE for you follows:

Subject: Add guessing capabilities to TrumPlayer
Description: It would be nice if trumplayer.xml just contained folder(s) path
and the player automatically loads (recursively) the mp3's there and guess
the information about the album, artist and so on from the files themselves
(and persist that info of course). Also, it shall try to guess what's the
cover for the folder based on folder name and the info obtained before
(album, artist...). My reason for this request is that in my mp3 collection
I've only found one m3u file, and i've tons of mp3, but as actual players
doesn't need the playlist anymore I don't even need them, and a it doesn't
look tooo complex to achieve.
=====

paulby
Offline
Joined: 2003-06-13

I'm investigating our options wrt bundling the mp3 .jar.

paulby
Offline
Joined: 2003-06-13

OK I got an answer on bundling the jar. Sun purchased the rights to this package but unforunately the deal only allows Sun to distribute it, third parties are not allowed to redistribute.

What this means is that we could put the jar in lg3d but then no one else could distribute lg3d, not something we want to do.

I think the best approach to get around this would be to add some code to your app which will automatically download and install the jar in the users lg3d directory when the app if first run.

thaniwa
Offline
Joined: 2004-06-12

> I think the best approach to get around this would be
> to add some code to your app which will automatically
> download and install the jar in the users lg3d
> directory when the app if first run.

Current player displays warning messages when mp3plugin.jar cannot found. Therefore I do not intend to add the download function now.
I will also think other ways( e.g. switch to other open mp3 libraries.)

Thanks

yasuhiro(thaniwa)

thaniwa
Offline
Joined: 2004-06-12

Hi Paul,

> I will also think other ways( e.g. switch to other
> open mp3 libraries.)

To use JLayer instead of JMF with mp3plugin.jar is a very easy way for me.
Rewriting from the JMF part to JLayer was possible in several hours.
Trumplayer in my box already run with JLayer, not JMF. :)

http://www.javazoom.net/javalayer/javalayer.html

JLayer is under LGPL, so I think that it is no problems to redistributed.
If it is okay that I commit binary of JLayer (jl1.0.jar) to lg3d-incubator, I will also commit trumplayer JLayer version.
Can I do it?

Thanks,

yasuhiro(thaniwa)

paulby
Offline
Joined: 2003-06-13

Cool. As JLayer is LGPL you can commit it into lg3d-incubator. Please be sure to include the license file along with the jar so we know the source and terms of all the jars we are using.

hideya
Offline
Joined: 2003-07-22

Hi yasuhiro,

Thanks again for the contributions of Trumplayer :)
As for the issues you pointed out (no mp3plugin.jar and broken configuration of the current JMF in the lg3d-incubator), could you please file an RFE for it so that we don't forget? We'll discuss how to solve it when Paul is back (he is on vacation now). Thanks in advance!

hideya

Juan González

Hi thaniwa,

> I commited new app, name as trumplayer, into the lg3d-incubator.
> Trumplayer is a JMF based mp3 player.
> A screenshot can be seen at following URL.
> http://blogs.sun.com/roller/resources/thaniwa/trumplayer.jpg
Cool app!! I just found a minute to set it up and looks wonderfull, but i
can't fully enjoy it by the reasons i'll explain at the end of this email
(short: I only have 1 m3u file in my mp3 collection)

> Trumplayer is in the latest daily build (2006/07/29).
>
> In present, trumplayer with lg3d daily build can be run, but trumplayer
> cannot play mp3 music by two reasons.
>
> 1) lg3d have no mp3plugin.jar.
> Trumplayer and JMF requires mp3plugin.jar to play mp3.
> (Windows version of JMF does not require mp3plugin.jar.)
> http://java.sun.com/products/java-media/jmf/mp3/download.html
>
> I don't know the details of the license of the mp3 plugin for JMF. If no
> problems, I want to include it into lg3d-incubator.
I've read the license, and while I'm not a lawyer (and not even good with
english), the A point from the "SUPPLEMENTAL LICENSE TERMS" worries me a bit:

"A. Software Internal Use and Development License Grant.
Subject to the terms and conditions of this Agreement,
including, but not limited to Section B (Java
Technology Restrictions) of these Supplemental Terms,
Sun grants you a non-exclusive, non-transferable,
limited license to reproduce internally and use
internally the binary form of the Software, complete
and unmodified, for the sole purpose of playing MP3
files with your Java enabled device"

Internal use?

> 2) current settings of JMF in the lg3d-incubator.
> Current JMF in the lg3d-incubator requires fobs4jmf.
> lg3d-incubator has fobs4jmf.jar, but lg3d-incubator does
> not have native libraries of fobs4jmf, therefore
> lg3d get errors when jmf based application is started.
>
> Therefore, to play mp3 sound, replacing jmf.properties and installing
> mp3player.jar are required in current status.
>
>
> Trumplayer requires trumplayer.xml in your home directory and M3U/EXTM3U
> playlist. Solaris or Linux : /home/${user}/trumplayer.xml
> Windows : c:\documents and settings\${user}\trumplayer.xml
>
> Trumplayer.xml is as follows.
>
> =====
>
>
>
> JISAutoDetect
> HGSGothicE
>
> BoA
> BEST OF SOUL
> /windows/D/mp3/BoA/BEST OF SOUL.jpg
> /windows/D/mp3/BoA/BEST OF SOUL.m3u
>

>
> QUEEN
> JEWELS
> /windows/D/mp3/jewels.jpg
> /windows/D/mp3/jewels.m3u
>

>

My first RFE for you follows:

Subject: Add guessing capabilities to TrumPlayer
Description: It would be nice if trumplayer.xml just contained folder(s) path
and the player automatically loads (recursively) the mp3's there and guess
the information about the album, artist and so on from the files themselves
(and persist that info of course). Also, it shall try to guess what's the
cover for the folder based on folder name and the info obtained before
(album, artist...). My reason for this request is that in my mp3 collection
I've only found one m3u file, and i've tons of mp3, but as actual players
doesn't need the playlist anymore I don't even need them, and a it doesn't
look tooo complex to achieve.

Comments?

---------------------------------------------------------------------
To unsubscribe, e-mail: interest-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest-help@lg3d.dev.java.net

thaniwa
Offline
Joined: 2004-06-12

Hi Juan,

> "A. Software Internal Use and Development License
> Grant.
> Subject to the terms and conditions of this
> Agreement,
> including, but not limited to Section B (Java
> Technology Restrictions) of these Supplemental Terms,
> Sun grants you a non-exclusive, non-transferable,
> limited license to reproduce internally and use
> internally the binary form of the Software, complete
> and unmodified, for the sole purpose of playing MP3
> files with your Java enabled device"
>
> Internal use?

My code does not use the APIs of mp3plugin,
but I feel that it is difficult to put mp3plugin.jar into incubator by the license....

> > =====
> >
> >
> >
> > JISAutoDetect
> > HGSGothicE
> >
> > BoA
> > BEST OF SOUL
> > /windows/D/mp3/BoA/BEST OF
> SOUL.jpg
> > /windows/D/mp3/BoA/BEST OF
> SOUL.m3u

> >

> >
> > QUEEN
> > JEWELS
> > /windows/D/mp3/jewels.jpg
> > /windows/D/mp3/jewels.m3u
> >

> >

>
> My first RFE for you follows:
>
> Subject: Add guessing capabilities to TrumPlayer
> Description: It would be nice if trumplayer.xml just
> contained folder(s) path
> and the player automatically loads (recursively) the
> mp3's there and guess
> the information about the album, artist and so on
> from the files themselves
> (and persist that info of course). Also, it shall try
> to guess what's the
> cover for the folder based on folder name and the
> info obtained before
> (album, artist...). My reason for this request is
> that in my mp3 collection
> I've only found one m3u file, and i've tons of mp3,
> but as actual players
> doesn't need the playlist anymore I don't even need
> them, and a it doesn't
> look tooo complex to achieve.
>
> Comments?

Folder tag is a nice idea!
And if trumplayer has an auto search function in the folder is better to use.
But, I think that large I/O will occur to run auto search function.
If I implement it, I think that I should implement it in the search GUI interface.
But now, trumplayer has no GUIS to customize playlist...

I think that it is the best way at present as follows.
- Trumplayer support m3u and folder tag.
- When trumplayer found folder tag, trumplayer search mp3 in the folder, not recursively.
Trumplayer also make EXTM3U files to use internally.
(e.g. /home/$user/.trumplayer/$artist_$album.m3u )
EXTM3U is a extended M3U file includes artist info, song name and so on.
- Trumplayer uses internal EXTM3U instead of the folder tag information in the next start time.
(It can reduce I/O.)

Thanks,

Yasuhiro(thaniwa)

Juan González

just a pointer that may be usefull for the guessing system:
http://id3lib.sourceforge.net/

El Monday, 31 de July de 2006 18:47, lg3d@javadesktop.org escribió:
> Hi Juan,
>
> > "A. Software Internal Use and Development License
> > Grant.
> > Subject to the terms and conditions of this
> > Agreement,
> > including, but not limited to Section B (Java
> > Technology Restrictions) of these Supplemental Terms,
> > Sun grants you a non-exclusive, non-transferable,
> > limited license to reproduce internally and use
> > internally the binary form of the Software, complete
> > and unmodified, for the sole purpose of playing MP3
> > files with your Java enabled device"
> >
> > Internal use?
>
> My code does not use the APIs of mp3plugin,
> but I feel that it is difficult to put mp3plugin.jar into incubator by the
> license....
>
> > > =====
> > >
> > >
> > >
> > > JISAutoDetect
> > > HGSGothicE
> > >
> > > BoA
> > > BEST OF SOUL
> > > /windows/D/mp3/BoA/BEST OF
> >
> > SOUL.jpg
> >
> > > /windows/D/mp3/BoA/BEST OF
> >
> > SOUL.m3u

> >
> > >

> > >
> > > QUEEN
> > > JEWELS
> > > /windows/D/mp3/jewels.jpg
> > > /windows/D/mp3/jewels.m3u
> > >

> > >

> >
> > My first RFE for you follows:
> >
> > Subject: Add guessing capabilities to TrumPlayer
> > Description: It would be nice if trumplayer.xml just
> > contained folder(s) path
> > and the player automatically loads (recursively) the
> > mp3's there and guess
> > the information about the album, artist and so on
> > from the files themselves
> > (and persist that info of course). Also, it shall try
> > to guess what's the
> > cover for the folder based on folder name and the
> > info obtained before
> > (album, artist...). My reason for this request is
> > that in my mp3 collection
> > I've only found one m3u file, and i've tons of mp3,
> > but as actual players
> > doesn't need the playlist anymore I don't even need
> > them, and a it doesn't
> > look tooo complex to achieve.
> >
> > Comments?
>
> Folder tag is a nice idea!
> And if trumplayer has an auto search function in the folder is better to
> use. But, I think that large I/O will occur to run auto search function. If
> I implement it, I think that I should implement it in the search GUI
> interface. But now, trumplayer has no GUIS to customize playlist...
>
> I think that it is the best way at present as follows.
> - Trumplayer support m3u and folder tag.
> - When trumplayer found folder tag, trumplayer search mp3 in the folder,
> not recursively. Trumplayer also make EXTM3U files to use internally.
> (e.g. /home/$user/.trumplayer/$artist_$album.m3u )
> EXTM3U is a extended M3U file includes artist info, song name and so on.
> - Trumplayer uses internal EXTM3U instead of the folder tag information in
> the next start time. (It can reduce I/O.)
>
>
> Thanks,
>
> Yasuhiro(thaniwa)
> [Message sent by forum member 'thaniwa' (thaniwa)]
>
> http://forums.java.net/jive/thread.jspa?messageID=138362
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: interest-unsubscribe@lg3d.dev.java.net
> For additional commands, e-mail: interest-help@lg3d.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: interest-unsubscribe@lg3d.dev.java.net
For additional commands, e-mail: interest-help@lg3d.dev.java.net

thaniwa
Offline
Joined: 2004-06-12

Hi Juan,

> just a pointer that may be usefull for the guessing
> system:
> http://id3lib.sourceforge.net/

Thank you for your informations.
Trumplayer supports ID3 Tag V1.0/1.1, but does not support ID3 Tag V2.x, so your information is useful.

Now, trumplayer supports to use tag instead of tag.
When trumplayer found tag, trumplayer make a playlist(extm3u) using ID3Tag to use internally.
Trumplayer sort mp3 file with track number or file name,
trumplayer use track number when mp3 file has ID3 Tag V1.1.

New target format is as follows.
Details of it can be seen at
http://blogs.sun.com/roller/page/thaniwa/lg3den

===


ISO-8859-1
HGSGothicE

BoA
BEST OF SOUL
/windows/D/mp3/BoA/BEST OF SOUL.jpg
/windows/D/mp3/BoA/BEST OF SOUL.m3u


TWO-MIX
dELTA ONE
/windows/D/mp3/two-mix/dELTA ONE.jpg
/windows/D/mp3/two-mix/dELTA ONE


Mai.K
FUSE OF LOVE
/windows/D/mp3/Mai.K/FUSE OF LOVE.jpg
/windows/D/mp3/Mai.K/FUSE OF LOVE

===

tag supports "recursive" option, but now trumplayer recognize
all files under folder in tag are one album's components.

Of course, I think that implementing automatic search and make playlists internally using ID3Tag informations is an eventual goal.

But, I think that I have to improvement GUIs of trumplayer
before implement auto folder search and make playlists function.

Because current trumplayer's GUI cannot treat a lot albums,
I think that trumplayer can treat 20-30 albums now.
Trumplayer needs the following functions.
- GUI to manage album group and so on.
- GUI to find albums by artist, title, songs and so on.

Thanks,

yasuhiro(thaniwa)