Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / desktop / WinForms

BSEtunes

4.67/5 (11 votes)
24 Apr 2010CPOL4 min read 66K   4.3K  
BSEtunes is a MySQL based, full manageable, networkable single or multiuser jukebox application

BSEtunes1.jpg

Introduction

BSEtunes is a MySQL based, full manageable, networkable single or multiuser jukebox application. With BSEtunes, the user could listen to single- or multi selected songs, random songs, complete albums, songs in playlists, etc. You could filter the random playback or create unlimited numbers of playlists. For selections, drag the content from one panel to another. BSEtunes also contains an integrated WPF coverflow clone.

What you see at the BSEtunes client will be managed by integrated tools in BSEtunes or BSEadmin, which is the integrated tool for data aquisition. Optically BSEtunes is a mixture between the Microsoft Media Player and iTunes, the controls are based on the BSE.Windows.Forms controls. The program uses the WMPlib but may work with the Winamp player (if installed) also. Until the launch of WPF, BSEtunes worked even on Windows 2000.

When you use this application, you would'nt need any other audio application. The included BSEadmin tool could rip CDs, write the ID3 tags and gets album information from freeDB database.

Background

I started developing this application in the year 2002 for managing my LPs and CDs, for learning C# and for testing several .NET features and namespaces. Always when I saw a new .NET feature, I've considered how to do something with it in BSEtunes.

It was my intention only to use free- or open source components. For this reason, BSEtunes is based on MySQL.

The code in the application grew over the years. Some code parts are better and some code parts aren't so well implemented. Meanwhile, the application has a high complexity and works so stable that other users can participate in it. So take the code and do whatever you want with it.

Features

Features of BSEtunes

  • Filtering the random output:

    You could play random songs over all the audio file content or you can filter it by genre or year.

    Filtering the output

  • Playlists:

    You could have unlimited number of playlists where you could drag in the songs from all the other panels.

    Managing playlists

  • Export to audioplayers that work as removable drives:

    For exporting content to an audioplayer, drag in the songs from all the panels.

    audioplayer export

  • Coverflow:

    You could browse through your albums by using the WPF coverflow window.

    Coverflow

  • Fulltext search through the content.
  • and much more...

Features of BSEadmin

BSEadmin is the main window for managing all your content.

BSEadmin

In BSEadmin, you could manage all your audio content. For this, BSEadmin contains several forms and dialogs.

forms in BSEadmin

You could rip your CDs (thanks Idael Cardoso)...

For ripping, select the tracks in the upper list and drag them into the lower list.

Ripper in BSEadmin

...or you could import your audio content from elsewhere.

For importing, select the tracks in the upper list and drag them into the lower list.

Import of audio content

You could read out the content of a CS by a freeDB request.

freeDB request

General Features

For changing the database host or the network share that contains the audio files, double click into the entry in the options form and change the value.

BSE options

For system information, there several statistic dialogs are integrated.

Statistics in BSE

Architecture

BSEtunes could work as a single computer system and also has the opportunity to grow up to a multiuser client server system. The database and file server could be a Windows- or Linux computer respectively server.

BSEtunes in a lan environment

If you have a new disk for your audio content, copy the files to this new disk and change the path to it in the options dialog. The database references to the files are relative.

Example

If there is a song located at "C:\songs\interpret\album\song1.mp3", only the path part "interpret\album\song1.mp3" is stored in the database. The value for "C:\songs" is stored in the options.

Needed Downloads

Using the Source

After installation of the MySQL Connector, you should be able to build the solution. The additional needed DLLs are located in subdirectories named DLL and lame. Perhaps you should adapt the bat files in the BSE.Platten.Tunes and BSE.Platten.Admin.WinApp projects.

The installation of the MySQL database server is described in the MySQL.chm file.

ToDos

  • Globalization. Currently the application supports only the German language
  • A Wizard for the import of existing music libraries
  • Writing a user manual ;-)
  • A graphic equalizer
  • A user administration in a multiuser environment
  • An integrated CD player
  • And much more...

Thanks

  • Idael Cardoso for the C# MP3 Compressor
  • mav.northwind for the In-place editing of ListView
  • Arik Poznanski for C# does Shell
  • Alvaro Mendez for Read/Write XML files, Config files, INI files, or the Registry
  • Alex Dobusch and Berhard Jenny for testing and so many ideas
  • and all the others whose names I've unfortunately forgotten

Changes

  • 04/24/2010 Now in German and English

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)