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!

Very Long Scripts

Individual MMIDI Changes scripts for each Voice (or Percussion) are limited to 4095 characters total, including spaces, carriage returns, and line feeds. This is far more than ample for most scripts, especially since you are allowed to have multiple scripts running simultaneously. (See Concurrent Scripts.) But what if you need a single sequential script that is longer than one voice supports? As long as you have one or more voices whose scripts are unused, you can cascade multiple scripts together to make one big sequential script. The trick is for the first script to run to completion, then toggle the next script on and itself off. The next one does the same thing, and so on until the final script toggles the first one on and itself off. Once a script is off, it stops processing all commands until some other script turns it back on again. For example, at the end of the Voice 1 script, you could have c2=1 followed by c1=0, and at the end of the Voice 2 script c3=1 followed by c2=0, and finally at the end of the Voice 3 script c1=1 followed by c3=0. If you want your giant script to have some initialization commands (like setting oscillators or random value mode) or a lead-in or intro portion, followed by an infinite loop, you can't start the loop in the first script and end it in the last one. Instead, you end it in the first script. This script will shut itself off just before it gets to the loop end command. When it is finally awakened by the last script, it resumes processing and loops back to the start of the infinite loop. Note that a normal script without an infinite loop already behaves like one overall infinite loop, in that as soon as it processes its last command it goes back to the start. Since the last command will be to shut itself off, when it is later re-awakened by the script ahead of it, it will resume at its start... just like it did the very first time through. You can actually have infinite loops in the other scripts as well. They will behave the same way as the first one, but overall operation may be very confusing. If you make the second script similar to the first, with initialization commands followed by an infinite loop, then the initialization will run the first time that second script runs, which will be after the first script completes its first pass. On subsequent passes through the second script, the infinite loop will insure that its initialization code is not run again. This mode of operation is permissable, but not recommended. See also Changes Script Tips and Tricks, Changes Script Overview, Changes Script Editor, MIDI Voice Setup Dialogs, Pitch-to-MIDI dialog, Pitch Track Toolbox - Overview

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