Data AcQuisition And Real-Time AnalysisScope - Spectrum - Spectrogram - Signal Generator
Software for Windows
Science with your Sound Card!
Contact us about
Voice Velocity Pattern
MIDI velocity refers to the speed or force with which a note is hit on a piano keyboard. On a real piano the tone color as well as the loudness is affected. On a MIDI synthesizer, a particular instrument may or may not change tone color with velocity, but the effective volume always changes.
A Velocity Pattern specifies the velocities of individual notes. Although MIDI velocity ranges from 0 (off) to a maximum of 127, a Velocity Pattern uses only a single character for each velocity. Fixed velocity characters are '0' (off) to '8' (MIDI 127), with 16 MIDI steps between each of the characters (except the last).
In addition to the normal 0-8 fixed velocity characters, you can use letters to indicate that the velocity should be a random value within a specified range. The allows for a more "human" performance. (See the Velocity Pattern Character Table for a complete list.)
For example 'b' specifies that the velocity should be between '6' and '7'. Since '6' normally encodes a true MIDI velocity of 96 and '7' encodes 112, there is a 16-step range of MIDI values covered by 'b'. The actual value used will be randomly chosen from this range each time the note is played.
A Velocity Pattern is generally not used when tracking a live input. If you leave it blank (along with Note and Chord Patterns), it is the same as '8': All notes are played at maximum velocity. You can then use the Velocity Track option to track the actual input level.
When you use Velocity Track with Velocity Pattern characters, the final MIDI velocity is scaled proportional to the current Pitch Track amplitude, relative to full scale for the current Spectrogram/Pitch Track range. (See Adjusting for optimum Velocity Track range in the Velocity Track topic.)
You can enter a pattern of up to 256 notes. This control uses a fixed-width font so that each character lines up with the proper position indicator above it, as well as any corresponding Note Pattern or Chord Pattern entries below. You can use normal mouse or keyboard scroll operations during entry, or the Pattern Scroll controls for later review.
You can use '_', '=', or '-' to indicate that the prior note should be sustained. You can string together as many of these as needed, such as to sustain a chord for multiple beats.
You can use '.' (period) instead of '0' to indicate silence. This makes it more obvious in the pattern. A blank space will also work, but should be avoided due to possible problems with the Windows copy (CTRL+C) and paste (CTRL+V) operations should you later use these.
There are two different approaches to controlling velocities from MIDI scripts: Using commands that set or change the Velocity Pattern directly, discussed below, and using Velocity Maps that translate random or semi-random values into a working pattern with controllable probabilities.
Vv.i0="string" sets "string" characters to the Velocity Pattern for Voice v starting at position index i0, which which may be any unsigned integer or valid expression, including current MIDI control values, random values, current computer keyboard states or mouse position, input or buffered notes, or oscillators. The period before the index must be present. The index value will be limited to 0-255.
Alternatively, you can copy a string from a macro string array Str0 to Str7 via Vv.i0=sN.i1 where N is the string array number 0-7 and i1 is the starting index in the string array to copy from.
If the Voice index i0 points to a position past the end of the current pattern, the intervening positions will be padded with silence.
The entered "string" must include the surrounding quotes, and may have an arbitrary number of characters. Any characters that would extend past the 255 position will be truncated.
Note that you can use pv=n to set the overall pattern position pointer at any time. See the discussion under Voice Pattern Overview.
Note that you may also use the Buffer Copy or Xchange commands to copy or swap selected portions of the same or two different Velocity Patterns, including reversing their sequence.
If you use Vv on the right side of an expression, it returns the length of the Velocity Pattern for voice v.
Note that you can not use "voice" 9 to set all voice patterns or pointers at once.
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