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!

Revision History - v9.00

Daqarta v9.20 - 10 June 2016

Sound Level Meter has new AC/DC button that defaults to AC to ignore the 0th (DC) spectrum line when computing SPL values. (High DC peaks can appear if microphone calibration (.CAL or .FRD) files have large negative dB entries at 0 Hz, as Daqarta attempts to correct the spectrum to be equivalent to a microphone with a flat response, by boosting frequency regions where it has low output.)

New Z-Weight.CRV and Z-Weight96.CRV Standard Weighting Curves are now included with Daqarta, which solve the above problem for both low and high frequencies, and for Spectrum display as well as Sound Level Meter readings.

Bug Fix: On Vista and later systems, Right Input channel Level reported fixed (usually maximum) attenuation, but sensitivity actually matched Left. On calibrated systems this caused Daqarta to report erroneous high Right input levels, since it appeared that large signals were present despite having been greatly attenuated.

Bug Fix: On Vista and later systems, Right Input User Units buttons were disabled.

Bug Fix: Spectrum Sigma readout and/or Sound Level Meter could show erroneously high values for very low-level signals. This was a particular problem when using Spectrum Weighting Curves with regions of large negative dB reponse.

Bug Fix: The top few lines of the Spectrogram display sometimes showed the wrong colors at certain eXpanded vertical axis (frequency range) settings.

Bug Fix: Spectrum Cursor Peak option now typically reports the peak magnitude and frequency only when the cursor is on spectral lines immediately adjacent to the true tone peak. Previously also reported on one additional line above or below.

Bug Fix: The mF MIDI command to return the current Pitch Track frequency was truncating the fractional portion, and also sometimes returned erroneous values.

Bug Fix: The equivalent Posn?F macro to return tracked frequency when Spectrum Cursor Peak and Track are active was always returning a rounded integer.

Bug Fix: The Auto-Calibrate progress report for Master Out always showed 0 instead of current step number. (Actual calibration was OK.)

Bug Fix: When User Units option was active, the cursor readout units and scaling did not always change to match the Y axis when the channel display buttons were changed.

Bug Fix: Spectrum Weighting Curve Files buttons or Load Mic (or Spkr) Cal File buttons erroneously showed a Memory Curve name instead of the actual file name loaded, for certain short .CRV or .CAL (or .FRD) files respectively.

Bug Fix: Included example MIDI setup files did not have default Custom Chord names.

Daqarta v9.10 - 20 March 2016

New installer has the same default procedure for all users, including Administrator, Standard User, and Guest. Data files are under each user's own separate Documents - Daqarta subfolders (App_Data, User_Data, Circuits, and Utility).

Engine_Sim Engine Crank and Cam Sensor Simulator macro mini-app updated to include support for 3-sensor engines (CKP, TDC, CYP) via new CYP option. Also added Full-Scale Pulse ('FS Pulse') waveform option for larger output signal to drive the Simple Sound Card Unipolar DC Modification to simulate 3-terminal (Hall type) sensors.

Arb_From_List macro improved to handle very steep slopes, such as for direct creation of custom engine sensor wheel profiles.

Generator stream Offset mode now includes Base option as well as previous All and Burst. Allows creating tone bursts with arbitrary 'off' baseline, including -100% to produce (for example) maximum-amplitude unipolar output pulses with sound cards having the Simple Sound Card Unipolar DC output modifications.

Daqarta Notes that are automatically saved with a .DQA file, either single-screen or DDisk, can now be read into a Macro Array Buf0-Buf7 after the file has been opened for viewing, or loaded to the Generator as an Arb or Play file. Buf0="<NotesF" copies the File Notes as a list of values, while Buf0="<NoteSF" copies as a string of characters.

Buf0="<NotesR" copies raw Daqarta Notes to Buf0 as a contiguous stream of bytes that can be accessed as a string storage element, or simply saved while the Notes area is used for other purposes such as preparing for a file save, as discussed above. You can later restore the Notes from the array via Buf0="<uN".

New MemArb0="<=(K)" command allows filling a Memory Arb array with constant K, which may be an immediate value, a variable, or an expression.

Macro String expressions now accept b to insert a space (blank). You can use b followed by an immediate value such as b12 or an expression in parentheses such as b(UA) to insert up to 999 spaces. Similarly, c inserts a comma followed by a single space, or you can use an immediate value or expression to specify the number of spaces.

