Einzelnen Beitrag anzeigen

Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#15

Re: Sound ausgabe 40 mal in der Sekunde

  Alt 22. Jun 2005, 15:08
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
Felix Alter
  Mit Zitat antworten Zitat