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 - v11.0.0

Daqarta v11.0.0 - 5 March 2020

New DaquinOscope macro mini-app uses an inexpensive Arduino Uno board to collect and display 1, 2, or 4 simultaneous 0-5 V DC analog channels or 1, 2, 4, or 8 simultaneous 0-5 V digital channels, with full triggering controls. Includes up to 4 optional square wave outputs, or 3 square waves plus a wavetable oscillator that drives a simple 8-bit R-2R DAC for 0-5 V analog output. (Free, no license needed!)

New DC_Chart_Recorder macro mini-app records up to 8 analog or digital DC input channels using Arduino or Numato GPIO boards. (Free, no license needed!)

New Arduino_Counter macro mini-app can measure waveform period and frequency, or high or low pulse widths. It can count single-pulse events or multi-pulse bursts. (Free, no license needed!)

Simple AC-to-DC Input Level Shifter and Limiter circuit allows Arduino, which normally only handles 0-5 volt DC inputs, to easily accomodate AC analog signals such as sound card outputs. Can be used with above DaquinOscope, DC_Chart_Recorder and Arduino_Counter mini-apps.

New Arduino_Oscillators macro mini-app generates up to 4 square waves with adjustable frequency and phase on Arduino digital output pins. (Free, no license needed!)

New Arduino_RCtime macro mini-app can simultaneously measure resistance or capacitance on any or all of Arduino digital input pins 2-7. (Free, no license needed!)

New Arduino_Race_Timer can time races with up to 6 contestants, reporting times and entrant names in the order they come in. Contestants can be people or animals running a foot race, or real or model cars in a drag race, soapbox derby, or pinewood derby, or any sort of race-type situation with separate start and end points and no multiple laps. Can also be used as a reaction timer, either for indivivual training or competition among up to 6 contestants. (Free, no license needed!)

New Port macro command set allows Daqarta to control USB and serial port devices such as Arduino and Numato GPIO boards.

New DaqPort Arduino Sketch can be uploaded to Arduino program memory, allowing the Arduino to act as a peripheral device controlled by Daqarta via USB / serial port commands to support the above DaquinOscope, DC_Chart_Recorder, Arduino_Counter, Arduino_RCtime, and Arduino_Race_Timer mini-apps. (Open source - may be used with other software and extended or modified as needed.)

Isolation topic now includes tests and recommendations for two inexpensive USB isolators.

New Full-Scale Range - DaquinOscope Method topic added to Full-Scale Range sound card calibration topic. Updated Full-Scale Range - Input Voltage Method to include Arduino, Numato, and simple CMOS square sources as well as enhanced manual switch method.

Enhanced Engine_Sim macro mini-app now allows a Custom Profile List to support 3-sensor (CKP/TDC/CYP) engines where the CYP pulse is not one of the TDC pulses, but has its own position and width.

New Multi-Channel Volume Controls provide independent controls for up to 8 Multi-Channel Outputs. (Sorry, only for Windows XP at present; Vista/7/8/10/11 support coming in next Daqarta version.)

The Spectrum RMS button now affects Y-log (dB) mode by reducing the display and cursor readings by 3.0103 dB. The Y-axis header will show dB V RMS if active, versus dB V Pk (peak amplitude) if not. With User Units, it will show dB:Pa RMS instead of dB:Pa (or whatever unit is in use). The RMS button is ignored in SPL mode, since RMS is mandatory for SPL measurements (including via the Sound Level Meter or using the Voltmeter to read SPL in its dB mode). In that case there is no RMS indication on the Y-axis header; it just shows dB SPL.

New DDisk Cursor Units toggle in the DDisk control dialog allows cursor position readouts to show time (or bytes or samples) relative to the start of the file instead of the normal start of the display frame. When reviewing long files, this makes it easier to locate an event whose time you have noted or logged elsewhere.

Buf0-7 Macro Array Copy/Swap Operations now include Copy From USB/Serial Port commands to copy the Device Control Block (DCB) from an open port, and to copy 1024-sample blocks of analog or digital data from an Arduino running DaqPort. (Discusssed in detail in Port Setup Commands and Special Bulk Data Read sections of USB / Serial Communications Port Access topic.)

Macro IF statements now support AND, OR, and XOR operators, allowing multiple expression tests in the same IF. For example, even though IF.(A=4) || (B=5) is not supported directly, you can now get the same result via:

        ;Commands here will run if A=4 OR B=5
        ;Commands here will run if neither is true

The above AND, OR, and XOR operators can also be applied to WHILE statements.

Although Daqarta 32-bit integers and 32.32 fixed-point variables are always treated as signed values in the range of 2^31-1 to -2^31, unsigned 32-bit integers from such sources as Arduino boards can now be handled properly when converted to floating point variables via the new A=uns(UA) Macro Math Function.

Macro String Arrays Str0-Str7 now include options for writing and reading binary values, not just text strings, allowing high-density variable storage with easy indexing.

String expressions now allow selectable formats by using a Macro String Array to hold multiple formats selected by simple variables, as in Mtr0=V(Str0[10 * UN]) to show different decimal places depending on UN. Alternatively, the new Fmt variables can be used to hold up to 10 different formats that can be changed as needed, and used as in Mtr0=V(Fmt?9).

New _Get_String macro subroutine provides an easy way for users to enter a string or value needed by a caller macro, such as oscillator pin number in DaquinOscope.

New WaitBtns Button Select Macro provides a simple way for macros to obtain user input via a panel of up to 8 buttons, with programmable labels and normal or "radio button" operation.

Spectrum Window Width now includes an offset button that allows reduced widths (512, 256, or 128) samples to be shifted to the start '<' or end '>' of the 1024 data samples used in computing the spectrum of each channel, instead of the default center 'o'. Needed for use with DaquinOscope for spectra of multi-channel analog data.

New Enable macro command allows macros to disable selected controls, dialogs, and menus, and to enable them later. Can be used to prevent inadvertent manual activation of controls that are incompatible with a running macro, or which might compromise test results. Controls disabled this way can still be activated by the macro.

Enable#IG replaces former Posn#I command.

The Square Wave dialog now includes a Square Wave Freq control that is a duplicate of the normal Tone Freq control for convenience, plus displays of computed Jitter Frequency and Jitter Period for Snap mode.

Upload To Waveform Channel subtopic in Macro Array Copy/Swap Operations section now includes information about subsequent processing capabilities. Macro Array Display Operations now includes Direct Display vs. Uploaded Data comparison subtopic, as well as new Upload Display Bitmap subtopic with discussion of new Buf0#d=UB command. Main Display Buttons subtopic discusses new Buf0#Ch=n command. Used for process and display of non-sound-card data, such as from an Arduino or Numato device that uses Port Access. Used by DC_Chart_Recorder and DaquinOscope macro mini-apps.

String Variables and Expressions now includes Binary-to-String Format options which allow binary values to be sent as-is to strings, such as when sending data for USB / Serial Communications Port Access.

Macro Array File Operations now allow saving and loading of 8-channel files in .BUF, .DAT, .WAV, .DQA, or .TXT format.

New Buf0#M=n command in Macro Array File Operations allows bitmap n to specify arbitrary non-sequential buffers for Save command.

File Open now allows opening 8-channel .DQA, .WAV, or .DAT files, even though Daqarta only displays 4 channels at a time. The Display Channels buttons at the lower left of the display will be labeled Ch0-Ch3 (default) and Up/Down arrows will appear to their right, allowing display (and cursor readout) of any 4 adjacent channels, from Ch0-Ch3 to Ch4-Ch7.

Custom Controls now allow pre-invocation operation of individual controls, before the controls are visible.

Filename Auto-Increment can now be applied separately to Macro Array File saves via AutoInc#Bu=1 just before a save such as Buf0="<SaveDQA". Alternatively, AutoInc#Bu=2 applies the current main Auto-Increment state, whether set via an AutoInc macro or the main File Menu option. Variants of the AutoInc macro command can now reset the count and base name for BufN as well as main file saves like SaveDQA.