When Daqarta attempts to load a file that it can't find, it now reports the full path and name. This helps you track down problems where you may have inadvertently renamed or deleted a file needed by a macro, or an Arb or Play file needed by a Generator setup.

String expressions for displaying logical states as words (True / False, Yes / No, On / Off, Pass / Fail or all-uppercase versions of the same) now use a new L. format. For example, Msg="Power " + UX(L.O) will show "Power ON" if UX=1, else "Power OFF".

Bug Fix: Daqarta could crash if the F8 key was used as if to invoke a "hot-key" macro, but instead of next hitting an ID key the Macro Edit button was clicked instead.

Bug Fix: When a macro calculation resulting in a floating point value that was exactly 1 / 2^64 less than a power of 2 was converted to an integer, it could give an erroneous value of zero.

Bug Fix: Toggling MIDI sound on via Pitch-to-MIDI On/Off or Synth On/Off could sometimes fail on Windows 10 systems.

Bug Fix: Macro calculation results of positive or negative infinity (say, from computing 1/0 or -1/0) were displayed as a full-scale negative value in both cases (-2^31). Now positive infinity is displayed as full-scale positive (2^31-1). Note that this only concerns display of infinity; calculations always maintained the proper sign.

Bug Fix: Reading Daqarta Fields using macros or MIDI Changes scripts did not work properly for decimal values, preventing (for example) the GlossyTracks MIDI setup to get user settings for BPM.

Bug Fix: After using Buf0="<Notes" to read a value list from Daqarta Notes, the memory copy of Notes was truncated after the first value, although the display was not immediately affected.

Bug Fix: Stream Offset Burst mode failed to accomodate possible polarity inversion, specified by setting a negative value in Daqarta's Full-Scale Range or External Gain controls during calibration.

Bug Fix: Macro string expressions specifying a DDisk file name did not accept format options using parentheses, such as DDisk="FileNum" + UI(h) to append a hexadecimal value to "FileNum".

Daqarta v9.00 - 23 January 2016

DC Measurement And Output Circuits topic now includes Simple Sound Card Unipolar DC Modification which only involves bridging output and/or input capacitors with resistors. In particular, the 2 Channel USB Plug-Type Sound Card modification can be used to provide two Hall-type sensor signals for the Engine Crank and Cam Sensor Simulator Mini-App, for under US $2.

DC Pulse Output Circuits now includes the Inexpensive All-In-One USB Device Modifications subtopic to provide true 0 to +5 V outputs on 2 or more channels.

Sound Card DC Input / Output Modification presents circuits and board layouts that now allow full bipolar DC operation from outputs as well as inputs.

The Engine Crank and Cam Sensor Simulator macro mini-app now includes a Constant RPM option during SIMULATION Mode operation, the speed of which is controlled by a new Set Constant RPM control. Clicking the Constant RPM button once advances it to 600-6000 RPM Sine Cycle, and a second click to Arbitrary Schedule Cycle, both of which cause the Set Constant RPM control to become an RPM Test Cycle duration control as in prior versions.

New BMP Image to WAV Sound and Spectrogram Image macro mini-apps allow you to convert a color photo or other bitmapped image into a .WAV sound file, whose spectrogram then yields the original image in the original colors.

Txt2MIDI.DQM MIDI setup is a simpler version of the above concept of sound creation to get a specific spectrogram image. Here, the MIDI synth is used to create tone patterns that form scrolling dot-matrix spectrogram text from messages you enter into Daqarta Notes.

Improved Multiple Meters/Plotter/Logger macro mini-App now allows multi-channel frequency measurements at very low frequencies.

New Tilt +/-dB / Octave control in Spectrum Curves dialog allows adjustable spectrum tilt. Use +3 with pink noise stimuli so that a "perfect" response will be a flat line. Use +6 to take the derivative of a step response to obtain an impulse response (normal frequency response). Use -6 to integrate an accelerometer output spectrum to get a velocity spectrum, or -12 for displacement.

New Memory Curves allow macro scripts to create on-the-fly frequency response corrections or modifications of displayed data, such as to create a Mirror Curve equivalent that yields a flat overall measured spectrum by compensating for the responses of both speaker and microphone.

New Index Range Cropping commands allow nulling of unwanted regions of macro arrays, such as for restricting the above-mentioned correction curves to avoid boosting out-of-band noise and response irregularities.

Y-log Spectrum or Spectrogram / Pitch Track (Sgram/PT) display ranges now allow fine adjustment. CTRL+PgUp increases the range in 1 dB steps, while CTRL+PgDn decreases it. ALT+PgUp and ALT+PgDn move in 1/16 dB steps. Include the SHIFT key with CTRL or ALT and the page keys to shift the top of the range in 1 dB or 1/16 dB steps.

The dB equivalents of the top and bottom pixels are now displayed via controls to the right of the trace area in Ylog Spectrum or Spectrogram modes, and can be set directly with better than 4 decimal places of fractional-dB resolution instead of using the above PgUp/Dn key combinations. The YlogScrnTop and YlogScrnBot commands allow macro control.

When the Spectrum or Spectrogram frequency axis is displayed in CPM (RPM) mode, the Cylinders control of the Frequency Counter now affects the displayed axis. This allows the axis to show true RPM when there is more than one pulse per revolution (such as with a multi-tooth sensor system).

Several macro commands that formerly used LI, RI, LO, or RO suffixes to indicate the applicable channel have been changed to use macro prefixes. For example, Display Channel commands DispLI, DispRI, DispLO, and DispRO are now LI.Disp, RI.Disp, LO.Disp, and RO.Disp. Other affected commands are Curve0-3, Tilt, WavgArt, SpavgArt, FileUnits, ZeroNull, and ZeroAdj.

New Range? query simplifies Macro Data Unit Conversions, replacing separate RangeDlg?, GainDlg?, and Atten_G? queries and channel-specific math. It also returns file range data when a .DQA file is open, which the separate commands do not.

Macro commands that allow specific channel selection via two-letter prefixes LI., RI., LO., or RO., including those noted above, can alternatively use the Ch. prefix to specify a channel previously set via the Ch Channel Select macro. Examples are Ch.Disp=1 to set a display channel, Ch.Curve0=1 to apply a Spectrum Curve, or Ch.TiltdB=3.01 to set dB/Octave for a Spectrum Tilt.

Macro Commands In MIDI Scripts allows the equivalent of over 20 main macro commands to be given via MIDI scripts using the GXX=n format, where XX is a special script ID representing the macro name. Values can also be read, or used in MIDI IF statements.

The LoadDAT command to load a Macro Array Buf0-Buf7 from an unsupported or headerless file type (which Daqarta designates as a .DAT file) has been greatly expanded to allow 8, 16, 24, or 32-bit "container" sample widths, plus separate "valid data bits" that may be justified high or low in the container, and may be normal 2s-complement, offset binary, or unsigned values. If an unsupported header is present, you can specify its size to be skipped over when loading data.

A Macro Array Buf0-Buf7 can now copy a string of up to 1024 characters from Daqarta Notes text directly to an array via Buf0="<NoteS", with one character per array element.

Like most other macro variables, individual Macro Array Buf0-Buf7 elements can now be set with simple quoted text of up to 4 characters for later display using the (A) alphanumeric format option. For example, Buf0[123]="Text" can be displayed via Msg=Buf0[123](A). (This is in addition to the longer text possible in String Storage.)

Macro Arrays Buf0-Buf7 can now be sorted numerically or alphanumerically into ascending or descending order, over a specified range of index values. Sort order can be transferred to other arrays to provide a linked sort. Look-up tables can be generated to find the original index of the Nth element in the sorted array, or the new index of the Nth element in the original array.

Macro Arrays Buf0-Buf7 can now copy sound card raw waveform data via Buf0="<=D1(n)" where D1 indicates the channel (Right In) and n is any variable or expression for a absolute sample number in the data stream to start the copy from, which may be much earlier than the current displayed waveform.

New MemArb MemArb0="<=D1(n)" command allows direct copying of raw sound card waveform data, similar to the above Macro Array command.

Macro Arrays Buf0-Buf7 can also copy waveform data from MemArb, Arb, or Play memory. They can likewise upload Buf0-Buf7 data back to that memory to create dynamic waveforms, or just to provide extra workspace.

