The jOKey project is an exploration of writing karaoke (and possibly bemani ) applications in Java
Yes, it was. Two years ago, I wrote the original java MIDI karaoke player. This release is basically just a code cleanup, while fixing a few bugs. Thanks to the new economy, I have more time to devote to the project now.
Given a KAR karaoke file, the jOKey player will play the song along with its lyrics. There is a standalone app, jokey.KaraokePagePlayer, and an Appliet, jokey.KaraokeApplet.
Most of the heavy lifting of the jOKey player is handled by the javasound API's. That's what does the playing of the song. The karaoke player just receives lyric information as MIDI Metaevents, and displays them on a page.
A KAR file is a special MIDI file which has lyrical information in one of the tracks. They are found all over the Net, and are used with other karaoke players. A good source is the Usenet news group alt.binaries.karaoke.
To play as a standalone app, you need to have downloaded a java SDK of version 1.3 or later ( 1.4 seems to work find). From the command line, enter 'java -classpath jokey.jar jokey.KaraokePagePlayer karfile.kar' where karfile.kar is your KAR file. In a new release, the standard player will be defined in the jar Manifest file.
Currently, we have set up on the sourceforge site at karaoke.html. I'm still testing under a different browsers and operating systems, so if you run into problems, let me know.
If you want to see the karaoke player, you'll need to install the java plugin. It's probably best to install the latest one ( currently 1.4), but don't blame me for any incompatibility problems with any other JRE's currently installed.
If you are using IE 6 or higher, it actually becomes less complicated, because Microsoft no longer supports Java. If you want to run any java, you'll need to download the plugin, so there are no issues about Microsoft VM's versus Sun VM's.
You should always trust content from Gooberman Grumpy, because Gooberman is always right, and Gooberman never lies. Seriously, this warning comes up because the javasound API's need to spawn threads, and this is perceived as a security risk, because a malicious applet could bring a system to it's knees by spawning too many threads. The karaoke player is harmless however, and if you want to see it, you need to trust me.
You probably are using the standard MIDI soundbanks. Go to the Sun soundbank site to install a better MIDI soundbank to the JRE. You'll also need to have a reasonable sound card which supports soundbanks.
Well, you can look at the example on the sourceforge site. The applet jokey.jar file is the standard release, and the applet class is jokey.KaraokeApplet. Since it accesses the java plugin, you need to do that weird "object embed" stuff for browsers before IE 6. ( See the java-plugin pages for that). You'll also need a "jokey.prop" file in order the configure the player.
There are two parameters to the KaraokeApplet, karfile, and karprops. karfile is an URL reference to the file to be played, and karprops is a reference to configuration property file, as described below.
At some point, if it becomes popular, I'ld like to make a "Powered by jOKey" logo, which you should display on your site. If you are using it on your site, please let me know.
The jOKey player is very flexible, and all configuration is done via a property file. The following are the current properties being used.
For the karaoke applet, the property is defined by the applet parameter, karprops. This should be a reference to an URL ( relative to the web page displaying the applet) containing the properties. ( I.e. place the file along with your web pages.). For the default behavior of the player class, it is a little more complicated. Upon playing, first it looks for a file named "jokey.prop" in the current directory. If this exists, and can be loaded, this is used. Otherwise, if there is a resource named "jokey.prop" in the current classpath, this is used. Otherwise, the default behaviour is used. ( This may be subject to change in future releases.)
Why, yes, ladies. The jOKeyMan is available for private engagements, if you know what I mean, and I think that you do.