Wie muss ich den Stream berechnen damit ich wieder den richtigen ausschlag bei der Visualisierung erhalte?
Damit ich nicht meine
API abermals ändern muss habe ich mir folgendes gedacht.
Ich hole mir über ChanInfo die Informationen vom Stream ein
Delphi-Quellcode:
var
ChanInfo: BASS_CHANNELINFO;
begin
FillChar(ChanInfo, SizeOf(BASS_CHANNELINFO), 0);
BASS_ChannelGetInfo(FChannelID, ChanInfo);
und vergleiche anschließend ob BASS_SAMPLE_FLOAT verwendet wird.
Delphi-Quellcode:
if ((ChanInfo.flags and BASS_SAMPLE_FLOAT) = BASS_SAMPLE_FLOAT) then
begin
So weit so gut.
Wie berechne ich nun den Stream damit er wieder korrekt Visualisiert wird.
Delphi-Quellcode:
if (FChannels = 1) or (FChannels > 2) then
begin
BASS_ChannelGetData(FChannelId, @SpectrumData, BASS_DATA_FFT2048);
for i := 1 to 576 do
begin
p2^ := Trunc(SpectrumData[i] * FVisScale);
Inc(p2);
end;
for i := 1 to 576 do
begin
p2^ := Trunc(SpectrumData[i] * FVisScale);
Inc(p2);
end;
end
Die frage wäre also zurück in einen 16Bit Stream konvertieren? (Wie?)
Dann muss ich meine Function nicht neu schreiben.
oder über einen Temporären Buffer schicken.
Mir fällt aber nicht ein wie ich das berechnen kann.
schön wenn mir da jemand helfen könnte.
gruss