AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Amplitude und Frequenz durch BASS_ChannelGetData
Thema durchsuchen
Ansicht
Themen-Optionen

Amplitude und Frequenz durch BASS_ChannelGetData

Ein Thema von Killerregenwurm · begonnen am 16. Feb 2008 · letzter Beitrag vom 13. Jul 2009
Antwort Antwort
Seite 1 von 3  1 23      
Killerregenwurm

Registriert seit: 10. Feb 2008
Ort: Herten
13 Beiträge
 
Delphi 5 Professional
 
#1

Amplitude und Frequenz durch BASS_ChannelGetData

  Alt 16. Feb 2008, 12:07
Hallo,

Ich versuche seit einer Woche eine Möglichkeit zu finden, bei der ich eine Amplitude und Frequenz des momentanen Audioausgang Channels zu bekommen.

Nach erstenversuchen direkt den iTunes Com-Port zu benutzen musste ich festellen, dass dies dort nicht geht.

Nach etwas weiterem suchen, bin ich auf die Bass.dll gestoßen.

Durch Google und diversen Foren bin ich dann auf 'BASS_ChannelGetData' gekommen.

Da ich Delphi in der Schule seit nem Monat ca. beigebracht bekomme und dies recht langwierig sich zieht, habe ich noch nicht genpügend Kenntnisse bei Feinheiten in Delphi

Ich habe durhc Suchen in Foren rausbekommen, dass die Funktion 'BASS_ChannelGetData' genau meine Bedürfnisse dekcen sollte. Doch leider habe ich nirgends gefunden, wie genau ich diese in meine procedure einzubinden habe, und wie ich die Daten dann vernünftig auslesen kann.
Ich glaube es liegt an meinen Mangelnden Kenntnissen von Arrays und Pointern, die diese Funktion anscheinend braucht.

Deswegen hier meine Frage:

wie habe ich BASS_ChannelGetData richtig einzubinden, damit ich auslesen kann, wie hoch der aktuele Pegel einer bestimmt Frequenz ist

Meine bisherigen Versuche sind leider alle kläglich gescheiter.
data := BASS_ChannelGetData(ch,@fft,BASS_DATA_FFT1024); Dies ist glaue ich mehr falsch als richtig, deswegen würde ich euch bitten, mir einmal zu erklären wie das funktioniert und wie ich das einzubinden habe etc.

Falls noch fragen sind beantworte ich diese gerne.

Grüße
Killerregenwurm
  Mit Zitat antworten Zitat
Killerregenwurm

Registriert seit: 10. Feb 2008
Ort: Herten
13 Beiträge
 
Delphi 5 Professional
 
#2

Re: Amplitude und Frequenz durch BASS_ChannelGetData

  Alt 20. Feb 2008, 13:59
*Push*

Kann mir da echt keiner weiterhelfen?
  Mit Zitat antworten Zitat
Killerregenwurm

Registriert seit: 10. Feb 2008
Ort: Herten
13 Beiträge
 
Delphi 5 Professional
 
#3

Re: Amplitude und Frequenz durch BASS_ChannelGetData

  Alt 23. Feb 2008, 14:31
nahc langem tüfteln und rumprobieren bin ich endlich ein Stpck weiter:
Delphi-Quellcode:
procedure TmfMovinhead.btItunesClick(Sender: TObject);
var
  ch:HMusic;
  fft : array[1..256] of single;
  n,i : integer;
  begin
  self.laItunetrackOut.caption := getCurrentTitle(iTunesApp);
  BASS_ChannelGetData(ch,@fft,BASS_DATA_FFT512);

  PaintBox1.Canvas.FillRect(rect(0, 0, paintbox1.width, paintbox1.height));
  PaintBox1.Canvas.Pen.Color := clBlack;
  for i := 1 to 256 do begin
    n := round(fft[i]);
    PaintBox1.Canvas.PenPos := point(i, 100);
    PaintBox1.Canvas.LineTo(i, 100 - n);
    self.Label3.Caption := self.Label3.Caption+ IntToStr(i) + ':' + intToStr(n) + ' ,';
  end;
end;
dies habe ich auf grundlagen von dieser Quelle erreicht.

der fft wird richtig belegt, nur kommt nach dem runden 0 als n raus und und nach dem zweiten Schleifendurchgang bricht das Programm ab und gibt an 'ungültige Gleitkommaoperation'

Kann es sein, dass ich den Channel falsch belegt habe? ich möchte den normalen ausgang überprüfen, auf dem Musik und so die Soundkarte verlässt.

Ich freue mich sehr über jede Antwort die mir hilft.

Grüße
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Amplitude und Frequenz durch BASS_ChannelGetData

  Alt 23. Feb 2008, 23:31
Hier mal ein Beispiel...

Vielleicht hilft dir das hier auch weiter.

