libgig 4.4.1
gig::MidiRuleLegato Class Reference

MIDI rule for instruments with legato samples. More...

#include <gig.h>

Inheritance diagram for gig::MidiRuleLegato:
gig::MidiRule

Public Attributes

uint8_t LegatoSamples
 Number of legato samples per key in each direction (always 12)
 
bool BypassUseController
 If a controller should be used to bypass the sustain note.
 
uint8_t BypassKey
 Key to be used to bypass the sustain note.
 
uint8_t BypassController
 Controller to be used to bypass the sustain note.
 
uint16_t ThresholdTime
 Maximum time (ms) between two notes that should be played legato.
 
uint16_t ReleaseTime
 Release time.
 
range_t KeyRange
 Key range for legato notes.
 
uint8_t ReleaseTriggerKey
 Key triggering release samples.
 
uint8_t AltSustain1Key
 Key triggering alternate sustain samples.
 
uint8_t AltSustain2Key
 Key triggering a second set of alternate sustain samples.
 

Protected Member Functions

 MidiRuleLegato (RIFF::Chunk *_3ewg)
 
void UpdateChunks (uint8_t *pData) const
 

Detailed Description

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.

Deprecated:
Just provided for backward compatiblity, use Script for new instruments instead. See description of MidiRule for details.

Definition at line 1067 of file gig.h.

Constructor & Destructor Documentation

◆ MidiRuleLegato() [1/2]

gig::MidiRuleLegato::MidiRuleLegato ( RIFF::Chunk _3ewg)
protected

Definition at line 4466 of file gig.cpp.

◆ MidiRuleLegato() [2/2]

gig::MidiRuleLegato::MidiRuleLegato ( )
protected

Definition at line 4485 of file gig.cpp.

Member Function Documentation

◆ UpdateChunks()

void gig::MidiRuleLegato::UpdateChunks ( uint8_t *  pData) const
protectedvirtual

Implements gig::MidiRule.

Definition at line 4499 of file gig.cpp.

Member Data Documentation

◆ AltSustain1Key

uint8_t gig::MidiRuleLegato::AltSustain1Key

Key triggering alternate sustain samples.

Definition at line 1077 of file gig.h.

◆ AltSustain2Key

uint8_t gig::MidiRuleLegato::AltSustain2Key

Key triggering a second set of alternate sustain samples.

Definition at line 1078 of file gig.h.

◆ BypassController

uint8_t gig::MidiRuleLegato::BypassController

Controller to be used to bypass the sustain note.

Definition at line 1072 of file gig.h.

◆ BypassKey

uint8_t gig::MidiRuleLegato::BypassKey

Key to be used to bypass the sustain note.

Definition at line 1071 of file gig.h.

◆ BypassUseController

bool gig::MidiRuleLegato::BypassUseController

If a controller should be used to bypass the sustain note.

Definition at line 1070 of file gig.h.

◆ KeyRange

range_t gig::MidiRuleLegato::KeyRange

Key range for legato notes.

Definition at line 1075 of file gig.h.

◆ LegatoSamples

uint8_t gig::MidiRuleLegato::LegatoSamples

Number of legato samples per key in each direction (always 12)

Definition at line 1069 of file gig.h.

◆ ReleaseTime

uint16_t gig::MidiRuleLegato::ReleaseTime

Release time.

Definition at line 1074 of file gig.h.

◆ ReleaseTriggerKey

uint8_t gig::MidiRuleLegato::ReleaseTriggerKey

Key triggering release samples.

Definition at line 1076 of file gig.h.

◆ ThresholdTime

uint16_t gig::MidiRuleLegato::ThresholdTime

Maximum time (ms) between two notes that should be played legato.

Definition at line 1073 of file gig.h.


The documentation for this class was generated from the following files: