Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Bass.dll] Scrolling Spectrum (https://www.delphipraxis.net/89231-%5Bbass-dll%5D-scrolling-spectrum.html)

kurtm1 27. Mär 2007 23:09


[Bass.dll] Scrolling Spectrum
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich suche Codes, bzw. Demos um mit der bass.dll ein scrollendes Spektrum zu realisieren. Soll ca so aussehen (traktor dj screenshot):

MrKnogge 27. Mär 2007 23:48

Re: [Bass.dll] Scrolling Spectrum
 
Moin,

schau dir mal die Bass-Loop-Demo an, dort wird was ähnliches gemacht, vielleicht hilft dir das ja weiter.

Gruß

Wishmaster 28. Mär 2007 07:43

Re: [Bass.dll] Scrolling Spectrum
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi

Auf der Bass Homepage/Forum gibt es en fertigen Code mit dem du das machen kannst!
Suche nach TSampleDisplay3D
Das ganze basiert auf DX9, es hat ne Scroll, Zoome und Loop Funktion.

Info/Download
http://www.3delite.hu

kurtm1 28. Mär 2007 20:16

Re: [Bass.dll] Scrolling Spectrum
 
Hab das probiert, da hat alleine die Demo Applikation (Software Rendering, Hardware funzt nicht) eine CPU Auslastung von ~35%

kurtm1 5. Apr 2007 21:24

Re: [Bass.dll] Scrolling Spectrum
 
push

Ghostwalker 6. Apr 2007 07:01

Re: [Bass.dll] Scrolling Spectrum
 
Also..ich hab mir auch mal das Teil runter geladen.

-> Software-Rendering -> Prozessorlast 18 %
-> Hardware -> Prozessorlast 13 %
-> Mixed -> Prozessorlast 7 %

Da bei dir das Hardware-Rendering nicht funktioniert, tippe ich mal darauf, das deine Graka nicht DirectX9 unterstützt. Oder hast du eine älter DirectX-Version drauf ?

kurtm1 6. Apr 2007 13:02

Re: [Bass.dll] Scrolling Spectrum
 
Liste der Anhänge anzeigen (Anzahl: 1)
wird wahrscheinlich die grafikkarte sein, ja
dx 9 ist eh oben

ich hab jetzt auf un4seen.com einen Artikel (Link) gefunden in dem sich einiges an Source für diese Visualisierung befindet. Hab das mal nachgebaut, allerdings gibts dabei öfters irgendwelche Fehler, oder die Visualisierung bleibt einfach stehn..

Wär super wenn sich das wer ansehen könnte, hab die Source drangehängt. Die TVRThread Komponente ist von hier: http://www.tmssoftware.com/tiw.htm

thx

kurtm1 28. Jun 2008 14:24

Re: [Bass.dll] Scrolling Spectrum
 
push

omata 30. Jun 2008 00:32

Re: [Bass.dll] Scrolling Spectrum
 
Liste der Anhänge anzeigen (Anzahl: 1)

kurtm1 30. Jun 2008 17:51

Re: [Bass.dll] Scrolling Spectrum
 
sehr cool, vielen dank!!
ich werd mir jetzt mal die source durchsehen

kurtm1 1. Aug 2008 23:00

Re: [Bass.dll] Scrolling Spectrum
 
Hab jetzt mal versucht das in eine vorhandene Applikation zu integrieren.
Leider habe ich dabei Probleme, weil ich für die "Ansteuerung" der bass.dll und für das eigentliche Programme eine eigene Klasse habe und diese nicht so richtig zusammenspielen wollen...

Probleme habe ich vorallem mit den Codezeilen die im Thread ausgeführt werden:
Die Arrays welche die eigentlichen Daten enthalten (_zoomtime,_zoomwave_min,_zoomwave_max,_zoomvert) habe ich in der Programmklasse definiert, da ich diese ja dort zumeist brauche. Jetzt möchte ich an die Thread Funktion der Bassklasse (welche die Arrays füllt) nur den Pointer auf diese Arrays weitergeben und diese dort füllen lassen. Wie kann ich das machen bzw. kannst du vielleicht noch ein kleines Beispiel machen, indem die Bass Funktionen ausgelagert sind?

DGL-luke 2. Aug 2008 09:50

Re: [Bass.dll] Scrolling Spectrum
 
Da musst du synchronisieren oder mit Critical Sections arbeiten.

Genauer kann ichs jetzt nicht erklären ohne mehr Code zu haben.

kurtm1 3. Aug 2008 10:18

Re: [Bass.dll] Scrolling Spectrum
 
Der Code ist eh in der zip File oben ;)

omata 3. Aug 2008 13:15

Re: [Bass.dll] Scrolling Spectrum
 
Liste der Anhänge anzeigen (Anzahl: 1)
Vielleicht so...

kurtm1 3. Aug 2008 19:32

Re: [Bass.dll] Scrolling Spectrum
 
perfekt, danke!

kurtm1 5. Aug 2008 17:34

Re: [Bass.dll] Scrolling Spectrum
 
noch eine Frage:
Wie kann man es mit deinem Code realisieren, dass zum Beispiel nur Frequenzen bis 1000hz in das Spektrum aufgenommen werden?

thx

omata 5. Aug 2008 18:19

Re: [Bass.dll] Scrolling Spectrum
 
Das was hier als Spectrum bezeichnet wird ist keins, sondern ist nur ein Zeitsignal. Hier werden überhaupt keine Freuqenzen angezeigt, sondern nur Amplitudenwerte pro Zeiteinheit.

Was soll ich also auf deine Frage antworten?

kurtm1 5. Aug 2008 18:24

Re: [Bass.dll] Scrolling Spectrum
 
ok ;)

ich war nur von diesem thread inspiriert und dachte dass diese Zeitwerte auch auf bestimmte Frequenzen gesetzt werden können

omata 5. Aug 2008 18:34

Re: [Bass.dll] Scrolling Spectrum
 
Ja, bei dem Thread geht es um eine FFT. Da hast du dann die einzelnen Frequenzen, aber eben nicht mehr das Gesamtsignal sondern nur eine bestimmte Fensterbreite.

ChannelGetData + BASS_DATA_FLOAT = Amplitudenwerte = Zeitsignal
ChannelGetData + BASS_DATA_FFT* = Frequenzwerte = Spektrum

kurtm1 5. Aug 2008 18:39

Re: [Bass.dll] Scrolling Spectrum
 
Kann man das in dein Beispiel einbauen? ;)

omata 5. Aug 2008 18:45

Re: [Bass.dll] Scrolling Spectrum
 
Tja, da stellt sich die Frage wie?

Also nicht wie soll man das einbauen, das ist nicht das Problem. Sondern wie soll es aussehen?

Beim Frequenzspektrum wird die Zeit entfernt, aber für einen Scrolling-Effekt wird nunmal die Zeit und das Gesamtsignal benötigt. Also wie soll das Ergebnis aussehen?

kurtm1 5. Aug 2008 18:56

Re: [Bass.dll] Scrolling Spectrum
 
hmm naja perfekt wäre eben wenn das genau gleich aussehen würde, mit der Erweiterung dass man einstellen kann, welche Frequenzen dargestellt werden.

So dass man zbsp. eine Wave hat welche die Höhen anzeigt, eine die Mitten, und eine den Bass

kurtm1 5. Aug 2008 20:55

Re: [Bass.dll] Scrolling Spectrum
 
Noch eine Frage: Ist der TVRThread ein besondere Thread? Weil irgendwie wird, wenn ich einen normalen TThread benutze, die ganze Sache nicht ausgeführt :gruebel:

kurtm1 6. Aug 2008 19:37

Re: [Bass.dll] Scrolling Spectrum
 
Ok ich habe jetzt eine Lösung für die Sachen mit den Frequenzen geschafft. Einfach einen LowPass Filter auf den Decoding Channel geben, dann funktioniert es schon!

omata 7. Aug 2008 01:53

Re: [Bass.dll] Scrolling Spectrum
 
Schade, das du uns nicht an deiner Erkenntnis teilhaben lässt. (mit Beispielcode)

kurtm1 7. Aug 2008 07:35

Re: [Bass.dll] Scrolling Spectrum
 
Ich habe den Code jetzt gerade nicht hier, werde das aber nachreichen!

//edit:
Hier der Code:
Nach dem normalen erstellen des Decode Streams führe ich folgendes aus
Delphi-Quellcode:
var
LowPassFilter:BASS_BFX_LPF;
LowPassFilterHandle:DWORD;

BASS_FXGetParameters(LowPassFilterHandle,@lowpassfilter);
LowPassFilter.fResonance:=1.2;
LowPassFilter.fCutOffFreq:=120;
BASS_FXSetParameters(LowPassFilterHandle,@lowpassfilter);
Für die beiden Werte (Resonance, CutOffFreq) muss man halt experimentieren bzw. für seine Anwendung die besten Werte finden

kurtm1 11. Aug 2008 21:07

Re: [Bass.dll] Scrolling Spectrum
 
So ich habe das ganze jetzt in das Programm eingebaut, für welches es bestimmt war. Leider habe ich jetzt das Problem, dass die CPU Auslastung, sobald der Timer für das Updaten der Anzeige läuft, immer auf ca. 50-60% ansteigt...

Im Demo Programm ist alles ok..

Soweit ich rausfinden konnte, hat es irgendwas mit

Delphi-Quellcode:
procedure TfrmMain.RefreshEvent;
begin
  pbxWave.Refresh;
end;
zu tun. Wenn ich diese Zeile auskommentiere, ist die Auslastung wieder normal.

kurtm1 29. Aug 2008 11:20

Re: [Bass.dll] Scrolling Spectrum
 
@omata: Kannst du mir sagen wie ich den TvrThread durch einen Standard ersetzen kann? Ich habe das probiert, allerdings funktioniert das Auslesen der Werte dann nicht mehr..

omata 29. Aug 2008 15:29

Re: [Bass.dll] Scrolling Spectrum
 
Liste der Anhänge anzeigen (Anzahl: 1)
...

kurtm1 29. Aug 2008 19:47

Re: [Bass.dll] Scrolling Spectrum
 
danke!!

kurtm1 29. Aug 2008 21:09

Re: [Bass.dll] Scrolling Spectrum
 
Was mir noch aufgefallen ist: Im letzten Beispiel passt irgendwas mit dem neuen Thread nicht, da das Programm immer 95% Cpu Auslastung verursacht (auch direkt nach dem starten, wo noch keine Datei geladen ist).

omata 29. Aug 2008 21:40

Re: [Bass.dll] Scrolling Spectrum
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ups, habe das korrigiert.

Edit: Habe noch was geändert!

Edit2: Hier noch eine neue Version, mit Zoom-Möglichkeit.

kurtm1 28. Aug 2009 22:12

Re: [Bass.dll] Scrolling Spectrum
 
Ich muss mal diesen alten Thread wieder aufwärmen.

Mir ist aufgefallen, dass bei dem oben verlinkten Demo die CPU Auslastung bei "m4a" Dateien (mittels BASS_AAC) Plugin auf ungefähr 50% steigt (und solange der Song geladen ist auch so bleibt). Das Spectrum wird aber problemlos angezeigt..

Sobald man wieder ein mp3/wav File ladet ist wieder alles normal.

hmm..

omata 8. Sep 2009 23:37

Re: [Bass.dll] Scrolling Spectrum
 
Liste der Anhänge anzeigen (Anzahl: 1)
Probleme sind korrigiert


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 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