Macro Arrays Buf0-Buf7 can now be filled with uniform random values between limits A and B via Buf0="<r(A,B)". Use Buf0="<rt(A,B)" to fill with a triangular distribution instead of uniform.

The above random fill and sort operations can be combined to quickly shuffle a list of values or short strings (up to 8 characters each). See Parallel Array Shuffle under Random Macro Values.

Spectrogram color palettes can now be copied to and from Macro Arrays. See Copy Spectrogram Palette To/From Buffer Block under Macro Array Copy/Swap Operations.

Daqarta now includes two Spectrogram palettes that you can load: GrayScale.PAL is handy for printing to a black and white printer, and Default.PAL for restoring the original colors afterward, or after creating your own custom palette.

A MIDI Changes script can now load Notes strings to a macro array Buf0-Buf7 via BLm0="<NoteS", as above. Scripts can also now use BLm0="<Notes" to copy value lists to a single-channel Buf0-Buf7 array, similar to Buf0="<Notes" preceded by Buf0#N=1.

New Copy buttons added to MIDI Voice Setup dialogs and to "floated" large Changes script editors to allow the entire MIDI Changes script text for that voice to the Windows Clipboard with single click.

New binary display format allows integer values to be displayed as a string of 1s and 0s. For example, if UX holds the decimal value 123, Msg=UX(b) will display 01111011. Use (b2) for a 16-bit (2 byte) value, or (b4) for a 32-bit (4 byte) value.

Macro Array Buf0-Buf7 file operations can now load text files that include (or consist entirely of) hexadecimal values preceded by 'h' as in h123ABC, or binary values preceded by 'b' as in b10110001.

New "roller" limit function limr(X,A,B) limits X to the range of values between A and B, but if it is above the range it "rolls" to the minimum, and if it is below it rolls to the maximum. limr(X) works the same, using preset limits.

With the default Run Preferences, changes made to the Generator setup or to the output volume normally cause a prompt to save the changed setup when you attempt to load a new setup, or to exit Daqarta. This doesn't happen if the changes are made by a macro, but it does happen if the macro waits for the user to make the changes manually. You can now use PrefChg#X=0 to block the prompt for Generator changes, or PrefVolChg#X=0 to block the prompt for volume changes.

Field strings read or tested as numeric variables now support binary value entry using 'b' prefix, along with other Daqarta number entry formats.

When using Buf0="<SaveWAV" or Buf0="<SaveDAT" commands to save a Macro Array Buf0-Buf7 to a .WAV or .DAT file, the most-negative value is now -32768 instead of -32767.

The Macro dialog now allows the Up/Dn arrow keys to move the highlighted selection in the macro list without having to click on an entry first.

You can now use LI.SpectCurve#X= (value ignored) to insure that no Spectrum Curve (or Tilt) is active for the channel specified by the prefix (LI. = Left In, in this example). You can use Ch. to specify the channel previously given via the Ch Channel Select command. You can also determine whether channel LI is using a Curve or Tilt by assigning a variable to LI.SpectCurve?X. The value will be -1 if it is not using any Curve or Tilt; otherwise it will hold the Curve number 0-3, or else 4 for Tilt.

Right-clicking any axis or the main trace display area now opens the appropriate Help topic. (Previously, right-click Help only worked for controls.)

In Windows Vista and later, the Left and Right Pitch-to-MIDI Volume controls always track each other, as do the Synth Volume control copies in the Synth Controls dialog. Now these controls behave the same way in Windows XP and Win9x, unless the 'Vol' button between them is toggled to unlock them and allow independent Left and Right volume.

Bug Fix: Loading MIDI or macro buffers from text files could cause Daqarta to lock up if the specified file was not found.

Bug Fix: Activating Pitch-to-MIDI while PSD (Power Spectral Density) mode was selected in the Spectrum dialog caused Daqarta to crash.

Bug Fix: Starting Daqarta, then opening both the Frequency Counter and Voltmeter without activating either the Generator or Input (so both meters showed blanks), then attempting to exit Daqarta caused it to crash.

Bug Fix: The Frequency Counter could show erroneous values when redrawn (by dragging, or when opening another dialog) until the next update. Noticeable at very low frequencies, or high Decimate factors.

Bug Fix: With high Decimate factors the display Trigger sync could be lost, and the Frequency Counter could show erroneous values.

Bug Fix: Decimate Factor was not included in the X=BufN?F frequency counting function used in the Multi_Meters macro mini-app, resulting in reported frequencies being too high by that factor.

Bug Fix: Values entered directly or read from a text file could give erroneous results when using exponential notation with negative exponents, as in 1.23e-4.

Bug Fix: Spectrum average display could not show values below -180 dB, normally only obtained by use of steep Spectrum Curve (.CRV) or Mic or Spkr Calibration (.CAL or .FRD) files.

Bug Fix: The Pulse_Meter macro mini-app could stop updating after an Input or Generator restart (which happens automatically on changing any Generator parameter).

Bug Fix: Using Buf0="<LoadWAV" to load a Macro Array Buf0-Buf7 from a .WAV file could give erroneous results if the .WAV header specified 24-bit data width but actually used 32-bit "container" width.

Bug Fix: When Buf0="<LoadWAV" loaded a 24-bit (data and container width) file, the lowest byte was erroneous.

Bug Fix: Macro Array Edge/Event/Trigger Detection returned erroneous value for interpolated event sample index Buf0?E or Buf0?e. Where the true value was integer sample N with fractional part F, the returned value was N+1 with fraction 1-F. For example, instead of 123.750 it reported 124.250.

Bug Fix: When a live Spectrogram was running, the initial X axis estimate was typically fairly close, but on the next full screen the axis was redrawn erroneously assuming 10 msec per column. Subsequent screens were correct.

Bug Fix: Some sound cards with only a single unnamed input line (super-cheap "dongle" USB sound output devices with Mic-only input) were not properly recognized, blocking access to Daqarta's F9 volume and Input controls. (Main Windows volume controls still worked.)

Bug Fix: FileUnits macro command sometimes failed to open the specified User Line dialog, or opened it with erroneous settings.

Bug Fix: When using Gen Sync trigger mode with Trigger Delay more negative than -1024 samples, the same exact data could be displayed on two successive trace updates.

Bug Fix: Using SHIFT+Home keys in Spectrogram mode to restore the default range top (right vertical color bar) failed to refresh the image of displayed file data.

Bug Fix: Trace updates stalled if Trigger was active in Gen Sync mode and the relevant Generator Tone Freq was set to 0.

Bug Fix: Under some conditions in full-duplex operation (simultaneous output and input) using Trigger with Gen Sync could cause Spectrogram to slow to half speed.

Bug Fix: File Info Time now shows time of last change, instead of creation time, for .WAV and .DAT files. (.DQA files have always shown time of last change.)

Bug Fix: Clicking in solid or dotted cursor X readout to begin direct entry caused the readout to freeze, until the entry was accepted by clicking elsewhere or hitting ENTER.

Bug Fix: Controls such as Cursor X readout, Trigger Level, Trigger Hysteresis, Data Zero Manual, or Spectrum Cursor Track Threshold may display values with a units prefix appended with one space after the value, as in '10.00000 m' for 10 mV. Attempting to edit such a value (instead of entering new a completely new value) produced unexpected results due to the embedded space, which is now properly ignored.

Bug Fix: Under certain conditions, attempting to unload a Spectrum Curve file could cause Daqarta to crash.

Bug Fix: Custom Spectrogram Palette files could not be saved or loaded if you installed Daqarta to a folder other than the default. Such palette files will now have a .PLT extension instead of .PAL, but are otherwise identical.

Bug Fix: WinVer read-only macro to test Windows version always returned TRUE when used in direct equality tests like IF.WinVer=5.1. Also now supports 2-digit versions like Windows 10, plus has new functions to return only the major or minor version numbers separately, or a special integer combination.

Bug Fix: RangeDlg? and GainDlg? queries returned 0 when a file was loaded, but now return proper values as if no file was loaded, just as Atten_dB? does.

Bug Fix: With Data Zero Manual set to a negative value, the Daqarta Voltmeter read a very large negative value with zero signal (instead of the negation of the negative Zero Manual).

Bug Fix: When a Windows file Save or Open dialog is active for selecting or entering a file name, all other Daqarta controls are now disabled until the dialog is closed. Prevents unintended multiple dialogs, or orphaning of the dialog through closing the caller.


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