Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Audio programmiertechnisch in Lautstärke & Tonhöhe v

  Alt 16. Feb 2007, 19:08
Zitat von St. Janos:
Delphi-Quellcode:
    temp := #$10#0#0#0; RecStream.write(temp[1], length(temp)); // Fixed
    temp := #1#0; RecStream.write(temp[1], length(temp)); // PCM format
wie um
i := i - $24; // size of data Mir ist klar, dass im oberen Teil nur Platzhalter eingetragen werden. Jedoch verstehe ich nicht welche Bedeutung in Delphi diese Zeichenkombinationen haben, wenn Sie ohne Hochkommatas zugewiesen werden.
Das Dollarzeichen ($) vor einer Zahl bedeutet, dass diese hexadezimal zu interpretieren ist.
Der Gartenzaum (#) bedeutet, das die folgende Zahl der Wert des Zeichens ist:
Delphi-Quellcode:
temp := #$10#0#0#0;
temp := chr(16)+chr(0)+chr(0)+chr(0); // das ist das Gleiche wie oben, nur viel umständlicher
Zitat von St. Janos:
Außerdem frag ich mich, wie du des meinst mit dem multiplizieren der Daten? Was genau multiplizieren? Und mit was und was für eine Verstärkung der Lautstärke bewirkt die Mulitplikation mit dem Faktor x bzw. mit welchem Faktor erreich ich die minimalste Verstärkung/Verringerung der Lautstärke?
Erst mal musst du verstehen, wie Signale digital dargestellt werden.
http://de.wikipedia.org/wiki/BildAM-Prinzip.png
Jeder blaue Strich in dem Bild stellt einen digitalisierten Wert im Bereich von -128 bis +127 (bei 8-Bit Auflösung) dar.
Wenn du jetzt jeden einzelnen Wert mit 0.5 multiplizierst, dann ist das Signal halb so laut.
Wenn du mit Werten grösser 1.0 multiplizierst, wird das Signal lauter.
Aber Vorsicht: zu viel, und der gültige Wertebereich wird verlassen, was ganz grausame Verzerrungen verursacht.
Andreas
  Mit Zitat antworten Zitat