Audi Forum banner
1 - 12 of 12 Posts

·
Registered
Joined
·
103 Posts
Discussion Starter · #1 ·
Now that my RNS-E is happily doing the business in my A3, I'm keen to pursue an idea I've had regarding the transfer of MP3s to SD cards in the RNS-E and wanted to get some more ideas from you guys on this forum.

I work as a software developer and away from the office have been playing around with some code that rips tracks from audio CDs and codes them into MP3s. I built a skin for Windows Media Player over summer (see this post here) and am working on a similar kind of Windows user interface (i.e. a picture of the RNS-E on your screen) from which you can create MP3s from CDs, and then transfer them to SD cards using a card reader all from one application.

The clever bit would be to manage the MP3s properly on the SD card to work best with the RNS-E. This means creating m3u playlists, renaming tracks to appear in the order you like (a common problem), shortening names and so on. There would also be other tools to do things like format your card into FAT32, ensure you don't add more than 512 tracks (the RNS-E) limit and whatever else we'd need.

I'd also like to add a quick, one-touch ripping process, where you plug in your SD card reader and insert an audio CD, and the application rips the whole album to a collection of MP3s, prepares them into a playlist and copies the lot to your SD card.

It's early days right now - I can't even think of a decent name for this application - but if anyone has any ideas, thoughts or comments please post them. If this ever comes together, I will of course make it downloadable free of charge! I've got a couple of screens done to show what it might look like:





Any comments or ideas would be welcomed!
 

·
Registered
Joined
·
70 Posts
What langauge/platform would you build it on? I would definitely like an application like this, and I have some experience with building windows apps using the .NET Framework.
 

·
Registered
Joined
·
103 Posts
Discussion Starter · #3 ·
ktkemp said:
What langauge/platform would you build it on? I would definitely like an application like this, and I have some experience with building windows apps using the .NET Framework.
The code I have so far is within VB6, and ideally I'd stick with this because it will run all on Windows variants thus reaching a wider audience. I develop in .NET at work but using this means that every user will need XP or 2k3 Server.

It might be worth looking into what .NET can offer in terms of MP3 programming though; VB6 is limited in this respect and I have to rely on DLLs put together by enthusiasts.
 

·
Registered
Joined
·
70 Posts
There is a .NET runtime available for every MSFT OS since Win 98, and MONO allows .NET apps to run under Linux, so .NET would actually give you a much larger possible user base than VB6.

I have no idea about the MP3 libraries, though; but any library you use in VB6 you should be able to use in .NET, so there certainly shouldn't be fewer choices.
 

·
Registered
Joined
·
103 Posts
Discussion Starter · #5 ·
Good point. If this idea comes together it could certainly be written in .NET. I'm using the LAME MP3 libraries so compatibility won't be an issue.

At this stage I'm just trying to gauge interest in this idea; it's certainly an application I would use anyway, but if it was just for me it would probably take ages to finish. :roll:
 

·
Premium Member
Joined
·
11,350 Posts
I'd certainly be interested in this idea - sounds easier than what I do at the moment, which is to rip the CDs using Windows Media Player and then create a playlist using Playlist Creator 3.

Being able to do it all in one application would be great.

Make sure it's Windows Vista ready, my step Mother is already running Windows Vista and I guess many of us will be early in 2007.
 

·
Registered
Joined
·
70 Posts
This is definitely an app I would be interested in. If you need any help just let me know, I'd certainly be willing to pitch in to get something like this up and running.
 

·
Registered
Joined
·
55 Posts
I've actually already written something similar, at least as an engine, over the Thanksgiving break. It doesn't rip the songs from CD, but it does take a source directory (which can contain subdirectories) and finds all MP3s under that directory, then reads the ID3 info, degrading from ID3v2 to ID3v1 and ultimately to regular expression parsing of the filename to determine as much as it can about the file in terms of artist, album, song title, track #, etc.

With all of that computed, it copies the MP3s to a destination directory (which can be an SD card of course), organizing them into subdirectories alphabetically by artist name with a configurable maximum number of entries per directory. The subdirectories are named as "Artist1 - ArtistN" where those are the first and last artists in the directory respectively. The artist names are compared and the directories created stripping any leading articles ("A", "An", or "The") so that you find "The Police" under "P", not under "T". Additionally if a given artist has a configurable number of songs then a distinct subdirectory is allocated for that artist individually. If this causes a peer subdirectory to drop below a low watermark of entries, it's joined into its other adjacent peer subdirectory. Also it won't ever split an artist across subdirectories.

So basically if you had configured for no more than ten songs ideally, but no less than three, you wanted any artist with more than five songs to get their own directory, and you had the following:

Peter Gabriel x 4
Pixies x 4
Pogues x 3
The Police x 10
Ramones x 4
The Rolling Stones x 3

you would get the following directory structure on the destination:

Peter Gabriel - Pogues
Police
Ramones - Rolling Stones

It also creates an All.m3u with all of the files included and a configurable number of RandomX.m3u with randomized ordering to overcome the bug that existed until the most recent firmware.

Anyway, I still need to build a UI on this, but that should go pretty quickly. I've already set up the engine to fire events when just about everything happens, so the engine and the UI should be nice and decoupled from one another while still providing a decent level of configurability and feedback. It's written in Java so it should run anywhere.

I'm not quite ready to post this up, but I imagine another couple of days of work and I could if anyone is interested...

Scott
 

·
Registered
Joined
·
103 Posts
Discussion Starter · #9 ·
Sounds good Scott! Exactly the kind of thing I was thinking of. Once I've refined my CD ripping and MP3 encoding code, you might want to take a look at the source to see if you could add it to yours.

ktkemp, I'll plough on with what I have now in VB6, and if this is successful, we can look at extending it into a .NET app. Do you use C# or VB.NET, or something else?
 

·
Registered
Joined
·
55 Posts
For this project I'm using Java. I've developed in most languages/environments over the years, but these days I'm most at home (and productive) in Java with IntelliJ IDEA. There were some decent class libraries already out there for reading ID3 info and such, so I just went that route. Wouldn't surprise me if there were also libraries for pulling raw audio data and converting it into MP3, i.e., ripping CD audio, but that's not really my primary interest here since I've already ripped my music and just want to organize it for playback on the RNS-E. I'll get mine finished up sometime over the holidays or so and post back up, then we can see if we can perhaps have an integration between the two pieces. Worst case scenario they could share a source directory structure and one could launch the other.
 

·
Registered
Joined
·
70 Posts
I generally use C# these days, but I have a fair amount of experience in VB6 from past work as well.

I've done some Googling, and other than commercial libraries that do CD ripping and MP3 encoding (and cost about $100 per developer) LAME seems to be the best of what's out there, so you're good in that respect.
 

·
Registered
Joined
·
103 Posts
Discussion Starter · #12 ·
Yes, the LAME codecs are well-respected, are free to use, and it just so happens I found some VB6 code that interfaces to them. This all started when I tried to find some free MP3 ActiveX controls to play with, but they all had to be purchased, so I looked for some source code instead.

I also located a Win32 DLL called CDRip.dll which manages the audio CD, including retrieving the tracks ready for ripping.

I've got time off over the Xmas break and hope to get stuck into this a bit more. My aim is to get something very basic working and then we can look at extending it, perhaps with a rewrite in C#, and consider some of Scott's Java code too.
 
1 - 12 of 12 Posts
Top