Data AcQuisition And Real-Time Analysis
Scope - Spectrum - Spectrogram - Signal Generator
Software for Windows
Science with your Sound Card!
The following is from the Daqarta Help system:



Spectrum Analyzer

Signal Generator

(Absolutely FREE!)


Pitch Tracker


DaqMusiq Generator
(Free Music... Forever!)

Engine Simulator

LCR Meter

Remote Operation

DC Measurements

True RMS Voltmeter

Sound Level Meter

Frequency Counter
    Spectral Event

    MHz Frequencies

Data Logger

Waveform Averager


Post-Stimulus Time
Histogram (PSTH)

THD Meter

IMD Meter

Precision Phase Meter

Pulse Meter

Macro System

Multi-Trace Arrays

Trigger Controls


Spectral Peak Track

Spectrum Limit Testing

Direct-to-Disk Recording



Frequency response

Distortion measurement

Speech and music

Microphone calibration

Loudspeaker test

Auditory phenomena

Musical instrument tuning

Animal sound

Evoked potentials

Rotating machinery


Product test

Contact us about
your application!

Sound Card Weighting Curve Files

Controls: Spectrum Dialog >> Curves >> Weighting Curve
Macros: CurveFile0-3, Ch.Curve0, LI.Curve0, etc


There are four separate buttons for loading Curve files. Below each Curve button is a row of four smaller channel select buttons. These are disabled until a file is loaded.

Channel buttons are interlocked vertically, so you may apply only one Curve to any given channel, but any number of channels may use the same Curve.

Curve files have a .CRV extension but use the same format as Calibration .CAL files. A Curve file must have a 'Unit:' name and a 'Sens:' value, but those entries will be ignored. Following must be a list of up to 512 lines, each line with a frequency value in hertz, then one or more spaces, then a dB value for the relative response at that frequency.

Here is a simple Curve file example:

    0       -90
    10      -20
    100       0
    500       6
    1000      0
    5000    -20
    50000   -90

This example file will boost the value at 500 Hz by 6 dB. Frequencies between 100 and 1000 will be boosted using simple linear interpolation within each defined curve segment. For example, in the segment between 100 and 500 Hz, 300 Hz is half-way and would be boosted 3 dB (half of 6 dB).

The first line should be for 0 Hz; if one is not found, a default entry of -90 dB will be assigned.

The last line should be at least as high as the highest frequency of interest. Responses for higher frequencies will be found by extrapolation, which tends to give poorer results than interpolation here.

Several Standard weighting curves are supplied with Daqarta, especially for use with the Sound Level Meter option.

Loaded Curve files and channel selections will be retained for future Daqarta sessions.

If you want to remove a specific Curve, click on it and you will see a confirmation prompt. If you accept, that Curve will be unloaded and you will be able to load another to that button.

.CAL or .FRD Files as Curves:

When loading a Curve file, the standard Windows File Open dialog defaults to showing only .CRV file types. The "Files of type" field is "Weighting Curve files (.CRV)". You can scroll that down to "Calibration files (.CAL)" or to "Frequency Response Data (.FRD)" to select calibration files, such as those for microphone response.

When a .CAL or .FRD file Curve is used for an input channel, it is applied inverted so that it corrects the input spectrum to be flat, as it would be with an ideal microphone or sensor. This is the same operation that would normally be done from the User Line Dialog with User Units active, which requires a calibrated system.

Here, you don't need any calibration at all. The 'Unit:' and 'Sens:' fields of the calibration file are ignored, and only the relative response is shown. For example, if you have a microphone with a .CAL or .FRD file, you can use it to measure the true frequency response shape of your sound system, and you can measure how far it deviates from perfectly flat at any given frequency. What you can't do is measure the absolute sound level in SPL, which still requires calibration and use of the .CAL or .FRD file via User Units.

Macro Notes:

CurveFile0 to CurveFile3 macros have no effect if any File Open or Save As dialog is already active.

CurveFile0= without a name will open the File Open dialog for Curve 0, showing all .CRV files but with no default name.

CurveFile0="MyCurve" will open the File Open dialog with the default name set to MyCurve. (Note that quotes are needed around all filenames in macros.) If you accept this by hitting Enter or the Open button in that dialog, Daqarta will attempt to load a file named MyCurve.CRV as Curve 0, and will fail if that file is not found.

A.CurveFile0="MyCurve" will load MyCurve.CRV directly to Curve 0, without any File Open dialog. Note that if there was a file already loaded for Curve 0, it will be replaced with the specified file.

To load a .CAL or .FRD file via macro, you must specify the extension directly, as in CurveFile0="MyCurve.CAL" for the File Open dialog, or CurveFile0="A.MyCurve.CAL" to load it directly.

CurveFileN macros can use string variables and expressions. For example, CurveFile0=Field1 will use the contents of Field1 as the default file name, and A.CurveFile0=Field1 will load a file of that name directly.

Similarly, if the Macro Variable Var0 holds a value of 12, then CurveFile0="Test"+Var0 will set a default file name of Test12. If you expect to use a large series of files, you can use CurveFile0="Test"+Var0(3) (for example) to set the decimal format to 3 integer places to get Test012. This will allow proper sorting by file name.

Once a Curve 0 file has been loaded, you can select it for use on a given channel via LI.Curve0=1 for Left Input, RI.Curve0=1 for Right Input, LO.Curve0=1 for Left Output, and/or RO.Curve0=1 for Right Output. If you use a value of 0 instead of 1, the specified channel will be unselected for that curve. Use LI.Curve0=>x to toggle the current state of Curve 0 Left Input.

Alternatively, you can use Ch.Curve0 to select, de-select, or toggle a channel previously specified via the Ch Channel Select command.

You may load curve files to any Curve button; they do not need to be loaded in any particular order.

If a Curve button already has a file loaded, you can unload it by giving another CurveFileN command. Either CurveFile0=0 or CurveFile0= (with no name or value given) will prompt you to confirm unloading Curve 0. If you use A.CurveFile0=0 or A.CurveFile0= the current file will be unloaded without any confirmation prompt.

To test if a Curve button already has a file loaded, you can use an IF statement with a 0 or 1 in place of the file name. IF.CurveFile0=1 will be true if there is a file loaded.

To find out if a specified channel such as LI is using a Curve or Tilt, assign a variable to LI.SpectCurve?X. The variable will be -1 if the Left Input is not using any Curve or Tilt; otherwise it will hold the Curve number 0-3, or else 4 for Tilt.

To insure that no Curve (or Tilt) is active for a specified channel, use LI.SpectCurve#X= (value ignored) to unselect any Left In (LI.) buttons in the Spectrum Curves dialog. Use an RI. prefix for Right In, LO. for Left Out, RO. for Right Out, or Ch. for whatever channel was previously specified via the Ch Channel Select command.

See also Spectrum Curves Dialog, Mirror Curve Files, Spectrum Control Dialog


Questions? Comments? Contact us!

We respond to ALL inquiries, typically within 24 hrs.
Over 35 Years of Innovative Instrumentation
© Copyright 2007 - 2023 by Interstellar Research
All rights reserved