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!

GlossyBlack.DQM And Related MIDI Setups


There are actually several closely-related setups: GlossyBlack, GlossyWhite, GlossyBlue, and GlossyChrome.

Right-clicking on the Pitch-to-MIDI title bar (or any non-control portion of the dialog) will open Help at this topic when GlossyBlack, White, Blue, or Chrome are loaded.

Each of these Glossy setups is essentially 8 concurrent voices of JukeBox.DQM, each voice playing a different random melody of a random length, and using a different random instrument. Just as in JukeBox, when each voice finishes its song it begins another random melody with a random length using a different random instrument. Since voices typically have different song lengths, they finish and restart at different times. This feature promotes smooth transitions in the overall performance.

Random Possibilities:

Each song uses two random 7-to-11 note sequences, or 14 to 22 notes in the pattern. Considering an average of 18 notes, with each note randomly selected from 41 different values, there would be 41^18 or just over 10^29 different songs. With 8 different songs playing simultaneously there would be 10^29^8 or more than 10^232 different possible performances, assuming that a performance ended after one 8-voice set of songs... which it certainly does not.

This is an absurdly large number; for comparison, at the default tempo of 300 BPM only 2.2 * 10^18 notes could have been played since the universe began 14 billion years ago. Given that there are only about 10^80 elementary particles in the universe, even if every one of them played DaqMusiq they would only have played 2.2 * 10^98 notes since the beginning of time.

And this doesn't even include the number of possible arrangements of instruments. With 8 voices, each playing one of 119 random instruments, there are 119^8, or over 4 * 10^16 possible arrangements for each of those performances.

So when you hear something you really like, don't even think about staying up late in the hope that you'll hear it a second time.

Luckily, you don't have to do that...

Repeating a Performance:

Like JukeBox, the Glossy setups select an initial random seed from one of over 4 billion values (2^32-1), and then switch the random generator into pseudo-random mode. If you manually force the same initial seed instead of using a random value, the performance will repeat exactly every time.

So, to repeat a particular performance, highlight and copy (CTRL+C) the random seed value displayed at the lower left. (This is the seed at the start of the overall performance, not the seed at the start of each JukeBox-like voice.) Let's say it is 'h12345678'. Now insert a line right after ?s=?(-3G,3G) (2nd from top) in the Voice 1 Changes script. Enter ?s=, then paste in the copied seed: ?s=h12345678. This will replace the randomly-chosen initial seed so that each performance will now be identical. To go back to totally random, insert a semicolon at the start of this line. That will turn the line into a comment, while preserving the seed for later use.

Besides the seed for the performance, you might also note the elapsed time (at the left of the Pitch-to-MIDI On/Off button) when the "good part" starts.

Note: If you are disappointed at being limited to only 4 billion different performances, you should be comforted by the fact that each of those performances will continue without repeating until the random generator repeats the same value as the initial seed (every 14 years) and all 8 random-length songs happen to end at exactly the same time, on that exact same beat.

Glossy Differences:

The "Black" in GlossyBlack.DQM refers to the fact that all voices use the Pentatonic Major scale (only black keys). In the same vein, GlossyWhite.DQM uses a Major scale (only white keys), GlossyChrome.DQM uses a Chromatic scale (all keys), and GlossyBlue uses a Blues Major scale.

Most people will find GlossyBlack to be quite listenable most of the time, typically lively and cheerful at the default Tempo of 300 BPM. It sounds somewhat like a folk music jam session, while GlossyBlue is more like a jazz or blues jam session. GlossyWhite is also typically pleasant but likely to have more "challenging" passages, while GlossyChrome is definitely in the "New Music" camp. But all of these are highly variable, and considerably more interesting than the simple JukeBox. Don't give up too soon if GlossyChrome, say, starts out sounding like an orchestra tuning up... it may get better (depending on your musical tastes). If you don't want to wait, toggle it off and back on to get a whole new set of melodies and instruments.

GlossyBlack Voice 1 Changes Script:

Bv="0_8_8_8_8_8_8888"   ;Buffer Velocity Map
?s=?(-3G,3G)            ;32-bit random seed
?x=0                    ;Set pseudo-random mode
oLh=s                   ;Display random seed
UL=7                    ;Base pattern lower size limit
UU=11                   ;Base pattern upper size limit

{!                      ;Infinite loop
;TB=?(200,400)          ;Optional random Tempo
I1=?(0,118)             ;Random Instrument
U1=?(UL,UU)             ;Random pattern length
oR=U1                   ;Display pattern length
V1.0="8"                ;1st note always sounds
Bf1V.1=(?(0,15),U1-1)   ;Random Velocity Pattern
Bf11.0=(?(40,80),U1)    ;Random Note Buffer 1 Fill
Bf12.0=(?(40,80),U1)    ;Random Note Buffer 2 Fill
{2                      ;Play 2 complete verses
i1=11 W=2*U1            ;select Buf 1, play twice
i1=12 W=U1              ;Buffer 2, play once
i1=11 W=U1              ;Buffer 1, play once
i1=12 W=U1              ;Buffer 2, play once
i1=11 W=U1              ;Buffer 1, play once
}                       ;End of verse
s1=1                    ;Sustain after 2nd verse
X1=0                    ;Voice 1 Instrument off
W=4                     ;Hold (wait) 4 beats
s1=0                    ;Sustain off
W=4                     ;Rest 4 beats
X1=1                    ;Instrument on
}                       ;End of infinite loop

