fixed bug in distortion when using stereo and sample&hold.

This commit is contained in:
Dominik Ries 2018-03-16 19:18:41 +01:00
parent 10457b31ec
commit ced4a2b7b9
6 changed files with 19 additions and 16 deletions

Binary file not shown.

Binary file not shown.

View File

@ -763,9 +763,10 @@ go4kDST_func_do:
fst dword [WRK+go4kDST_wrk.snhphase]
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 (inr)
faddp st1, st0 ; // 1+snh' in (inr)
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
@ -793,14 +794,13 @@ go4kDST_func_mono:
fst dword [WRK+go4kDST_wrk.out] ; // out' (outr)
%endif
ret ; // out' (outr)
%ifdef GO4K_USE_DST_SH
go4kDST_func_hold: ; // snh' in (inr)
fstp st0 ; // in (inr)
%ifdef GO4K_USE_DST_SH
go4kDST_func_hold: ; // in (inr)
fstp st0 ; // (inr)
%ifdef GO4K_USE_DST_STEREO
fstp st0
test al, byte STEREO
jz short go4kDST_func_monohold
jz short go4kDST_func_monohold ; // (inr)
fstp st0 ; //
fld dword [WRK+go4kDST_wrk.out2] ; // outr
go4kDST_func_monohold:
%endif

View File

@ -763,9 +763,10 @@ go4kDST_func_do:
fst dword [WRK+go4kDST_wrk.snhphase]
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 (inr)
faddp st1, st0 ; // 1+snh' in (inr)
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
@ -793,14 +794,13 @@ go4kDST_func_mono:
fst dword [WRK+go4kDST_wrk.out] ; // out' (outr)
%endif
ret ; // out' (outr)
%ifdef GO4K_USE_DST_SH
go4kDST_func_hold: ; // snh' in (inr)
fstp st0 ; // in (inr)
%ifdef GO4K_USE_DST_SH
go4kDST_func_hold: ; // in (inr)
fstp st0 ; // (inr)
%ifdef GO4K_USE_DST_STEREO
fstp st0
test al, byte STEREO
jz short go4kDST_func_monohold
jz short go4kDST_func_monohold ; // (inr)
fstp st0 ; //
fld dword [WRK+go4kDST_wrk.out2] ; // outr
go4kDST_func_monohold:
%endif

View File

@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "4klang", "Go4kVSTi.vcxproj", "{107757EA-2FE1-4C5E-964F-DE7E482E253F}"
EndProject
Project("{D3783134-2AE6-4F36-A599-989377222068}") = "4klang2", "Go4kVSTi2.vcxproj", "{FA790F08-0B8E-43D9-A4B4-519AB01B820C}"

View File

@ -14,6 +14,9 @@ The repository contains the folders:
- 4klang_source (the VSTi source as well as the needed 4klang.asm file for compilation in your exe)
The plugin project here is based on Visual Studio 2015, so that and above should compile out of the box.
The only additional thing you need for compilation is YASM/vsyasm, so download and follow the instructions here to get it running:
https://github.com/ShiftMediaProject/VSYASM
Examples
--------