AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Frage zu Bass.dll und Spectrum
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu Bass.dll und Spectrum

Ein Thema von Blamaster · begonnen am 22. Mai 2010 · letzter Beitrag vom 13. Jun 2010
 
Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#4

Re: Frage zu Bass.dll und Spectrum

  Alt 25. Mai 2010, 21:55
Hi,

ich habe dich geschichte mit dem Scrollen und Zoomen bis jetzt soweit selber hinbekommen.

Hinter eine Sache bin ich bis jetzt allerdings noch nicht gekommen und zwar wodurch sich die maximal mögliche Auflösung in Pixel ergibt.

In der beschreibung des Custloop Beispiels ist ja angegeben, dass die GetLevel function 20ms scannt. Darauf würde sich dann ja ergeben das eine Sekunde Lied auf maximal 50px gezeichnet werden kann, verstehe ich das richtig ?

Wenn ja, dann würde mich allerdings interessieren wie oder besser wodurch sich diese 20ms zum Scannen mit GetLevel ergeben.

In der ScanPeaks function ist das ganze ja in einer while Schleife. Kann man es sich so vorstellen, dass beim scannen der Peaks das Lied praktisch "abgespielt" wird und während dieser Zeit die GetLevel function permanent die Werte abholt und dieser Vorgang dann halt 20ms dauert. (Somit dann alle 20ms ein Scan erfolgt) ?

Wenn ja ist das ganze dann nicht recht ungenau, denn ich möchte bezweifeln, dass die GetLevel Funktion wirklich exakt 20ms braucht.

Mir ist beispielsweise aufgefallen, dass wenn ich die Breite des zu scannenden Bereich extrem hoch setze dieser Codeteil:

Delphi-Quellcode:
  bpp := BASS_ChannelGetLength(chan, BASS_POS_BYTE) div (Buffer.Width + zoom); // stream bytes per pixel
  if (bpp < BASS_ChannelSeconds2Bytes(chan, 0.02)) then // minimum 20ms per pixel (BASS_ChannelGetLevel scans 20ms)
    bpp := BASS_ChannelSeconds2Bytes(chan, 0.02);
zwar aufgeht, sprich bpp ist größer als BASS_ChannelSeconds2Bytes(chan, 0.02) trotzdem scheinbar nicht alle Peaks gescannt werden, sprich bis zum pixel X wird dann das komplette Spectrum korrekt gezeichnet, allerdings nicht über die komplette Breite (Buffer.Width + zoom), ab Pixel X enthält das Array mit den Peaktdaten dann keine Werte mehr.

Kann dabei jemand helfen ?

Mfg Yannic
  Mit Zitat antworten Zitat
 


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 23:03 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