You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(10) |
Sep
|
Oct
|
Nov
|
Dec
(3) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(1) |
Feb
(2) |
Mar
(3) |
Apr
(2) |
May
(10) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
| 2008 |
Jan
(6) |
Feb
(4) |
Mar
(5) |
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
(4) |
Aug
(6) |
Sep
(2) |
Oct
(9) |
Nov
(1) |
Dec
(4) |
| 2009 |
Jan
(9) |
Feb
(2) |
Mar
(2) |
Apr
(2) |
May
(6) |
Jun
(18) |
Jul
(33) |
Aug
(39) |
Sep
(33) |
Oct
(24) |
Nov
(23) |
Dec
(22) |
| 2010 |
Jan
(29) |
Feb
(32) |
Mar
(51) |
Apr
(17) |
May
(31) |
Jun
(21) |
Jul
(32) |
Aug
(28) |
Sep
(35) |
Oct
(27) |
Nov
(11) |
Dec
(13) |
| 2011 |
Jan
(14) |
Feb
(13) |
Mar
(27) |
Apr
(27) |
May
(28) |
Jun
(20) |
Jul
(43) |
Aug
(52) |
Sep
(66) |
Oct
(61) |
Nov
(11) |
Dec
(8) |
| 2012 |
Jan
(20) |
Feb
(30) |
Mar
(38) |
Apr
(21) |
May
(33) |
Jun
(21) |
Jul
(25) |
Aug
(9) |
Sep
(24) |
Oct
(42) |
Nov
(27) |
Dec
(41) |
| 2013 |
Jan
(20) |
Feb
(35) |
Mar
(156) |
Apr
(298) |
May
(258) |
Jun
(201) |
Jul
(105) |
Aug
(60) |
Sep
(193) |
Oct
(245) |
Nov
(280) |
Dec
(194) |
| 2014 |
Jan
(63) |
Feb
(202) |
Mar
(200) |
Apr
(23) |
May
(53) |
Jun
(105) |
Jul
(18) |
Aug
(26) |
Sep
(110) |
Oct
(187) |
Nov
(97) |
Dec
(74) |
| 2015 |
Jan
(45) |
Feb
(55) |
Mar
(116) |
Apr
(116) |
May
(193) |
Jun
(164) |
Jul
(50) |
Aug
(111) |
Sep
(98) |
Oct
(71) |
Nov
(103) |
Dec
(63) |
| 2016 |
Jan
(33) |
Feb
(101) |
Mar
(182) |
Apr
(139) |
May
(140) |
Jun
(103) |
Jul
(165) |
Aug
(286) |
Sep
(208) |
Oct
(127) |
Nov
(97) |
Dec
(54) |
| 2017 |
Jan
(64) |
Feb
(335) |
Mar
(202) |
Apr
(212) |
May
(139) |
Jun
(127) |
Jul
(294) |
Aug
(154) |
Sep
(170) |
Oct
(152) |
Nov
(156) |
Dec
(62) |
| 2018 |
Jan
(168) |
Feb
(237) |
Mar
(196) |
Apr
(174) |
May
(174) |
Jun
(161) |
Jul
(127) |
Aug
(88) |
Sep
(149) |
Oct
(66) |
Nov
(52) |
Dec
(135) |
| 2019 |
Jan
(146) |
Feb
(126) |
Mar
(104) |
Apr
(58) |
May
(60) |
Jun
(28) |
Jul
(197) |
Aug
(129) |
Sep
(141) |
Oct
(148) |
Nov
(63) |
Dec
(100) |
| 2020 |
Jan
(74) |
Feb
(37) |
Mar
(59) |
Apr
(154) |
May
(194) |
Jun
(133) |
Jul
(313) |
Aug
(197) |
Sep
(49) |
Oct
(162) |
Nov
(143) |
Dec
(57) |
| 2021 |
Jan
(120) |
Feb
(107) |
Mar
(314) |
Apr
(157) |
May
(524) |
Jun
(169) |
Jul
(72) |
Aug
(133) |
Sep
(135) |
Oct
(146) |
Nov
(198) |
Dec
(325) |
| 2022 |
Jan
(409) |
Feb
(249) |
Mar
(138) |
Apr
(95) |
May
(102) |
Jun
(221) |
Jul
(66) |
Aug
(120) |
Sep
(192) |
Oct
(131) |
Nov
(53) |
Dec
(171) |
| 2023 |
Jan
(357) |
Feb
(82) |
Mar
(168) |
Apr
(218) |
May
(196) |
Jun
(86) |
Jul
(115) |
Aug
(49) |
Sep
(190) |
Oct
(102) |
Nov
(45) |
Dec
(76) |
| 2024 |
Jan
(86) |
Feb
(50) |
Mar
(324) |
Apr
(209) |
May
(197) |
Jun
(232) |
Jul
(194) |
Aug
(247) |
Sep
(219) |
Oct
(266) |
Nov
(328) |
Dec
(304) |
| 2025 |
Jan
(191) |
Feb
(115) |
Mar
(137) |
Apr
(32) |
May
(126) |
Jun
(403) |
Jul
(213) |
Aug
(203) |
Sep
(148) |
Oct
(109) |
Nov
(191) |
Dec
(209) |
| 2026 |
Jan
(127) |
Feb
(123) |
Mar
(160) |
Apr
(141) |
May
(49) |
Jun
(55) |
Jul
(91) |
Aug
(191) |
Sep
|
Oct
(68) |
Nov
|
Dec
|
|
From: <sag...@us...> - 2010-02-07 13:23:41
|
Revision: 485
http://modplug.svn.sourceforge.net/modplug/?rev=485&view=rev
Author: saga-games
Date: 2010-02-07 13:23:29 +0000 (Sun, 07 Feb 2010)
Log Message:
-----------
[Fix] Pattern Editor: The status bar ("Position x of y") only the showed order length for the first subtune if subtunes were separated by an "---" order item.
[Fix] Instrument IO: Flags from old ITI/XI files should also be loaded correctly now.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Ctrl_seq.cpp
trunk/OpenMPT/soundlib/Load_it.cpp
trunk/OpenMPT/soundlib/Sampleio.cpp
trunk/OpenMPT/soundlib/Sndfile.h
Modified: trunk/OpenMPT/mptrack/Ctrl_seq.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2010-02-06 17:43:04 UTC (rev 484)
+++ trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2010-02-07 13:23:29 UTC (rev 485)
@@ -702,7 +702,7 @@
}
else
{
- const ORDERINDEX nLength = pSndFile->Order.GetLengthFirstEmpty();
+ const ORDERINDEX nLength = pSndFile->Order.GetLengthTailTrimmed();
wsprintf(s, "Position %d of %d (%02Xh of %02Xh)",
m_nScrollPos, nLength, m_nScrollPos, nLength);
}
Modified: trunk/OpenMPT/soundlib/Load_it.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_it.cpp 2010-02-06 17:43:04 UTC (rev 484)
+++ trunk/OpenMPT/soundlib/Load_it.cpp 2010-02-07 13:23:29 UTC (rev 485)
@@ -846,24 +846,7 @@
// fix old instrument flags which got broken in OpenMPT 1.17.03.03 due to refactoring (rev 415).
if(version == 0x00000101 && fcode == 'dF..')
{
- DWORD dwFlags = Instruments[i]->dwFlags; // more convenient
- DWORD dwNewFlags = 0;
- if(dwFlags & 0x0001) Instruments[i]->VolEnv.dwFlags |= ENV_ENABLED;
- if(dwFlags & 0x0002) Instruments[i]->VolEnv.dwFlags |= ENV_SUSTAIN;
- if(dwFlags & 0x0004) Instruments[i]->VolEnv.dwFlags |= ENV_LOOP;
- if(dwFlags & 0x0008) Instruments[i]->PanEnv.dwFlags |= ENV_ENABLED;
- if(dwFlags & 0x0010) Instruments[i]->PanEnv.dwFlags |= ENV_SUSTAIN;
- if(dwFlags & 0x0020) Instruments[i]->PanEnv.dwFlags |= ENV_LOOP;
- if(dwFlags & 0x0040) Instruments[i]->PitchEnv.dwFlags |= ENV_ENABLED;
- if(dwFlags & 0x0080) Instruments[i]->PitchEnv.dwFlags |= ENV_SUSTAIN;
- if(dwFlags & 0x0100) Instruments[i]->VolEnv.dwFlags |= ENV_LOOP;
- if(dwFlags & 0x0200) dwNewFlags |= INS_SETPANNING;
- if(dwFlags & 0x0400) Instruments[i]->PitchEnv.dwFlags |= ENV_FILTER;
- if(dwFlags & 0x0800) Instruments[i]->VolEnv.dwFlags |= ENV_CARRY;
- if(dwFlags & 0x1000) Instruments[i]->PanEnv.dwFlags |= ENV_CARRY;
- if(dwFlags & 0x2000) Instruments[i]->PitchEnv.dwFlags |= ENV_CARRY;
- if(dwFlags & 0x4000) dwNewFlags |= INS_MUTE;
- Instruments[i]->dwFlags = dwNewFlags;
+ ConvertOldExtendedFlagFormat(Instruments[i]);
}
break;
}
Modified: trunk/OpenMPT/soundlib/Sampleio.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sampleio.cpp 2010-02-06 17:43:04 UTC (rev 484)
+++ trunk/OpenMPT/soundlib/Sampleio.cpp 2010-02-07 13:23:29 UTC (rev 485)
@@ -2056,6 +2056,8 @@
// Seek for supported extended settings header
if( code == 'MPTX' )
{
+ bool newFormat = false; // new flag format (separate flags for envelopes)
+ bool hasFlags = false; // do we really need to convert the flags?
pData += sizeof(code); // jump extension header code
while( (uintptr_t)(pData - pDataStart) <= nMemLength - 4)
@@ -2063,11 +2065,42 @@
memcpy(&code, pData, sizeof(code)); // read field code
pData += sizeof(code); // jump field code
ReadExtendedInstrumentProperty(pIns, code, pData, pEnd);
+ if(code == 'VFLG')
+ newFormat = true;
+ if(code == 'dF..')
+ hasFlags = true;
}
+ if(!newFormat && hasFlags)
+ {
+ ConvertOldExtendedFlagFormat(pIns);
+ }
}
}
+void ConvertOldExtendedFlagFormat(MODINSTRUMENT *pIns)
+//----------------------------------------------------
+{
+ DWORD dwOldFlags = pIns->dwFlags;
+ pIns->dwFlags = pIns->VolEnv.dwFlags = pIns->PanEnv.dwFlags = pIns->PitchEnv.dwFlags = 0;
+ if(dwOldFlags & 0x0001) pIns->VolEnv.dwFlags |= ENV_ENABLED;
+ if(dwOldFlags & 0x0002) pIns->VolEnv.dwFlags |= ENV_SUSTAIN;
+ if(dwOldFlags & 0x0004) pIns->VolEnv.dwFlags |= ENV_LOOP;
+ if(dwOldFlags & 0x0008) pIns->PanEnv.dwFlags |= ENV_ENABLED;
+ if(dwOldFlags & 0x0010) pIns->PanEnv.dwFlags |= ENV_SUSTAIN;
+ if(dwOldFlags & 0x0020) pIns->PanEnv.dwFlags |= ENV_LOOP;
+ if(dwOldFlags & 0x0040) pIns->PitchEnv.dwFlags |= ENV_ENABLED;
+ if(dwOldFlags & 0x0080) pIns->PitchEnv.dwFlags |= ENV_SUSTAIN;
+ if(dwOldFlags & 0x0100) pIns->VolEnv.dwFlags |= ENV_LOOP;
+ if(dwOldFlags & 0x0200) pIns->dwFlags |= INS_SETPANNING;
+ if(dwOldFlags & 0x0400) pIns->PitchEnv.dwFlags |= ENV_FILTER;
+ if(dwOldFlags & 0x0800) pIns->VolEnv.dwFlags |= ENV_CARRY;
+ if(dwOldFlags & 0x1000) pIns->PanEnv.dwFlags |= ENV_CARRY;
+ if(dwOldFlags & 0x2000) pIns->PitchEnv.dwFlags |= ENV_CARRY;
+ if(dwOldFlags & 0x4000) pIns->dwFlags |= INS_MUTE;
+}
+
+
///////////////////////////////////////////////////////////////////////////////////////////////////
// 8SVX Samples
Modified: trunk/OpenMPT/soundlib/Sndfile.h
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.h 2010-02-06 17:43:04 UTC (rev 484)
+++ trunk/OpenMPT/soundlib/Sndfile.h 2010-02-07 13:23:29 UTC (rev 485)
@@ -1193,5 +1193,8 @@
// Read extended instrument properties from 'pDataStart' to instrument 'pIns'.
void ReadExtendedInstrumentProperties(MODINSTRUMENT* pIns, const LPCBYTE pDataStart, const size_t nMemLength);
+// Convert old instrument flag format, where all flags used to be stored in one single flag. Now, some flags are stored in envelope-specific flag fields.
+void ConvertOldExtendedFlagFormat(MODINSTRUMENT* pIns);
+
#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-02-06 17:44:02
|
Revision: 484
http://modplug.svn.sourceforge.net/modplug/?rev=484&view=rev
Author: saga-games
Date: 2010-02-06 17:43:04 +0000 (Sat, 06 Feb 2010)
Log Message:
-----------
[Fix] Mod Saving: If a mod had loop points set, but loop disabled, they were still saved in the .MOD file, resulting in the loop being enabled automatically.
[Fix] Pattern Editor: Instead of turning "Follow Song" off, the Find/Replace dialog toggled it.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Ctrl_pat.cpp
trunk/OpenMPT/mptrack/Ctrl_seq.cpp
trunk/OpenMPT/mptrack/View_pat.cpp
trunk/OpenMPT/soundlib/Load_mod.cpp
Modified: trunk/OpenMPT/mptrack/Ctrl_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2010-02-05 20:39:08 UTC (rev 483)
+++ trunk/OpenMPT/mptrack/Ctrl_pat.cpp 2010-02-06 17:43:04 UTC (rev 484)
@@ -451,8 +451,16 @@
//rewbs.customKeys
case CTRLMSG_PAT_FOLLOWSONG:
- CheckDlgButton(IDC_PATTERN_FOLLOWSONG, !IsDlgButtonChecked(IDC_PATTERN_FOLLOWSONG));
- OnFollowSong();
+ // parameters: 0 = turn off, 1 = toggle
+ {
+ UINT state = FALSE;
+ if(lParam == 1) // toggle
+ {
+ state = !IsDlgButtonChecked(IDC_PATTERN_FOLLOWSONG);
+ }
+ CheckDlgButton(IDC_PATTERN_FOLLOWSONG, state);
+ OnFollowSong();
+ }
break;
case CTRLMSG_PAT_LOOP:
Modified: trunk/OpenMPT/mptrack/Ctrl_seq.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2010-02-05 20:39:08 UTC (rev 483)
+++ trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2010-02-06 17:43:04 UTC (rev 484)
@@ -446,7 +446,7 @@
case kcChangeLoopStatus:
m_pParent->OnModCtrlMsg(CTRLMSG_PAT_LOOP, -1); return wParam;
case kcToggleFollowSong:
- m_pParent->OnModCtrlMsg(CTRLMSG_PAT_FOLLOWSONG, 0); return wParam;
+ m_pParent->OnModCtrlMsg(CTRLMSG_PAT_FOLLOWSONG, 1); return wParam;
case kcChannelUnmuteAll:
case kcUnmuteAllChnOnPatTransition:
Modified: trunk/OpenMPT/mptrack/View_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_pat.cpp 2010-02-05 20:39:08 UTC (rev 483)
+++ trunk/OpenMPT/mptrack/View_pat.cpp 2010-02-06 17:43:04 UTC (rev 484)
@@ -3614,7 +3614,7 @@
case kcEditPushForwardPaste: OnEditPushForwardPaste(); return wParam;
case kcEditSelectAll: OnEditSelectAll(); return wParam;
case kcTogglePluginEditor: TogglePluginEditor((m_dwCursor & 0xFFFF) >> 3); return wParam;
- case kcToggleFollowSong: SendCtrlMessage(CTRLMSG_PAT_FOLLOWSONG); return wParam;
+ case kcToggleFollowSong: SendCtrlMessage(CTRLMSG_PAT_FOLLOWSONG, 1); return wParam;
case kcChangeLoopStatus: SendCtrlMessage(CTRLMSG_PAT_LOOP, -1); return wParam;
case kcNewPattern: SendCtrlMessage(CTRLMSG_PAT_NEWPATTERN); return wParam;
case kcDuplicatePattern: SendCtrlMessage(CTRLMSG_PAT_DUPPATTERN); return wParam;
@@ -4106,7 +4106,7 @@
void CViewPattern::TempEnterNote(int note, bool oldStyle, int vol)
-//--------------------------------------------------------------------------------
+//----------------------------------------------------------------
{
CMainFrame *pMainFrm = CMainFrame::GetMainFrame();
CModDoc *pModDoc = GetDocument();
Modified: trunk/OpenMPT/soundlib/Load_mod.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_mod.cpp 2010-02-05 20:39:08 UTC (rev 483)
+++ trunk/OpenMPT/soundlib/Load_mod.cpp 2010-02-06 17:43:04 UTC (rev 484)
@@ -494,9 +494,14 @@
if (pSmp->RelativeTone > 0) bTab[24] = 0x07; else
bTab[24] = (BYTE)XM2MODFineTune(pSmp->nFineTune);
bTab[25] = pSmp->nVolume >> 2;
- bTab[26] = pSmp->nLoopStart >> 9;
- bTab[27] = pSmp->nLoopStart >> 1;
- UINT replen = pSmp->nLoopEnd - pSmp->nLoopStart;
+ UINT repstart = 0, replen = 2;
+ if(pSmp->uFlags & CHN_LOOP)
+ {
+ repstart = pSmp->nLoopStart;
+ replen = pSmp->nLoopEnd - pSmp->nLoopStart;
+ }
+ bTab[26] = repstart >> 9;
+ bTab[27] = repstart >> 1;
if(replen < 2) // ensure PT will load it properly
replen = 2;
bTab[28] = replen >> 9;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-02-05 20:39:21
|
Revision: 483
http://modplug.svn.sourceforge.net/modplug/?rev=483&view=rev
Author: saga-games
Date: 2010-02-05 20:39:08 +0000 (Fri, 05 Feb 2010)
Log Message:
-----------
[Fix] ITP Loader: Instruments flags in ITP files with embedded instrument headers were loaded wrong since revision 415. Still have to come up with a solution for the same problem with ITI and XI files.
Revision Links:
--------------
http://modplug.svn.sourceforge.net/modplug/?rev=415&view=rev
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Load_it.cpp
Modified: trunk/OpenMPT/soundlib/Load_it.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_it.cpp 2010-02-05 18:17:51 UTC (rev 482)
+++ trunk/OpenMPT/soundlib/Load_it.cpp 2010-02-05 20:39:08 UTC (rev 483)
@@ -827,21 +827,45 @@
i = 1;
// parse file
- while( uintptr_t(ptr - lpStream) <= dwMemLength - 4 && i <= m_nInstruments ){
+ while( uintptr_t(ptr - lpStream) <= dwMemLength - 4 && i <= m_nInstruments )
+ {
fcode = (*((__int32 *)ptr)); // read field code
- switch( fcode ){
+ switch( fcode )
+ {
case 'MPTS': goto mpts; //:) // reached end of instrument headers
case 'SEP@': case 'MPTX':
ptr += sizeof(__int32); // jump code
i++; // switch to next instrument
- break;
+ break;
default:
ptr += sizeof(__int32); // jump field code
ReadExtendedInstrumentProperty(Instruments[i], fcode, ptr, lpStream + dwMemLength);
- break;
+ // fix old instrument flags which got broken in OpenMPT 1.17.03.03 due to refactoring (rev 415).
+ if(version == 0x00000101 && fcode == 'dF..')
+ {
+ DWORD dwFlags = Instruments[i]->dwFlags; // more convenient
+ DWORD dwNewFlags = 0;
+ if(dwFlags & 0x0001) Instruments[i]->VolEnv.dwFlags |= ENV_ENABLED;
+ if(dwFlags & 0x0002) Instruments[i]->VolEnv.dwFlags |= ENV_SUSTAIN;
+ if(dwFlags & 0x0004) Instruments[i]->VolEnv.dwFlags |= ENV_LOOP;
+ if(dwFlags & 0x0008) Instruments[i]->PanEnv.dwFlags |= ENV_ENABLED;
+ if(dwFlags & 0x0010) Instruments[i]->PanEnv.dwFlags |= ENV_SUSTAIN;
+ if(dwFlags & 0x0020) Instruments[i]->PanEnv.dwFlags |= ENV_LOOP;
+ if(dwFlags & 0x0040) Instruments[i]->PitchEnv.dwFlags |= ENV_ENABLED;
+ if(dwFlags & 0x0080) Instruments[i]->PitchEnv.dwFlags |= ENV_SUSTAIN;
+ if(dwFlags & 0x0100) Instruments[i]->VolEnv.dwFlags |= ENV_LOOP;
+ if(dwFlags & 0x0200) dwNewFlags |= INS_SETPANNING;
+ if(dwFlags & 0x0400) Instruments[i]->PitchEnv.dwFlags |= ENV_FILTER;
+ if(dwFlags & 0x0800) Instruments[i]->VolEnv.dwFlags |= ENV_CARRY;
+ if(dwFlags & 0x1000) Instruments[i]->PanEnv.dwFlags |= ENV_CARRY;
+ if(dwFlags & 0x2000) Instruments[i]->PitchEnv.dwFlags |= ENV_CARRY;
+ if(dwFlags & 0x4000) dwNewFlags |= INS_MUTE;
+ Instruments[i]->dwFlags = dwNewFlags;
+ }
+ break;
}
}
}
@@ -1547,7 +1571,7 @@
DWORD id = 0x2e697470; // .itp ASCII
fwrite(&id, 1, sizeof(id), f);
- id = 0x00000101; // v1.01
+ id = 0x00000102; // v1.02
fwrite(&id, 1, sizeof(id), f);
// Song name
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-02-05 18:18:00
|
Revision: 482
http://modplug.svn.sourceforge.net/modplug/?rev=482&view=rev
Author: saga-games
Date: 2010-02-05 18:17:51 +0000 (Fri, 05 Feb 2010)
Log Message:
-----------
[Imp] PSM Loader: Better handling of SC0 effect
[Imp] IT Saver: Compatibility export saves stereo samples again, as other tracker like Schism also support this.
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Load_it.cpp
trunk/OpenMPT/soundlib/Load_psm.cpp
Modified: trunk/OpenMPT/soundlib/Load_it.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_it.cpp 2010-01-27 20:27:41 UTC (rev 481)
+++ trunk/OpenMPT/soundlib/Load_it.cpp 2010-02-05 18:17:51 UTC (rev 482)
@@ -2910,10 +2910,15 @@
if (psmp->uFlags & CHN_PANNING) itss.dfp |= 0x80;
if ((psmp->pSample) && (psmp->nLength)) itss.cvt = 0x01;
UINT flags = RS_PCM8S;
+ if (psmp->uFlags & CHN_STEREO)
+ {
+ flags = RS_STPCM8S;
+ itss.flags |= 0x04;
+ }
if (psmp->uFlags & CHN_16BIT)
{
itss.flags |= 0x02;
- flags = RS_PCM16S;
+ flags = (psmp->uFlags & CHN_STEREO) ? RS_STPCM16S : RS_PCM16S;
}
itss.samplepointer = dwPos;
if (!(psmp->pSample) || !(psmp->nLength))
Modified: trunk/OpenMPT/soundlib/Load_psm.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_psm.cpp 2010-01-27 20:27:41 UTC (rev 481)
+++ trunk/OpenMPT/soundlib/Load_psm.cpp 2010-02-05 18:17:51 UTC (rev 482)
@@ -1131,7 +1131,17 @@
break;
case 0x2A: // note cut
command = CMD_S3MCMDEX;
- if(param == 0) param = 1;
+ if(param == 0) // in S3M mode, SC0 is ignored, so we convert it to a note cut.
+ {
+ if(row_data->note == NOTE_NONE)
+ {
+ row_data->note = NOTE_NOTECUT;
+ command = CMD_NONE;
+ } else
+ {
+ param = 1;
+ }
+ }
param |= 0xC0;
break;
case 0x2B: // note delay
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-27 20:27:49
|
Revision: 481
http://modplug.svn.sourceforge.net/modplug/?rev=481&view=rev
Author: saga-games
Date: 2010-01-27 20:27:41 +0000 (Wed, 27 Jan 2010)
Log Message:
-----------
[Imp] Mod Conversion: Don't show warning about restart position if it is actually not set (only applies to S3M format)
[Fix] PSM16 Loader: Fix for note cut on tick 0 (warbot tune from Silverball)
[Imp] Improved HasNote function in Mod Specs
[Fix] Corrected original XM specs.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Modedit.cpp
trunk/OpenMPT/soundlib/Load_psm.cpp
trunk/OpenMPT/soundlib/mod_specifications.cpp
trunk/OpenMPT/soundlib/mod_specifications.h
Modified: trunk/OpenMPT/mptrack/Modedit.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Modedit.cpp 2010-01-26 21:25:38 UTC (rev 480)
+++ trunk/OpenMPT/mptrack/Modedit.cpp 2010-01-27 20:27:41 UTC (rev 481)
@@ -345,7 +345,7 @@
}
// Is the "restart position" value allowed in this format?
- if(CSoundFile::GetModSpecifications(nNewType).hasRestartPos == false)
+ if(m_SndFile.m_nRestartPos > 0 && !CSoundFile::GetModSpecifications(nNewType).hasRestartPos)
{
m_SndFile.m_nRestartPos = 0;
AddToLog("WARNING: Restart position is not support by the new format.\n");
Modified: trunk/OpenMPT/soundlib/Load_psm.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_psm.cpp 2010-01-26 21:25:38 UTC (rev 480)
+++ trunk/OpenMPT/soundlib/Load_psm.cpp 2010-01-27 20:27:41 UTC (rev 481)
@@ -360,7 +360,7 @@
default: // How the hell should this happen? I've listened through almost all existing (original) PSM files. :)
CString s;
- s.Format("Please report to the OpenMPT team: Unknown chunk %d found at position %d (in the OPLH chunk of this PSM file)", lpStream[dwSettingsOffset], dwSettingsOffset);
+ s.Format("Report to the OpenMPT team: Unknown chunk %d found at position %d (in the OPLH chunk of this PSM file)", lpStream[dwSettingsOffset], dwSettingsOffset);
MessageBox(NULL, s, TEXT("OpenMPT PSM import"), MB_ICONERROR);
// anyway, in such cases, we have to quit as we don't know how big the chunk really is.
return false;
@@ -1131,6 +1131,7 @@
break;
case 0x2A: // note cut
command = CMD_S3MCMDEX;
+ if(param == 0) param = 1;
param |= 0xC0;
break;
case 0x2B: // note delay
Modified: trunk/OpenMPT/soundlib/mod_specifications.cpp
===================================================================
--- trunk/OpenMPT/soundlib/mod_specifications.cpp 2010-01-26 21:25:38 UTC (rev 480)
+++ trunk/OpenMPT/soundlib/mod_specifications.cpp 2010-01-27 20:27:41 UTC (rev 481)
@@ -17,7 +17,8 @@
return hasNoteFade;
else
return (memcmp(fileExtension, ModSpecs::mptm.fileExtension, 4) == 0);
- }
+ } else if(note == NOTE_NONE)
+ return true;
return false;
}
Modified: trunk/OpenMPT/soundlib/mod_specifications.h
===================================================================
--- trunk/OpenMPT/soundlib/mod_specifications.h 2010-01-26 21:25:38 UTC (rev 480)
+++ trunk/OpenMPT/soundlib/mod_specifications.h 2010-01-27 20:27:41 UTC (rev 481)
@@ -52,7 +52,7 @@
const CModSpecifications mptm =
{
/*
- TODO: Proper, less arbitrarily chosen, values here.
+ TODO: Proper, less arbitrarily chosen values here.
NOTE: If changing limits, see whether:
-savefile format and GUI methods can handle new values(might not be a small task :).
*/
@@ -78,7 +78,7 @@
1, //Min Speed
255, //Max Speed
true, //Has song comments
- 240, //Envelope point count
+ MAX_ENVPOINTS, //Envelope point count
" JFEGHLKRXODB?CQATI?SMNVW?UY?P?Z\\:#", // Supported Effects
" vpcdabuhlrgfe:o", // Supported Volume Column commands
true, // Has "+++" pattern
@@ -171,15 +171,15 @@
1, //Min pattern rows
256, //Max pattern rows
20, //Max mod name length
- 31, //SamplesMax
- 200, //instrumentMax
+ 31, //SamplesMax (actually 16 per instrument)
+ 128, //instrumentMax
mixLevels_original, //defaultMixLevels
0, //Max MIDI mapping directives
1, //Min Speed
31, //Max Speed
false, //No song comments
12, //Envelope point count
- " 0123456789ABCDRFFTE???GHK?YXPLZ\\:#", // Supported Effects
+ " 0123456789ABCDRFFTE???GHK??XPL????", // Supported Effects
" vpcdabuhlrg????", // Supported Volume Column commands
false, // Doesn't have "+++" pattern
true, // Has restart position (order)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-26 21:25:48
|
Revision: 480
http://modplug.svn.sourceforge.net/modplug/?rev=480&view=rev
Author: saga-games
Date: 2010-01-26 21:25:38 +0000 (Tue, 26 Jan 2010)
Log Message:
-----------
[Mod] Further corrections to History.txt
Modified Paths:
--------------
trunk/OpenMPT/packageTemplate/History.txt
Modified: trunk/OpenMPT/packageTemplate/History.txt
===================================================================
--- trunk/OpenMPT/packageTemplate/History.txt 2010-01-25 22:42:20 UTC (rev 479)
+++ trunk/OpenMPT/packageTemplate/History.txt 2010-01-26 21:25:38 UTC (rev 480)
@@ -26,7 +26,7 @@
Pattern tab::Pattern editing
+ <Jojo> New paste mode "push forward paste", which resembles the default paste behaviour of Impulse Tracker. Includes new shortcut.
- + <Jojo> The "paste flood" command pastes the clipboard content again and again until it hits the bottom of the pattern (overflow paste will be disabled automatically if paste flood is used, for obvious reasons).
+ + <Jojo> New paste mode "paste flood" pastes the clipboard content again and again until it hits the bottom of the pattern (overflow paste will be disabled automatically if paste flood is used, for obvious reasons).
^ <Jojo> When using the MPTM format, plugin param changes are written to the pattern as PC Notes (instead of smooth midi macros).
^ <Jojo> Assume that the clipboard pattern format is IT (instead of MOD) if no information about the format is available.
^ <Jojo> Pattern c&p: convert pasted commands if necessary.
@@ -36,7 +36,6 @@
/ <Jojo> It is impossible to enter something into the volume column in MOD format now.
/ <Jojo> When interpolating PC notes, the plugin number and note type won't get overriden if the note type is already PC or PCs.
. <re> Pattern c&p: Mix paste should behave better with parameter control notes.
- . <Jojo> PC note handling was missing in OnClearSelection, so it was possible to delete the "effect column" (parameter value) only partly
. <Jojo> Amplify acted VERY weird when it was applied on an instrument that's not assigned to any sample. Should be a bit better now.
. <Jojo> Amplify doesn't use volume column in MOD format anymore.
. <Jojo> When recording live from the keyboard, SDx shouldn't exceed the song speed anymore.
@@ -73,7 +72,6 @@
^ <Jojo> When sample is 8-bit, it will automatically be converted to 16-bit when applying time stretching / pitch shifting.
^ <Jojo> Can now enter insanely high values into sample frequency input field (as they are supported by Impulse Tracker), allow only 65536 Hz for S3M files.
/ <Jojo> Removed time stretcher's / pitch shifter's preview function as it's unnecessary now.
- . <Jojo> When going down close to 0 Hz in the sample editor, the sample freq wrapped around to the maximum value.
. <Jojo> Insert Silence: Loop points were not updated when adding silence at the beginning of the sample
. <re> Actions such as time stretching and undo could trigger sample play.
@@ -95,6 +93,7 @@
Treeview
+ <Jojo> Show sequences in song treeview. Sequences can be inserted, duplicated and deleted by right-clicking the sequence items.
+ <Jojo> Clicking on a mod item (i.e. a filename node) switches to the corresponding window.
+ + <Jojo> Added right-click options for mod items.
+ <Jojo> Display playing samples / instruments (only those that are assigned to a sample) using green triangles. Can be enabled from setup screen.
+ <Jojo> Muted samples and instruments are shown with a different icon.
^ <Jojo> Can now dragondrop orders, even between sequences.
@@ -121,7 +120,7 @@
^ <Jojo> Remove sample vibrato and sustain loops for MOD / S3M.
Playback (see also format-specific changes below)
- ^ <Jojo> Added some more standard playback frequencies (176KHz, 192KHz).
+ ^ <Jojo> Added some more standard playback frequencies (176KHz, 192KHz) to setup.
. <Jojo> When jumping around in a module, high offset value is also memorized.
IT::Saving
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-25 22:42:29
|
Revision: 479
http://modplug.svn.sourceforge.net/modplug/?rev=479&view=rev
Author: saga-games
Date: 2010-01-25 22:42:20 +0000 (Mon, 25 Jan 2010)
Log Message:
-----------
[Imp] Installer: Small improvment to VST scanning (don't write "NumPlugins" key if no plugins have been found).
[Mod] Changed history (.txt)
Modified Paths:
--------------
trunk/OpenMPT/installer/vst_scan.iss
trunk/OpenMPT/packageTemplate/History.txt
Modified: trunk/OpenMPT/installer/vst_scan.iss
===================================================================
--- trunk/OpenMPT/installer/vst_scan.iss 2010-01-25 19:38:07 UTC (rev 478)
+++ trunk/OpenMPT/installer/vst_scan.iss 2010-01-25 22:42:20 UTC (rev 479)
@@ -13,6 +13,7 @@
bExitSetup: Boolean;
INIFile: String;
VSTPluginNumber: Integer;
+ OldVSTPluginNumber: Integer;
procedure ProcessDirectory (RootDir: String; Progress: Boolean);
var
@@ -75,37 +76,41 @@
if ((CurStep = ssInstall) And (IsTaskSelected('vst_scan'))) then
begin
- // Get the right INI path.
- if(IsTaskSelected('portable')) then
- begin
- INIFile := ExpandConstant('{app}\mptrack.ini');
- end else
- begin
- INIFile := ExpandConstant('{userappdata}\OpenMPT\mptrack.ini');
+ // Get the right INI path.
+ if(IsTaskSelected('portable')) then
+ begin
+ INIFile := ExpandConstant('{app}\mptrack.ini');
+ end else
+ begin
+ INIFile := ExpandConstant('{userappdata}\OpenMPT\mptrack.ini');
+ end;
+ VSTPluginNumber := GetIniInt('VST Plugins', 'NumPlugins', 0, 0, 0, INIFile);
+ OldVSTPluginNumber := VSTPluginNumber;
+
+ // The folder to scan.
+ Dir := ExpandConstant('{pf}\Steinberg\VstPlugins');
+ RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\VST', 'VSTPluginsPath', Dir); // won't touch Dir if registry path does not exist
+ // The progress page.
+ ProgressPage := CreateOutputProgressPage (CustomMessage ('ProgressTitle'),
+ CustomMessage ('ProgressCaption'));
+ ProgressPage.SetText (CustomMessage ('ProgressText'), Dir);
+ ProgressPage.SetProgress(0, 0);
+ ProgressPage.Show;
+ // Make the Cancel button visible during the operation.
+ ;WizardForm.CancelButton.Visible := TRUE;
+ // Scan the folder.
+ ProcessDirectory (Dir, TRUE);
+ // Hide the progress page.
+ try
+ finally
+ ProgressPage.Hide;
+ end;
+
+ // Update INI key
+
+ if(VSTPluginNumber <> OldVSTPluginNumber) then
+ begin
+ SetIniInt('VST Plugins', 'NumPlugins', VSTPluginNumber, INIFile);
+ end;
end;
- VSTPluginNumber := GetIniInt('VST Plugins', 'NumPlugins', 0, 0, 0, INIFile);
-
- // The folder to scan.
- Dir := ExpandConstant('{pf}\Steinberg\VstPlugins');
- RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\VST', 'VSTPluginsPath', Dir); // won't touch Dir if registry path does not exist
- // The progress page.
- ProgressPage := CreateOutputProgressPage (CustomMessage ('ProgressTitle'),
- CustomMessage ('ProgressCaption'));
- ProgressPage.SetText (CustomMessage ('ProgressText'), Dir);
- ProgressPage.SetProgress(0, 0);
- ProgressPage.Show;
- // Make the Cancel button visible during the operation.
- ;WizardForm.CancelButton.Visible := TRUE;
- // Scan the folder.
- ProcessDirectory (Dir, TRUE);
- // Hide the progress page.
- try
- finally
- ProgressPage.Hide;
- end;
-
- // Update INI key
- SetIniInt('VST Plugins', 'NumPlugins', VSTPluginNumber, INIFile);
- end;
end;
-
Modified: trunk/OpenMPT/packageTemplate/History.txt
===================================================================
--- trunk/OpenMPT/packageTemplate/History.txt 2010-01-25 19:38:07 UTC (rev 478)
+++ trunk/OpenMPT/packageTemplate/History.txt 2010-01-25 22:42:20 UTC (rev 479)
@@ -44,7 +44,6 @@
. <Jojo> PC notes are now deleted properly (last column).
. <Jojo> Copying only the param column of PC notes overwrote the value column when pasting them.
. <Jojo> Entering Note Fade notes didn't work the "old style" way.
- . <Jojo> PC note handling was missing in OnClearSelection, so it was possible to delete the effect column only partly.
Pattern tab::GUI
+ <Jojo> Channel rename dialog in channel header context menu.
@@ -144,7 +143,7 @@
S3M
. <Jojo> ST3 compatibility: Only allow waveforms 0 to 3 for S3x / S4x / S5x.
- . <Jojo> The S3M format actually knows muted channels. This was not taking into account before.
+ . <Jojo> The S3M format actually knows muted channels. This was not taken into account before.
XM::Loading
^ <Jojo> Allow to load modules with an empty order list (as they are, in fact, valid XM files).
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-25 19:38:16
|
Revision: 478
http://modplug.svn.sourceforge.net/modplug/?rev=478&view=rev
Author: saga-games
Date: 2010-01-25 19:38:07 +0000 (Mon, 25 Jan 2010)
Log Message:
-----------
[Fix] Installer: The VST plugin scanner apparently broke the "Exit Setup" string. Furthermore, it wrote a wrong key in the mptrack.ini file.
Modified Paths:
--------------
trunk/OpenMPT/installer/vst_scan.iss
Modified: trunk/OpenMPT/installer/vst_scan.iss
===================================================================
--- trunk/OpenMPT/installer/vst_scan.iss 2010-01-25 19:22:19 UTC (rev 477)
+++ trunk/OpenMPT/installer/vst_scan.iss 2010-01-25 19:38:07 UTC (rev 478)
@@ -7,86 +7,73 @@
[Code]
var
- ProgressPage: TOutputProgressWizardPage;
- ProgressValue: Integer;
- ArrayLen: LongInt;
- bExitSetup: Boolean;
- INIFile: String;
- VSTPluginNumber: Integer;
+ ProgressPage: TOutputProgressWizardPage;
+ ProgressValue: Integer;
+ ArrayLen: LongInt;
+ bExitSetup: Boolean;
+ INIFile: String;
+ VSTPluginNumber: Integer;
procedure ProcessDirectory (RootDir: String; Progress: Boolean);
var
- NewRoot: String;
- FilePath: String;
- FindRec: TFindRec;
+ NewRoot: String;
+ FilePath: String;
+ FindRec: TFindRec;
begin
- if bExitSetup then
- Exit;
- NewRoot := AddBackSlash (RootDir);
- if FindFirst (NewRoot + '*', FindRec) then
- begin
- try
- repeat
- if (FindRec.Name <> '.') AND (FindRec.Name <> '..') then
- begin
- FilePath := NewRoot + FindRec.Name;
- if FindRec.Attributes AND FILE_ATTRIBUTE_DIRECTORY > 0 then
- ProcessDirectory (FilePath, Progress)
- else
- begin
- // Start action -->
- // .
- // Add your custom code here.
- // FilePath contains the file name
- // including its full path name.
- // Try not to call a function for every file
- // as this could take a very long time.
- // .
- // <-- End action.
- SetIniString('VST Plugins', 'Plugin' + IntToStr(VSTPluginNumber), FilePath, INIFile);
- VSTPluginNumber := VSTPluginNumber +1;
-
- ArrayLen := ArrayLen + 1;
- if (Progress) then
- begin
- if (ArrayLen mod 1000) = (ArrayLen / 1000) then
- begin
- ProgressValue := ProgressValue + 1;
- if ProgressValue = 100 then
- ProgressValue := 0;
- ProgressPage.SetProgress (ProgressValue, 100);
- end;
- end;
- end;
- end;
- if (bExitSetup) then
- Exit;
- until NOT FindNext (FindRec);
- finally
- FindClose(FindRec);
- end;
- end;
+ if bExitSetup then
+ Exit;
+ NewRoot := AddBackSlash (RootDir);
+ if FindFirst (NewRoot + '*', FindRec) then
+ begin
+ try
+ repeat
+ if (FindRec.Name <> '.') AND (FindRec.Name <> '..') then
+ begin
+ FilePath := NewRoot + FindRec.Name;
+ if FindRec.Attributes AND FILE_ATTRIBUTE_DIRECTORY > 0 then
+ ProcessDirectory (FilePath, Progress)
+ else
+ begin
+ // Start action -->
+ // .
+ // Add your custom code here.
+ // FilePath contains the file name
+ // including its full path name.
+ // Try not to call a function for every file
+ // as this could take a very long time.
+ // .
+ SetIniString('VST Plugins', 'Plugin' + IntToStr(VSTPluginNumber), FilePath, INIFile);
+ VSTPluginNumber := VSTPluginNumber +1;
+ // <-- End action.
+
+ ArrayLen := ArrayLen + 1;
+ if (Progress) then
+ begin
+ if (ArrayLen mod 1000) = (ArrayLen / 1000) then
+ begin
+ ProgressValue := ProgressValue + 1;
+ if ProgressValue = 100 then
+ ProgressValue := 0;
+ ProgressPage.SetProgress (ProgressValue, 100);
+ end;
+ end;
+ end;
+ end;
+ if (bExitSetup) then
+ Exit;
+ until NOT FindNext (FindRec);
+ finally
+ FindClose(FindRec);
+ end;
+ end;
end;
-function MessageBox (hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
- external 'Mes...@us... stdcall';
-
-procedure CancelButtonClick (CurPageID: Integer; var Cancel, Confirm: Boolean);
-begin
- Confirm := FALSE;
- if (MessageBox (0, SetupMessage (msgExitSetupMessage),
- SetupMessage (msgExitSetupTitle), 4 + 32) = 6) then
- begin
- bExitSetup := TRUE;
- end;
-end;
-
procedure CurStepChanged (CurStep: TSetupStep);
var
- Dir: String;
+ Dir: String;
begin
- if ((CurStep = ssInstall) And (IsTaskSelected('vst_scan'))) then
- begin
+ if ((CurStep = ssInstall) And (IsTaskSelected('vst_scan'))) then
+ begin
// Get the right INI path.
if(IsTaskSelected('portable')) then
@@ -96,29 +83,29 @@
begin
INIFile := ExpandConstant('{userappdata}\OpenMPT\mptrack.ini');
end;
- VSTPluginNumber := GetIniInt('VST Plugins', 'NumPlugin', 0, 0, 0, INIFile);
+ VSTPluginNumber := GetIniInt('VST Plugins', 'NumPlugins', 0, 0, 0, INIFile);
- // The folder to scan.
+ // The folder to scan.
Dir := ExpandConstant('{pf}\Steinberg\VstPlugins');
RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\VST', 'VSTPluginsPath', Dir); // won't touch Dir if registry path does not exist
- // The progress page.
- ProgressPage := CreateOutputProgressPage (CustomMessage ('ProgressTitle'),
- CustomMessage ('ProgressCaption'));
- ProgressPage.SetText (CustomMessage ('ProgressText'), Dir);
- ProgressPage.SetProgress(0, 0);
- ProgressPage.Show;
- // Make the Cancel button visible during the operation.
- ;WizardForm.CancelButton.Visible := TRUE;
- // Scan the folder.
- ProcessDirectory (Dir, TRUE);
- // Hide the progress page.
- try
- finally
- ProgressPage.Hide;
- end;
+ // The progress page.
+ ProgressPage := CreateOutputProgressPage (CustomMessage ('ProgressTitle'),
+ CustomMessage ('ProgressCaption'));
+ ProgressPage.SetText (CustomMessage ('ProgressText'), Dir);
+ ProgressPage.SetProgress(0, 0);
+ ProgressPage.Show;
+ // Make the Cancel button visible during the operation.
+ ;WizardForm.CancelButton.Visible := TRUE;
+ // Scan the folder.
+ ProcessDirectory (Dir, TRUE);
+ // Hide the progress page.
+ try
+ finally
+ ProgressPage.Hide;
+ end;
// Update INI key
- SetIniInt('VST Plugins', 'NumPlugin', VSTPluginNumber, INIFile);
+ SetIniInt('VST Plugins', 'NumPlugins', VSTPluginNumber, INIFile);
end;
end;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-25 19:22:29
|
Revision: 477
http://modplug.svn.sourceforge.net/modplug/?rev=477&view=rev
Author: saga-games
Date: 2010-01-25 19:22:19 +0000 (Mon, 25 Jan 2010)
Log Message:
-----------
[Mod] Installer: Using a GUID for AppId
[New] Installer: Scan for previously installed VST Plugins
Modified Paths:
--------------
trunk/OpenMPT/installer/install.iss
Added Paths:
-----------
trunk/OpenMPT/installer/vst_scan.iss
Modified: trunk/OpenMPT/installer/install.iss
===================================================================
--- trunk/OpenMPT/installer/install.iss 2010-01-25 16:38:56 UTC (rev 476)
+++ trunk/OpenMPT/installer/install.iss 2010-01-25 19:22:19 UTC (rev 477)
@@ -4,7 +4,7 @@
; http://sagagames.de/
[Setup]
-AppId=OpenMPT
+AppId={{67903736-E9BB-4664-B148-F62BCAB4FA42}
AppVerName=OpenMPT 1.18
AppVersion=1.18.00.00
AppName=OpenMPT
@@ -29,11 +29,12 @@
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "portable"; Description: "Use program directory to store configuration in"; GroupDescription: "Options:"; Flags: unchecked
+Name: "vst_scan"; Description: "Scan for previously installed VST plugins"; GroupDescription: "Options:"; Flags: unchecked
; file associations - put this below all other [tasks]!
#include "filetypes.iss"
[Languages]
-Name: "en"; MessagesFile: "compiler:Default.isl"
+Name: "english"; MessagesFile: "compiler:Default.isl"
[Files]
; you may want to change the base paths here
@@ -139,3 +140,4 @@
end;
end;
+#include "vst_scan.iss"
Added: trunk/OpenMPT/installer/vst_scan.iss
===================================================================
--- trunk/OpenMPT/installer/vst_scan.iss (rev 0)
+++ trunk/OpenMPT/installer/vst_scan.iss 2010-01-25 19:22:19 UTC (rev 477)
@@ -0,0 +1,124 @@
+[CustomMessages]
+english.ProgressTitle=Searching
+english.ProgressCaption=Searching for VST plugins
+english.ProgressText=Searching for plugin files...
+
+; http://www.vincenzo.net/isxkb/index.php?title=Search_for_a_file
+
+[Code]
+var
+ ProgressPage: TOutputProgressWizardPage;
+ ProgressValue: Integer;
+ ArrayLen: LongInt;
+ bExitSetup: Boolean;
+ INIFile: String;
+ VSTPluginNumber: Integer;
+
+procedure ProcessDirectory (RootDir: String; Progress: Boolean);
+var
+ NewRoot: String;
+ FilePath: String;
+ FindRec: TFindRec;
+begin
+ if bExitSetup then
+ Exit;
+ NewRoot := AddBackSlash (RootDir);
+ if FindFirst (NewRoot + '*', FindRec) then
+ begin
+ try
+ repeat
+ if (FindRec.Name <> '.') AND (FindRec.Name <> '..') then
+ begin
+ FilePath := NewRoot + FindRec.Name;
+ if FindRec.Attributes AND FILE_ATTRIBUTE_DIRECTORY > 0 then
+ ProcessDirectory (FilePath, Progress)
+ else
+ begin
+ // Start action -->
+ // .
+ // Add your custom code here.
+ // FilePath contains the file name
+ // including its full path name.
+ // Try not to call a function for every file
+ // as this could take a very long time.
+ // .
+ // <-- End action.
+ SetIniString('VST Plugins', 'Plugin' + IntToStr(VSTPluginNumber), FilePath, INIFile);
+ VSTPluginNumber := VSTPluginNumber +1;
+
+ ArrayLen := ArrayLen + 1;
+ if (Progress) then
+ begin
+ if (ArrayLen mod 1000) = (ArrayLen / 1000) then
+ begin
+ ProgressValue := ProgressValue + 1;
+ if ProgressValue = 100 then
+ ProgressValue := 0;
+ ProgressPage.SetProgress (ProgressValue, 100);
+ end;
+ end;
+ end;
+ end;
+ if (bExitSetup) then
+ Exit;
+ until NOT FindNext (FindRec);
+ finally
+ FindClose(FindRec);
+ end;
+ end;
+end;
+
+function MessageBox (hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
+ external 'Mes...@us... stdcall';
+
+procedure CancelButtonClick (CurPageID: Integer; var Cancel, Confirm: Boolean);
+begin
+ Confirm := FALSE;
+ if (MessageBox (0, SetupMessage (msgExitSetupMessage),
+ SetupMessage (msgExitSetupTitle), 4 + 32) = 6) then
+ begin
+ bExitSetup := TRUE;
+ end;
+end;
+
+procedure CurStepChanged (CurStep: TSetupStep);
+var
+ Dir: String;
+begin
+ if ((CurStep = ssInstall) And (IsTaskSelected('vst_scan'))) then
+ begin
+
+ // Get the right INI path.
+ if(IsTaskSelected('portable')) then
+ begin
+ INIFile := ExpandConstant('{app}\mptrack.ini');
+ end else
+ begin
+ INIFile := ExpandConstant('{userappdata}\OpenMPT\mptrack.ini');
+ end;
+ VSTPluginNumber := GetIniInt('VST Plugins', 'NumPlugin', 0, 0, 0, INIFile);
+
+ // The folder to scan.
+ Dir := ExpandConstant('{pf}\Steinberg\VstPlugins');
+ RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\VST', 'VSTPluginsPath', Dir); // won't touch Dir if registry path does not exist
+ // The progress page.
+ ProgressPage := CreateOutputProgressPage (CustomMessage ('ProgressTitle'),
+ CustomMessage ('ProgressCaption'));
+ ProgressPage.SetText (CustomMessage ('ProgressText'), Dir);
+ ProgressPage.SetProgress(0, 0);
+ ProgressPage.Show;
+ // Make the Cancel button visible during the operation.
+ ;WizardForm.CancelButton.Visible := TRUE;
+ // Scan the folder.
+ ProcessDirectory (Dir, TRUE);
+ // Hide the progress page.
+ try
+ finally
+ ProgressPage.Hide;
+ end;
+
+ // Update INI key
+ SetIniInt('VST Plugins', 'NumPlugin', VSTPluginNumber, INIFile);
+ end;
+end;
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-25 16:39:12
|
Revision: 476
http://modplug.svn.sourceforge.net/modplug/?rev=476&view=rev
Author: saga-games
Date: 2010-01-25 16:38:56 +0000 (Mon, 25 Jan 2010)
Log Message:
-----------
[Fix] Installer: Uninstalling config files should work properly now.
Modified Paths:
--------------
trunk/OpenMPT/installer/install.iss
Modified: trunk/OpenMPT/installer/install.iss
===================================================================
--- trunk/OpenMPT/installer/install.iss 2010-01-23 16:55:32 UTC (rev 475)
+++ trunk/OpenMPT/installer/install.iss 2010-01-25 16:38:56 UTC (rev 476)
@@ -51,8 +51,8 @@
Source: "..\packageTemplate\extraKeymaps\*.*"; DestDir: "{app}\extraKeymaps"; Flags: ignoreversion
; kind of auto-backup - handy!
-Source: "{userappdata}\OpenMPT\mptrack.ini"; DestDir: "{userappdata}\OpenMPT\mptrack.ini.old"; Flags: external skipifsourcedoesntexist; Tasks: not portable
-Source: "{userappdata}\OpenMPT\plugin.cache"; DestDir: "{userappdata}\OpenMPT\plugin.cache.old"; Flags: external skipifsourcedoesntexist; Tasks: not portable
+Source: "{userappdata}\OpenMPT\mptrack.ini"; DestDir: "{userappdata}\OpenMPT"; DestName: "mptrack.ini.old"; Flags: external skipifsourcedoesntexist; Tasks: not portable
+Source: "{userappdata}\OpenMPT\plugin.cache"; DestDir: "{userappdata}\OpenMPT"; DestName: "plugin.cache.old"; Flags: external skipifsourcedoesntexist; Tasks: not portable
[Dirs]
; option dirs for non-portable mode
@@ -77,7 +77,7 @@
[INI]
; enable portable mode
-Filename: "{app}\mptrack.ini"; Section: "Paths"; Key: "UseAppDataDirectory"; String: "0"; Flags: uninsdeleteentry createkeyifdoesntexist; Tasks: portable
+Filename: "{app}\mptrack.ini"; Section: "Paths"; Key: "UseAppDataDirectory"; String: "0"; Flags: createkeyifdoesntexist; Tasks: portable
; internet shortcut
Filename: "{app}\ModPlug Central.url"; Section: "InternetShortcut"; Key: "URL"; String: "http://www.lpchip.com/modplug/"; Flags: createkeyifdoesntexist;
@@ -89,40 +89,53 @@
; internet shortcut has to be deleted manually
Type: files; Name: "{app}\ModPlug Central.url";
; normal installation
-Type: files; Name: "{userappdata}\OpenMPT\mptrack.ini"; Tasks: not portable; Check: DeletePersonalFilesOnUninstall;
-Type: files; Name: "{userappdata}\OpenMPT\plugin.cache"; Tasks: not portable; Check: DeletePersonalFilesOnUninstall;
-Type: files; Name: "{userappdata}\OpenMPT\tunings\local_tunings.tc"; Tasks: not portable; Check: DeletePersonalFilesOnUninstall;
Type: dirifempty; Name: "{userappdata}\OpenMPT\tunings"; Tasks: not portable
Type: dirifempty; Name: "{userappdata}\OpenMPT"; Tasks: not portable
; portable installation
-Type: files; Name: "{app}\mptrack.ini"; Tasks: portable; Check: DeletePersonalFilesOnUninstall;
-Type: files; Name: "{app}\plugin.cache"; Tasks: portable; Check: DeletePersonalFilesOnUninstall;
-Type: files; Name: "{app}\tunings\local_tunings.tc"; Tasks: portable; Check: DeletePersonalFilesOnUninstall;
-Type: dirifempty; Name: "{app}\tunings"; Tasks: portable; Check: DeletePersonalFilesOnUninstall;
+Type: dirifempty; Name: "{app}\tunings"; Tasks: portable;
; crappy workaround for uninstall stuff
[Code]
+
+procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
- deletesettings: Boolean;
+ filepath: String;
-function DeletePersonalFilesOnUninstall: Boolean;
begin
- Result := deletesettings;
-end;
-
-procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
-begin
- case CurUninstallStep of
+ case CurUninstallStep of
usUninstall:
- begin
- if MsgBox('Do you want to keep your personal settings and tunings?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
begin
- deletesettings := False;
- end else
- begin
- deletesettings := True;
+ if MsgBox('Do you want to remove OpenMPT settings files (mptrack.ini, Keybindings.mkb, plugin.cache and local_tunings.tc)?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
+ begin
+ if(GetIniInt('Paths', 'UseAppDataDirectory', 1, 0, 0, ExpandConstant('{app}\mptrack.ini')) = 1) then
+ begin
+ filepath := ExpandConstant('{userappdata}\OpenMPT\mptrack.ini');
+ if FileExists(filepath) then DeleteFile(filepath);
+
+ filepath := ExpandConstant('{userappdata}\OpenMPT\Keybindings.mkb');
+ if FileExists(filepath) then DeleteFile(filepath);
+
+ filepath := ExpandConstant('{userappdata}\OpenMPT\plugin.cache');
+ if FileExists(filepath) then DeleteFile(filepath);
+
+ filepath := ExpandConstant('{userappdata}\OpenMPT\tunings\local_tunings.tc');
+ if FileExists(filepath) then DeleteFile(filepath);
+ end else
+ begin
+ filepath := ExpandConstant('{app}\mptrack.ini');
+ if FileExists(filepath) then DeleteFile(filepath);
+
+ filepath := ExpandConstant('{app}\Keybindings.mkb');
+ if FileExists(filepath) then DeleteFile(filepath);
+
+ filepath := ExpandConstant('{app}\plugin.cache');
+ if FileExists(filepath) then DeleteFile(filepath);
+
+ filepath := ExpandConstant('{app}\tunings\local_tunings.tc');
+ if FileExists(filepath) then DeleteFile(filepath);
+ end;
+ end;
end;
- end;
- end;
+ end;
end;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-23 16:55:42
|
Revision: 475
http://modplug.svn.sourceforge.net/modplug/?rev=475&view=rev
Author: saga-games
Date: 2010-01-23 16:55:32 +0000 (Sat, 23 Jan 2010)
Log Message:
-----------
[Fix] Mod specs: If necessary (S3M), disable restart position edit control on general tab, reset restart position attribute when converting
[Ref] Internal: Some variable type refactoring
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Ctrl_gen.cpp
trunk/OpenMPT/mptrack/MainFrm.cpp
trunk/OpenMPT/mptrack/Modedit.cpp
trunk/OpenMPT/soundlib/Sndfile.cpp
trunk/OpenMPT/soundlib/Sndfile.h
trunk/OpenMPT/soundlib/mod_specifications.h
Modified: trunk/OpenMPT/mptrack/Ctrl_gen.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2010-01-22 23:43:38 UTC (rev 474)
+++ trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2010-01-23 16:55:32 UTC (rev 475)
@@ -217,6 +217,7 @@
m_SliderVSTiVol.EnableWindow(bIsNotMOD_S3M);
m_EditVSTiVol.EnableWindow(bIsNotMOD_S3M);
m_SpinVSTiVol.EnableWindow(bIsNotMOD_S3M);
+ m_EditRestartPos.EnableWindow(specs.hasRestartPos ? TRUE : FALSE);
//Note: Global volume slider is not disabled for MOD
//on purpose(can be used to control play volume)
Modified: trunk/OpenMPT/mptrack/MainFrm.cpp
===================================================================
--- trunk/OpenMPT/mptrack/MainFrm.cpp 2010-01-22 23:43:38 UTC (rev 474)
+++ trunk/OpenMPT/mptrack/MainFrm.cpp 2010-01-23 16:55:32 UTC (rev 475)
@@ -1801,7 +1801,7 @@
//--------------------------------
{
m_nPreAmp = n;
- if (m_pSndFile) m_pSndFile->SetMasterVolume(m_nPreAmp, TRUE);
+ if (m_pSndFile) m_pSndFile->SetMasterVolume(m_nPreAmp, true);
}
@@ -1864,7 +1864,7 @@
pSndFile->SetRepeatCount((gbLoopSong) ? -1 : 0);
}
}
- m_pSndFile->SetMasterVolume(m_nPreAmp, TRUE);
+ m_pSndFile->SetMasterVolume(m_nPreAmp, true);
m_pSndFile->InitPlayer(TRUE);
memset(NotifyBuffer, 0, sizeof(NotifyBuffer));
m_dwStatus |= MODSTATUS_PLAYING;
@@ -1957,7 +1957,7 @@
return FALSE;
}
gsdwTotalSamples = 0;
- m_pSndFile->SetMasterVolume(m_nPreAmp, TRUE);
+ m_pSndFile->SetMasterVolume(m_nPreAmp, true);
m_pSndFile->InitPlayer(TRUE);
m_dwStatus |= MODSTATUS_PLAYING;
if (gpSoundDevice) gpSoundDevice->Start();
Modified: trunk/OpenMPT/mptrack/Modedit.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Modedit.cpp 2010-01-22 23:43:38 UTC (rev 474)
+++ trunk/OpenMPT/mptrack/Modedit.cpp 2010-01-23 16:55:32 UTC (rev 475)
@@ -344,6 +344,14 @@
}
}
+ // Is the "restart position" value allowed in this format?
+ if(CSoundFile::GetModSpecifications(nNewType).hasRestartPos == false)
+ {
+ m_SndFile.m_nRestartPos = 0;
+ AddToLog("WARNING: Restart position is not support by the new format.\n");
+ }
+
+
// Fix channel settings (pan/vol)
for(CHANNELINDEX nChn = 0; nChn < m_SndFile.m_nChannels; nChn++)
{
Modified: trunk/OpenMPT/soundlib/Sndfile.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.cpp 2010-01-22 23:43:38 UTC (rev 474)
+++ trunk/OpenMPT/soundlib/Sndfile.cpp 2010-01-23 16:55:32 UTC (rev 475)
@@ -1029,18 +1029,17 @@
}
-BOOL CSoundFile::SetMasterVolume(UINT nVol, BOOL bAdjustAGC)
-//----------------------------------------------------------
+void CSoundFile::SetMasterVolume(UINT nVol, bool adjustAGC)
+//---------------------------------------------------------
{
if (nVol < 1) nVol = 1;
if (nVol > 0x200) nVol = 0x200; // x4 maximum
- if ((nVol < m_nMasterVolume) && (nVol) && (gdwSoundSetup & SNDMIX_AGC) && (bAdjustAGC))
+ if ((nVol < m_nMasterVolume) && (nVol) && (gdwSoundSetup & SNDMIX_AGC) && (adjustAGC))
{
gnAGC = gnAGC * m_nMasterVolume / nVol;
if (gnAGC > AGC_UNITY) gnAGC = AGC_UNITY;
}
m_nMasterVolume = nVol;
- return TRUE;
}
@@ -1058,15 +1057,17 @@
}
-/*
-UINT CSoundFile::GetNumInstruments() const
-//----------------------------------------
+PATTERNINDEX CSoundFile::GetNumPatterns() const
+//---------------------------------------------
{
- UINT n=0;
- for (UINT i=0; i<MAX_INSTRUMENTS; i++) if (Ins[i].pSample) n++;
- return n;
+ PATTERNINDEX max = 0;
+ for(PATTERNINDEX i = 0; i < Patterns.Size(); i++)
+ {
+ if(Patterns.IsValidPat(i))
+ max = i;
+ }
+ return max;
}
-*/
UINT CSoundFile::GetMaxPosition() const
@@ -2623,8 +2624,8 @@
}
-BOOL CSoundFile::SetPatternName(UINT nPat, LPCSTR lpszName)
-//---------------------------------------------------------
+BOOL CSoundFile::SetPatternName(PATTERNINDEX nPat, LPCSTR lpszName)
+//------------------------------------------------------------------
{
CHAR szName[MAX_PATTERNNAME] = "";
if (nPat >= Patterns.Size()) return FALSE;
@@ -2652,8 +2653,8 @@
}
-BOOL CSoundFile::GetPatternName(UINT nPat, LPSTR lpszName, UINT cbSize) const
-//---------------------------------------------------------------------------
+BOOL CSoundFile::GetPatternName(PATTERNINDEX nPat, LPSTR lpszName, UINT cbSize) const
+//-----------------------------------------------------------------------------------
{
if ((!lpszName) || (!cbSize)) return FALSE;
lpszName[0] = 0;
Modified: trunk/OpenMPT/soundlib/Sndfile.h
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.h 2010-01-22 23:43:38 UTC (rev 474)
+++ trunk/OpenMPT/soundlib/Sndfile.h 2010-01-23 16:55:32 UTC (rev 475)
@@ -628,10 +628,10 @@
//it returned the number of channels with volume != 0
CHANNELINDEX GetNumChannels() const {return static_cast<CHANNELINDEX>(m_nChannels);}
- BOOL SetMasterVolume(UINT vol, BOOL bAdjustAGC=FALSE);
+ void SetMasterVolume(UINT vol, bool adjustAGC = false);
UINT GetMasterVolume() const { return m_nMasterVolume; }
ORDERINDEX GetNumPatterns() const;
- INSTRUMENTINDEX GetNumInstruments() const {return m_nInstruments;}
+ INSTRUMENTINDEX GetNumInstruments() const { return m_nInstruments; }
SAMPLEINDEX GetNumSamples() const { return m_nSamples; }
UINT GetCurrentPos() const;
UINT GetCurrentPattern() const { return m_nPattern; }
@@ -671,8 +671,8 @@
BOOL IsPaused() const { return (m_dwSongFlags & SONG_PAUSED) ? TRUE : FALSE; }
void LoopPattern(PATTERNINDEX nPat, ROWINDEX nRow = 0);
void CheckCPUUsage(UINT nCPU);
- BOOL SetPatternName(UINT nPat, LPCSTR lpszName);
- BOOL GetPatternName(UINT nPat, LPSTR lpszName, UINT cbSize=MAX_PATTERNNAME) const;
+ BOOL SetPatternName(PATTERNINDEX nPat, LPCSTR lpszName);
+ BOOL GetPatternName(PATTERNINDEX nPat, LPSTR lpszName, UINT cbSize=MAX_PATTERNNAME) const;
CHANNELINDEX ReArrangeChannels(const vector<CHANNELINDEX>& fromToArray);
bool MoveChannel(UINT chn_from, UINT chn_to);
Modified: trunk/OpenMPT/soundlib/mod_specifications.h
===================================================================
--- trunk/OpenMPT/soundlib/mod_specifications.h 2010-01-22 23:43:38 UTC (rev 474)
+++ trunk/OpenMPT/soundlib/mod_specifications.h 2010-01-23 16:55:32 UTC (rev 475)
@@ -42,6 +42,7 @@
char commands[MAX_EFFECTS + 1]; // An array holding all commands this format supports; commands that are not supported are marked with "?"
char volcommands[MAX_VOLCMDS + 1]; // dito, but for volume column
bool hasIgnoreIndex; // Does "+++" pattern exist?
+ bool hasRestartPos;
};
@@ -81,6 +82,7 @@
" JFEGHLKRXODB?CQATI?SMNVW?UY?P?Z\\:#", // Supported Effects
" vpcdabuhlrgfe:o", // Supported Volume Column commands
true, // Has "+++" pattern
+ true, // Has restart position (order)
};
@@ -115,6 +117,7 @@
" 0123456789ABCD?FF?E???????????????", // Supported Effects
" ???????????????", // Supported Volume Column commands
false, // Doesn't have "+++" pattern
+ true, // Has restart position (order)
};
// MOD with MPT extensions.
@@ -147,6 +150,7 @@
" 0123456789ABCD?FF?E???????????????", // Supported Effects
" ???????????????", // Supported Volume Column commands
true, // Has "+++" pattern
+ true, // Has restart position (order)
};
const CModSpecifications xm =
@@ -178,6 +182,7 @@
" 0123456789ABCDRFFTE???GHK?YXPLZ\\:#", // Supported Effects
" vpcdabuhlrg????", // Supported Volume Column commands
false, // Doesn't have "+++" pattern
+ true, // Has restart position (order)
};
// XM with MPT extensions
@@ -210,6 +215,7 @@
" 0123456789ABCDRFFTE???GHK?YXPLZ\\:#", // Supported Effects
" vpcdabuhlrgfe:o", // Supported Volume Column commands
true, // Has "+++" pattern
+ true, // Has restart position (order)
};
const CModSpecifications s3m =
@@ -241,6 +247,7 @@
" JFEGHLKRXODB?CQATI?SMNVW?U????????", // Supported Effects
" vp?????????????", // Supported Volume Column commands
true, // Has "+++" pattern
+ false, // Doesn't have restart position (order)
};
// S3M with MPT extensions
@@ -273,6 +280,7 @@
" JFEGHLKRXODB?CQATI?SMNVW?UY?P?Z\\:#", // Supported Effects
" vp?????????????", // Supported Volume Column commands
true, // Has "+++" pattern
+ false, // Doesn't have restart position (order)
};
const CModSpecifications it =
@@ -304,6 +312,7 @@
" JFEGHLKRXODB?CQATI?SMNVW?UY?P?Z???", // Supported Effects
" vpcdab?h??gfe??", // Supported Volume Column commands
true, // Has "+++" pattern
+ false, // Doesn't have restart position (order)
};
const CModSpecifications itEx =
@@ -335,6 +344,7 @@
" JFEGHLKRXODB?CQATI?SMNVW?UY?P?Z\\:#", // Supported Effects
" vpcdab?h??gfe:o", // Supported Volume Column commands
true, // Has "+++" pattern
+ true, // Has restart position (order)
};
} //namespace ModSpecs
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-22 23:43:48
|
Revision: 474
http://modplug.svn.sourceforge.net/modplug/?rev=474&view=rev
Author: saga-games
Date: 2010-01-22 23:43:38 +0000 (Fri, 22 Jan 2010)
Log Message:
-----------
[Imp] Setup: User is asked if they want to keep personal settings.
Modified Paths:
--------------
trunk/OpenMPT/installer/install.iss
trunk/OpenMPT/installer/packageTemplate/readme.txt
Modified: trunk/OpenMPT/installer/install.iss
===================================================================
--- trunk/OpenMPT/installer/install.iss 2010-01-21 17:03:40 UTC (rev 473)
+++ trunk/OpenMPT/installer/install.iss 2010-01-22 23:43:38 UTC (rev 474)
@@ -50,6 +50,10 @@
; keymaps
Source: "..\packageTemplate\extraKeymaps\*.*"; DestDir: "{app}\extraKeymaps"; Flags: ignoreversion
+; kind of auto-backup - handy!
+Source: "{userappdata}\OpenMPT\mptrack.ini"; DestDir: "{userappdata}\OpenMPT\mptrack.ini.old"; Flags: external skipifsourcedoesntexist; Tasks: not portable
+Source: "{userappdata}\OpenMPT\plugin.cache"; DestDir: "{userappdata}\OpenMPT\plugin.cache.old"; Flags: external skipifsourcedoesntexist; Tasks: not portable
+
[Dirs]
; option dirs for non-portable mode
Name: "{userappdata}\OpenMPT"; Tasks: not portable
@@ -85,23 +89,40 @@
; internet shortcut has to be deleted manually
Type: files; Name: "{app}\ModPlug Central.url";
; normal installation
-;Type: files; Name: "{userappdata}\OpenMPT\mptrack.ini"; Tasks: not portable
-;Type: files; Name: "{userappdata}\OpenMPT\plugin.cache"; Tasks: not portable
-;Type: files; Name: "{userappdata}\OpenMPT\tunings\local_tunings.tc"; Tasks: not portable
+Type: files; Name: "{userappdata}\OpenMPT\mptrack.ini"; Tasks: not portable; Check: DeletePersonalFilesOnUninstall;
+Type: files; Name: "{userappdata}\OpenMPT\plugin.cache"; Tasks: not portable; Check: DeletePersonalFilesOnUninstall;
+Type: files; Name: "{userappdata}\OpenMPT\tunings\local_tunings.tc"; Tasks: not portable; Check: DeletePersonalFilesOnUninstall;
Type: dirifempty; Name: "{userappdata}\OpenMPT\tunings"; Tasks: not portable
Type: dirifempty; Name: "{userappdata}\OpenMPT"; Tasks: not portable
; portable installation
-;Type: files; Name: "{app}\mptrack.ini"; Tasks: portable
-;Type: files; Name: "{app}\plugin.cache"; Tasks: portable
-;Type: files; Name: "{app}\tunings\local_tunings.tc"; Tasks: portable
-Type: dirifempty; Name: "{app}\tunings"; Tasks: portable
+Type: files; Name: "{app}\mptrack.ini"; Tasks: portable; Check: DeletePersonalFilesOnUninstall;
+Type: files; Name: "{app}\plugin.cache"; Tasks: portable; Check: DeletePersonalFilesOnUninstall;
+Type: files; Name: "{app}\tunings\local_tunings.tc"; Tasks: portable; Check: DeletePersonalFilesOnUninstall;
+Type: dirifempty; Name: "{app}\tunings"; Tasks: portable; Check: DeletePersonalFilesOnUninstall;
+; crappy workaround for uninstall stuff
+[Code]
+var
+ deletesettings: Boolean;
+function DeletePersonalFilesOnUninstall: Boolean;
+begin
+ Result := deletesettings;
+end;
+procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
+begin
+ case CurUninstallStep of
+ usUninstall:
+ begin
+ if MsgBox('Do you want to keep your personal settings and tunings?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
+ begin
+ deletesettings := False;
+ end else
+ begin
+ deletesettings := True;
+ end;
+ end;
+ end;
+end;
-
-
-
-
-
-
Modified: trunk/OpenMPT/installer/packageTemplate/readme.txt
===================================================================
--- trunk/OpenMPT/installer/packageTemplate/readme.txt 2010-01-21 17:03:40 UTC (rev 473)
+++ trunk/OpenMPT/installer/packageTemplate/readme.txt 2010-01-22 23:43:38 UTC (rev 474)
@@ -14,9 +14,8 @@
Uninstallation
--------------
-An uninstaller is provided. It won't delete your personal settings, so you have
-to delete them yourself, if you don't want to keep them. There is a shortcut to
-settings folder in the installation directory.
+An uninstaller is provided. Don't worry, it will ask you if you want to keep
+your personal settings, nothing will automatically be deleted.
Changes
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rel...@us...> - 2010-01-21 17:03:48
|
Revision: 473
http://modplug.svn.sourceforge.net/modplug/?rev=473&view=rev
Author: relabsoluness
Date: 2010-01-21 17:03:40 +0000 (Thu, 21 Jan 2010)
Log Message:
-----------
[Fix] Internal: Fix to random crashes in VC05/08 debug builds caused by different behaviour of security-enhanced CRT functions compared to the originals.
[Imp] PackageTemplate: New files and updates.
Modified Paths:
--------------
trunk/OpenMPT/installer/packageTemplate/readme.txt
trunk/OpenMPT/mptrack/Mptrack.cpp
trunk/OpenMPT/packageTemplate/History.txt
Added Paths:
-----------
trunk/OpenMPT/packageTemplate/open_settings_folder.bat
trunk/OpenMPT/packageTemplate/readme.txt
Modified: trunk/OpenMPT/installer/packageTemplate/readme.txt
===================================================================
--- trunk/OpenMPT/installer/packageTemplate/readme.txt 2010-01-20 22:09:23 UTC (rev 472)
+++ trunk/OpenMPT/installer/packageTemplate/readme.txt 2010-01-21 17:03:40 UTC (rev 473)
@@ -15,20 +15,10 @@
--------------
An uninstaller is provided. It won't delete your personal settings, so you have
-to delete them yourself, if you don't want to keep them. You can use
-"open_settings_folder.bat" to find them (or just go to %appdata%\OpenMPT).
+to delete them yourself, if you don't want to keep them. There is a shortcut to
+settings folder in the installation directory.
-Making OpenMPT portable
------------------------
-
-By default, OpenMPT stores its settings in %appdata%\OpenMPT. To avoid this,
-create a file called "mptrack.ini" in the same (!) directory as mptrack.exe (if
-it does not exist yet) and add the following lines to this file:
-[Paths]
-UseAppDataDirectory=0
-
-
Changes
-------
Modified: trunk/OpenMPT/mptrack/Mptrack.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Mptrack.cpp 2010-01-20 22:09:23 UTC (rev 472)
+++ trunk/OpenMPT/mptrack/Mptrack.cpp 2010-01-21 17:03:40 UTC (rev 473)
@@ -608,6 +608,9 @@
CTrackApp::CTrackApp()
//--------------------
{
+ #if (_MSC_VER >= 1400)
+ _CrtSetDebugFillThreshold(0); // Disable buffer filling in secure enhanced CRT functions.
+ #endif
m_pModTemplate = NULL;
m_pPluginManager = NULL;
m_bInitialized = FALSE;
Modified: trunk/OpenMPT/packageTemplate/History.txt
===================================================================
--- trunk/OpenMPT/packageTemplate/History.txt 2010-01-20 22:09:23 UTC (rev 472)
+++ trunk/OpenMPT/packageTemplate/History.txt 2010-01-21 17:03:40 UTC (rev 473)
@@ -187,7 +187,7 @@
. <Jojo> When no INI file was present, channel separators were completely black.
Keymaps
- + <Jojo> Two new keymaps: French Laptop by Paul Legovitch, Norwegian MPT Classic by Rakib.
+ + <Jojo> Three new keymaps: French Laptop by Paul Legovitch, Norwegian MPT Classic by Rakib, US_mpt_classic_(snu).
/ <Jojo> Updated DE_jojo.mkb
^ <Jojo> When loading a keymap file and unrecognized lines are found, only one messagebox is shown.
/ <Jojo> All keymaps have been updated to version 1 and updated to contain the orderlist shortcuts.
@@ -342,6 +342,7 @@
+ <Jojo> Allow up to 240 envelope points.
+ <Jojo> IT "Note Fade" command: This existed in IT's player routines already, but there was no way to actually use it in the editor. Triggering an invalid note would cause a note fade, so this is a new note type.
+ <re> Channel settings(vol&pan) for channels after 64 will now be saved in the file.
+ + <Jojo> MPTM command S7D explicitely enforces pitch envelope, S7E enforces filter envelope.
IT
+ <Jojo> IT "Note Fade" command: This existed in IT's player routines already, but there was no way to actually use it in the editor. Triggering an invalid note would cause a note fade, so this is a new note type.
Added: trunk/OpenMPT/packageTemplate/open_settings_folder.bat
===================================================================
--- trunk/OpenMPT/packageTemplate/open_settings_folder.bat (rev 0)
+++ trunk/OpenMPT/packageTemplate/open_settings_folder.bat 2010-01-21 17:03:40 UTC (rev 473)
@@ -0,0 +1 @@
+explorer %appdata%\OpenMPT
\ No newline at end of file
Added: trunk/OpenMPT/packageTemplate/readme.txt
===================================================================
--- trunk/OpenMPT/packageTemplate/readme.txt (rev 0)
+++ trunk/OpenMPT/packageTemplate/readme.txt 2010-01-21 17:03:40 UTC (rev 473)
@@ -0,0 +1,106 @@
+******************
+* OpenMPT 1.18 *
+******************
+
+
+Installation
+------------
+
+-If you have an existing installation of OpenMPT and wish to re-use its
+ settings, copy your mptrack.ini and plugin.cache to the directory into which
+ you extract the archive.
+-If not, you're done: just extract the archive and launch mptrack.exe.
+
+
+Uninstallation
+--------------
+
+-Delete the files extracted from the archive and optionally the OpenMPT
+ setting files, which are by default stored in %appdata%\OpenMPT.
+
+
+Making OpenMPT portable
+-----------------------
+
+By default, OpenMPT stores its settings in %appdata%\OpenMPT. To avoid this,
+create a file called "mptrack.ini" in the same directory as mptrack.exe (if
+it does not exist yet) and add the following lines to this file:
+[Paths]
+UseAppDataDirectory=0
+
+
+Changes
+-------
+
+See history.txt.
+
+
+Questions, comments, bug reports...
+-----------------------------------
+
+See forums at http://modplug.sourceforge.net/.
+
+
+Release package contents:
+-------------------------
+extraKeymaps(folder):
+soundtouch(folder): SoundTouch readme and copying.txt
+history.txt: Version history.
+mptrack.exe: Main executable.
+open_settings_folder.bat: Opens settings folder.
+OpenMPT_SoundTouch_i16.dll: Slightly customized SoundTouch library used in time
+ stretching feature.
+readme.txt:
+unmo3.dll: Used in MO3-file import.
+
+
+Misc:
+-----
+
+OpenMPT is partially under the following license:
+
+> Copyright (c) 2004-2010, OpenMPT contributors
+> Copyright (c) 1997-2003, Olivier Lapicque
+> All rights reserved.
+>
+> Redistribution and use in source and binary forms, with or without
+> modification, are permitted provided that the following conditions are met:
+> * Redistributions of source code must retain the above copyright
+> notice, this list of conditions and the following disclaimer.
+> * Redistributions in binary form must reproduce the above copyright
+> notice, this list of conditions and the following disclaimer in the
+> documentation and/or other materials provided with the distribution.
+> * Neither the name of the OpenMPT project nor the
+> names of its contributors may be used to endorse or promote products
+> derived from this software without specific prior written permission.
+>
+> THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY
+> EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+> WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+> DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+> DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+> (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+> LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+> ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+> (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+> SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ASIO is a trademark and software of Steinberg Media Technologies GmbH
+VST is a trademark of Steinberg Media Technologies GmbH
+
+For more information about SoundTouch, see folder SoundTouch.
+
+unmo3.dll
+---------
+Copyright (c) 2001-2009 Ian Luck. All rights reserved
+
+The MO3 software is free for non-commercial use; if anyone tries to
+charge you for it, kick 'em where it hurts!
+
+TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED "AS
+IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT
+NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
+PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD LIABLE FOR ANY DAMAGE THAT MAY
+RESULT FROM THE USE OF THIS SOFTWARE. YOU USE THIS SOFTWARE ENTIRELY AT YOUR OWN
+RISK.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-20 22:10:16
|
Revision: 472
http://modplug.svn.sourceforge.net/modplug/?rev=472&view=rev
Author: saga-games
Date: 2010-01-20 22:09:23 +0000 (Wed, 20 Jan 2010)
Log Message:
-----------
[Mod] Changed a label in the installer
[New] MPTM command S7D explicitely enforces pitch envelope, S7E enforces filter envelope.
Modified Paths:
--------------
trunk/OpenMPT/installer/install.iss
trunk/OpenMPT/mptrack/Moddoc.cpp
trunk/OpenMPT/soundlib/Snd_defs.h
trunk/OpenMPT/soundlib/Snd_fx.cpp
trunk/OpenMPT/soundlib/Sndfile.cpp
trunk/OpenMPT/soundlib/Sndmix.cpp
Modified: trunk/OpenMPT/installer/install.iss
===================================================================
--- trunk/OpenMPT/installer/install.iss 2010-01-19 22:57:23 UTC (rev 471)
+++ trunk/OpenMPT/installer/install.iss 2010-01-20 22:09:23 UTC (rev 472)
@@ -28,7 +28,7 @@
; icons and install mode
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
-Name: "portable"; Description: "Use program directory to store configuration in (portable mode)"; GroupDescription: "Options:"; Flags: unchecked
+Name: "portable"; Description: "Use program directory to store configuration in"; GroupDescription: "Options:"; Flags: unchecked
; file associations - put this below all other [tasks]!
#include "filetypes.iss"
@@ -104,3 +104,4 @@
+
Modified: trunk/OpenMPT/mptrack/Moddoc.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moddoc.cpp 2010-01-19 22:57:23 UTC (rev 471)
+++ trunk/OpenMPT/mptrack/Moddoc.cpp 2010-01-20 22:09:23 UTC (rev 472)
@@ -1834,7 +1834,7 @@
//rewbs.graph
void CModDoc::OnEditGraph()
-//----------------------------
+//-------------------------
{
if (m_SndFile.m_nType & (MOD_TYPE_XM|MOD_TYPE_IT | MOD_TYPE_MPT)) SendMessageToActiveViews(WM_MOD_ACTIVATEVIEW, IDD_CONTROL_GRAPH);
}
@@ -2646,6 +2646,9 @@
case 0x0A: strcpy(s, "7A: Pan Env On"); break;
case 0x0B: strcpy(s, "7B: Pitch Env Off"); break;
case 0x0C: strcpy(s, "7C: Pitch Env On"); break;
+ // intentional fall-through follows
+ case 0x0D: if(m_SndFile.GetType() == MOD_TYPE_MPT) { strcpy(s, "7D: Force Pitch Env"); break; }
+ case 0x0E: if(m_SndFile.GetType() == MOD_TYPE_MPT) { strcpy(s, "7E: Force Filter Env"); break; }
default: wsprintf(s, "%02X: undefined", param); break;
}
} else
Modified: trunk/OpenMPT/soundlib/Snd_defs.h
===================================================================
--- trunk/OpenMPT/soundlib/Snd_defs.h 2010-01-19 22:57:23 UTC (rev 471)
+++ trunk/OpenMPT/soundlib/Snd_defs.h 2010-01-20 22:09:23 UTC (rev 472)
@@ -155,7 +155,11 @@
#define CHN_SOLO 0x10000000 // -> CODE#0012 -> DESC="midi keyboard split" -! NEW_FEATURE#0012
#define CHN_NOFX 0x20000000 // -> CODE#0015 -> DESC="channels management dlg" -! NEW_FEATURE#0015
#define CHN_SYNCMUTE 0x40000000
+#define CHN_FILTERENV 0x80000000
+#define CHN_SAMPLEFLAGS (CHN_16BIT|CHN_LOOP|CHN_PINGPONGLOOP|CHN_SUSTAINLOOP|CHN_PINGPONGSUSTAIN|CHN_PANNING|CHN_STEREO|CHN_PINGPONGFLAG)
+#define CHN_CHANNELFLAGS (~CHN_SAMPLEFLAGS)
+
// instrument envelope-specific flags
#define ENV_ENABLED 0x01 // env is enabled
#define ENV_LOOP 0x02 // env loop
Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Snd_fx.cpp 2010-01-19 22:57:23 UTC (rev 471)
+++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2010-01-20 22:09:23 UTC (rev 472)
@@ -554,7 +554,7 @@
{
if(m_nType & (MOD_TYPE_S3M|MOD_TYPE_IT|MOD_TYPE_MPT)) return;
pChn->dwFlags &= ~(CHN_KEYOFF|CHN_NOTEFADE);
- pChn->dwFlags = (pChn->dwFlags & (0xFFFFFF00 | CHN_PINGPONGFLAG)) | (pSmp->uFlags & 0xFF);
+ pChn->dwFlags = (pChn->dwFlags & (CHN_CHANNELFLAGS | CHN_PINGPONGFLAG)) | (pSmp->uFlags & CHN_SAMPLEFLAGS);
} else
{
pChn->dwFlags &= ~(CHN_KEYOFF|CHN_NOTEFADE|CHN_VOLENV|CHN_PANENV|CHN_PITCHENV);
@@ -562,9 +562,9 @@
//IT compatibility tentative fix: Don't change bidi loop direction when
//no sample nor instrument is changed.
if(IsCompatibleMode(TRK_IMPULSETRACKER) && pSmp == pChn->pModSample && !bInstrumentChanged)
- pChn->dwFlags = (pChn->dwFlags & (0xFFFFFF00 | CHN_PINGPONGFLAG)) | (pSmp->uFlags & 0xFF);
+ pChn->dwFlags = (pChn->dwFlags & (CHN_CHANNELFLAGS | CHN_PINGPONGFLAG)) | (pSmp->uFlags & CHN_SAMPLEFLAGS);
else
- pChn->dwFlags = (pChn->dwFlags & 0xFFFFFF00) | (pSmp->uFlags & 0xFF);
+ pChn->dwFlags = (pChn->dwFlags & CHN_CHANNELFLAGS) | (pSmp->uFlags & CHN_SAMPLEFLAGS);
if (pIns)
@@ -574,7 +574,13 @@
if (pIns->PitchEnv.dwFlags & ENV_ENABLED) pChn->dwFlags |= CHN_PITCHENV;
if ((pIns->PitchEnv.dwFlags & ENV_ENABLED) && (pIns->PitchEnv.dwFlags & ENV_FILTER))
{
+ pChn->dwFlags |= CHN_FILTERENV;
if (!pChn->nCutOff) pChn->nCutOff = 0x7F;
+ } else
+ {
+ // Special case: Reset filter envelope flag manually (because of S7D/S7E effects).
+ // This way, the S7x effects can be applied to several notes, as long as they don't come with an instrument number.
+ pChn->dwFlags &= ~CHN_FILTERENV;
}
if (pIns->nIFC & 0x80) pChn->nCutOff = pIns->nIFC & 0x7F;
if (pIns->nIFR & 0x80) pChn->nResonance = pIns->nIFR & 0x7F;
@@ -709,7 +715,7 @@
pChn->nLength = pSmp->nLength;
pChn->nLoopEnd = pSmp->nLength;
pChn->nLoopStart = 0;
- pChn->dwFlags = (pChn->dwFlags & 0xFFFFFF00) | (pSmp->uFlags & 0xFF);
+ pChn->dwFlags = (pChn->dwFlags & CHN_CHANNELFLAGS) | (pSmp->uFlags & CHN_SAMPLEFLAGS);
if (pChn->dwFlags & CHN_SUSTAINLOOP)
{
pChn->nLoopStart = pSmp->nSustainStart;
@@ -2192,6 +2198,7 @@
// Implemented for IMF compatibility, can't actually save this in any formats
// sign should be 1 (up) or -1 (down)
void CSoundFile::NoteSlide(MODCHANNEL *pChn, UINT param, int sign)
+//----------------------------------------------------------------
{
BYTE x, y;
if (m_dwSongFlags & SONG_FIRSTTICK) {
@@ -2593,7 +2600,7 @@
case 0x50: if(((param & 0x0F) < 0x04) || !IsCompatibleMode(TRK_IMPULSETRACKER)) pChn->nPanbrelloType = param & 0x07; break;
// S6x: Pattern Delay for x frames
case 0x60: m_nFrameDelay = param; break;
- // S7x: Envelope Control
+ // S7x: Envelope Control / Instrument Control
case 0x70: if(!(m_dwSongFlags & SONG_FIRSTTICK)) break;
switch(param)
{
@@ -2606,9 +2613,17 @@
{
if (bkp->nMasterChn == nChn+1)
{
- if (param == 1) KeyOff(i); else
- if (param == 2) bkp->dwFlags |= CHN_NOTEFADE; else
- { bkp->dwFlags |= CHN_NOTEFADE; bkp->nFadeOutVol = 0; }
+ if (param == 1)
+ {
+ KeyOff(i);
+ } else if (param == 2)
+ {
+ bkp->dwFlags |= CHN_NOTEFADE;
+ } else
+ {
+ bkp->dwFlags |= CHN_NOTEFADE;
+ bkp->nFadeOutVol = 0;
+ }
}
}
}
@@ -2623,6 +2638,20 @@
case 10: pChn->dwFlags |= CHN_PANENV; break;
case 11: pChn->dwFlags &= ~CHN_PITCHENV; break;
case 12: pChn->dwFlags |= CHN_PITCHENV; break;
+ case 13:
+ case 14:
+ if(GetType() == MOD_TYPE_MPT)
+ {
+ pChn->dwFlags |= CHN_PITCHENV;
+ if(param == 13) // pitch env on, filter env off
+ {
+ pChn->dwFlags &= ~CHN_FILTERENV;
+ } else // filter env on
+ {
+ pChn->dwFlags |= CHN_FILTERENV;
+ }
+ }
+ break;
}
break;
// S8x: Set 4-bit Panning
Modified: trunk/OpenMPT/soundlib/Sndfile.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.cpp 2010-01-19 22:57:23 UTC (rev 471)
+++ trunk/OpenMPT/soundlib/Sndfile.cpp 2010-01-20 22:09:23 UTC (rev 472)
@@ -3227,7 +3227,7 @@
case 0x40: m->param = (m->param & 0x0F) | 0x70; break;
case 0x50:
case 0x60:
- case 0x70:
+ case 0x70: if(((m->param & 0xF0) == 0x70) && ((m->param & 0x0F) > 0x0A)) { m->command = CMD_NONE; break; } // no pitch env in XM format
case 0x90:
case 0xA0: m->command = CMD_XFINEPORTAUPDOWN; break;
case 0xB0: m->param = (m->param & 0x0F) | 0x60; break;
@@ -3275,8 +3275,8 @@
}
} // End if(m->command == CMD_PANNING8)
- //////////////////////////
- // Convert param control
+ /////////////////////////////////////////////////////
+ // Convert param control, extended envelope control
if(oldTypeIsMPT)
{
if(m->note == NOTE_PC || m->note == NOTE_PCS)
@@ -3286,6 +3286,12 @@
m->volcmd = VOLCMD_NONE;
m->note = NOTE_NONE;
}
+
+ // adjust extended envelope control commands
+ if((m->command == CMD_S3MCMDEX) && ((m->param & 0xF0) == 0x70) && ((m->param & 0x0F) > 0x0C))
+ {
+ m->param = 0x7C;
+ }
} // End if(oldTypeIsMPT)
/////////////////////////////////////////
Modified: trunk/OpenMPT/soundlib/Sndmix.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndmix.cpp 2010-01-19 22:57:23 UTC (rev 471)
+++ trunk/OpenMPT/soundlib/Sndmix.cpp 2010-01-20 22:09:23 UTC (rev 472)
@@ -1300,7 +1300,8 @@
}
envpitch = CLAMP(envpitch, -256, 256);
// Filter Envelope: controls cutoff frequency
- if (pIns->PitchEnv.dwFlags & ENV_FILTER)
+ //if (pIns->PitchEnv.dwFlags & ENV_FILTER)
+ if (pChn->dwFlags & CHN_FILTERENV)
{
#ifndef NO_FILTER
SetupChannelFilter(pChn, (pChn->dwFlags & CHN_FILTER) ? false : true, envpitch);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-19 22:57:49
|
Revision: 471
http://modplug.svn.sourceforge.net/modplug/?rev=471&view=rev
Author: saga-games
Date: 2010-01-19 22:57:23 +0000 (Tue, 19 Jan 2010)
Log Message:
-----------
[Mod] Updated default keymap with many shortcuts. Thanks, Snu! (this is the same file as US_mpt_classic_(snu).mkb)
[Mod] Updated Dvorak keymap
[Mod] Updated installer script + readme file.
Modified Paths:
--------------
trunk/OpenMPT/installer/install.iss
trunk/OpenMPT/installer/packageTemplate/readme.txt
trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb
trunk/OpenMPT/packageTemplate/History.txt
trunk/OpenMPT/packageTemplate/extraKeymaps/dvorak_(snu).mkb
Added Paths:
-----------
trunk/OpenMPT/packageTemplate/extraKeymaps/US_mpt_classic_(snu).mkb
Modified: trunk/OpenMPT/installer/install.iss
===================================================================
--- trunk/OpenMPT/installer/install.iss 2010-01-16 23:55:23 UTC (rev 470)
+++ trunk/OpenMPT/installer/install.iss 2010-01-19 22:57:23 UTC (rev 471)
@@ -9,9 +9,9 @@
AppVersion=1.18.00.00
AppName=OpenMPT
AppPublisher=OpenMPT Devs / Olivier Lapicque
-AppPublisherURL=http://www.openmpt.com/
-AppSupportURL=http://www.openmpt.com/
-AppUpdatesURL=http://www.openmpt.com/
+AppPublisherURL=http://www.modplug.com/
+AppSupportURL=http://www.modplug.com/
+AppUpdatesURL=http://www.modplug.com/
DefaultDirName={pf}\OpenMPT
DefaultGroupName=OpenMPT
AllowNoIcons=yes
@@ -85,15 +85,15 @@
; internet shortcut has to be deleted manually
Type: files; Name: "{app}\ModPlug Central.url";
; normal installation
-Type: files; Name: "{userappdata}\OpenMPT\mptrack.ini"; Tasks: not portable
-Type: files; Name: "{userappdata}\OpenMPT\plugin.cache"; Tasks: not portable
-Type: files; Name: "{userappdata}\OpenMPT\tunings\local_tunings.tc"; Tasks: not portable
+;Type: files; Name: "{userappdata}\OpenMPT\mptrack.ini"; Tasks: not portable
+;Type: files; Name: "{userappdata}\OpenMPT\plugin.cache"; Tasks: not portable
+;Type: files; Name: "{userappdata}\OpenMPT\tunings\local_tunings.tc"; Tasks: not portable
Type: dirifempty; Name: "{userappdata}\OpenMPT\tunings"; Tasks: not portable
Type: dirifempty; Name: "{userappdata}\OpenMPT"; Tasks: not portable
; portable installation
-Type: files; Name: "{app}\mptrack.ini"; Tasks: portable
-Type: files; Name: "{app}\plugin.cache"; Tasks: portable
-Type: files; Name: "{app}\tunings\local_tunings.tc"; Tasks: portable
+;Type: files; Name: "{app}\mptrack.ini"; Tasks: portable
+;Type: files; Name: "{app}\plugin.cache"; Tasks: portable
+;Type: files; Name: "{app}\tunings\local_tunings.tc"; Tasks: portable
Type: dirifempty; Name: "{app}\tunings"; Tasks: portable
@@ -103,3 +103,4 @@
+
Modified: trunk/OpenMPT/installer/packageTemplate/readme.txt
===================================================================
--- trunk/OpenMPT/installer/packageTemplate/readme.txt 2010-01-16 23:55:23 UTC (rev 470)
+++ trunk/OpenMPT/installer/packageTemplate/readme.txt 2010-01-19 22:57:23 UTC (rev 471)
@@ -14,17 +14,17 @@
Uninstallation
--------------
-An uninstaller is provided. It will also uninstall custom settings and tunings,
-so if you want to keep those, back them up first. Use "open_settings_folder.bat"
-to find them.
+An uninstaller is provided. It won't delete your personal settings, so you have
+to delete them yourself, if you don't want to keep them. You can use
+"open_settings_folder.bat" to find them (or just go to %appdata%\OpenMPT).
Making OpenMPT portable
-----------------------
By default, OpenMPT stores its settings in %appdata%\OpenMPT. To avoid this,
-create a file called "mptrack.ini" in the same directory as mptrack.exe (if it
-does not exist yet) and add the following lines to this file:
+create a file called "mptrack.ini" in the same (!) directory as mptrack.exe (if
+it does not exist yet) and add the following lines to this file:
[Paths]
UseAppDataDirectory=0
Modified: trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb
===================================================================
--- trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb 2010-01-16 23:55:23 UTC (rev 470)
+++ trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb 2010-01-19 22:57:23 UTC (rev 471)
@@ -13,18 +13,16 @@
0:1031:0:119:1 //Pause song: F8 (KeyDown)
0:1375:0:27:1 //Stop Song: ESC (KeyDown)
0:1029:0:117:1 //Play song from start: F6 (KeyDown)
-0:1027:0:118:5 //Play pattern from start: F7 (KeyDown|KeyHold)
-0:1026:2:118:5 //Play pattern from cursor: Ctrl+F7 (KeyDown|KeyHold)
+0:1027:0:118:1 //Play pattern from start: F7 (KeyDown)
+0:1026:2:118:1 //Play pattern from cursor: Ctrl+F7 (KeyDown)
0:1376:0:120:1 //Toggle Midi Record: F9 (KeyDown)
0:1359:2:90:1 //Undo: Ctrl+Z (KeyDown)
0:1360:2:88:1 //Cut: Ctrl+X (KeyDown)
0:1361:2:67:1 //Copy: Ctrl+C (KeyDown)
-0:1361:2:45:1 //Copy: Ctrl+INSERT (KeyDown)
0:1362:2:86:1 //Paste: Ctrl+V (KeyDown)
0:1362:1:45:1 //Paste: Shift+INSERT (KeyDown)
-0:1363:1:86:1 //Mix Paste: Shift+V (KeyDown)
-0:1793:3:86:1 //Paste Flood: Shift+Ctrl+V (KeyDown)
-0:1820:6:86:1 //Push Forward Paste: Ctrl+Alt+V (KeyDown)
+0:1363:3:86:1 //Mix Paste: Shift+Ctrl+V (KeyDown)
+0:1793:1:86:5 //Paste Flood: Shift+V (KeyDown|KeyHold)
0:1364:2:53:1 //SelectAll: Ctrl+5 (KeyDown)
0:1365:2:70:1 //Find: Ctrl+F (KeyDown)
0:1366:0:114:1 //Find Next: F3 (KeyDown)
@@ -33,6 +31,7 @@
0:1023:4:83:1 //View Samples: Alt+S (KeyDown)
0:1024:4:78:1 //View Instruments: Alt+N (KeyDown)
0:1025:1:120:1 //View Comments: Shift+F9 (KeyDown)
+0:1025:4:67:1 //View Comments: Alt+C (KeyDown)
0:1368:2:113:1 //Toggle Tree View: Ctrl+F2 (KeyDown)
0:1369:2:112:1 //View Options: Ctrl+F1 (KeyDown)
0:1781:2:114:1 //View MIDI mapping: Ctrl+F3 (KeyDown)
@@ -73,19 +72,21 @@
2:1051:2:17:1 //Copy select key: Ctrl (KeyDown)
2:1011:2:76:1 //Select channel / Select all: Ctrl+L (KeyDown)
2:1663:0:122:1 //Toggle follow song: F11 (KeyDown)
-2:1003:0:13:5 //Quick copy: ENTER (KeyDown|KeyHold)
+2:1003:0:13:1 //Quick copy: ENTER (KeyDown)
2:1004:0:32:5 //Quick paste: SPACE (KeyDown|KeyHold)
2:1001:2:32:1 //Enable recording: Ctrl+SPACE (KeyDown)
2:1002:2:13:5 //Play row: Ctrl+ENTER (KeyDown|KeyHold)
2:1317:4:18:1 //Set row jump on note entry: Alt (KeyDown)
2:1685:2:9:1 //Switch to order list: Ctrl+TAB (KeyDown)
+2:1806:2:68:1 //Duplicate pattern: Ctrl+D (KeyDown)
2:1662:6:80:1 //Toggle channel's plugin editor: Ctrl+Alt+P (KeyDown)
2:1062:0:93:1 //Show note properties: Application (KeyDown)
+2:1772:5:80:1 //Show pattern properties window: Shift+Alt+P (KeyDown)
2:1819:2:69:1 //Split Keyboard Settings dialog: Ctrl+E (KeyDown)
-2:1776:6:32:1 //Toggle loop pattern: Ctrl+Alt+SPACE (KeyDown)
-2:1780:2:84:1 //Show playback time at current row: Ctrl+T (KeyDown)
-2:1005:0:121:5 //Mute current channel: F10 (KeyDown|KeyHold)
-2:1006:2:121:5 //Solo current channel: Ctrl+F10 (KeyDown|KeyHold)
+2:1780:2:80:1 //Show playback time at current row: Ctrl+P (KeyDown)
+2:1005:0:121:1 //Mute current channel: F10 (KeyDown)
+2:1006:2:121:1 //Solo current channel: Ctrl+F10 (KeyDown)
+2:1771:6:121:1 //Unmute all channels: Ctrl+Alt+F10 (KeyDown)
2:1786:2:82:1 //Reset channel: Ctrl+R (KeyDown)
2:1007:2:81:5 //Transpose +1: Ctrl+Q (KeyDown|KeyHold)
2:1008:2:65:5 //Transpose -1: Ctrl+A (KeyDown|KeyHold)
@@ -101,12 +102,12 @@
2:1661:4:68:5 //Shrink selection: Alt+D (KeyDown|KeyHold)
2:1058:0:46:1 //Clear field: DELETE (KeyDown)
2:1664:1:190:1 //Clear field (IT Style): Shift+. (KeyDown)
-2:1059:2:46:1 //Clear row and step: Ctrl+DELETE (KeyDown)
+2:1059:2:46:5 //Clear row and step: Ctrl+DELETE (KeyDown|KeyHold)
2:1665:1:46:5 //Clear field and step (IT Style): Shift+DELETE (KeyDown|KeyHold)
2:1061:0:8:5 //Delete rows: BACKSPACE (KeyDown|KeyHold)
2:1377:2:8:5 //Delete all rows: Ctrl+BACKSPACE (KeyDown|KeyHold)
-2:1378:0:45:1 //Insert Row: INSERT (KeyDown)
-2:1379:2:45:1 //Insert All Rows: Ctrl+INSERT (KeyDown)
+2:1378:0:45:5 //Insert Row: INSERT (KeyDown|KeyHold)
+2:1379:2:45:5 //Insert All Rows: Ctrl+INSERT (KeyDown|KeyHold)
2:1055:0:109:5 //Previous pattern: NUM SUB (KeyDown|KeyHold)
2:1054:0:107:5 //Next pattern: NUM PLUS (KeyDown|KeyHold)
@@ -120,9 +121,9 @@
3:1070:0:85:1 //Base octave F#: U (KeyDown)
3:1071:0:73:1 //Base octave G: I (KeyDown)
3:1072:0:79:1 //Base octave G#: O (KeyDown)
-3:1073:0:80:1 //Base octave +1 A: P (KeyDown)
-3:1074:0:219:1 //Base octave +1 A#: [ (KeyDown)
-3:1075:0:221:1 //Base octave +1 B: ] (KeyDown)
+3:1073:0:80:1 //Base octave A: P (KeyDown)
+3:1074:0:219:1 //Base octave A#: [ (KeyDown)
+3:1075:0:221:1 //Base octave B: ] (KeyDown)
3:1076:0:65:1 //Base octave +1 C: A (KeyDown)
3:1077:0:83:1 //Base octave +1 C#: S (KeyDown)
3:1078:0:68:1 //Base octave +1 D: D (KeyDown)
@@ -132,9 +133,9 @@
3:1082:0:74:1 //Base octave +1 F#: J (KeyDown)
3:1083:0:75:1 //Base octave +1 G: K (KeyDown)
3:1084:0:76:1 //Base octave +1 G#: L (KeyDown)
-3:1085:0:186:1 //Base octave +2 A: ; (KeyDown)
-3:1086:0:222:1 //Base octave +2 A#: # (KeyDown)
-3:1087:0:220:1 //Base octave +2 B: \ (KeyDown)
+3:1085:0:186:1 //Base octave +1 A: ; (KeyDown)
+3:1086:0:222:1 //Base octave +1 A#: ' (KeyDown)
+3:1087:0:220:1 //Base octave +1 B: \ (KeyDown)
3:1088:0:90:1 //Base octave +2 C: Z (KeyDown)
3:1089:0:88:1 //Base octave +2 C#: X (KeyDown)
3:1090:0:67:1 //Base octave +2 D: C (KeyDown)
@@ -144,7 +145,7 @@
3:1094:0:77:1 //Base octave +2 F#: M (KeyDown)
3:1095:0:188:1 //Base octave +2 G: , (KeyDown)
3:1096:0:190:1 //Base octave +2 G#: . (KeyDown)
-3:1097:0:191:1 //Base octave +3 A: / (KeyDown)
+3:1097:0:191:1 //Base octave +2 A: / (KeyDown)
3:1212:0:48:1 //Set octave 0: 0 (KeyDown)
3:1212:0:96:1 //Set octave 0: NUM 0 (KeyDown)
3:1213:0:49:1 //Set octave 1: 1 (KeyDown)
@@ -166,10 +167,11 @@
3:1221:0:57:1 //Set octave 9: 9 (KeyDown)
3:1221:0:105:1 //Set octave 9: NUM 9 (KeyDown)
3:1316:1:16:1 //Chord Modifier: Shift (KeyDown)
-3:1200:0:192:1 //Note cut: ' (KeyDown)
-3:1201:0:187:1 //Note off: = (KeyDown)
-3:1788:1:189:1 //Parameter control(MPTm only): Shift+- (KeyDown)
-3:1789:0:189:1 //Parameter control(smooth)(MPTm only): - (KeyDown)
+3:1200:0:192:1 //Note Cut: ` (KeyDown)
+3:1201:0:187:1 //Note Off: = (KeyDown)
+3:1791:1:187:1 //Note Fade: Shift+= (KeyDown)
+3:1788:0:189:1 //Parameter control(MPTm only): - (KeyDown)
+3:1789:1:189:1 //Parameter control(smooth)(MPTm only): Shift+- (KeyDown)
//----( Pattern Context [bottom] - Ins Col (4) )------------
4:1202:0:96:1 //Set instrument digit 0: NUM 0 (KeyDown)
@@ -188,6 +190,7 @@
4:1208:0:54:1 //Set instrument digit 6: 6 (KeyDown)
4:1209:0:103:1 //Set instrument digit 7: NUM 7 (KeyDown)
4:1209:0:55:1 //Set instrument digit 7: 7 (KeyDown)
+4:1210:0:104:1 //Set instrument digit 8: NUM 8 (KeyDown)
4:1210:0:56:1 //Set instrument digit 8: 8 (KeyDown)
4:1211:0:105:1 //Set instrument digit 9: NUM 9 (KeyDown)
4:1211:0:57:1 //Set instrument digit 9: 9 (KeyDown)
@@ -210,6 +213,7 @@
5:1229:0:55:1 //Set volume digit 7: 7 (KeyDown)
5:1229:0:103:1 //Set volume digit 7: NUM 7 (KeyDown)
5:1230:0:56:1 //Set volume digit 8: 8 (KeyDown)
+5:1230:0:104:1 //Set volume digit 8: NUM 8 (KeyDown)
5:1231:0:57:1 //Set volume digit 9: 9 (KeyDown)
5:1231:0:105:1 //Set volume digit 9: NUM 9 (KeyDown)
5:1232:0:86:1 //Vol command - volume: V (KeyDown)
@@ -225,11 +229,15 @@
5:1242:0:71:1 //Vol command - Portamento: G (KeyDown)
5:1243:0:70:1 //Vol command - Portamento Up: F (KeyDown)
5:1244:0:69:1 //Vol command - Portamento Down: E (KeyDown)
+5:1245:0:186:1 //Vol command - Velocity: ; (KeyDown)
5:1245:1:186:1 //Vol command - Velocity: Shift+; (KeyDown)
5:1246:0:79:1 //Vol command - Offset: O (KeyDown)
//----( Pattern Context [bottom] - FX Col (6) )------------
6:1294:0:220:1 //FX midi macro slide: \ (KeyDown)
+6:1295:1:186:1 //FX pseudo-velocity (experimental): Shift+; (KeyDown)
+6:1295:0:186:1 //FX pseudo-velocity (experimental): ; (KeyDown)
+6:1666:0:191:1 //FX parameter extension command: / (KeyDown)
//----( Pattern Context [bottom] - Param Col (7) )------------
7:1247:0:48:1 //FX Param digit 0: 0 (KeyDown)
@@ -264,6 +272,7 @@
8:1383:0:8:1 //Silence sample selection: BACKSPACE (KeyDown)
8:1384:1:78:1 //Normalise Sample: Shift+N (KeyDown)
8:1385:3:65:1 //Amplify Sample: Shift+Ctrl+A (KeyDown)
+8:1385:2:77:1 //Amplify Sample: Ctrl+M (KeyDown)
8:1381:3:82:1 //Reverse sample: Shift+Ctrl+R (KeyDown)
8:1382:0:46:1 //Delete sample selection: DELETE (KeyDown)
8:1386:0:107:1 //Zoom Out: NUM PLUS (KeyDown)
@@ -278,11 +287,12 @@
9:1821:0:37:5 //Move envelope point left: LEFT (KeyDown|KeyHold)
9:1822:0:39:5 //Move envelope point right: RIGHT (KeyDown|KeyHold)
9:1823:0:38:5 //Move envelope point up: UP (KeyDown|KeyHold)
-9:1834:0:33:5 //Move envelope point up (big step): PG UP (KeyDown|KeyHold)
+9:1834:0:33:5 //Move envelope point up (big step): PGUP (KeyDown|KeyHold)
9:1824:0:40:5 //Move envelope point down: DOWN (KeyDown|KeyHold)
-9:1835:0:34:5 //Move envelope point down (big step): PG DN (KeyDown|KeyHold)
-9:1827:0:45:5 //Insert envelope point: INSERT (KeyDown|KeyHold)
-9:1828:0:46:5 //Remove envelope point: DELETE (KeyDown|KeyHold)
+9:1835:0:34:5 //Move envelope point down (big step): PGDOWN (KeyDown|KeyHold)
+9:1827:0:45:1 //Insert envelope point: INSERT (KeyDown)
+9:1828:0:46:1 //Remove envelope point: DELETE (KeyDown)
+9:1828:0:8:1 //Remove envelope point: BACKSPACE (KeyDown)
9:1829:0:36:1 //Set loop start: HOME (KeyDown)
9:1830:0:35:1 //Set loop end: END (KeyDown)
9:1831:2:36:1 //Set sustain loop start: Ctrl+HOME (KeyDown)
@@ -296,11 +306,11 @@
//----( Unknown Context (12) )------------
//----( Plugin GUI Context (13) )------------
-13:1763:2:109:5 //Previous plugin preset: Ctrl+NUM SUB (KeyDown|KeyHold)
-13:1764:2:107:5 //Next plugin preset: Ctrl+NUM PLUS (KeyDown|KeyHold)
-13:1782:0:109:5 //Plugin preset backward jump: NUM SUB (KeyDown|KeyHold)
-13:1783:0:107:5 //Plugin preset forward jump: NUM PLUS (KeyDown|KeyHold)
-13:1765:2:82:5 //Randomize plugin parameters: Ctrl+R (KeyDown|KeyHold)
+13:1763:0:37:5 //Previous plugin preset: LEFT (KeyDown|KeyHold)
+13:1764:0:39:5 //Next plugin preset: RIGHT (KeyDown|KeyHold)
+13:1782:0:38:5 //Plugin preset backward jump: UP (KeyDown|KeyHold)
+13:1783:0:40:5 //Plugin preset forward jump: DOWN (KeyDown|KeyHold)
+13:1765:2:82:1 //Randomize plugin parameters: Ctrl+R (KeyDown)
//----( General Context [top] (14) )------------
@@ -344,6 +354,6 @@
19:1816:0:57:5 //Pattern index digit 9: 9 (KeyDown|KeyHold)
19:1816:0:105:5 //Pattern index digit 9: NUM 9 (KeyDown|KeyHold)
19:1817:0:107:5 //Increase pattern index : NUM PLUS (KeyDown|KeyHold)
-19:1817:0:187:5 //Increase pattern index : + (KeyDown|KeyHold)
-19:1818:0:109:1 //Decrease pattern index: NUM SUB (KeyDown)
-19:1818:0:189:1 //Decrease pattern index: - (KeyDown)
+19:1817:0:187:5 //Increase pattern index : = (KeyDown|KeyHold)
+19:1818:0:109:5 //Decrease pattern index: NUM SUB (KeyDown|KeyHold)
+19:1818:0:189:5 //Decrease pattern index: - (KeyDown|KeyHold)
Modified: trunk/OpenMPT/packageTemplate/History.txt
===================================================================
--- trunk/OpenMPT/packageTemplate/History.txt 2010-01-16 23:55:23 UTC (rev 470)
+++ trunk/OpenMPT/packageTemplate/History.txt 2010-01-19 22:57:23 UTC (rev 471)
@@ -9,9 +9,9 @@
?: other
(tx XYZ): thanks to XYZ for telling us about the bug
+v1.18 (January 2010, revision 467)
+----------------------------------
---------------------
-
General tab
. <Jojo> Channel name input field was not limited properly.
Added: trunk/OpenMPT/packageTemplate/extraKeymaps/US_mpt_classic_(snu).mkb
===================================================================
--- trunk/OpenMPT/packageTemplate/extraKeymaps/US_mpt_classic_(snu).mkb (rev 0)
+++ trunk/OpenMPT/packageTemplate/extraKeymaps/US_mpt_classic_(snu).mkb 2010-01-19 22:57:23 UTC (rev 471)
@@ -0,0 +1,359 @@
+//-------- OpenMPT key binding definition file -------
+//-Format is: -
+//- Context:Command ID:Modifiers:Key:KeypressEventType //Comments -
+//----------------------------------------------------------------------
+version:1
+
+//----( Global Context (0) )------------
+0:1347:2:78:1 //File/New: Ctrl+N (KeyDown)
+0:1346:2:79:1 //File/Open: Ctrl+O (KeyDown)
+0:1349:2:83:1 //File/Save: Ctrl+S (KeyDown)
+0:1350:3:83:1 //File/Save As: Shift+Ctrl+S (KeyDown)
+0:1030:0:116:1 //Play song/Pause song: F5 (KeyDown)
+0:1031:0:119:1 //Pause song: F8 (KeyDown)
+0:1375:0:27:1 //Stop Song: ESC (KeyDown)
+0:1029:0:117:1 //Play song from start: F6 (KeyDown)
+0:1027:0:118:1 //Play pattern from start: F7 (KeyDown)
+0:1026:2:118:1 //Play pattern from cursor: Ctrl+F7 (KeyDown)
+0:1376:0:120:1 //Toggle Midi Record: F9 (KeyDown)
+0:1359:2:90:1 //Undo: Ctrl+Z (KeyDown)
+0:1360:2:88:1 //Cut: Ctrl+X (KeyDown)
+0:1361:2:67:1 //Copy: Ctrl+C (KeyDown)
+0:1362:2:86:1 //Paste: Ctrl+V (KeyDown)
+0:1362:1:45:1 //Paste: Shift+INSERT (KeyDown)
+0:1363:3:86:1 //Mix Paste: Shift+Ctrl+V (KeyDown)
+0:1793:1:86:5 //Paste Flood: Shift+V (KeyDown|KeyHold)
+0:1364:2:53:1 //SelectAll: Ctrl+5 (KeyDown)
+0:1365:2:70:1 //Find: Ctrl+F (KeyDown)
+0:1366:0:114:1 //Find Next: F3 (KeyDown)
+0:1021:4:71:1 //View General: Alt+G (KeyDown)
+0:1022:4:80:1 //View Pattern: Alt+P (KeyDown)
+0:1023:4:83:1 //View Samples: Alt+S (KeyDown)
+0:1024:4:78:1 //View Instruments: Alt+N (KeyDown)
+0:1025:1:120:1 //View Comments: Shift+F9 (KeyDown)
+0:1025:4:67:1 //View Comments: Alt+C (KeyDown)
+0:1368:2:113:1 //Toggle Tree View: Ctrl+F2 (KeyDown)
+0:1369:2:112:1 //View Options: Ctrl+F1 (KeyDown)
+0:1781:2:114:1 //View MIDI mapping: Ctrl+F3 (KeyDown)
+0:1370:0:112:1 //Help (to do): F1 (KeyDown)
+0:1032:2:111:5 //Previous instrument: Ctrl+NUM DIVIDE (KeyDown|KeyHold)
+0:1032:2:38:5 //Previous instrument: Ctrl+UP (KeyDown|KeyHold)
+0:1033:2:106:5 //Next instrument: Ctrl+NUMMULT (KeyDown|KeyHold)
+0:1033:2:40:5 //Next instrument: Ctrl+DOWN (KeyDown|KeyHold)
+0:1036:0:111:1 //Previous octave: NUM DIVIDE (KeyDown)
+0:1037:0:106:1 //Next octave: NUMMULT (KeyDown)
+0:1034:2:37:5 //Previous order: Ctrl+LEFT (KeyDown|KeyHold)
+0:1035:2:39:5 //Next order: Ctrl+RIGHT (KeyDown|KeyHold)
+
+//----( General Context [bottom] (1) )------------
+
+//----( Pattern Context [bottom] (2) )------------
+2:1017:0:34:5 //Jump down by measure: PGDOWN (KeyDown|KeyHold)
+2:1018:0:33:5 //Jump up by measure: PGUP (KeyDown|KeyHold)
+2:1338:4:34:5 //Jump down by beat: Alt+PGDOWN (KeyDown|KeyHold)
+2:1339:4:33:5 //Jump up by beat: Alt+PGUP (KeyDown|KeyHold)
+2:1340:6:34:5 //Snap down to beat: Ctrl+Alt+PGDOWN (KeyDown|KeyHold)
+2:1341:6:33:5 //Snap up to beat: Ctrl+Alt+PGUP (KeyDown|KeyHold)
+2:1038:0:40:5 //Navigate down by 1 row: DOWN (KeyDown|KeyHold)
+2:1039:0:38:5 //Navigate up by 1 row: UP (KeyDown|KeyHold)
+2:1691:4:40:5 //Navigate down by spacing: Alt+DOWN (KeyDown|KeyHold)
+2:1692:4:38:5 //Navigate up by spacing: Alt+UP (KeyDown|KeyHold)
+2:1040:0:37:5 //Navigate left: LEFT (KeyDown|KeyHold)
+2:1041:0:39:5 //Navigate right: RIGHT (KeyDown|KeyHold)
+2:1042:0:9:5 //Navigate to next channel: TAB (KeyDown|KeyHold)
+2:1043:1:9:5 //Navigate to previous channel: Shift+TAB (KeyDown|KeyHold)
+2:1044:0:36:1 //Go to first channel: HOME (KeyDown)
+2:1045:2:36:1 //Go to first row: Ctrl+HOME (KeyDown)
+2:1046:6:36:1 //Go to first row of first channel: Ctrl+Alt+HOME (KeyDown)
+2:1047:0:35:1 //Go to last channel: END (KeyDown)
+2:1048:2:35:1 //Go to last row: Ctrl+END (KeyDown)
+2:1049:6:35:1 //Go to last row of last channel: Ctrl+Alt+END (KeyDown)
+2:1050:1:16:1 //Selection key: Shift (KeyDown)
+2:1051:2:17:1 //Copy select key: Ctrl (KeyDown)
+2:1011:2:76:1 //Select channel / Select all: Ctrl+L (KeyDown)
+2:1663:0:122:1 //Toggle follow song: F11 (KeyDown)
+2:1003:0:13:1 //Quick copy: ENTER (KeyDown)
+2:1004:0:32:5 //Quick paste: SPACE (KeyDown|KeyHold)
+2:1001:2:32:1 //Enable recording: Ctrl+SPACE (KeyDown)
+2:1002:2:13:5 //Play row: Ctrl+ENTER (KeyDown|KeyHold)
+2:1317:4:18:1 //Set row jump on note entry: Alt (KeyDown)
+2:1685:2:9:1 //Switch to order list: Ctrl+TAB (KeyDown)
+2:1806:2:68:1 //Duplicate pattern: Ctrl+D (KeyDown)
+2:1662:6:80:1 //Toggle channel's plugin editor: Ctrl+Alt+P (KeyDown)
+2:1062:0:93:1 //Show note properties: Application (KeyDown)
+2:1772:5:80:1 //Show pattern properties window: Shift+Alt+P (KeyDown)
+2:1819:2:69:1 //Split Keyboard Settings dialog: Ctrl+E (KeyDown)
+2:1780:2:80:1 //Show playback time at current row: Ctrl+P (KeyDown)
+2:1005:0:121:1 //Mute current channel: F10 (KeyDown)
+2:1006:2:121:1 //Solo current channel: Ctrl+F10 (KeyDown)
+2:1771:6:121:1 //Unmute all channels: Ctrl+Alt+F10 (KeyDown)
+2:1786:2:82:1 //Reset channel: Ctrl+R (KeyDown)
+2:1007:2:81:5 //Transpose +1: Ctrl+Q (KeyDown|KeyHold)
+2:1008:2:65:5 //Transpose -1: Ctrl+A (KeyDown|KeyHold)
+2:1009:3:81:5 //Transpose +12: Shift+Ctrl+Q (KeyDown|KeyHold)
+2:1010:3:65:5 //Transpose -12: Shift+Ctrl+A (KeyDown|KeyHold)
+2:1012:2:77:1 //Amplify selection: Ctrl+M (KeyDown)
+2:1014:2:74:1 //Interpolate volume: Ctrl+J (KeyDown)
+2:1015:2:75:1 //Interpolate effect: Ctrl+K (KeyDown)
+2:1016:4:66:1 //Open effect visualizer: Alt+B (KeyDown)
+2:1766:2:71:1 //Go to row/channel/...: Ctrl+G (KeyDown)
+2:1013:2:73:1 //Apply current instrument: Ctrl+I (KeyDown)
+2:1660:4:69:5 //Grow selection: Alt+E (KeyDown|KeyHold)
+2:1661:4:68:5 //Shrink selection: Alt+D (KeyDown|KeyHold)
+2:1058:0:46:1 //Clear field: DELETE (KeyDown)
+2:1664:1:190:1 //Clear field (IT Style): Shift+. (KeyDown)
+2:1059:2:46:5 //Clear row and step: Ctrl+DELETE (KeyDown|KeyHold)
+2:1665:1:46:5 //Clear field and step (IT Style): Shift+DELETE (KeyDown|KeyHold)
+2:1061:0:8:5 //Delete rows: BACKSPACE (KeyDown|KeyHold)
+2:1377:2:8:5 //Delete all rows: Ctrl+BACKSPACE (KeyDown|KeyHold)
+2:1378:0:45:5 //Insert Row: INSERT (KeyDown|KeyHold)
+2:1379:2:45:5 //Insert All Rows: Ctrl+INSERT (KeyDown|KeyHold)
+2:1055:0:109:5 //Previous pattern: NUM SUB (KeyDown|KeyHold)
+2:1054:0:107:5 //Next pattern: NUM PLUS (KeyDown|KeyHold)
+
+//----( Pattern Context [bottom] - Note Col (3) )------------
+3:1064:0:81:1 //Base octave C: Q (KeyDown)
+3:1065:0:87:1 //Base octave C#: W (KeyDown)
+3:1066:0:69:1 //Base octave D: E (KeyDown)
+3:1067:0:82:1 //Base octave D#: R (KeyDown)
+3:1068:0:84:1 //Base octave E: T (KeyDown)
+3:1069:0:89:1 //Base octave F: Y (KeyDown)
+3:1070:0:85:1 //Base octave F#: U (KeyDown)
+3:1071:0:73:1 //Base octave G: I (KeyDown)
+3:1072:0:79:1 //Base octave G#: O (KeyDown)
+3:1073:0:80:1 //Base octave A: P (KeyDown)
+3:1074:0:219:1 //Base octave A#: [ (KeyDown)
+3:1075:0:221:1 //Base octave B: ] (KeyDown)
+3:1076:0:65:1 //Base octave +1 C: A (KeyDown)
+3:1077:0:83:1 //Base octave +1 C#: S (KeyDown)
+3:1078:0:68:1 //Base octave +1 D: D (KeyDown)
+3:1079:0:70:1 //Base octave +1 D#: F (KeyDown)
+3:1080:0:71:1 //Base octave +1 E: G (KeyDown)
+3:1081:0:72:1 //Base octave +1 F: H (KeyDown)
+3:1082:0:74:1 //Base octave +1 F#: J (KeyDown)
+3:1083:0:75:1 //Base octave +1 G: K (KeyDown)
+3:1084:0:76:1 //Base octave +1 G#: L (KeyDown)
+3:1085:0:186:1 //Base octave +1 A: ; (KeyDown)
+3:1086:0:222:1 //Base octave +1 A#: ' (KeyDown)
+3:1087:0:220:1 //Base octave +1 B: \ (KeyDown)
+3:1088:0:90:1 //Base octave +2 C: Z (KeyDown)
+3:1089:0:88:1 //Base octave +2 C#: X (KeyDown)
+3:1090:0:67:1 //Base octave +2 D: C (KeyDown)
+3:1091:0:86:1 //Base octave +2 D#: V (KeyDown)
+3:1092:0:66:1 //Base octave +2 E: B (KeyDown)
+3:1093:0:78:1 //Base octave +2 F: N (KeyDown)
+3:1094:0:77:1 //Base octave +2 F#: M (KeyDown)
+3:1095:0:188:1 //Base octave +2 G: , (KeyDown)
+3:1096:0:190:1 //Base octave +2 G#: . (KeyDown)
+3:1097:0:191:1 //Base octave +2 A: / (KeyDown)
+3:1212:0:48:1 //Set octave 0: 0 (KeyDown)
+3:1212:0:96:1 //Set octave 0: NUM 0 (KeyDown)
+3:1213:0:49:1 //Set octave 1: 1 (KeyDown)
+3:1213:0:97:1 //Set octave 1: NUM 1 (KeyDown)
+3:1214:0:50:1 //Set octave 2: 2 (KeyDown)
+3:1214:0:98:1 //Set octave 2: NUM 2 (KeyDown)
+3:1215:0:51:1 //Set octave 3: 3 (KeyDown)
+3:1215:0:99:1 //Set octave 3: NUM 3 (KeyDown)
+3:1216:0:52:1 //Set octave 4: 4 (KeyDown)
+3:1216:0:100:1 //Set octave 4: NUM 4 (KeyDown)
+3:1217:0:53:1 //Set octave 5: 5 (KeyDown)
+3:1217:0:101:1 //Set octave 5: NUM 5 (KeyDown)
+3:1218:0:54:1 //Set octave 6: 6 (KeyDown)
+3:1218:0:102:1 //Set octave 6: NUM 6 (KeyDown)
+3:1219:0:55:1 //Set octave 7: 7 (KeyDown)
+3:1219:0:103:1 //Set octave 7: NUM 7 (KeyDown)
+3:1220:0:56:1 //Set octave 8: 8 (KeyDown)
+3:1220:0:104:1 //Set octave 8: NUM 8 (KeyDown)
+3:1221:0:57:1 //Set octave 9: 9 (KeyDown)
+3:1221:0:105:1 //Set octave 9: NUM 9 (KeyDown)
+3:1316:1:16:1 //Chord Modifier: Shift (KeyDown)
+3:1200:0:192:1 //Note Cut: ` (KeyDown)
+3:1201:0:187:1 //Note Off: = (KeyDown)
+3:1791:1:187:1 //Note Fade: Shift+= (KeyDown)
+3:1788:0:189:1 //Parameter control(MPTm only): - (KeyDown)
+3:1789:1:189:1 //Parameter control(smooth)(MPTm only): Shift+- (KeyDown)
+
+//----( Pattern Context [bottom] - Ins Col (4) )------------
+4:1202:0:96:1 //Set instrument digit 0: NUM 0 (KeyDown)
+4:1202:0:48:1 //Set instrument digit 0: 0 (KeyDown)
+4:1203:0:97:1 //Set instrument digit 1: NUM 1 (KeyDown)
+4:1203:0:49:1 //Set instrument digit 1: 1 (KeyDown)
+4:1204:0:98:1 //Set instrument digit 2: NUM 2 (KeyDown)
+4:1204:0:50:1 //Set instrument digit 2: 2 (KeyDown)
+4:1205:0:99:1 //Set instrument digit 3: NUM 3 (KeyDown)
+4:1205:0:51:1 //Set instrument digit 3: 3 (KeyDown)
+4:1206:0:100:1 //Set instrument digit 4: NUM 4 (KeyDown)
+4:1206:0:52:1 //Set instrument digit 4: 4 (KeyDown)
+4:1207:0:101:1 //Set instrument digit 5: NUM 5 (KeyDown)
+4:1207:0:53:1 //Set instrument digit 5: 5 (KeyDown)
+4:1208:0:102:1 //Set instrument digit 6: NUM 6 (KeyDown)
+4:1208:0:54:1 //Set instrument digit 6: 6 (KeyDown)
+4:1209:0:103:1 //Set instrument digit 7: NUM 7 (KeyDown)
+4:1209:0:55:1 //Set instrument digit 7: 7 (KeyDown)
+4:1210:0:104:1 //Set instrument digit 8: NUM 8 (KeyDown)
+4:1210:0:56:1 //Set instrument digit 8: 8 (KeyDown)
+4:1211:0:105:1 //Set instrument digit 9: NUM 9 (KeyDown)
+4:1211:0:57:1 //Set instrument digit 9: 9 (KeyDown)
+
+//----( Pattern Context [bottom] - Vol Col (5) )------------
+5:1222:0:48:1 //Set volume digit 0: 0 (KeyDown)
+5:1222:0:96:1 //Set volume digit 0: NUM 0 (KeyDown)
+5:1223:0:49:1 //Set volume digit 1: 1 (KeyDown)
+5:1223:0:97:1 //Set volume digit 1: NUM 1 (KeyDown)
+5:1224:0:50:1 //Set volume digit 2: 2 (KeyDown)
+5:1224:0:98:1 //Set volume digit 2: NUM 2 (KeyDown)
+5:1225:0:51:1 //Set volume digit 3: 3 (KeyDown)
+5:1225:0:99:1 //Set volume digit 3: NUM 3 (KeyDown)
+5:1226:0:52:1 //Set volume digit 4: 4 (KeyDown)
+5:1226:0:100:1 //Set volume digit 4: NUM 4 (KeyDown)
+5:1227:0:53:1 //Set volume digit 5: 5 (KeyDown)
+5:1227:0:101:1 //Set volume digit 5: NUM 5 (KeyDown)
+5:1228:0:54:1 //Set volume digit 6: 6 (KeyDown)
+5:1228:0:102:1 //Set volume digit 6: NUM 6 (KeyDown)
+5:1229:0:55:1 //Set volume digit 7: 7 (KeyDown)
+5:1229:0:103:1 //Set volume digit 7: NUM 7 (KeyDown)
+5:1230:0:56:1 //Set volume digit 8: 8 (KeyDown)
+5:1230:0:104:1 //Set volume digit 8: NUM 8 (KeyDown)
+5:1231:0:57:1 //Set volume digit 9: 9 (KeyDown)
+5:1231:0:105:1 //Set volume digit 9: NUM 9 (KeyDown)
+5:1232:0:86:1 //Vol command - volume: V (KeyDown)
+5:1233:0:80:1 //Vol command - pan: P (KeyDown)
+5:1234:0:67:1 //Vol command - vol slide up: C (KeyDown)
+5:1235:0:68:1 //Vol command - vol slide down: D (KeyDown)
+5:1236:0:65:1 //Vol command - vol fine slide up: A (KeyDown)
+5:1237:0:66:1 //Vol command - vol fine slide down: B (KeyDown)
+5:1238:0:85:1 //Vol command - vibrato speed: U (KeyDown)
+5:1239:0:72:1 //Vol command - vibrato: H (KeyDown)
+5:1240:0:76:1 //Vol command - XM pan left: L (KeyDown)
+5:1241:0:82:1 //Vol command - XM pan right: R (KeyDown)
+5:1242:0:71:1 //Vol command - Portamento: G (KeyDown)
+5:1243:0:70:1 //Vol command - Portamento Up: F (KeyDown)
+5:1244:0:69:1 //Vol command - Portamento Down: E (KeyDown)
+5:1245:0:186:1 //Vol command - Velocity: ; (KeyDown)
+5:1245:1:186:1 //Vol command - Velocity: Shift+; (KeyDown)
+5:1246:0:79:1 //Vol command - Offset: O (KeyDown)
+
+//----( Pattern Context [bottom] - FX Col (6) )------------
+6:1294:0:220:1 //FX midi macro slide: \ (KeyDown)
+6:1295:1:186:1 //FX pseudo-velocity (experimental): Shift+; (KeyDown)
+6:1295:0:186:1 //FX pseudo-velocity (experimental): ; (KeyDown)
+6:1666:0:191:1 //FX parameter extension command: / (KeyDown)
+
+//----( Pattern Context [bottom] - Param Col (7) )------------
+7:1247:0:48:1 //FX Param digit 0: 0 (KeyDown)
+7:1247:0:96:1 //FX Param digit 0: NUM 0 (KeyDown)
+7:1248:0:49:1 //FX Param digit 1: 1 (KeyDown)
+7:1248:0:97:1 //FX Param digit 1: NUM 1 (KeyDown)
+7:1249:0:50:1 //FX Param digit 2: 2 (KeyDown)
+7:1249:0:98:1 //FX Param digit 2: NUM 2 (KeyDown)
+7:1250:0:51:1 //FX Param digit 3: 3 (KeyDown)
+7:1250:0:99:1 //FX Param digit 3: NUM 3 (KeyDown)
+7:1251:0:52:1 //FX Param digit 4: 4 (KeyDown)
+7:1251:0:100:1 //FX Param digit 4: NUM 4 (KeyDown)
+7:1252:0:53:1 //FX Param digit 5: 5 (KeyDown)
+7:1252:0:101:1 //FX Param digit 5: NUM 5 (KeyDown)
+7:1253:0:54:1 //FX Param digit 6: 6 (KeyDown)
+7:1253:0:102:1 //FX Param digit 6: NUM 6 (KeyDown)
+7:1254:0:55:1 //FX Param digit 7: 7 (KeyDown)
+7:1254:0:103:1 //FX Param digit 7: NUM 7 (KeyDown)
+7:1255:0:56:1 //FX Param digit 8: 8 (KeyDown)
+7:1255:0:104:1 //FX Param digit 8: NUM 8 (KeyDown)
+7:1256:0:57:1 //FX Param digit 9: 9 (KeyDown)
+7:1256:0:105:1 //FX Param digit 9: NUM 9 (KeyDown)
+7:1257:0:65:1 //FX Param digit A: A (KeyDown)
+7:1258:0:66:1 //FX Param digit B: B (KeyDown)
+7:1259:0:67:1 //FX Param digit C: C (KeyDown)
+7:1260:0:68:1 //FX Param digit D: D (KeyDown)
+7:1261:0:69:1 //FX Param digit E: E (KeyDown)
+7:1262:0:70:1 //FX Param digit F: F (KeyDown)
+
+//----( Sample Context [bottom] (8) )------------
+8:1380:2:84:1 //Trim sample around loop points: Ctrl+T (KeyDown)
+8:1383:0:8:1 //Silence sample selection: BACKSPACE (KeyDown)
+8:1384:1:78:1 //Normalise Sample: Shift+N (KeyDown)
+8:1385:3:65:1 //Amplify Sample: Shift+Ctrl+A (KeyDown)
+8:1385:2:77:1 //Amplify Sample: Ctrl+M (KeyDown)
+8:1381:3:82:1 //Reverse sample: Shift+Ctrl+R (KeyDown)
+8:1382:0:46:1 //Delete sample selection: DELETE (KeyDown)
+8:1386:0:107:1 //Zoom Out: NUM PLUS (KeyDown)
+8:1387:0:109:1 //Zoom In: NUM SUB (KeyDown)
+8:1784:2:73:1 //Invert sample phase: Ctrl+I (KeyDown)
+8:1785:2:85:1 //Signed/Unsigned conversion: Ctrl+U (KeyDown)
+8:1790:2:68:1 //Remove DC Offset: Ctrl+D (KeyDown)
+
+//----( Instrument Context [bottom] (9) )------------
+9:1825:1:9:5 //Select previous envelope point: Shift+TAB (KeyDown|KeyHold)
+9:1826:0:9:5 //Select next envelope point: TAB (KeyDown|KeyHold)
+9:1821:0:37:5 //Move envelope point left: LEFT (KeyDown|KeyHold)
+9:1822:0:39:5 //Move envelope point right: RIGHT (KeyDown|KeyHold)
+9:1823:0:38:5 //Move envelope point up: UP (KeyDown|KeyHold)
+9:1834:0:33:5 //Move envelope point up (big step): PGUP (KeyDown|KeyHold)
+9:1824:0:40:5 //Move envelope point down: DOWN (KeyDown|KeyHold)
+9:1835:0:34:5 //Move envelope point down (big step): PGDOWN (KeyDown|KeyHold)
+9:1827:0:45:1 //Insert envelope point: INSERT (KeyDown)
+9:1828:0:46:1 //Remove envelope point: DELETE (KeyDown)
+9:1828:0:8:1 //Remove envelope point: BACKSPACE (KeyDown)
+9:1829:0:36:1 //Set loop start: HOME (KeyDown)
+9:1830:0:35:1 //Set loop end: END (KeyDown)
+9:1831:2:36:1 //Set sustain loop start: Ctrl+HOME (KeyDown)
+9:1832:2:35:1 //Set sustain loop end: Ctrl+END (KeyDown)
+9:1833:2:82:1 //Toggle release node: Ctrl+R (KeyDown)
+
+//----( Comments Context [bottom] (10) )------------
+
+//----( Unknown Context (11) )------------
+
+//----( Unknown Context (12) )------------
+
+//----( Plugin GUI Context (13) )------------
+13:1763:0:37:5 //Previous plugin preset: LEFT (KeyDown|KeyHold)
+13:1764:0:39:5 //Next plugin preset: RIGHT (KeyDown|KeyHold)
+13:1782:0:38:5 //Plugin preset backward jump: UP (KeyDown|KeyHold)
+13:1783:0:40:5 //Plugin preset forward jump: DOWN (KeyDown|KeyHold)
+13:1765:2:82:1 //Randomize plugin parameters: Ctrl+R (KeyDown)
+
+//----( General Context [top] (14) )------------
+
+//----( Pattern Context [top] (15) )------------
+
+//----( Sample Context [top] (16) )------------
+
+//----( Instrument Context [top] (17) )------------
+
+//----( Comments Context [top] (18) )------------
+
+//----( Orderlist (19) )------------
+19:1802:0:46:5 //Delete Order: DELETE (KeyDown|KeyHold)
+19:1803:0:45:5 //Insert Order: INSERT (KeyDown|KeyHold)
+19:1804:0:13:5 //Edit Pattern: ENTER (KeyDown|KeyHold)
+19:1805:0:9:5 //Switch to pattern editor: TAB (KeyDown|KeyHold)
+19:1794:0:37:5 //Previous Order: LEFT (KeyDown|KeyHold)
+19:1794:0:38:5 //Previous Order: UP (KeyDown|KeyHold)
+19:1795:0:39:5 //Next Order: RIGHT (KeyDown|KeyHold)
+19:1795:0:40:5 //Next Order: DOWN (KeyDown|KeyHold)
+19:1796:0:36:5 //First Order: HOME (KeyDown|KeyHold)
+19:1797:0:35:5 //Last Order: END (KeyDown|KeyHold)
+19:1807:0:48:5 //Pattern index digit 0: 0 (KeyDown|KeyHold)
+19:1807:0:96:5 //Pattern index digit 0: NUM 0 (KeyDown|KeyHold)
+19:1808:0:49:5 //Pattern index digit 1: 1 (KeyDown|KeyHold)
+19:1808:0:97:5 //Pattern index digit 1: NUM 1 (KeyDown|KeyHold)
+19:1809:0:50:5 //Pattern index digit 2: 2 (KeyDown|KeyHold)
+19:1809:0:98:5 //Pattern index digit 2: NUM 2 (KeyDown|KeyHold)
+19:1810:0:51:5 //Pattern index digit 3: 3 (KeyDown|KeyHold)
+19:1810:0:99:5 //Pattern index digit 3: NUM 3 (KeyDown|KeyHold)
+19:1811:0:52:5 //Pattern index digit 4: 4 (KeyDown|KeyHold)
+19:1811:0:100:5 //Pattern index digit 4: NUM 4 (KeyDown|KeyHold)
+19:1812:0:53:5 //Pattern index digit 5: 5 (KeyDown|KeyHold)
+19:1812:0:101:5 //Pattern index digit 5: NUM 5 (KeyDown|KeyHold)
+19:1813:0:54:5 //Pattern index digit 6: 6 (KeyDown|KeyHold)
+19:1813:0:102:5 //Pattern index digit 6: NUM 6 (KeyDown|KeyHold)
+19:1814:0:55:5 //Pattern index digit 7: 7 (KeyDown|KeyHold)
+19:1814:0:103:5 //Pattern index digit 7: NUM 7 (KeyDown|KeyHold)
+19:1815:0:56:5 //Pattern index digit 8: 8 (KeyDown|KeyHold)
+19:1815:0:104:5 //Pattern index digit 8: NUM 8 (KeyDown|KeyHold)
+19:1816:0:57:5 //Pattern index digit 9: 9 (KeyDown|KeyHold)
+19:1816:0:105:5 //Pattern index digit 9: NUM 9 (KeyDown|KeyHold)
+19:1817:0:107:5 //Increase pattern index : NUM PLUS (KeyDown|KeyHold)
+19:1817:0:187:5 //Increase pattern index : = (KeyDown|KeyHold)
+19:1818:0:109:5 //Decrease pattern index: NUM SUB (KeyDown|KeyHold)
+19:1818:0:189:5 //Decrease pattern index: - (KeyDown|KeyHold)
Modified: trunk/OpenMPT/packageTemplate/extraKeymaps/dvorak_(snu).mkb
===================================================================
--- trunk/OpenMPT/packageTemplate/extraKeymaps/dvorak_(snu).mkb 2010-01-16 23:55:23 UTC (rev 470)
+++ trunk/OpenMPT/packageTemplate/extraKeymaps/dvorak_(snu).mkb 2010-01-19 22:57:23 UTC (rev 471)
@@ -8,51 +8,60 @@
0:1347:2:78:1 //File/New: Ctrl+N (KeyDown)
0:1346:2:79:1 //File/Open: Ctrl+O (KeyDown)
0:1349:2:83:1 //File/Save: Ctrl+S (KeyDown)
-0:1030:2:119:1 //Play song/Pause song: Ctrl+F8 (KeyDown)
+0:1350:6:83:1 //File/Save As: Ctrl+Alt+S (KeyDown)
+0:1030:0:116:1 //Play song/Pause song: F5 (KeyDown)
0:1031:0:119:1 //Pause song: F8 (KeyDown)
0:1375:0:27:1 //Stop Song: ESC (KeyDown)
-0:1029:0:116:5 //Play song from start: F5 (KeyDown|KeyHold)
-0:1028:0:118:5 //Play song from cursor: F7 (KeyDown|KeyHold)
-0:1027:0:117:5 //Play pattern from start: F6 (KeyDown|KeyHold)
-0:1026:2:117:5 //Play pattern from cursor: Ctrl+F6 (KeyDown|KeyHold)
-0:1376:2:120:1 //Toggle Midi Record: Ctrl+F9 (KeyDown)
+0:1029:0:117:1 //Play song from start: F6 (KeyDown)
+0:1027:0:118:1 //Play pattern from start: F7 (KeyDown)
+0:1026:2:118:1 //Play pattern from cursor: Ctrl+F7 (KeyDown)
+0:1376:0:120:1 //Toggle Midi Record: F9 (KeyDown)
0:1359:2:90:1 //Undo: Ctrl+Z (KeyDown)
0:1360:2:88:1 //Cut: Ctrl+X (KeyDown)
0:1361:2:67:1 //Copy: Ctrl+C (KeyDown)
0:1362:2:86:1 //Paste: Ctrl+V (KeyDown)
-0:1364:2:65:1 //SelectAll: Ctrl+A (KeyDown)
+0:1362:1:45:1 //Paste: Shift+INSERT (KeyDown)
+0:1363:6:86:1 //Mix Paste: Ctrl+Alt+V (KeyDown)
+0:1793:1:86:5 //Paste Flood: Shift+V (KeyDown|KeyHold)
+0:1364:2:53:1 //SelectAll: Ctrl+5 (KeyDown)
0:1365:2:70:1 //Find: Ctrl+F (KeyDown)
-0:1366:2:114:1 //Find Next: Ctrl+F3 (KeyDown)
-0:1021:0:122:1 //View General: F11 (KeyDown)
-0:1022:0:113:1 //View Pattern: F2 (KeyDown)
-0:1023:0:114:1 //View Samples: F3 (KeyDown)
-0:1024:0:115:1 //View Instruments: F4 (KeyDown)
+0:1366:0:114:1 //Find Next: F3 (KeyDown)
+0:1021:4:71:1 //View General: Alt+G (KeyDown)
+0:1022:4:80:1 //View Pattern: Alt+P (KeyDown)
+0:1023:4:83:1 //View Samples: Alt+S (KeyDown)
+0:1024:4:78:1 //View Instruments: Alt+N (KeyDown)
0:1025:1:120:1 //View Comments: Shift+F9 (KeyDown)
+0:1025:4:67:1 //View Comments: Alt+C (KeyDown)
0:1368:2:113:1 //Toggle Tree View: Ctrl+F2 (KeyDown)
+0:1369:2:112:1 //View Options: Ctrl+F1 (KeyDown)
+0:1781:2:114:1 //View MIDI mapping: Ctrl+F3 (KeyDown)
+0:1370:0:112:1 //Help (to do): F1 (KeyDown)
+0:1032:2:111:5 //Previous instrument: Ctrl+NUM DIVIDE (KeyDown|KeyHold)
0:1032:2:38:5 //Previous instrument: Ctrl+UP (KeyDown|KeyHold)
+0:1033:2:106:5 //Next instrument: Ctrl+NUMMULT (KeyDown|KeyHold)
0:1033:2:40:5 //Next instrument: Ctrl+DOWN (KeyDown|KeyHold)
-0:1036:0:111:5 //Previous octave: NUM DIVIDE (KeyDown|KeyHold)
-0:1037:0:106:5 //Next octave: NUMMULT (KeyDown|KeyHold)
+0:1036:0:111:1 //Previous octave: NUM DIVIDE (KeyDown)
+0:1037:0:106:1 //Next octave: NUMMULT (KeyDown)
0:1034:2:37:5 //Previous order: Ctrl+LEFT (KeyDown|KeyHold)
0:1035:2:39:5 //Next order: Ctrl+RIGHT (KeyDown|KeyHold)
//----( General Context [bottom] (1) )------------
//----( Pattern Context [bottom] (2) )------------
-2:1017:4:34:5 //Jump down by measure: Alt+PGDOWN (KeyDown|KeyHold)
-2:1018:4:33:5 //Jump up by measure: Alt+PGUP (KeyDown|KeyHold)
-2:1338:0:34:5 //Jump down by beat: PGDOWN (KeyDown|KeyHold)
-2:1339:0:33:5 //Jump up by beat: PGUP (KeyDown|KeyHold)
-2:1019:2:34:5 //Snap down to measure: Ctrl+PGDOWN (KeyDown|KeyHold)
-2:1020:2:33:5 //Snap up to measure: Ctrl+PGUP (KeyDown|KeyHold)
+2:1017:0:34:5 //Jump down by measure: PGDOWN (KeyDown|KeyHold)
+2:1018:0:33:5 //Jump up by measure: PGUP (KeyDown|KeyHold)
+2:1338:4:34:5 //Jump down by beat: Alt+PGDOWN (KeyDown|KeyHold)
+2:1339:4:33:5 //Jump up by beat: Alt+PGUP (KeyDown|KeyHold)
2:1340:6:34:5 //Snap down to beat: Ctrl+Alt+PGDOWN (KeyDown|KeyHold)
2:1341:6:33:5 //Snap up to beat: Ctrl+Alt+PGUP (KeyDown|KeyHold)
2:1038:0:40:5 //Navigate down by 1 row: DOWN (KeyDown|KeyHold)
2:1039:0:38:5 //Navigate up by 1 row: UP (KeyDown|KeyHold)
+2:1691:4:40:5 //Navigate down by spacing: Alt+DOWN (KeyDown|KeyHold)
+2:1692:4:38:5 //Navigate up by spacing: Alt+UP (KeyDown|KeyHold)
2:1040:0:37:5 //Navigate left: LEFT (KeyDown|KeyHold)
2:1041:0:39:5 //Navigate right: RIGHT (KeyDown|KeyHold)
2:1042:0:9:5 //Navigate to next channel: TAB (KeyDown|KeyHold)
-2:1043:2:9:5 //Navigate to previous channel: Ctrl+TAB (KeyDown|KeyHold)
+2:1043:1:9:5 //Navigate to previous channel: Shift+TAB (KeyDown|KeyHold)
2:1044:0:36:1 //Go to first channel: HOME (KeyDown)
2:1045:2:36:1 //Go to first row: Ctrl+HOME (KeyDown)
2:1046:6:36:1 //Go to first row of first channel: Ctrl+Alt+HOME (KeyDown)
@@ -60,93 +69,109 @@
2:1048:2:35:1 //Go to last row: Ctrl+END (KeyDown)
2:1049:6:35:1 //Go to last row of last channel: Ctrl+Alt+END (KeyDown)
2:1050:1:16:1 //Selection key: Shift (KeyDown)
-2:1011:4:76:1 //Select channel / Select all: Alt+L (KeyDown)
+2:1051:2:17:1 //Copy select key: Ctrl (KeyDown)
+2:1011:2:76:1 //Select channel / Select all: Ctrl+L (KeyDown)
+2:1663:0:122:1 //Toggle follow song: F11 (KeyDown)
2:1003:0:13:1 //Quick copy: ENTER (KeyDown)
-2:1004:0:32:1 //Quick paste: SPACE (KeyDown)
-2:1001:1:120:1 //Enable recording: Shift+F9 (KeyDown)
-2:1002:0:104:5 //Play row: NUM 8 (KeyDown|KeyHold)
+2:1004:0:32:5 //Quick paste: SPACE (KeyDown|KeyHold)
+2:1001:2:32:1 //Enable recording: Ctrl+SPACE (KeyDown)
2:1002:2:13:5 //Play row: Ctrl+ENTER (KeyDown|KeyHold)
2:1317:4:18:1 //Set row jump on note entry: Alt (KeyDown)
+2:1685:2:9:1 //Switch to order list: Ctrl+TAB (KeyDown)
+2:1806:2:68:1 //Duplicate pattern: Ctrl+D (KeyDown)
+2:1662:6:80:1 //Toggle channel's plugin editor: Ctrl+Alt+P (KeyDown)
2:1062:0:93:1 //Show note properties: Application (KeyDown)
-2:1063:2:93:1 //Show context (right-click) menu: Ctrl+Application (KeyDown)
-2:1005:0:120:1 //Mute current channel: F9 (KeyDown)
-2:1006:0:121:1 //Solo current channel: F10 (KeyDown)
-2:1007:4:81:5 //Transpose +1: Alt+Q (KeyDown|KeyHold)
-2:1008:4:65:5 //Transpose -1: Alt+A (KeyDown|KeyHold)
-2:1009:6:81:5 //Transpose +12: Ctrl+Alt+Q (KeyDown|KeyHold)
+2:1772:5:80:1 //Show pattern properties window: Shift+Alt+P (KeyDown)
+2:1819:2:69:1 //Split Keyboard Settings dialog: Ctrl+E (KeyDown)
+2:1780:2:80:1 //Show playback time at current row: Ctrl+P (KeyDown)
+2:1005:0:121:1 //Mute current channel: F10 (KeyDown)
+2:1006:2:121:1 //Solo current channel: Ctrl+F10 (KeyDown)
+2:1771:6:121:1 //Unmute all channels: Ctrl+Alt+F10 (KeyDown)
+2:1786:2:82:1 //Reset channel: Ctrl+R (KeyDown)
+2:1007:2:222:5 //Transpose +1: Ctrl+' (KeyDown|KeyHold)
+2:1008:2:65:5 //Transpose -1: Ctrl+A (KeyDown|KeyHold)
+2:1009:6:222:5 //Transpose +12: Ctrl+Alt+' (KeyDown|KeyHold)
2:1010:6:65:5 //Transpose -12: Ctrl+Alt+A (KeyDown|KeyHold)
-2:1012:4:74:1 //Amplify selection: Alt+J (KeyDown)
-2:1014:4:73:1 //Interpolate volume: Alt+I (KeyDown)
-2:1015:4:88:1 //Interpolate effect: Alt+X (KeyDown)
+2:1012:2:77:1 //Amplify selection: Ctrl+M (KeyDown)
+2:1014:2:74:1 //Interpolate volume: Ctrl+J (KeyDown)
+2:1015:2:75:1 //Interpolate effect: Ctrl+K (KeyDown)
2:1016:4:66:1 //Open effect visualizer: Alt+B (KeyDown)
-2:1013:4:83:1 //Apply current instrument: Alt+S (KeyDown)
-2:1664:0:46:1 //Clear field (IT Style): DELETE (KeyDown)
-2:1059:2:46:1 //Clear row and step: Ctrl+DELETE (KeyDown)
-2:1060:2:110:1 //Clear field and step: Ctrl+NUM DECIMAL (KeyDown)
+2:1766:2:71:1 //Go to row/channel/...: Ctrl+G (KeyDown)
+2:1013:2:73:1 //Apply current instrument: Ctrl+I (KeyDown)
+2:1660:4:69:5 //Grow selection: Alt+E (KeyDown|KeyHold)
+2:1661:4:68:5 //Shrink selection: Alt+D (KeyDown|KeyHold)
+2:1058:0:46:1 //Clear field: DELETE (KeyDown)
+2:1664:1:190:1 //Clear field (IT Style): Shift+. (KeyDown)
+2:1059:2:46:5 //Clear row and step: Ctrl+DELETE (KeyDown|KeyHold)
+2:1665:1:46:5 //Clear field and step (IT Style): Shift+DELETE (KeyDown|KeyHold)
2:1061:0:8:5 //Delete rows: BACKSPACE (KeyDown|KeyHold)
2:1377:2:8:5 //Delete all rows: Ctrl+BACKSPACE (KeyDown|KeyHold)
-2:1378:0:45:1 //Insert Row: INSERT (KeyDown)
-2:1379:2:45:1 //Insert All Rows: Ctrl+INSERT (KeyDown)
-2:1055:0:109:1 //Previous pattern: NUM SUB (KeyDown)
-2:1054:0:107:1 //Next pattern: NUM PLUS (KeyDown)
+2:1378:0:45:5 //Insert Row: INSERT (KeyDown|KeyHold)
+2:1379:2:45:5 //Insert All Rows: Ctrl+INSERT (KeyDown|KeyHold)
+2:1055:0:109:5 //Previous pattern: NUM SUB (KeyDown|KeyHold)
+2:1054:0:107:5 //Next pattern: NUM PLUS (KeyDown|KeyHold)
//----( Pattern Context [bottom] - Note Col (3) )------------
-3:1064:0:222:5 //Base octave C: ' (KeyDown|KeyHold)
-3:1065:0:188:5 //Base octave C#: , (KeyDown|KeyHold)
-3:1066:0:190:5 //Base octave D: . (KeyDown|KeyHold)
-3:1067:0:80:5 //Base octave D#: P (KeyDown|KeyHold)
-3:1068:0:89:5 //Base octave E: Y (KeyDown|KeyHold)
-3:1069:0:70:5 //Base octave F: F (KeyDown|KeyHold)
-3:1070:0:71:5 //Base octave F#: G (KeyDown|KeyHold)
-3:1071:0:67:5 //Base octave G: C (KeyDown|KeyHold)
-3:1072:0:82:5 //Base octave G#: R (KeyDown|KeyHold)
-3:1073:0:76:5 //Base octave +1 A: L (KeyDown|KeyHold)
-3:1074:0:191:5 //Base octave +1 A#: / (KeyDown|KeyHold)
-3:1075:0:187:5 //Base octave +1 B: = (KeyDown|KeyHold)
-3:1076:0:65:5 //Base octave +1 C: A (KeyDown|KeyHold)
-3:1077:0:79:5 //Base octave +1 C#: O (KeyDown|KeyHold)
-3:1078:0:69:5 //Base octave +1 D: E (KeyDown|KeyHold)
-3:1079:0:85:5 //Base octave +1 D#: U (KeyDown|KeyHold)
-3:1080:0:73:5 //Base octave +1 E: I (KeyDown|KeyHold)
-3:1081:0:68:5 //Base octave +1 F: D (KeyDown|KeyHold)
-3:1082:0:72:5 //Base octave +1 F#: H (KeyDown|KeyHold)
-3:1083:0:84:5 //Base octave +1 G: T (KeyDown|KeyHold)
-3:1084:0:78:5 //Base octave +1 G#: N (KeyDown|KeyHold)
-3:1085:0:83:5 //Base octave +2 A: S (KeyDown|KeyHold)
-3:1086:0:189:5 //Base octave +2 A#: - (KeyDown|KeyHold)
-3:1087:0:220:5 //Base octave +2 B: \ (KeyDown|KeyHold)
-3:1088:0:186:5 //Base octave +2 C: ; (KeyDown|KeyHold)
-3:1089:0:81:5 //Base octave +2 C#: Q (KeyDown|KeyHold)
-3:1090:0:74:5 //Base octave +2 D: J (KeyDown|KeyHold)
-3:1091:0:75:5 //Base octave +2 D#: K (KeyDown|KeyHold)
-3:1092:0:88:5 //Base octave +2 E: X (KeyDown|KeyHold)
-3:1093:0:66:5 //Base octave +2 F: B (KeyDown|KeyHold)
-3:1094:0:77:5 //Base octave +2 F#: M (KeyDown|KeyHold)
-3:1095:0:87:5 //Base octave +2 G: W (KeyDown|KeyHold)
-3:1096:0:86:5 //Base octave +2 G#: V (KeyDown|KeyHold)
-3:1097:0:90:5 //Base octave +3 A: Z (KeyDown|KeyHold)
+3:1064:0:222:1 //Base octave C: ' (KeyDown)
+3:1065:0:188:1 //Base octave C#: , (KeyDown)
+3:1066:0:190:1 //Base octave D: . (KeyDown)
+3:1067:0:80:1 //Base octave D#: P (KeyDown)
+3:1068:0:89:1 //Base octave E: Y (KeyDown)
+3:1069:0:70:1 //Base octave F: F (KeyDown)
+3:1070:0:71:1 //Base octave F#: G (KeyDown)
+3:1071:0:67:1 //Base octave G: C (KeyDown)
+3:1072:0:82:1 //Base octave G#: R (KeyDown)
+3:1073:0:76:1 //Base octave A: L (KeyDown)
+3:1074:0:191:1 //Base octave A#: / (KeyDown)
+3:1075:0:187:1 //Base octave B: = (KeyDown)
+3:1076:0:65:1 //Base octave +1 C: A (KeyDown)
+3:1077:0:79:1 //Base octave +1 C#: O (KeyDown)
+3:1078:0:69:1 //Base octave +1 D: E (KeyDown)
+3:1079:0:85:1 //Base octave +1 D#: U (KeyDown)
+3:1080:0:73:1 //Base octave +1 E: I (KeyDown)
+3:1081:0:68:1 //Base octave +1 F: D (KeyDown)
+3:1082:0:72:1 //Base octave +1 F#: H (KeyDown)
+3:1083:0:84:1 //Base octave +1 G: T (KeyDown)
+3:1084:0:78:1 //Base octave +1 G#: N (KeyDown)
+3:1085:0:83:1 //Base octave +1 A: S (KeyDown)
+3:1086:0:189:1 //Base octave +1 A#: - (KeyDown)
+3:1087:0:220:1 //Base octave +1 B: \ (KeyDown)
+3:1088:0:186:1 //Base octave +2 C: ; (KeyDown)
+3:1089:0:81:1 //Base octave +2 C#: Q (KeyDown)
+3:1090:0:74:1 //Base octave +2 D: J (KeyDown)
+3:1091:0:75:1 //Base octave +2 D#: K (KeyDown)
+3:1092:0:88:1 //Base octave +2 E: X (KeyDown)
+3:1093:0:66:1 //Base octave +2 F: B (KeyDown)
+3:1094:0:77:1 //Base octave +2 F#: M (KeyDown)
+3:1095:0:87:1 //Base octave +2 G: W (KeyDown)
+3:1096:0:86:1 //Base octave +2 G#: V (KeyDown)
+3:1097:0:90:1 //Base octave +2 A: Z (KeyDown)
+3:1212:0:48:1 //Set octave 0: 0 (KeyDown)
3:1212:0:96:1 //Set octave 0: NUM 0 (KeyDown)
-3:1212:0:48:1 //Set octave 0: 0 (KeyDown)
+3:1213:0:49:1 //Set octave 1: 1 (KeyDown)
3:1213:0:97:1 //Set octave 1: NUM 1 (KeyDown)
+3:1214:0:50:1 //Set octave 2: 2 (KeyDown)
3:1214:0:98:1 //Set octave 2: NUM 2 (KeyDown)
-3:1214:0:50:1 //Set octave 2: 2 (KeyDown)
+3:1215:0:51:1 //Set octave 3: 3 (KeyDown)
3:1215:0:99:1 //Set octave 3: NUM 3 (KeyDown)
-3:1215:0:51:1 //Set octave 3: 3 (KeyDown)
3:1216:0:52:1 //Set octave 4: 4 (KeyDown)
3:1216:0:100:1 //Set octave 4: NUM 4 (KeyDown)
+3:1217:0:53:1 //Set octave 5: 5 (KeyDown)
3:1217:0:101:1 //Set octave 5: NUM 5 (KeyDown)
-3:1217:0:53:1 //Set octave 5: 5 (KeyDown)
+3:1218:0:54:1 //Set octave 6: 6 (KeyDown)
3:1218:0:102:1 //Set octave 6: NUM 6 (KeyDown)
-3:1218:0:54:1 //Set octave 6: 6 (KeyDown)
+3:1219:0:55:1 //Set octave 7: 7 (KeyDown)
3:1219:0:103:1 //Set octave 7: NUM 7 (KeyDown)
-3:1219:0:55:1 //Set octave 7: 7 (KeyDown)
3:1220:0:56:1 //Set octave 8: 8 (KeyDown)
3:1220:0:104:1 //Set octave 8: NUM 8 (KeyDown)
+3:1221:0:57:1 //Set octave 9: 9 (KeyDown)
3:1221:0:105:1 //Set octave 9: NUM 9 (KeyDown)
-3:1221:0:57:1 //Set octave 9: 9 (KeyDown)
3:1316:1:16:1 //Chord Modifier: Shift (KeyDown)
-3:1667:0:192:1 //Note cut (don't remember instrument): ` (KeyDown)
-3:1668:0:221:1 //Note off (don't remember instrument): ] (KeyDown)
+3:1200:0:192:1 //Note Cut: ` (KeyDown)
+3:1201:0:221:1 //Note Off: ] (KeyDown)
+3:1791:1:221:1 //Note Fade: Shift+] (KeyDown)
+3:1788:0:219:1 //Parameter control(MPTm only): [ (KeyDown)
+3:1789:1:219:1 //Parameter control(smooth)(MPTm only): Shift+[ (KeyDown)
//----( Pattern Context [bottom] - Ins Col (4) )------------
4:1202:0:96:1 //Set instrument digit 0: NUM 0 (KeyDown)
@@ -165,6 +190,7 @@
4:1208:0:54:1 //Set instrument digit 6: 6 (KeyDown)
4:1209:0:103:1 //Set instrument digit 7: NUM 7 (KeyDown)
4:1209:0:55:1 //Set instrument digit 7: 7 (KeyDown)
+4:1210:0:104:1 //Set instrument digit 8: NUM 8 (KeyDown)
4:1210:0:56:1 //Set instrument digit 8: 8 (KeyDown)
4:1211:0:105:1 //Set instrument digit 9: NUM 9 (KeyDown)
4:1211:0:57:1 //Set instrument digit 9: 9 (KeyDown)
@@ -187,6 +213,7 @@
5:1229:0:55:1 //Set volume digit 7: 7 (KeyDown)
5:1229:0:103:1 //Set volume digit 7: NUM 7 (KeyDown)
5:1230:0:56:1 //Set volume digit 8: 8 (KeyDown)
+5:1230:0:104:1 //Set volume digit 8: NUM 8 (KeyDown)
5:1231:0:57:1 //Set volume digit 9: 9 (KeyDown)
5:1231:0:105:1 //Set volume digit 9: NUM 9 (KeyDown)
5:1232:0:86:1 //Vol command - volume: V (KeyDown)
@@ -202,25 +229,37 @@
5:1242:0:71:1 //Vol command - Portamento: G (KeyDown)
5:1243:0:70:1 //Vol command - Portamento Up: F (KeyDown)
5:1244:0:69:1 //Vol command - Portamento Down: E (KeyDown)
+5:1245:0:186:1 //Vol command - Velocity: ; (KeyDown)
5:1245:1:186:1 //Vol command - Velocity: Shift+; (KeyDown)
5:1246:0:79:1 //Vol command - Offset: O (KeyDown)
//----( Pattern Context [bottom] - FX Col (6) )------------
-6:1294:0:92:1 //FX midi macro slide: Right Windows (KeyDown)
-6:1295:0:58:1 //FX pseudo-velocity (experimental): (KeyDown)
-6:1295:1:58:1 //FX pseudo-velocity (experimental): Shift+ (KeyDown)
+6:1294:0:220:1 //FX midi macro slide: \ (KeyDown)
+6:1295:1:186:1 //FX pseudo-velocity (experimental): Shift+; (KeyDown)
+6:1295:0:186:1 //FX pseudo-velocity (experimental): ; (KeyDown)
+6:1666:0:191:1 //FX parameter extension command: / (KeyDown)
//----( Pattern Context [bottom] - Param Col (7) )------------
7:1247:0:48:1 //FX Param digit 0: 0 (KeyDown)
+7:1247:0:96:1 //FX Param digit 0: NUM 0 (KeyDown)
7:1248:0:49:1 //FX Param digit 1: 1 (KeyDown)
+7:1248:0:97:1 //FX Param digit 1: NUM 1 (KeyDown)
7:1249:0:50:1 //FX Param digit 2: 2 (KeyDown)
+7:1249:0:98:1 //FX Param digit 2: NUM 2 (KeyDown)
7:1250:0:51:1 //FX Param digit 3: 3 (KeyDown)
+7:1250:0:99:1 //FX Param digit 3: NUM 3 (KeyDown)
7:1251:0:52:1 //FX Param digit 4: 4 (KeyDown)
+7:1251:0:100:1 //FX Param digit 4: NUM 4 (KeyDown)
7:1252:0:53:1 //FX Param digit 5: 5 (KeyDown)
+7:1252:0:101:1 //FX Param digit 5: NUM 5 (KeyDown)
7:1253:0:54:1 //FX Param digit 6: 6 (KeyDown)
+7:1253:0:102:1 //FX Param digit 6: NUM 6 (KeyDown)
7:1254:0:55:1 //FX Param digit 7: 7 (KeyDown)
+7:1254:0:103:1 //FX Param digit 7: NUM 7 (KeyDown)
7:1255:0:56:1 //FX Param digit 8: 8 (KeyDown)
+7:1255:0:104:1 //FX Param digit 8: NUM 8 (KeyDown)
7:1256:0:57:1 //FX Param digit 9: 9 (KeyDown)
+7:1256:0:105:1 //FX Param digit 9: NUM 9 (KeyDown)
7:1257:0:65:1 //FX Param digit A: A (KeyDown)
7:1258:0:66:1 //FX Param digit B: B (KeyDown)
7:1259:0:67:1 //FX Param digit C: C (KeyDown)
@@ -231,14 +270,34 @@
//----( Sample Context [bottom] (8) )------------
8:1380:2:84:1 //Trim sample around loop points: Ctrl+T (KeyDown)
8:1383:0:8:1 //Silence sample selection: BACKSPACE (KeyDown)
-8:1384:3:78:1 //Normalise Sample: Shift+Ctrl+N (KeyDown)
-8:1385:3:65:1 //Amplify Sample: Shift+Ctrl+A (KeyDown)
-8:1381:3:82:1 //Reverse sample: Shift+Ctrl+R (KeyDown)
+8:1384:1:78:1 //Normalise Sample: Shift+N (KeyDown)
+8:1385:6:65:1 //Amplify Sample: Ctrl+Alt+A (KeyDown)
+8:1385:2:77:1 //Amplify Sample: Ctrl+M (KeyDown)
+8:1381:6:82:1 //Reverse sample: Ctrl+Alt+R (KeyDown)
8:1382:0:46:1 //Delete sample selection: DELETE (KeyDown)
8:1386:0:107:1 //Zoom Out: NUM PLUS (KeyDown)
8:1387:0:109:1 //Zoom In: NUM SUB (KeyDown)
+8:1784:2:73:1 //Invert sample phase: Ctrl+I (KeyDown)
+8:1785:2:85:1 //Signed/Unsigned conversion: Ctrl+U (KeyDown)
+8:1790:2:68:1 //Remove DC Offset: Ctrl+D (KeyDown)
//----( Instrument Context [bottom] (9) )------------
+9:1825:1:9:5 //Select previous envelope point: Shift+TAB (KeyDown|KeyHold)
+9:1826:0:9:5 //Select next envelope point: TAB (KeyDown|KeyHold)
+9:1821:0:37:5 //Move envelope point left: LEFT (KeyDown|KeyHold)
+9:1822:0:39:5 //Move envelope point right: RIGHT (KeyDown|KeyHold)
+9:1823:0:38:5 //Move envelope point up: UP (KeyDown|KeyHold)
+9:1834:0:33:5 //Move envelope point up (big step): PGUP (KeyDown|KeyHold)
+9:1824:0:40:5 //Move envelope point down: DOWN (KeyDown|KeyHold)
+9:1835:0:34:5 //Move envelope point down (big step): PGDOWN (KeyDown|KeyHold)
+9:1827:0:45:1 //Insert envelope point: INSERT (KeyDown)
+9:1828:0:46:1 //Remove envelope point: DELETE (KeyDown)
+9:1828:0:8:1 //Remove envelope point: BACKSPACE (KeyDown)
+9:1829:0:36:1 //Set loop start: HOME (KeyDown)
+9:1830:0:35:1 //Set loop end: END (KeyDown)
+9:1831:2:36:1 //Set sustain loop start: Ctrl+HOME (KeyDown)
+9:1832:2:35:1 //Set sustain loop end: Ctrl+END (KeyDown)
+9:1833:2:82:1 //Toggle release node: Ctrl+R (KeyDown)
//----( Comments Context [bottom] (10) )------------
@@ -247,6 +306,11 @@
//----( Unknown Context (12) )------------
//----( Plugin GUI Context (13) )------------
+13:1763:0:37:5 //Previous plugin preset: LEFT (KeyDown|KeyHold)
+13:1764:0:39:5 //Next plugin preset: RIGHT (KeyDown|KeyHold)
+13:1782:0:38:5 //Plugin preset backward jump: UP (KeyDown|KeyHold)
+13:1783:0:40:5 //Plugin preset forward jump: DOWN (KeyDown|KeyHold)
+13:1765:2:82:1 //Randomize plugin parameters: Ctrl+R (KeyDown)
//----( General Context [top] (14) )------------
@@ -290,6 +354,6 @@
19:1816:0:57:5 //Pattern index digit 9: 9 (KeyDown|KeyHold)
19:1816:0:105:5 //Pattern index digit 9: NUM 9 (KeyDown|KeyHold)
19:1817:0:107:5 //Increase pattern index : NUM PLUS (KeyDown|KeyHold)
-19:1817:0:187:5 //Increase pattern index : + (KeyDown|KeyHold)
-19:1818:0:109:1 //Decrease pattern index: NUM SUB (KeyDown)
-19:1818:0:189:1 //Decrease pattern index: - (KeyDown)
+19:1817:0:187:5 //Increase pattern index : = (KeyDown|KeyHold)
+19:1818:0:109:5 //Decrease pattern index: NUM SUB (KeyDown|KeyHold)
+19:1818:0:189:5 //Decrease pattern index: - (KeyDown|KeyHold)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-16 23:55:35
|
Revision: 470
http://modplug.svn.sourceforge.net/modplug/?rev=470&view=rev
Author: saga-games
Date: 2010-01-16 23:55:23 +0000 (Sat, 16 Jan 2010)
Log Message:
-----------
[Mod] Changed readme file that's being used by the installer a bit (clarification of installation instructions and restricted file length to 80 characters)
Modified Paths:
--------------
trunk/OpenMPT/installer/packageTemplate/readme.txt
Modified: trunk/OpenMPT/installer/packageTemplate/readme.txt
===================================================================
--- trunk/OpenMPT/installer/packageTemplate/readme.txt 2010-01-16 19:48:28 UTC (rev 469)
+++ trunk/OpenMPT/installer/packageTemplate/readme.txt 2010-01-16 23:55:23 UTC (rev 470)
@@ -6,21 +6,25 @@
Migrating from OpenMPT 1.17
---------------------------
--If you have an existing installation of OpenMPT 1.17 and wish to
- re-use its settings, copy your mptrack.ini and plugin.cache
- to the directory into which you installed OpenMPT.
+If you have an existing installation of OpenMPT 1.17 and wish to re-use its
+settings, copy your mptrack.ini and plugin.cache to %appdata%\OpenMPT (or the
+directory into which you installed OpenMPT if you used portable mode).
Uninstallation
--------------
--An uninstaller is provided. It will also uninstall custom settings and tunings, so if you want to keep those, back them up first. Use "open_settings_folder.bat" to find them.
+An uninstaller is provided. It will also uninstall custom settings and tunings,
+so if you want to keep those, back them up first. Use "open_settings_folder.bat"
+to find them.
Making OpenMPT portable
-----------------------
-By default, OpenMPT stores its settings in %appdata%\OpenMPT. To avoid this, create a file called "mptrack.ini" in the same directory as mptrack.exe (if it does not exist yet) and add the following lines to this file:
+By default, OpenMPT stores its settings in %appdata%\OpenMPT. To avoid this,
+create a file called "mptrack.ini" in the same directory as mptrack.exe (if it
+does not exist yet) and add the following lines to this file:
[Paths]
UseAppDataDirectory=0
@@ -39,12 +43,15 @@
Release package contents:
-------------------------
-extraKeymaps(folder): Additional key bindings for the keyboard manager, available in several flavours (including MPT classic, FastTracker and Impulse Tracker) and country-specific layouts.
+extraKeymaps(folder): Additional key bindings for the keyboard manager,
+ available in several flavours (including MPT classic, FastTracker and
+ Impulse Tracker) and country-specific layouts.
soundtouch(folder): SoundTouch readme and copying.txt
history.txt: Version history.
mptrack.exe: Main executable.
open_settings_folder.bat: Opens settings folder.
-OpenMPT_SoundTouch_i16.dll: Slightly customized SoundTouch library used in time stretching feature.
+OpenMPT_SoundTouch_i16.dll: Slightly customized SoundTouch library used in time
+ stretching feature.
readme.txt:
unmo3.dll: Used in MO3-file import.
@@ -92,4 +99,9 @@
The MO3 software is free for non-commercial use; if anyone tries to
charge you for it, kick 'em where it hurts!
-TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF THIS SOFTWARE. YOU USE THIS SOFTWARE ENTIRELY AT YOUR OWN RISK.
+TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED "AS
+IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT
+NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
+PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD LIABLE FOR ANY DAMAGE THAT MAY
+RESULT FROM THE USE OF THIS SOFTWARE. YOU USE THIS SOFTWARE ENTIRELY AT YOUR OWN
+RISK.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-16 19:49:00
|
Revision: 469
http://modplug.svn.sourceforge.net/modplug/?rev=469&view=rev
Author: saga-games
Date: 2010-01-16 19:48:28 +0000 (Sat, 16 Jan 2010)
Log Message:
-----------
[New] Added InnoSetup script and resources for OpenMPT installer.
Added Paths:
-----------
trunk/OpenMPT/installer/
trunk/OpenMPT/installer/filetypes.iss
trunk/OpenMPT/installer/install-big.bmp
trunk/OpenMPT/installer/install-small.bmp
trunk/OpenMPT/installer/install.iss
trunk/OpenMPT/installer/mpt.ico
trunk/OpenMPT/installer/packageTemplate/
trunk/OpenMPT/installer/packageTemplate/readme.txt
Added: trunk/OpenMPT/installer/filetypes.iss
===================================================================
--- trunk/OpenMPT/installer/filetypes.iss (rev 0)
+++ trunk/OpenMPT/installer/filetypes.iss 2010-01-16 19:48:28 UTC (rev 469)
@@ -0,0 +1,96 @@
+; OpenMPT Install script - File associations
+; Written by Johannes Schultz
+; http://sagamusix.de/
+; http://sagagames.de/
+
+[Setup]
+ChangesAssociations=yes
+
+[Tasks]
+; common file extensions
+Name: "associate_common"; Description: "Associate OpenMPT with common module files"; GroupDescription: "File associations:";
+Name: "associate_common\mod"; Description: "ProTracker / Noise Tracker / etc. (MOD)";
+Name: "associate_common\s3m"; Description: "Scream Tracker 3 (S3M)";
+Name: "associate_common\xm"; Description: "Fasttracker 2 (XM)";
+Name: "associate_common\it"; Description: "Impulse Tracker (IT)";
+Name: "associate_common\itp"; Description: "Impulse Tracker Project (ITP)";
+Name: "associate_common\mptm"; Description: "OpenMPT (MPTM)";
+; same, but compressed
+Name: "associate_common\compressed"; Description: "Above when compressed (MDR, MDZ, S3Z, XMZ, ITZ, MPTMZ)";
+; less common
+Name: "associate_exotic"; Description: "Associate OpenMPT with less common module files"; GroupDescription: "File associations:";
+Name: "associate_exotic\669"; Description: "Composer 669 (669)";
+Name: "associate_exotic\amf"; Description: "ASYLUM Music Format / Advanced Music Format (AMF)";
+Name: "associate_exotic\ams"; Description: "Extreme Tracker (AMS)";
+Name: "associate_exotic\dbm"; Description: "DigiBooster (DBM)";
+Name: "associate_exotic\dmf"; Description: "X-Tracker (DMF)";
+Name: "associate_exotic\dsm"; Description: "DSIK (DSM)";
+Name: "associate_exotic\far"; Description: "Farandole Composer (FAR)";
+Name: "associate_exotic\gdm"; Description: "General Digital Music (GDM)";
+Name: "associate_exotic\imf"; Description: "Imago Orpheus (IMF)";
+Name: "associate_exotic\j2b"; Description: "Jazz Jackrabbit 2 Music (J2B)";
+Name: "associate_exotic\mdl"; Description: "DigiTracker (MDL)";
+Name: "associate_exotic\med"; Description: "OctaMED (MED)";
+Name: "associate_exotic\mo3"; Description: "MO3 compressed modules (MO3)";
+Name: "associate_exotic\mt2"; Description: "MadTracker 2 (MT2)";
+Name: "associate_exotic\mtm"; Description: "MultiTracker Modules (MTM)";
+Name: "associate_exotic\okt"; Description: "Oktalyzer (OKT)";
+Name: "associate_exotic\psm"; Description: "Epic Megagames MASI (PSM)";
+Name: "associate_exotic\ptm"; Description: "PolyTracker (PTM)";
+Name: "associate_exotic\stm"; Description: "Scream Tracker 2 (STM)";
+Name: "associate_exotic\ult"; Description: "UltraTracker (ULT)";
+Name: "associate_exotic\umx"; Description: "Unreal Music (UMX)";
+Name: "associate_exotic\wow"; Description: "Grave Composer (WOW)";
+
+[Registry]
+; common file extensions
+Root: HKCR; Subkey: ".mod"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_common\mod
+Root: HKCR; Subkey: ".s3m"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_common\s3m
+Root: HKCR; Subkey: ".xm"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_common\xm
+Root: HKCR; Subkey: ".it"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_common\it
+Root: HKCR; Subkey: ".itp"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_common\itp
+Root: HKCR; Subkey: ".mptm"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_common\mptm
+; same, but compressed
+Root: HKCR; Subkey: ".mdr"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_common\compressed
+Root: HKCR; Subkey: ".mdz"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_common\compressed
+Root: HKCR; Subkey: ".s3z"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_common\compressed
+Root: HKCR; Subkey: ".xmz"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_common\compressed
+Root: HKCR; Subkey: ".itz"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_common\compressed
+Root: HKCR; Subkey: ".mptmz"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_common\compressed
+; less common
+Root: HKCR; Subkey: ".669"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\669
+Root: HKCR; Subkey: ".amf"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\amf
+Root: HKCR; Subkey: ".ams"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\ams
+Root: HKCR; Subkey: ".dbm"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\dbm
+Root: HKCR; Subkey: ".dmf"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\dmf
+Root: HKCR; Subkey: ".dsm"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\dsm
+Root: HKCR; Subkey: ".far"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\far
+Root: HKCR; Subkey: ".gdm"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\gdm
+Root: HKCR; Subkey: ".imf"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\imf
+Root: HKCR; Subkey: ".j2b"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\j2b
+Root: HKCR; Subkey: ".mdl"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\mdl
+Root: HKCR; Subkey: ".med"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\med
+Root: HKCR; Subkey: ".mo3"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\mo3
+Root: HKCR; Subkey: ".mt2"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\mt2
+Root: HKCR; Subkey: ".mtm"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\mtm
+Root: HKCR; Subkey: ".okt"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\okt
+Root: HKCR; Subkey: ".psm"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\psm
+Root: HKCR; Subkey: ".ptm"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\ptm
+Root: HKCR; Subkey: ".stm"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\stm
+Root: HKCR; Subkey: ".ult"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\ult
+Root: HKCR; Subkey: ".umx"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\umx
+Root: HKCR; Subkey: ".wow"; ValueType: string; ValueName: ""; ValueData: "OpenMPTFile"; Flags: uninsdeletevalue; Tasks: associate_exotic\wow
+
+; important (setup)
+Root: HKCR; Subkey: "OpenMPTFile"; ValueType: string; ValueName: ""; ValueData: "OpenMPT Module"; Flags: uninsdeletekey; Tasks: associate_common or associate_exotic
+Root: HKCR; Subkey: "OpenMPTFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\mpt.ico,0"; Tasks: associate_common or associate_exotic
+Root: HKCR; Subkey: "OpenMPTFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\mptrack.exe"" ""%1"""; Tasks: associate_common or associate_exotic
+
+[Files]
+; icon file (should be moved into EXE)
+Source: "mpt.ico"; DestDir: "{app}"; Flags: ignoreversion
+
+
+
+
+
Added: trunk/OpenMPT/installer/install-big.bmp
===================================================================
(Binary files differ)
Property changes on: trunk/OpenMPT/installer/install-big.bmp
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/OpenMPT/installer/install-small.bmp
===================================================================
(Binary files differ)
Property changes on: trunk/OpenMPT/installer/install-small.bmp
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/OpenMPT/installer/install.iss
===================================================================
--- trunk/OpenMPT/installer/install.iss (rev 0)
+++ trunk/OpenMPT/installer/install.iss 2010-01-16 19:48:28 UTC (rev 469)
@@ -0,0 +1,105 @@
+; OpenMPT Install script
+; Written by Johannes Schultz
+; http://sagamusix.de/
+; http://sagagames.de/
+
+[Setup]
+AppId=OpenMPT
+AppVerName=OpenMPT 1.18
+AppVersion=1.18.00.00
+AppName=OpenMPT
+AppPublisher=OpenMPT Devs / Olivier Lapicque
+AppPublisherURL=http://www.openmpt.com/
+AppSupportURL=http://www.openmpt.com/
+AppUpdatesURL=http://www.openmpt.com/
+DefaultDirName={pf}\OpenMPT
+DefaultGroupName=OpenMPT
+AllowNoIcons=yes
+OutputDir=.\
+OutputBaseFilename=OpenMPT Setup
+Compression=lzma
+SolidCompression=yes
+WizardImageFile=install-big.bmp
+WizardSmallImageFile=install-small.bmp
+;LicenseFile=license.txt
+;CreateUninstallRegKey=no
+
+[Tasks]
+; icons and install mode
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";
+Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
+Name: "portable"; Description: "Use program directory to store configuration in (portable mode)"; GroupDescription: "Options:"; Flags: unchecked
+; file associations - put this below all other [tasks]!
+#include "filetypes.iss"
+
+[Languages]
+Name: "en"; MessagesFile: "compiler:Default.isl"
+
+[Files]
+; you may want to change the base paths here
+
+; preserve file type order for best solid compression results (first binary, then text)
+; home folder
+Source: "..\mptrack\bin\mptrack.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "..\mptrack\bin\OpenMPT_SoundTouch_i16.dll"; DestDir: "{app}"; Flags: ignoreversion
+Source: "..\mptrack\bin\unmo3.dll"; DestDir: "{app}"; Flags: ignoreversion
+Source: "packageTemplate\readme.txt"; DestDir: "{app}"; Flags: ignoreversion
+Source: "..\packageTemplate\history.txt"; DestDir: "{app}"; Flags: ignoreversion
+; soundtouch license stuff
+Source: "..\packageTemplate\SoundTouch\*.*"; DestDir: "{app}\SoundTouch"; Flags: ignoreversion
+; keymaps
+Source: "..\packageTemplate\extraKeymaps\*.*"; DestDir: "{app}\extraKeymaps"; Flags: ignoreversion
+
+[Dirs]
+; option dirs for non-portable mode
+Name: "{userappdata}\OpenMPT"; Tasks: not portable
+Name: "{userappdata}\OpenMPT\tunings"; Tasks: not portable
+; dirst for portable mode
+Name: "{app}\tunings"; Tasks: portable
+
+[Icons]
+; start menu
+Name: "{group}\{cm:LaunchProgram,OpenMPT}"; Filename: "{app}\mptrack.exe"
+Name: "{group}\{cm:UninstallProgram,OpenMPT}"; Filename: "{uninstallexe}"
+Name: "{group}\ModPlug Central"; Filename: "{app}\ModPlug Central.url"
+Name: "{group}\Configuration files"; Filename: "{userappdata}\OpenMPT\"; Tasks: not portable
+
+; app's directory (for ease of use)
+Name: "{app}\Configuration files"; Filename: "{userappdata}\OpenMPT\"; Tasks: not portable
+
+; desktop, quick launch
+Name: "{userdesktop}\OpenMPT"; Filename: "{app}\mptrack.exe"; Tasks: desktopicon
+Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\OpenMPT"; Filename: "{app}\mptrack.exe"; Tasks: quicklaunchicon
+
+[INI]
+; enable portable mode
+Filename: "{app}\mptrack.ini"; Section: "Paths"; Key: "UseAppDataDirectory"; String: "0"; Flags: uninsdeleteentry createkeyifdoesntexist; Tasks: portable
+; internet shortcut
+Filename: "{app}\ModPlug Central.url"; Section: "InternetShortcut"; Key: "URL"; String: "http://www.lpchip.com/modplug/"; Flags: createkeyifdoesntexist;
+
+[Run]
+; duh
+Filename: "{app}\mptrack.exe"; Description: "{cm:LaunchProgram,OpenMPT}"; Flags: nowait postinstall skipifsilent
+
+[UninstallDelete]
+; internet shortcut has to be deleted manually
+Type: files; Name: "{app}\ModPlug Central.url";
+; normal installation
+Type: files; Name: "{userappdata}\OpenMPT\mptrack.ini"; Tasks: not portable
+Type: files; Name: "{userappdata}\OpenMPT\plugin.cache"; Tasks: not portable
+Type: files; Name: "{userappdata}\OpenMPT\tunings\local_tunings.tc"; Tasks: not portable
+Type: dirifempty; Name: "{userappdata}\OpenMPT\tunings"; Tasks: not portable
+Type: dirifempty; Name: "{userappdata}\OpenMPT"; Tasks: not portable
+; portable installation
+Type: files; Name: "{app}\mptrack.ini"; Tasks: portable
+Type: files; Name: "{app}\plugin.cache"; Tasks: portable
+Type: files; Name: "{app}\tunings\local_tunings.tc"; Tasks: portable
+Type: dirifempty; Name: "{app}\tunings"; Tasks: portable
+
+
+
+
+
+
+
+
Added: trunk/OpenMPT/installer/mpt.ico
===================================================================
(Binary files differ)
Property changes on: trunk/OpenMPT/installer/mpt.ico
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/OpenMPT/installer/packageTemplate/readme.txt
===================================================================
--- trunk/OpenMPT/installer/packageTemplate/readme.txt (rev 0)
+++ trunk/OpenMPT/installer/packageTemplate/readme.txt 2010-01-16 19:48:28 UTC (rev 469)
@@ -0,0 +1,95 @@
+******************
+* OpenMPT 1.18 *
+******************
+
+
+Migrating from OpenMPT 1.17
+---------------------------
+
+-If you have an existing installation of OpenMPT 1.17 and wish to
+ re-use its settings, copy your mptrack.ini and plugin.cache
+ to the directory into which you installed OpenMPT.
+
+
+Uninstallation
+--------------
+
+-An uninstaller is provided. It will also uninstall custom settings and tunings, so if you want to keep those, back them up first. Use "open_settings_folder.bat" to find them.
+
+
+Making OpenMPT portable
+-----------------------
+
+By default, OpenMPT stores its settings in %appdata%\OpenMPT. To avoid this, create a file called "mptrack.ini" in the same directory as mptrack.exe (if it does not exist yet) and add the following lines to this file:
+[Paths]
+UseAppDataDirectory=0
+
+
+Changes
+-------
+
+See history.txt.
+
+
+Questions, comments, bug reports...
+-----------------------------------
+
+See forums at http://modplug.sourceforge.net/.
+
+
+Release package contents:
+-------------------------
+extraKeymaps(folder): Additional key bindings for the keyboard manager, available in several flavours (including MPT classic, FastTracker and Impulse Tracker) and country-specific layouts.
+soundtouch(folder): SoundTouch readme and copying.txt
+history.txt: Version history.
+mptrack.exe: Main executable.
+open_settings_folder.bat: Opens settings folder.
+OpenMPT_SoundTouch_i16.dll: Slightly customized SoundTouch library used in time stretching feature.
+readme.txt:
+unmo3.dll: Used in MO3-file import.
+
+Misc:
+-----
+
+OpenMPT is partially under the following license:
+
+> Copyright (c) 2004-2010, OpenMPT contributors
+> Copyright (c) 1997-2003, Olivier Lapicque
+> All rights reserved.
+>
+> Redistribution and use in source and binary forms, with or without
+> modification, are permitted provided that the following conditions are met:
+> * Redistributions of source code must retain the above copyright
+> notice, this list of conditions and the following disclaimer.
+> * Redistributions in binary form must reproduce the above copyright
+> notice, this list of conditions and the following disclaimer in the
+> documentation and/or other materials provided with the distribution.
+> * Neither the name of the OpenMPT project nor the
+> names of its contributors may be used to endorse or promote products
+> derived from this software without specific prior written permission.
+>
+> THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY
+> EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+> WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+> DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+> DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+> (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+> LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+> ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+> (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+> SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ASIO is a trademark and software of Steinberg Media Technologies GmbH
+VST is a trademark of Steinberg Media Technologies GmbH
+
+For more information about SoundTouch, see folder SoundTouch.
+
+unmo3.dll
+---------
+Copyright (c) 2001-2009 Ian Luck. All rights reserved
+
+The MO3 software is free for non-commercial use; if anyone tries to
+charge you for it, kick 'em where it hurts!
+
+TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF THIS SOFTWARE. YOU USE THIS SOFTWARE ENTIRELY AT YOUR OWN RISK.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-16 14:48:49
|
Revision: 468
http://modplug.svn.sourceforge.net/modplug/?rev=468&view=rev
Author: saga-games
Date: 2010-01-16 14:48:39 +0000 (Sat, 16 Jan 2010)
Log Message:
-----------
[Imp] Default max. polyphony value is 256 (maximum) now.
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Sndmix.cpp
Modified: trunk/OpenMPT/soundlib/Sndmix.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndmix.cpp 2010-01-16 11:44:43 UTC (rev 467)
+++ trunk/OpenMPT/soundlib/Sndmix.cpp 2010-01-16 14:48:39 UTC (rev 468)
@@ -33,7 +33,7 @@
// SNDMIX: These are global flags for playback control
UINT CSoundFile::m_nStereoSeparation = 128;
LONG CSoundFile::m_nStreamVolume = 0x8000;
-UINT CSoundFile::m_nMaxMixChannels = 32;
+UINT CSoundFile::m_nMaxMixChannels = MAX_CHANNELS;
// Mixing Configuration (SetWaveConfig)
DWORD CSoundFile::gdwSysInfo = 0;
DWORD CSoundFile::gnChannels = 1;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rel...@us...> - 2010-01-16 11:44:53
|
Revision: 467
http://modplug.svn.sourceforge.net/modplug/?rev=467&view=rev
Author: relabsoluness
Date: 2010-01-16 11:44:43 +0000 (Sat, 16 Jan 2010)
Log Message:
-----------
[Fix] Internal: Tentative fix to compile error in VC08 with SoundTouch resources.
[Mod] Key bindings: Change to default key bindings.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb
trunk/OpenMPT/soundtouch/soundtouch.vcproj
trunk/OpenMPT/soundtouch/soundtouch_08.vcproj
Added Paths:
-----------
trunk/OpenMPT/soundtouch/resource.h
Modified: trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb
===================================================================
--- trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb 2010-01-15 21:15:34 UTC (rev 466)
+++ trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb 2010-01-16 11:44:43 UTC (rev 467)
@@ -168,8 +168,8 @@
3:1316:1:16:1 //Chord Modifier: Shift (KeyDown)
3:1200:0:192:1 //Note cut: ' (KeyDown)
3:1201:0:187:1 //Note off: = (KeyDown)
-3:1788:1:226:1 //Parameter control(MPTm only): Shift+< (KeyDown)
-3:1789:0:226:1 //Parameter control(smooth)(MPTm only): < (KeyDown)
+3:1788:1:189:1 //Parameter control(MPTm only): Shift+- (KeyDown)
+3:1789:0:189:1 //Parameter control(smooth)(MPTm only): - (KeyDown)
//----( Pattern Context [bottom] - Ins Col (4) )------------
4:1202:0:96:1 //Set instrument digit 0: NUM 0 (KeyDown)
Added: trunk/OpenMPT/soundtouch/resource.h
===================================================================
--- trunk/OpenMPT/soundtouch/resource.h (rev 0)
+++ trunk/OpenMPT/soundtouch/resource.h 2010-01-16 11:44:43 UTC (rev 467)
@@ -0,0 +1,15 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by SoundTouchDLL.rc
+//
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 101
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1001
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
Modified: trunk/OpenMPT/soundtouch/soundtouch.vcproj
===================================================================
--- trunk/OpenMPT/soundtouch/soundtouch.vcproj 2010-01-15 21:15:34 UTC (rev 466)
+++ trunk/OpenMPT/soundtouch/soundtouch.vcproj 2010-01-16 11:44:43 UTC (rev 467)
@@ -191,6 +191,9 @@
RelativePath=".\RateTransposer.h">
</File>
<File
+ RelativePath=".\resource.h">
+ </File>
+ <File
RelativePath=".\SoundTouch.h">
</File>
<File
Modified: trunk/OpenMPT/soundtouch/soundtouch_08.vcproj
===================================================================
--- trunk/OpenMPT/soundtouch/soundtouch_08.vcproj 2010-01-15 21:15:34 UTC (rev 466)
+++ trunk/OpenMPT/soundtouch/soundtouch_08.vcproj 2010-01-16 11:44:43 UTC (rev 467)
@@ -277,6 +277,10 @@
>
</File>
<File
+ RelativePath=".\resource.h"
+ >
+ </File>
+ <File
RelativePath=".\SoundTouch.h"
>
</File>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-15 21:16:04
|
Revision: 466
http://modplug.svn.sourceforge.net/modplug/?rev=466&view=rev
Author: saga-games
Date: 2010-01-15 21:15:34 +0000 (Fri, 15 Jan 2010)
Log Message:
-----------
[Imp] Treeview: Right-click options for mod items: "View" and "Close"
[Imp] Sample editor: When using timestretch, loop points could exceed sample length in some cases.
[Mod] Updated keymap NO_mpt_classic_(rakib).mkb
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Ctrl_smp.cpp
trunk/OpenMPT/mptrack/View_tre.cpp
trunk/OpenMPT/mptrack/View_tre.h
trunk/OpenMPT/mptrack/resource.h
trunk/OpenMPT/packageTemplate/extraKeymaps/NO_mpt_classic_(rakib).mkb
Modified: trunk/OpenMPT/mptrack/Ctrl_smp.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2010-01-14 20:46:32 UTC (rev 465)
+++ trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2010-01-15 21:15:34 UTC (rev 466)
@@ -1711,19 +1711,17 @@
// Time stretching
if(IsDlgButtonChecked(IDC_CHECK3)){
- //rewbs.timeStretchMods
UpdateData(TRUE); //Ensure m_dTimeStretchRatio is up-to-date with textbox content
errorcode = TimeStretch(m_dTimeStretchRatio/100.0);
//Update loop points only if no error occured.
if(errorcode == 0)
{
- pSmp->nLoopStart *= m_dTimeStretchRatio/100.0;
- pSmp->nLoopEnd *= m_dTimeStretchRatio/100.0;
- pSmp->nSustainStart *= m_dTimeStretchRatio/100.0;
- pSmp->nSustainEnd *= m_dTimeStretchRatio/100.0;
+ pSmp->nLoopStart = min(pSmp->nLoopStart * (m_dTimeStretchRatio / 100.0), pSmp->nLength);
+ pSmp->nLoopEnd = min(pSmp->nLoopEnd * (m_dTimeStretchRatio/100.0), pSmp->nLength);
+ pSmp->nSustainStart = min(pSmp->nSustainStart * (m_dTimeStretchRatio/100.0), pSmp->nLength);
+ pSmp->nSustainEnd = min(pSmp->nSustainEnd * (m_dTimeStretchRatio/100.0), pSmp->nLength);
}
- //end rewbs.timeStretchMods
}
// Pitch shifting
Modified: trunk/OpenMPT/mptrack/View_tre.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_tre.cpp 2010-01-14 20:46:32 UTC (rev 465)
+++ trunk/OpenMPT/mptrack/View_tre.cpp 2010-01-15 21:15:34 UTC (rev 466)
@@ -76,6 +76,7 @@
ON_COMMAND(ID_MODTREE_DUPLICATE, OnDuplicateTreeItem)
ON_COMMAND(ID_MODTREE_INSERT, OnInsertTreeItem)
ON_COMMAND(ID_MODTREE_SWITCHTO, OnSwitchToTreeItem)
+ ON_COMMAND(ID_MODTREE_CLOSE, OnCloseItem)
// -> CODE#0023
// -> DESC="IT project files (.itp)"
@@ -2295,6 +2296,12 @@
SelectItem(hItem);
switch(modItemType)
{
+ case MODITEM_HDR_SONG:
+ nDefault = ID_MODTREE_EXECUTE;
+ AppendMenu(hMenu, MF_STRING, nDefault, "&View");
+ AppendMenu(hMenu, MF_STRING, ID_MODTREE_CLOSE, "&Close");
+ break;
+
case MODITEM_COMMENTS:
nDefault = ID_MODTREE_EXECUTE;
AppendMenu(hMenu, MF_STRING, nDefault, "&View Comments");
@@ -3205,3 +3212,13 @@
GetItem(&tvi);
return (tvi.state & TVIS_EXPANDED) != 0 ? true : false;
}
+
+
+void CModTree::OnCloseItem()
+//--------------------------
+{
+ HTREEITEM hItem = GetSelectedItem();
+ CModDoc *pModDoc = GetDocumentFromItem(hItem);
+ if(pModDoc == nullptr) return;
+ pModDoc->OnCloseDocument();
+}
Modified: trunk/OpenMPT/mptrack/View_tre.h
===================================================================
--- trunk/OpenMPT/mptrack/View_tre.h 2010-01-14 20:46:32 UTC (rev 465)
+++ trunk/OpenMPT/mptrack/View_tre.h 2010-01-15 21:15:34 UTC (rev 466)
@@ -209,6 +209,7 @@
afx_msg void OnDuplicateTreeItem();
afx_msg void OnInsertTreeItem();
afx_msg void OnSwitchToTreeItem(); // hack for sequence items to avoid double-click action
+ afx_msg void OnCloseItem();
// -> CODE#0023
// -> DESC="IT project files (.itp)"
Modified: trunk/OpenMPT/mptrack/resource.h
===================================================================
--- trunk/OpenMPT/mptrack/resource.h 2010-01-14 20:46:32 UTC (rev 465)
+++ trunk/OpenMPT/mptrack/resource.h 2010-01-15 21:15:34 UTC (rev 466)
@@ -1177,15 +1177,17 @@
#define ID_EDIT_PUSHFORWARDPASTE 59239
#define ID_EDIT_SPLITKEYBOARDSETTINGS 59240
#define ID_EDIT_PASTESPECIAL 59241
+#define ID_CHANGE_PCNOTE_PARAM 59242
+#define ID_MODTREE_CLOSE 60243
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_3D_CONTROLS 1
-#define _APS_NEXT_RESOURCE_VALUE 524
-#define _APS_NEXT_COMMAND_VALUE 59242
-#define _APS_NEXT_CONTROL_VALUE 2413
+#define _APS_NEXT_RESOURCE_VALUE 526
+#define _APS_NEXT_COMMAND_VALUE 60244
+#define _APS_NEXT_CONTROL_VALUE 2426
#define _APS_NEXT_SYMED_VALUE 901
#endif
#endif
Modified: trunk/OpenMPT/packageTemplate/extraKeymaps/NO_mpt_classic_(rakib).mkb
===================================================================
--- trunk/OpenMPT/packageTemplate/extraKeymaps/NO_mpt_classic_(rakib).mkb 2010-01-14 20:46:32 UTC (rev 465)
+++ trunk/OpenMPT/packageTemplate/extraKeymaps/NO_mpt_classic_(rakib).mkb 2010-01-15 21:15:34 UTC (rev 466)
@@ -22,6 +22,7 @@
0:1359:2:90:1 //Undo: Ctrl+Z (KeyDown)
0:1360:2:88:1 //Cut: Ctrl+X (KeyDown)
0:1361:2:67:1 //Copy: Ctrl+C (KeyDown)
+0:1361:2:45:1 //Copy: Ctrl+INS (KeyDown)
0:1362:2:86:1 //Paste: Ctrl+V (KeyDown)
0:1362:1:45:1 //Paste: Shift+INS (KeyDown)
0:1364:2:53:1 //SelectAll: Ctrl+5 (KeyDown)
@@ -68,8 +69,7 @@
2:1048:2:35:1 //Go to last row: Ctrl+END (KeyDown)
2:1049:6:35:1 //Go to last row of last channel: Ctrl+Alt+END (KeyDown)
2:1050:1:16:1 //Selection key: Shift+SKIFT (KeyDown)
-2:1051:2:17:1 //Copy select key: Ctrl (KeyDown)
-2:1011:2:65:1 //Select channel / Select all: Ctrl+A (KeyDown)
+2:1011:2:76:1 //Select channel / Select all: Ctrl+L (KeyDown)
2:1663:0:122:1 //Toggle follow song: F11 (KeyDown)
2:1003:0:13:5 //Quick copy: ENTER (KeyDown|KeyHold)
2:1004:0:32:5 //Quick paste: MELLOMROM (KeyDown|KeyHold)
@@ -83,6 +83,7 @@
2:1005:0:121:5 //Mute current channel: F10 (KeyDown|KeyHold)
2:1006:2:121:5 //Solo current channel: Ctrl+F10 (KeyDown|KeyHold)
2:1007:2:81:5 //Transpose +1: Ctrl+Q (KeyDown|KeyHold)
+2:1008:2:65:5 //Transpose -1: Ctrl+A (KeyDown|KeyHold)
2:1009:3:81:5 //Transpose +12: Shift+Ctrl+Q (KeyDown|KeyHold)
2:1010:3:65:5 //Transpose -12: Shift+Ctrl+A (KeyDown|KeyHold)
2:1012:2:77:1 //Amplify selection: Ctrl+M (KeyDown)
@@ -114,6 +115,7 @@
3:1070:0:85:1 //Base octave F#: U (KeyDown)
3:1071:0:73:1 //Base octave G: I (KeyDown)
3:1072:0:79:1 //Base octave G#: O (KeyDown)
+3:1073:0:80:1 //Base octave A: P (KeyDown)
3:1074:0:221:1 //Base octave A#: \xE5 (KeyDown)
3:1075:0:186:1 //Base octave B: T\xD8DLER (KeyDown)
3:1076:0:65:1 //Base octave +1 C: A (KeyDown)
@@ -137,8 +139,8 @@
3:1094:0:77:1 //Base octave +2 F#: M (KeyDown)
3:1095:0:188:1 //Base octave +2 G: , (KeyDown)
3:1096:0:190:1 //Base octave +2 G#: . (KeyDown)
+3:1097:0:189:1 //Base octave +2 A: - (KeyDown)
3:1212:0:48:1 //Set octave 0: 0 (KeyDown)
-3:1212:0:96:1 //Set octave 0: NUM 0 (KeyDown)
3:1213:0:49:1 //Set octave 1: 1 (KeyDown)
3:1213:0:97:1 //Set octave 1: NUM 1 (KeyDown)
3:1214:0:50:1 //Set octave 2: 2 (KeyDown)
@@ -158,9 +160,9 @@
3:1221:0:57:1 //Set octave 9: 9 (KeyDown)
3:1221:0:105:1 //Set octave 9: NUM 9 (KeyDown)
3:1316:1:16:1 //Chord Modifier: Shift+SKIFT (KeyDown)
-3:1667:0:219:1 //Note Cut (don't remember instrument): \ (KeyDown)
-3:1668:0:187:1 //Note Off (don't remember instrument): + (KeyDown)
-3:1792:0:226:1 //Note Fade (don't remember instrument): < (KeyDown)
+3:1200:0:219:1 //Note Cut: \ (KeyDown)
+3:1201:0:187:1 //Note Off: + (KeyDown)
+3:1791:1:219:1 //Note Fade: Shift+\ (KeyDown)
//----( Pattern Context [bottom] - Ins Col (4) )------------
4:1202:0:96:1 //Set instrument digit 0: NUM 0 (KeyDown)
@@ -253,9 +255,9 @@
//----( Sample Context [bottom] (8) )------------
8:1380:2:84:1 //Trim sample around loop points: Ctrl+T (KeyDown)
-8:1384:3:78:1 //Normalise Sample: Shift+Ctrl+N (KeyDown)
-8:1385:2:65:1 //Amplify Sample: Ctrl+A (KeyDown)
-8:1381:2:82:1 //Reverse sample: Ctrl+R (KeyDown)
+8:1383:0:8:1 //Silence sample selection: TILBAKE (KeyDown)
+8:1385:3:65:1 //Amplify Sample: Shift+Ctrl+A (KeyDown)
+8:1381:3:82:1 //Reverse sample: Shift+Ctrl+R (KeyDown)
8:1382:0:46:1 //Delete sample selection: DEL (KeyDown)
8:1386:0:107:1 //Zoom Out: NUM PLUSS (KeyDown)
8:1387:0:109:1 //Zoom In: NUM MINUS (KeyDown)
@@ -264,6 +266,21 @@
8:1790:2:68:1 //Remove DC Offset: Ctrl+D (KeyDown)
//----( Instrument Context [bottom] (9) )------------
+9:1825:1:9:5 //Select previous envelope point: Shift+TAB (KeyDown|KeyHold)
+9:1826:0:9:5 //Select next envelope point: TAB (KeyDown|KeyHold)
+9:1821:0:37:5 //Move envelope point left: PIL VENSTRE (KeyDown|KeyHold)
+9:1822:0:39:5 //Move envelope point right: PIL H\xD8YRE (KeyDown|KeyHold)
+9:1823:0:38:5 //Move envelope point up: PIL OPP (KeyDown|KeyHold)
+9:1834:0:33:5 //Move envelope point up (big step): PGUP (KeyDown|KeyHold)
+9:1824:0:40:5 //Move envelope point down: PIL NED (KeyDown|KeyHold)
+9:1835:0:34:5 //Move envelope point down (big step): PGDN (KeyDown|KeyHold)
+9:1827:0:45:5 //Insert envelope point: INS (KeyDown|KeyHold)
+9:1828:0:46:5 //Remove envelope point: DEL (KeyDown|KeyHold)
+9:1829:0:36:1 //Set loop start: HOME (KeyDown)
+9:1830:0:35:5 //Set loop end: END (KeyDown|KeyHold)
+9:1831:2:36:1 //Set sustain loop start: Ctrl+HOME (KeyDown)
+9:1832:2:35:1 //Set sustain loop end: Ctrl+END (KeyDown)
+9:1833:2:82:1 //Toggle release node: Ctrl+R (KeyDown)
//----( Comments Context [bottom] (10) )------------
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rel...@us...> - 2010-01-14 20:46:42
|
Revision: 465
http://modplug.svn.sourceforge.net/modplug/?rev=465&view=rev
Author: relabsoluness
Date: 2010-01-14 20:46:32 +0000 (Thu, 14 Jan 2010)
Log Message:
-----------
[Fix] Sample tab: Fix to possible crash if trying to use time stretching without SoundTouch DLL available.
[Fix] Internal: mptrack_08.vcproj wasn't updated in rev. 462.
[Imp] Keymaps: Updated default keybindings.
[Mod] Version: Changed version to 1.18.
[Mod] PackageTemplate: Update to history.txt.
[Mod] Misc: Removed unused DLL from version control, added version resource to SoundTouch DLL.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Ctrl_smp.cpp
trunk/OpenMPT/mptrack/Mptrack.cpp
trunk/OpenMPT/mptrack/Mptrack.h
trunk/OpenMPT/mptrack/mptrack.vcproj
trunk/OpenMPT/mptrack/mptrack_08.vcproj
trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb
trunk/OpenMPT/mptrack/version.h
trunk/OpenMPT/packageTemplate/History.txt
trunk/OpenMPT/soundtouch/soundtouch.vcproj
trunk/OpenMPT/soundtouch/soundtouch_08.vcproj
Added Paths:
-----------
trunk/OpenMPT/soundtouch/SoundTouchDLL.rc
Removed Paths:
-------------
trunk/OpenMPT/mptrack/bin/OpenMPT_SoundTouch.dll
Modified: trunk/OpenMPT/mptrack/Ctrl_smp.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2010-01-10 21:54:41 UTC (rev 464)
+++ trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2010-01-14 20:46:32 UTC (rev 465)
@@ -16,6 +16,7 @@
#include "smbPitchShift.cpp"
#pragma warning(default:4244) //"conversion from 'type1' to 'type2', possible loss of data"
#include "modsmp_ctrl.h"
+#include <Shlwapi.h>
#ifdef _DEBUG
#define new DEBUG_NEW
@@ -1799,7 +1800,11 @@
if (handleSt == NULL)
{
- handleSt = soundtouch_createInstance();
+ // Check whether the DLL file exists.
+ CString sPath;
+ sPath.Format(TEXT("%s%s"), CTrackApp::GetAppDirPath(), TEXT("OpenMPT_SoundTouch_i16.dll"));
+ if (sPath.GetLength() <= _MAX_PATH && PathFileExists(sPath) == TRUE)
+ handleSt = soundtouch_createInstance();
}
if (handleSt == NULL)
{
Modified: trunk/OpenMPT/mptrack/Mptrack.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Mptrack.cpp 2010-01-10 21:54:41 UTC (rev 464)
+++ trunk/OpenMPT/mptrack/Mptrack.cpp 2010-01-14 20:46:32 UTC (rev 465)
@@ -252,6 +252,8 @@
}
+TCHAR CTrackApp::m_szExePath[_MAX_PATH] = TEXT("");
+
/////////////////////////////////////////////////////////////////////////////
// MPTRACK Command Line options
Modified: trunk/OpenMPT/mptrack/Mptrack.h
===================================================================
--- trunk/OpenMPT/mptrack/Mptrack.h 2010-01-10 21:54:41 UTC (rev 464)
+++ trunk/OpenMPT/mptrack/Mptrack.h 2010-01-14 20:46:32 UTC (rev 465)
@@ -153,7 +153,7 @@
HANDLE m_hAlternateResourceHandle;
// Default macro configuration
MODMIDICFG m_MidiCfg;
- TCHAR m_szExePath[_MAX_PATH];
+ static TCHAR m_szExePath[_MAX_PATH];
TCHAR m_szConfigDirectory[_MAX_PATH];
TCHAR m_szConfigFileName[_MAX_PATH];
TCHAR m_szPluginCacheFileName[_MAX_PATH];
@@ -175,6 +175,7 @@
static VOID SetAsProject(BOOL n) { m_nProject = n; }
// -! NEW_FEATURE#0023
+ static LPCTSTR GetAppDirPath() {return m_szExePath;} // Returns '\'-ended executable directory path.
static UINT GetDefaultDocType() { return m_nDefaultDocType; }
static VOID SetDefaultDocType(UINT n) { m_nDefaultDocType = n; }
static LPMIDILIBSTRUCT GetMidiLibrary() { return glpMidiLibrary; }
Deleted: trunk/OpenMPT/mptrack/bin/OpenMPT_SoundTouch.dll
===================================================================
(Binary files differ)
Modified: trunk/OpenMPT/mptrack/mptrack.vcproj
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.vcproj 2010-01-10 21:54:41 UTC (rev 464)
+++ trunk/OpenMPT/mptrack/mptrack.vcproj 2010-01-14 20:46:32 UTC (rev 465)
@@ -54,7 +54,7 @@
LinkIncremental="2"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories=""
- DelayLoadDLLs="OpenMPT_soundtouch_i16.dll"
+ DelayLoadDLLs="OpenMPT_SoundTouch_i16.dll"
GenerateDebugInformation="TRUE"
AssemblyDebug="1"
ProgramDatabaseFile=".\Debug/mptrack.pdb"
@@ -132,7 +132,7 @@
LinkIncremental="1"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories=""
- DelayLoadDLLs="OpenMPT_soundtouch_i16.dll"
+ DelayLoadDLLs="OpenMPT_SoundTouch_i16.dll"
GenerateDebugInformation="TRUE"
GenerateMapFile="FALSE"
MapFileName=".\Release/mptrack.map"
Modified: trunk/OpenMPT/mptrack/mptrack_08.vcproj
===================================================================
--- trunk/OpenMPT/mptrack/mptrack_08.vcproj 2010-01-10 21:54:41 UTC (rev 464)
+++ trunk/OpenMPT/mptrack/mptrack_08.vcproj 2010-01-14 20:46:32 UTC (rev 465)
@@ -89,7 +89,7 @@
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=""
- DelayLoadDLLs="OpenMPT_soundtouch.dll"
+ DelayLoadDLLs="OpenMPT_SoundTouch_i16.dll"
GenerateDebugInformation="true"
AssemblyDebug="1"
ProgramDatabaseFile=".\Debug/mptrack.pdb"
@@ -195,7 +195,7 @@
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=""
- DelayLoadDLLs="OpenMPT_soundtouch.dll"
+ DelayLoadDLLs="OpenMPT_SoundTouch_i16.dll"
GenerateDebugInformation="true"
GenerateMapFile="false"
MapFileName=".\Release/mptrack.map"
Modified: trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb
===================================================================
--- trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb 2010-01-10 21:54:41 UTC (rev 464)
+++ trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb 2010-01-14 20:46:32 UTC (rev 465)
@@ -8,6 +8,7 @@
0:1347:2:78:1 //File/New: Ctrl+N (KeyDown)
0:1346:2:79:1 //File/Open: Ctrl+O (KeyDown)
0:1349:2:83:1 //File/Save: Ctrl+S (KeyDown)
+0:1350:3:83:1 //File/Save As: Shift+Ctrl+S (KeyDown)
0:1030:0:116:1 //Play song/Pause song: F5 (KeyDown)
0:1031:0:119:1 //Pause song: F8 (KeyDown)
0:1375:0:27:1 //Stop Song: ESC (KeyDown)
@@ -21,6 +22,9 @@
0:1361:2:45:1 //Copy: Ctrl+INSERT (KeyDown)
0:1362:2:86:1 //Paste: Ctrl+V (KeyDown)
0:1362:1:45:1 //Paste: Shift+INSERT (KeyDown)
+0:1363:1:86:1 //Mix Paste: Shift+V (KeyDown)
+0:1793:3:86:1 //Paste Flood: Shift+Ctrl+V (KeyDown)
+0:1820:6:86:1 //Push Forward Paste: Ctrl+Alt+V (KeyDown)
0:1364:2:53:1 //SelectAll: Ctrl+5 (KeyDown)
0:1365:2:70:1 //Find: Ctrl+F (KeyDown)
0:1366:0:114:1 //Find Next: F3 (KeyDown)
@@ -31,6 +35,7 @@
0:1025:1:120:1 //View Comments: Shift+F9 (KeyDown)
0:1368:2:113:1 //Toggle Tree View: Ctrl+F2 (KeyDown)
0:1369:2:112:1 //View Options: Ctrl+F1 (KeyDown)
+0:1781:2:114:1 //View MIDI mapping: Ctrl+F3 (KeyDown)
0:1370:0:112:1 //Help (to do): F1 (KeyDown)
0:1032:2:111:5 //Previous instrument: Ctrl+NUM DIVIDE (KeyDown|KeyHold)
0:1032:2:38:5 //Previous instrument: Ctrl+UP (KeyDown|KeyHold)
@@ -76,8 +81,12 @@
2:1685:2:9:1 //Switch to order list: Ctrl+TAB (KeyDown)
2:1662:6:80:1 //Toggle channel's plugin editor: Ctrl+Alt+P (KeyDown)
2:1062:0:93:1 //Show note properties: Application (KeyDown)
+2:1819:2:69:1 //Split Keyboard Settings dialog: Ctrl+E (KeyDown)
+2:1776:6:32:1 //Toggle loop pattern: Ctrl+Alt+SPACE (KeyDown)
+2:1780:2:84:1 //Show playback time at current row: Ctrl+T (KeyDown)
2:1005:0:121:5 //Mute current channel: F10 (KeyDown|KeyHold)
2:1006:2:121:5 //Solo current channel: Ctrl+F10 (KeyDown|KeyHold)
+2:1786:2:82:1 //Reset channel: Ctrl+R (KeyDown)
2:1007:2:81:5 //Transpose +1: Ctrl+Q (KeyDown|KeyHold)
2:1008:2:65:5 //Transpose -1: Ctrl+A (KeyDown|KeyHold)
2:1009:3:81:5 //Transpose +12: Shift+Ctrl+Q (KeyDown|KeyHold)
@@ -159,6 +168,8 @@
3:1316:1:16:1 //Chord Modifier: Shift (KeyDown)
3:1200:0:192:1 //Note cut: ' (KeyDown)
3:1201:0:187:1 //Note off: = (KeyDown)
+3:1788:1:226:1 //Parameter control(MPTm only): Shift+< (KeyDown)
+3:1789:0:226:1 //Parameter control(smooth)(MPTm only): < (KeyDown)
//----( Pattern Context [bottom] - Ins Col (4) )------------
4:1202:0:96:1 //Set instrument digit 0: NUM 0 (KeyDown)
@@ -219,7 +230,6 @@
//----( Pattern Context [bottom] - FX Col (6) )------------
6:1294:0:220:1 //FX midi macro slide: \ (KeyDown)
-6:1295:1:186:1 //FX pseudo-velocity (experimental): Shift+; (KeyDown)
//----( Pattern Context [bottom] - Param Col (7) )------------
7:1247:0:48:1 //FX Param digit 0: 0 (KeyDown)
@@ -252,13 +262,32 @@
//----( Sample Context [bottom] (8) )------------
8:1380:2:84:1 //Trim sample around loop points: Ctrl+T (KeyDown)
8:1383:0:8:1 //Silence sample selection: BACKSPACE (KeyDown)
+8:1384:1:78:1 //Normalise Sample: Shift+N (KeyDown)
8:1385:3:65:1 //Amplify Sample: Shift+Ctrl+A (KeyDown)
8:1381:3:82:1 //Reverse sample: Shift+Ctrl+R (KeyDown)
8:1382:0:46:1 //Delete sample selection: DELETE (KeyDown)
8:1386:0:107:1 //Zoom Out: NUM PLUS (KeyDown)
8:1387:0:109:1 //Zoom In: NUM SUB (KeyDown)
+8:1784:2:73:1 //Invert sample phase: Ctrl+I (KeyDown)
+8:1785:2:85:1 //Signed/Unsigned conversion: Ctrl+U (KeyDown)
+8:1790:2:68:1 //Remove DC Offset: Ctrl+D (KeyDown)
//----( Instrument Context [bottom] (9) )------------
+9:1825:1:9:5 //Select previous envelope point: Shift+TAB (KeyDown|KeyHold)
+9:1826:0:9:5 //Select next envelope point: TAB (KeyDown|KeyHold)
+9:1821:0:37:5 //Move envelope point left: LEFT (KeyDown|KeyHold)
+9:1822:0:39:5 //Move envelope point right: RIGHT (KeyDown|KeyHold)
+9:1823:0:38:5 //Move envelope point up: UP (KeyDown|KeyHold)
+9:1834:0:33:5 //Move envelope point up (big step): PG UP (KeyDown|KeyHold)
+9:1824:0:40:5 //Move envelope point down: DOWN (KeyDown|KeyHold)
+9:1835:0:34:5 //Move envelope point down (big step): PG DN (KeyDown|KeyHold)
+9:1827:0:45:5 //Insert envelope point: INSERT (KeyDown|KeyHold)
+9:1828:0:46:5 //Remove envelope point: DELETE (KeyDown|KeyHold)
+9:1829:0:36:1 //Set loop start: HOME (KeyDown)
+9:1830:0:35:1 //Set loop end: END (KeyDown)
+9:1831:2:36:1 //Set sustain loop start: Ctrl+HOME (KeyDown)
+9:1832:2:35:1 //Set sustain loop end: Ctrl+END (KeyDown)
+9:1833:2:82:1 //Toggle release node: Ctrl+R (KeyDown)
//----( Comments Context [bottom] (10) )------------
@@ -267,6 +296,11 @@
//----( Unknown Context (12) )------------
//----( Plugin GUI Context (13) )------------
+13:1763:2:109:5 //Previous plugin preset: Ctrl+NUM SUB (KeyDown|KeyHold)
+13:1764:2:107:5 //Next plugin preset: Ctrl+NUM PLUS (KeyDown|KeyHold)
+13:1782:0:109:5 //Plugin preset backward jump: NUM SUB (KeyDown|KeyHold)
+13:1783:0:107:5 //Plugin preset forward jump: NUM PLUS (KeyDown|KeyHold)
+13:1765:2:82:5 //Randomize plugin parameters: Ctrl+R (KeyDown|KeyHold)
//----( General Context [top] (14) )------------
Modified: trunk/OpenMPT/mptrack/version.h
===================================================================
--- trunk/OpenMPT/mptrack/version.h 2010-01-10 21:54:41 UTC (rev 464)
+++ trunk/OpenMPT/mptrack/version.h 2010-01-14 20:46:32 UTC (rev 465)
@@ -13,9 +13,9 @@
//Version definitions. The only thing that needs to be changed when changing version number.
#define VER_MAJORMAJOR 1
-#define VER_MAJOR 17
-#define VER_MINOR 03
-#define VER_MINORMINOR 03
+#define VER_MAJOR 18
+#define VER_MINOR 00
+#define VER_MINORMINOR 00
//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 2010-01-10 21:54:41 UTC (rev 464)
+++ trunk/OpenMPT/packageTemplate/History.txt 2010-01-14 20:46:32 UTC (rev 465)
@@ -76,6 +76,7 @@
/ <Jojo> Removed time stretcher's / pitch shifter's preview function as it's unnecessary now.
. <Jojo> When going down close to 0 Hz in the sample editor, the sample freq wrapped around to the maximum value.
. <Jojo> Insert Silence: Loop points were not updated when adding silence at the beginning of the sample
+ . <re> Actions such as time stretching and undo could trigger sample play.
Instrument tab
. <Jojo> When playing an instrument and disabling its envelopes at the same time, the toggled envelopes are stopped (prevents filter envelope from turning into a pitch envelope).
Added: trunk/OpenMPT/soundtouch/SoundTouchDLL.rc
===================================================================
--- trunk/OpenMPT/soundtouch/SoundTouchDLL.rc (rev 0)
+++ trunk/OpenMPT/soundtouch/SoundTouchDLL.rc 2010-01-14 20:46:32 UTC (rev 465)
@@ -0,0 +1,114 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Finnish resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FIN)
+#ifdef _WIN32
+LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,5,0,0
+ PRODUCTVERSION 1,5,0,0
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "000004b0"
+ BEGIN
+ VALUE "Comments", "This is a slightly customized build of SoundTouch DLL for OpenMPT using INTEGER_SAMPLES."
+ VALUE "FileDescription", "SoundTouch Dynamic Link Library"
+ VALUE "FileVersion", "1, 5, 0, 0"
+ VALUE "InternalName", "SoundTouch"
+ VALUE "LegalCopyright", "Copyright (C) Olli Parviainen 1999-2009"
+ VALUE "OriginalFilename", "OpenMPT_SoundTouch_i16.dll"
+ VALUE "ProductName", " SoundTouch Dynamic Link Library"
+ VALUE "ProductVersion", "1, 5, 0, 0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0, 1200
+ END
+END
+
+#endif // Finnish resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
Modified: trunk/OpenMPT/soundtouch/soundtouch.vcproj
===================================================================
--- trunk/OpenMPT/soundtouch/soundtouch.vcproj 2010-01-10 21:54:41 UTC (rev 464)
+++ trunk/OpenMPT/soundtouch/soundtouch.vcproj 2010-01-14 20:46:32 UTC (rev 465)
@@ -207,6 +207,9 @@
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
+ <File
+ RelativePath=".\SoundTouchDLL.rc">
+ </File>
</Filter>
</Files>
<Globals>
Modified: trunk/OpenMPT/soundtouch/soundtouch_08.vcproj
===================================================================
--- trunk/OpenMPT/soundtouch/soundtouch_08.vcproj 2010-01-10 21:54:41 UTC (rev 464)
+++ trunk/OpenMPT/soundtouch/soundtouch_08.vcproj 2010-01-14 20:46:32 UTC (rev 465)
@@ -298,6 +298,10 @@
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
+ <File
+ RelativePath=".\SoundTouchDLL.rc"
+ >
+ </File>
</Filter>
</Files>
<Globals>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-10 21:54:51
|
Revision: 464
http://modplug.svn.sourceforge.net/modplug/?rev=464&view=rev
Author: saga-games
Date: 2010-01-10 21:54:41 +0000 (Sun, 10 Jan 2010)
Log Message:
-----------
[Fix] Sample editor: Using "resize sample" created an invalid undo point which could lead to broken samples and even crashes.
[Mod] Updated the "what's new" dialog a bit (removed leading spaces, as they look ugly in Vista/Win7 messageboxes anyway (those have a slightly different format, so every line was too long))
[Mod] Changed history... (Ok, I just changed history.txt)
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Mptrack.cpp
trunk/OpenMPT/mptrack/View_smp.cpp
trunk/OpenMPT/packageTemplate/History.txt
Modified: trunk/OpenMPT/mptrack/Mptrack.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Mptrack.cpp 2010-01-10 18:21:30 UTC (rev 463)
+++ trunk/OpenMPT/mptrack/Mptrack.cpp 2010-01-10 21:54:41 UTC (rev 464)
@@ -228,26 +228,25 @@
//-----------------------------
{
const char* const firstOpenMessage = "OpenMPT build " MPT_VERSION_STR ".\n\n"
- "Some changes since version 1.17.02.54:\n\n"
- " [New] Pattern tab: New paste modes: overflow, push forward and flood.\n"
- " [Mod] Pattern tab: Keyboard split is now accessible from keyshortcut or menu.\n"
- " [Imp] Pattern tab: Numerous improvements including better effect descriptions in note properties.\n"
- " [New] Sequence editor: Can now handle order selections including delete/copy/cut/paste functionality.\n"
- " [New] Sequence editor: Can render selected patterns to wave directly from orderlist.\n"
- " [New] Envelope editor: Numerous improvements including ability to insert and remove points easily.\n"
- " [New] Sample tab: sample undo, sample draw, resize sample, DC offset removal, batch export, better loop...\n"
- " ...point handling when deleting selections. Play sample from given position with Ctrl + left mouse button.\n"
- " [New] MPTM: New parameter controls for controlling plug params from pattern.\n"
- " [New] MPTM: Can have envelope points up to 240 and multiple sequences.\n"
- " [New] MIDI mapping: Editing a plug param in its editor while holding shift key will now open MIDI mapping dialog.\n"
- " [New] MIDI mapping: Can now record MIDI mapping changes to pattern.\n"
- " [Imp] MOD/S3M/XM/IT: Numerous improvements to load, save and playback compatibility.\n"
- " [New] Input: Can import RIFF AM, RIFF AMFF, J2B, PSM16, IMF, GDM and SCL files. Improved PSM import.\n"
- " [New] Setup: New default directories: plugins and plugin presets, sharable colour schemes\n"
- " [New] Cleanup: New option compo cleanup, rearrange samples is back, can merge sequences.\n"
- " [Mod] Misc: Program settings are now by default stored in %APPDATA%\\OpenMPT\n"
- "\n"
- " and many more. See history.txt for more details.";
+ "Some changes since version 1.17.02.54:\n\n"
+ "[New] Pattern tab: New paste modes: overflow, push forward and flood.\n"
+ "[Mod] Pattern tab: Keyboard split is now accessible from key shortcut or menu.\n"
+ "[Imp] Pattern tab: Numerous improvements including better effect descriptions in note properties.\n"
+ "[New] Sequence editor: Can now handle order selections including delete/copy/cut/paste functionality.\n"
+ "[New] Sequence editor: Can render selected patterns to wave directly from orderlist.\n"
+ "[New] Envelope editor: Numerous improvements including ability to insert and remove points easily and editing envelopes with the keyboard.\n"
+ "[New] Sample tab: sample undo, sample draw, resize sample, DC offset removal, batch export, better loop point handling when deleting selections. Play sample from given position with Ctrl + left mouse button.\n"
+ "[New] MPTM: New parameter controls for controlling plug params from pattern.\n"
+ "[New] MPTM: Can have envelope points up to 240 and multiple sequences.\n"
+ "[New] MIDI mapping: Editing a plug param in its editor while holding shift key will now open MIDI mapping dialog.\n"
+ "[New] MIDI mapping: Can now record MIDI mapping changes to pattern.\n"
+ "[Imp] MOD/S3M/XM/IT: Numerous improvements to load, save and playback compatibility.\n"
+ "[New] Input: Can import J2B (RIFF AM / RIFF AMFF), PSM16, IMF, GDM and SCL files. Improved PSM import.\n"
+ "[New] Setup: New default directories: plugins and plugin presets, sharable colour schemes\n"
+ "[New] Cleanup: New option compo cleanup, rearrange samples is back, can merge sequences.\n"
+ "[Mod] Misc: Program settings are now by default stored in %APPDATA%\\OpenMPT\n"
+ "\n"
+ "and many more. See history.txt for more details.";
CMainFrame::GetMainFrame()->MessageBox(firstOpenMessage, "OpenMPT " MPT_VERSION_STR, MB_ICONINFORMATION);
}
@@ -3279,7 +3278,7 @@
* - load: true: load dialog. false: save dialog.
* - defaultExtension: dialog should use this as the default extension for the file(s)
* - defaultFilename: dialog should use this as the default filename
- * - extFilter: list of possible extensions. format: "description|extensions|description|extensions|..."
+ * - extFilter: list of possible extensions. format: "description|extensions|...|description|extensions||"
* - workingDirectory: default directory of the dialog
* - allowMultiSelect: allow the user to select multiple files? (will be ignored if load == false)
* - filterIndex: pointer to a variable holding the index of the last extension filter used.
Modified: trunk/OpenMPT/mptrack/View_smp.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_smp.cpp 2010-01-10 18:21:30 UTC (rev 463)
+++ trunk/OpenMPT/mptrack/View_smp.cpp 2010-01-10 21:54:41 UTC (rev 464)
@@ -2467,9 +2467,9 @@
// resize - dlg.m_nSamples = new size
if(dlg.m_nSamples != pSmp->nLength)
{
- if(dlg.m_nSamples < pSmp->nLength)
- pModDoc->GetSampleUndo()->PrepareUndo(m_nSample, sundo_delete, dlg.m_nSamples, pSmp->nLength - dlg.m_nSamples);
- else
+ if(dlg.m_nSamples < pSmp->nLength) // make it shorter!
+ pModDoc->GetSampleUndo()->PrepareUndo(m_nSample, sundo_delete, dlg.m_nSamples, pSmp->nLength);
+ else // make it longer!
pModDoc->GetSampleUndo()->PrepareUndo(m_nSample, sundo_insert, pSmp->nLength, dlg.m_nSamples);
ctrlSmp::ResizeSample(pSndFile->Samples[m_nSample], dlg.m_nSamples, pSndFile);
}
Modified: trunk/OpenMPT/packageTemplate/History.txt
===================================================================
--- trunk/OpenMPT/packageTemplate/History.txt 2010-01-10 18:21:30 UTC (rev 463)
+++ trunk/OpenMPT/packageTemplate/History.txt 2010-01-10 21:54:41 UTC (rev 464)
@@ -21,35 +21,34 @@
^ <Jojo> Duplicate / Create new pattern shortcuts do also work here now.
^ <Jojo> Show cut/copy/paste orders in context menu.
^ <Jojo> Middle click can now also be used for queuing patterns.
- . <Jojo> Show correct shortcuts in context menus
. <Jojo> Pasting orders now removes "+++" items if they are not supported by the current format.
. <Jojo> Fixed display error when selecting multiple orders, inserting them and clicking on another order (only first order of previous selection was un-highlighted).
Pattern tab::Pattern editing
+ <Jojo> New paste mode "push forward paste", which resembles the default paste behaviour of Impulse Tracker. Includes new shortcut.
+ <Jojo> The "paste flood" command pastes the clipboard content again and again until it hits the bottom of the pattern (overflow paste will be disabled automatically if paste flood is used, for obvious reasons).
- ^ <Jojo> When using the MPTM format, plugin param changes are written to the pattern as PC Notes.
+ ^ <Jojo> When using the MPTM format, plugin param changes are written to the pattern as PC Notes (instead of smooth midi macros).
^ <Jojo> Assume that the clipboard pattern format is IT (instead of MOD) if no information about the format is available.
^ <Jojo> Pattern c&p: convert pasted commands if necessary.
/ <re> Pattern c&p: Mix paste shouldn't anymore trigger conversion on modcommands that weren't changed at all. Now, however, partial conversion will not be done so this still needs further fixing.
+ . <Jojo> Pattern c&p: invalid commands are not pasted anymore.
^ <Jojo> If "record note off" is enabled and Note Off commands are not supported by the current format, try Note Cut and volume commands.
- / <Jojo> It is impossible to enter something into the volume column in mod format now.
- / <Jojo> When interpolating PC notes, the plugin number and note type won't get overriden if the note type is already PC or PCs. I find this more logical.
+ / <Jojo> It is impossible to enter something into the volume column in MOD format now.
+ / <Jojo> When interpolating PC notes, the plugin number and note type won't get overriden if the note type is already PC or PCs.
. <re> Pattern c&p: Mix paste should behave better with parameter control notes.
- . <Jojo> PCNote handling was missing in OnClearSelection, so it was possible to delete the effect column only partly
+ . <Jojo> PC note handling was missing in OnClearSelection, so it was possible to delete the "effect column" (parameter value) only partly
. <Jojo> Amplify acted VERY weird when it was applied on an instrument that's not assigned to any sample. Should be a bit better now.
- . <Jojo> Amplify doesn't use volume column in mod format anymore.
+ . <Jojo> Amplify doesn't use volume column in MOD format anymore.
. <Jojo> When recording live from the keyboard, SDx shouldn't exceed the song speed anymore.
. <Jojo> Got rid of possible redundant undo points.
- . <Jojo> Pattern c&p: invalid commands are not pasted anymore.
- . <Jojo> PC Notes are now deleted properly (last column).
+ . <Jojo> PC notes are now deleted properly (last column).
. <Jojo> Copying only the param column of PC notes overwrote the value column when pasting them.
. <Jojo> Entering Note Fade notes didn't work the "old style" way.
- . <Jojo> PCNote handling was missing in OnClearSelection, so it was possible to delete the effect column only partly.
+ . <Jojo> PC note handling was missing in OnClearSelection, so it was possible to delete the effect column only partly.
Pattern tab::GUI
+ <Jojo> Channel rename dialog in channel header context menu.
- ^ <Jojo> Tidied up the upper panel. It fits perfectly on a 1024x768 screen with treeview enabled and also works on 800x600 with treeview disabled. With the new layout, about 8 more pattern rows can be seen.
+ ^ <Jojo> Tidied up the upper panel. It fits perfectly on a 1024x768 screen with treeview enabled and also works on 800x600 with treeview disabled. With the new layout, about 8 more pattern rows can be seen in comparison to the old, bloated 1.17.02.* interface.
/ <Jojo> Due to this cleanup, the "split keyboard" feature has been removed from the interface. The split keyboard settings dialog can now be accessed by using a shortcut, which should be even faster than the old method.
^ <re> If keyboard split is active, instrument drop list will show split instrument and split note.
^ <Jojo> Grey out pattern name input field when in MOD/S3M mode.
@@ -77,7 +76,6 @@
/ <Jojo> Removed time stretcher's / pitch shifter's preview function as it's unnecessary now.
. <Jojo> When going down close to 0 Hz in the sample editor, the sample freq wrapped around to the maximum value.
. <Jojo> Insert Silence: Loop points were not updated when adding silence at the beginning of the sample
- . <Jojo> Time Stretch / Pitch Shift button's caption was not updated properly.
Instrument tab
. <Jojo> When playing an instrument and disabling its envelopes at the same time, the toggled envelopes are stopped (prevents filter envelope from turning into a pitch envelope).
@@ -92,36 +90,35 @@
Comments tab
^ <Jojo> If sample size is < 1 KB, amount of bytes is shown instead of "0 KB".
- . <Jojo> The lower part of the tab was receiving update messages that were not even meaningful to this tab (f.e. speed changes), so it was updating quite often modules that have alternating speed... Only letting in important update messages now.
+ . <Jojo> The lower part of the tab was receiving update messages that were not even meaningful to this tab (f.e. speed changes), so it was updating quite often modules that have alternating speed and the toolbar was "blinking"... Only letting in important update messages now.
Treeview
+ <Jojo> Show sequences in song treeview. Sequences can be inserted, duplicated and deleted by right-clicking the sequence items.
- + <Jojo> Clicking on a mod item (only filename node) switches to the corresponding window.
+ + <Jojo> Clicking on a mod item (i.e. a filename node) switches to the corresponding window.
+ <Jojo> Display playing samples / instruments (only those that are assigned to a sample) using green triangles. Can be enabled from setup screen.
+ <Jojo> Muted samples and instruments are shown with a different icon.
^ <Jojo> Can now dragondrop orders, even between sequences.
^ <Jojo> Double-clicking order items and pattern items should work now.
^ <Jojo> Show whole sequence (don't stop on first "---" item).
^ <Jojo> Switching between sequences should be easier now. There's a context menu entry for it and double-clicking on an empty sequence will switch to it (as there are no orderlist item to click on).
- ^ <Jojo> Different icons for effects / instruments
+ ^ <Jojo> Different icons for VST effects / instruments
VST / MIDI mapping
- ^ <Jojo> Further improvement to param mapping so that the midi dialog really only pops up when the VST window has the focus.
^ <Jojo> VST Selector: Different icons for effects / instruments.
- . <Jojo> When moving around plugins, param control notes are now also updated.
+ . <re/Jojo> When moving around plugins, param control notes are now also updated.
. <re> MIDI mapping: Pattern record checkbox wasn't updated properly.
. <re/Jojo> MIDI mapping: Shift key erroneously opened MIDI mapping dialog in some cases. However, it does not work properly with all plugins anymore (e.g. sliders in Synth1 are not shift-clickable anymore)
Mod conversion
^ <Jojo> When converting a song that has subsongs to MPTM format, the user is asked if those subsongs should be converted into multiple sequences.
- ^ <Jojo> Better conversion of MOD/XM E4x / E7x command.
+ ^ <Jojo> If possible, all MPTM sequences will be merged into the first sequence. This also tries to fix patterns with Bxx effects.
+ ^ <Jojo> Better conversion of MOD / XM E4x / E7x command.
^ <Jojo> Better conversion of note off commands when converting to .mod.
^ <Jojo> Removing channel features (pan/vol) in formats where they're not supported.
^ <Jojo> Insert pattern break commands when resizing patterns to 64 rows that were smaller.
- ^ <Jojo> Changing between MOD and XM format limits speed/tempo commands (Fxx) now.
+ ^ <Jojo> Changing between MOD and XM format limits speed / tempo commands (Fxx) properly now.
^ <Jojo> Trim sequence if it's too long (f.e. in MOD format).
- ^ <Jojo> If possible, all MPTM sequences will be merged into the first sequence. This also tries to fix patterns with Bxx effects.
- ^ <Jojo> Remove sample vibrato and sustain loops for MOD/S3M.
+ ^ <Jojo> Remove sample vibrato and sustain loops for MOD / S3M.
Playback (see also format-specific changes below)
^ <Jojo> Added some more standard playback frequencies (176KHz, 192KHz).
@@ -130,7 +127,7 @@
IT::Saving
. <Jojo> Original IT specs concerning max orders/patterns were wrong. IT can handle up to 257 orders (as the last order is always ---, so it's actually 256 accessible orders), so the saving routines were also updated a bit.
. <Jojo> Save at least 2 order items.
- . <Jojo> IT files with empty sample slots will now FINALLY save correctly in Impulse Tracker.
+ . <Jojo> IT files with empty sample slots made with MPT will now FINALLY save correctly in Impulse Tracker.
. <Jojo> Compatibility Export: Don't store "extended filter range" flag.
IT::Loading
@@ -139,19 +136,20 @@
. <Jojo> In some very rare (almost only theoretical) cases, the last IT instrument would not be loaded in previous versions. Use correct instrument header size (1.xx or 2.xx header) for comparison when loading instrument headers.
IT::Playback compatibility
- . <Jojo> Reset NNA actions on every note (tentative fix).
+ . <Jojo> Reset NNA actions on every note (tentative fix, fixes spx-farspacedance.it).
. <Jojo> Fixes from SchismTracker: VolSwing, PanSwing, PPS.
. <Jojo> Out of range offset command with Old FX on.
+ . <Jojo> Impvored S3x / S4x / S5x handling.
S3M
. <Jojo> ST3 compatibility: Only allow waveforms 0 to 3 for S3x / S4x / S5x.
- . <Jojo> The S3M format actually knows muted channels. Added this to the S3M loader/saver.
+ . <Jojo> The S3M format actually knows muted channels. This was not taking into account before.
XM::Loading
^ <Jojo> Allow to load modules with an empty order list (as they are, in fact, valid XM files).
XM::Playback compatibility
- . <Jojo> Almost perfect arpeggio emulation (only a few notes are still wrong).
+ . <Jojo> Almost perfect arpeggio emulation (only a few notes are still wrong). Thanks, Ian Luck!
. <Jojo> Rogue note delays are now retriggering the instrument.
. <Jojo> Perfect emulation of buggy Rxy behaviour. Thanks to Ian Luck for helping me with this.
. <Jojo> Command X modplug extensions are now ignored in FT2 compat mode.
@@ -175,7 +173,7 @@
+ <Jojo> Wave Convert: Normalization is back as experimental feature.
+ <Jojo> Wav/Mp3 export: Show estimated remaining time.
^ <Jojo> Mp3 export: Removed 60 minutes limit.
- . <Jojo> Mp3 export: use uint64 like in wav export (instead of uint32), to prevent wraparounds with very long modules like Skaven's "Beyond the Network".
+ . <Jojo> Mp3 export: Fixed possible issue with very long mod files (such as Skaven's "Beyond the Network").
. <Jojo> Wave Convert: The wave convert dialog had two default buttons, one of them (the "default default button") didn't make sense.
Colour setup
@@ -199,31 +197,31 @@
^ <Jojo> Tuning dialog: Using the default tuning path as default path for Import/Export dialog
Module format support
- + <Jojo> Can now import RIFF AM and RIFF AMFF files, as well as J2B files, which are compressed AM(FF) files. Added zlib 1.2.3 for J2B support.
- + <Jojo> Can now import PSM16 files.
+ + <Jojo> Can now import RIFF AM and RIFF AMFF files, as well as J2B (Jazz Jackrabbit 2 music) files, which are compressed AM(FF) files.
+ + <Jojo> Can now import PSM16 files (Silverball, early versions of Epic Pinball).
. <Jojo> MED Loader: Possible error when loading orderlist.
. <Jojo> MDL Loader: Various fixes (taken from Schism Tracker).
. <Jojo> IMF Loader: Slightly wrong instrument loader (this for once didn't break anything, though).
. <Jojo> AMF Loader: Missing break command.
Misc
- ^ <Jojo> All Loaders: Using a new template, SpaceToNullStringFixed, which filters out all null chars in song/sample/instrument/etc. names. This avoids "empty" instrument names that occured in a couple of .IT files before.
- ^ <Jojo> Mainframe: Extended paste mechanisms (mix, flood, push forward) have been moved into a sub menu.
- ^ <Jojo> Mainframe: Improved accelerator keys in the edit menu.
+ ^ <Jojo> All Loaders: Fixed string handling to filter out all null chars in song/sample/instrument/etc. names. This avoids "empty" instrument names that occured in a couple of .IT files before.
+ ^ <Jojo> Main window: Extended paste mechanisms (mix, flood, push forward) have been moved into a sub menu.
+ ^ <Jojo> Main window: Improved accelerator keys in the edit menu.
^ <Jojo> Added "split keyboard settings" dialog to the "edit" menu and updated the shortcuts there (goto was missing).
^ <re> SoundTouch: Update to version 1.5.0.
- / <Jojo> Store configuration and tuning files in %APPDATA% if possible. Can be disabled by adding UseAppDataDirectory=0 to [Paths] in mptrack.ini.
+ / <Jojo> Store configuration and tuning files in %APPDATA% if possible. Can be disabled by adding UseAppDataDirectory=0 to [Paths] in mptrack.ini ("portable mode").
/ <Jojo> Mod Creation: When clicking on the "new" button, the newly created module will be of the same type as the currently active document. Should probably be an option.
- / <Jojo> Made Graph and Pattern Randomizer shortcuts invisible.
+ / <Jojo> Made Graph and Pattern Randomizer shortcuts invisible, as they are usless.
/ <Jojo> Compatibility Export: Use module working directory in "save as" dialog.
/ <Jojo> Using MS Shell Dlg font instead of MS Sans Serif in resource file.
/ <re> Changed some "modplug tracker" strings to "OpenMPT".
. <Jojo> When using a Load/Save dialog, MPT's key handler will be disabled so that common shortcuts like F2, Ctrl+C, Ctrl+V, Esc. etc. can still be used.
- . <Jojo> Mod Loaders: Very short sample sustain loops are now also accepted (similar fix to normal loop points - fixes ckabsenc.it).
+ . <Jojo> Mod Loaders: Very short sample sustain loops are now also accepted (fixes ckabsenc.it).
. <Jojo> Mod Creation: Filling the whole mod title field with null bytes on creation to avoid funky characters in other programs.
. <Jojo> When moving program files to %APPDATA%, take care of the keyboard settings path in the INI file.
- . <Jojo> Increased "filename" string in instrument header field to 32, since CHAR[12] is not really enough for 12 letters...
- . <re> Autosave: 'Modified since last autosave'-flag wasn't updated when document was set modified using ThreadSafeSetModified.
+ . <Jojo> Fixed possible issue with long (12 chars) instrument filenames.
+ . <re> Autosave: 'Modified since last autosave'-flag wasn't always updated.
. <re> Fixes to handling of 32 chars long instrument name.
@@ -267,28 +265,27 @@
Pattern tab::Find/replace
^ <Jojo> Don't reset "replace all" flag after every search.
/ <Jojo> "Search in whole song" and "Replace all" are now enabled by default.
- . <Jojo> Works now also with high instrument numbers. Also, empty instrument numbers won't be affected by "ins+1" anymore.
+ . <Jojo> Replacing also works with high instrument numbers now. Also, empty instrument numbers won't be affected by "ins+1" anymore.
. <Jojo> Notes that cannot be used in the given format are not shown in the dropdown combo.
. <Jojo> Made comboboxes more convenient to use.
Pattern tab::Macro config
^ <Jojo> Also show the current preset for Zxx config (Z80 - ZFF).
- . <Jojo> "Show All" FX display starts at 1 instead of 0, like all other FX enumerations.
+ . <Jojo> "Show All" FX display starts at 1 instead of 0, like all other FX enumerations. (tx Rakib)
Sample tab
+ <coda> Sample drawing.
+ <coda> Add silence to sample.
+ + <Jojo> Resize sample (same dialog as "add silence")
+ <Jojo> Can now play sample from given position with Ctrl + left mouse button.
+ <Jojo> DC offset removal.
+ <Jojo> Batch export samples (shift + click on "save sample" icon).
- + <Jojo> Added setting "FinetuneStep" to INI section "Sample Editor".
- ^ <Jojo> It is now possible to resize samples to a given sample size. You can do this using the already existing "add silence" dialog.
+ + <Jojo> Added setting "FinetuneStep" to mptrack.ini section "[Sample Editor]".
^ <Jojo> Better loop point handling when deleting sample selections.
. <Jojo> Limit sample vibrato fields properly. Vibrato Sweep ranges from 0 to 255 now.
. <Jojo> Remove special chars from sample filenames so the "save as" dialog will show up on OSs < Vista.
. <Jojo> When using the spin control, frequency is not clamped to [2000, 96000] anymore.
. <Jojo> Removed tuning from up/downsampling for MOD files which detuned them when saving.
- . <Jojo> Global volume is now also being adjusted for stereo and 16-Bit samples.
. <Jojo> Transpose is now disabled when using MOD format.
Instrument tab
@@ -299,7 +296,7 @@
. <Jojo> Pitch/Pan input field allows negative values.
. <Jojo> Proper limits for IT/XM fadeout values.
. <Jojo> Playing correct note in the instrument mapping control (notable difference when editing the scale from bottom to top).
- . <Jojo> No relative values are shown for envelopes with no release node (status bar).
+ . <Jojo> No relative values are shown for envelopes with no release node (status bar). (tx xaimus)
. <Jojo> Remove special chars from sample filenames so the "save as" dialog will show up on OSs < Vista.
. <Jojo> Fixed crash in instrument view that occured if RowsPerBeat was 0.
. <re> Fix to crash that occurred when multiple windows had instrument tab of the same document open.
@@ -315,7 +312,7 @@
VST / MIDI mapping
+ <re> Editing a plug param in its editor while holding shift key will now open MIDI mapping dialog.
+ <re> Can now record MIDI mapping changes to pattern.
- / <re> Changed host IDs and a couple of related return values. If compatibility problems occur, old IDs can be set with ini-settings.
+ / <re> Changed host IDs and a couple of related return values. If compatibility problems occur, old IDs can be set with ini-settings ("HostProductString", "HostVendorString", "HostVendorVersion" in section "[VST Plugins]").
. <Jojo> Some minor tweaks and fixes to the MIDI mapping dialog.
Mod conversion
@@ -336,10 +333,10 @@
^ <Jojo> If restart position is 0 and a subtune is played (i.e. a tune separated with a "---" pattern), OpenMPT will now try to jump back to the first order of this subtune instead.
^ <Jojo> Added option to not reset all channels and variables when looping a module.
. <Jojo> 4-Bit panning didn't disable surround sound (fixed in compatibility mode in IT/MPTM/XM).
- . <Jojo> Process pattern break commands on last pattern properly.
+ . <Jojo> Don't ignore value of pattern break commands on last pattern anymore.
MPTM
- + <re> New experimental parameter controls for controlling plug params.
+ + <re> New experimental parameter controls (PC notes) for controlling plug params.
+ <re> Can now have multiple sequences in a module (access from orderlist context menu).
+ <Jojo> Allow up to 240 envelope points.
+ <Jojo> IT "Note Fade" command: This existed in IT's player routines already, but there was no way to actually use it in the editor. Triggering an invalid note would cause a note fade, so this is a new note type.
@@ -362,7 +359,7 @@
^ <Jojo> Can now load IT files with very small patterns (< 4 rows).
^ <Jojo> Setting the "last saved with" version to 1.16 (instead of "created with") if module seems to be made with the old MPT.
^ <Jojo> Reading our custom tracker version in the header now as well.
- ^ <Jojo> Detect more versions of MPT that did stupid things.
+ ^ <Jojo> Detect more versions of MPT that did stupid things (can be seen in the "last saved with" field).
^ <Jojo> Row highlighting in IT header is now recognized.
. <Jojo> Unset release env nodes for IT files made with IT 1.x, fix fadeout values.
. <Jojo> Don't set "made with modplug" flag for IT files that were made with compatibility export.
@@ -372,50 +369,42 @@
. <Jojo> OpenMPT was loading the volume column command hx (vibrato depth) as ux (vibrato speed) and also saving it like this. In the pattern editor, ux was allowed, hx was not but it should be the other way around. Now, hx is always used but ux is still loaded correctly for old modules made with MPT/OpenMPT.
IT::Playback compatibility
- ^ <Jojo> More improvements to Vibrato, Tremolo and Panbrello. Using the tables from IT_TECH.TXT.
- ^ <Jojo> Improved IT compatible retrigger (didn't work if the retrigger didn't start together with a new note).
+ ^ <Jojo> More improvements to Vibrato, Tremolo and Panbrello.
+ ^ <Jojo> Retrigger (Qxy) works like in Impulse Tracker now (when in compatible mode) (test #15)
+ ^ <Jojo> Tremor (Ixy) works like in Impulse Tracker now (when in compatible mode)
. <Jojo> Better sample vibrato compatibility. Vibrato Sweep isn't perfect yet, though.
- . <Jojo> Special case of Retrigger + Envelopes.
. <Jojo> Offset beyond sample range.
. <Jojo> Don't reset Tremolo on new note, don't ignore tremolo if note volume is 0.
. <Jojo> Ignore S[345]x with x > 3.
. <Jojo> Multisample instruments change with no entry in the instrument column (fixes spx-shuttledeparture.it) (test me).
- . <Jojo> Tremor also works properly with "old effects" on.
- . <Jojo> Fixed retrigger for Qxx when not being triggered together with a note.
. <Jojo> Pattern loop count won't be reset on pattern transition (fixes gm-trippy01.it).
. <Jojo> Tempo slides won't exceed 255 BPM in compatible mode.
- . <Jojo> Allow OpenMPT's new volume colum commands (offset etc.) to be used together with Retrigger in compatible mode again.
. <Jojo> Random waveforms (vibrato, tremolo, panbrello) (test #19).
. <Jojo> Fixed handling of very short pitch / filter envelopes (test #24).
. <Jojo> Panning fx (Xxx, S8x, pxx) override pan swing (test #20).
- . <Jojo> Improved retrigger compatibility even more (#15)
. <Jojo> SD0 / SC0 is now interpreted as SD1 / SC1 in compatibility mode (test #22).
. <Jojo> Portamento up / down resets the destination of tone portamento (test #23).
- . <Jojo> Tremor: Sounds like in IT when compatible playback mode is turned on.
. <Jojo> Out of range global volume, local global volume slides.
- . <Jojo> Retrigger effect behaved slightly wrong.
S3M::Saving
^ <Jojo> Orderlist is now as small as possible (multiple of 2 instead of multiple of 16); Using ST3's default UltraClick value.
^ <Jojo> Using an own version number in the header now, just like all the other trackers.
^ <Jojo> Don't write unnecessary invalid order items in the order table.
- . <Jojo> Set the stereo flag.
. <Jojo> Ignore new MPT effects.
- . <Jojo> Patterns are now saved correctly. Previously, the last few rows might have come up as garbage in ST3, especially (only?) when they were empty.
+ . <Jojo> Patterns are now saved correctly. Previously, the last few rows might have come up as garbage in ST3 when they were empty.
. <Jojo> Clamp sample pre-amp to [32;127] instead of just taking the lower 7 bits. (Default pre-amp value was 128, which resulted in pre-amp 0 when saving).
S3M::Loading
^ <Jojo> Recognize OpenMPT version in S3M header.
- . <Jojo> Limit min sample preamp value to 0x10.
+ . <Jojo> Limit min sample preamp value to 16.
. <Jojo> Small modifications to pattern loader to load somewhat broken S3M files (fix from xmp).
- . <Jojo> Don't reset global volume to max if it is min for "new" modules.
- . <Jojo> Smarter Zxx conversion.
+ . <Jojo> Don't reset global volume to max if it is 0 for "new" S3M modules.
+ . <Jojo> Smarter Zxx conversion without message box.
. <Jojo> Disable loop for sample with very short loop at the beginning.
. <Jojo> Samples with very short loops (2 bytes) will now load correctly. This fixes for example 94hitmix.s3m and spectral.s3m.
- . <Jojo> Short loops in S3M samples are now recognized.
S3M::Misc
- . <Jojo> Module Creation / Loading: Sane default volume settings for MOD / S3M files again(128 global volume, 48 sample volume)
+ . <Jojo> Module Creation / Loading: Sane default volume settings for MOD / S3M files again (128 global volume, 48 sample volume)
. <Jojo> S3M compatibility: Notes with SD0 are now ignored, SC0 is completely ignored
XM
@@ -423,13 +412,9 @@
+ <Jojo> Compatibility play-mode.
XM::Loading
- + <Jojo> Detects compatibility mode automatically when loading XM-file.
- ^ <Jojo> Detect non-mpt modules more reliably.
- ^ <Jojo> Advanced "made with MPT" detection.
- ^ <Jojo> Detect a very old MPT version.
+ + <Jojo> Detects compatibility (i.e. modules not made with mpt) mode automatically when loading XM-file.
^ <Jojo> Make XMs with strange pattern header sizes load correctly (removed some code that was there to make really, really broken XMs load - would this work at all?).
^ <Jojo> Setting the "last saved with" version to 1.16 (instead of "created with") if module seems to be made with the old MPT.
- ^ <Jojo> Less hacky implementation of the instrument loader. Still works correctly with "normal" XM modules and BoobieSqueezed XMs.
. <Jojo> Various changes to make XMs that have been compressed with BoobieSqueezer load correctly.
. <Jojo> Can now load XM Version 1.02 and 1.03.
. <Jojo> More intelligent conversion of Speed / Tempo commands.
@@ -445,21 +430,20 @@
XM::Playback compatibility
. <Jojo> Portamento + New Note with no previous note (tentative fix), Offset beyond sample range.
- . <Jojo> Compatible Arpeggio was done wrong.
- . <Jojo> More compatible "Note Off + Something".
+ . <Jojo> More compatible "Note Off + Something" actions.
. <Jojo> Note Off with instrument number causes fadeout for samples that have no envelope.
. <Jojo> Volume command Ux should not enable Vibrato at all, it only sets the vibrato speed.
. <Jojo> Pxy effect was too deep.
. <Jojo> Using MilkyTracker's arpeggio logic for better XM arpeggio compatibility - still not perfect!
. <Jojo> Tempo slides won't exceed 255 BPM in compatible mode.
- . <Jojo> In compatible mode, old retrigger routines are used again (as MPT's default retrigger algorithm actually represents FT2's retrigger algorithm). Additionally, a retrigger bug from FT2 is emulated (retrigger with vxx on the same channel would always reset the retriggered note's volume).
+ . <Jojo> In compatibility mode, retrigger with vxx on the same channel will always reset the retriggered note's volume.
. <Jojo> More compatible handling of Kxx effect.
. <Jojo> Pattern loops are now handeled correctly (using compatibility switch).
. <Jojo> Out of range global volume, local global volume slides.
MOD
^ <Jojo> Module Creation: MOD files have 4 channels by default.
- ^ <Jojo> Moved loop length check from compatibility export to normal save, as it does not break/change any MPT-made MOD file.
+ ^ <Jojo> Moved loop length check from compatibility export to normal save. There you go, Amiga users! :)
. <Jojo> Module Creation / Loading: Sane default volume settings for MOD / S3M files again (128 global volume, 48 sample volume).
. <Jojo> Inserting more than 128 orders in MOD format is not possible anymore.
@@ -468,7 +452,7 @@
. <Jojo> Last pattern was not loading in .MODs that have no samples.
MOD::Saving
- . <Jojo> The compatibility export was only working properly for 8-bit mono samples. Everything else is going to be downsampled later, so the sample "fixing" has to be done before.
+ . <Jojo> The compatibility export was only working properly for 8-bit mono samples.
. <Jojo> More intelligent conversion of Speed / Tempo commands.
. <Jojo> F20 won't turn into G20.
@@ -478,17 +462,17 @@
Setup
+ <Jojo> New default directories: plugins and plugin presets.
- + <Jojo> Option reset ramping and resampling to default values.
- + <Jojo> Shareable color schemes (via config dialog).
+ + <Jojo> Button to reset ramping and resampling to default values.
+ + <Jojo> Shareable colour schemes (via config dialog).
^ <Jojo> Added note to "always center active row" hint that this is required to be enabled for greyed out patterns.
^ <Jojo> Slight redesign of the WAV / MP3 export dialogs.
/ <Jojo> Changes to default general options configuration.
Module format support
+ <Jojo> Can now import IMF (Imago Orpheus) modules.
- + <Jojo> Can now import GDM files.
+ + <Jojo> Can now import GDM (General Digital Music / BWSB sound system) files.
. <Jojo> A brand new PSM loader! Ditched the old and buggy loader as the new loader works way better, it can even handle modules from Extreme Pinball.
- . <Jojo> 669 Loader: Small modification so corehop.669 can be loaded; Note: Loader is still buggy like hell
+ . <Jojo> 669 Loader: Small modification so corehop.669 can be loaded; Note: Loader is still buggy like hell.
Misc
+ <Jojo> Compo cleanup.
@@ -502,7 +486,7 @@
^ <kode54> LHA Decoder: Several fixes (patch by kode54).
/ <re> Default keybings are now included in the executable -> default keybindings are available even without external keybinding file.
. <Jojo> Menus: Added the correct shortcut keys again and replaced the last(?) remaining "Midi" labels by "MIDI".
- . <Jojo> Wav Export / Channel Manager / Pattern Editor: Pattern names with leading space char are now accepted.
+ . <Jojo> Wav Export / Channel Manager / Pattern Editor: Channel names with leading space char are now accepted.
. <Jojo> General tab / Main bar / Loaders / Conversion: Fixed arbitrary speed limits (64 on general tab, 127 on main bar).
. <Jojo> Keyboard manager: Octave offset for key descriptions is now C, not A.
. <Jojo> Patterns: Reset pattern name when deleting pattern.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sag...@us...> - 2010-01-10 18:21:37
|
Revision: 463
http://modplug.svn.sourceforge.net/modplug/?rev=463&view=rev
Author: saga-games
Date: 2010-01-10 18:21:30 +0000 (Sun, 10 Jan 2010)
Log Message:
-----------
[Mod] Corrected some stuff in history.txt (types, "between releases" fixes, clarifications, etc...)
Modified Paths:
--------------
trunk/OpenMPT/packageTemplate/History.txt
Modified: trunk/OpenMPT/packageTemplate/History.txt
===================================================================
--- trunk/OpenMPT/packageTemplate/History.txt 2010-01-10 17:21:21 UTC (rev 462)
+++ trunk/OpenMPT/packageTemplate/History.txt 2010-01-10 18:21:30 UTC (rev 463)
@@ -18,7 +18,7 @@
Sequence editor
+ <re> Can now copy/cut/paste order selections.
^ <Jojo> Using the keyboard manager for shortcuts. 0...9, + and - keys are now also configurable.
- ^ <Jojo> Duplicate / Create new pattern shortcuts do also work now here.
+ ^ <Jojo> Duplicate / Create new pattern shortcuts do also work here now.
^ <Jojo> Show cut/copy/paste orders in context menu.
^ <Jojo> Middle click can now also be used for queuing patterns.
. <Jojo> Show correct shortcuts in context menus
@@ -70,27 +70,25 @@
. <Jojo> When in sample mode, samples were never stopped when in new-style note off mode, which lead to sample jam when using long/looped samples.
Sample tab
- + <Jojo> Sample Undo. 100 steps per sample (independent), undo buffer is cut off at a tenth of physical memory (that would be 400 MB for a system with 4 GB of RAM). Cutoff size can be specified by setting UndoBufferSize (in Megabytes) in section [Sample Editor] <Jojo> of mptrack.ini.
+ + <Jojo> Sample Undo. 100 steps per sample (independent), undo buffer is cut off at a tenth of physical memory (that would be 400 MB for a system with 4 GB of RAM). Cutoff size can be specified by setting UndoBufferSize (in Megabytes) in section [Sample Editor] of mptrack.ini.
^ <Jojo> When creating a new sample using "resize", sample loop is activated automatically.
^ <Jojo> When sample is 8-bit, it will automatically be converted to 16-bit when applying time stretching / pitch shifting.
^ <Jojo> Can now enter insanely high values into sample frequency input field (as they are supported by Impulse Tracker), allow only 65536 Hz for S3M files.
/ <Jojo> Removed time stretcher's / pitch shifter's preview function as it's unnecessary now.
. <Jojo> When going down close to 0 Hz in the sample editor, the sample freq wrapped around to the maximum value.
. <Jojo> Insert Silence: Loop points were not updated when adding silence at the beginning of the sample
- . <Jojo> Pitch shift: Was slightly broken for 8-bit samples.
. <Jojo> Time Stretch / Pitch Shift button's caption was not updated properly.
Instrument tab
- . <Jojo> When playing an instrument and disabling its envelopes at the same time, they're stopped (prevents filter envelope from turning into a pitch envelope).
+ . <Jojo> When playing an instrument and disabling its envelopes at the same time, the toggled envelopes are stopped (prevents filter envelope from turning into a pitch envelope).
. <re> Sample map was broken when dealing with sample indexes greater than 255.
. <Jojo> Update plugin list properly when cleaning up plugins while being on the instrument tab (possibly also improves instrument tab behaviour when working with multiple windows).
Instrument tab::Envelope editor
+ <Jojo> Envelopes can be edited using keyboard. Various keyboard shortcuts have been added to move and edit envelope points. This uses a common "drag and drop" node with mouse editing, so a point can first be clicked and the be moved with f.e. cursor keys.
^ <Jojo> When creating a new envelope, automatically enable it as well.
- ^ <Jojo> Mark currently selected envelope node yellow for better visibility.
+ ^ <Jojo> Mark currently selected envelope node yellow for better visibility when using keyboard editing.
/ <Jojo> Middle line is also shown for volume envelope.
- . <Jojo> When pasting envelopes, the enabled and filter flags were lost.
Comments tab
^ <Jojo> If sample size is < 1 KB, amount of bytes is shown instead of "0 KB".
@@ -99,7 +97,7 @@
Treeview
+ <Jojo> Show sequences in song treeview. Sequences can be inserted, duplicated and deleted by right-clicking the sequence items.
+ <Jojo> Clicking on a mod item (only filename node) switches to the corresponding window.
- + <Jojo> Display playing samples / instruments (only those that are assigned to a sample). Can be enabled from setup screen.
+ + <Jojo> Display playing samples / instruments (only those that are assigned to a sample) using green triangles. Can be enabled from setup screen.
+ <Jojo> Muted samples and instruments are shown with a different icon.
^ <Jojo> Can now dragondrop orders, even between sequences.
^ <Jojo> Double-clicking order items and pattern items should work now.
@@ -108,12 +106,11 @@
^ <Jojo> Different icons for effects / instruments
VST / MIDI mapping
- ^ <Jojo> VST Editor: When dealing with midi learn in vst editors (with Shift key), also accept child windows of the VST editor as valid window. This still doesn't fix the Shift+clicking sliders issue in Synth1, but might help with other plugins.
- ^ <Jojo> Further improvement to param mapping so that the midi dialog really only pops up when the VST window has the focus.
- ^ <Jojo> VST Selector: Different icons for effects / instruments.
- . <Jojo> When moving around plugins, param control notes are now also updated.
- . <re> MIDI mapping: Pattern record checkbox wasn't updated properly.
- . <re> MIDI mapping: Shift key erroneously opened MIDI mapping dialog in some cases.
+ ^ <Jojo> Further improvement to param mapping so that the midi dialog really only pops up when the VST window has the focus.
+ ^ <Jojo> VST Selector: Different icons for effects / instruments.
+ . <Jojo> When moving around plugins, param control notes are now also updated.
+ . <re> MIDI mapping: Pattern record checkbox wasn't updated properly.
+ . <re/Jojo> MIDI mapping: Shift key erroneously opened MIDI mapping dialog in some cases. However, it does not work properly with all plugins anymore (e.g. sliders in Synth1 are not shift-clickable anymore)
Mod conversion
^ <Jojo> When converting a song that has subsongs to MPTM format, the user is asked if those subsongs should be converted into multiple sequences.
@@ -121,12 +118,10 @@
^ <Jojo> Better conversion of note off commands when converting to .mod.
^ <Jojo> Removing channel features (pan/vol) in formats where they're not supported.
^ <Jojo> Insert pattern break commands when resizing patterns to 64 rows that were smaller.
- ^ <Jojo> Changing between MOD and XM format limits CMD_SPEED/CMD_TEMPO properly now.
- ^ <Jojo> Trim sequence if it's too long.
- ^ <Jojo> Detect and fix patterns with Bxx effect properly when merging sequences.
- ^ <Jojo> If possible, all MPTM sequences will be merged into the first sequence.
+ ^ <Jojo> Changing between MOD and XM format limits speed/tempo commands (Fxx) now.
+ ^ <Jojo> Trim sequence if it's too long (f.e. in MOD format).
+ ^ <Jojo> If possible, all MPTM sequences will be merged into the first sequence. This also tries to fix patterns with Bxx effects.
^ <Jojo> Remove sample vibrato and sustain loops for MOD/S3M.
- ^ <Jojo> When converting to .MOD, order list won't be too long anymore.
Playback (see also format-specific changes below)
^ <Jojo> Added some more standard playback frequencies (176KHz, 192KHz).
@@ -141,7 +136,7 @@
IT::Loading
^ <Jojo> Removed unnecessary / wrong pre-amp limits.
. <Jojo> IT files with global volume 0 are now loaded correctly.
- . <Jojo> Use correct header size (1.xx or 2.xx header) for comparison when checking instrument headers.
+ . <Jojo> In some very rare (almost only theoretical) cases, the last IT instrument would not be loaded in previous versions. Use correct instrument header size (1.xx or 2.xx header) for comparison when loading instrument headers.
IT::Playback compatibility
. <Jojo> Reset NNA actions on every note (tentative fix).
@@ -150,17 +145,15 @@
S3M
. <Jojo> ST3 compatibility: Only allow waveforms 0 to 3 for S3x / S4x / S5x.
- . <Jojo> The S3M format actually knows muted channels. Added this to the S3M loader/saver and MuteChannel functions.
+ . <Jojo> The S3M format actually knows muted channels. Added this to the S3M loader/saver.
XM::Loading
^ <Jojo> Allow to load modules with an empty order list (as they are, in fact, valid XM files).
XM::Playback compatibility
- . <Jojo> A somewhat more compatible Rxy effect. Still needs more testing, as it's approximately the same algorithm as in Milky (which I know is not 100% correct).
. <Jojo> Almost perfect arpeggio emulation (only a few notes are still wrong).
- . <Jojo> Rogue note delays.
+ . <Jojo> Rogue note delays are now retriggering the instrument.
. <Jojo> Perfect emulation of buggy Rxy behaviour. Thanks to Ian Luck for helping me with this.
- . <Jojo> Slightly improved Rxy behaviour.
. <Jojo> Command X modplug extensions are now ignored in FT2 compat mode.
MOD
@@ -172,9 +165,6 @@
+ <Jojo> Added song flag "PT 1.x Mode" (for .MOD files) that enabled on-the-fly sample swapping as ProTracker did it.
+ <Jojo> Support for the EFx command (Invert Loop). One has to pay attention when working with this command as it effictively trashes samples.
^ <Jojo> MOD Playback: if PT1.x playback flag is set, 8xx and E8x panning commands are now ignored.
- ^ <Jojo> MOD Playing: Some more (minor) tweaks for Invert Loop. Thanks again, bubsy!.
- . <Jojo> Further fixes to "Invert Loop" command (thanks, bubsy).
- . <Jojo> Improvements to the "Invert Loop" effect (was only applied on rows with EFx).
Module cleanup
+ <Jojo> New cleanup feature: Merge sequences.
@@ -191,7 +181,7 @@
Colour setup
+ <Jojo> Channel separators can now have custom colors.
+ <Jojo> Can now specify the blend colour for prev/next patterns.
- / <Jojo> Changed FT2 and IT presets to resemble those two trackers as much as possible.
+ / <Jojo> Renamed FT2 and IT presets to "Blue" and "Green", as they did not resemble FT2 and IT in any way.
/ <Jojo> Added VU Meter colours for the pattern colour presets.
/ <Jojo> Changed the "Buzz" colour scheme a bit.
. <Jojo> When loading colour presets that have less colours are defined than required, the missing colours will be replaced by those from the "MPT" preset.
@@ -199,6 +189,7 @@
Keymaps
+ <Jojo> Two new keymaps: French Laptop by Paul Legovitch, Norwegian MPT Classic by Rakib.
+ / <Jojo> Updated DE_jojo.mkb
^ <Jojo> When loading a keymap file and unrecognized lines are found, only one messagebox is shown.
/ <Jojo> All keymaps have been updated to version 1 and updated to contain the orderlist shortcuts.
. <Jojo> Keymap files have a version number now (currently version 1). If keymap file doesn't have a version number (that's version 0), the orderlist keys will be added automatically so that orderlist remains usable in new builds.
@@ -211,7 +202,6 @@
+ <Jojo> Can now import RIFF AM and RIFF AMFF files, as well as J2B files, which are compressed AM(FF) files. Added zlib 1.2.3 for J2B support.
+ <Jojo> Can now import PSM16 files.
. <Jojo> MED Loader: Possible error when loading orderlist.
- . <Jojo> PSM16 Loader: It was possible to load corrupted modules with > MAX_BASECHANNELS channels (up to 0xFFFF).
. <Jojo> MDL Loader: Various fixes (taken from Schism Tracker).
. <Jojo> IMF Loader: Slightly wrong instrument loader (this for once didn't break anything, though).
. <Jojo> AMF Loader: Missing break command.
@@ -229,7 +219,7 @@
/ <Jojo> Using MS Shell Dlg font instead of MS Sans Serif in resource file.
/ <re> Changed some "modplug tracker" strings to "OpenMPT".
. <Jojo> When using a Load/Save dialog, MPT's key handler will be disabled so that common shortcuts like F2, Ctrl+C, Ctrl+V, Esc. etc. can still be used.
- . <Jojo> Mod Loaders: Very short sample sustain loops are now also accepted (similar fix to normal loop points).
+ . <Jojo> Mod Loaders: Very short sample sustain loops are now also accepted (similar fix to normal loop points - fixes ckabsenc.it).
. <Jojo> Mod Creation: Filling the whole mod title field with null bytes on creation to avoid funky characters in other programs.
. <Jojo> When moving program files to %APPDATA%, take care of the keyboard settings path in the INI file.
. <Jojo> Increased "filename" string in instrument header field to 32, since CHAR[12] is not really enough for 12 letters...
@@ -242,7 +232,7 @@
General tab
^ <Jojo> "Modtype" dialog will revert mod flags to previous values if user presses the Cancel button.
- ^ <Jojo> Modtype Dialog: Added suffixes IT and S3M to some mod flags for more clarity.
+ ^ <Jojo> Modtype Dialog: Added suffixes "IT" and "S3M" to some mod flags for more clarity.
. <Jojo> VSTi / Sample volume sliders only go up to 255 instead of 256.
. <Jojo> Document will now be set modified when moving or inserting plugins.
@@ -261,7 +251,7 @@
/ <Jojo> Entering note with row spacing enabled can now move cursor to next pattern if continuous scroll is enabled.
. <Jojo> Inserting a new pattern won't resize it to 32 rows anymore if the current pattern has less than 32 rows.
. <Jojo> Show "offset" and "velocity" volume commands in default color instead of "pitch" color.
- . <Jojo> Weird combination of context menu shortcut and "always center active row" being disabled (http://lpchip.com/modplug/viewtopic.php?t=3203).
+ . <Jojo> Fixed weird combination of context menu shortcut and "always center active row" being disabled (http://lpchip.com/modplug/viewtopic.php?t=3203).
. <Jojo> Keyboard split note was off by one.
. <Jojo> Set max. row spacing / skipping value to 64, visibly clamp values > 64 to 64 in the edit box.
@@ -329,7 +319,7 @@
. <Jojo> Some minor tweaks and fixes to the MIDI mapping dialog.
Mod conversion
- ^ <Jojo> Convert E9x to Q8x as Q0x actually means "continue" and note "no change" for the volume change.
+ ^ <Jojo> Convert E9x to Q8x as Q0x actually means "continue" and not "no change" for the volume change.
^ <Jojo> Even better conversion of various pattern effects, including 8-Bit Panning, Arpeggio (XM swaps the two parameters) including Surround, Note Cut/Off/Fade conversion, MOD retrigger, XM->IT volume column limitations, illegal notes).
^ <Jojo> Proper conversion of Pxy effect.
^ <Jojo> Full volume column conversion, resetting default global volume / tempo / speed for MOD files.
@@ -337,7 +327,7 @@
^ <Jojo> Somewhat decent conversion of Kxx (Key Off) from XM to S3M/IT.
^ <Jojo> Trim instrument envelopes if they're too long for the new format.
^ <Jojo> Convert 500/600 commands properly from MOD to any format, Adjust sustain loops for XM files, removed XM arpeggio conversion (it might be unwanted).
- ^ <Jojo> Try to use fix commands that don't have cache (00 value) in XM (Arpeggio) and MOD format (Arpeggio and a few others) by using the previous value.
+ ^ <Jojo> Try to use fix commands that don't have a "memory" (00 value) in XM (Arpeggio) and MOD format (Arpeggio and a few others) by using the previous value.
. <Jojo> Proper conversion between IT 8-Bit panning effect and S3M 7-Bit panning effect with surround.
. <Jojo> Unset release nodes were corrupted when converting modules.
@@ -371,8 +361,8 @@
IT::Loading
^ <Jojo> Can now load IT files with very small patterns (< 4 rows).
^ <Jojo> Setting the "last saved with" version to 1.16 (instead of "created with") if module seems to be made with the old MPT.
- ^ <Jojo> Reading our custom tracker version now as well.
- ^ <Jojo> Detect more version of MPT that did stupid things.
+ ^ <Jojo> Reading our custom tracker version in the header now as well.
+ ^ <Jojo> Detect more versions of MPT that did stupid things.
^ <Jojo> Row highlighting in IT header is now recognized.
. <Jojo> Unset release env nodes for IT files made with IT 1.x, fix fadeout values.
. <Jojo> Don't set "made with modplug" flag for IT files that were made with compatibility export.
@@ -387,11 +377,8 @@
. <Jojo> Better sample vibrato compatibility. Vibrato Sweep isn't perfect yet, though.
. <Jojo> Special case of Retrigger + Envelopes.
. <Jojo> Offset beyond sample range.
- . <Jojo> Removed a "fix" again that was causing to completely destroy panbrello.
- . <Jojo> Don't reset channel panning if panbrello ends (experimental).
. <Jojo> Don't reset Tremolo on new note, don't ignore tremolo if note volume is 0.
- . <Jojo> Fixed Tremolo, Vibrato and Panbrello tables.
- . <Jojo> Ignore S [345]x with x > 3.
+ . <Jojo> Ignore S[345]x with x > 3.
. <Jojo> Multisample instruments change with no entry in the instrument column (fixes spx-shuttledeparture.it) (test me).
. <Jojo> Tremor also works properly with "old effects" on.
. <Jojo> Fixed retrigger for Qxx when not being triggered together with a note.
@@ -415,15 +402,15 @@
. <Jojo> Set the stereo flag.
. <Jojo> Ignore new MPT effects.
. <Jojo> Patterns are now saved correctly. Previously, the last few rows might have come up as garbage in ST3, especially (only?) when they were empty.
- . <Jojo> Clamp sample pre-amp to [32;127] instead of just taking the lower 7 bits. (Default pre-amp value as 128, which resulted in pre-amp 0 when saving).
+ . <Jojo> Clamp sample pre-amp to [32;127] instead of just taking the lower 7 bits. (Default pre-amp value was 128, which resulted in pre-amp 0 when saving).
S3M::Loading
^ <Jojo> Recognize OpenMPT version in S3M header.
. <Jojo> Limit min sample preamp value to 0x10.
- . <Jojo> Small modifications to pattern loader to load somewhat broken S3M files.
+ . <Jojo> Small modifications to pattern loader to load somewhat broken S3M files (fix from xmp).
. <Jojo> Don't reset global volume to max if it is min for "new" modules.
. <Jojo> Smarter Zxx conversion.
- . <Jojo> Disable loop for files with very short loop at the beginning of the sample.
+ . <Jojo> Disable loop for sample with very short loop at the beginning.
. <Jojo> Samples with very short loops (2 bytes) will now load correctly. This fixes for example 94hitmix.s3m and spectral.s3m.
. <Jojo> Short loops in S3M samples are now recognized.
@@ -443,16 +430,14 @@
^ <Jojo> Make XMs with strange pattern header sizes load correctly (removed some code that was there to make really, really broken XMs load - would this work at all?).
^ <Jojo> Setting the "last saved with" version to 1.16 (instead of "created with") if module seems to be made with the old MPT.
^ <Jojo> Less hacky implementation of the instrument loader. Still works correctly with "normal" XM modules and BoobieSqueezed XMs.
- . <Jojo> Various changes to make XMs that have been compressed with BoobieSqueezer load correctly. Should not break anything, but I call it "experimental".
+ . <Jojo> Various changes to make XMs that have been compressed with BoobieSqueezer load correctly.
. <Jojo> Can now load XM Version 1.02 and 1.03.
. <Jojo> More intelligent conversion of Speed / Tempo commands.
- . <Jojo> Don't ignore last pattern if XM has no instruments.
+ . <Jojo> Don't ignore last pattern if XM file has no instruments.
XM::Saving
^ <Jojo> Compatibility export: Export cuts off channels > 32.
- ^ <Jojo> Setting "Open ModPlug Tracker" in the "made with" field (as any other tracker put their signature in here as well).
- ^ <Jojo> Include version number in "made with" string.
- ^ <Jojo> When channel count is odd, the empty channel is now always the last one.
+ ^ <Jojo> Setting "OpenMPT <version number>" in the "made with" field (as any other tracker put their signature in here as well).
. <Jojo> Always save with a channel number that's a multiple of two so FT2 will load the file correctly.
. <Jojo> F20 won't turn into G20.
. <Jojo> Limit fadeout values properly.
@@ -469,14 +454,13 @@
. <Jojo> Tempo slides won't exceed 255 BPM in compatible mode.
. <Jojo> In compatible mode, old retrigger routines are used again (as MPT's default retrigger algorithm actually represents FT2's retrigger algorithm). Additionally, a retrigger bug from FT2 is emulated (retrigger with vxx on the same channel would always reset the retriggered note's volume).
. <Jojo> More compatible handling of Kxx effect.
- . <Jojo> Pattern loops are now handeled correctly in XM (using compatibility switch) and MOD files.
+ . <Jojo> Pattern loops are now handeled correctly (using compatibility switch).
. <Jojo> Out of range global volume, local global volume slides.
- . <Jojo> Arpeggio was played wrong (0xy should play base note - y - x, not base note - x - y).
MOD
^ <Jojo> Module Creation: MOD files have 4 channels by default.
^ <Jojo> Moved loop length check from compatibility export to normal save, as it does not break/change any MPT-made MOD file.
- . <Jojo> Module Creation / Loading: Sane default volume settings for MOD / S3M files again(128 global volume, 48 sample volume).
+ . <Jojo> Module Creation / Loading: Sane default volume settings for MOD / S3M files again (128 global volume, 48 sample volume).
. <Jojo> Inserting more than 128 orders in MOD format is not possible anymore.
MOD::Loading
@@ -490,7 +474,7 @@
MOD::Playback compatibility
. <Jojo> 8-Bit Panning is not 7-Bit panning (using 800...8FF instead of 800...880 - fixes f.e. DOPE.MOD).
- . <Jojo> Pattern loops are now handeled correctly in XM (using compatibility switch) and MOD files.
+ . <Jojo> Pattern loops are now handeled correctly.
Setup
+ <Jojo> New default directories: plugins and plugin presets.
@@ -508,10 +492,10 @@
Misc
+ <Jojo> Compo cleanup.
- + <Jojo> Rearrange samples is back! And this time, it's even fully functional!.
+ + <Jojo> Rearrange samples is back! And this time, it's even fully functional!
^ <Jojo> XI Saver: Fill out the "created with" field properly (OpenMPT instead of FastTracker 2).
- ^ <Jojo> Write ID3v2.4 instead of ID3v1 tags. Includes various changes to length limits, genre limitations and what's written in the tags.
- ^ <Jojo> Mod Specs: Decreased minimum pattern size for XM and IT format to 1 row. Experimental, but should not break anything (needs more testing).
+ ^ <Jojo> MP3 export: Write ID3v2.4 instead of ID3v1 tags. Includes various changes to length limits, genre limitations and what's written in the tags.
+ ^ <Jojo> Mod Specs: Decreased minimum pattern size for XM and IT format to 1 row.
^ <Jojo> Mod Specs: It is now possible to have modules with 1-3 channels, as this only seems to cause trouble with MOD files (so they still have 4 channels minimum of course).
^ <Jojo> Autosave: If a module has not been changed since the last autosave, it will not be autosaved.
^ <Jojo> Module loader: If plugins are missing, a single MessageBox is shown.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rel...@us...> - 2010-01-10 17:21:35
|
Revision: 462
http://modplug.svn.sourceforge.net/modplug/?rev=462&view=rev
Author: relabsoluness
Date: 2010-01-10 17:21:21 +0000 (Sun, 10 Jan 2010)
Log Message:
-----------
[Mod] Pattern editor: In parameter control note interpolation, overwrite parameter control notes which have zero in instrument column.
[Mod] SoundTouch: Now using its own DLL interface.
[Mod] Wav export: Added "experimental"-note to normalization.
[Mod] General: Updated about box and added Changes-message box.
[Mod] Package template: Update to history.txt.
[Fix] Sample tab: Actions such as time stretching and undo could trigger sample play due to a bug in ctrlChn::ReplaceSample.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Ctrl_smp.cpp
trunk/OpenMPT/mptrack/MainFrm.cpp
trunk/OpenMPT/mptrack/Mptrack.cpp
trunk/OpenMPT/mptrack/View_pat.cpp
trunk/OpenMPT/mptrack/mptrack.rc
trunk/OpenMPT/mptrack/mptrack.vcproj
trunk/OpenMPT/mptrack/res/MPTRACK.RC2
trunk/OpenMPT/mptrack/resource.h
trunk/OpenMPT/packageTemplate/History.txt
trunk/OpenMPT/soundlib/modsmp_ctrl.cpp
trunk/OpenMPT/soundtouch/FIFOSamplePipe.h
trunk/OpenMPT/soundtouch/STTypes.h
trunk/OpenMPT/soundtouch/SoundTouch.h
trunk/OpenMPT/soundtouch/soundtouch.vcproj
trunk/OpenMPT/soundtouch/soundtouch_08.vcproj
Added Paths:
-----------
trunk/OpenMPT/soundtouch/SoundTouchDLL.cpp
trunk/OpenMPT/soundtouch/SoundTouchDLL.h
Modified: trunk/OpenMPT/mptrack/Ctrl_smp.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2010-01-10 14:50:33 UTC (rev 461)
+++ trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2010-01-10 17:21:21 UTC (rev 462)
@@ -11,6 +11,7 @@
#include "mpdlgs.h"
#include "soundtouch/SoundTouch.h"
#include "soundtouch/TDStretch.h"
+#include "soundtouch/SoundTouchDLL.h"
#pragma warning(disable:4244) //"conversion from 'type1' to 'type2', possible loss of data"
#include "smbPitchShift.cpp"
#pragma warning(default:4244) //"conversion from 'type1' to 'type2', possible loss of data"
@@ -1772,6 +1773,7 @@
int CCtrlSamples::TimeStretch(double ratio)
//-----------------------------------------
{
+ static HANDLE handleSt = NULL; // Handle to SoundTouch object.
if((!m_pSndFile) || (!m_pSndFile->Samples[m_nSample].pSample)) return -1;
MODSAMPLE *pSmp = &m_pSndFile->Samples[m_nSample];
if(!pSmp) return -1;
@@ -1792,14 +1794,16 @@
if(pitch < 0.5f) return 2 + (1<<8);
if(pitch > 2.0f) return 2 + (2<<8);
- soundtouch::SoundTouch* pSoundTouch = 0;
- try
+ if (handleSt != NULL && soundtouch_isEmpty(handleSt) == 0)
+ return 10;
+
+ if (handleSt == NULL)
{
- pSoundTouch = new soundtouch::SoundTouch;
+ handleSt = soundtouch_createInstance();
}
- catch(...)
- { // Assuming that thrown exception means that soundtouch library could not be loaded.
- MessageBox("Failed to load soundtouch library.", 0, MB_ICONERROR);
+ if (handleSt == NULL)
+ {
+ AfxMessageBox(IDS_SOUNDTOUCH_LOADFAILURE);
return -1;
}
@@ -1833,10 +1837,7 @@
//const DWORD nNewSampleLength = (DWORD)(0.5 + ratio * (double)pSmp->nLength);
PVOID pNewSample = CSoundFile::AllocateSample(nNewSampleLength * nChn * smpsize);
if(pNewSample == NULL)
- {
- delete pSoundTouch;
return 3;
- }
// Save process button text (to be used as "progress bar" indicator while processing)
CHAR oldText[255];
@@ -1866,16 +1867,15 @@
{
if(nSampleRate < 300) // Too low samplerate crashes soundtouch.
{ // Limiting it to value 300(quite arbitrarily chosen).
- delete pSoundTouch;
return 5;
}
- pSoundTouch->setSampleRate(nSampleRate);
- pSoundTouch->setChannels(nChn);
+ soundtouch_setSampleRate(handleSt, nSampleRate);
+ soundtouch_setChannels(handleSt, nChn);
// Given ratio is time stretch ratio, and must be converted to
// tempo change ratio: for example time stretch ratio 2 means
// tempo change ratio 0.5.
- pSoundTouch->setTempoChange( (1.0f / ratio - 1.0f) * 100.0f);
- pSoundTouch->setSetting(SETTING_USE_QUICKSEEK, 0);
+ soundtouch_setTempoChange(handleSt, (1.0f / ratio - 1.0f) * 100.0f);
+ soundtouch_setSetting(handleSt, SETTING_USE_QUICKSEEK, 0);
// Read settings from GUI.
ReadTimeStretchParameters();
@@ -1887,16 +1887,16 @@
// Set settings to soundtouch. Zero value means 'use default', and
// setting value is read back after setting because not all settings are accepted.
if(m_nSequenceMs == 0) m_nSequenceMs = DEFAULT_SEQUENCE_MS;
- pSoundTouch->setSetting(SETTING_SEQUENCE_MS, m_nSequenceMs);
- m_nSequenceMs = pSoundTouch->getSetting(SETTING_SEQUENCE_MS);
+ soundtouch_setSetting(handleSt, SETTING_SEQUENCE_MS, m_nSequenceMs);
+ m_nSequenceMs = soundtouch_getSetting(handleSt, SETTING_SEQUENCE_MS);
if(m_nSeekWindowMs == 0) m_nSeekWindowMs = DEFAULT_SEEKWINDOW_MS;
- pSoundTouch->setSetting(SETTING_SEEKWINDOW_MS, m_nSeekWindowMs);
- m_nSeekWindowMs = pSoundTouch->getSetting(SETTING_SEEKWINDOW_MS);
+ soundtouch_setSetting(handleSt, SETTING_SEEKWINDOW_MS, m_nSeekWindowMs);
+ m_nSeekWindowMs = soundtouch_getSetting(handleSt, SETTING_SEEKWINDOW_MS);
if(m_nOverlapMs == 0) m_nOverlapMs = DEFAULT_OVERLAP_MS;
- pSoundTouch->setSetting(SETTING_OVERLAP_MS, m_nOverlapMs);
- m_nOverlapMs = pSoundTouch->getSetting(SETTING_OVERLAP_MS);
+ soundtouch_setSetting(handleSt, SETTING_OVERLAP_MS, m_nOverlapMs);
+ m_nOverlapMs = soundtouch_getSetting(handleSt, SETTING_OVERLAP_MS);
// Update GUI with the actual SoundTouch parameters in effect.
UpdateTimeStretchParameterString();
@@ -1926,22 +1926,23 @@
::GdiFlush();
// Send sampledata for processing.
- pSoundTouch->putSamples(reinterpret_cast<int16*>(pSmp->pSample + pos * smpsize * nChn), len);
+ soundtouch_putSamples(handleSt, reinterpret_cast<int16*>(pSmp->pSample + pos * smpsize * nChn), len);
// Receive some processed samples (it's not guaranteed that there is any available).
- nLengthCounter += pSoundTouch->receiveSamples(reinterpret_cast<int16*>(pNewSample) + nChn * nLengthCounter, nNewSampleLength - nLengthCounter);
+ nLengthCounter += soundtouch_receiveSamples(handleSt, reinterpret_cast<int16*>(pNewSample) + nChn * nLengthCounter, nNewSampleLength - nLengthCounter);
// Next buffer chunk
pos += len;
}
// The input sample should now be processed. Receive remaining samples.
- pSoundTouch->flush();
- while(pSoundTouch->numSamples() > 0 && nNewSampleLength > nLengthCounter)
+ soundtouch_flush(handleSt);
+ while(soundtouch_numSamples(handleSt) > 0 && nNewSampleLength > nLengthCounter)
{
- nLengthCounter += pSoundTouch->receiveSamples(reinterpret_cast<int16*>(pNewSample) + nChn * nLengthCounter, nNewSampleLength - nLengthCounter);
+ nLengthCounter += soundtouch_receiveSamples(handleSt, reinterpret_cast<int16*>(pNewSample) + nChn * nLengthCounter, nNewSampleLength - nLengthCounter);
}
- delete pSoundTouch; pSoundTouch = 0;
+ soundtouch_clear(handleSt);
+ ASSERT(soundtouch_isEmpty(handleSt) != 0);
ASSERT(nNewSampleLength >= nLengthCounter);
Modified: trunk/OpenMPT/mptrack/MainFrm.cpp
===================================================================
--- trunk/OpenMPT/mptrack/MainFrm.cpp 2010-01-10 14:50:33 UTC (rev 461)
+++ trunk/OpenMPT/mptrack/MainFrm.cpp 2010-01-10 17:21:21 UTC (rev 462)
@@ -2724,7 +2724,7 @@
// case ID_NETLINK_UT: pszURL = "http://www.united-trackers.org"; break;
// case ID_NETLINK_OSMUSIC: pszURL = "http://www.osmusic.net/"; break;
// case ID_NETLINK_HANDBOOK: pszURL = "http://www.modplug.com/mods/handbook/handbook.htm"; break;
-// case ID_NETLINK_MPTFR: pszURL = "http://mpt.new.fr/"; break;
+ case ID_NETLINK_MPTFR: pszURL = "http://mpt.new.fr/"; break;
case ID_NETLINK_FORUMS: pszURL = "http://www.lpchip.com/modplug"; break;
case ID_NETLINK_PLUGINS: pszURL = "http://www.kvraudio.com"; break;
case ID_NETLINK_MODARCHIVE: pszURL = "http://modarchive.org/"; break;
Modified: trunk/OpenMPT/mptrack/Mptrack.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Mptrack.cpp 2010-01-10 14:50:33 UTC (rev 461)
+++ trunk/OpenMPT/mptrack/Mptrack.cpp 2010-01-10 17:21:21 UTC (rev 462)
@@ -227,24 +227,29 @@
static void ShowChangesDialog()
//-----------------------------
{
- /*
- const char* const firstOpenMessage = "OpenMPT development build " MPT_VERSION_STR ".\n\n"
- "Some notable changes since version 1.17.02.48:\n\n"
- " [New] Name filter in plugin selection dialog.\n"
- " [New] Behavior of vxx command when used with plugin instruments can now be configured in instrument tab.\n"
- " [New] MIDI controllers can be used to control plugin parameters(View->MIDI mapping).\n"
- " [New] Possibility to use more Impulse Tracker compatible playback with IT-files. Is used\n "
- " automatically if loaded IT-file doesn't seem to be Modplug made.\n"
- " [New/Fix] A couple of new sample editing functions and various modifications/fixes in sample tab.\n"
- " [Mod] mptm files made with this version will be recognized as IT in 1.17.02.48.\n"
- " [Mod] Automatic update check on startup is no longer available.\n"
- " [Fix] Copy/Paste in pattern was partly broken when working with MOD format.\n"
- " [Fix] Fixed wrong version in IT files saved with compatibility export.\n"
+ const char* const firstOpenMessage = "OpenMPT build " MPT_VERSION_STR ".\n\n"
+ "Some changes since version 1.17.02.54:\n\n"
+ " [New] Pattern tab: New paste modes: overflow, push forward and flood.\n"
+ " [Mod] Pattern tab: Keyboard split is now accessible from keyshortcut or menu.\n"
+ " [Imp] Pattern tab: Numerous improvements including better effect descriptions in note properties.\n"
+ " [New] Sequence editor: Can now handle order selections including delete/copy/cut/paste functionality.\n"
+ " [New] Sequence editor: Can render selected patterns to wave directly from orderlist.\n"
+ " [New] Envelope editor: Numerous improvements including ability to insert and remove points easily.\n"
+ " [New] Sample tab: sample undo, sample draw, resize sample, DC offset removal, batch export, better loop...\n"
+ " ...point handling when deleting selections. Play sample from given position with Ctrl + left mouse button.\n"
+ " [New] MPTM: New parameter controls for controlling plug params from pattern.\n"
+ " [New] MPTM: Can have envelope points up to 240 and multiple sequences.\n"
+ " [New] MIDI mapping: Editing a plug param in its editor while holding shift key will now open MIDI mapping dialog.\n"
+ " [New] MIDI mapping: Can now record MIDI mapping changes to pattern.\n"
+ " [Imp] MOD/S3M/XM/IT: Numerous improvements to load, save and playback compatibility.\n"
+ " [New] Input: Can import RIFF AM, RIFF AMFF, J2B, PSM16, IMF, GDM and SCL files. Improved PSM import.\n"
+ " [New] Setup: New default directories: plugins and plugin presets, sharable colour schemes\n"
+ " [New] Cleanup: New option compo cleanup, rearrange samples is back, can merge sequences.\n"
+ " [Mod] Misc: Program settings are now by default stored in %APPDATA%\\OpenMPT\n"
"\n"
- " For more detailed list of changes, see history.txt.";
+ " and many more. See history.txt for more details.";
CMainFrame::GetMainFrame()->MessageBox(firstOpenMessage, "OpenMPT " MPT_VERSION_STR, MB_ICONINFORMATION);
- */
}
@@ -1839,12 +1844,12 @@
const char* const pArrCredit = {
"OpenMPT / Modplug Tracker|"
- "Copyright \xA9 2004-2009 Contributors|"
+ "Copyright \xA9 2004-2010 Contributors|"
"Copyright \xA9 1997-2003 Olivier Lapicque (ol...@mo...)|"
"|"
"Contributors:|"
- "Ahti Lepp\xE4nen (2005-2009)|"
- "Johannes Schultz (2008-2009)|"
+ "Ahti Lepp\xE4nen (2005-2010)|"
+ "Johannes Schultz (2008-2010)|"
"Robin Fernandes (2004-2007)|"
"Sergiy Pylypenko (2007)|"
"Eric Chavanon (2004-2005)|"
Modified: trunk/OpenMPT/mptrack/View_pat.cpp
===================================================================
--- trunk/OpenMPT/mptrack/View_pat.cpp 2010-01-10 14:50:33 UTC (rev 461)
+++ trunk/OpenMPT/mptrack/View_pat.cpp 2010-01-10 17:21:21 UTC (rev 462)
@@ -2214,10 +2214,10 @@
break;
case PARAM_COLUMN:
case EFFECT_COLUMN:
- if(srcCmd.note == NOTE_PC || srcCmd.note == NOTE_PCS || destCmd.note == NOTE_PCS || destCmd.note == NOTE_PC)
+ if(srcCmd.IsPcNote() || destCmd.IsPcNote())
{
doPCinterpolation = true;
- PCnote = (srcCmd.note == NOTE_PC || srcCmd.note == NOTE_PCS) ? srcCmd.note : destCmd.note;
+ PCnote = (srcCmd.IsPcNote()) ? srcCmd.note : destCmd.note;
vsrc = srcCmd.GetValueEffectCol();
vdest = destCmd.GetValueEffectCol();
PCparam = srcCmd.GetValueVolCol();
@@ -2263,9 +2263,9 @@
case EFFECT_COLUMN:
if(doPCinterpolation)
{ // With PC/PCs notes, copy PCs note and plug index to all rows where
- // effect interpolation is done, if no PC note is there.
+ // effect interpolation is done if no PC note with non-zero instrument is there.
const uint16 val = static_cast<uint16>(vsrc + ((vdest - vsrc) * (int)i + verr) / distance);
- if(pcmd->note != NOTE_PC && pcmd->note != NOTE_PCS)
+ if (pcmd->IsPcNote() == false || pcmd->instr == 0)
{
pcmd->note = PCnote;
pcmd->instr = PCinst;
Modified: trunk/OpenMPT/mptrack/mptrack.rc
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.rc 2010-01-10 14:50:33 UTC (rev 461)
+++ trunk/OpenMPT/mptrack/mptrack.rc 2010-01-10 17:21:21 UTC (rev 462)
@@ -231,8 +231,8 @@
COMBOBOX IDC_COMBO2,78,18,73,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Change Player Options",IDC_PLAYEROPTIONS,18,36,81,14,BS_CENTER
CONTROL "Channel mode (one file per channel)",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,168,8
- CONTROL "Normalize Output",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,73,10
- CONTROL "High quality resampling",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,102,66,84,10
+ CONTROL "Normalize Output (experimental)",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,119,10
+ CONTROL "High quality resampling",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,112,36,84,10
CONTROL "Slow render (for Kontakt+DFD)",IDC_GIVEPLUGSIDLETIME,
"Button",BS_AUTOCHECKBOX | BS_LEFT | BS_MULTILINE | WS_TABSTOP,18,78,133,8
GROUPBOX "Limit",IDC_STATIC,6,102,192,90
@@ -2308,6 +2308,7 @@
IDS_TUNING_IMPORT_SCL_FAILURE "-Unable to import ""%1%2"": %3.\n"
IDS_TUNING_IMPORT_UNRECOGNIZED_FILE
"-Unable to import file ""%1%2"": unrecognized file.\n"
+ IDS_SOUNDTOUCH_LOADFAILURE "Unable to load OpenMPT_soundtouch_i16.dll."
END
#endif // English (U.S.) resources
Modified: trunk/OpenMPT/mptrack/mptrack.vcproj
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.vcproj 2010-01-10 14:50:33 UTC (rev 461)
+++ trunk/OpenMPT/mptrack/mptrack.vcproj 2010-01-10 17:21:21 UTC (rev 462)
@@ -54,7 +54,7 @@
LinkIncremental="2"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories=""
- DelayLoadDLLs="OpenMPT_soundtouch.dll"
+ DelayLoadDLLs="OpenMPT_soundtouch_i16.dll"
GenerateDebugInformation="TRUE"
AssemblyDebug="1"
ProgramDatabaseFile=".\Debug/mptrack.pdb"
@@ -132,7 +132,7 @@
LinkIncremental="1"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories=""
- DelayLoadDLLs="OpenMPT_soundtouch.dll"
+ DelayLoadDLLs="OpenMPT_soundtouch_i16.dll"
GenerateDebugInformation="TRUE"
GenerateMapFile="FALSE"
MapFileName=".\Release/mptrack.map"
Modified: trunk/OpenMPT/mptrack/res/MPTRACK.RC2
===================================================================
--- trunk/OpenMPT/mptrack/res/MPTRACK.RC2 2010-01-10 14:50:33 UTC (rev 461)
+++ trunk/OpenMPT/mptrack/res/MPTRACK.RC2 2010-01-10 17:21:21 UTC (rev 462)
@@ -43,7 +43,7 @@
VALUE "FileDescription", "OpenMPT / ModPlug Tracker"
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", "Modplug Tracker"
- VALUE "LegalCopyright", "Copyright \xA91997-2003 Olivier Lapicque; \xA92004-2009 contributors."
+ VALUE "LegalCopyright", "Copyright \xA91997-2003 Olivier Lapicque; \xA92004-2010 contributors."
VALUE "LegalTrademarks", "M.O.D.P.L.U.G"
VALUE "OriginalFilename", "mptrack.exe"
VALUE "PrivateBuild", ""
Modified: trunk/OpenMPT/mptrack/resource.h
===================================================================
--- trunk/OpenMPT/mptrack/resource.h 2010-01-10 14:50:33 UTC (rev 461)
+++ trunk/OpenMPT/mptrack/resource.h 2010-01-10 17:21:21 UTC (rev 462)
@@ -66,6 +66,7 @@
#define IDS_TUNING_IMPORT_UNKNOWN_TC_FAILURE 227
#define IDS_TUNING_IMPORT_SCL_FAILURE 228
#define IDS_TUNING_IMPORT_UNRECOGNIZED_FILE 229
+#define IDS_SOUNDTOUCH_LOADFAILURE 230
#define IDB_MAINBAR 300
#define IDB_IMAGELIST 301
#define IDB_PATTERNS 302
Modified: trunk/OpenMPT/packageTemplate/History.txt
===================================================================
--- trunk/OpenMPT/packageTemplate/History.txt 2010-01-10 14:50:33 UTC (rev 461)
+++ trunk/OpenMPT/packageTemplate/History.txt 2010-01-10 17:21:21 UTC (rev 462)
@@ -3,12 +3,539 @@
.: bug fix
+: new feature
+^: Improvement
-: known issue / regression
/: change
?: other
(tx XYZ): thanks to XYZ for telling us about the bug
+--------------------
+
+General tab
+ . <Jojo> Channel name input field was not limited properly.
+
+Sequence editor
+ + <re> Can now copy/cut/paste order selections.
+ ^ <Jojo> Using the keyboard manager for shortcuts. 0...9, + and - keys are now also configurable.
+ ^ <Jojo> Duplicate / Create new pattern shortcuts do also work now here.
+ ^ <Jojo> Show cut/copy/paste orders in context menu.
+ ^ <Jojo> Middle click can now also be used for queuing patterns.
+ . <Jojo> Show correct shortcuts in context menus
+ . <Jojo> Pasting orders now removes "+++" items if they are not supported by the current format.
+ . <Jojo> Fixed display error when selecting multiple orders, inserting them and clicking on another order (only first order of previous selection was un-highlighted).
+
+Pattern tab::Pattern editing
+ + <Jojo> New paste mode "push forward paste", which resembles the default paste behaviour of Impulse Tracker. Includes new shortcut.
+ + <Jojo> The "paste flood" command pastes the clipboard content again and again until it hits the bottom of the pattern (overflow paste will be disabled automatically if paste flood is used, for obvious reasons).
+ ^ <Jojo> When using the MPTM format, plugin param changes are written to the pattern as PC Notes.
+ ^ <Jojo> Assume that the clipboard pattern format is IT (instead of MOD) if no information about the format is available.
+ ^ <Jojo> Pattern c&p: convert pasted commands if necessary.
+ / <re> Pattern c&p: Mix paste shouldn't anymore trigger conversion on modcommands that weren't changed at all. Now, however, partial conversion will not be done so this still needs further fixing.
+ ^ <Jojo> If "record note off" is enabled and Note Off commands are not supported by the current format, try Note Cut and volume commands.
+ / <Jojo> It is impossible to enter something into the volume column in mod format now.
+ / <Jojo> When interpolating PC notes, the plugin number and note type won't get overriden if the note type is already PC or PCs. I find this more logical.
+ . <re> Pattern c&p: Mix paste should behave better with parameter control notes.
+ . <Jojo> PCNote handling was missing in OnClearSelection, so it was possible to delete the effect column only partly
+ . <Jojo> Amplify acted VERY weird when it was applied on an instrument that's not assigned to any sample. Should be a bit better now.
+ . <Jojo> Amplify doesn't use volume column in mod format anymore.
+ . <Jojo> When recording live from the keyboard, SDx shouldn't exceed the song speed anymore.
+ . <Jojo> Got rid of possible redundant undo points.
+ . <Jojo> Pattern c&p: invalid commands are not pasted anymore.
+ . <Jojo> PC Notes are now deleted properly (last column).
+ . <Jojo> Copying only the param column of PC notes overwrote the value column when pasting them.
+ . <Jojo> Entering Note Fade notes didn't work the "old style" way.
+ . <Jojo> PCNote handling was missing in OnClearSelection, so it was possible to delete the effect column only partly.
+
+Pattern tab::GUI
+ + <Jojo> Channel rename dialog in channel header context menu.
+ ^ <Jojo> Tidied up the upper panel. It fits perfectly on a 1024x768 screen with treeview enabled and also works on 800x600 with treeview disabled. With the new layout, about 8 more pattern rows can be seen.
+ / <Jojo> Due to this cleanup, the "split keyboard" feature has been removed from the interface. The split keyboard settings dialog can now be accessed by using a shortcut, which should be even faster than the old method.
+ ^ <re> If keyboard split is active, instrument drop list will show split instrument and split note.
+ ^ <Jojo> Grey out pattern name input field when in MOD/S3M mode.
+ ^ <Jojo> Added sequence selection edit control.
+ / <Jojo> Instead of hiding the sequence name control, just disable it (looks better).
+ . <Jojo> If the current pattern is the last possible pattern in the sequence, no "next pattern" is displayed.
+
+Pattern tab::Note properties
+ ^ <Jojo> Hopefully correct limitation and explanation of "Set * waveform" parameters...
+ ^ <Jojo> Better explanation of "Invert Loop" parameter.
+
+Pattern tab::Find/replace
+ ^ <Jojo> When using Find&Replace, "follow song" will be disabled, because it's pointless and unusable with "follow song" on.
+ . <Jojo> Search&Replace didn't create an undo point.
+
+Pattern tab::Misc
+ + <Jojo> New keyboard shortcut in pattern context: Duplicate pattern.
+ . <Jojo> When in sample mode, samples were never stopped when in new-style note off mode, which lead to sample jam when using long/looped samples.
+
+Sample tab
+ + <Jojo> Sample Undo. 100 steps per sample (independent), undo buffer is cut off at a tenth of physical memory (that would be 400 MB for a system with 4 GB of RAM). Cutoff size can be specified by setting UndoBufferSize (in Megabytes) in section [Sample Editor] <Jojo> of mptrack.ini.
+ ^ <Jojo> When creating a new sample using "resize", sample loop is activated automatically.
+ ^ <Jojo> When sample is 8-bit, it will automatically be converted to 16-bit when applying time stretching / pitch shifting.
+ ^ <Jojo> Can now enter insanely high values into sample frequency input field (as they are supported by Impulse Tracker), allow only 65536 Hz for S3M files.
+ / <Jojo> Removed time stretcher's / pitch shifter's preview function as it's unnecessary now.
+ . <Jojo> When going down close to 0 Hz in the sample editor, the sample freq wrapped around to the maximum value.
+ . <Jojo> Insert Silence: Loop points were not updated when adding silence at the beginning of the sample
+ . <Jojo> Pitch shift: Was slightly broken for 8-bit samples.
+ . <Jojo> Time Stretch / Pitch Shift button's caption was not updated properly.
+
+Instrument tab
+ . <Jojo> When playing an instrument and disabling its envelopes at the same time, they're stopped (prevents filter envelope from turning into a pitch envelope).
+ . <re> Sample map was broken when dealing with sample indexes greater than 255.
+ . <Jojo> Update plugin list properly when cleaning up plugins while being on the instrument tab (possibly also improves instrument tab behaviour when working with multiple windows).
+
+Instrument tab::Envelope editor
+ + <Jojo> Envelopes can be edited using keyboard. Various keyboard shortcuts have been added to move and edit envelope points. This uses a common "drag and drop" node with mouse editing, so a point can first be clicked and the be moved with f.e. cursor keys.
+ ^ <Jojo> When creating a new envelope, automatically enable it as well.
+ ^ <Jojo> Mark currently selected envelope node yellow for better visibility.
+ / <Jojo> Middle line is also shown for volume envelope.
+ . <Jojo> When pasting envelopes, the enabled and filter flags were lost.
+
+Comments tab
+ ^ <Jojo> If sample size is < 1 KB, amount of bytes is shown instead of "0 KB".
+ . <Jojo> The lower part of the tab was receiving update messages that were not even meaningful to this tab (f.e. speed changes), so it was updating quite often modules that have alternating speed... Only letting in important update messages now.
+
+Treeview
+ + <Jojo> Show sequences in song treeview. Sequences can be inserted, duplicated and deleted by right-clicking the sequence items.
+ + <Jojo> Clicking on a mod item (only filename node) switches to the corresponding window.
+ + <Jojo> Display playing samples / instruments (only those that are assigned to a sample). Can be enabled from setup screen.
+ + <Jojo> Muted samples and instruments are shown with a different icon.
+ ^ <Jojo> Can now dragondrop orders, even between sequences.
+ ^ <Jojo> Double-clicking order items and pattern items should work now.
+ ^ <Jojo> Show whole sequence (don't stop on first "---" item).
+ ^ <Jojo> Switching between sequences should be easier now. There's a context menu entry for it and double-clicking on an empty sequence will switch to it (as there are no orderlist item to click on).
+ ^ <Jojo> Different icons for effects / instruments
+
+VST / MIDI mapping
+ ^ <Jojo> VST Editor: When dealing with midi learn in vst editors (with Shift key), also accept child windows of the VST editor as valid window. This still doesn't fix the Shift+clicking sliders issue in Synth1, but might help with other plugins.
+ ^ <Jojo> Further improvement to param mapping so that the midi dialog really only pops up when the VST window has the focus.
+ ^ <Jojo> VST Selector: Different icons for effects / instruments.
+ . <Jojo> When moving around plugins, param control notes are now also updated.
+ . <re> MIDI mapping: Pattern record checkbox wasn't updated properly.
+ . <re> MIDI mapping: Shift key erroneously opened MIDI mapping dialog in some cases.
+
+Mod conversion
+ ^ <Jojo> When converting a song that has subsongs to MPTM format, the user is asked if those subsongs should be converted into multiple sequences.
+ ^ <Jojo> Better conversion of MOD/XM E4x / E7x command.
+ ^ <Jojo> Better conversion of note off commands when converting to .mod.
+ ^ <Jojo> Removing channel features (pan/vol) in formats where they're not supported.
+ ^ <Jojo> Insert pattern break commands when resizing patterns to 64 rows that were smaller.
+ ^ <Jojo> Changing between MOD and XM format limits CMD_SPEED/CMD_TEMPO properly now.
+ ^ <Jojo> Trim sequence if it's too long.
+ ^ <Jojo> Detect and fix patterns with Bxx effect properly when merging sequences.
+ ^ <Jojo> If possible, all MPTM sequences will be merged into the first sequence.
+ ^ <Jojo> Remove sample vibrato and sustain loops for MOD/S3M.
+ ^ <Jojo> When converting to .MOD, order list won't be too long anymore.
+
+Playback (see also format-specific changes below)
+ ^ <Jojo> Added some more standard playback frequencies (176KHz, 192KHz).
+ . <Jojo> When jumping around in a module, high offset value is also memorized.
+
+IT::Saving
+ . <Jojo> Original IT specs concerning max orders/patterns were wrong. IT can handle up to 257 orders (as the last order is always ---, so it's actually 256 accessible orders), so the saving routines were also updated a bit.
+ . <Jojo> Save at least 2 order items.
+ . <Jojo> IT files with empty sample slots will now FINALLY save correctly in Impulse Tracker.
+ . <Jojo> Compatibility Export: Don't store "extended filter range" flag.
+
+IT::Loading
+ ^ <Jojo> Removed unnecessary / wrong pre-amp limits.
+ . <Jojo> IT files with global volume 0 are now loaded correctly.
+ . <Jojo> Use correct header size (1.xx or 2.xx header) for comparison when checking instrument headers.
+
+IT::Playback compatibility
+ . <Jojo> Reset NNA actions on every note (tentative fix).
+ . <Jojo> Fixes from SchismTracker: VolSwing, PanSwing, PPS.
+ . <Jojo> Out of range offset command with Old FX on.
+
+S3M
+ . <Jojo> ST3 compatibility: Only allow waveforms 0 to 3 for S3x / S4x / S5x.
+ . <Jojo> The S3M format actually knows muted channels. Added this to the S3M loader/saver and MuteChannel functions.
+
+XM::Loading
+ ^ <Jojo> Allow to load modules with an empty order list (as they are, in fact, valid XM files).
+
+XM::Playback compatibility
+ . <Jojo> A somewhat more compatible Rxy effect. Still needs more testing, as it's approximately the same algorithm as in Milky (which I know is not 100% correct).
+ . <Jojo> Almost perfect arpeggio emulation (only a few notes are still wrong).
+ . <Jojo> Rogue note delays.
+ . <Jojo> Perfect emulation of buggy Rxy behaviour. Thanks to Ian Luck for helping me with this.
+ . <Jojo> Slightly improved Rxy behaviour.
+ . <Jojo> Command X modplug extensions are now ignored in FT2 compat mode.
+
+MOD
+ ^ <Jojo> Mod Creation: Ensure that the order length fits the current mod specifications (this was problematic when creating .MOD files).
+ . <Jojo> Mod Creation: MOD Panning scheme is set up correctly now.
+ . <Jojo> MOD Loader: 8Chn Startrekker modules ("FLT8") are loaded correctly now.
+
+MOD::Playback compatibility
+ + <Jojo> Added song flag "PT 1.x Mode" (for .MOD files) that enabled on-the-fly sample swapping as ProTracker did it.
+ + <Jojo> Support for the EFx command (Invert Loop). One has to pay attention when working with this command as it effictively trashes samples.
+ ^ <Jojo> MOD Playback: if PT1.x playback flag is set, 8xx and E8x panning commands are now ignored.
+ ^ <Jojo> MOD Playing: Some more (minor) tweaks for Invert Loop. Thanks again, bubsy!.
+ . <Jojo> Further fixes to "Invert Loop" command (thanks, bubsy).
+ . <Jojo> Improvements to the "Invert Loop" effect (was only applied on rows with EFx).
+
+Module cleanup
+ + <Jojo> New cleanup feature: Merge sequences.
+ ^ <Jojo> Pattern Cleanup does now also work with multiple sequences.
+ ^ <Jojo> Improved cleanup dialog, with new options (remove all *, optimize samples).
+
+MP3/Wav export
+ + <Jojo> Wave Convert: Normalization is back as experimental feature.
+ + <Jojo> Wav/Mp3 export: Show estimated remaining time.
+ ^ <Jojo> Mp3 export: Removed 60 minutes limit.
+ . <Jojo> Mp3 export: use uint64 like in wav export (instead of uint32), to prevent wraparounds with very long modules like Skaven's "Beyond the Network".
+ . <Jojo> Wave Convert: The wave convert dialog had two default buttons, one of them (the "default default button") didn't make sense.
+
+Colour setup
+ + <Jojo> Channel separators can now have custom colors.
+ + <Jojo> Can now specify the blend colour for prev/next patterns.
+ / <Jojo> Changed FT2 and IT presets to resemble those two trackers as much as possible.
+ / <Jojo> Added VU Meter colours for the pattern colour presets.
+ / <Jojo> Changed the "Buzz" colour scheme a bit.
+ . <Jojo> When loading colour presets that have less colours are defined than required, the missing colours will be replaced by those from the "MPT" preset.
+ . <Jojo> When no INI file was present, channel separators were completely black.
+
+Keymaps
+ + <Jojo> Two new keymaps: French Laptop by Paul Legovitch, Norwegian MPT Classic by Rakib.
+ ^ <Jojo> When loading a keymap file and unrecognized lines are found, only one messagebox is shown.
+ / <Jojo> All keymaps have been updated to version 1 and updated to contain the orderlist shortcuts.
+ . <Jojo> Keymap files have a version number now (currently version 1). If keymap file doesn't have a version number (that's version 0), the orderlist keys will be added automatically so that orderlist remains usable in new builds.
+
+Tuning
+ + <re> Can import scl-files. Upper limit for note count is 64.
+ ^ <Jojo> Tuning dialog: Using the default tuning path as default path for Import/Export dialog
+
+Module format support
+ + <Jojo> Can now import RIFF AM and RIFF AMFF files, as well as J2B files, which are compressed AM(FF) files. Added zlib 1.2.3 for J2B support.
+ + <Jojo> Can now import PSM16 files.
+ . <Jojo> MED Loader: Possible error when loading orderlist.
+ . <Jojo> PSM16 Loader: It was possible to load corrupted modules with > MAX_BASECHANNELS channels (up to 0xFFFF).
+ . <Jojo> MDL Loader: Various fixes (taken from Schism Tracker).
+ . <Jojo> IMF Loader: Slightly wrong instrument loader (this for once didn't break anything, though).
+ . <Jojo> AMF Loader: Missing break command.
+
+Misc
+ ^ <Jojo> All Loaders: Using a new template, SpaceToNullStringFixed, which filters out all null chars in song/sample/instrument/etc. names. This avoids "empty" instrument names that occured in a couple of .IT files before.
+ ^ <Jojo> Mainframe: Extended paste mechanisms (mix, flood, push forward) have been moved into a sub menu.
+ ^ <Jojo> Mainframe: Improved accelerator keys in the edit menu.
+ ^ <Jojo> Added "split keyboard settings" dialog to the "edit" menu and updated the shortcuts there (goto was missing).
+ ^ <re> SoundTouch: Update to version 1.5.0.
+ / <Jojo> Store configuration and tuning files in %APPDATA% if possible. Can be disabled by adding UseAppDataDirectory=0 to [Paths] in mptrack.ini.
+ / <Jojo> Mod Creation: When clicking on the "new" button, the newly created module will be of the same type as the currently active document. Should probably be an option.
+ / <Jojo> Made Graph and Pattern Randomizer shortcuts invisible.
+ / <Jojo> Compatibility Export: Use module working directory in "save as" dialog.
+ / <Jojo> Using MS Shell Dlg font instead of MS Sans Serif in resource file.
+ / <re> Changed some "modplug tracker" strings to "OpenMPT".
+ . <Jojo> When using a Load/Save dialog, MPT's key handler will be disabled so that common shortcuts like F2, Ctrl+C, Ctrl+V, Esc. etc. can still be used.
+ . <Jojo> Mod Loaders: Very short sample sustain loops are now also accepted (similar fix to normal loop points).
+ . <Jojo> Mod Creation: Filling the whole mod title field with null bytes on creation to avoid funky characters in other programs.
+ . <Jojo> When moving program files to %APPDATA%, take care of the keyboard settings path in the INI file.
+ . <Jojo> Increased "filename" string in instrument header field to 32, since CHAR[12] is not really enough for 12 letters...
+ . <re> Autosave: 'Modified since last autosave'-flag wasn't updated when document was set modified using ThreadSafeSetModified.
+ . <re> Fixes to handling of 32 chars long instrument name.
+
+
+v1.17.03.02 (test build) (September 2009, revision 371)
+-------------------------------------------------------
+
+General tab
+ ^ <Jojo> "Modtype" dialog will revert mod flags to previous values if user presses the Cancel button.
+ ^ <Jojo> Modtype Dialog: Added suffixes IT and S3M to some mod flags for more clarity.
+ . <Jojo> VSTi / Sample volume sliders only go up to 255 instead of 256.
+ . <Jojo> Document will now be set modified when moving or inserting plugins.
+
+Sequence editor
+ + <Jojo> Multiple orders can be selected in the pattern sequence. At the moment, it is possible to insert, delete, duplicate and dragondrop multiple orders.
+ + <Jojo> Added context menu item "Render to wave", to render one or more patterns to wave.
+
+Pattern tab
+ + <Jojo> Paste will now optionally continue on next pattern (overflow paste).
+ + <re> Channel reset(stops note, sets initial chn settings). Available from channel header context menu and new key binding.
+ + <Jojo> When shift-clicking somewhere, a selection will be drawn from the previous cursor position to the new position.
+ ^ <Jojo> Showing descriptions of "special" notes in the statusbar, like it's done for effects.
+ ^ <Jojo> Shrinking patterns is now also possible with patterns < 32 rows.
+ ^ <Jojo> Solo/Unmute context menu has a bit more dynamical transition menu points (experimental).
+ ^ <re> Added some checks to prevent entering notes which are not supported by the module type.
+ / <Jojo> Entering note with row spacing enabled can now move cursor to next pattern if continuous scroll is enabled.
+ . <Jojo> Inserting a new pattern won't resize it to 32 rows anymore if the current pattern has less than 32 rows.
+ . <Jojo> Show "offset" and "velocity" volume commands in default color instead of "pitch" color.
+ . <Jojo> Weird combination of context menu shortcut and "always center active row" being disabled (http://lpchip.com/modplug/viewtopic.php?t=3203).
+ . <Jojo> Keyboard split note was off by one.
+ . <Jojo> Set max. row spacing / skipping value to 64, visibly clamp values > 64 to 64 in the edit box.
+
+Pattern tab::Note properties
+ ^ <Jojo> Added description to high offset command in note properties dialog.
+ ^ <Jojo> 8-Bit Panning slider also has the "Surround" state in S3M format now.
+ ^ <Jojo> Proper display of Pxy effect in the note editor window.
+ ^ <Jojo> Explanation for Tremor effect.
+ ^ <Jojo> Completed descriptions for extended MOD/XM, fixed display of several effects.
+ ^ <Jojo> Added description for S1x - Glissando Control.
+ . <Jojo> When double-clicking on a note in the pattern editor, the noteMin offset was not taken into consideration, which lead to wrong information for some formats.
+
+Pattern tab::Find/replace
+ ^ <Jojo> Don't reset "replace all" flag after every search.
+ / <Jojo> "Search in whole song" and "Replace all" are now enabled by default.
+ . <Jojo> Works now also with high instrument numbers. Also, empty instrument numbers won't be affected by "ins+1" anymore.
+ . <Jojo> Notes that cannot be used in the given format are not shown in the dropdown combo.
+ . <Jojo> Made comboboxes more convenient to use.
+
+Pattern tab::Macro config
+ ^ <Jojo> Also show the current preset for Zxx config (Z80 - ZFF).
+ . <Jojo> "Show All" FX display starts at 1 instead of 0, like all other FX enumerations.
+
+Sample tab
+ + <coda> Sample drawing.
+ + <coda> Add silence to sample.
+ + <Jojo> Can now play sample from given position with Ctrl + left mouse button.
+ + <Jojo> DC offset removal.
+ + <Jojo> Batch export samples (shift + click on "save sample" icon).
+ + <Jojo> Added setting "FinetuneStep" to INI section "Sample Editor".
+ ^ <Jojo> It is now possible to resize samples to a given sample size. You can do this using the already existing "add silence" dialog.
+ ^ <Jojo> Better loop point handling when deleting sample selections.
+ . <Jojo> Limit sample vibrato fields properly. Vibrato Sweep ranges from 0 to 255 now.
+ . <Jojo> Remove special chars from sample filenames so the "save as" dialog will show up on OSs < Vista.
+ . <Jojo> When using the spin control, frequency is not clamped to [2000, 96000] anymore.
+ . <Jojo> Removed tuning from up/downsampling for MOD files which detuned them when saving.
+ . <Jojo> Global volume is now also being adjusted for stereo and 16-Bit samples.
+ . <Jojo> Transpose is now disabled when using MOD format.
+
+Instrument tab
+ + <Jojo> Envelope points can now be added by shift-clicking somewhere in the envelope editor. Middle mouse button click removes the nearest point.
+ ^ <Jojo> Sample map shows tuning-specific notename on context menu.
+ ^ <Jojo> Added "Map all notes to <note name>" to instrument mapping context menu.
+ / <Jojo> Also show values from 0 to 64 for filter envelope (instead of -32 to 32).
+ . <Jojo> Pitch/Pan input field allows negative values.
+ . <Jojo> Proper limits for IT/XM fadeout values.
+ . <Jojo> Playing correct note in the instrument mapping control (notable difference when editing the scale from bottom to top).
+ . <Jojo> No relative values are shown for envelopes with no release node (status bar).
+ . <Jojo> Remove special chars from sample filenames so the "save as" dialog will show up on OSs < Vista.
+ . <Jojo> Fixed crash in instrument view that occured if RowsPerBeat was 0.
+ . <re> Fix to crash that occurred when multiple windows had instrument tab of the same document open.
+
+Comments tab
+ ^ <Jojo> Default view mode is instruments instead of samples for XM files.
+ ^ <Jojo> Instrument / Sample list: Double click will switch to instrument / sample.
+
+Treeview
+ . <Jojo> Playing sounds from a soundfont was broken.
+ . <Jojo> Deleting patterns from a module will also reset their names.
+
+VST / MIDI mapping
+ + <re> Editing a plug param in its editor while holding shift key will now open MIDI mapping dialog.
+ + <re> Can now record MIDI mapping changes to pattern.
+ / <re> Changed host IDs and a couple of related return values. If compatibility problems occur, old IDs can be set with ini-settings.
+ . <Jojo> Some minor tweaks and fixes to the MIDI mapping dialog.
+
+Mod conversion
+ ^ <Jojo> Convert E9x to Q8x as Q0x actually means "continue" and note "no change" for the volume change.
+ ^ <Jojo> Even better conversion of various pattern effects, including 8-Bit Panning, Arpeggio (XM swaps the two parameters) including Surround, Note Cut/Off/Fade conversion, MOD retrigger, XM->IT volume column limitations, illegal notes).
+ ^ <Jojo> Proper conversion of Pxy effect.
+ ^ <Jojo> Full volume column conversion, resetting default global volume / tempo / speed for MOD files.
+ ^ <Jojo> \xx is converted to Zxx when converting to / saving S3M files or "compatible" IT files.
+ ^ <Jojo> Somewhat decent conversion of Kxx (Key Off) from XM to S3M/IT.
+ ^ <Jojo> Trim instrument envelopes if they're too long for the new format.
+ ^ <Jojo> Convert 500/600 commands properly from MOD to any format, Adjust sustain loops for XM files, removed XM arpeggio conversion (it might be unwanted).
+ ^ <Jojo> Try to use fix commands that don't have cache (00 value) in XM (Arpeggio) and MOD format (Arpeggio and a few others) by using the previous value.
+ . <Jojo> Proper conversion between IT 8-Bit panning effect and S3M 7-Bit panning effect with surround.
+ . <Jojo> Unset release nodes were corrupted when converting modules.
+
+Playback (see also format-specific changes below)
+ ^ <Jojo> Mixing: It's now possible to go down to 1ms latency (works with ASIO).
+ ^ <Jojo> If restart position is 0 and a subtune is played (i.e. a tune separated with a "---" pattern), OpenMPT will now try to jump back to the first order of this subtune instead.
+ ^ <Jojo> Added option to not reset all channels and variables when looping a module.
+ . <Jojo> 4-Bit panning didn't disable surround sound (fixed in compatibility mode in IT/MPTM/XM).
+ . <Jojo> Process pattern break commands on last pattern properly.
+
+MPTM
+ + <re> New experimental parameter controls for controlling plug params.
+ + <re> Can now have multiple sequences in a module (access from orderlist context menu).
+ + <Jojo> Allow up to 240 envelope points.
+ + <Jojo> IT "Note Fade" command: This existed in IT's player routines already, but there was no way to actually use it in the editor. Triggering an invalid note would cause a note fade, so this is a new note type.
+ + <re> Channel settings(vol&pan) for channels after 64 will now be saved in the file.
+
+IT
+ + <Jojo> IT "Note Fade" command: This existed in IT's player routines already, but there was no way to actually use it in the editor. Triggering an invalid note would cause a note fade, so this is a new note type.
+ + <re> Channel settings(vol&pan) for channels after 64 will now be saved in the file.
+
+IT::Saving
+ ^ <Jojo> Compatibility Export: Save with custom "tracker version" header field (same as for S3M).
+ ^ <Jojo> Compatibility Export: Removed stereo sample support.
+ ^ <Jojo> Use row highlighting places in IT header.
+ . <Jojo> Compatibility Export: Ignore new MPT effects.
+ . <Jojo> Compatibility Export: doesn't screw up patterns anymore if the module has more than 64 channels.
+ . <Jojo> Compatibility Export: Changes various version numbers and settings in compatibility export to better match Impulse Tracker made IT files.
+ . <Jojo> Limit fadeout values properly.
+
+IT::Loading
+ ^ <Jojo> Can now load IT files with very small patterns (< 4 rows).
+ ^ <Jojo> Setting the "last saved with" version to 1.16 (instead of "created with") if module seems to be made with the old MPT.
+ ^ <Jojo> Reading our custom tracker version now as well.
+ ^ <Jojo> Detect more version of MPT that did stupid things.
+ ^ <Jojo> Row highlighting in IT header is now recognized.
+ . <Jojo> Unset release env nodes for IT files made with IT 1.x, fix fadeout values.
+ . <Jojo> Don't set "made with modplug" flag for IT files that were made with compatibility export.
+ . <Jojo> Proper adjustment of sample pre-amp.
+ . <Jojo> It is now possible to load IT files that have no samples.
+ . <Jojo> 31 BPM is an allowed default tempo. Tentative fix: Clamp to 32 (instead of 125).
+ . <Jojo> OpenMPT was loading the volume column command hx (vibrato depth) as ux (vibrato speed) and also saving it like this. In the pattern editor, ux was allowed, hx was not but it should be the other way around. Now, hx is always used but ux is still loaded correctly for old modules made with MPT/OpenMPT.
+
+IT::Playback compatibility
+ ^ <Jojo> More improvements to Vibrato, Tremolo and Panbrello. Using the tables from IT_TECH.TXT.
+ ^ <Jojo> Improved IT compatible retrigger (didn't work if the retrigger didn't start together with a new note).
+ . <Jojo> Better sample vibrato compatibility. Vibrato Sweep isn't perfect yet, though.
+ . <Jojo> Special case of Retrigger + Envelopes.
+ . <Jojo> Offset beyond sample range.
+ . <Jojo> Removed a "fix" again that was causing to completely destroy panbrello.
+ . <Jojo> Don't reset channel panning if panbrello ends (experimental).
+ . <Jojo> Don't reset Tremolo on new note, don't ignore tremolo if note volume is 0.
+ . <Jojo> Fixed Tremolo, Vibrato and Panbrello tables.
+ . <Jojo> Ignore S [345]x with x > 3.
+ . <Jojo> Multisample instruments change with no entry in the instrument column (fixes spx-shuttledeparture.it) (test me).
+ . <Jojo> Tremor also works properly with "old effects" on.
+ . <Jojo> Fixed retrigger for Qxx when not being triggered together with a note.
+ . <Jojo> Pattern loop count won't be reset on pattern transition (fixes gm-trippy01.it).
+ . <Jojo> Tempo slides won't exceed 255 BPM in compatible mode.
+ . <Jojo> Allow OpenMPT's new volume colum commands (offset etc.) to be used together with Retrigger in compatible mode again.
+ . <Jojo> Random waveforms (vibrato, tremolo, panbrello) (test #19).
+ . <Jojo> Fixed handling of very short pitch / filter envelopes (test #24).
+ . <Jojo> Panning fx (Xxx, S8x, pxx) override pan swing (test #20).
+ . <Jojo> Improved retrigger compatibility even more (#15)
+ . <Jojo> SD0 / SC0 is now interpreted as SD1 / SC1 in compatibility mode (test #22).
+ . <Jojo> Portamento up / down resets the destination of tone portamento (test #23).
+ . <Jojo> Tremor: Sounds like in IT when compatible playback mode is turned on.
+ . <Jojo> Out of range global volume, local global volume slides.
+ . <Jojo> Retrigger effect behaved slightly wrong.
+
+S3M::Saving
+ ^ <Jojo> Orderlist is now as small as possible (multiple of 2 instead of multiple of 16); Using ST3's default UltraClick value.
+ ^ <Jojo> Using an own version number in the header now, just like all the other trackers.
+ ^ <Jojo> Don't write unnecessary invalid order items in the order table.
+ . <Jojo> Set the stereo flag.
+ . <Jojo> Ignore new MPT effects.
+ . <Jojo> Patterns are now saved correctly. Previously, the last few rows might have come up as garbage in ST3, especially (only?) when they were empty.
+ . <Jojo> Clamp sample pre-amp to [32;127] instead of just taking the lower 7 bits. (Default pre-amp value as 128, which resulted in pre-amp 0 when saving).
+
+S3M::Loading
+ ^ <Jojo> Recognize OpenMPT version in S3M header.
+ . <Jojo> Limit min sample preamp value to 0x10.
+ . <Jojo> Small modifications to pattern loader to load somewhat broken S3M files.
+ . <Jojo> Don't reset global volume to max if it is min for "new" modules.
+ . <Jojo> Smarter Zxx conversion.
+ . <Jojo> Disable loop for files with very short loop at the beginning of the sample.
+ . <Jojo> Samples with very short loops (2 bytes) will now load correctly. This fixes for example 94hitmix.s3m and spectral.s3m.
+ . <Jojo> Short loops in S3M samples are now recognized.
+
+S3M::Misc
+ . <Jojo> Module Creation / Loading: Sane default volume settings for MOD / S3M files again(128 global volume, 48 sample volume)
+ . <Jojo> S3M compatibility: Notes with SD0 are now ignored, SC0 is completely ignored
+
+XM
+ + <Jojo> Compatibility Export.
+ + <Jojo> Compatibility play-mode.
+
+XM::Loading
+ + <Jojo> Detects compatibility mode automatically when loading XM-file.
+ ^ <Jojo> Detect non-mpt modules more reliably.
+ ^ <Jojo> Advanced "made with MPT" detection.
+ ^ <Jojo> Detect a very old MPT version.
+ ^ <Jojo> Make XMs with strange pattern header sizes load correctly (removed some code that was there to make really, really broken XMs load - would this work at all?).
+ ^ <Jojo> Setting the "last saved with" version to 1.16 (instead of "created with") if module seems to be made with the old MPT.
+ ^ <Jojo> Less hacky implementation of the instrument loader. Still works correctly with "normal" XM modules and BoobieSqueezed XMs.
+ . <Jojo> Various changes to make XMs that have been compressed with BoobieSqueezer load correctly. Should not break anything, but I call it "experimental".
+ . <Jojo> Can now load XM Version 1.02 and 1.03.
+ . <Jojo> More intelligent conversion of Speed / Tempo commands.
+ . <Jojo> Don't ignore last pattern if XM has no instruments.
+
+XM::Saving
+ ^ <Jojo> Compatibility export: Export cuts off channels > 32.
+ ^ <Jojo> Setting "Open ModPlug Tracker" in the "made with" field (as any other tracker put their signature in here as well).
+ ^ <Jojo> Include version number in "made with" string.
+ ^ <Jojo> When channel count is odd, the empty channel is now always the last one.
+ . <Jojo> Always save with a channel number that's a multiple of two so FT2 will load the file correctly.
+ . <Jojo> F20 won't turn into G20.
+ . <Jojo> Limit fadeout values properly.
+ . <Jojo> More intelligent conversion of Speed / Tempo commands.
+
+XM::Playback compatibility
+ . <Jojo> Portamento + New Note with no previous note (tentative fix), Offset beyond sample range.
+ . <Jojo> Compatible Arpeggio was done wrong.
+ . <Jojo> More compatible "Note Off + Something".
+ . <Jojo> Note Off with instrument number causes fadeout for samples that have no envelope.
+ . <Jojo> Volume command Ux should not enable Vibrato at all, it only sets the vibrato speed.
+ . <Jojo> Pxy effect was too deep.
+ . <Jojo> Using MilkyTracker's arpeggio logic for better XM arpeggio compatibility - still not perfect!
+ . <Jojo> Tempo slides won't exceed 255 BPM in compatible mode.
+ . <Jojo> In compatible mode, old retrigger routines are used again (as MPT's default retrigger algorithm actually represents FT2's retrigger algorithm). Additionally, a retrigger bug from FT2 is emulated (retrigger with vxx on the same channel would always reset the retriggered note's volume).
+ . <Jojo> More compatible handling of Kxx effect.
+ . <Jojo> Pattern loops are now handeled correctly in XM (using compatibility switch) and MOD files.
+ . <Jojo> Out of range global volume, local global volume slides.
+ . <Jojo> Arpeggio was played wrong (0xy should play base note - y - x, not base note - x - y).
+
+MOD
+ ^ <Jojo> Module Creation: MOD files have 4 channels by default.
+ ^ <Jojo> Moved loop length check from compatibility export to normal save, as it does not break/change any MPT-made MOD file.
+ . <Jojo> Module Creation / Loading: Sane default volume settings for MOD / S3M files again(128 global volume, 48 sample volume).
+ . <Jojo> Inserting more than 128 orders in MOD format is not possible anymore.
+
+MOD::Loading
+ . <Jojo> More intelligent conversion of Speed / Tempo commands.
+ . <Jojo> Last pattern was not loading in .MODs that have no samples.
+
+MOD::Saving
+ . <Jojo> The compatibility export was only working properly for 8-bit mono samples. Everything else is going to be downsampled later, so the sample "fixing" has to be done before.
+ . <Jojo> More intelligent conversion of Speed / Tempo commands.
+ . <Jojo> F20 won't turn into G20.
+
+MOD::Playback compatibility
+ . <Jojo> 8-Bit Panning is not 7-Bit panning (using 800...8FF instead of 800...880 - fixes f.e. DOPE.MOD).
+ . <Jojo> Pattern loops are now handeled correctly in XM (using compatibility switch) and MOD files.
+
+Setup
+ + <Jojo> New default directories: plugins and plugin presets.
+ + <Jojo> Option reset ramping and resampling to default values.
+ + <Jojo> Shareable color schemes (via config dialog).
+ ^ <Jojo> Added note to "always center active row" hint that this is required to be enabled for greyed out patterns.
+ ^ <Jojo> Slight redesign of the WAV / MP3 export dialogs.
+ / <Jojo> Changes to default general options configuration.
+
+Module format support
+ + <Jojo> Can now import IMF (Imago Orpheus) modules.
+ + <Jojo> Can now import GDM files.
+ . <Jojo> A brand new PSM loader! Ditched the old and buggy loader as the new loader works way better, it can even handle modules from Extreme Pinball.
+ . <Jojo> 669 Loader: Small modification so corehop.669 can be loaded; Note: Loader is still buggy like hell
+
+Misc
+ + <Jojo> Compo cleanup.
+ + <Jojo> Rearrange samples is back! And this time, it's even fully functional!.
+ ^ <Jojo> XI Saver: Fill out the "created with" field properly (OpenMPT instead of FastTracker 2).
+ ^ <Jojo> Write ID3v2.4 instead of ID3v1 tags. Includes various changes to length limits, genre limitations and what's written in the tags.
+ ^ <Jojo> Mod Specs: Decreased minimum pattern size for XM and IT format to 1 row. Experimental, but should not break anything (needs more testing).
+ ^ <Jojo> Mod Specs: It is now possible to have modules with 1-3 channels, as this only seems to cause trouble with MOD files (so they still have 4 channels minimum of course).
+ ^ <Jojo> Autosave: If a module has not been changed since the last autosave, it will not be autosaved.
+ ^ <Jojo> Module loader: If plugins are missing, a single MessageBox is shown.
+ ^ <kode54> LHA Decoder: Several fixes (patch by kode54).
+ / <re> Default keybings are now included in the executable -> default keybindings are available even without external keybinding file.
+ . <Jojo> Menus: Added the correct shortcut keys again and replaced the last(?) remaining "Midi" labels by "MIDI".
+ . <Jojo> Wav Export / Channel Manager / Pattern Editor: Pattern names with leading space char are now accepted.
+ . <Jojo> General tab / Main bar / Loaders / Conversion: Fixed arbitrary speed limits (64 on general tab, 127 on main bar).
+ . <Jojo> Keyboard manager: Octave offset for key descriptions is now C, not A.
+ . <Jojo> Patterns: Reset pattern name when deleting pattern.
+
+Internal
+ ? There are now project files for Visual Studio 2008.
+ ? Notable refactoring including renaming of MODINSTRUMENT to MODSAMPLE and INSTRUMENTHEADER to MODINSTRUMENT.
+
+
+v1.17.02.54 (June 2009, revision 274)
+-------------------------------------
+
+ . <re> Pattern tab: It's now possible to use the old note fade behaviour when playing notes (see setup->general). (rev. 267)
+ . <re> Pattern tab: Fixed wrong interpretations of "Old style pattern context menu"-option. (rev. 267)
+ . <re> Misc: Some internal fixes. (rev. 267)
+
+
v1.17.02.53 (May 2009, revision 259)
------------------------------------
Modified: trunk/OpenMPT/soundlib/modsmp_ctrl.cpp
===================================================================
--- trunk/OpenMPT/soundlib/modsmp_ctrl.cpp 2010-01-10 14:50:33 UTC (rev 461)
+++ trunk/OpenMPT/soundlib/modsmp_ctrl.cpp 2010-01-10 17:21:21 UTC (rev 462)
@@ -496,10 +496,12 @@
if (Chn[i].pSample == pOldSample)
{
Chn[i].pSample = pNewSample;
- Chn[i].pCurrentSample = pNewSample;
+ if (Chn[i].pCurrentSample != nullptr)
+ Chn[i].pCurrentSample = pNewSample;
if (Chn[i].nPos > nNewLength)
Chn[i].nPos = 0;
- Chn[i].nLength = nNewLength;
+ if (Chn[i].nLength > 0)
+ Chn[i].nLength = nNewLength;
Chn[i].dwFlags |= orFlags;
Chn[i].dwFlags &= andFlags;
}
Modified: trunk/OpenMPT/soundtouch/FIFOSamplePipe.h
===================================================================
--- trunk/OpenMPT/soundtouch/FIFOSamplePipe.h 2010-01-10 14:50:33 UTC (rev 461)
+++ trunk/OpenMPT/soundtouch/FIFOSamplePipe.h 2010-01-10 17:21:21 UTC (rev 462)
@@ -1,12 +1,3 @@
-/***********************************************
- *
- * ------------- NOTE -------------
- *
- * This file is modified version of the original SoundTouch file.
- * Search for "OpenMPT_change" to see the modifications.
- *
-*/
-
////////////////////////////////////////////////////////////////////////////////
///
/// 'FIFOSamplePipe' : An abstract base class for classes that manipulate sound
@@ -26,7 +17,11 @@
///
////////////////////////////////////////////////////////////////////////////////
//
+// Last changed : $Date: 2009-04-13 16:18:48 +0300 (Mon, 13 Apr 2009) $
+// File revision : $Revision: 4 $
//
+// $Id: FIFOSamplePipe.h 69 2009-04-13 13:18:48Z oparviai $
+//
////////////////////////////////////////////////////////////////////////////////
//
// License :
@@ -61,8 +56,7 @@
{
/// Abstract base class for FIFO (first-in-first-out) sample processing classes.
-// OpenMPT_change: Added SOUNDTOUCH_DLLEXPORT.
-class SOUNDTOUCH_DLLEXPORT FIFOSamplePipe
+class FIFOSamplePipe
{
public:
// virtual default destructor
@@ -132,8 +126,7 @@
/// When samples are input to this class, they're first processed and then put to
/// the FIFO pipe that's defined as output of this class. This output pipe can be
/// either other processing stage or a FIFO sample buffer.
-// OpenMPT_change: Added SOUNDTOUCH_DLLEXPORT.
-class SOUNDTOUCH_DLLEXPORT FIFOProcessor :public FIFOSamplePipe
+class FIFOProcessor :public FIFOSamplePipe
{
protected:
/// Internal pipe where processed samples are put.
Modified: trunk/OpenMPT/soundtouch/STTypes.h
===================================================================
--- trunk/OpenMPT/soundtouch/STTypes.h 2010-01-10 14:50:33 UTC (rev 461)
+++ trunk/OpenMPT/soundtouch/STTypes.h 2010-01-10 17:21:21 UTC (rev 462)
@@ -1,12 +1,3 @@
-/***********************************************
- *
- * ------------- NOTE -------------
- *
- * This file is modified version of the original SoundTouch file.
- * Search for "OpenMPT_change" to see the modifications.
- *
-*/
-
////////////////////////////////////////////////////////////////////////////////
///
/// Common type definitions for SoundTouch audio processing library.
@@ -17,6 +8,11 @@
///
////////////////////////////////////////////////////////////////////////////////
//
+// Last changed : $Date: 2009-05-17 14:30:57 +0300 (Sun, 17 May 2009) $
+// File revision : $Revision: 3 $
+//
+// $Id: STTypes.h 70 2009-05-17 11:30:57Z oparviai $
+//
////////////////////////////////////////////////////////////////////////////////
//
// License :
@@ -46,16 +42,6 @@
typedef unsigned int uint;
typedef unsigned long ulong;
-// OpenMPT_change-->: Added SOUNDTOUCH_DLLEXPORT definition, Defined INTEGER_SAMPLES definition.
-#ifdef SOUNDTOUCH_EXPORTS
- #define SOUNDTOUCH_DLLEXPORT __declspec(dllexport)
-#else
- #define SOUNDTOUCH_DLLEXPORT __declspec(dllimport)
-#endif
-
-#define INTEGER_SAMPLES 1
-// <-- OpenMPT_change
-
#ifdef __GNUC__
// In GCC, include soundtouch_config.h made by config scritps
#include "soundtouch_config.h"
Modified: trunk/OpenMPT/soundtouch/SoundTouch.h
===================================================================
--- trunk/OpenMPT/soundtouch/SoundTouch.h 2010-01-10 14:50:33 UTC (rev 461)
+++ trunk/OpenMPT/soundtouch/SoundTouch.h 2010-01-...
[truncated message content] |
|
From: <sag...@us...> - 2010-01-10 14:50:43
|
Revision: 461
http://modplug.svn.sourceforge.net/modplug/?rev=461&view=rev
Author: saga-games
Date: 2010-01-10 14:50:33 +0000 (Sun, 10 Jan 2010)
Log Message:
-----------
[Mod] Reverted the "IT" and "FT2" colour schemes to what they used to be until 1.17.02.54, since those colour schemes worked better. However, since they do not resemble IT or FT2 in any way, they have been simply renamed to "Green" and "Blue".
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Moptions.cpp
trunk/OpenMPT/mptrack/mptrack.rc
Modified: trunk/OpenMPT/mptrack/Moptions.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Moptions.cpp 2010-01-09 20:06:18 UTC (rev 460)
+++ trunk/OpenMPT/mptrack/Moptions.cpp 2010-01-10 14:50:33 UTC (rev 461)
@@ -422,30 +422,31 @@
void COptionsColors::OnPresetFT2()
//--------------------------------
{
+ // "blue"
CustomColors[MODCOLOR_BACKNORMAL] = RGB(0x00, 0x00, 0x00);
- CustomColors[MODCOLOR_TEXTNORMAL] = RGB(0xFF, 0xFF, 0x82);
- CustomColors[MODCOLOR_BACKCURROW] = RGB(0x49, 0x75, 0x82);
- CustomColors[MODCOLOR_TEXTCURROW] = RGB(0xFF, 0xFF, 0x5F);
- CustomColors[MODCOLOR_BACKSELECTED] = RGB(0x28, 0x28, 0x28);
+ CustomColors[MODCOLOR_TEXTNORMAL] = RGB(0xE0, 0xE0, 0x40);
+ CustomColors[MODCOLOR_BACKCURROW] = RGB(0x70, 0x70, 0x70);
+ CustomColors[MODCOLOR_TEXTCURROW] = RGB(0xF0, 0xF0, 0x50);
+ CustomColors[MODCOLOR_BACKSELECTED] = RGB(0x40, 0x40, 0xA0);
CustomColors[MODCOLOR_TEXTSELECTED] = RGB(0xFF, 0xFF, 0xFF);
- CustomColors[MODCOLOR_BACKPLAYCURSOR] = RGB(0x49, 0x75, 0x82);
- CustomColors[MODCOLOR_TEXTPLAYCURSOR] = RGB(0xFF, 0xFF, 0xFF);
- CustomColors[MODCOLOR_BACKHILIGHT] = RGB(0x27, 0x41, 0x47);
- CustomColors[MODCOLOR_NOTE] = RGB(0xFF, 0xFF, 0x82);
- CustomColors[MODCOLOR_INSTRUMENT] = RGB(0xFF, 0xFF, 0x82);
- CustomColors[MODCOLOR_VOLUME] = RGB(0xFF, 0xFF, 0x82);
- CustomColors[MODCOLOR_PANNING] = RGB(0xFF, 0xFF, 0x82);
- CustomColors[MODCOLOR_PITCH] = RGB(0xFF, 0xFF, 0x82);
- CustomColors[MODCOLOR_GLOBALS] = RGB(0xFF, 0xFF, 0x82);
- CustomColors[MODCOLOR_SAMPLE] = RGB(0xFF, 0xFF, 0x82);
- CustomColors[MODCOLOR_ENVELOPES] = RGB(0xFF, 0xFF, 0x82);
- CustomColors[MODCOLOR_VUMETER_LO] = RGB(0x4B, 0x7C, 0x89);
- CustomColors[MODCOLOR_VUMETER_MED] = RGB(0x5F, 0x98, 0xA7);
- CustomColors[MODCOLOR_VUMETER_HI] = RGB(0xEA, 0x1C, 0x78);
- CustomColors[MODCOLOR_SEPSHADOW] = RGB(0x18, 0x28, 0x2C);
- CustomColors[MODCOLOR_SEPFACE] = RGB(0x49, 0x75, 0x82);
- CustomColors[MODCOLOR_SEPHILITE] = RGB(0x8A, 0xDB, 0xF3);
- CustomColors[MODCOLOR_BLENDCOLOR] = RGB(0x27, 0x41, 0x47);
+ CustomColors[MODCOLOR_SAMPLE] = RGB(0xFF, 0x00, 0x00);
+ CustomColors[MODCOLOR_BACKPLAYCURSOR] = RGB(0x50, 0x50, 0x70);
+ CustomColors[MODCOLOR_TEXTPLAYCURSOR] = RGB(0xE0, 0xE0, 0x40);
+ CustomColors[MODCOLOR_BACKHILIGHT] = RGB(0x40, 0x40, 0x80);
+ CustomColors[MODCOLOR_NOTE] = RGB(0xE0, 0xE0, 0x40);
+ CustomColors[MODCOLOR_INSTRUMENT] = RGB(0xFF, 0xFF, 0x00);
+ CustomColors[MODCOLOR_VOLUME] = RGB(0x00, 0xFF, 0x00);
+ CustomColors[MODCOLOR_PANNING] = RGB(0x00, 0xFF, 0xFF);
+ CustomColors[MODCOLOR_PITCH] = RGB(0xFF, 0xFF, 0x00);
+ CustomColors[MODCOLOR_GLOBALS] = RGB(0xFF, 0x40, 0x40);
+ CustomColors[MODCOLOR_ENVELOPES] = RGB(0x00, 0x00, 0xFF);
+ CustomColors[MODCOLOR_VUMETER_LO] = RGB(0x00, 0xC8, 0x00);
+ CustomColors[MODCOLOR_VUMETER_MED] = RGB(0xFF, 0xC8, 0x00);
+ CustomColors[MODCOLOR_VUMETER_HI] = RGB(0xE1, 0x00, 0x00);
+ CustomColors[MODCOLOR_SEPSHADOW] = RGB(0x2E, 0x2E, 0x5C);
+ CustomColors[MODCOLOR_SEPFACE] = RGB(0x40, 0x40, 0x80);
+ CustomColors[MODCOLOR_SEPHILITE] = RGB(0x99, 0x99, 0xCC);
+ CustomColors[MODCOLOR_BLENDCOLOR] = RGB(0x2E, 0x2E, 0x5A);
OnPreviewChanged();
}
@@ -453,30 +454,31 @@
void COptionsColors::OnPresetIT()
//-------------------------------
{
+ // "green"
CustomColors[MODCOLOR_BACKNORMAL] = RGB(0x00, 0x00, 0x00);
- CustomColors[MODCOLOR_TEXTNORMAL] = RGB(0x45, 0x9A, 0x49);
- CustomColors[MODCOLOR_BACKCURROW] = RGB(0x10, 0x35, 0x00);
- CustomColors[MODCOLOR_TEXTCURROW] = RGB(0xEB, 0xEB, 0xCB);
- CustomColors[MODCOLOR_BACKSELECTED] = RGB(0x20, 0x55, 0x00);
- CustomColors[MODCOLOR_TEXTSELECTED] = RGB(0xEB, 0xEB, 0xCB);
- CustomColors[MODCOLOR_BACKPLAYCURSOR] = RGB(0x59, 0x41, 0x3C);
- CustomColors[MODCOLOR_TEXTPLAYCURSOR] = RGB(0x45, 0x9A, 0x49);
- CustomColors[MODCOLOR_BACKHILIGHT] = RGB(0x59, 0x41, 0x3C);
- CustomColors[MODCOLOR_NOTE] = RGB(0x45, 0x9A, 0x49);
- CustomColors[MODCOLOR_INSTRUMENT] = RGB(0x38, 0x9E, 0x75);
- CustomColors[MODCOLOR_VOLUME] = RGB(0xA2, 0xA2, 0xA2);
- CustomColors[MODCOLOR_PANNING] = RGB(0x18, 0x75, 0x2C);
- CustomColors[MODCOLOR_PITCH] = RGB(0x45, 0x9A, 0x49);
- CustomColors[MODCOLOR_GLOBALS] = RGB(0x45, 0x9A, 0x49);
- CustomColors[MODCOLOR_SAMPLE] = RGB(0x8E, 0x14, 0x55);
- CustomColors[MODCOLOR_ENVELOPES] = RGB(0xA2, 0xA2, 0xA2);
- CustomColors[MODCOLOR_VUMETER_LO] = RGB(0x25, 0x7D, 0x00);
- CustomColors[MODCOLOR_VUMETER_MED] = RGB(0xEC, 0x99, 0x00);
+ CustomColors[MODCOLOR_TEXTNORMAL] = RGB(0x00, 0xE0, 0x00);
+ CustomColors[MODCOLOR_BACKCURROW] = RGB(0x70, 0x70, 0x70);
+ CustomColors[MODCOLOR_TEXTCURROW] = RGB(0x00, 0xE0, 0x00);
+ CustomColors[MODCOLOR_BACKSELECTED] = RGB(0xE0, 0xE0, 0xE0);
+ CustomColors[MODCOLOR_TEXTSELECTED] = RGB(0x00, 0x00, 0x00);
+ CustomColors[MODCOLOR_SAMPLE] = RGB(0xFF, 0x00, 0x00);
+ CustomColors[MODCOLOR_BACKPLAYCURSOR] = RGB(0x80, 0x80, 0x00);
+ CustomColors[MODCOLOR_TEXTPLAYCURSOR] = RGB(0x00, 0xE0, 0x00);
+ CustomColors[MODCOLOR_BACKHILIGHT] = RGB(0x40, 0x68, 0x40);
+ CustomColors[MODCOLOR_NOTE] = RGB(0x00, 0xFF, 0x00);
+ CustomColors[MODCOLOR_INSTRUMENT] = RGB(0xFF, 0xFF, 0x00);
+ CustomColors[MODCOLOR_VOLUME] = RGB(0x00, 0xFF, 0x00);
+ CustomColors[MODCOLOR_PANNING] = RGB(0x00, 0xFF, 0xFF);
+ CustomColors[MODCOLOR_PITCH] = RGB(0xFF, 0xFF, 0x00);
+ CustomColors[MODCOLOR_GLOBALS] = RGB(0xFF, 0x40, 0x40);
+ CustomColors[MODCOLOR_ENVELOPES] = RGB(0x00, 0x00, 0xFF);
+ CustomColors[MODCOLOR_VUMETER_LO] = RGB(0x00, 0xC8, 0x00);
+ CustomColors[MODCOLOR_VUMETER_MED] = RGB(0xFF, 0xC8, 0x00);
CustomColors[MODCOLOR_VUMETER_HI] = RGB(0xE1, 0x00, 0x00);
- CustomColors[MODCOLOR_SEPSHADOW] = RGB(0xB6, 0x96, 0x79);
- CustomColors[MODCOLOR_SEPFACE] = RGB(0xB6, 0x96, 0x79);
- CustomColors[MODCOLOR_SEPHILITE] = RGB(0xB6, 0x96, 0x79);
- CustomColors[MODCOLOR_BLENDCOLOR] = RGB(0x35, 0x27, 0x24);
+ CustomColors[MODCOLOR_SEPSHADOW] = RGB(0x23, 0x38, 0x23);
+ CustomColors[MODCOLOR_SEPFACE] = RGB(0x40, 0x68, 0x40);
+ CustomColors[MODCOLOR_SEPHILITE] = RGB(0x94, 0xBC, 0x94);
+ CustomColors[MODCOLOR_BLENDCOLOR] = RGB(0x00, 0x40, 0x00);
OnPreviewChanged();
}
@@ -612,7 +614,7 @@
{PATTERN_SINGLEEXPAND, "Single click to expand tree", "Single-clicking in the left tree view will expand a branch"},
{PATTERN_MUTECHNMODE, "Ignored muted channels", "Notes will not be played on muted channels (unmuting will only start on a new note)."},
{PATTERN_AUTOSPACEBAR, "Quick cursor paste Auto-Repeat", "Leaving the space bar pressed will auto-repeat the action"},
- {PATTERN_NOEXTRALOUD, "No loud samples", "Disable loud playback of samples in the sample/instrument editor"},
+ {PATTERN_NOEXTRALOUD, "No loud samples", "Disable loud playback of samples in the sample/instrument editor. Sample volume depends on the sample volume slider on the general tab when activated."},
{PATTERN_SHOWPREVIOUS, "Show Prev/Next patterns", "Displays grayed-out version of the previous/next patterns in the pattern editor. Does not work if \"always center active row\" is disabled."},
{PATTERN_CONTSCROLL, "Continuous scroll", "Jumps to the next pattern when moving past the end of a pattern"},
{PATTERN_KBDNOTEOFF, "Record note off", "Record note off when a key is released on the PC keyboard (Only works in instrument mode)."},
Modified: trunk/OpenMPT/mptrack/mptrack.rc
===================================================================
--- trunk/OpenMPT/mptrack/mptrack.rc 2010-01-09 20:06:18 UTC (rev 460)
+++ trunk/OpenMPT/mptrack/mptrack.rc 2010-01-10 14:50:33 UTC (rev 461)
@@ -298,7 +298,7 @@
END
IDD_OPTIONS_COLORS DIALOGEX 0, 0, 272, 281
-STYLE DS_SETFONT | DS_3DLOOK | WS_CHILD | WS_DISABLED | WS_CAPTION
+STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Colours"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
@@ -309,10 +309,10 @@
EDITTEXT IDC_SECONDARYHILITE,114,108,21,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "Enable effect highlighting",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,60,114,10
CONTROL "Use small font",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,45,102,10
- PUSHBUTTON "MPT",IDC_BUTTON5,144,246,24,15
- PUSHBUTTON "FT2",IDC_BUTTON6,204,246,24,15
- PUSHBUTTON "IT",IDC_BUTTON7,174,246,24,15
- PUSHBUTTON "Buzz",IDC_BUTTON8,234,246,24,15
+ PUSHBUTTON "MPT",IDC_BUTTON5,126,246,30,15
+ PUSHBUTTON "Blue",IDC_BUTTON6,198,246,30,15
+ PUSHBUTTON "Green",IDC_BUTTON7,162,246,30,15
+ PUSHBUTTON "Buzz",IDC_BUTTON8,234,246,30,15
CONTROL "Colour",IDC_BUTTON1,"Button",BS_OWNERDRAW,25,194,51,15
CONTROL "Colour",IDC_BUTTON2,"Button",BS_OWNERDRAW,98,194,51,15
CONTROL "Colour",IDC_BUTTON3,"Button",BS_OWNERDRAW,168,194,51,15
@@ -326,8 +326,8 @@
CONTROL "",IDC_BUTTON4,"Button",BS_OWNERDRAW | BS_FLAT,65,130,114,43
CONTROL "Set highlights to songs' time signatures",IDC_CHECK5,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,75,136,10
- PUSHBUTTON "Load...",IDC_LOAD_COLORSCHEME,18,246,48,15
- PUSHBUTTON "Save...",IDC_SAVE_COLORSCHEME,72,246,48,15
+ PUSHBUTTON "Load...",IDC_LOAD_COLORSCHEME,18,246,42,15
+ PUSHBUTTON "Save...",IDC_SAVE_COLORSCHEME,66,246,42,15
GROUPBOX "Colour Presets",IDC_STATIC,6,228,264,42
END
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|