Zero control dialog now includes Individual Screen Zero mode with separate controls for each channel. This allows traces to be spaced to avoid overlap, for easier viewing.

The Arb_From_Equation macro mini-app now includes 11 additional Arb waveform files (42 total). The new files include simple Sine, Ramp, and Triangle waves for use with the DaquinOscope Wave Oscillator function, plus a new Sine Series section with complete code, waveform images, and discussions for Ramp (Sawtooth), Square, Triangle, and Equal-Amplitude sine series.

New fixed-point Special Macro-MIDI Variables Posn#i to Posn#o join special integers Posn#0 to Posn#9, allowing easy communication between main Daqarta macro scripts and MIDI Changes scripts. Since Daqarta variables are global and can be accessed directly by macros and their subroutines, these special variables are convenient to use for parameters that are passed to or received from subroutines, or used for internal subroutine calculations. This helps to avoid accidental re-use of main macro variables.

String Arrays Str0-Str7 now may be used in indirect macro subroutine calls such as @@Str7[400], where the name of the subroutine has been previously stored at the indicated location.

The WaitKey Event Wait macro now allows WaitKey=127 (or above) to wait for Enter (13), TAB (9), or Backspace (8) as well as any displayable character, with the actual key readable via the Key state macro as Key?#.

New MsgStyle x option allows messages to be shown without an [X] in the title bar, which might otherwise allow users to cancel while a macro like _Get_String is waiting for character entry via WaitKey.

X-Axis eXpand Max and Min macros XpandMax and XpandMin now allow use of #N suffix to set in units of display width. In waveform display mode, for example, XpandMax#N=UX allows UX values up to the maximum display width of 1023. This allows setting a fixed fraction of the full-scale display width, regardless of the sample rate.

New Posn?L macro reads the mouse wheel counter, allowing macro scripts to control any Daqarta parameter via wheel motion.

Updated Aliasing Demonstration using new AliasDemo.GEN using swept 4-component sine series created above.

Help menu now includes List of Included Files option with links to the relevant Help topic for each file. For example, if you have noticed a file named Arb_Agnesi.DAT among the DD / Open data files, you can look it up in the Included Files list under "Headerless Data (.DAT) Files" and click on it. You'll be taken to the "Witch of Agnesi" subtopic under the Arb_From_Equation macro mini-app for a full description.

New Buf0="<>(UX)" rotates macro array Buf0 by UX positions, where positive UX rotates right (up) and negative rotates down.

New LoopBreak=0 command allows IF Statements to provide early exit from subroutine macros. LoopBreak=-1 additionally exits all callers as well, providing a more user-friendly alternative to Cancel= to abort a macro.

New str() Integer To String function returns the equivalent 4-character ASCII string of an unsigned integer. For example, if UI = 8 then str(UI) returns h30303038 = "0008", while if UI = 16 it returns h30303136 = "0016", etc.

New bcnt() Bit Count function returns the number of bits set in the variable or expression in parentheses. Values are rounded to 32-bit integers before evaluation; a value of -1 always returns 32

New special bit channel select command Ch#n=UA enables Port Bulk Read commands for DaquinOscope digital inputs BufV#Dn=Port?D and BufV#Dn=Port?C to use separate variables to specify bit number, as well as buffer number Ch.

New Synth macro for the Synthesizer (CTRL+N) option allows pitch bend and direct macro control.

Macros can now set Trigger Delay directly in samples, regardless of the current Smpls/sec state, using TrigDelay#N=UD, where UD can be any value or expression. You can read the current delay in samples via UD=TrigDelay?N.

New Posn?A Miscellaneous Position macro returns a bitmap of active channels.

New Disp?m returns a bitmap of displayed channels.

New Posn?z Miscellaneous Position macro now returns the most-recent FileName size, including variants for various portions of the full path and file name.

Macro Array Display Operations Buf0#R, Buf0#Rs, and Macro Array File Operation Buf0#Rf now allow effective display sample rates of over 2 GHz.