Gruss
Thorsten
Angehängte Dateien
Dateityp: zip basstest_170.zip (13,5 KB, 109x aufgerufen)
  Mit Zitat antworten Zitat
Killerregenwurm

Registriert seit: 10. Feb 2008
Ort: Herten
13 Beiträge
 
Delphi 5 Professional
 
#5

Re: Amplitude und Frequenz durch BASS_ChannelGetData

  Alt 23. Feb 2008, 23:42
vielen dank.

Das ist mal nen Beispiel das direkt funktioniert.

Allerdings bräuchte ich dies für den Output Kanal, nicht wie dort für Input (also mikro).

Was muss ich dennd ann ändern?

Grüße

Killerregenwurm
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Amplitude und Frequenz durch BASS_ChannelGetData

  Alt 23. Feb 2008, 23:52
Du kannst den Eingang selber wählen.
Ob du an den Masterausgang kommst, liegt an deiner Soundkarte und deinem Treiber.
Über den "Stereo Mix" oder ähnliche Bezeichnung kannst du an deine Masterspur kommen.

Siehe dazu auch hier.

Gruss
Thorsten
  Mit Zitat antworten Zitat
Killerregenwurm

Registriert seit: 10. Feb 2008
Ort: Herten
13 Beiträge
 
Delphi 5 Professional
 
#7

Re: Amplitude und Frequenz durch BASS_ChannelGetData

  Alt 24. Feb 2008, 10:38
der Link ist zwar ganz nett, aber so wirklich weitergebracht hat er mich nicht.

Ich suche wirklich nur noch die möglichkeit den Soundmix in

 BASS_ChannelGetData(channel,@fft,BASS_DATA_FFT512);
in den Handle Channelden Soundmix reinzubekommen....

Habe jetzt versucht durch die BassTest oben den richtigen device und kanalauszuwählen aber kein erfolg

Das geht doch bestimmt, aber irgendwie stehen ich hier gerade voll auf dem Schlauch....
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Amplitude und Frequenz durch BASS_ChannelGetData

  Alt 24. Feb 2008, 16:36
Schade das du das nicht verstanden hast.

Der Link sollte nur die Problematik verdeutlichen. Das was du willst muss deine Soundkarte unterstützen. Dies geht über den Aufnahmeeingang "Stereo Mix", dieser wird aber bei neueren Soundkarten von den Herstellern unterdrückt. Falls du also so einen Eingang nicht hast, dann hast du leider Pech gehabt. Da kannst du dann auch nichts machen.

Ich weiss nicht was daran jetzt so unverständlich ist. Endweder hat deine Soundkarte eine Möglichkeit den Gesamtausgang aufnehmen zu können und über diesen Aufnahmeeingang an alles was du in deinen Lautsprechern hörst ranzukommen, dann kannst du das über mein Programm auswählen oder eben nicht. Wenn nicht, dann geht das nicht.
Dies ist kein Softwareproblem sondern ein Hardwareproblem.
Sorry, aber wie oft soll ich es noch wiederholen?

Gruss
Thorsten
  Mit Zitat antworten Zitat
Killerregenwurm

Registriert seit: 10. Feb 2008
Ort: Herten
13 Beiträge
 
Delphi 5 Professional
 
#9

Re: Amplitude und Frequenz durch BASS_ChannelGetData

  Alt 24. Feb 2008, 17:20
den Aufnahme Kanal StereoMix habe ich.

Doch auch wenn ich diesen, über die Windows Soundcontrol auswähle aus Aufnahme Kanal ändert dies nichts im Programm BassTest.

Dies hatte ich schon vorher ausprobiert.

Fakt ist, da ich StereoMix habe, dass ich als channel in Bass_channelGetData diesen Stereomix angeben kann. Doch dies bekomme ich nicht gebacken...

Muss ich also, wenn ich StereoMix als Aufnahme Kanal ausgweählt habe, den Channel den typ HRecord zuweisen? und muss dem Channel dann noch der Kanal oder ähnliches genannt werden?
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Amplitude und Frequenz durch BASS_ChannelGetData

  Alt 24. Feb 2008, 17:33
Ok, du hast also so einen Aufnahmeeingang. Das ist doch schonmal eine Aussage.

Wieso wählst du das im Windows Controlcenter aus? In meinem Beispiel hast du doch zwei Auswahlboxen über die Erste wählt du die zuverwendende Soundkarte (wenn mehr als eine vorhanden ist) und über die zweite Auswahlbox wählst du den Aufnahmeeingang.
Wenn du Start aktiviert hast und eine Soundausgabe vorliegt, wird dir das Spektrum angezeigt.

Hast du damit Probleme oder wie du das jetzt in Delphi selber machst?

Ich werde aus deinem Text leider nicht schlau, kannst du nicht etwas konkreter sein?

Gruss
Thorsten
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 06:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz