From: <sag...@us...> - 2014-12-13 21:47:45
|
Revision: 4648 http://sourceforge.net/p/modplug/code/4648 Author: saga-games Date: 2014-12-13 21:47:31 +0000 (Sat, 13 Dec 2014) Log Message: ----------- [Imp] Add shortcuts for upsample, downsample, resample (default: Ctrl+R) in sample editor. Modified Paths: -------------- trunk/OpenMPT/mptrack/CommandSet.cpp trunk/OpenMPT/mptrack/CommandSet.h trunk/OpenMPT/mptrack/Ctrl_smp.cpp trunk/OpenMPT/mptrack/Ctrl_smp.h trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb Modified: trunk/OpenMPT/mptrack/CommandSet.cpp =================================================================== --- trunk/OpenMPT/mptrack/CommandSet.cpp 2014-12-13 20:10:24 UTC (rev 4647) +++ trunk/OpenMPT/mptrack/CommandSet.cpp 2014-12-13 21:47:31 UTC (rev 4648) @@ -667,6 +667,9 @@ DefineKeyCommand(kcSampleTransposeOctDown, 1910, _T("Transpose -12")); DefineKeyCommand(kcPatternInterpolateInstr, 1911, _T("Interpolate Instrument")); DefineKeyCommand(kcDummyShortcut, 1912, _T("Dummy Shortcut")); + DefineKeyCommand(kcSampleUpsample, 1913, _T("Upsample")); + DefineKeyCommand(kcSampleDownsample, 1914, _T("Downsample")); + DefineKeyCommand(kcSampleResample, 1915, _T("Resample")); // Add new key commands here. Modified: trunk/OpenMPT/mptrack/CommandSet.h =================================================================== --- trunk/OpenMPT/mptrack/CommandSet.h 2014-12-13 20:10:24 UTC (rev 4647) +++ trunk/OpenMPT/mptrack/CommandSet.h 2014-12-13 21:47:31 UTC (rev 4648) @@ -680,6 +680,9 @@ kcSampleMonoLeft, kcSampleMonoRight, kcSampleMonoSplit, + kcSampleUpsample, + kcSampleDownsample, + kcSampleResample, kcSampleInvert, kcSampleSignUnsign, kcSampleRemoveDCOffset, Modified: trunk/OpenMPT/mptrack/Ctrl_smp.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2014-12-13 20:10:24 UTC (rev 4647) +++ trunk/OpenMPT/mptrack/Ctrl_smp.cpp 2014-12-13 21:47:31 UTC (rev 4648) @@ -1484,9 +1484,18 @@ { return; } + ApplyResample(dlg.GetFrequency()); +} + +void CCtrlSamples::ApplyResample(uint32_t newRate) +//------------------------------------------------ +{ BeginWaitCursor(); + ModSample &sample = m_sndFile.GetSample(m_nSample); + if(sample.pSample == nullptr) return; + SampleSelectionPoints selection = GetSelectionPoints(); LimitMax(selection.nEnd, sample.nLength); if(selection.nStart >= selection.nEnd) @@ -1495,7 +1504,7 @@ selection.nEnd = sample.nLength; } - const uint32 newRate = dlg.GetFrequency(); + const uint32_t oldRate = sample.GetSampleRate(m_sndFile.GetType()); const SmpLength selLength = (selection.nEnd - selection.nStart); const SmpLength newSelLength = Util::muldivr_unsigned(selLength, newRate, oldRate); const SmpLength newSelEnd = selection.nStart + newSelLength; @@ -3042,6 +3051,17 @@ case kcSampleTransposeDown: transpose = -1; break; case kcSampleTransposeOctUp: transpose = 12; break; case kcSampleTransposeOctDown: transpose = -12; break; + + case kcSampleUpsample: + case kcSampleDownsample: + { + uint32_t oldRate = m_sndFile.GetSample(m_nSample).GetSampleRate(m_sndFile.GetType()); + ApplyResample(wParam == kcSampleUpsample ? oldRate * 2 : oldRate / 2); + } + break; + case kcSampleResample: + OnResample(); + break; } if(transpose) Modified: trunk/OpenMPT/mptrack/Ctrl_smp.h =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_smp.h 2014-12-13 20:10:24 UTC (rev 4647) +++ trunk/OpenMPT/mptrack/Ctrl_smp.h 2014-12-13 21:47:31 UTC (rev 4648) @@ -55,6 +55,7 @@ // Applies amplification to sample. Negative values // can be used to invert phase. void ApplyAmplify(int32 nAmp, bool fadeIn = false, bool fadeOut = false); + void ApplyResample(uint32_t newRate); SampleSelectionPoints GetSelectionPoints(); void SetSelectionPoints(SmpLength nStart, SmpLength nEnd); Modified: trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb =================================================================== --- trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb 2014-12-13 20:10:24 UTC (rev 4647) +++ trunk/OpenMPT/mptrack/res/defaultKeybindings.mkb 2014-12-13 21:47:31 UTC (rev 4648) @@ -290,6 +290,7 @@ 8:1386:0:107:1 //Zoom Out: NUM PLUS (KeyDown) 8:1387:0:109:1 //Zoom In: NUM SUB (KeyDown) 8:1882:0:32:1 //Zoom into Selection: Space (KeyDown) +8:1915:2:82:1 //Resample: Ctrl+R (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:69:1 //Remove DC Offset: Ctrl+E (KeyDown) Modified: trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb =================================================================== --- trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb 2014-12-13 20:10:24 UTC (rev 4647) +++ trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb 2014-12-13 21:47:31 UTC (rev 4648) @@ -23,9 +23,8 @@ 0:1026:2:118:5 //Play Pattern from Cursor: Ctrl+F7 (KeyDown|KeyHold) 0:1376:0:120:1 //Toggle MIDI Record: F9 (KeyDown) 0:1359:2:90:5 //Undo: Ctrl+Z (KeyDown|KeyHold) +0:1905:3:90:5 //Redo: Shift+Ctrl+Z (KeyDown|KeyHold) 0:1905:2:89:5 //Redo: Ctrl+Y (KeyDown|KeyHold) -0:1905:3:90:5 //Redo: Shift+Ctrl+Z (KeyDown|KeyHold) -0:1905:2:89:1 //Redo: Ctrl+Y (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) @@ -71,10 +70,12 @@ 2:1038:0:40:5 //Navigate down by 1 row: NACH-UNTEN (KeyDown|KeyHold) 2:1039:0:38:5 //Navigate up by 1 row: NACH-OBEN (KeyDown|KeyHold) 2:1691:4:32:5 //Navigate down by spacing: Alt+LEER (KeyDown|KeyHold) +2:1691:4:40:5 //Navigate down by spacing: Alt+NACH-UNTEN (KeyDown|KeyHold) +2:1692:4:38:5 //Navigate up by spacing: Alt+NACH-OBEN (KeyDown|KeyHold) 2:1040:0:37:5 //Navigate left: NACH-LINKS (KeyDown|KeyHold) 2:1041:0:39:5 //Navigate right: NACH-RECHTS (KeyDown|KeyHold) -2:1042:0:9:1 //Navigate to next channel: TABULATOR (KeyDown) -2:1043:1:9:1 //Navigate to previous channel: Shift+TABULATOR (KeyDown) +2:1042:0:9:5 //Navigate to next channel: TABULATOR (KeyDown|KeyHold) +2:1043:1:9:5 //Navigate to previous channel: Shift+TABULATOR (KeyDown|KeyHold) 2:1044:0:36:1 //Go to first channel: POS1 (KeyDown) 2:1045:2:36:1 //Go to first row: Ctrl+POS1 (KeyDown) 2:1046:6:36:1 //Go to first row of first channel: Ctrl+Alt+POS1 (KeyDown) @@ -134,7 +135,7 @@ 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:1059:2:46:1 //Clear row and step: Ctrl+ENTF (KeyDown) +2:1059:2:46:5 //Clear row and step: Ctrl+ENTF (KeyDown|KeyHold) 2:1060:1:46:1 //Clear field and step: Shift+ENTF (KeyDown) 2:1665:0:46:1 //Clear field and step (IT Style): ENTF (KeyDown) 2:1061:0:8:5 //Delete rows: R\xDCCK (KeyDown|KeyHold) @@ -312,11 +313,14 @@ 8:1386:0:107:1 //Zoom Out: + (ZEHNERTASTATUR) (KeyDown) 8:1387:0:109:1 //Zoom In: - (ZEHNERTASTATUR) (KeyDown) 8:1882:0:32:1 //Zoom into Selection: LEER (KeyDown) -8:1887:2:56:1 //Convert to 8-bit: Ctrl+8 (KeyDown) +8:1887:2:56:1 //Convert to 8-bit / 16-bit: Ctrl+8 (KeyDown) 8:1888:1:77:1 //Convert to Mono (Mix): Shift+M (KeyDown) 8:1889:1:76:1 //Convert to Mono (Left Channel): Shift+L (KeyDown) 8:1890:1:82:1 //Convert to Mono (Right Channel): Shift+R (KeyDown) 8:1891:1:83:1 //Convert to Mono (Split Sample): Shift+S (KeyDown) +8:1913:2:70:1 //Upsample: Ctrl+F (KeyDown) +8:1914:2:71:1 //Downsample: Ctrl+G (KeyDown) +8:1915:2:82:1 //Resample: Ctrl+R (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:69:1 //Remove DC Offset: Ctrl+E (KeyDown) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |