Hallo Board,
ich will mal ein Spektrum und ein Cepstrum eines geladenen Sounds erstellen. Da dachte ich, ich nehme die GetSoundFrequency und durchlaufe alle Positionen des Sounds. Leider kommt an jeder Stelle 44100 Hz heraus, was wohl eher die Samplingrate ist. Wie komme ich also an die tatsächliche Frequenz der aktuellen Position? Vielleicht weiß es einer?
Gruß nach langer Zeit
Karl
GetSoundFrequency
GetSoundFrequency
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
PB 5.X
- NicTheQuick
- Ein Admin
- Beiträge: 8807
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: GetSoundFrequency
Es gibt nicht eine Frequenz pro Position, sondern viele verschiedene. Man betrachtet normalerweise ein bestimmtes Zeitfenster und wendet darauf eine Fourier-Transformation an. Diese gibt einem bei X betrachteten Samples genau X verschiedene Frequenzen, deren Phase und Amplitude aus.
Purebasic bietet von Haus aus keine Befehle an um das direkt aus einem Soundfile zu extrahieren. Deswegen musst du das entweder selbst programmieren oder der Einfachheit halber Bibliotheken nutzen, die so etwas fertig bereit stellen. Welche man dafür am besten verwendet, hängt ganz vom Lizenzmodell und deinem Betriebssystem ab. Es gibt aber auch Libraries wie "FMOD", die das gleich für alle Betriebssysteme können, aber auch noch viel mehr bieten als du brauchst.
Purebasic bietet von Haus aus keine Befehle an um das direkt aus einem Soundfile zu extrahieren. Deswegen musst du das entweder selbst programmieren oder der Einfachheit halber Bibliotheken nutzen, die so etwas fertig bereit stellen. Welche man dafür am besten verwendet, hängt ganz vom Lizenzmodell und deinem Betriebssystem ab. Es gibt aber auch Libraries wie "FMOD", die das gleich für alle Betriebssysteme können, aber auch noch viel mehr bieten als du brauchst.

Re: GetSoundFrequency
Um die DCT anwenden zu können, - hast du natürlich recht - brauche ich einen Frame. Den Frame kann ich aber aus Einzelsegmenten zusammensetzen (das meine ich mit Position z. B. 1 ms). Ich brauche den Frequenzwert - was liefert denn die GetSoundFrequency? (FMOD wollte ich an sich vermeiden.)
Karl
Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
PB 5.X
- NicTheQuick
- Ein Admin
- Beiträge: 8807
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: GetSoundFrequency
In der Hilfe ist das etwas schlecht ausgedrückt, aber die 'SoundFrequency()' bedeutet hier die Samplingrate, mit der der Sound abgespielt werden soll. Diese kann man auch ändern um einen Sound langsamer oder schneller abspielen zu können. Deswegen hilft dir das in deinem Fall nicht weiter.