libgig
4.0.0
|
MIDI rule for instruments with legato samples. More...
#include <gig.h>
Public Attributes | |
uint8_t | LegatoSamples |
Number of legato samples per key in each direction (always 12) More... | |
bool | BypassUseController |
If a controller should be used to bypass the sustain note. More... | |
uint8_t | BypassKey |
Key to be used to bypass the sustain note. More... | |
uint8_t | BypassController |
Controller to be used to bypass the sustain note. More... | |
uint16_t | ThresholdTime |
Maximum time (ms) between two notes that should be played legato. More... | |
uint16_t | ReleaseTime |
Release time. More... | |
range_t | KeyRange |
Key range for legato notes. More... | |
uint8_t | ReleaseTriggerKey |
Key triggering release samples. More... | |
uint8_t | AltSustain1Key |
Key triggering alternate sustain samples. More... | |
uint8_t | AltSustain2Key |
Key triggering a second set of alternate sustain samples. More... | |
Protected Member Functions | |
MidiRuleLegato (RIFF::Chunk *_3ewg) | |
MidiRuleLegato () | |
void | UpdateChunks (uint8_t *pData) const |
Friends | |
class | Instrument |
MIDI rule for instruments with legato samples.
A "Legato MIDI rule" allows playing instruments resembling the legato playing technique. In the past such legato articulations were tried to be simulated by pitching the samples of the instrument. However since usually a high amount of pitch is needed for legatos, this always sounded very artificial and unrealistic. The "Legato MIDI rule" thus uses another approach. Instead of pitching the samples, it allows the sound designer to bundle separate, additional samples for the individual legato situations and the legato rules defined which samples to be played in which situation.
Note: "Legato MIDI rules" are only supported by gigedit, but not by LinuxSampler. We recommend you using real-time instrument scripts instead. Read more about the details and reasons for this in the description of the MidiRule base class.
|
protected |
Definition at line 3953 of file gig.cpp.
References AltSustain1Key, AltSustain2Key, BypassController, BypassKey, BypassUseController, gig::range_t::high, KeyRange, LegatoSamples, gig::range_t::low, RIFF::Chunk::ReadInt16(), RIFF::Chunk::ReadUint16(), RIFF::Chunk::ReadUint8(), ReleaseTime, ReleaseTriggerKey, RIFF::Chunk::SetPos(), and ThresholdTime.
|
protected |
Definition at line 3972 of file gig.cpp.
References gig::range_t::high, KeyRange, and gig::range_t::low.
|
protectedvirtual |
Implements gig::MidiRule.
Definition at line 3986 of file gig.cpp.
References AltSustain1Key, AltSustain2Key, BypassController, BypassKey, BypassUseController, gig::range_t::high, KeyRange, LegatoSamples, gig::range_t::low, ReleaseTime, ReleaseTriggerKey, and ThresholdTime.
|
friend |
uint8_t gig::MidiRuleLegato::AltSustain1Key |
Key triggering alternate sustain samples.
Definition at line 889 of file gig.h.
Referenced by MidiRuleLegato(), and UpdateChunks().
uint8_t gig::MidiRuleLegato::AltSustain2Key |
Key triggering a second set of alternate sustain samples.
Definition at line 890 of file gig.h.
Referenced by MidiRuleLegato(), and UpdateChunks().
uint8_t gig::MidiRuleLegato::BypassController |
Controller to be used to bypass the sustain note.
Definition at line 884 of file gig.h.
Referenced by MidiRuleLegato(), and UpdateChunks().
uint8_t gig::MidiRuleLegato::BypassKey |
Key to be used to bypass the sustain note.
Definition at line 883 of file gig.h.
Referenced by MidiRuleLegato(), and UpdateChunks().
bool gig::MidiRuleLegato::BypassUseController |
If a controller should be used to bypass the sustain note.
Definition at line 882 of file gig.h.
Referenced by MidiRuleLegato(), and UpdateChunks().
range_t gig::MidiRuleLegato::KeyRange |
Key range for legato notes.
Definition at line 887 of file gig.h.
Referenced by MidiRuleLegato(), and UpdateChunks().
uint8_t gig::MidiRuleLegato::LegatoSamples |
Number of legato samples per key in each direction (always 12)
Definition at line 881 of file gig.h.
Referenced by MidiRuleLegato(), and UpdateChunks().
uint16_t gig::MidiRuleLegato::ReleaseTime |
Release time.
Definition at line 886 of file gig.h.
Referenced by MidiRuleLegato(), and UpdateChunks().
uint8_t gig::MidiRuleLegato::ReleaseTriggerKey |
Key triggering release samples.
Definition at line 888 of file gig.h.
Referenced by MidiRuleLegato(), and UpdateChunks().
uint16_t gig::MidiRuleLegato::ThresholdTime |
Maximum time (ms) between two notes that should be played legato.
Definition at line 885 of file gig.h.
Referenced by MidiRuleLegato(), and UpdateChunks().