3 |
* LinuxSampler - modular, streaming capable sampler * |
* LinuxSampler - modular, streaming capable sampler * |
4 |
* * |
* * |
5 |
* Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck * |
* Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck * |
6 |
* Copyright (C) 2005-2009 Christian Schoenebeck * |
* Copyright (C) 2005-2008 Christian Schoenebeck * |
7 |
* Copyright (C) 2009 Grigor Iliev * |
* Copyright (C) 2009-2010 Christian Schoenebeck and Grigor Iliev * |
8 |
* * |
* * |
9 |
* This program is free software; you can redistribute it and/or modify * |
* This program is free software; you can redistribute it and/or modify * |
10 |
* it under the terms of the GNU General Public License as published by * |
* it under the terms of the GNU General Public License as published by * |
299 |
// lower minimum release time |
// lower minimum release time |
300 |
const float minReleaseTime = (float) MaxSamplesPerCycle / (float) SampleRate; |
const float minReleaseTime = (float) MaxSamplesPerCycle / (float) SampleRate; |
301 |
for (VoiceIterator iterVoice = pVoicePool->allocAppend(); iterVoice == pVoicePool->last(); iterVoice = pVoicePool->allocAppend()) { |
for (VoiceIterator iterVoice = pVoicePool->allocAppend(); iterVoice == pVoicePool->last(); iterVoice = pVoicePool->allocAppend()) { |
302 |
iterVoice->EG1.CalculateFadeOutCoeff(minReleaseTime, SampleRate); |
iterVoice->pEG1->CalculateFadeOutCoeff(minReleaseTime, SampleRate); |
303 |
} |
} |
304 |
pVoicePool->clear(); |
pVoicePool->clear(); |
305 |
} |
} |
1096 |
pKey->pEvents->free(itNoteOnEventOnKeyList); |
pKey->pEvents->free(itNoteOnEventOnKeyList); |
1097 |
|
|
1098 |
if (!pChannel->SoloMode || pChannel->PortamentoPos < 0.0f) pChannel->PortamentoPos = (float) key; |
if (!pChannel->SoloMode || pChannel->PortamentoPos < 0.0f) pChannel->PortamentoPos = (float) key; |
1099 |
pKey->RoundRobinIndex++; |
if (pKey->pRoundRobinIndex) { |
1100 |
|
(*pKey->pRoundRobinIndex)++; // counter specific for the key or region |
1101 |
|
pChannel->RoundRobinIndex++; // common counter for the channel |
1102 |
|
} |
1103 |
pChannel->listeners.PostProcessNoteOn(key, vel); |
pChannel->listeners.PostProcessNoteOn(key, vel); |
1104 |
} |
} |
1105 |
|
|