ReMp3 : My BSc Project

ReMp3 Web Site : ReMp3 | Sussex University : Prizewinning projects

For my final year degree project at Sussex University (2006), I decided to write an application that would allow the following features:

  • Allow a user to construct a local playlist of music
  • Allow a user to RIP a CD to MP3 / WAV
  • Allow a user to create a media catalogue
  • Allow a user to convert from WAV to MP3
  • Allow a user to edit ID3 tag information for v1.0 / v1.1 ID3 tags
  • Save all track list information in XAML where it could also be validated
  • Allow a 2nd PC to control what was played on another PC, like a remote control.

So that was the requirements, and what I came up with was the ReMp3 project. It did fairly well overall, and I was quite happy with it. I ended up getting 1st place prize and being awarded an award by the British Computer Society.


It looked like the figure shown above here. There were 2 applications a server and a client. And is made use of host of .NET technologies such as Threading, Remoting, DataAcess (ADO .NET), Custom Controls, XML Parsing, Patterns, and Pinging.

Server App

The server app shown below, consisted of 6 main tabs, which were as follows:

  • Home
  • Media Player
  • Mp3 Editor
  • Media Library
  • CD-Ripper
  • WAV to MP3


Ill now show a screen shotof each of those controls

Media Player

For this control I used the Microsoft Media player, and wrote a wrapper around it, to carry out track lists, drag and drop, reordering of tracklist. One point was that a user could consruct a tracklist of any items on their network, and save that tracklist. As such I had to 1st Ping the host to make sure the tracks read from the saved tracklist, could still be found.


MP3 Editor Control

This control was really about byte frigging, as the ID3 information is part of the MP3 file, so it all about maniupulating bytes within the MP3 file.


Media Library Control

This is fairly straight forward ADO .NET stuff, except that I threaded all this recursive folder scanning, to free up the UI.re2.png

CD Ripper Control

Although id like to take the credit for this one, the code was mainly sourced at codeproject


WAV to MP3 Control

Although id like to take the credit for this one, the code was mainly sourced at codeproject


Client App

The client app shown below, consisted of 2 main tabs, which were as follows:

  • Track List
  • Media Library

Track List

This used .NET remoting to call methods on the Server form. It also had to be threaded to allow the server to block under certain conditions where the Client had to block waiting on the server. For instance when the current playing track changes is not a function of the Client but rather the Server, so the Client had to wait for the Server to notify it of a change.

This also used some unmanaged P/Invoke calls to obtain a list of network PCs, that a server could be picked from.



Media Library

The same as the Server app



  1. Hi Sacha Barber
    First I have to say that you are a great developer I admire your work and ideas and think you are some kind of a genius.
    I was trying to create an application similar to the ReMP3 application but for videos than I sow your application on the code project website.
    I really need to have a look at the code it will be a great help to me.
    Again I have to say that I really admire all of your Ideas and glad to know people like you exists in this world

    Please forgive my bad English.

    Best regards
    M Eissa


  2. Dear Sacha Barber;
    Can You Please please send to me the this project in zipped files (the solutions not the MSI installer)


  3. Hi Man
    i think u are a very good developer ,i found u in codeproject with this application ,and i search for the source code but nothing i found ,please let us know about inside the application I mean the source code,
    it can be very usefull for us , i think that u dont disappoint your fans. thank u
    with best regards


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s