[x]Blackmoor Vituperative

Friday, 2005-10-07

Q&A: How to digitize music

Filed under: Music — bblackmoor @ 12:32

I finally decided to digitize my huge CD collection, but I need a little guidance. What do you think is the best format to rip CDs (MP3, MP4, WAV, and so forth), what’s a reasonable capture setting (I don’t have a huge hard drive, so I can’t go too high end), and what software would you suggest for not only ripping, but organizing and playing my music?
— Edward H.

Digitizing your music collection is a multi-step process. Fortunately, the tools required for this (other than your computer itself) are free. These instructions assume that you are using Windows: if you are using Linux, you are smart enough to do this without my help, and if you are using an Apple, no amount of advice can help you.

Step one is to decide on the format. As you obviously know, there are several to choose from. I recommend MP3: it is widely supported (meaning that you will have a wide variety of players to choose from), and it provides excellent sound fidelity (for most styles of music) at 192 kbps. 192 kbps refers to the “bit rate” — the amount of data used to store the song. While it is possible to use a higher bit rate, most people won’t be able to hear the difference past 192 kbps. Incidentally, I suggest you avoid “VBR” (which stands for “variable bit rate”). While there’s nothing intrinsically wrong with a variable bit rate MP3, it tends to throw off the “elapsed time” indication in most MP3 players, which I find annoying.

STEP ONE: CDEX

Digitizing a music CD is referred to as “ripping”. This is pretty straightforward. Download and install the utility “CDex” from http://cdexos.sourceforge.net/. The first thing you will want to do after you install CDex is to configure the software.

First, the Generic settings (Options -> Settings -> Generic). The important settings here are “ID3 Tag Version”, “Track Nr Format”, and “Normalize”:

ID3 Tag Version: ID3 V1 & ID3 V2
Track Nr Format: 0 N
Normalize: **NOT** checked

Next you need to set up the Filename settings (Options -> Settings -> Filenames). The important settings here are “Filename Format”, “WAV -> MP3”, and “Recorded Tracks”. “Filename format” is a personal choice, but if you want to avoid name conflicts, you need to include the album name, the artist, and the track number, in addition to the song name. Setting this up now will save you grief later. The file paths should be the same for both “WAV -> MP3” and “Recorded Tracks”. Whatever path you select, create a “Raw” directory and store the ripped music files there, because you will be processing these further after they are digitized (I’ll cover that in a bit). Here are the setings I use:

Filename Format: %1\%2\%7_-_%4
WAV -> MP3: D:\Documents\Music\Raw\
Recorded Tracks: D:\Documents\Music\Raw\

The CD Drive settings (Options -> Settings -> CD Drive) will either be very easy or very difficult. If you are lucky, your CD drive will be supported and you’ll have no problems. If you do run into problems here, resolving them is beyond the scope of this Q&A: try asking for help on the CDex support forums. In any event, here are the important settings for this screen:

CD-ROM Drive Type: Generic (try the “Auto-Detect” button if “Generic” doesn’t work)
Ripping Method: Paranoia, Full
Select All CD Tracks: checked
Use CD-Text: checked
Lock CD During Extraction: checked

Next come the Encoder settings. This screen is where you set the quality of the digitized file. It is also possible to create a digitized file that you will not be able to play, so don’t fiddle around too much here unless you know what you are doing. Here are the settings I recommend (anything not listed should remain un-checked):

Thread Priority: Normal
Encoder: Lame MP3 Encoder (the exact version may vary)
Version: MPEG 1
Bitrate Min: 192 kbps
Mode: Stereo
Quality: High (q=2)
VBR Method: Disabled
Output Samplerate: 44100

We’re almost done. ext is the Local CDDB setting. This is where CDex stores song names and titles for the CDs you digitize. It doesn’t really matter what you select here (you can’t really break anything), but here are the settings I use:

CDDB Path: D:\Documents\Music\localcddb\
Windows-format CDDB files: checked
Store in local CDDB: checked
Use Long Directory Names: checked

Finally, set up your CDDB connection (Options -> Settings -> Remote CDDB). CDDB is an online database of song names and titles. By setting up CDDB in CDex, you will save a great deal of time typing in song names. You will still need to check the titles that CDDB returns, but that’s much easier than typing them all from scratch. Setting up CDDB is simply requires you to select a free CDDB server, and type in your email address, and checking “Auto connect to remote CDDB”.

Now that you have all of that set up, put in your music CD, make sure the song titles are correct, select all of the song titles (either with the keyboard or with the mouse — only the songs you select will be digitized), and hit function key 9 (you can also click the second icon from the top on the right-hand button bar, or you can select the menu item “Convert -> Extract CD track(s) to a compressed audio file”).

A few minutes later, you CD is digital. Now comes step two: post processing.

STEP TWO: MP3GAIN

You’ve noticed that not every CD is at the same volume, right? This isn’t a big deal with you are listing to one CD at a time, but when you set up your songs juke-box style (all good MP3 players permit this), you will wind up having to adjust the volume constantly. That’s where MP3Gain http://mp3gain.sourceforge.net/ comes in. Like CDex, MP3Gain is free (although donations are always appreciated).

