Zitat von
himitsu:
Aber mal ganz ehrlich, Spectrumdata und specdata sind nicht gleich definiert.
Code:
specdata = array[0..irgendwas] of MirUnbekannt
[color=#0000ff]und [/color]
Spectrumdata = array[[color=#ff0000]0..1[/color], 0..575] of byte;
fällt dir was auf?
da ist ein Wert zuviel.
ja jetzt wo du es sagst
Nein im ernst habe da nicht nach gesehen soweit war ich noch nicht.
Da bedingt durch die übersetzung sich das projekt erst gar nicht kompilieren ließ.
Spätestens danach wäre es mir aufgefallen mit einer neuen Fehlermeldung
welche nicht ausgebleieben wäre ..
trotzdem danke für die Info.
Das ist Original!
Code:
for (c=0;c<=1;c++)
{
for ( i = 0; i < 72; i++ )
{
h=0.0f;
for (j=0;j<8;j++) h+=specdata[i*8+j+c*576];
h/=(1.0f*255.0f);
h=(float)(log(h+1.0f))*10.0f;
delta=(currenttime-lastcurrenttime)*10.0f;
delta2=(currenttime-lastcurrenttime)*2.0f;
if (h>heights[c][i]-delta) heights[c][i]=h; else heights[c][i]=heights[c][i]-delta;
if (h>heights2[c][i]-delta2) heights2[c][i]=h; else heights2[c][i]=heights2[pre][i]-delta2;
}
}
So gehts jetzt? Dank den Hinweis auf dem array
Delphi-Quellcode:
// Spektrum Analyser Daten glaetten
for c := 0 to 1 do
begin
for i := 0 to 72 do
begin
h := 0.0;
for j := 0 to 8 do
begin
h := (h + This_Mod^.Spectrumdata[0][i * 8 + j + c * 576]);
h := h / (1.0 * 255.0);
h := Ln(h + 1.0) * 10.0;
delta := (ElapsedTime - LastTime) * 10.0;
delta2 := (ElapsedTime - LastTime) * 2.0;
if (h > heights[c][i] - delta) then
h := heights[c][i]
else
heights[c][i] := heights[c][i] - delta;
if (h > heights2[c][i] - delta2) then
h := heights2[c][i]
else
heights2[c][i] := heights2[c][i] - delta2;
end;
end;
end;
gruss Emil