Zitat von
Six:
Du schreibst, dass Sampleraten (ich nehme an, das ist die höhe des Tons) zwischen 100Hz und 10Khz möglich sind. Ich bräuchte aber um die 22Khz, ist das irgendwie zu bewerkstelligen (liegt nicht mehr im höhrbaren Bereich und soll auch nicht höhrbar sein)?
Sorry, Null vergessen (100 kHz --> für 22,05 kHz setze Samplerate auf 22050 [Hz])
Zitat:
Was ist diese Sound
Dll von der du sprichst, brauche ich die um den Code auszuführen? Brauche ich DelphiX um den Code auszuführen?
Die Sound.dll ist eine
DLL. die ich selber entwickle. Du brauchst sie nicht. Ich habe Teile des Beispielcodes oben aus ihr Kopiert /(Copy&Paste&Anpass). Leider hat der Wiederrgabecode der Sound.dll momentan einen Bug. Beim verlassen der Proc wird (wenn es nicht der erste Aufruf ist) eine EAccesViolation ausgelöst. Tatsächlich in dieser Zeile:
Delphi-Quellcode:
procedure ...(...); stdcall;
var
...
begin
...
end; // <-- HIER
Ansonsteh hätte ich sie dir empfohlen... Aber erst muss die
Exception weg, da sonst das gesamte Programm (das die
DLL geladen hat), beendet wird
Zitat:
Kann man die Sinuskurve nicht irgendwie so berechnen, das einmal ein Ton hörbar ist und dann wider für eine bestimmte zeit nicht, dann kommt wieder ein Ton etc.? So wie auf den Herzfrequenzmessern im Krankenhaus?
Setze die nicht hörbaren Bereiche auf Null (z. B. 11025 Samples lassen, 11025 Samples Null, dann wieder unverändert, ...)
Vielleicht wäre es praktisch, wenn du verstehst, wie Audiodaten im PCM-Format aufgebaut sind...
Nehmen wir an, du hast zwei digitale Spannungsmesser an eine Audioquella engeschlossen und misst jetzt in jeder Seklunde 22050 mal die Spannung, ein Spannungsmessetr rechts und einen links.
Die Spannungsmesser bringen 16-Bit-Werte zwischen -3,2768 V* und 3,2768 V*. Du multiplizierst sie mit 10000 und speicherst sie nacheinander ab, erst links, dann rechts, dann den nächsten Messwert...
Damit hast du dein Geräusch als PCM-Rohdaten.
Zur Wiedergabe wird an den Soundkartenausgang mit den gleicghen Zeitabständen wie bei der Aufnahme die vorher gemessene und dann gespeicherte Spannung angelegt. Mit einem Leistungs-Verstärker in deiner aktiven Lautsprecherbox kannst du die Lautsprecher mit hohen Leistungen ansteuern und somit ganz laut Musik oder andere Klänge wiedergeben.
Jetzt fällt der Schritt der Aufnahme weg, du erzeugst selbst den Ton, mit Zuhilfenahme der Sinusfunktion.
PS: Ich kann hier für Richtigkeiten keine Gewähr geben. Ich habe das Prinzip, Töne in den Speicher zu schreiben, durch eigebnes Ausprobieren entdeckt, ohne irgendwo zu lesen. Bei mkir hat es zumindest funktioniert.
________
*) Es wird i. d. R. mit Spannungen unter 1 V gearbeitet (775 mV wäre Standard, wird aber meist nicht ganz eingehalten), das hier war nur zur einfacheren Veranschaulichung.