PHSREC.exe
--- Freeware ---
Copyright Paul Houle 2007-2009

[page last modified 2009-02-26]

This is a Win32 command-line program to record sound to a .WAV file.   The recording process is highly optimized and buffered to prevent loss.

I have used this program for years to record radio shows, initially from the line-in jack on my sound card, but now I record from websites that offer live streams.

There are other programs that do this, but probably none so simple.  Also this one is highly efficient -- especially if you pre-allocate the entire output file beforehand.  In that case the existing output .WAV file is re-written in-place.

Only raw .WAV data is captured.  If you want .MP3 files, you will have to encode the .WAV to .MP3, with a tool such as LAME (that's what I do).

To record the output of a website you must "loop back" your audio card output.  Many drivers allow you to do this by enabling and selecting the "mixer" as your input source (sometimes called "Stereo Mix" or "Wave Out Mix").

Free to use and distribute, subject to the Freeware License that comes packaged with the utility.  The C source is included in case you want to take a look at how it works.

Here's the current help given if you don't supply any arguments:

Audio capture tool, ver 1.2.  Paul Houle (paulhoule.com) Feb 26, 2009.
Efficient capture (no dropped data) of raw audio to .wav file.


Usage:  phsrec file{.wav} {/opts}


  file.wav: Output wave file ("-" for stdout) - rewritten in-place
            if already exists to avoid allocation time.
{/opts}:
  -?        This message.
  -b{8|16}  Bits/Sample: 8 or 16 (default 16).
  -c{1|2}   Number of channels: 1= mono, 2= stereo (default 2)
  -f{nnn}   Capture samples/sec: e.g., 22050 (default 44100)
  -s{nn}    Number of seconds to capture (default 5).
  -i{n}     Input wave device Id +1, 0 for WAVE_MAPPER (default 0).
  -p        Prompt for keystroke before beginning recording.
  -q        Quiet mode (no progress display)
  -n        No truncation of output file on error.
  -t?       Set task priority. ? is R (realtime), H (high),
               A (above normal), N (normal), B (below normal)
  -#q{nn}   Audio buffer queue size in seconds, 1..60 (default 5).
  -#b{nnn}  Wave buffers/sec, 1..20 (default 10).
  -#w{nnnn} Size of each disk write (minimum is 512, default is 131072).

Change Log

2/26/09- Version 1.2.  Added -n switch (no output file truncation). Added -t switch (set task priority).

Click here to download  phsrec12.zip

11/28/08- Version 1.1.  Added signal level display (signal level is simple average of samples since last display).

Click here to download  phsrec11.zip

12/11/07- Version 1.0.  Initial release.

Click here to download  phsrec10.zip


You are visitor 20938      Go to Home Page