Data AcQuisition And Real-Time AnalysisScope - Spectrum - Spectrogram - Signal Generator
Software for Windows
Science with your Sound Card!
Contact us about
Concurrent MIDI Changes ScriptsMIDI Changes scripts are naturally multitasking, so they appear to run concurrently. That means that all scripts are processed on each beat. However, scripts are actually handled in sequence, each being processed just before its Voice (or Percussion) sounds are processed. The Percussion script and sounds are handled first, then Voice 1 through Voice 8. Thus, a Voice 1 script can modify a parameter for a later Voice on that same beat. For example, it could insert a chord character into the Voice 2 Chord Pattern at the position for the current beat, and Voice 2 would play that chord on that same beat. On the other hand, if a Voice 2 script modifies a Voice 1 parameter, that change won't take effect until the following beat, since Voice 1 sounds have already been dealt with on the current beat. Nevertheless, there are many cases where this timing is not an issue. Suppose, for example, that you want to change Note Lag randomly (or cyclically) on a beat-by-beat basis to give a more human feel to the performance. The script would have a single Wait, followed by the Lag change:
W=1 ;Wait 1 beat l1=?(0,5) ;Update Voice 1 Lag
This script would run completely on every beat, so the Voice 1 Lag value would be different on every beat. That would be true even if this is a Voice 2 or later script... it would simply mean that the Lag used on the current note was set on the previous beat.
On the other hand, if you are using a computer key state to control a parameter, you can minimize latency by acting on the current beat. If the controlled parameter is in Voice 1, you would thus need to test the key state in or before the Voice 1 script.
Since these once-per-beat scripts must necessarily have only a single-beat Wait, they require a bit of planning to be used for controlling slower features of the performance, such as changes that take place once per measure or once per verse.
A good solution is to dedicate one script to all once-per-beat changes, no matter what voices are affected. This should be the Percussion script for the quickest response for the most voices. Note that you can use the Percussion script even if Percussion itself is toggled off. Just make sure that the Changes button in the Percussion dialog is active.
For examples of using the Percussion script to control multi-beat Percussion patterns as well as providing current-beat handling of key states, see the Percussion script listings in AirBand and AirGuitar.
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