From: <sv...@op...> - 2024-06-19 12:26:11
|
Author: sagamusix Date: Wed Jun 19 14:25:57 2024 New Revision: 21043 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21043 Log: [Fix] DIGI: Sample play direction was reset if adjacent channel contained a Note Cut note (https://www.un4seen.com/forum/?topic=15448.msg143118#msg143118, libopenmpt only). Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp Tue Jun 18 21:19:41 2024 (r21042) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp Wed Jun 19 14:25:57 2024 (r21043) @@ -3079,7 +3079,8 @@ NoteChange(chn, note, bPorta, !(GetType() & (MOD_TYPE_XM | MOD_TYPE_MT2)), false, nChn); if(continueNote) chn.nPeriod = chn.nPortamentoDest; - HandleDigiSamplePlayDirection(m_PlayState, nChn); + if(ModCommand::IsNote(note)) + HandleDigiSamplePlayDirection(m_PlayState, nChn); if ((bPorta) && (GetType() & (MOD_TYPE_XM|MOD_TYPE_MT2)) && (instr)) { chn.dwFlags.set(CHN_FASTVOLRAMP); @@ -6659,7 +6660,7 @@ PLUGINDEX CSoundFile::GetBestPlugin(const PlayState &playState, CHANNELINDEX nChn, PluginPriority priority, PluginMutePriority respectMutes) const { - if (nChn >= m_PlayState.Chn.size()) //Check valid channel number + if (nChn >= playState.Chn.size()) //Check valid channel number { return 0; } |