libgig
4.3.0
|
Abstract base class for all MIDI rules. More...
#include <gig.h>
Protected Member Functions | |
virtual void | UpdateChunks (uint8_t *pData) const =0 |
Abstract base class for all MIDI rules.
Note: Instead of using MIDI rules, we recommend you using real-time instrument scripts instead. Read about the reasons below.
MIDI Rules (also called "iMIDI rules" or "intelligent MIDI rules") were introduced with GigaStudio 4 as an attempt to increase the power of potential user controls over sounds. At that point other samplers already supported certain powerful user control features, which were not possible with GigaStudio yet. For example triggering new notes by MIDI CC controller.
Such extended features however were usually implemented by other samplers by requiring the sound designer to write an instrument script which the designer would then bundle with the respective instrument file. Such scripts are essentially text files, using a very specific programming language for the purpose of controlling the sampler in real-time. Since however musicians are not typically keen to writing such cumbersome script files, the GigaStudio designers decided to implement such extended features completely without instrument scripts. Instead they created a set of rules, which could be defined and altered conveniently by mouse clicks in GSt's instrument editor application. The downside of this overall approach however, was that those MIDI rules were very limited in practice. As sound designer you easily came across the possiblities such MIDI rules were able to offer.
Due to such severe use case constraints, support for MIDI rules is quite limited in libgig. At the moment only the "Control Trigger", "Alternator" and the "Legato" MIDI rules are supported by libgig. Consequently the graphical instrument editor application gigedit just supports the "Control Trigger" and "Legato" MIDI rules, and LinuxSampler even does not support any MIDI rule type at all and LinuxSampler probably will not support MIDI rules in future either.
Instead of using MIDI rules, we introduced real-time instrument scripts as extension to the original GigaStudio file format. This script based solution is much more powerful than MIDI rules and is already supported by libgig, gigedit and LinuxSampler.