--- linuxsampler/trunk/src/engines/gig/Voice.cpp 2005/05/19 19:25:14 554 +++ linuxsampler/trunk/src/engines/gig/Voice.cpp 2005/05/22 20:43:32 563 @@ -134,14 +134,16 @@ dmsg(1,("voice::trigger: !pInstrument\n")); exit(EXIT_FAILURE); } - if (itNoteOnEvent->FragmentPos() > pEngine->MaxSamplesPerCycle) { // FIXME: should be removed before the final release (purpose: just a sanity check for debugging) + #if CONFIG_DEVMODE + if (itNoteOnEvent->FragmentPos() > pEngine->MaxSamplesPerCycle) { // just a sanity check for debugging dmsg(1,("Voice::Trigger(): ERROR, TriggerDelay > Totalsamples\n")); } + #endif // CONFIG_DEVMODE Type = type_normal; MIDIKey = itNoteOnEvent->Param.Note.Key; pRegion = pInstrument->GetRegion(MIDIKey); - PlaybackState = playback_state_ram; // we always start playback from RAM cache and switch then to disk if needed + PlaybackState = playback_state_init; // mark voice as triggered, but no audio rendered yet Delay = itNoteOnEvent->FragmentPos(); itTriggerEvent = itNoteOnEvent; itKillEvent = Pool::Iterator(); @@ -686,6 +688,10 @@ switch (this->PlaybackState) { + case playback_state_init: + this->PlaybackState = playback_state_ram; // we always start playback from RAM cache and switch then to disk if needed + // no break - continue with playback_state_ram + case playback_state_ram: { if (RAMLoop) SYNTHESIS_MODE_SET_LOOP(SynthesisMode, true); // enable looping