Tempo Changes, Manual or Scripted:

Changing the Tempo can make a big difference. You can do that manually via the control near the top of the Pitch-to-MIDI dialog.

But these four Glossy setups already include an option to change tempo smoothly and semi-randomly, as the sum of two slow oscillators with non-integral frequencies. To activate this, click on the Percussion Setup button at the bottom left, then click on Changes near the bottom of the dialog that opens.

This activates the Percussion Changes script, which runs independently without Percussion being active. The script consists of:



The first two lines set up real-time oscillators $1 and $2 at 0.027 and 0.039 Hz, respectively. Then an infinite loop runs, which on every beat (W=1) sets Tempo Beats to the sum of the two oscillator outputs. Each oscillator is scaled to run between 50 and 200, so together the sum runs between 100 and 400 BPM. Because the two oscillator frequencies don't have a simple integer relationship, the pattern of their sum doesn't repeat in any obvious way. But because they change slowly and smoothly, the tempo doesn't jump around erratically. Feel free to try other frequencies for faster or more-repeatable tempo changes.

An additional option is included here: If you remove the comment semicolon from the ;TB=-400*mY/mH+500 line and place it in front of the line below it, the oscillators will be ignored. Instead, the tempo will be controlled by mouse position, with the top of the screen giving 500 BPM and the bottom giving 100 BPM. (Horizontal position is not used here.)

Finally, if you toggle Percussion Changes back off and go to the Voice 1 Setup dialog you can try completely random tempo changes. Scroll down in the Changes script editor, and remove the comment semicolon from ;TB=?(200,400). This will set a new random tempo between 200 and 400 BPM each time Voice 1 starts a new melody pattern. (There is no analogous line in the other voice scripts; since the voices restart at unpredictable times, that could lead to rapid tempo jumps. But feel free to experiment!)

One feature of this last approach is that once a slow tempo is set, it takes a while to finish and get back to set the next random tempo. On the other hand, a fast tempo finishes sooner and moves on to the next tempo. Another feature is that the tempo can jump dramatically, which can sometimes be a good thing, and sometimes be unsettling.

Ideas To Try:

Besides the suggestions in the Ideas to Try section under JukeBox, consider the following as well.

After listening for a while, you may notice that the performance sounds better when there are more percussive instruments playing (including plucked and struck strings), and less continuous-tone string and wind instruments. You can encourage this by changing the random instrument number assignment from Iv=?(0,118) to a more-restricted range for each voice.

Consult the General MIDI Instrument Sounds list. For the percussive-type instruments you can use 0-15 for Piano and Chromatic Percussion together. Guitars 24-28 are OK for this use as well, but 29-31 are probably too sustained. Bass instruments 32-39 are fine, and the last few Strings instruments 45-47 are excellent. Ethnic instruments 104-108 are fine, as are Percussive 112-118. (Reverse Cymbal 119 is really more of a Sound Effect.)

You can use different voices for different percussive groups, and use only a few voices for continuous-tone instruments. See the Random Selection from a Buffer section under Random Variables for a way to make your own list of instruments to be randomly selected from.

Also, try mixing different scales. In particular, Pentatonic Major goes well with most everything. So you might want to use that for most voices, but use Chromatic or Major for a continuous-tone solo voice. To be more daring you can assign scales randomly, using Sv=?(1,4095) if you want to allow every possibility. Or store a few favorites in a block of user variables (say, UV to UZ) and select randomly from among them using Sv=?VZ. (See Random Selection from a User Variable List under Random Variables.)

You might consider setting some very short patterns on one or more voices, and increasing the number of "verses" (the inner loop count which is presently set to 2... see the JukeBox listing) so that you get a long but simple repeating background.

As for JukeBox, each voice slowly pans around as it plays. Instead, try setting a random fixed position when the instrument changes at the start of a song. The idea is to mimic the effect of a large band or orchestra where different instruments naturally have different fixed locations. You could assign pan position based on instrument number, so each instrument has a permanent fixed position whenever it appears, but a random location is probably more interesting.

See also "Glossy" MIDI Setup Family Example MIDI Setup Files, MIDI Setup Files, Musical Frontiers, DaqMusiq, KaleidoSynth, Pitch-to-MIDI dialog, Pitch Track Toolbox - Overview, Spectrogram / Pitch Track Controls, Spectrogram / Pitch Track (Sgram/PT)


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