How to transfer music from cassette to ogg format digital files.
1. Insure you have the needed software, hardware, and hardware connections
For software, you need at least gramofile, audacity, and oggenc. Other useful software includes a software mixer such as aumix or xmixer, and normalize.
For hardware, you need a working sound card and the best cassette player available. Inexpensive consumer grade players provide noticeably inferior sound. Clean and demagnetize the heads of the player before beginning.
Connect the output of the player to the sound card. Quality cassette players will have “line out” jacks, which should be used if available. Alternatively, use the player’s headphone output, although this will degrade the quality. Do not use the player’s speaker outputs. On the sound card, connect the player’s output to the “line in” jack.
2. Test your installation
Stop any programs using the sound card. Play a cassette and insure that it can be heard from your computer’s speakers. If not, check volume levels on your cassette player, software mixer, and computer’s speakers. Also checking your hardware connections. If background noise is unacceptable, try:
- A better quality cassette player (most likely problem)
- A better quality connecting cable between player and sound card
- Improving the cable’s connections
- Separating the cable from power cables, power supplies, monitors, etc.
- Grounding player and computer to the same ground, and insuring that the ground is good
3. Adjust recording volume
Run gramofile from a terminal. Select “Record audio to a sound file”. Select destination file name and directory, perhaps ~/tmp/ArtistSide.wav. Select “Start recording”, then press enter to begin recording. Notice the simulated volume meter that appears: adjust the volume controls so as to maximize volume without clipping (“maxing out” the meter). Be sure to do so while reproducing the loudest part of the cassette.
Which volume control to use depends upon your cassette player’s output jacks. If you are using “line out”, open your software mixer such as aumix and use its volume controls. If you are using the headphone jack, use the player’s master volume and/or headphone volume controls.
If you are unable to obtain a high enough volume, try using the microphone jack of your sound card rather than line in, although this will likely affect quality.
4. Record your cassette
Repeat step 3, playing through one entire side of the cassette. Stop the recording manually by pressing Enter in gramofile when the cassette’s side ends. Repeat for the other side.
5. Remove tape hiss and other noise
Open the file created in step 3 in audacity. On a slow system this could take 10 minutes or more. Select a short audio sample that is silent except for unwanted noise, for example one or two seconds immediately preceding the first track. Press Effect – Reduce Noise, and click the “Get Noise Profile” button. The noise removal dialog box will close. Select a one or two second sample of low volume audio, such as a quiet portion of music.
Open the noise removal dialog again. Move the filter slider to “Less” (all the way to the left) and press the “Preview” button. After a moment, the audio sample you selected will play, demonstrating the result. Listen carefully for any tape hiss that may remain, in which case resample with the filter slider set slightly greater (a little to the right). Repeat as necessary to find the least amount of filtering that removes the tape hiss. In most cases the lowest setting is adequate.
Keep in mind that this filter can distort the audio, hence the need to apply the minimum amount of filtering necessary. This distortion is often most apparent in quiet passages, hence the use of a quiet passage for the sample.
Once you have found the ideal filter setting, select the entire recording by clicking on the label area to the left of the tracks. Click the “Remove Noise” button. On a slow system the noise removal of a cassette side could take 30 minutes or more.
Review the result, listening for any distortion that may have been introduced. If the result is acceptable, export the file (File – Export as WAV) using the file’s own name. On a slow system this could take 10 minutes or more. Alternatively, if you will perform additional editing of the file in audacity, you may save your work as a project (File – Save Project) to facilitate your work and export as WAV when finished.
In a terminal, normalize the files. The following settings work for me:
normalize -a -6dBFS side1.wav side2.wav...
This overwrites the existing files; make backup copies beforehand. Be sure to review the result after normalization, listening for any distortion that may have been introduced.
TODO: Try normalizing within Audacity, which is reported to give better results.
7. Locate tracks
In gramofile, select “Locate tracks”, supplying the name of the normalized file. You will then be given the option of changing the default track detection values. Try the default values first.
Gramofile’s documentation advises “If too few tracks are detected, check if the ‘minimal length of inter-track silences’ is correct. Some records require 10 blocks rather than [the default] 20. If inter-track silence was not the problem, try to increase the ‘global silence factor’ to for example 250 or 350. Really weird recordings may need even higher values, but 1000 should really be enough.”
Even following the above advice I review gramofile’s track detection, which are saved as filename.wav.tracks. With the sound file open in audacity, I review both visually and by ear the segments that gramofile detected as track beginning and endings. I often modify the filename.wav.tracks file accordingly.
8. Separate tracks
In gramofile, select “Process the audio signal”, supplying the name of the file (e.g. ArtistSide.wav) and the name of the output file (e.g. ArtistSide-.wav). Gramofile will append track numbers to the output file, thus the second track separated from BeethovenA.wav will be named BeethovenA-02.wav.
You can optionally select one or more filters, which are useful for removing pops from vinyl records. For cassette tapes. select “copy only”.
9. Encode as ogg
In a terminal, encode the files. The following settings work for me:
oggenc -q 4 -a "Artist name" -l "Album name" -G "Genre" -d "Year of recording" -t "Track 1 title" -N 1 track1.wav ... -t "Track n title" -N n trackN.wav -n "%a - %t.ogg"
TODO: Try encoding with soundkonverter, which may be easier.