From: <sag...@us...> - 2011-07-01 20:16:00
|
Revision: 912 http://modplug.svn.sourceforge.net/modplug/?rev=912&view=rev Author: saga-games Date: 2011-07-01 20:15:53 +0000 (Fri, 01 Jul 2011) Log Message: ----------- [Fix] IT/MOD Replay: When swapping samples on the fly and the current playback position is beyond the new sample's length, it's reset to 0 (may not be 100% accurate) [Ref] Some oneliner changes [Mod] Updated history.txt [Mod] OpenMPT: Version is now 1.19.02.09 Modified Paths: -------------- trunk/OpenMPT/mptrack/View_smp.cpp trunk/OpenMPT/mptrack/Vstplug.cpp trunk/OpenMPT/mptrack/version.h trunk/OpenMPT/packageTemplate/History.txt trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/mptrack/View_smp.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_smp.cpp 2011-07-01 20:00:39 UTC (rev 911) +++ trunk/OpenMPT/mptrack/View_smp.cpp 2011-07-01 20:15:53 UTC (rev 912) @@ -164,6 +164,7 @@ m_nScrollFactor = 0; UINT cx0 = m_sizeTotal.cx; UINT cx = cx0; + // Limit scroll size. FIXME: For long samples, this causes the last few sampling points to be invisible! (Rounding error?) while (cx > 30000) { m_nScrollFactor++; Modified: trunk/OpenMPT/mptrack/Vstplug.cpp =================================================================== --- trunk/OpenMPT/mptrack/Vstplug.cpp 2011-07-01 20:00:39 UTC (rev 911) +++ trunk/OpenMPT/mptrack/Vstplug.cpp 2011-07-01 20:15:53 UTC (rev 912) @@ -287,11 +287,8 @@ if (!hLib && dw != ERROR_MOD_NOT_FOUND) // "File not found errors" are annoying. { TCHAR szBuf[256]; - LPVOID lpMsgBuf; - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL ); - wsprintf(szBuf, "Warning: encountered problem when loading plugin dll. Error %d: %s", dw, lpMsgBuf); + wsprintf(szBuf, "Warning: encountered problem when loading plugin dll. Error %d: %s", dw, GetErrorMessage(dw)); MessageBox(NULL, szBuf, "DEBUG: Error when loading plugin dll", MB_OK); - LocalFree(lpMsgBuf); } #endif //_DEBUG //end rewbs.VSTcompliance @@ -1801,7 +1798,6 @@ //rewbs.VSTcompliance //Store a pointer so we can get the CVstPlugin object from the basic VST effect object. - //Assuming 32bit address space... m_pEffect->resvd1=ToVstPtr(this); //rewbs.plugDocAware m_pSndFile = pSndFile; @@ -2935,6 +2931,7 @@ if ((nMidiProg < 0x80) && (progChanged || bankChanged /*|| chanChanged */ )) { pCh->nProgram = nMidiProg; + //GetSoundFile()->ProcessMIDIMacro(trackChannel, false, GetSoundFile()->m_MidiCfg.szMidiGlb[MIDIOUT_PROGRAM], 0); MidiSend((nMidiProg<<8)|(0xC0|nCh)); } Modified: trunk/OpenMPT/mptrack/version.h =================================================================== --- trunk/OpenMPT/mptrack/version.h 2011-07-01 20:00:39 UTC (rev 911) +++ trunk/OpenMPT/mptrack/version.h 2011-07-01 20:15:53 UTC (rev 912) @@ -15,7 +15,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 19 #define VER_MINOR 02 -#define VER_MINORMINOR 08 +#define VER_MINORMINOR 09 //Creates version number from version parts that appears in version string. //For example MAKE_VERSION_NUMERIC(1,17,02,28) gives version number of Modified: trunk/OpenMPT/packageTemplate/History.txt =================================================================== --- trunk/OpenMPT/packageTemplate/History.txt 2011-07-01 20:00:39 UTC (rev 911) +++ trunk/OpenMPT/packageTemplate/History.txt 2011-07-01 20:15:53 UTC (rev 912) @@ -10,28 +10,53 @@ (tx XYZ): thanks to XYZ for telling us about the bug / requesting the feature -v1.20.01.00 (*** 2011, revision 887) +v1.19.03.00 (*** 2011, revision 912) ------------------------------------ +General tab + [Imp] <Jojo> When editing panning, surround is disabled and when enabling surround, panning is reset. + [Imp] <Jojo> When moving a plugin to another slot, plugins routing their output to the selected plugin are now taken into account when choosing a default slot to move the plugin to. + Pattern tab [Fix] <Jojo> When playing a pattern that is actually not in the sequence and that has more rows than the last played order item, a crash could occour while playing those extra rows. (Welcome to episode 2938 of "this should not have happened afterall") - [Fix] <Jojo> Shift + Channel Dragging killed the last channel. + [Fix] <Jojo> Shift + Channel Dragging killed the last channel (http://bugs.openmpt.org/view.php?id=133). [Fix] <Jojo> When using the pattern play controls (f.e. "Replay Pattern") on a pattern that isn't played in the normal play sequence, tempo and global volume commands on the first played row are not ignored anymore. + [Fix] <Jojo> Songs shouldn't stop anymore after playing them one time and if playback was initially started using a pattern play mode with loop enabled (http://bugs.openmpt.org/view.php?id=11) + [Fix] <Jojo> When overwriting PC notes with normal notes, the pattern cell is now cleared properly. + [Fix] <Jojo> Using the "Paste Pattern" menu entry in the order list didn't refresh the pattern display. Sample tab - [Imp] <Jojo> When selecting parts of the sample, the selection range is now also displayed in samples, not only seconds. + [Imp] <Jojo> When selecting parts of the sample, the selection range is now also displayed in samples, not only seconds (tx jmkz, http://bugs.openmpt.org/view.php?id=136). + [Imp] <Jojo> When changing the sample's global volume while removing DC offset, the change is now instantly applied to all channels that are currently playing the sample. Instrument tab [Imp] <Jojo> When in compatible mode, two envelope points cannot share the same tick anymore. + [Fix] <Jojo> Suggested filename when saving instrument was sometimes cut off. VST [Fix] <Jojo> When a plugin requests song position in nano secods, the correct value should now be returned. [Fix] <Jojo> Loading a VST preset (fxp) didn't mark the document as modified (tx BooT-SectoR-ViruZ) +IT + [Fix] <Jojo> Saving IT instruments (in both IT and ITI files) with an invalid sample map crashed the tracker (http://bugs.openmpt.org/view.php?id=142) + [Fix] <Jojo> (Also applies to MOD) When swapping samples on the fly and the current playback position is beyond the new sample's length, it's reset to 0. + +MPTM + [Fix] <Jojo> Saving long envelopes (> 25 envelope points) in the MPTM format was broken since... well, actually, it never worked in any officially released version. + Other formats [Fix] <Jojo> ITP Saver: Fixed nasty bug when the internal order length was not 256. [Fix] <Jojo> IMF Loader: Orpheus' 8-Bit cutoff range was not converted to MPT's 7-Bit range. +Misc + [Imp] <Jojo> Tagging: ID3 tags also contain a TDRC tag now, since this should be used instead of TYER in ID3v2.4. Also added a TPBM (beats per minute) tag. + [Imp] <Jojo> Hack detection also notifies about stereo samples in XM files now. + [Imp] <Jojo> Fixed tab order in the pitch shift dialog. + [Mod] <Jojo> Song Properties: Legacy Mixmodes RC1 and RC2 are now only displayed if they are actually used by the module. + [Fix] <Jojo> MP3 export should no longer result in a heap corruption and thus crash the tracker (http://bugs.openmpt.org/view.php?id=97). + [Fix] <Jojo> Rendering sub songs to WAV resulted in an endless render loop. + [Fix] <Jojo> Setup Dialog: Fixed the checkbox list so that it doesn't look weird under Wine and doesn't crash when compiling OpenMPT with VS2010 (tx jmkz). + v1.19.02.00 (May 2011, revision 871) ------------------------------------ Pattern tab Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp =================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-07-01 20:00:39 UTC (rev 911) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2011-07-01 20:15:53 UTC (rev 912) @@ -730,6 +730,19 @@ if (pChn->dwFlags & CHN_PINGPONGSUSTAIN) pChn->dwFlags |= CHN_PINGPONGLOOP; } if ((pChn->dwFlags & CHN_LOOP) && (pChn->nLoopEnd < pChn->nLength)) pChn->nLength = pChn->nLoopEnd; + + // Fix sample position on instrument change. This is needed for PT1x MOD and IT "on the fly" sample change. + if(pChn->nPos >= pChn->nLength) + { + if((m_nType & MOD_TYPE_IT)) + { + pChn->nPos = pChn->nPosLo = 0; + } else if((m_nType & MOD_TYPE_MOD)) // TODO does not always seem to work, especially with short chip samples? + { + pChn->nPos = pChn->nLoopStart; + pChn->nPosLo = 0; + } + } } @@ -773,8 +786,7 @@ //IT compatibility tentative fix: Clear channel note memory. if(IsCompatibleMode(TRK_IMPULSETRACKER)) { - pChn->nNote = NOTE_NONE; - pChn->nNewNote = NOTE_NONE; + pChn->nNote = pChn->nNewNote = NOTE_NONE; } return; } @@ -4218,4 +4230,4 @@ // invalid patterns consist of a "fake" row. return 1; } -} \ No newline at end of file +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |