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 Array Rotation (Scrolling)

Buf0="<>" rotates Buf0 right by one element. (The second caret > indicates the direction of rotation.) The value at index 0 is moved to index 1, while the value at index 1 moves to index 2 and so on. Finally, the value at index 1023 is moved to index 0.

Buf0="<<" rotates Buf0 left by one element, with the value at index 1023 moving to 1022, etc, until the value at index 0 is moved to 1023.

Buf0="<>B1" and Buf0="<<B1" operate similarly to the above, except here Buf0 and Buf1 are treated like a single large buffer of 2048 values. (For example, when rotating right, the last value in Buf1 replaces the first value in Buf0.) You can rotate any subset of buffers this way, up to and including Buf0="<>B7" and Buf0="<<B7" to rotate all 8 buffers (8192 values) as a unit. A macro error will result if you try to run a scroll command with the second buffer number smaller than the first, like Buf1="<>B0".

Alternatively, in this and any buffer command that uses a source (right side) buffer number, you may use an expression to specify the source by enclosing it in parentheses, as in Buf0="<>B(X+Y)".

The main use for these operations is to create scrolling history displays. Typically, you would use one of the Array Display options to tell Daqarta to plot the contents of (say) Buf0 on every trace update. You'd use Macro Multitasking by installing a Task that uses a Timer macro in a WHILE loop to wait for some desired scroll interval, such as once per second. Then it would use Buf0="<>" to rotate the buffer up one position, and insert a new value at Buf0[0] (overwriting the oldest value from index 1023 that was just rotated there).

If you use Buf0="<>B7" to rotate all eight buffers up, you still update Buf0[0] at each scroll interval, but you'd typically have used the display zero command to preset the buffers to be displayed at different vertical positions on the screen. A given event would move left to right across the Buf0 display line, then wrap to the Buf1 line and continue through 8192 intervals.

The actual values you display are up to you. You can, for example, use the Freq macro to read the current Frequency Counter value in Hz, RPM, msec, or a count total. (The Frequency Counter must be active to get valid values.) Similarly, Volts returns the current Voltmeter reading and SPL returns the current Sound Level Meter reading. You can use DeltY in Sigma cursor mode to get the RMS voltage between the two cursors on the selected trace, in either waveform or Spectrum mode, or use wSig, sSig, BwSig, or BsSig math functions to get similar values from arbitrary regions of any trace.

See also Macro Overview, Macro Arrays Buf0-Buf7


Questions? Comments? Contact us!

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