Update on 12 August 2014: In the comments, Riverlandsmj alerted me to another, simpler way to record your computer’s sound output while still playing it through normal speakers. I added this method below and generally revamped the article. Thanks!
This is a tricky question I’ve bumped up against multiple times. What if I want to record my computer’s sound output? I can use the microphone to record what’s coming out of the speakers…but there’s naturally going to be a large loss of quality, since the sound has to go through both my bad speakers and my bad microphone. It would be much better to to have software on my computer directly record what’s coming out of my computer. If you do a little searching, you’ll find lots of people saying, “Oh, just use Audacity and select ‘Stereo Mix’ or something of the sort as the microphone!” Sorry…but not all computers support that – including mine! You will probably also find various programs that promise to record sound output…but that you have to, like, pay for. Which perhaps is fine if you intend to be recording sound output a lot, but not for me, who only needs to once in a while. But despair not! There is a free solution. In fact, there are THREE!
I’m going to show you the three methods I’ve come across, in order of how good I think they are. First, you can use Audacity, which is fairly simple, works in all situations, and lets you still output your computer’s sound through your normal speakers/headphones/whatever it is. Secondly, you can use VB-Audio Virtual Cable (catchy name, I know), which also works dependably, but is more complicated to use and can’t keep playing your sound normally unless you install extra programs. Finally, there’s SoundLeech, which is very simple to use and lets you still output your sound normally, but doesn’t work in all situations.
This lovely open-source sound recording and editing program runs on Windows 2000, XP, Vista, 7 and 8, and is also available for other platforms, though the protocol for recording sound output is probably different on different operating systems. A feature was recently added that lets you choose a sound output device as an input device – so for instance, you can choose your speakers as your microphone. Let’s see how this works.
First of all, let’s download Audacity:
Once you’ve downloaded the file, run the installer:
Tell Windows that you really do want to run the installer:
You may need to tell Windows again that you really, honestly, do want to run the installer, but eventually you should get to the language selection dialog.
Now just follow the dialogs to install Audacity. When you’re done, open it up if you haven’t already.
Now look at the upper left corner, at the bar right underneath the controls for stopping, pausing, etc. Do you see that first drop-down box, the one that says “MME” right now?
Click on it and choose “Windows WASAPI”.
Now move over to the third drop-down box, the one with a little microphone next to it. Choose the sound output device that you want to record sound from – probably your speakers.
Start recording by clicking on the big, round red button. Don’t worry if nothing much happens at first.
Now start playing whatever you want to record through the sound output device you picked (again, probably your speakers), check back, and there you go! Audacity is recording your sound output even as you’re hearing it.
If you want to change the volume of what you’re recording, you’ll need to change the volume in the program playing the sound; changing the volume of your speakers or whatever other output device you chose won’t make a difference, in my experience.
You can also always use Audacity’s “Amplify” effect once you’re done recording to change the volume.
Both Riverlandsmj and I experienced some problems with the sound dropping out occasionally while recording this way, particularly at the beginning of recording, which seems to be because Audacity has a different default sampling rate than our sound cards. To fix this, Riverlandsmj suggests changing the sampling rate on your speakers to the same level as Audacity’s, like this. Go to the system tray in the bottom right corner of your screen, and find the volume control. Right-click on it and choose “Playback devices”.
Select the speaker in question, and then choose “Properties” below.
Now go to the “Advanced” tab…
…and in the first drop-down box, pick “24 bit, 44100 Hz (Studio Quality)”.
Click “OK” below, and hopefully this will fix the problem!
If it doesn’t, you can try opening up Audacity, then going to Edit > Preferences > Quality and seeing what the “Default Sample Rate” is. Then you can change your speakers’ rate to be the same, as I demonstrated above.
VB-Audio Virtual Cable
Okay, on to VB-Cable! As I mentioned earlier, this program works consistently, but it’s trickier to use and you can’t output sound through a speaker while you’re recording from it. VB-Cable is supposed to work on Windows XP, Vista, 7 and 8. It basically works by pretending to Windows that it’s some speakers and also pretending that it’s a microphone. Then, if you tell Windows to output to VB-Cable’s “speakers,” VB-Cable will send whatever goes into those speakers to the VB-Cable “microphone.” So if you use a recording program – Audacity or whatever else – and select the VB-Cable “microphone” to record, you’ll get whatever is being sent to the VB-Cable “speakers.” I’ll demonstrate below by trying to record Windows Media Player playing an MIDI file using Audacity.
First we’ll need to download VB-Cable from its beautiful website:
You’ll get a .zip file. Extract it somewhere, look inside, and you’ll see…a lot of stuff. Never mind all that. Look at readme.txt if you want to. Then, if you have a 32-bit version of Windows, right-click on VBCABLE_Setup.exe and choose “Run as administrator;” or, if you have a 64-bit version, right-click VBCABLE_Setup_x64.exe and choose “Run as administrator.”
If you’re not sure what sort of operating system you have, open up the Start Menu and go to “Control Panel,” then “System,” and look at “System type” under “System.”
(I know, I don’t have a very impressive computer.)
Windows will make sure you really want to run this program – click “Yes.” Now click “Install Driver” to actually start installing VB-Cable. It may say it’s not responding for a while, but that’s fine.
Windows will make sure you want to install VB-Cable’s drivers – these are its fake speakers and microphone. Click “Yes,” and there you go! You might want to restart after finishing, as the program tells you to, but I got away with not rebooting, at any rate.
Now let’s see what VB-Cable can really do! First, right-click on the volume control in the system try and choose “Playback Devices.”
Click on the sound device called “CABLE Input” (that’s VB-Cable’s fake speakers) and click “Set Default” below.
Now all sound the computer outputs will be sent to VB-Cable, which VB-Cable will then promptly send to its fake microphone, which you can see if you click on the “Recording” tab.
So, let’s open Audacity and choose “CABLE Output” as the microphone…
Now I can open up my MIDI file in Windows Media Player and let it play, and when I check in Audacity – ah yes, it’s recording the sound produced by Windows Media Player!
To finish off, I can stop recording in Audacity, save the file, etc., then right-click on the volume control and pick “Playback devices” again, and set my normal speakers as default again.
This reveals one problem with VB-Cable – you can’t record sound output with VB-Cable and listen to it at the same time, since Windows is sending the sound to VB-Cable instead of actual speakers. If you want to listen while recording sound output, you could, again, try the Audacity or SoundLeech methods.
So there’s also SoundLeech, the simplest program, which runs on Windows XP, Vista and 7 (not sure about Windows 8). Here’s the basic idea: When it’s running and you tell it to “start leeching,” it tries to detect any programs playing sound, and then records what they’re playing to a .wav file. The problem is that it doesn’t always detect programs playing sound – it only seems to support some programs. So if you’d rather not mess with Audacity or VB-Cable, you could try SoundLeech, but it’s a bit less flexible and doesn’t work 100% of the time. I think SoundLeech is pretty straightforward, and the developer also has some info on how to use it on his website, so I won’t demonstrate it here.
And there you have it! I am very happy that I finally found some good solutions for this problem. Hopefully they will be useful to you too!