Data AcQuisition And Real-Time AnalysisScope - Spectrum - Spectrogram - Signal Generator
Software for Windows
Science with your Sound Card!
Contact us about
Percussion Velocity Pattern and Rolls
Percussion Velocity Patterns control the timing and strength of each percussion sound.
There are 6 Pattern fields at the bottom of the Percussion Setup dialog, labeled A-F. Each pattern is specific to the Percussion Instrument having the same A-F label, and runs independently. Two instruments will track if their patterns have the same length.
Above the patterns is a line of digits which acts as a position indicator. Above each 0 digit is a single digit to show 10s. Patterns may be up to 256 characters long, so for positions 100 and above a 100s digit appears above the 10s digit.
You can use normal mouse or keyboard scroll operations during entry, or the Pattern Scroll controls for later review.
A single character at each pattern position sets the velocity of the relevant instrument for that beat. '8' sets maximum velocity, down to '0' for silence. You may also use '.' (period) for silence, to make the pattern easier to read.
There are also letter characters to specify 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.) You can also use Percussion Lag for even greater realism.
The velocity indicated by the pattern character works together with the Percussion Velocity control and Velocity Track state for the indicated instrument, to determine an overall MIDI velocity value in the 0-127 range.
In addition to the Velocity Pattern Character Table mentioned above, you can use letters K-Z to add rolls of repeated hits of the percussion instrument. These allow only two different velocities, 96 or 127, equivalent to 6 or 8 above, but with varying roll rates.
The hits of a roll are at multiples of the Trace Update interval, which is 10 msec by default. That value is assumed in the table below:
Letter Velocity Factor msec hits/sec BPM K 96 1 10 100 6000 L 96 2 20 50 3000 M 96 3 30 33.3 2000 N 96 4 40 25 1500 O 96 5 50 20 1200 P 96 6 60 16.7 1000 Q 96 7 70 14.3 857 R 96 8 80 12.5 750 S 127 1 10 100 6000 T 127 2 20 50 3000 U 127 3 30 33.3 2000 V 127 4 40 25 1500 W 127 5 50 20 1200 X 127 6 60 16.7 1000 Y 127 7 70 14.3 857 Z 127 8 80 12.5 750
The roll series lasts for the duration of the original percussion beat. For example, if the main Tempo is 240 BPM (4 beats per second) then ordinarily beats are 250 msec apart. If the velocity character is O, the table shows that the repeat hits will be 50 msec apart (20 per second) at the default Trace Update interval of 10 msec. That means that there will be 5 hits in every 250 msec percussion beat. But if the O is followed by an underscore (_) sustain character, the roll will continue for an additional 250 msec, for 500 msec total. Similarly, if the percussion voice has Hold set to 2 then a single O (without a following underscore) will produce a roll of 500 msec, and with a following underscore it will last twice that or 1 second.
As seen in the above table, the identical timing will obtained for a W character, but with maximum velocity.
There is an additional way to get rolls, with wider velocity and roll rate ranges, using direct manipulation of the velocity stream when using MIDI Changes Scripts with Velocity Maps. That method is used by the Music_from_Anything macro mini-app, which uses macro commands to prepare a special MIDI script. See the Velocity Maps topic for details.
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 instrument 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, oscillators, and User Variables. The period before the index must be present. The index value will be limited to 0-255.
The instrument designation v must be A to F, case-insensitive.
If the start index 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 for more information.
Note that you can not use pG=n to set the Velocity Patterns for all Percussion Instruments A-F at once.
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.
Questions? Comments? Contact us!We respond to ALL inquiries, typically within 24 hrs.
Over 35 Years of Innovative Instrumentation
© Copyright 2007 - 2021 by Interstellar Research
All rights reserved