Autor Beitrag
Nickture
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16

Win 98
D2
BeitragVerfasst: So 02.11.03 17:21 
Hallo kennt irgendwer ne möglichkeit den pegel der an einem soundkarteeingagng anliegt zu erfassen oder gar das komplette signal mit pegel und frequenz ? auch über ne dll währe möglich kennt da irgendwer was in der richtung ?
Nickture



Moderiert von user profile icontommie-lie: Topic verschoben
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: So 02.11.03 23:38 
Ich habe deinen Beitrag am 30.10 diesen Jahres, der die gleiche Frage beinhaltete, entfernt.
Doppelposts, sind in diesem Forum unerwünscht und daher untersagt.
Bachte dazu bitte auch unsere Richtlinien
Delphi-Forum.de Richtlinien hat folgendes geschrieben:
1.3 "Vordrängeln"
Wie bereits erwähnt wurde im einen oder anderen Fall bereits eine bewusste Missachtung der in 1.2 und 1.1 genannten Richtlinien festgestellt. Beispielsweise haben Benutzer absichtlich in eine falsche Sparte oder unter einem falschen Beitrag ihre Frage gepostet bzw. ein und dieselbe Frage mehrfach gepostet, um so eine größere Leserschaft zu erreichen. Wir bitten Dich eindringlichst, von einer solchen Vorgehensweise Abstand zu nehmen. Zum einen handelst Du Dir mit an Sicherheit grenzender Wahrscheinlichkeit den einen oder anderen Tadel anderer User ein, zum anderen ist es schlicht unfair den anderen Mitgliedern gegenüber, welche auf Übersichtlichkeit bedacht sind.


Du kannst den Pegel und die Frequenz nicht in einer Art Array aufzeichnen. Zumindest nicht direkt. Was du aber tun kannst, ist das Audiosignal in eine "normale" Wave-Datei aufzunehmen und diese Wavedatei dann entsprechend ihrem Dateiformat auseinandernehmen. Da stehen nämlich die Amplituden für jeden Sample drin (normalerweise ist die Samplerate 44.1 kHz), womit du schonmal arbeiten kannst.
Aufnehmen kannst du entweder über Fremdkomponenten, oder über die Windows Multimedia API (siehe PlatformSDK).
Das Waveform-Format ist ebenfalls im PSDK beschrieben, aber sicherlich findest du auch deutsche und/oder besser erklärte Quellen dazu im Internet.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Do 06.11.03 04:52 
Ich weiss, dass man das irgendwie messen kann. Aber wie???
Ich verstehe dich so, dass du ein Signal eingibst und er dir die Frequenz ausspuckt, oder?
Dafür brauchst du die Fourier-Transformation. Ist ein bisschen kompliziert. Einfach gesagt, spaltet sie eine Folge von Frequenzen in die wirklich enthaltenen Frequenzen auf.

Ich möchte auch - für physikalische Experimente - ein Tool schreiben, mit dem ich schnell messen kann, wie sich meine Frequenz aufschlüsselt?
Ist das bei dir genauso?

freedy->greets
ShadowThief
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 278



BeitragVerfasst: Do 06.11.03 10:52 
tommie-lie hat folgendes geschrieben:
Du kannst den Pegel und die Frequenz nicht in einer Art Array aufzeichnen. Zumindest nicht direkt. ... Aufnehmen kannst du ... über die Windows Multimedia API


wiederspruch. denn mit der windowsmm kann man den soundkarten-
eingang direkt in ein array aufnehmen.

vielleicht bietet fmod da irgendwas komfortables. weil fmod ist
eigentlich geil, da gibts sogar delphi header für.

shadow.

_________________
"soylent grün ist menschenfleisch!"
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Do 06.11.03 20:48 
ShadowThief hat folgendes geschrieben:
wiederspruch. denn mit der windowsmm kann man den soundkarten-
eingang direkt in ein array aufnehmen.

Eigentlich meinte ich, daß es nicht einfach so geht, daß man ein Array hat, daß die Frequenz auf die Zeit abgetragen enthält, und man einfach mit
ausblenden Delphi-Quelltext
1:
frequency := arr[0.1]					

die Frequenz zur Zeit 0,1 Sekunden erhält. ;-)
Die Multimedia-API gibt dir nur die Pegel, abgetragen auf die Zeit in Samples (nicht sekunden) an. Wobei der Pegel nicht die absolute Spannung ist, sondern Prozent des Amplitudenmaximums (jaaa, stimmt auch nicht ganz, da steht nicht "40%", aber wie soll man's anders ausdrücken?). Um die Frequenz rauszukriegen, muss man selber rechnen (Per FFT? Hab keine Ahnung, was das genau ist, ich kenn nur die Grafiken dazu :mrgreen:)

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
Ben
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 31



BeitragVerfasst: Do 06.11.03 23:22 
Ich will ja nicht angeben aber ich habe mit das letzte halbe Jahr beruflich mit der Frequenzanalyse beschäftigt und sie auch mit Delphi umgesetzt, aber nicht im Bezug auf Audiosignale.

FFT steht für Fast Fourier Tranformation. Damit wird ein Signal aus dem Zeitraum in den Frequenzraum transformiert. Ausgangswerte sind diskrete Amplitudenwerte in festen Zeitabständen vom Signal und zwar der Anzahl 2^n. Die vollständige Interpretation des Ergebnisses ist nicht ohne Kenntniss der Signaltheorie (Abtasttheorem, Fensterung, ...) möglich aber grob gesagt handelt es sich um das Frequenzspektrum des Signals. Zu dem Thema kann ich das Buch 'Digitale Signalverarbeitung' von Danial Ch. von Grüningen empfehlen.
Nickture Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16

Win 98
D2
BeitragVerfasst: Do 13.11.03 18:50 
Titel: etwas anders Gedacht
Nee Ne FFT hatte ich damit eigendlich nicht vor auch wenn das sehr schön währe also ben falls du das programm noch hast und es mir mal mailen könntest wöhre das sehr schön auch wenn es einschränkungen hat (nur bis 1 Khz oder so die signale die mich interessieren liegen eh alle unter dieser frequenz dafür wird ein filter sorgen aber mein eigendliches ziel war es den pegel also die Laustärke im physikalischen amplitude des anliegenden signals zu erfassen ich will dieses einfach nur mit einem festen wert vergleichen und bei überschreitung einen steuerimpuls auslösen dass ist alles.
Aber ansonsten erstmal danke
Nickture