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!

Random Melody Notes

In a DaqMusiq or KaleidoSynth performance from a random note stream, either from the default DaqMusiq random source, the Generator running a white noise setup, or from random room sounds with feedback, the performance can sound "musical" without having a definite melody.

For example, the Symphonic.DQM setup is melodious, but the specific note pattern does not repeat... you come away with a feeling of melody, and you might even be able to hum a typical passage, but the structure is too loose to be called a proper "song".

To make a more structured melody, as might be used in a popular song, you can use a "theme" that is repeated with variations, perhaps very specific variations, in an overall cycle.

The theme consists of two main aspects: A specific note pattern, and (usually) the relative velocity and timing of those notes. The remainder of this topic will deal with the note pattern; see Random Melody Velocities as well, which includes a discussion of timing. See JukeBox.DQM for an example of both.

You can obtain a random note pattern by using the random Buffer Fill command Bf, like this:


This fills Voice 1, Buffer 1 starting from the 0th position, with 8 notes randomly selected from the MIDI note range of 40 (E2) to 70 (A#4).

Alternatively, you could copy 8 notes from the input stream:


This fills the same buffer with 8 notes, starting from 7 notes ago (7) up to and including the current note (0).

If you then use the Input Select command i1=11 to tell Voice 1 to use this buffer instead of the input note stream, you will hear this 8-note measure repeated indefinitely.

You can then use the Buffer Copy command to copy this buffer to one or more others, then modify the copies. There are many modification options to try here:

Copy in reverse order by reversing the source indices.

Exchange part of the copied measure with another part.

Pivot the last part of the copy.

Add a constant value to one or more notes of the measure.

Use random Buffer Fill on part of the copy.

Repeat some notes in the measure.

Your script can then play each measure for some predetermined number of times. For example, with buffers 1 and 2 you could play 1, 1, 2, 1 or 1, 1, 2, 2 or 1, 1, 1, 2 (etc) as desired.

Since each buffer in the above examples is 8 notes long, you would use Wait commands that are multiples of 8 to get an integer number of measures.

You can play a measure a random number of times by using a Wait expression that is the product of the buffer note count and the random number of measures. For example, to play 1 to 3 measures of an 8-note buffer, use W=8*?(1,3).

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 - 2022 by Interstellar Research
All rights reserved