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!

Macro Arrays Buf0-Buf7, BufV

Eight BufN macro arrays or "buffers" Buf0 through Buf7 each consist of 1024 signed fixed-point real numbers with 32-bit integer and 32-bit fraction parts, for 64-bit overall precision. The integer range is approximately +/-2 billion; the fraction resolution is about 1 part in 4 billion, or better than 9 decimal places.

Each element in an array has an index 0-1023. You can treat individual elements as simple macro variables by using the form Buf0[I], where index I can be a constant, variable, or expression:

Buf0[100] = Buf1[A] / Buf2[B-C]

If the index has a fractional part, it is truncated (not rounded). (But you can use Buf0?i[X] to interpolate between values... see Array Math Operations.)

However, the main use of BufN arrays is with operations that act on the entire buffer as a unit. These operations have the general form Buf0="<+(K)", where everything to the right of the equal sign is in quotes, and a left caret (<) follows the quote immediately. The symbol or code for the operation follows the caret. In this example, each element of Buf0 will have the current value of K added to it as described in Array Math Operations.

Note that the N in BufN must be an explicit digit 0-7 (but see below). However, certain commands refer to a buffer number on the right side of the equation, such as Buf0="<=B1" to copy each element of Buf1 to the corresponding element of Buf0. In such cases, the explicit digit may be replaced by an expression by enclosing it in parentheses, as in Buf0="<=B(X+Y)".

You can use BufV on the left side instead of an explicit-digit BufN. This allows a variable buffer number, which you must previously set via Ch=N. This will work with all buffer operations.

Many array operations will be on data obtained from raw input or output processes. See Macro Data Unit Conversions for scaling and calibration issues.

Alternatively, instead of 64-bit values, each array element can hold up to 8 characters of ASCII text, and elements can be accessed in groups of 2, 4, 8, 16, 32, 64, 128, or 256 to provide string storage of up to 8, 16, 32, 64, 128, 256, 512, 1024, or 2048 characters per entry.

Note that you can also use MemArbs as general-purpose arrays for values in the +/-32767 range. These arrays can have sizes of 1024, 2048, 4096, 8192, or 16384 values.


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