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!

MIDI Buffer Repeat and Note Adjust Maps

Changes: Br="string", Br=sN.i0, Bn="string", Bn=sN.i0

The Buffer Repeat Map (Br) and Note Adjust Map (Bn) are used with the Buffer Repeat Notes (BR) command in a MIDI Changes script. As such, they only work with normal voice buffers, not Velocity, Note, or Chord Patterns.

The Repeat Map command format is Br="string", and the Note Adjust Map is Bn="string". The quotes around the string are mandatory. Each string may be up to 16 characters long.

Alternatively, you can copy a string from a macro string array Str0 to Str7 via Br=sN.i0 for Repeat Map or Bn=sN.i0 for Note Adjust Map, where N is the string array number 0-7 and i0 is the starting index in the array to copy from.

The Repeat Map string is a list of digits that tell the Buffer Repeat Notes command how many copies of an original note are to appear in the final sequence. There is one Repeat Map character for each note in the original sequence, which is also limited to 16 notes maximum.

Since only one character is allowed per note position, to get more than 9 copies you must use letters A-G for 10-16 copies. This is similar to hexadecimal notation, with the addition of G for 16. (Heptadecimal?)

If the Repeat Map holds a '0' at any position, the corresponding note is removed instead of being repeated. The Repeat Map holds all zeros by default; if you don't set it, then the Buffer Repeat Notes command will remove all of the notes in its sequence. Similarly, if you set the Repeat Map with less characters than the count number you use in the Buffer Repeat Notes command, the excess notes will be removed.

A '.' (period) in the Repeat Map will cause the corresponding note to be replaced with silence; no copies will be made of that note.

The Note Adjust Map works in conjunction with the Repeat Map. It is used to adjust the note value of each copy of an original sequence note. It also holds up to 16 characters, but here they correspond to the copy number, not note sequence number: The first character is the amount (in semitones) to add to the first copy of any note, the second character is the amount to add to the second copy, and the 16th character is the amount to add to the 16th copy. In each case, the amount is added to the original note to get the copy value... the adjustment amounts are not cumulative.

One application of the Note Adjust Map is to make bass lines that walk up and down scales, with any step sizes you want. Suppose you set the Repeat Map to make 5 copies of each original note. If the Note Adjust Map holds "02420" then each original note will be replaced with a sequence of notes that walks up and back down to its original value. If the original notes were CFG the result would be CDEDCFGAGFGABAG.

A simpler application of this is just to use 2 copies of each note, such as the original and one step up.

Unlike the Repeat Map, the Note Adjust Map characters are not "heptadecimal". In order to allow both positive and negative adjustments, Note Pattern characters are used. You may use either the "key-relative" letter characters or the "input-relative" numerals and symbols. The letters allow the widest range, from -20 to +24 semitones. Note that the Pattern Key itself is not used here, so the letters, numerals, and symbols are all simply "note-relative". Thus, a 'C' is the same as a '0', and a 'D' is the same as a '2'.

Note: "Blue" notes (+/-1/2 semitone) using the '+' and '-' symbols are only supported for direct Note Pattern entry, either manually or via the Nv.i0="string" Changes command. In the Note Adjust Map these characters will be treated like '0's.

You can also use '.' in the Note Adjust Map to cause the corresponding copy note to be replaced with silence. See the Buffer Repeat Notes topic for an example that uses this to expand a note sequence such as CFG into C...F...C... 4-beat measures.

The Note Adjust Map is all zeros by default. You don't need to set it if you just want direct note copies, without adjustment.

See also Changes Script Buffer Operations, 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