Ripping music



  • I haven't ripped a CD in years. However, I have found myself supporting a number of local bands as of late and now have several cds that I want digital. What do people even use for that anymore?

    edit: Suppose I should note that this would be under windows.



  • @Dragoon I typically just use Windows Media Player... It's there, it works, I get mp3's out of it.

    I did recently install Audacity to rip some old cassettes. I needed something that would allow me to edit the raw sound and create the individual files from it. (that said, the age of the cassettes made the audio quality beyond bad)


  • Fake News

    It's been a while since I last ripped a few CDs, but last time I used this one:


  • Considered Harmful

    Everybody will have opinions on their favorite or only software they've used for the task. My opinion, of course, is the only correct one.

    CUETools (or rather, CUERipper).


  • I survived the hour long Uno hand

    @Applied-Mediocrity said in Ripping music:

    My opinion, of course, is the only correct one.

    We have a strict no Jeff policy in General Help :doing_it_wrong:

    Also, to be more on topic, +1 for bog standard WMP.


  • And then the murders began.

    I use iTunes.



  • @Dragoon I switched over to something called Fairstars CD Ripper after I discovered that WMP can no longer link to online libraries to identify ID3 tag info.



  • EAC to rip the CD to FLAC files, then metaflac (one of the command line tools that come with the FLAC package) to add Replay Gain tags per-album as well as per-track. I use a script to help with that part. You'll need to fix the path to metaflac.

    Add Replay Gain To All.vbs
    Option Explicit
    
    Const scriptName = "Add Replay Gain To All"
    Const scriptVer = "1.1.0"
    
    Const errNeedPath = "To use this script, drop a folder onto the script icon."
    
    Const kPathToMetaflac = "C:\Utils\flac\win32\metaflac"
    
    Dim gShellObj
    Set gShellObj = WScript.CreateObject("WScript.Shell")
    Dim gFolderCount
    gFolderCount = 0
    
    Main
    
    
    ' Customize this to do whatever you need it to do.
    Function DoTheWork(ByRef folderObj)
      Dim returnMe
      returnMe = True
      
      Dim filePaths
      filePaths = ""
    
      Dim fileObj, fileCollection
      Set fileCollection = folderObj.Files
      For Each fileObj in fileCollection
        If (StrComp(Right(fileObj.Name, 5), ".flac", 1) = 0) Then
          ' Do the thing (in this case, collect the paths for later)
          filePaths = filePaths & " " & fileObj.ShortPath
        End If
      Next
    
      If (Len(filePaths) > 0) Then
        'WScript.Echo("metaflac --add-replay-gain " & filePaths)
        Call gShellObj.Run(kPathToMetaflac & " --add-replay-gain " & filePaths, 1, True)
        gFolderCount = gFolderCount + 1
      End If
      
      DoTheWork = returnMe
    End Function
    
    
    ' Customize this to report something to the user.
    ' The default result is the top-level boolean from LoopWithin.
    Sub ReportResults(ByVal result)
      If (result) Then
        Call MsgBox("Updated " & CStr(gFolderCount) & " album" & Pluralize(gFolderCount) & ".", 0, scriptName)
      Else
        Call MsgBox("An error occurred while doing the work.", 0, scriptName)
      End If
    End Sub
    
    
    
    Function LoopWithin(ByRef folderObj, ByVal lookInSubdirs)
      Dim returnMe
      returnMe = True
       
      If returnMe And lookInSubdirs Then
        Dim subObj, subCollection
        Set subCollection = folderObj.SubFolders
        For Each subObj in subCollection
          returnMe = LoopWithin(subObj, lookInSubdirs)
        Next
      End If
    
      If returnMe then
        returnMe = DoTheWork(folderObj)
      End If
      
      LoopWithin = returnMe
    End Function
    
    
    Function Pluralize(ByVal count)
      If (count <> 1) Then
        Pluralize = "s"
      Else
        Pluralize = ""
      End If
    End Function
    
    
    Sub Main
      Dim i, args, continueOn
      continueOn = True
      
      Set args = WScript.Arguments
      If (args.Count <> 1) Then
        WScript.Echo(errNeedPath)
        continueOn = False
      End If
    
      If continueOn Then
        Dim fso, folderObj
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set folderObj = fso.GetFolder(args(0))
    	ReportResults(LoopWithin(folderObj, True))
      End If
    End Sub
    

  • And then the murders began.

    @Parody VBScript? Eww.

    (Although it looks like you can't do drag-and-drop to a PowerShell script, only to a batch file or shortcut that invokes PowerShell. Still, not worth the dirty feeling. 😉)



  • @Unperverted-Vixen said in Ripping music:

    @Parody VBScript? Eww.

    (Although it looks like you can't do drag-and-drop to a PowerShell script, only to a batch file or shortcut that invokes PowerShell. Still, not worth the dirty feeling. 😉)

    I think that script predates PowerShell. I know I've been using the shell ("loop through all of the folders in the dropped folder doing [something]") part of that script since the early 2000s. :)


  • BINNED

    CDeX



  • @Dragoon said in Ripping music:

    Suppose I should note that this would be under windows.

    Exact Audio Copy has been recommended as the only reliable Windows CD ripper by what.cd, before they suddenly keeled over. With error correction being much weaker in CD-DA than in CD-ROM, the quality of the CD itself, the drive and the ripper software is equally important.

    Edit: :hanzo:


  • Considered Harmful

    Winamp is my go-to.


  • BINNED



  • Well, thank you all for the suggestions. Will work on it this weekend.


Log in to reply