Adapted parts from Splitting a recording into separate tracks.
If using a record player, you'll need a phono preamp to increase the level from the record player to line level. Better still, use a record player that has RCA line out or USB out. The Audio-Technica LP-120XUSB has both. If the record player has USB out, you can connect that directly to your computer, and skip to the next section.
If using a tape deck, or a record player with RCA line out, you'll need to connect RCA cables to a DAC (digital-to-analog converter). For example, I use Livewire Essential Interconnect Dual Cable RCA Male to 1/4" TS Male, plugging the RCA Male to the "Line Out (Play)" jacks on my tape deck, and the 1/4" TS Male plugs into my DAC. On the source (cassette deck, turntable), I plug the GRAY plug into the LEFT jack, and the RED plug into the right channel.
To go from line out to USB on your PC, you'll need a DAC. I use a Behringer UPHORIA UMC-204HD. The UMC-202HD is also fine for this purpose, but avoid the UMC22 as it only has a single MIDAS preamp, or the UM2 as it's is not a great interface. On Mac, just plug in the DAC, on Windows, install the Behringer drivers then plug in the DAC. Plug in the 1/4" jacks with: GRAY to channel 1, and RED to channel 2.
Install Audacity.
Make some configuration changes by going to Edit > Preferences.
Audio Settings:
PC settings with Behringer interface shown here, on Mac "Host" is likely "Core Audio". In all cases, it's the "Recording" device that's critical. It should be the input(s) on the DAC that you're using from your source.
- Host: Windows WASAPI
- Recording: IN-1-2 (BEHRINGER UMC 204HD 192k)
- Channels: 2 (Stereo)
- Project Sample Rate: 48000 Hz
- Default Sample Rate: 48000 Hz
- Default Sample Format: 24-bit
Recording:
- Audible input monitoring
- Custom Track Name "Recorded_Audio"
- System Date
- System Time
Interface:
- Meter dB range: -36 dB (shallow range for high-amplitude recording)
Tracks:
- Default Waveform scale: Linear (dB)
Tracks Behaviors:
- Select all audio, if selection required
- Use dialog for the name of a new label
Cloud:
- Always save to the computer
I like to only leave the necessary toolbars open.
Under View > Toolbars, uncheck everything aside from:
- Transport Toolbar
- Recording Meter Toolbar
- Edit Toolbar
- Device Toolbar
- Selection Toolbar
- Time Toolbar
Right click the recording meter and set the following options:
- Meter refresh rate per second: 100
- Meter style: RMS
- Meter type: dB
- Orientation: Automatic
Then drag the right side of the recording meter so that (at least) -9 -6 -3 0 are shown.
Start playing media on the source device.
In Audacity, press the record button (shortcut: R).
Ensure the Recording Meter Monitor is shown (View > Toolbars > "Recording Meter Toolbar" is checked)
Watching the Recording Meter, aim for a maximum peak of around -6 dB on the Recording Meter (or 0.5 if the meter is set to linear scale). This should ensure that clipping will be avoided. If it's too low (or you don't see or hear anything), or too high, adjust the gain on the DAC, e.g. "GAIN 1" and "GAIN 2" on the Behringer UMC, until levels seem appropriate.
If recording levels go higher than that there's a potential for loss of fidelity ("clipping"), and we can (and will) increase volume later, but we can't add back lost data.
If all looks good, press stop, close the file, and don't save it. That was just a test.
Open Audacity (if not already open) and press record (shortcut: R).
Start media on source device. It's okay if there's blank space at the start or end of the recording. This will all be fixed later.
When the media is done, e.g. tape side is complete, press stop in Audacity.
Take a listen to what you recorded and make sure it sounds right.
It's your choice if you prefer to create a new Audacity session for each "side", or continue with the same Audacity recording session for the entire transfer. If you'll be using a single session, continue with this section until all "sides" have been transferred.
Before doing any editing, it's a good idea to save the unedited track just in case you make a mistake later.
Choose File > Export Audio (shortcut: Ctrl + Shift + E).
- File Name: Choose a descriptive name, e.g. "Allman Brothers Band 1989-07-21 (part 2)"
- Folder: Choose a folder with a bunch of free space.
- Format: FLAC Files
- Stereo
- Sample Rate: 48000 Hz
- Bit Depth: 24 bit
- Level: 8 (best)
- Entire Project
Click "Export".
You can now close the file using File > Close Project (shortcut: Ctrl + W). No need to save the project - the audio file is now saved, and we don't need the Audacity project.
Now continue with Record, Export Audio for all other "sides" of what you are transferring.
It's time to get them cleaned up the files you just recorded.
Click on Select > All (shortcut: Ctrl + A) - if you set "Select all audio, if selection required" in preferences, this step isn't necessary.
Click on Effect > Volume and Compression > Normalize...
- Remove DC offset (center on 0.0 vertically)
- Normalize peak amplitude to -1.0 dB
Click Apply.
Remove silence from end of recording:
- Click the Skip to End button (shortcut: End)
- Click the Zoom in button (shortcut: Ctrl + 1) until you can see from the end of the track to the end of the music
- Click and drag (shortcut: Shift + Left Arrow) from the end of the music to the end of the track
- Click on Edit > Delete (shortcut: Ctrl + K)
Note that there's no need to remove silence from start of recording, as we'll tell Audacity not export any audio data that exists before the first label.
IMPORTANT: Do this after you've done any edits to the audio, as Audacity does not move labels around if audio is cut!
Navigate to start of each song by playing sections, zooming in as needed. Move cursor to start of a song (mouse shortcut: Left and Right Arrow), then use:
Edit > Labels > Add Label at (shortcut: Ctrl + B) and type the title of the song, e.g. "In Memory of Elizabeth Reed". You'll see the label name placed below the track. You can drag the label if you need to adjust its position. Click on the label if you need to fix the name.
If there is blank space at the end of a song that you wish to remove, follow the steps in the "Remove unwanted audio from the recording" section in this document.
Continue in this manner adding a label to mark the start of each song
Note: Analyze > Label Sounds... can do this automatically on some media, but isn't fool proof. If you use this approach, double check that all of the labels that were created are correct.
Now split out tracks into separate files.
Choose File > Export Audio (shortcut: Ctrl + Shift + E).
- File Name: Choose a name prefix, e.g. "abb1977-04-16"
- Folder: Choose a folder with a bunch of free space, preferably unique to these sets of tracks.
- Format: FLAC Files
- Stereo
- Sample Rate: 48000 Hz
- Bit Depth: 24 bit
- Level: 8 (best)
- Multiple Files <- IMPORTANT!
- Labels
- Numbering before Label/Track Name
Click "Export".
Note: Instructions used to read "Click Edit Metadata and enter values for Artist Name, Album Title, Year", but I've found that the Audacity metadata tagger isn't very good. I suggest you export your files and then use an external FLAC metadata tagging app (I suggest MP3Tag, which despite its name handles FLAC files just fine) to set these properties:
- Artist Name, e.g. "Allman Brothers Band"
- Album Title, e.g. "1989-07-21 - Charlotte Coliseum - Charlotte, NC, USA"
- Year, e.g. "1989"
- optionally: Comments
Note: A common naming scheme is something like "abb1977-04-16t01.flac", but Audacity doesn't support automatically naming files this way. You'll need to manually rename files if you wish to use a different naming scheme.
Tip: Double check that the metadata was written correct to each file.
For transfers of live shows, in same folder as the track files, create a text file. Typical naming is "bandYYYY-mm-dd.flac24.txt", e.g. "bfft1992-09-23.txt" for a Bela Fleck and the Flecktones show from September 23 1992.
Here's an example file that you can use as a guide. The fields should be self-evident.
Dickey Betts Band
1977-04-16
Le Moyne College - Syracuse, NY, USA
Master:
"SDB:CD BOOT" > Cass
Taper unknown, tape provided by Brendan McGill
Conversion:
Onkyo TA-R301 > Behringer UMC204HD > Audacity (normalize, track split) > FLAC (48/24)
by Jeff Miller
Tracks:
01. Run Gypsy Run [00:04:54]
02. In Memory Of Elizabeth Reed [00:13:08]
03. There Ain't Nothin' You Can Do [00:05:04]
Total: [00:23:06]
Notes:
FM broadcast on "King Biscuit Radio Hour".
If, and only if the music you have is from a band that allows distribution of their live music, and the show in question is other wise unavailable, or a better quality than what's available, you can upload the show to the Internet Archive's Live Music Archive (LMA) or Taper's Section (TS).
One way of doing this is to search the LMA and TS.
Click the following:
that will open a window to an IA search for "flac" and "bela fleck" within both TS ("tapersection") and LMA ("etree"). You can change the strings in the address bar query to help find what you're looking for.
Here's some pages to guide you through the process:
- Uploading to the LMA/etree collection (Live Music Archive)
- Live Music Archive (etree.org) FAQ
- Band Music Distribution Policy
- Naming Standards
- Seeing Guidelines
- Band Abbreviations
To see if a show currently exists, check: etreedb or lcdb.
If you've followed all of those instructions, and are ready to upload, go to the Live music archive uploader to upload.
When asked for Band name, enter the band name, but then wait for the drop down to show and then choose the band name from the list. If the band name isn't shown in the list, then the band in question might not permit LMA uploads. If this is the case, "Taper's Section (TS)" might be an option.
Fields to fill in upload form:
- Description: paste the contents of the info file.
- Coverage: [City], [State]
- Source: From "Master" (e.g. "SBD > DAT")
- Lineage: From "Conversion" (e.g. "DAT > SoundBlaster > FLAC")
- Taper: From "Master"
- Transferer: From "Conversion"
For non-LMA taper friendly artists, without an LMA collection, you can upload to the "Taper's Section". Read the upload instructions for details on how to upload a show to the TS.
If you've followed all of those instructions, and are ready to upload, go to the Taper's Section uploader to upload.
Fields to fill in in upload form:
- Page Title: [artist name] Live at [venue] on [performance date].
- Page URL: Something like "abb1992-08-01.flac24". The URL cannot be changed after uploading!
- Description: paste the contents of the info file.
- Subject tags: You must include the tag taperssection in order for admins to be able to move the item to the Taper’s Section collection. Other tags can be added separated by a semicolon (;)
- Creator: Artist name (not the taper name)
- Date: Performance date (not the upload date)
- Collection: Community Audio
There are lots of good tips at the Audacity Editing FAQ.
If desired, e.g. you want to work on multiple "sides" as a single recording, you can combine multiple files into one file.
Use File > Import > Audio... (shortcut: Ctrl + Shift + I) to import files into separate Audacity tracks one above the other.
Choose Select > All (shortcut: Ctrl + A)
Choose Tracks > Align Tracks > Align End to End.
Combine the tracks by choosing Tracks > Mix > Mix and Render.
You will now have a single combined track.
Check View > Show Clipping in Waveform to show points where clipping has occurred - the waveform will display as red at those points.
I find these shortcuts very useful when editing.
Show entire waveform in window: View > Track Size > Fit to Width (shortcut: Ctrl + F)
Fit height of waveform to window height: View > Track Size > Fit to Height (shortcut: Ctrl + Shift + F). Maximize the Audacity window and use this to help find clicks and pops.
In a tape transfer there might be noticeable hiss in silent sections. You can use Audacity to reduce this.
- Select silence in the recording, e.g. section between songs.
- Play it and ensure that there is only silence.
- Choose Effect > Noise Removal and Repair > Noise Reduction...
- Click "Get Noise Profile".
- Select the entire track (or as much as you want to apply noise reduction to), using Select > All (shortcut: Ctrl + A).
- Choose Effect > Noise Removal and Repair > Noise Reduction... again.
- Click "Preview". This is it'll sound with noise reduction applied.
If you're happy with the sample, Click "OK". To undo the noise reduction, choose Edit > Undo Noise Reduction (Shortcut: Ctrl + Z).
Zoom in and select only the individual pop, and either silence it using Edit > Remove Special > Silence Audio (shortcut: Ctrl + L), or adjust the volume using Effect > Volume and Compression > Normalize... and normalize peak amplitude to -1.0 dB.
Alternatively (and more complex), use the Draw Tool (it looks like a pencil) in the Tools Toolbar (shortcut: F3) and zoom into the waveform until you see individual samples -- they'll look like vertical lines with dots on top.
The following scripts might come in handy.
$q = Read-Host 'Search for (e.g. title:"Bela Fleck" AND title:"1985")'
$u = [uri]('https://archive.org/search?sort=date+asc&and[]=collection:"taperssection"&and[]=collection:"etree"&query=' + $q)
Start-Process -FilePath $u.AbsoluteUri
param ([string]$Path = '.')
$totalLength = [TimeSpan]0
$maxTitle = 0
$Shell = New-Object -ComObject 'Shell.Application'
$tracks = Get-ChildItem -LiteralPath $Path -File -Filter '*.flac' `
| ForEach-Object {
$Folder = $Shell.Namespace($_.DirectoryName)
$File = $Folder.ParseName($_.Name)
# [21] = Title
$Title = $Folder.GetDetailsOf($File, 21)
$maxTitle = [Math]::Max($Title.Length, $maxTitle)
# [27] = Length
$Length = [TimeSpan]$Folder.GetDetailsOf($File, 27)
$totalLength += $Length
[PSCustomObject]@{
Title = $Title
Length = $Length
}
}
$i = 1
$tracks | ForEach-Object {
$paddedTitle = $_.Title + (' ' * ($maxTitle - $_.Title.Length))
'{0:d2}. {1} [{2}]' -f $i, $paddedTitle, $_.Length
$i++
}
(' ' * ($maxTitle - 2)) + "Total: [$totalLength]"
import argparse
import datetime
import os
import sys
from mutagen.flac import FLAC
def get_files_with_extension(directory: str, extension: str) -> list:
return [
f.name
for f in os.scandir(directory)
if f.is_file() and os.path.splitext(f)[1] == "." + extension
]
def timedelta_formatter(td: datetime.timedelta) -> str:
td_sec = td.seconds
hour_count, rem = divmod(td_sec, 3600)
minute_count, second_count = divmod(rem, 60)
return f"{hour_count:02}:{minute_count:02}:{second_count:02}"
def get_tracks(path: str = "."):
total_length = 0
max_title = 0
files = []
for filename in sorted(get_files_with_extension(path, "flac")):
fullpath = os.path.join(path, filename)
track = FLAC(fullpath)
title = track.get("title")
if title is None:
print(
f"WARNING: File '{filename}' doesn't have embedded title!",
file=sys.stderr,
)
title = os.path.splitext(filename)[0]
else:
# title is a list
title = title[0]
max_title = max(max_title, len(title))
length = track.info.length
total_length += length
files.append(
{
"Title": title,
"Length": timedelta_formatter(datetime.timedelta(seconds=length)),
}
)
for i, file in enumerate(files):
title = file["Title"]
padded_title = title + "".join([" " for _ in range(max_title - len(title))])
print(f"{i + 1:02}. {padded_title} [{file['Length']}]")
# Right justify "Total:" using maximum title length.
print(
"".join([" " for _ in range(len("01. ") + max_title - len("Total:"))])
+ f"Total: [{timedelta_formatter(datetime.timedelta(seconds=total_length))}]"
)
if __name__ == "__main__":
os.listdir("D:\\Cassette Transfers\\Done\\Rush 1984-07-08")
parser = argparse.ArgumentParser(description="Generate FLAC list")
parser.add_argument(
"-p", "--path", help="Path to enumerate.", type=str, dest="path", required=True
)
args = parser.parse_args()
get_tracks(args.path)