|
![]() |
When the signal is saved to a tape, due to the characteristics of the recording hardware, all the sharp edges are smoothed, resulting a more or less ordinary sine wave. On good high-frequency performance tapes, such as metal and CrO2 tapes, the signals are often found with sharp peaks on the front edge. Those peaks usually make problems during the loading, and thus have to be eliminated by a selective filter.
Another, more often cause of loading errors, is the loss of the signal intensity, often followed by the impulse merging, caused by the tape aging. This means that the impulse for a "zero" (which due to its shorter duration also has a lower amplitude), is melted to the first following signal. TapeFix easily solves this problem by using its specially developed methods of digital filtering.
Short gaps and peaks caused by the tape deformations -- normally impossible to handle -- will be successfully smoothed.
Frequency deviation is also one of the most common deviations caused by using a bad tape recorder. The standard loading routine is very non-tolerant to any frequency variation, but TapeFix can be set to accept any frequency range you want!
High noise level, a very common cause of the "Tape loading error" found on cheap tapes or cheap tape recorders, will also be easily overridden.
There are several mechanisms that the TapeFix uses to decipher the recordings. The simplest one is the frequency tolerance boundaries, that can be set to almost any value. The frequencies can be given in two ways: either by specifying the values given in Hz, or by specifying the period length given in samples.
There are also two digital filters, specially modified for this purpose; A filter called deriving filter eliminates all the low frequency noises, and separates merged signals. It is meant to be used only once -- usually in the first pass of the processing.
A modified version of the Butterworth 1st order low-pass filter solves all the problems caused by noise and signals shape deformations. It will also smooth up all the shorter gaps and peaks in the signal.
The parameter of the Butterworth filter is the LOWPASS cutoff frequency. By default, it is set to 2100 Hz and it should do for most of the cases. In case of a sharp, edgy signal, even 2 or 3 passes of the low-pass filter should be performed!
Here is an example that illustrates how TapeFix copes with one very
damaged recording.
The visible bit sequence is: 010001011110000000001
| |
| Original, damaged recording: A) Peak-noise, B) Merged impulses, C) Low signal level | |
| |
| After filtering: Noise removed, impulses separated, signal amplified; | |
| |
| Generated WAV sample; | |
| |
| Recovered sample after being saved back to tape! |
Now after you saw what the program does and how it works, it's time to see how to use it. The usage is basically very simple -- all you have to do is to sample the recording you want to recover and run the TapeFix with or without several switches. Someone will say that the user interface is a bit clumsy since it uses an Unix-like command line to pass all the parameters to the program, but the program itself is designed to be more like a tool oriented to the experienced users, rather then a user-friendly product for rookies. In fact, a friend of mine, who's an inveterate Unix-user, gets depressive if a program doesn't require at least a dozen of switches, and the TapeFix in most of the cases won't need any of them.
After the sample is filtered, the loading begins block by block. For each loaded block, an info-box is displayed, containing some basic information on the block such as block type, length, flag byte and its position in the sample. When the block is successfully loaded, its header-info box appears on the screen, containing all the basic information related to that block. If the checksum is valid, the box appears in blue and if not, the box appears in red.
Finally, a TAP file that is created, can be either loaded to the "Z80" emulator, or can be converted to a WAV or RAW sample using the included TAP2WAV and then played back to a tape. When playing the sample back to a tape, set TREBLE on your sound card to zero, to reduce the peaks on the first edge that will appear, due to the characteristics of the card.
Version 1.00 requires a WAV or RAW sample file for input. Using a good sample editor, record the whole program you would like to recover. The important thing is that it does not produce clicks and pauses on longer samples!
The recording has to be 16-bit due to the wider dynamic range, and stereo mode should be used only if the recording is very damaged and there is no other way to gain a satisfying result, since the processing of a stereo recording lasts twice as longer.
For the standard recordings, made on normal speed, sampling frequency of 11025 Hz should do just fine. Higher sampling frequency should be the last resort!
Speed-locked recordings should be sampled on higher frequencies, depending of the used speed (e.g., for 3000 bd use 22050 Hz sampling).
And there's one thing you should be aware of. When recording a sample, be sure not to put the volume level too high since otherwise your music card will clip the signal, which will corrupt the recording even more.
The allowed syntax is as follows:
TAPEFIX < sample > [TAPfile] [< INIfiles >] [LOGfile]
[< params >] > outfile
When starting the program, the name of the sample has to be specified in the command-line. E.g.:
tapefix sample.wav
This way, the processing will be done using the default parameter setting stored in the program itself, and those stored in TAPEFIX.INI file (if there is one). In the above example, the results will be stored in the SAMPLE.TAP file. This can be changed by giving another TAP file name in the command- line. E.g.:
tapefix sample.wav tape.tap
If there is an existing TAP file, it will be overwritten, unless you want to append the new data to its end, using the /APPEND switch. When /APPEND is set, a "+" sign appears to the right of the TAP file-name in the status-window. /NEW switch cancels this option.
In order to have better view on the processing, you can create a LOG file, where all the happenings, such as position of each byte and leader tracing are written to, line by line. The first number in each line specifies the position of the current event, given in samples. This number, when referring to a byte or a synchro impulse, specifies its END, not the beginning!
There is a lot of switches used to set the filter parameters, so an average user could get desperate on first sight! The good thing is that the default parameters will do in most of the cases, so you won't have to change any of them. And if still something goes wrong, the program itself will suggest you what to do and which parameters to change.
As said before, the program is not ment to be oriented to the beginners, but to the more experienced users. If you started from the Specci (and it's been long, long, time ago), that means that you are definitely not a rookie and that the TapeFix is just what you always needed to have in your collection, far before you even knew what a PC computer was!...