public GATData GetClosestSampleForMidiCode( float midiCode, out float pitchShift )
{
int index = _allSamples.Count - 1;
int i;
GATSampleInfo info;
float delta;
float minDelta = float.MaxValue;
for( i = 0; i < _allSamples.Count; i++ )
{
info = _soundBank.SampleInfos[ i ];
delta = Mathf.Abs( midiCode - info.MidiCode );
if( delta < minDelta )
{
minDelta = delta;
}
else
{
index = i - 1;
break;
}
}
pitchShift = GATMaths.GetRatioForInterval( midiCode - ( float )_soundBank.SampleInfos[ index ].MidiCode );
return _allSamples[ index ];
}