Einzelnen Beitrag anzeigen

Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Zwei Stereo Streams zusammenmischen

  Alt 30. Jul 2005, 09:27
Also in deinem Beispiel mixt du zwei Mono-Streams zu einem Stereo-Stream zusammen.

Mono-Stream: jeweils ein 16-Bit-Wert je Sample
Stereo-Stream: jeweils zwei 16-Bit-Werte je Sample, abwechselnd links und rechts.

Das Zusammenmischen von Audiodaten ist normalerweise eine einfache Addition, wobei du aber auf Überlauf prüfen oder ggf. eine Anpassung der Lautstärke machen musst.

Delphi-Quellcode:
function TForm1.SoundStreamsMischenStereo(Stream1, Stream2: PSmallInt): PSmallInt;
var
  i: integer;
  Data2, Data3, Data4, Ziel, Ziel2: PSmallInt;
begin
  GetMem(Ziel, Size);
  Ziel2 := Ziel;
  Data2 := Stream1;
  Data4 := Stream2;
  for i := Size - 1 downto 0 do
  begin
    ziel2^ := (Data2^ + Data4^) div 2; // Halbe Lautstärke -> kein Überlauf möglich
    Inc(Ziel2);
    Inc(Data2);
    Inc(Data4);
  end;
  Result := Ziel;
end;
Frage: woher kommt die Variable Size?
Volker
  Mit Zitat antworten Zitat