Wenn TWaveFormatEx.Channels auf 2 steht, wechseln sich immer linker und rechter Channel ab, also bei 22050 Hz hast du 44100 Smallint-Werte in einer Sekunde Daten. Der erste ist links, Sample 1, der zweite ist rechts, Sample1, dann links Sample 2...
Überleg dir selbst was oder mach zwei Mono-Sounds wie zuvor dargestellt und mische sie dann zusammen (doppelt so viel Speicer wählen und dann abwechselnd Werte von einem und anderen Stream nehmen, in Zählschleife etwa
Delphi-Quellcode:
//Size = Größe der Quellsounds (beide gleich)
//ziel, quelle1, quelle2 wieder PSmallInt
GetMem(ziel, 2*size);
for i := (Size div 2) - 1 downto 0 do //div 2 wegen 16 Bit = 2 Bytes
begin
ziel^ := quelle1^;
inc(Ziel);
ziel^ := quelle2^;
inc(Ziel); // <-- edit: ergänzt, fehlte
end;
//edit: Siehe Quellcode ich glaube ich sollte mit 'nen Shortcut für den anlegen