New Macro Array Display Operation Buf0#VU allows setting a Unipolar display range, while Buf0#Vx=1 allows Buf0#V, Buf0#VU, and Buf0#Vs ranges to be shown regardless of the User Units state. Buf0#Vx=0 restores the normal vertical axis, while Buf0#Vx=2 specifies that all BufN file saves use the current #V or #VU values, instead of #Vf.

If the Daqarta installer detects that Daqarta is already running, it now displays "Please close Daqarta if open, then hit OK to proceed." Allows closing a running Daqarta and continuing, also allows continuing if the problem was Windows Explorer erroneously claiming Daqarta was open.

New Column Display Tips section added to String Variables and Expressions Help topic.

Bug Fix: When the Voltmeter is in dB mode, with User Units active and a calibration file loaded for the selected Voltmeter channel, the meter should show dB (including SPL) relative to the baseline calilbration Units/Volt (or dB:Units/Volt). Any frequency response calibration data should be ignored, since the meter operates on the raw waveform data without any filtering. But a correction for the response peak dB (needed for Spectrum operations, which do consider frequency response) was erroneously applied to the baseline.

Bug Fix: The THD_Meter macro mini-app did not work properly in External Source mode since it was assuming the internal source frequency instead of the tracked frequency.

Bug Fix: Any error in a multitasking macro task now causes all tasks to be uninstalled. This prevents Daqarta crashing in certain cases where a problem in one task causes problems in other tasks.

Bug Fix: When appending macro array (Buf0-7) data to an existing .WAV or .DQA file such as with A.Buf0="<SAveWAV:MyFile", short appends could cause excess file growth and inability to read File Info when later opened.

Bug Fix: Remote Control utility programs DqaDlg (dialog based) and DqaCmd (command line) have been updated. These are in the Documents - Daqarta - Utility folder. Formerly, they could not communicate with Daqarta if a file was open such that its name appeared in Daqarta's title bar.

Bug Fix: When a custom sample rate was set for macro array (Buf0-7) file saves in .WAV or .DQA formats using Buf0#Rf=n, the rate was not included in subsequent appends to the file.

Bug Fix: Custom Meters Mtr0 - Mtr3 could not be resized when used in Multitasking Macros.

Bug Fix: Macro expressions using certain combinations of operations in nested parentheses were not parsed correctly.

Bug Fix: Certain string expressions with trailing comments or inappropriate trailing characters gave improper results.

Bug Fix: Spectrum Y-log (dB / power spectrum) displays for averaged data (waveform or spectrum average) could be erroneous in extreme cases, where lots of negative Spectrum Curve or Tilt sent the lowest values below -180 dB and the display magnification was set to show only a small dB range.

Bug Fix: Square Wave Interpolate mode was causing occasional spurious bursts of clicks at certain frequencies.

Bug Fix: The Square Wave Snap/Interpolate display state was not always shown properly for the current Generator Stream.

Bug Fix: When the Chart Recorder macro mini-app was in Pause mode, trace cursor motion caused the display to update with the latest data. This thwarted efforts to position the cursors at waveform points of interest.

Bug Fix: With attenuator Options set to Use dB, clicking the Generator Volume/dB Slider Button (which would be marked 'dB' in this case) instead of using the F9 key could cause Daqarta to hang.

Bug Fix: Toggling Windows volume mute button did not update the Mute buttons in Daqarta's Generator Volume Slider or dB Slider dialogs.

Bug Fix: Data Zero Manual Adjust macro commands LI.Zero, etc, sometimes gave strange results.

Bug Fix: With attenuator Options set to Use dB, and dB Relative toggled to 'dB User Units', changes to various User Units controls such as Units/Volt factor or Units Name did not automatically update the Generator dB Slider readouts.

Bug Fix: If Generator dB Slider was active, toggling Synth or Pitch-to-MIDI on now properly reverts to the volume step slider, since there is no dB-vs-step calibration for MIDI outputs.

Bug Fix: Certain macro IF tests failed when comparing indexed variables to immediate strings, such as IF.Buf[123]="Test".

Bug Fix: Internal headers for .WAV and .DQA files saved via Macro Array File Operations such as Buf0="<SAveWAV:MyFile" did not indicate the number of channels correctly if greater than 2.

Bug Fix: The Buf0#N command to set the number of buffers to be used for a file operation or a Copy List From Notes command was erroneously limiting to one less than the maximum buffer number, failed if Buf6#N=2 or Buf4#N=4.

Bug Fix: The Buf0#R command discussed in Macro Array Display Operations under "Display Axes and Units" did not automatically update the cursor readout X-position values until the cursors were moved.

Bug Fix: Named 2-state toggle macros such as SmplSec="smpl" always forced the active state ("sec" in this case).

Bug Fix: Special Macro-MIDI variables Posn#0 to Posn#9 did not allow scroll by +/- 1 (Posn#0=>1 or Posn#0=>-1) that is supported in most other variables.

Bug Fix: WAV_to_BMP macro Mini-App now allows operation after trial period, and on systems with no Master Mute control.

Bug Fix: String Array copying between indexes such as Str1=Str0[0,100] did not work properly.

Bug Fix: String numerical evaluation using A=Str0?E[100,123] format failed if first character was null. Now returns 0.

Bug Fix: XpandMax and XpandMin macros to set X-Axis eXpand Max and Min limits did not work properly in Histogram mode.

Bug Fix: CursChan and CursChanDot macros to set active readout channels now accept variables and expressions, not just immediate values.

Bug Fix: IF tests comparing the contents of a Custom Macro Message (Msg) to a String Array, as in IF.Msg=Str0[10,20] now work properly. (The Msg character order was previously reversed for the IF test.)

Bug Fix: Decimate button and other Slow controls in X-Axis dialog were getting re-enabled on Averager completion, despite display still being in Pause mode. Now re-enabled only after subsequent unPause.

Bug Fix: File name Auto-Increment did not work properly with macro file saves such as SaveDQA="MyFile".

Bug Fix: The AutoInc macro was always toggling the Auto-Increment state, regardless of the value supplied. This caused files to be saved with the same name twice before increment and repeat.

Bug Fix: Custom Controls labels and titles are now properly limited to 32 characters. Previously, a longer entry could overwrite the following entry.

Bug Fix: LogName#0 macro variant to clear named log file before writing (instead of appending) was erroneously defaulting to .CRV extension in App_Data folder instead of .TXT in User_Data.

Bug Fix: On Windows XP systems where only Master Mute (not Wave Mute) was set in the Generator Volume Slider dialog, switching the attenuator Options to Use dB resulted in the dB slider dialog not showing Mute active.

Bug Fix: On Windows XP systems which have separate Master and Wave output volume controls, the attenuator Options dialog could improperly enable Use dB if only one of the two were calibrated. (They must be combined to get overall dB for the dB slider, so both must be calibrated.)

Bug Fix: Macro IF statements that test "radio button" variables using names (such as IF.Wave="Sine" instead of values such as IF.Wave=0) could result in a subsequent unexpected jump in Y-log (dB) Spectrum axis to its most-sensitive range.

Bug Fix: Display of "Uncal" and/or "PSD" above Y-axis header in Spectrum Y-log (dB) mode could include spurious trailing "[" symbol in certain cases.

Bug Fix: Spectrum Window Width button always showed 'Width 1024' on Spectrum dialog open, instead of proper value.

Bug Fix: If appending to existing Mtr0-Mtr3 meter text using a trailing n newline, as in Mtr0=Mtr0 + A +p20 +B +n, the newline was ignored and the following line would lose all padding (from p20, etc) and just append with no spaces.

Bug Fix: When using monospace fonts like Lucida Console with Mtr0-3, Msg, or Notes, the underscore in a number format like A(8_0) was not handled properly, adding extra spaces needed for other fonts (where a space character is only half as wide as visible characters).

Bug Fix: Macro variables formatted for H:M:S time display with no seconds decimal places specified, such as Mtr0=X(T) now default to 3 places (equivalent to Mtr0=X(T.3)) instead of none.

Bug Fix; Long delta cursor readout values of -1000.00000 or more caused truncation of 'm' unit prefix to apparent 'r'.


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