KHdRecord

When I tried to sample some of my old records, I found no program
was able
to record audio (WAV) files directly to the hard drive. Most programs
put the samples in the main memory.
But one side of a LP side has up to 250 MBytes, so many programs
had difficulties.
My program writes the data immediately to disk, so it uses less memory,
only some internal buffers.
I recorded some LP's with it, and it worked well.
A newer version can also record directly into the MP3 format.
To use this feature you need the libmp3lame on your system.
An new version is recommended, because the old version
(for example 3.70) had difficulties. I use the version 3.87, you can download it from
the developers.
If you have problems getting or compiling the lame-source, send me a mail,
and I can send you the source or the I386-shared library (both about 500 KBytes).

Usage notes

Encoding MP3-files uses a lot of computing resources.
This program requires a 350 MHz CPU minimum to run.
Encoding Ogg/Vorbis-files uses even more resources. On my 1.4GHz Pentium it
takes half of the CPU time.

The program directly access's the sound and the mixer device.
If you use it as non-root, these devices must be accessible for the user.
Because /dev/dsp and /dev/mixer are symbolic links on the
most systems, the devices behind the links must be accessible.
On most machines this are /dev/dsp0 and /dev/mixer0.
To give the devices accessible log in as root. Enter chmod 777 /dev/dsp0 and
chmod 777 /dev/mixer0 .

Compile amd link problems

To compile you must have installed the QT development system.
And you must set an environment variable pointing to it.
Some system install this by default (Suse 8.0),
others not (Suse 7.3, Suse 8.1). So set up an environment variable
pointing to the QT system like export QTDIR=/usr/lib/qt3.

I link against the Qt-library. It is called libqt.so. In some newer distributions there is no
libqt.so anymore, it is replaced by the libqt-mt.so. The Multi-Threading variant of it. So if you
have problems linking against libqt.so (because it does not exist), try the libqt-mt.so instead.
Change the -lqt in the makefile and replace it by a --lqt-mt .

Problems with soundcards

Some users had problems with recording music. They experienced a recording speed of 10 times
of the regular level. Enrico installed several Linux versions to get deeper into the problem.
He could record with Suse 7.2 but not with Suse 8.0. The problem were buggy soundcard-drivers.
He installed a patch given by the
SUSE-SDB. Now he can work with
KHdRecord.
If you have similar problems please look for a newer driver.

History

2001-09-09: Version 3.4
Allows to define the MP3 bitrate and also to define an input device.
Saves these settings on disk as default for then next start of the program.

2001-09-21: Version 4.0
Better mixer control. KHdRecord selects the recording input device
at the mixer. This should reduce noise.
Introducing the Analyze Mode. KHdRecord analyzes the input signal and
records only, if a signal level is reached. This can be used to watch
citizen band or radio traffic.

2002-02-02: Version 5.0
Added Recording lists. Enter start and stop time, and the program
automatically starts recording at that time.
Also added a 40KBit/sec mono mode for pure voice recordings. Create your
own voicemail with this program.

2002-03-08: Version 6.0
Added Timed Split mode. A file is splitted every n-seconds.
Does not hang, if the sound-device is not available.
Allows to select the sound devices like /dev/dsp1.
Command line mode, to record without the GUI.

2002-03-10: Version 6.1
Typos in the documentation corrected.
Corrected error in the writing of wav files.

2002-05-05: Version 6.2
Added server mode to KHdRecord. It transfers the music over network
to the client, which plays it.
This combination is a simple audio streamer.

2002-05-29: Version 6.2 -- Source Update
Modified include files to compile also with QT3.

Minor changes: Version 6.5 -- Change to Lame 3.92.
Also changed menu state during recordings.

2002-09-08: Version 6.6 -- Removed problems when linking
against the qt-mt (multithrading) library. Mandrake users should be able
to compile/run without problems.
Added input level meter.

2002-09-14: Version 7.0 -- Added Ogg/Vorbis encoding possibility
I have not so much experience with the Ogg/Vorbis encoder. It seems to
be more complex than the Lame-Api.
It works on my system, and the output seems to be OK.
Please report errors using Ogg/Vorbis.
The latest libraries are
here available.

2002-12-28: Version 7.4 -- Experimental artsd support.
Typical the artsd prevents this program from accessing the /dev/dsp device.
Kill the artsd process, if it blocks the program.
Armin Bühler sent me an method to use the artsd. On one of my computers it works,
on the other it fails. I haven't detected the reason. Try it on your own risk.
Select as input device "artsd", and the program should get the musik data over
artsd, without talking directly to /dev/dsp.

2003-01-18: Version 7.5 -- Analyze mode also on commandline
The analyze mode is now also available when using the command line.
Also added better error handling, when outputfile can not be written.
In MP3 mode, when the soundcards returns a different sampling rate
than 44100 Hz, this rate is used. This should solve some problems with soundcards, which
deliver only 48 KHz. The Ogg/Vorbis libraries still demand
the 44100 Hz.

2003-05-11: Version 7.6 -- Found freezing window bug
Some people told me about a freezing KHdRecord window. But I could
not recreate that problem. After upgrading to Suse 8.2 I also got
this problem. After some debugging I found the problem in the
thread-safe reliability of the QT-library. I followed the
instructions in their documentation and now the problem seems
to be solved.
The program was tested on Suse 8.1 and 8.2.

2003-10-24: Version 7.8 -- Minor changes
Changed date and time input to a QT widget. Removed ogg-library from
distribution. Don't panic - ogg is supported, but I don't deliver the
libraries, because ogg is pre-installed on every better distribution.
Also upgraded lame to 3.93.1. The precompiled lame library is still
delivered.