Welcome
to Aumus!
About
Aumus is a music server that accepts commands over the network from
clients. It's very similar in capability to mpg123 or mpd.
Multiple client applications come with Aumus.
Features of Aumus
- Simple to setup (on my Windows PC, there's no setup whatsoever for
the server).
- Aumus can play entire folders of music with a single command
selecting the folder to play. That alone can eliminate the
need for playlists. Since I almost always randomly play my
entire music collection, I have eliminated having to maintain
playlists.
- When you play a music item, you don't have to specify if it's a
song file, folder or playlist. Aumus will automatically
determine it.
- Playlists can have folder names in them. That way you can add
music to a folder and not have to update the playlist.
- You can add music to the playing set of songs:
- You can add it right at the start. This is handy if you
are listening to a collection of music and you want to listen to a
particular song or album right away. When it's done playing that
song or album, Aumus will go back to playing your collection.
- You can add it randomly throughout the playing set of songs.
This is handy if you have a party and people bring their own
music. It's sort of a jukebox feature.
- You can add it at the end of the list.
Why copy mpd functionality?
The first reason is I decided to learn Java and I needed an
application to develop. In fact my first Java program was a JavaFX
client to control mpd! But, I realized I needed a bigger
application to develop if I was really going to learn Java. This
server is a bigger application.
As for the second reason, well, to be honest, there were a few things
I didn't really "love" about mpd. But, before I go on, please don't
get me wrong--it's an excellent application. I've been running it for
years. But, a while back I ran into an issue with mpd and my
collection of Christmas music. I noticed it wasn't playing some of the
songs. Either the file names or mp3 tags (can't remember which) had
Unicode characters and it was messing things up and the database
couldn't find quite a few music files. I had to go and manually change
each one that didn't play by making sure the names only contained
ASCII characters. Add to this the fact I was getting ready to finally
add my Classical music collection (just imagine all those Unicode
characters). It didn't matter what was at fault (mpd or the file
itself)--I didn't want to go through that again.
Another reason I wanted my own music server is...well...I guess I'm
lazy. I don't like having to maintain lists, config files, etc. With
mpd, there's a database that has to be kept in sync with the music
files. And then you have the playlists that need to be updated when
you buy new music. It's annoying. I wanted something that had zero
maintenance when I added new music files. Frankly, it's bad enough I
have to rip the darn things☺. Aumus lets me play folders of
music. I can add to them anytime--it always re-reads the folder
when I ask it to play.
The third, and least important, was the setup--in particular having
to deal with the sound control Linux has: things like ALSA vs.
Pulse and the configuration files. Some of this is the not mpd's
fault. It's trying to deal with the fact we have an open source
project and two overly complicated and competing sound systems.
I wanted a simpler setup.
You can find plenty of documentation about the Aumus server and the
various client applications in the zip file (look in the docs folder).
You can get Aumus here: Latest
Aumus Version
Releases
0.1) First Release
0.2) Added Android client app
0.3) Added new capability:
- New command to get a folder/directory list from the server.
Thus, a client application could get a list of folders and song
files. The user can then use this information to select
specific albums or songs to play. That way, the client
applications are automatically in synch with the current songs on
the music server.
- The desktop and Android clients can now browse the server for
music files/folders to play
- A graphical user interface for setting up the Aumus Configuration
File (EasySetup).
0.4) Support for Android 4
0.5) Updated user interface for Android & Java clients for
browsing music (removed the clunky up/down arrow buttons; use long
press or double click to move down into a folder)
Known Issues
- Aumus_gui: in MS Windows, when Windows goes to sleep
for a pretty long time, the network connection is broken. The
client should automatically re-connect when this happens, but won't
because the network stack isn't told the connection is down.
Workaround: click one of the buttons (like play or next).
That will cause a packet to go out which will fail and it will then
re-connect. The only way to fix this is to send periodic
commands to the server.
- Aumus_gui: I noticed this warning showing up when I ran
Aumus_gui in MS Windows: "java.util.prefs.WindowsPreferences
<init>
WARNING: Could not open/create prefs root node
Software\JavaSoft\Prefs at root 0 x80000002. Windows
RegCreateKeyEx(...) returned error code 5." Research shows
this is a Java issue that appeared in one of the version 7
updates. The functionality of Aumus is not affected by
this. Apparently it's been fixed (there's a patch for version
8 and the released fix appears in version 9). There is also a
workaround involving creating a registry key (using regedit).
What's Next?
Since my primary purpose was to learn Java, the next thing I should
do is to refactor some of the code. I think some of the message
handling classes can be cleaner. However, there's also some
features I'd like to add:
- Make the gui clients look better
- Adjust layout so buttons look better on larger screens/tablets
(Android client)
- Add CSS to the Java FX applications so they look better. Maybe change
button shapes to circles/ovals (Windows gui client).
- Deprecating support for Android OS 2.2.3. The next release
of the Android client may only run on a newer version (TBD).
This will make development and code sharing easier.
- Add fast forward and skip (n seconds) capability to the server
(and clients)
- Add more
capability to EasySetup:
- create
batch/shell files for launching the server and integrate into
OS.
- Look
for and adjust to different Java runtimes (dealing with Oracle
vs openJDK)
- Add the ability to exclude a
file in a playlist. For example, you can specify a folder and
omit that one annoying song.
- Consider updating applications to Java 8. Code re-use on
Android may prevent this.
- Cleanup svn (remove unnecessary files from the Android repo)
- Add the ability to select more than one song item to play (gui
clients).
Aumus development uses the following open source libraries and
applications. I'd like to thank the authors for their
contribution!