Posted 10 June 2010 - 08:37 PM
The client app currently uses C# with multi-platform C audio libs and codecs. The server uses Java, communicating using a HTTP-based protocol. All communication messages are all in XML, and all audio data is saved per-track on the server at the moment in mp3 format.
There are long term plans to transition the client's graphical user interface to the web, while retaining the audio server functionality in the client app. Moving KM's client audio server to something else like Flash is not really feasible, due to the heavy use of fast fourier transforms (for digital signal processing like parametric equalizers, lo-pass filters, hi-pass filters, volume normalization, pitch detection, reverberation), real-time audio encoding / decoding, synchronized streaming track playback, and hardware latency concerns. The current priority is to improve basic stuff like the audio server's multi-track functionality, so you can do local/remote duets and etc. Just to clarify, the "audio server" is the portion of KM that runs on your computer that's responsible for handling all of the audio recording / playback.
Yes, having global/shared song libraries with timed lyrics is part of the long term plan. It has no dependencies to the current audio-server work, and can be realistically started on at any time by anyone.
Once the move to a web-based GUI is completed, then the client-app can be rewritten out of C# and ported to work on other operating systems like OSX and Linux.
