I've written the following DOS-programs to support the development of loudspeakers:
SB_OCT | 1/n-Octave-Realtime-Analyser for PC's with SoundBlaster®- compatible soundcard (partly) |
SINUSGEN | simple sine generator for PC's with AdLib®-compatible soundcard |
BOXUTIL | several tools (coil wind up/down, BR-pipe calculation, impedance-equalizer etc.) |
TSPCHECK | checks the consistency of a loudspeakers TS-parameters |
WAVEANAL | performs statistical analysis of WAV-files (Min, Max, Avg, Rms) |
WAVECOMP | compares 2 WAV-files sample for sample (suppresses leading zeros etc.) |
CDFS.VXD | alternative VXD-driver allows direct access to WAV-files from audio-CDs (WINDOWS 9x/Me)) |
EMPHASIS | some hints concerning the Emphasis/Pre-Emphasis issue |
But these programs (and other commercial programs like e.g. AudioCad ECNC 8.0, Akustika 6.0, Lasip 3.0, PSpice etc.) are only tools to support the development of good loudspeakers. My typical development process is described in my collection of Tips for impatients.
Remarks for downloading SB_OCT (demo version):
SB_OCT is a DOS-program that uses a SoundBlaster®-compatible soundcard to realize a 1/n-Octave-Real-Time-Analyzer. The program has a simple (English) user interface and uses keyboard control throughout.
Only 16-color VGA graphic mode with 640*480 pixel is supported.
Screenshot of SB_OCT:
As SB_OCT communicates with the soundcard it may not be start from WINDOWS® and does not run in a MS-DOS®-window. WINDOWS® must first be closed (for WINDOWS 9X®-systems: Restart in DOS- mode). The soundcard detection is supported by the program SB_ENV, which checks/verifies the BLASTER environment variable and creates the file BLASTER.ENV which is needed by SB_OCT (for further information see your soundcard manual and/or read the file OCTFASTE.DOC)
The 1/n-Octave-Spectrum (n = 3, 6, 12 or 24) of one channel is measured from Fmin to 22k Hz (Fmin=10 to 80 Hz, depending on sample frequency, blocksize and octave resolution). For excitation any quasi-stationary signal (e.g. pink noise from a test CD) can be replayed via your hi-fi-system. If the specially for SB_OCT created Test-CD is used the measuring accuracy can be significantly improved despite of a shorter measuring time.
Besides several pseudo random signals this Test-CD contains signals for subjective evaluation of (room) resonances (without measuring equipment) and can be ordered for 15 € (incl. shipping) at the author (see also complete table of contents (German)).
At first the excitation spectrum is measured (using e.g. the LINE input) and stored as a file (e.g. PN_REF.OCT). Then this spectrum is loaded as a reference spectrum (via 'File/Load Reference Spectrum'). This allows a spectral calibration of the measurement chain as long as the same input is used (the MIC input has a bass roll off below 100 Hz in general).
This mode is also used to measure the impedance Zls of a loudspeaker. The loudspeaker has to be connected in series with a known resistor Rref (e.g. 10 Ohms) to the output of the amplifier. In the 1. step the voltage across the known resistor and in the 2. step the voltage across the unknown loudspeaker impedance is measured. It is very important that the signal ground is always connected to the amplifier ground. Otherwise the soundcard ground will short circuit and maybe damage the amplifier. Rref and Zls must therefore be interchanged between both steps. However the user will be guided step by step through this measurement.
A little switch device according to the following sketch simplifies impedance measurements.
In the calibration mode' the mixer of the soundcard can be calibrated for each input (MIC or LINE) individually such that for all input gain settings of the mixer the same measurement result can be achieved. For this purpose SB_OCT provides a 1000 Hz sine signal on the LINE output (level 50 to 100 mV, depending on soundcard; must be measured with AC- voltmeter) which has to be fed into the LINE and MIC input one after the other. As SB_OCT allows linear as well as logarithmic [dB] amplitude display the amplitude of a sinusoidal signal can e.g. be directly read out in mV. The frequency information is available as a 1/n-octave-spectrum anyway.
In the 'scope mode' only 264 samples around the maximum are displayed in the time domain. This mode is mainly intended to check the polarity and to judge the step response subjectively. The object can be excited by simply switching on/off a battery or by using the impulse tracks of the specially created Test-CD for SB_OCT.
The user interface of SB_OCT is made very simple, only the most essential things are adjustable on-line. Many parameters (e.g. octave resolution, block size of the time signal, weighting window and impedance and calibration mode) can only be set by command line parameters (see English help with SB_OCT -h).
SB_OCT comes together with a program for display of measured data called DISP_OCT. Here up to 6 SB_OCT data files can be displayed and printed (at present only direct hardcopy with EPSON®-compatible printers, alternatively via WINDOWS clipboard).
The version provided here for download is freeware and limited in operation (see below). The full version can be ordered from the author (order form ORDER.TXT included in SB_OCT_E.ZIP) for 30 US$ and will be delivered on a 3.5" disc (the specially adapted Test-CD is available for 15 US$).
NOTE:
The use of this program is done on your own risk. The author of the program is not responsible for any damage that might be caused by the use of this program!
Main features of SB_OCT
Feature | full version | demo version |
Frequency range | 10-20k Hz | 80-20k Hz |
Sample frequency | 44, 22, 11 kHz | 44 kHz |
Octave resolution | 1/3, 1/6, 1/12, 1/24 | 1/3 |
Blocksize | 1024, 2048, 4096, 8192, 16384 | 1024 |
Frequency resolution | 43.1, 21.5, 10.8 ... 0.67 Hz | 43.1 Hz |
Max. number of averages | 64 | 16 |
Time window | Rechteck, Hanning, Hamming, Blackman | Same |
Impedance measurement | Yes | Yes |
Mixer calibration | Yes | Yes |
Scope mode | Yes | Yes |
Date storage | Yes | No |
Date display with DISP_OCT | Yes | Yes (test data) |
Download demo version of SB_OCT (please read OCTFASTE.DOC before 1st measurement!)
Remarks for downloading SINUSGEN (V1.1)
As you might have already guessed SINUSGEN is a simple sinus generator program.
The frequency is adjustable from 20 to 10000 Hz and the output level of the sinusoidal signal can be lowered. For signal generation the FM chip of the soundcard is used. For frequencies above 4000 Hz the sine signal might sound a bit distorted depending on the FM chip/soundcard!
The program SINUSGEN.EXE should run with all AdLib®-compatible soundcard (which means nearly any soundcard) under MS-DOS® or under WINDOWS® (in DOS box or direct).
Eventually an external mixer program has to ensure proper level of the FM output of the soundcard.
NOTE:
This program is freeware. The use of this program is done on your own risk. The author of the program is not responsible for any damage that might be caused by the use of this program!
Remarks for downloading BOXUTIL (V2.2)
As you might have guessed BOXUTIL is a program that provides several utilities for loudspeaker development.
The program is written in TurboPascal V3.0 for MS-DOS® and therefore very compact. It works in text mode and can therefore also be run under WINDOWS®. BOXUTIL shows the following functionality:
Box/room calculations | Input parameters | Output |
Volume | Box length, width and height | Box volume |
BR-tube/length | Tuning frequency, box volume, tube diameter or area, number of tubes | Tube length depending on tube design, 1. + 2. standing wave in tube |
BR-tube/frequency | Box volume, tube length, tube diameter or area, number of tubes | Tuning frequency depending on tube design |
Network calculations | Input parameters | Output |
Equalizer/Zobel | DC-resistance, impedance at 15 kHz | RC-circuit |
Equalizer/resonance frequency | DC-resistance, resonance frequency, mechanical and electrical Q | RLC-circuit |
Equalizer/notch filter | DC-resistance, notch filter frequency, damping and Q | RLC-circuit + table (frequency response) |
Level reduction | Impedance, damping, desired impedance; results with ideal resistors | Actual reduction with available resistors |
Network components | DC-resistance, -3 dB frequency, high or low pass, order (1-4) | Network sketch with element values for different filter characteristics |
Inductor calculations | Input parameters | Output |
List | Inductivity | List with resistance as function of wire diameter (0.5 to 4.0mm) |
Wire diameter | Inductivity, coil resistance, coil height, coil diameter inner/outer | Wire diameter (2 guessed values) |
Winding up/down | Actual and desired inductivity, wire diameter | copper mass, wire length of identical diameter to wind up/down |
NOTE:
This program is freeware. The use of this program is done on your own risk. The author of the program is not responsible for any damage that might be caused by the use of this program!
Remarks for downloading TspCheck (V1.01)
As you might have guessed TspCheck is a program to check, whether the measured or given TS-parameters of a loudspeaker show the correct relationship. Often you will e.g. find that the given efficiency is somewhat too optimistic. On the other hand you may estimate the moving mass or the suspension compliance by just combining some known parameters.
Moreover it will be estimated:
Max. lin. SPL @ 50 Hz in CB - the maximum achievable sound pressure level at 50 Hz when mounted in a closed box and using the maximum linear displacement as well as
SPL_m = SPL_e - the frequency where the maximum achievable sound pressure level with full power input starts to be limited by the linear displacement.
The WINDOWS-program TSPCHECK.EXE is written in VisualBasic 3.0, runs from WINDOWS 3.x onwards and can be copied to any directory. If the target PC does not have a runtime library VBRUN300.DLL (in general under C:\WINDOWS\SYSTEM) this must be installed, too (e.g. in the directory with TspCheck).
REMARK: TspCheck only works correctly if numbers are defined in the form 1,000.00 (point as decimal separator)!
NOTE:
This program is freeware. The use of this program is done on your own risk. The author of the program is not responsible for any damage that might be caused by the use of this program!
Download TspCheck.Zip (V1.01) (6 kB; only works if VbRun300.Dll is available)
Download VbRun300.Zip (226 kB; only needed if VbRun300.Dll not yet available)
Remarks for downloading WaveAnal (V0.90)
WaveAnal is a program for the statistical analysis of WAV-files under WINDOWS 9x and will handle 8-bit and 16-bit mono- and stereo files. For each channel the program evaluates:
Multiple files within one directory can be analysed at a time and the result can be copied via the clipboard to other WINDOWS applications. The program WaveAnal.exe and the help file WaveAnal.txt can be copied in any directory. The target PC just needs the runtime Library MSVBVM50.DLL (normally under C:\WINDOWS\SYSTEM).
NOTE:
This program is freeware. The use of this program is done on your own risk. The author of the program is not responsible for any damage that might be caused by the use of this program!
Download WaveAnal (V0.90) (19 kB)
I'm currently working on a spectral analysis extension (example: beginning of Oscar Peterson Trio / You Look Good To Me -> bass barely deeper than 50 Hz!)
Remarks for downloading WaveComp (V0.90)
WaveComp compares 16-bit stereo WAV files and run under WINDOWS 9x. Leading zeros are suppressed. It is intended to compare ripped and burned audio tracks with their originals. The following results are given:
NOTE:
The use of this program is done on your own risk. The author of the program is not responsible for any damage that might be caused by the use of this program!
Download WaveComp (V0.90) (21 kB)
Remarks for downloading CDFS.VXD
CDFS.VXD is an alternative driver for the detection of the file system of audio CDs under WINDOWS 9x/Me. It allows to have direct access to WAV-files from the Explorer (no ripping required!).
For installation the new driver just has to be copied to C:\WINDOWS\SYSTEM\IOSUBSYS and the computer must be rebootet.
As a precaution the original driver should be renamed (e.g. cdfs.vxd.orig -> the new name may not have the ending .vxd in order to prevent parallel loading of both drivers which will cause problems).
This driver is not from me therefore have a look on the original cdfs.vxd page.
Some hints concerning the Emphasis/Pre-Emphasis issue
Many "older" CDs (produced before 1985) used some kind of trebble lift (Pre-Emphasis). I can just guess why:
On CDs with Pre-Emphasis the digital data are stored with a massive (10 dB @ 20 kHz) trebble lift and the CD gets a corresponding mark (Pre-Emphasis-Flag). During replay this digital trebble lift is reversed (obviously using a small analogue circuit).
If a complete CD is copied the Pre-Emphasis flag is copied too and everything is OK. If however only a single track is ripped this will cause a problem because the Pre-Emphasis flag is not copied (obviously a single track cannot be marked this way).
If you still want to make a Best-of-Michael-Jackson sampler you have to compensate the digital trebble lift by yourself. In the internet they recommend equalizers for that, but this will never achieve the required mirror image like trebble sink.
However, in the internet I foud the time constants (50 µs +6 dB/Oktave, 15 µs -6 dB/Oktave) of the applied trebble lift, so I knew the ideal behaviour. Moreover, I did already made some bad experience with a pink noise track that I ripped of a test CD with Pre-Emphasis that no longer was "pink" afterwards. By measuring both average spectra (original CD and ripped CD) I was able to determine the trebble lift.
Finally I managed to evaluate empirically the parameters of a simple digital filter that performs the required mirror image like trebble sink nearly perfectly (deviation < 0.2 dB). There exists a corresponding program, as I was not able to convince Chris S. Craig (the man behind the effective program Goldwave) to implement this feature into Goldwave (by granting me a full license ;-) ).
Due to the trebble sink the maximum and RMS values are reduced in general by about 15%. The program will therefore allow a parallel amplitude increase in order to keep the influence of quantisation noise as low as possible (only 1 instead of 2 separate numerical manipulations).
Remarks for downloading WaveEmph (V1.10)
WaveEmph is a WINDOWS® 9x-Programm, which removes the pre-emphasis of 16-bit stereo WAV-files and/or changes the level. The original WAV-file will be renamed (add ".old"), the modified file will be stored in the program directory with the original name.
The program WaveEmph.exe and the help file WaveEmph.txt can be copied to any directory. The target PC just needs the runtime Library MSVBVM50.DLL (normally under C:\WINDOWS\SYSTEM).
NOTE:
This program is freeware. The use of this program is done on your own risk. The author of the program is not responsible for any damage that might be caused by the use of this program!
download WaveEmph (V1.10) (30 kB)