AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi [BASS.DLL] Lauten Ton registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[BASS.DLL] Lauten Ton registrieren

Ein Thema von Clemens L. · begonnen am 27. Aug 2010 · letzter Beitrag vom 28. Aug 2010
Antwort Antwort
Clemens L.

Registriert seit: 27. Apr 2008
35 Beiträge
 
Delphi 2009 Architect
 
#1

AW: [BASS.DLL] Lauten Ton registrieren

  Alt 27. Aug 2010, 21:00
Da bin ich wieder,

ich habe mir mittlerweile das mit FFT mal angeschaut, blicke jedoch noch nicht wirklich durch. Ich konnte mithilfe der Funktion BASS_ChannelGetData ein Array bekommen, weiss jedoch nicht wie ich mithilfe dieser Werte einen Ton mit vorher aufgenommenen Werten vergleichen kann.

Ich bekomme mein Array folgendermaßen:

Delphi-Quellcode:
var
  buf: array[0..4095] of Single;

  BASS_ChannelGetData(RecordingChannel, @buf, BASS_DATA_FFT8192 or BASS_DATA_FLOAT);
Ich habe ein solches Array zu dem Zeitpunkt wo ein Ton mit hoher Lautstärke registriert wurde, und möchte diesen Ton nun mit einem vorher aufgenommenen Vergleichen. Ich hoffe ihr könnt mir ein bisschen auf die Sprünge helfen, mit Audio-Programmierung kenne ich mich leider kaum aus.

Gruß
Clemens
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#2

AW: [BASS.DLL] Lauten Ton registrieren

  Alt 28. Aug 2010, 12:09
Hast du den Hinweis von LargoD schon umgesetzt? Wäre imho einfacher als eine FFT.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Clemens L.

Registriert seit: 27. Apr 2008
35 Beiträge
 
Delphi 2009 Architect
 
#3

AW: [BASS.DLL] Lauten Ton registrieren

  Alt 28. Aug 2010, 13:27
Hast du den Hinweis von LargoD schon umgesetzt? Wäre imho einfacher als eine FFT.
Das habe ich, jedoch wäre es sehr praktisch, den Ton grob von anderen Geräuschen isolieren zu können.

Dafür müsste eigentlich die Funktion
BASS_ChannelGetLevel(channelHandle) ausreichen,
die du innerhalb deiner DSP-Callback funktion aufrufst.
Mir fällt gerade auf, dass ich die Töne in einem Timer auswerte, statt es in dem Recording Callback (ich nehme an das gleiche wie DSP-Callback) zu tun. Macht das einen Unterschied?

Gruß
Clemens
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

AW: [BASS.DLL] Lauten Ton registrieren

  Alt 28. Aug 2010, 17:45
Ein Timer löst immer dann aus, wenn das Intervall rum ist. Das Callback immer dann, wenn neue Daten da sind. Folglich wird das Callback häufiger auslösen. Wenn der Ton jetzt mehrere Sekunden lang ist und du nicht den exakten Anfang und das exakte Ende für eine genaue Zeitdauerberechnung brauchst, sollte der Timer reichen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Clemens L.

Registriert seit: 27. Apr 2008
35 Beiträge
 
Delphi 2009 Architect
 
#5

AW: [BASS.DLL] Lauten Ton registrieren

  Alt 28. Aug 2010, 18:23
Ein Timer löst immer dann aus, wenn das Intervall rum ist. Das Callback immer dann, wenn neue Daten da sind. Folglich wird das Callback häufiger auslösen. Wenn der Ton jetzt mehrere Sekunden lang ist und du nicht den exakten Anfang und das exakte Ende für eine genaue Zeitdauerberechnung brauchst, sollte der Timer reichen.

Bernhard
Danke, dann werde ich wohl beim Timer bleiben. Allerdings wird mein Timer anscheinend öfters ausgelöst als das Callback, also öfter, als neue Daten da sind. Muss ich mich damit abfinden, oder kann ich die Aufnahmegeschwindigkeit / Buffergröße so verändern das ich genauer messen kann.
Clemens
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#6

AW: [BASS.DLL] Lauten Ton registrieren

  Alt 28. Aug 2010, 18:33
wenn das so ist, würde ich beim Timer bleiben (weil wohl doch genauer). Ich habe mich allerdings nicht so genau mit der Bass.DLL und den Fähigkeiten beschäftigt. Das liegt daran, dass ich alles über Hier im Forum suchenTBassPlayerEx kapsele.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz