Recording NLS-format cassettes

T. Joseph CARTER knghtbrd at
Mon Apr 17 05:31:07 UTC 2006

I have piles of NLS-format cassettes lying around, and I'd like to archive
them digitally.  Given that NLS still uses these silly things for new
books today, and that a basic MP3 player is both cheaper and smaller than
any portable NLS cassette player, I thought someone might have a good
answer to the question: how does one effectively record these things to
digital format?

If nobody has solved this problem yet, let's examine the format of these
things a moment..  A typical stereo cassette tape plays at 1 7/8 inches
per second and has four tracks.  When set on a table with side A facing
up, the tracks are left and right for side A, then right and left for side
B, obviously "reversed" if we're starting from the beginning of the tape.

NLS cassettes differ from this format, as I understand it, in the
following ways:

 - They play at half speed
 - Sides 1 and 2 are the left channels of sides A and B, as you'd expect
 - Side 3 is the right channel of, strangely enough, the B side
 - Side 4 is the right channel of the A side
 - There is a small amount of background crosstalk on most NLS tapes

This means if you were to play a NLS cassette in a standard stereo tape
player (amusingly, I currently don't actually HAVE a standard tape player
to test this), you'd get double-speed playback of two tracks of audio at
once, one forward in your left ear (side 1) and one reverse in your right
(side 4).

Scripting this should not be impossible, though I don't know what I'd use
immediately to do it.  Two passes per cassette are required, however with
a standard stereo tape player you can do it in 1/4 the time it would take
to play the tape using a NLS player.  Less if you have a way to accurately
play back the cassette at 2 or 4 times normal speed and a suitable sound

The process I envision is something like the script abcde, but a little
more complex because of the manual control of of the player:

 - Fill in a name and an author (I need just name, but whatever)
 - Prompt user for first tape, side A
 - User tells program to start and presses play
 - User tells program it's done with side A
 - Prompt user for side B
 - User tells program to start and presses play
 - User tells program it's done with side B
 - Prompt for more cassettes

That just gets the audio into the system, in a very unfriendly manner.
Honestly, that part is easy.  The hard part is processing the data.  Let
us assume that files are track_a.wav, track_b.wav, and that there is only
one cassette (since I have only one recording that goes onto a second
tape).  What needs to be done is this:

 - Extract side_01.wav (left channel of track_a.wav)
 - Extract side_02.wav (left channel of track_b.wav)
 - Extract side_03.wav (right channel of track_b.wav)
 - Extract side_04.wav (right channel of track_a.wav)
 - Reverse the audio for side_03 and 04
 - Slow audio down to half speed (ie, double the sample rate)
 - Trim audio files down to the part that contains actual audio
 - (Maybe) Apply some filter to remove tape hiss and crosstalk
 - (Wishful thinking) Find tone index markers and break tracks up at them

Having these things broken up into tracks and possibly into indexed bits,
in wav format, at the proper speed, it's trivial to archive them in some
format, format them as DAISY audio, whatever.

Is this a problem someone else has solved?  RFB&D is moving everything to
digital on their own, and NLS stuff probably isn't actually legal to copy
in this manner (so if you do that, don't tell me about it), but I've got
boxes of C-60 and C-90 tapes filled up with stuff that's getting old and
I'd rather not see lost to the ages.

"We are what we repeatedly do.  Excellence, therefore, is not an act,
but a habit."
	-- Aristotle

More information about the Blinux-list mailing list