backported various bugfixes from master:

- fixed bug in distortion when using stereo and sample&hold
- legacy fix for global sections save/load memory out of bounds access
- fixed delay index fuckup during export when skipping instruments with delay mode "note sync"
- fixed export crash caused by direct use of std::string in printf for store modes
This commit is contained in:
Dominik Ries
2019-04-06 12:55:46 +02:00
parent 45a35d8772
commit fd1013586a
7 changed files with 60 additions and 58 deletions

View File

@@ -748,27 +748,28 @@ go4kDST_func_do:
%endif
movzx eax, byte [VAL-1] ; // get type flag
%ifdef GO4K_USE_DST_SH
fld dword [edx+go4kDST_val.snhfreq] ; // snh in
fld dword [edx+go4kDST_val.snhfreq] ; // snh in (inr)
%ifdef GO4K_USE_DST_MOD_SH
fadd dword [WRK+go4kDST_wrk.sm] ; // snh' in
fadd dword [WRK+go4kDST_wrk.sm] ; // snh' in (inr)
%endif
fmul st0, st0 ; // square the input so we never get negative and also have a smoother behaviour in the lower frequencies
fchs
fadd dword [WRK+go4kDST_wrk.snhphase]; // snh' in
fadd dword [WRK+go4kDST_wrk.snhphase]; // snh' in (inr)
fst dword [WRK+go4kDST_wrk.snhphase]
fldz ; // 0 snh' in
fucomip st1 ; // 0 snh' in
fldz ; // 0 snh' in (inr)
fucomip st1 ; // snh' in (inr)
fstp dword [esp-4] ; // in (inr)
jc short go4kDST_func_hold
fld1 ; // 1 snh' in
faddp st1, st0 ; // 1+snh' in
fstp dword [WRK+go4kDST_wrk.snhphase]; // in
fld1 ; // 1 in (inr)
fadd dword [esp-4] ; // 1+snh' in (inr)
fstp dword [WRK+go4kDST_wrk.snhphase]; // in (inr)
%endif
; // calc pregain and postgain
%ifdef GO4K_USE_DST_STEREO
test al, byte STEREO ; // outr inl
test al, byte STEREO
jz short go4kDST_func_mono
fxch st1 ; // inr inl
fld dword [edx+go4kDST_val.drive] ; // drive inr inl
fld dword [edx+go4kDST_val.drive] ; // drive inr inl
%ifdef GO4K_USE_DST_MOD_DM
fadd dword [WRK+go4kDST_wrk.dm]
%endif
@@ -779,26 +780,26 @@ go4kDST_func_do:
fxch st1 ; // inl outr
go4kDST_func_mono:
%endif
fld dword [edx+go4kDST_val.drive] ; // drive in
fld dword [edx+go4kDST_val.drive] ; // drive in (outr)
%ifdef GO4K_USE_DST_MOD_DM
fadd dword [WRK+go4kDST_wrk.dm]
%endif
call go4kWaveshaper ; // out
call go4kWaveshaper ; // out (outr)
%ifdef GO4K_USE_DST_SH
fst dword [WRK+go4kDST_wrk.out] ; // out'
fst dword [WRK+go4kDST_wrk.out] ; // out' (outr)
%endif
ret ; // out'
%ifdef GO4K_USE_DST_SH
go4kDST_func_hold:
fstp st0 ; // in
fstp st0
ret ; // out' (outr)
%ifdef GO4K_USE_DST_SH
go4kDST_func_hold: ; // in (inr)
fstp st0 ; // (inr)
%ifdef GO4K_USE_DST_STEREO
test al, byte STEREO ; // outr inl
jz short go4kDST_func_monohold
fld dword [WRK+go4kDST_wrk.out2] ; // out2
test al, byte STEREO
jz short go4kDST_func_monohold ; // (inr)
fstp st0 ; //
fld dword [WRK+go4kDST_wrk.out2] ; // outr
go4kDST_func_monohold:
%endif
fld dword [WRK+go4kDST_wrk.out] ; // out
fld dword [WRK+go4kDST_wrk.out] ; // out (outr)
ret
%endif

View File

@@ -35,7 +35,7 @@ IDR_ASM_RES BINARY "4klang.bin"
IDD_GO4KVSTIDIALOG DIALOGEX 0, 0, 594, 341
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_ACCEPTFILES
CAPTION "Alcatraz - 4klang Synth Plugin - Version 3.11"
CAPTION "Alcatraz - 4klang Synth Plugin - Version 3.11.1"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
PUSHBUTTON "Load Patch Data",IDC_LOAD_PATCH,13,13,70,14

View File

@@ -35,7 +35,7 @@ IDR_ASM_RES BINARY "4klang.bin"
IDD_GO4KVSTIDIALOG DIALOGEX 0, 0, 594, 341
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_ACCEPTFILES
CAPTION "Alcatraz - 8klang Synth Plugin (4klang addon) - Version 3.11"
CAPTION "Alcatraz - 8klang Synth Plugin (4klang addon) - Version 3.11.1"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
PUSHBUTTON "Load Patch Data",IDC_LOAD_PATCH,13,13,70,14