71 |
ri.UnityNote = pRegion->pitch_keycenter; |
ri.UnityNote = pRegion->pitch_keycenter; |
72 |
ri.FineTune = pRegion->tune + pRegion->transpose * 100; |
ri.FineTune = pRegion->tune + pRegion->transpose * 100; |
73 |
ri.Pan = int(pRegion->pan * 0.63); // convert from -100..100 to -64..63 |
ri.Pan = int(pRegion->pan * 0.63); // convert from -100..100 to -64..63 |
74 |
ri.SampleStartOffset = 0; // TODO: |
ri.SampleStartOffset = pRegion->offset ? *(pRegion->offset) : 0; |
75 |
|
|
76 |
ri.EG2PreAttack = pRegion->fileg_start * 10; |
ri.EG2PreAttack = pRegion->fileg_start * 10; |
77 |
ri.EG2Attack = pRegion->fileg_attack; |
ri.EG2Attack = pRegion->fileg_attack; |
521 |
} |
} |
522 |
} |
} |
523 |
} |
} |
524 |
|
|
525 |
|
void Voice::SetSampleStartOffset() { |
526 |
|
if (DiskVoice && RgnInfo.SampleStartOffset > pSample->MaxOffset) { |
527 |
|
// The offset is applied to the RAM buffer |
528 |
|
finalSynthesisParameters.dPos = 0; |
529 |
|
Pos = 0; |
530 |
|
} else { |
531 |
|
finalSynthesisParameters.dPos = RgnInfo.SampleStartOffset; // offset where we should start playback of sample |
532 |
|
Pos = RgnInfo.SampleStartOffset; |
533 |
|
} |
534 |
|
} |
535 |
|
|
536 |
}} // namespace LinuxSampler::sfz |
}} // namespace LinuxSampler::sfz |