Echo Media Player

What is Echo?

I have resurrected the Echo project as of April 2019 and progress has moved along quickly. For the first 2 weeks, I used as much of the old code as I could but some changes were needed. Originally written with Java 1.4, Java has added many new things and it was time to update the old code. I then began looking into Java FX, new territory for me but was intrigued by it. I have now moved the project completely over to JavaFX and like the UI much better than Swing. Aside from removing the need to create many custom classes I had created before, the UI is easily customizable through CSS, allowing end-users to theme the application on their own.

The same media formats are still supported: mp3, flac, aiff, wav, ape, ogg, and speex. I have yet to get AAC audio to work in either the Javax Sound SPI or the JavaFX Media API, but it is one of the goals. As for song tagging, I moved over to JAudioTagger as it was far more up to date than my tagging library. While that saved some time, I ended up writing my own DAAP library from scratch. This allows the playback of shared media libraries on a network. Unfortunately, iTunes shares will not be supported due to Apple's security changes. To my knowledge, no one has yet cracked the authentication method for connecting to an iTunes share from outside of the actual iTunes client. SHOUTcast and ICEcast streams are supported and simple playlists have been implemented. Smart playlists, which are built automatically through a list of user-controlled filters, is planned.

Download

Echo v.0.1 (2.5MB)

Screenshots

Echo
Early version of the program when it was still called jTunez
Echo
Showing a comparison of Echo with Apple's iTunes
Echo
Streaming internet radio

History of Echo

What is Echo?

The Echo media player began as a project to bring Apple's iTunes to Windows. This was really my first software project I started outside of the classroom and what propelled me into Java development. When I started the project, iTunes was only available on Mac. When Apple finally brought iTunes over to the Windows platform in late 2003, I stopped development for the next couple of years before picking it back up again.

Because it started out its life as a clone, Echo's GUI mimics iTunes very closely and designed to have the same look and feel. The core of Echo uses JLayer, an open source project that adds MP3 support to Java. The songs' ID3 tag information is read by my own methods and Echo's library stored in a binary file rather than XML like iTunes. This results in a much smaller filesize and faster startup time. Internet radio is also supported and can accept SHOUTcast streams. And unlike iTunes, Echo supports OGG Vorbis and FLAC files. DAAP support is partially implemented. This is what allows iTunes to share it's library with other users on the same network. Currently, you can view another user's iTunes library but are not yet able to stream a song from iTunes with Echo.

There is no iTunes store support, no CD ripping, and no iPod/iPhone support. I used Echo in place of iTunes for awhile because it was more responsive with the large 50k file database I had. iTunes 9 appeared to have rewritten the library component of the program and now seems to be on par with the speed of my GUI.

Like CuBase Media, Echo suffered the same fate caused by the hardware failure. Bits and pieces of the source code were retrieved, but the project as a whole was lost.

Screenshots

Echo
Early version of the program when it was still called jTunez
Echo
Showing a comparison of Echo with Apple's iTunes
Echo
Streaming internet radio