MP3Gain analyzes mp3 files to determine how loud they sound to the human ear. It can then adjust the mp3 files so that they all have the same loudness without any quality loss. This way, you don’t have to keep reaching for the volume dial on your mp3 player every time it switches to a new song.

Once you are done digitizing all of your songs on any given day, close CDex and run MP3 Gain. First, configure a few settings (located under the “Options” menu item”). These options should be checked:

Options -> Add subfolders
Options -> Preserve file date/time
Options -> No check for Layer I or II
Options -> Don’t clip when doing Track Gain
Options -> Tags -> Ignore

These settings will cause you the least amount of headaches and permit MP3Gain to do its job as quickly as possible. The last two of those settings (“Don’t clip when doing Track Gain” and “Tags -> Ignore”) are particularly important, because they will prevent MP3Gain from accidentally corrupting your digitized files.

Next, set the “Normal” volume, in the little box just above the main file pane. The default of 89 dB is fine for most uses.

Now that the settings are configured, add the “Raw” folder (where you told CDex to store your digital files) to your list of selected song files, either by typing CTRL-D, clicking the second icon in the button bar, or selecting menu item “File -> Add Folder”. The file window will fill up with the songs you just digitized.

The next step is to simply apply the gain. This is done by selecting menu item “Modify Gain -> Apply Track Gain”, or typing CTRL-G. Note: you do NOT want to apply “album gain”, what you want is “track gain”.

Now go have a cup of coffee — this will take a while. If you have thousands of songs, like I do, it may take overnight. But once that’s done, you are almost ready to play your digitial music collection. Almost.

STEP THREE: BULK RENAME UTILITY

The last step is to make sure your song files are named consistently. Fortunately, this is the easiest step of all. First, install Bulk Rename Utility http://www.bulkrenameutility.co.uk/. Like the other software in this process, Bulk Rename Utility is free (although, as always, donations are appreciated).

If you install the version of Bulk Rename Utility which includes the “installer” program (which I recommend), it will create a context menu item, “Bulk Rename”. So simply navigate to the “Raw” directory where you have stored your digitial song files, right-click, and select “Bulk Rename”. The Bulk Rename Utility will open, with your Raw directory pre-selected.

Before you rename anything, you need to change two settings. First, in the menu bar, ensure that the setting “Options -> Auto-Select Entries” is checked. Next, toward the bottom of the Bulk Rename Utility screen, there is a checkbox labeled “Recursive”. Check this checkbox. The file pane above will then refresh with all of the files under your “Raw” directory.

Now that the files are displayed and selected, you can rename them. In the “Repl. (3)” box, type a single space in the text box labeled “Replace”. Then, type a single underscore in the textbox labeled “With”. Then click the “Rename” button, click “OK” on the warning that pops up, and you are done.

What you just did is replace all spaces with underscores. This will save you a great deal of trouble later (for example, if you ever set up a web jukebox on your home server). It may seem a nuisance, but trust me, you are avoiding a host of headaches by doing this now.

STEP FOUR: PLAYING THE SONGS

Because you selected MP3 as the file format, you have a wide variety of players to choose from. For playing songs on your own computer, nothing beats WinAmp http://www.winamp.com/ (free, of course). However, you don’t need to stop there. You can set up a web server and connect it to your home stereo, and then use a program like mp3act http://www.mp3act.net/ (again, free) to access your home jukebox from any networked computer. Finally, you can carry your music with you on a portable MP3 player, such as an iPod running the open source Rockbox firmware.

Fantasmo countdown

Filed under: Movies — bblackmoor @ 11:01

In less than 24 hours the Chesapeake Central Library will kick off the second annual Monsterfest convention, a day-long celebration of horror films and literature. This year’s fest is dedicated to celebrating Dr. Madblood’s 30th(!) anniversary, so Madblood fans are in for a real treat. There will also be authors, collectible vendors, displays, and a full day of programming including:

9:00 AM – Horror movie trailers
9:30 AM – Mike Joyner speaks about “Dark Shadows”
10:00 AM – World premiere of the new Doctor Madblood documentary
11:30 AM – Chris Curry talk on the films of H.G. Lewis
12:00 PM – Horror costume and Doctor Madblood look-alike contests
1:00 PM – John Kenneth Muir panel on 80’s horror films
2:00 PM – Inside the Actor’s Studio with Doctor Madblood’s Cast and Crew
8:00 PM – Fantasmo Cult Cinema Explosion: Monsterfest Horrorthon Edition

If you love monsters/horror films, be sure not to miss out! Also, don’t forget Fantasmo will be an all-nighter and the doors will be locked at 10:00! See you there!!

Thursday, 2005-10-06

R.I.P. Palm

Filed under: Technology — bblackmoor @ 16:15

Do you hear that sound? That’s the sound of Palm committing suicide. After years of poor decisions and marketing mis-steps, Palm is putting the barrel to its temple and telling Microsoft to pull the trigger.

It’s a sad day, indeed.

A matter of life and death

