Important note for reliable recordings:

Recording sound in principle requires some kind of real-time processing. The audio data generated from the Analog/Digital converter must be processed within a defined time-interval, otherwise data may be lost. Although most desktop PCs and Notebooks and their operating systems do not have real-time capabilities and therefore cannot guarantee that the audio stream is processed reliably, sound recording works properly if the PC is fast enough to process the data.

For programs written in Java (and probably C# respectively Managed Code) there is an additional issue, which makes it hard to achieve near real-time behaviour: the garbage collector. The garbage collector of the Java virtual machine frees memory of unreferenced objects in unregular time intervalls. The entire application is stopped during the cleanup. If the cleanup happens during a sound recording and takes too long it is possible that audio data is lost. Unlike buffer overruns it is not possible to detect this data loss.

To avoid data loss SpeechRecorder makes use of the incremental garbage collector, which reduces the duration of garbage collector pauses. To further minimize the risk of data loss, please use the fastest hardware available.

The recording engine will do some checks to detect buffer overruns. If the recording engine detects a buffer overrun recording will be stopped, an error message will appear. Speechrecorder will try to repeat the recording.

The following configuration is particularly prone to data loss:

For processing these items, the Java VM loads extensive image and text processing libraries which must then be cleaned by the garbage collector.

Practical test:

If you're not sure whether the recording works ok, you may record an entire recording session with a pure sine tone. Open the recorded files in Praat and check the sonagram for irregularities.

Valid XHTML 1.0 Strict