我在Pascal中找了很长时间这个算法并没有找到,我发现它只在C++中,它令人沮丧.然后我决定翻译Pascal的C++代码,但是有些问题我无法解决.它出现了错误消息"浮点溢出".我想帮助使这段代码有效!
var
WFX: pWaveFormatEx;
{** Algoritimo Pitch Shift **}
gInFIFO, gOutFIFO, gLastPhase, gSumPhase, gOutputAccum: Array Of Extended;
gAnaMagn, gAnaFreq, gSynFreq, gSynMagn, gFFTworksp: Array Of Extended;
Const
MAX_FRAME_LENGTH = 8192;
implementation
{$R *.dfm}
procedure smbFft(fftBuffer: PExtended; fftFrameSize, sign: Integer);
var
p1, p2, p1r, p1i, p2r, p2i: PExtended;
wr, wi, arg, temp: EXTENDED;
tr, ti, ur, ui: EXTENDED;
i, bitm, j, le, le2, k: Integer;
begin
i:= 2;
WHILE (i < 2*fftFrameSize-2) DO //for (i = 2; i < 2*fftFrameSize-2; i += …Run Code Online (Sandbox Code Playgroud) 我需要将下面的结构转换为delphi.我怀疑这个":4"值在"保留"和"版本"成员中意味着什么.看起来它会干扰结构的大小!有提示的人吗?
typedef struct _FSRTL_COMMON_FCB_HEADER {
CSHORT NodeTypeCode;
CSHORT NodeByteSize;
UCHAR Flags;
UCHAR IsFastIoPossible;
UCHAR Flags2;
UCHAR Reserved :4;
UCHAR Version :4;
PERESOURCE Resource;
...
Run Code Online (Sandbox Code Playgroud) 我复制了互联网的代码源,它有一个恒定的"UNITS".这个常数的价值是多少?我想找到但没找到.
见http://graph-studio-next.googlecode.com/svn-history/r169/trunk/baseclasses/pullpin.cpp
m_tDuration = llTotal * UNITS;
Run Code Online (Sandbox Code Playgroud)