![]() |
[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):
|
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ß |
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 ![]() |
Re: [Bass.dll] Scrolling Spectrum
Hab das probiert, da hat alleine die Demo Applikation (Software Rendering, Hardware funzt nicht) eine CPU Auslastung von ~35%
|
Re: [Bass.dll] Scrolling Spectrum
push
|
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 ? |
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 ( ![]() Wär super wenn sich das wer ansehen könnte, hab die Source drangehängt. Die TVRThread Komponente ist von hier: ![]() thx |
Re: [Bass.dll] Scrolling Spectrum
push
|
Re: [Bass.dll] Scrolling Spectrum
Liste der Anhänge anzeigen (Anzahl: 1)
|
Re: [Bass.dll] Scrolling Spectrum
sehr cool, vielen dank!!
ich werd mir jetzt mal die source durchsehen |
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? |
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. |
Re: [Bass.dll] Scrolling Spectrum
Der Code ist eh in der zip File oben ;)
|
Re: [Bass.dll] Scrolling Spectrum
Liste der Anhänge anzeigen (Anzahl: 1)
Vielleicht so...
|
Re: [Bass.dll] Scrolling Spectrum
perfekt, danke!
|
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 |
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? |
Re: [Bass.dll] Scrolling Spectrum
ok ;)
ich war nur von diesem ![]() |
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 |
Re: [Bass.dll] Scrolling Spectrum
Kann man das in dein Beispiel einbauen? ;)
|
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? |
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 |
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:
|
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!
|
Re: [Bass.dll] Scrolling Spectrum
Schade, das du uns nicht an deiner Erkenntnis teilhaben lässt. (mit Beispielcode)
|
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:
Für die beiden Werte (Resonance, CutOffFreq) muss man halt experimentieren bzw. für seine Anwendung die besten Werte finden
var
LowPassFilter:BASS_BFX_LPF; LowPassFilterHandle:DWORD; BASS_FXGetParameters(LowPassFilterHandle,@lowpassfilter); LowPassFilter.fResonance:=1.2; LowPassFilter.fCutOffFreq:=120; BASS_FXSetParameters(LowPassFilterHandle,@lowpassfilter); |
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:
zu tun. Wenn ich diese Zeile auskommentiere, ist die Auslastung wieder normal.
procedure TfrmMain.RefreshEvent;
begin pbxWave.Refresh; end; |
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..
|
Re: [Bass.dll] Scrolling Spectrum
Liste der Anhänge anzeigen (Anzahl: 1)
...
|
Re: [Bass.dll] Scrolling Spectrum
danke!!
|
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).
|
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. |
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.. |
Re: [Bass.dll] Scrolling Spectrum
Liste der Anhänge anzeigen (Anzahl: 1)
Probleme sind korrigiert
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 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