Filed under: Society,Technology — bblackmoor @ 11:53

I recently applied for a Business Systems Analyst position with United Network For Organ Sharing (UNOS). This is the organization that facilitates every organ transplant performed in the United States. Using technology to save lives sounded like a great use of my expertise, so I even lowered my salary requirements — I may be a mercenary, but I’m a mercenary with a conscience.

Part of the application involved a “writing sample”. Here’s mine:

I have been working in the arena of web development since 1993, primarily in Perl and PHP, using MySQL and PostgreSQL on the back end. Since I have been doing web development since the early 1990s, it goes without saying that I am an expert at HTML, XHTML, CSS, JavaScript, and Section 508 compliance. Over the course of the last decade I have done everything from graphic design and web-based application development to systems analysis and information architecture. Roughly half of my experience has been in the realm of Systems Analysis: gathering requirements, meeting with stakeholders, prioritizing feature requests, researching available technologies for feasibility, and so forth. In the majority of my projects, these tasks were simply part of the development process.

The details of that process vary depending on the client and the project, but each project has certain steps in common. For example, when developing the Internet and intranet sites for the US Coast Guard Naval Engineering Division, my first step was to meet with representatives from each department and gain an understanding of their existing business processes. Once I understand the client’s current processes and needs, I can begin evaluating technologies to create a design plan. Sometimes the technology that I would prefer to use is unavailable, which poses challenges. In the case of the Coast Guard project, their web server was managed by individuals with no experience in server administration. As a result, they elected to use Windows NT as a web server, and the only server-side scripting engine available was Active Server Pages (ASP), a language based on Microsoft’s Visual Basic: in other words, it was the worst possible server environment in terms of both its reliability and its functionality. Meeting the needs of the client under such conditions required creativity and flexibility on my part, but I was up to the challenge, and the Naval Engineering Division still uses the Internet site that I developed for them in 1999.

Fortunately, most of my projects have not labored under such limitations. The bulk of my programming experience is with the Linux, Apache, Perl/PHP, MySQL/PostgreSQL environment stack, and this is my preferred development environment. For example, in my project designing the Commercial Fishing License System for the Virginia Marine Resources Commission, I am leveraging these reliable, open source solutions to create a scalable, affordable system that will meet the client’s needs without the onerous burden of perennial licensing costs and weekly server reboots.

Of course, designing and developing the system is only part of a successful project. Another task I have always enjoyed is the documentation and training involved. As a contractor, I see myself as the gunslinger who comes into the town, cleans it up, and then moves on. In order for this scenario to play out as intended, I have to completely document the project and train the users so that the client can make the best use of my work once I am gone. For example, at Joint Forces Command a large portion of my time was spent in direct support of the content authors who create learning modules for the Partnership For Peace Learning Management System. This entailed answering their questions and documenting the answers so that the information would persist after I departed. As a part of this project, I established mailing lists, discussion forums, and issue tracking tools. In one form or another, I do this for every project.

Aside from the development process, which differs in the details but otherwise is similar from project to project, there is another trait which unifies the majority of my development experience: I have been fortunate to have worked for clients who make the world a better place. The Coast Guard saves lives on a daily basis, and I helped them to do their job. The Partnership For Peace is helping former Soviet satellite countries join the Western world and cooperate in peacetime crisis management missions, and I made a real difference in their ability to carry out that objective. I have always felt that the core responsibility of my job is to make other people’s jobs easier, and it pleases me that I can be proud of the jobs that I have helped other people do.

The response?

My client reviewed your resume and would like to locate someone less technical and more in love with Microsoft since they are a Microsoft shop.

People’s lives are at stake, and they’re a “Microsoft shop”? That has to be the saddest thing I have heard all week.

Apache’s Beehive 1.0 generates buzz

Filed under: Programming — bblackmoor @ 11:28

The Apache Software Foundation has announced the release of Beehive 1.0, its component toolkit for J2EE and Struts.
advertisement

Beehive is aimed at making it easier to develop Web applications in Java by reducing the amount of coding needed to produce a working application.

The open-source project was originally spun out of BEA’s WebLogic Workshop. The company donated the code to the Apache Incubator project in May 2004, and Beehive became a top-level ASF project in July of this year. Eddie O’Neil, Beehive vice president, told Builder UK that the developers were pleased with the progress the project has made. “We’re very excited about it. It’s taken a bit, but we’re excited to get it done.”

Beehive consists of three main parts: NetUI, Controls and Web Service Metadata (WSM). NetUI is an MVC framework built on top of Apache Struts, adding a set of JSP tags for building HTML pages, and more complex UI controls such as data grids. Controls are back-end J2EE classes aimed at providing a consistent interface to different data sources and other resources. Both of these rely heavily on metadata, and conform to JSR 175, the Java Metadata standard.

(from TechRepublic, Apache’s Beehive 1.0 generates buzz)

Site Statistics update

Filed under: General — bblackmoor @ 11:08

I have updated the site statistics, featuring the IP addresses of idiot hackers from around the world and the search terms that lead people here. The Fantanas are still beating Windows by a healthy margin.

« Previous Page