i-tree.org

DAPlay - To Do List

To Do List
Below is a list of areas where work is needed. If you are interested in contributing you can select one area and I will put your name at that item in the list. If you do some work please send the code back to lgunnars@i-tree.org so that it can be included here.

Equalizer
MAPlay does not have any level display. I was able to implement a VU-level meter for DAPlay by using a little trick and do the calculation in the converted WAV audio buffer. To do this properly one would have to instead deal with the MPEG data directly. The present VU-level meter for DAPlay is good enough for almost all purposes I would say, excd enough for almost all purposes I would say, except for getting a nice graphical display of all the levels at different frequencies (octaves), like you probably have seen with the WinAmp player.
In order to show the level at different frequencies one would have to adapt the code of the encoders. All the information needed is available to do this, in theory anyway), but I do not have enough experience myself to know exactly where to do this. If you can find out how to do this, then you can also easily implement an equalizer. All you need to do is to simply multiply the level values at certain frequencies with the level setting of the equalizer at their respective places.
A tip might be to look at the source code for the XMMS Player and possibly integrate their solution into this project too. It is another GNU GPL project so if there is a solution for this problem there, then that would work out just fine. I have already looked at the FreeAmp source code (also a GNU GPL project) but unfortunately there is no solution for this problem there. Or maybe you would recommend that DAPlay should use the XMMS source code and would like to implement an interface at some level? That is fine with me! Or would it be possible to somehow join the XMMS project and keep DAPlay as one user interface among others? Fine, whatever! The player needs to remain stable (no memory leaks, nor lock-ups), we just need to be able to use it in Delphi, we nee need to be able to subscribe to messages and so on...

Difficulty level: Rather Difficult

Porting DAPlay to Linux
The original code for MAPlay was written for UNIX versions, so it should be fairly easy to port the DAPlay code back to Linux. There are some issues regarding the User Interface, which I am not too sure of how to solve, but if you know more about theses issues for Linux, by all means, go ahead and port DAPlay! More information at Linux and other Unix versions environment.

Difficulty level: Medium

New applications/new user interfaces
The above items in the list are specific problems with a description of what needs to be done. This very item here might be more exciting, because you will have to decide yourself what you want to do. There are no limits to what can be done! If you have an idea of how a real nice audio player should look like, well then implement it yourself. Or would you be interested in implementing another look-alike of some of the more well known MP3 player, just in order to find out how difficult it is and whether you can do it? Go ahead, it might not be too difficult? The source code for DAPlay is especially designed to be used as a development kit. Once you have designed your own application please send an email so that we can provide a link to your homepage from here and let other users enjoy your app too.

Difficulty level: Up to you -be creative!

Background
I first came across the MAPlay source code while working on an application for MPEG audio. The commercial development kit for MPEG audio by Digigram, which we were using, could not handle as many formats as the MAPlay source code. For this reason I spent some spare moments to adapt the MAPlay code for the playback driver part of the application we were working on.
The adapted MAPlay code later really proved to be useful, so that I continued to improve the code during many months. Since I had the source code I could remove all bugs quickly and easily unlike with the commercial development kit, where plenty of bugs caused weeks and months of delays. This code is the base for DAPlay and in my experienced it is now very stable, much more so than the driver we used from the commercial development kit.
Later on I had to port this code to be used in a Delphi environment. At that time I decided to publish the code at my website and make it available on the Internet for other developers, since it is free software published under the general GNU GPL.
In my view DAPlay can easily be used in a similar way as the xaudio developer kit at http://www.xaudio.com. The difference is that DAPlay is free software and you get the full source code. In some areas the xaudio developer kit might have some more features. However, I am looking forward to your contributions so that DAPlay will become even more usable for more people.