* Recording NLS-format cassettes
@ T. Joseph CARTER
` Geoff Shang
0 siblings, 1 reply; 2+ messages in thread
From: T. Joseph CARTER @ UTC (permalink / raw)
To: blinux-list
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
hardware.
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
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Recording NLS-format cassettes
Recording NLS-format cassettes T. Joseph CARTER
@ ` Geoff Shang
0 siblings, 0 replies; 2+ messages in thread
From: Geoff Shang @ UTC (permalink / raw)
To: Linux for blind general discussion
Hi,
sox is your friend. It can be used to do pretty much all of this.
When I've done this, I've recorded the audio in at 44.1kHz 16-bit stereo,
then resampled down to 22.05kHz to halve the speed. If your device has
some aliasing when playing 22.05kHz material, you could always use sox to
resample back up to 44.1kHz, but use the resample effect or something else
more complex, not the simple rate conversion as it will leave these
aliasing effects in place.
But I'm getting ahead of myself.
First, the side-splitting. there's a few ways you can do this:
1. Use the avg or pick effects in sox. The version of sox you have will
determine which of these effects actually works for you. I've had problems
with both in various versions of sox, so have an experiment, but one of
them should work.
2. Alternatively, if you use ALSA, I know that arecord used at least to
have a feature where you could record the left in one channel and the right
in the other. hmmmm ok the help doesn't mention it, but it's the -I
option. Though it appears to only record in raw data, not as a wav file.
Still, sox could fix that if you wanted.
Having done that, you can use the reverse effect on the backwards files:
sox side3.wav side3forward.wav reverse
sox side4.wav side4forward.wav reverse
For trimming, I usually use soundgrab to edit manually, but you may be able
to get Sox's trim effect to work for you.
To halve the speed, you use one of the resampling methods. In my
experience, the quick and dirty rate effect is good enough for halving the
rate from 44.1kHz to 22.05kHz, but you should test it for yourself:
sox -r 22050 side1.wav side1slower.wav rate
or\
sox -r 22050 side2.wav side2slower.wav resample
There's about 4 different resample effects, check out the sox manpage for
the lowdown on all of them.
I usually also normalise so that I can set my levels at a safe level and
can have the files as loud as they can be without distorting. Best to do
this as your last step so that other effects don't cause the audio to
distort.
Example:
sox side1slower.wav -e stat -v
sox -v <output of previous comand> side1slower.wav side1louder.wav
1.0 is as loud as it can go, so if it's at 1.0 already, there's no point
and it may have in fact distorted somewhere.
Got no thoughts about detecting tones etc, I'd be interested to know if
anyone else has any.
For actually slicing up files, I've not used it, but qwavcut from the
Quelcomm tools may help if you can get something to detect these tones.
They're useful programmes to have anyway, I use qwavinfo and qwavjoin
regularly. qwavsilence may also help you:
http://www.etse.urv.es/~dmanye/quelcom/quelcom.html
Hope this all helps.
Geoff.
--
Geoff Shang <geoff@hitsandpieces.net>
Phone: +61-418-96-5590
MSN: geoff@acbradio.org
Make sure your E-mail can be read by everyone!
http://www.betips.net/etc/evilmail.html
Please avoid sending me Word or PowerPoint attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~ UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
Recording NLS-format cassettes T. Joseph CARTER
` Geoff Shang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).