169 |
// if nothing defined for this key |
// if nothing defined for this key |
170 |
if (!pRegion) return Pool<Voice>::Iterator(); // nothing to do |
if (!pRegion) return Pool<Voice>::Iterator(); // nothing to do |
171 |
|
|
172 |
// only mark the first voice of a layered voice (group) to be in a |
int iKeyGroup = pRegion->KeyGroup; |
173 |
// key group, so the layered voices won't kill each other |
// only need to send a group event from the first voice in a layered region, |
174 |
int iKeyGroup = (iLayer == 0 && !ReleaseTriggerVoice) ? pRegion->KeyGroup : 0; |
// as all layers in a region always belongs to the same key group |
175 |
|
if (HandleKeyGroupConflicts && iLayer == 0) pChannel->HandleKeyGroupConflicts(iKeyGroup, itNoteOnEvent); |
|
if (HandleKeyGroupConflicts) pChannel->HandleKeyGroupConflicts(iKeyGroup, itNoteOnEvent); |
|
176 |
|
|
177 |
Voice::type_t VoiceType = Voice::type_normal; |
Voice::type_t VoiceType = Voice::type_normal; |
178 |
|
|
318 |
} |
} |
319 |
|
|
320 |
String Engine::Version() { |
String Engine::Version() { |
321 |
String s = "$Revision: 1.108 $"; |
String s = "$Revision: 1.109 $"; |
322 |
return s.substr(11, s.size() - 13); // cut dollar signs, spaces and CVS macro keyword |
return s.substr(11, s.size() - 13); // cut dollar signs, spaces and CVS macro keyword |
323 |
} |
} |
324 |
|
|