News:

Function Finder  Find all the functions within source code files

Main Menu

Wave File Splitter & Song Cataloger

Started by kevin, February 28, 2010, 09:39:42 AM

Previous topic - Next topic

kevin

 Wave File Splitter

  Recently I've had a mountain of the old records (33,45 & 78's) to sample for my family.   Doing the 33's is certainly the easiest (since they're 20->30 minutes normally), as you can just record each side in one hit.  But then you end up with all the songs bound together in one file.  Which is not great if your intended to put this stuff on CD at some point.   After looking around a various options, it just seemed easier to build a program explicitly for the task.    So ultimately it'll cut the tracks out,  then name them tracks for me from the little custom database.    
 
  So far the program just spools through the wave file. Initially i was a tad concerned this might be a pretty slow process given the size of these files, Which are generally around 250 Meg  (since they're saved as raw 16bit stereo wav's).  But it seems to handle it in around the 10 second mark for the scanning.  The ripping will take a little longer, given we're talking about read/writing that same 240 odd meg back to disc..  But if all goes well it should turn out to be a lot easier than doing by hand.  


  The picture bellow just shows the wave being rendering to the sceen, so I cna get some idea of where it is..


kevin

#1
 Wave File Splitter V0.02

   This little tonka toy is progressing nicely I guess, while it's not much to look at now (some text on the screen atm),  the current version can indeed scan through the massive wave files and export what it thinks are the tracks.   Obviously, since it's basically guessing at what the stuff between the track gaps is.  It can certainly make mistakes.   So i'll probably end up adding a little preview option, prior to exporting.   Although If you gave it a bit more info about the album up front (number of tracks to expect, shortest track size, etc   ), it could possible weed those out itself through better logic.  

   The speed of the app is certainly a bit slowler than it now it's actually searching the file,rather than skimming through it.  Even so, to scan a 230meg wave and split it into the 5 tracks takes about 2 and 1/2 minutes.   Sure beats doing it by hand :)  - It just needs a bit more testing...  



kevin


Wave File Splitter V0.03

       OK, picking up where i left off yesterday,  the app can now scan the source wav, split it and now includes a simple user verification  screen.  The verity screen just lets you listen to the exported files.  The playback is represented as simple progress bar (at this point),  you can change positions by clicking the progress bar.   Allowing to  really quickly test the start/end of the track are in the correct positions.   

       The app basically does all that's requires now, so all that's really needed now (apart from the more alpha testing) is a bit of a GUI, so the program can stand alone.   You see,  Hopefully I'll be able to just give this to the rellies and they can do some work themselves..     


 

kevin

#3
 Song Cataloger

  After two months of transferring my families collection of albums and cassettes to the PC,  we've ended up with a huge amount of data.  To help deal with it all, I wanted to knock up a little app that would let the user browse the contents of the collection.   At this point the app runs through the various folders and collects the information about the tracks / albums and creates a big stock pile.   The program gets this information from the either a track list file in the recordings folder, or from the track itself.    

  At this point, all it can really do is let the user browse what's in the collection by author.    Which is handy when weeding out the mistakes that have surely creep in during recording and track list entering.   There's a few more of those to sort out, but all in all it forefills it's current design.  



kevin

#4
    The cataloging and splitting programs are obviously all parts of the one big side audio project ATM.   My objective is to simply get them to a the point where they can be used to manage and export tracks from the collection directly to CD/DVD.   Clearly I don't have the time to write my own CD burning application,  so obviously the best solution would be to use a 3rd party application for this part of the job.   In particular something that allows script or command line access.     Currently I'm looking at program called http://www.commandburner.com/ for this very purpose.   With any luck,  I'll be able to get the app to build CD's directly from the raw wav files, or possibly build compilations from the cataloger...   Which would be handy since there's a lot of mixed LP's in the collection, so there's tracks by key artists spread all over the place.   I certainly like the idea of being able to select and artist and then select burn CD..  

   While here we're looking at transferring old Tapes & LP's to CD,  but the real use of these app's for me will be to catalog/convert hundreds of personal/band recordings,  from the various bands i've been involved in over the years.   While they're not particularly valuable, it's irreplaceable to me.   This is one of those jobs that has been put off for years now..  Due to some other strange ongoing programming commitments  :)  


   Other FREE burning CD/DVD app's
   http://www.student.tugraz.at/thomas.plank/  
    http://www.cdburnerxp.se/  

  Other commercial app's like Nero have a command line support by the looks of things, so getting it to burn a disc shouldn't be that much of an issue..




Wave File Splitter V0.04 and beyond

    After doing some more real world testing on the wave splitter app, the current algorithm seems to work pretty really well some certain types of audio recordings (Tapes mainly), but not so well with others such as crackly old LP's.    After giving this a bit more thought since writing the first version of the analyzer, I and see a better solution on the horizon.  Just have to implement it    



Big C.


kevin

#6
 Wave File Splitter V0.05/V0.06 - Filtered Sample Scaling


   For the best part of a year,  we've been transferring a lot of our families tape / record media to the computer. The splitter was originally written to aid in cutting up the tracks and building them into CD's / MP3 lists.   The previous versions of splitter works well enough with recordings of old tapes, as they tend not to be too noisy between tracks.   But anything that's got lots of pop and crackles and it's painful trying to tweak the settings.  

   In those situations, it's easier to page through the raw sample and visually mark where you want to split it.   Sounds easy enough, until you realize were dealing with 100's of megs of continuous raw sample data.  So while the process is fairly trivial,  it's a real brute force operation.   So what i've been working on today, is building a version of the scanner that loads the data and shows a scaled representation from any point within the data stream.  

  The picture bellows shows a representation of 1024 scaled/filtered seconds from the 240 megs sample data.   Visually it's easy to see where the tracks start/end.    I'm on a bit of time crunch with this one as it needs to be running in a day, need to use it to build some disc's for the weekend..



Wave File Splitter V0.05/V0.06 - Flexi Interface

   Edit: (a few hours later) Still working away on this tool, decided that it's easiest to move the test into a flexi framework, as some interface stuff is required.   Which helps kills two birds with one stone,  it makes building the app easier, and it gives me more time to test flexi in some real world situations.  Already found a few gotcha with the event system. So they'll need tending to.


 

kevin


Wave File Splitter V0.07 - Import /Splitting and Exporting

   Today's session has been all about getting the core functionality of the application up and working.   While it might not look like much now (and  probably never will)  it can currently do it's job.   Which is to allow the user to load the track,  cut it up and auto export the split chunks as tracks.   Which is all running. 

   Actually using it to split, turns out to be remarkable straight forward. The app just wants the user to insert the cut points between the songs. So all you do is scrolling left/right in the wave display and click on any silence/quiet bits.   it plays that section, allowing you to audible validate what it actually is.  Dead simple and just dead easy to use.   

   In the picture bellow i'm  cutting an old the DIO album "Dream evil" from cassette.   While the automatic splitter handles this easily, it turns out it's just as easy to do it manually which is equally the case for recordings with more noise.   All that's left to do is get it to export a build CD script, removing another hands on step from the process.



   

kevin

#8
Wave File Splitter V0.09 - Automatic Song Namer (from track listing file)

  While recording, we've also made listings of the tracks that are on each of record/tapes for the simple cataloger program (above).    The track listings are just text files, like the following:    



Artist: Glen Campbell
Title: An Album Of Glen Campbell Favourites
=======================================

Side 1

       Try A Little Kindness
       It's A Sin When You Love Somebody
       Gentle On My Mind
       Houston (I'm Coming To See You)
       That Last Thing On My Mind
       Galveston
       Dream Baby (How Long Must I Dream)
       Help Me Make It Through The Night    
   

Side 2

       Bonaparte's Retreat
       Rose Garden
       By The Time I Get To Phoenix
       I Knew Jesus (Before He Was A Star)
       It's Only Make Believe
       Wichita Lineman
       Wherefore And Why
       I Will Never Pass This Way Again


  Since the track lists are already made, then getting the splitter to find the names of the tracks is fairly straight forward.  It's not all roses though, as some recordings have both sides compiled into one big sample, while others are split into two (Side1.wav Side2.wav).     The naming only supports the latter layout at this point.   But it would seem that most on them are saved like that.   Even so there still needs to way of tagging a chunk as ignore so any long silences can be removed, without breaking the song order.    


   

kevin


Wave File Splitter V0.11 - Import, Splitting and CD burning Running

     Only had a few limited sessions for code lately, but the functionality of this tool is coming along nicely.  Today it's at a point where you can import the wave files / mark out the split points (from any side) then have it build the CD for you.      The burning is not done by PB, this task is passed out to a disc builder called CdBurnerXP.   But the ripper handles all the setup work.  So you just press burn CD and insert a new  disc, the builder takes care of recreating the track order and track info.   

     The app works around the concept of albums,  which is how all the recordings are stored.  So each album is stored in it's own folder, the folder contains the wav files of raw audio data (both sides), the track listing file and in some cases cover art.    The program doesn't build any of that,  it's just how it was arranged when they were recorded.  As such, i'm not too sure this will be of much use to anybody else in it's present state.   While it's working, it's not pretty... but ya get that... :)




kevin


Wave File Splitter V0.15 - Support For Ignore Silent Sections

     Been using the splitter a lot over the past couple of days, not building cd's but marking the split points in the album collection.  Which turns out to be pretty straight forward in most cases,  theres the odd time when you really need to trim up tracks though, so i've changed the splitter to support ignorable sections,  and the other thing was that it could hard knowing just how many tracks are on some albums, so now lists the tracks on current side from the track listing.   Small changes, but for the better. 

     As for a release,  i'm perfectly happy with it as is really, to build a release version would mean cleaning it up further, not too sure I can be bothered at the moment.  It does what i need it do..   

 

kevin

#11
 Album Cover Scans / Album Cover photos

  Doing another round of the cassette and  album splitting, having a few drama's with the cover art.   Cassettes and Smaller LP's are easy to scan, but for large 33's my scanner is just too small.   So been looking for the sites that have such information available.  Found a few, but it's not as easy as i'd expected.  But ya get that.

  So the following are  just links i've found useful

   http://www.vinylrecords.ch/H/HE/Hear-Aid/hearn-aid.htm
   http://www.albumartexchange.com/covers.php?sort=4&q=HEar%27n+Aid&fltr=1&bgc=&page=
        http://www.discogs.com/Magnum-Kingdom-Of-Madness/master/77824


baggey

Hi Kevin, Are you likely to release the source code for the wave file splitter?

Kind regards Baggey
Jesus was only famous because of his dad