![]() |
AW: Circular spectrum visualizer
Neue Versionen oben.
64 Bit DCE (Delphi Community Edition) und höher 32 Bit D2010 Hoffe läuft jetzt alles und ist richtig ;) Später addiere ich vielleicht noch eine variable SampleRate Min 512, MAX 8192 Shot! Echoes von Pink Floid gruss |
AW: Circular spectrum visualizer
Klein Korrektur.. danke Michael II für die Berichtigung.
Delphi-Quellcode:
Die variablen
procedure TSpectrum.CheckEffects;
case 1 //... Color := blue or (green shl 8) or (red shl 16); DWORD(Pixel) := Color or (Pixel.rgbReserved shl 24); // SKAERO_SplitColorARGB((Color or (Pixel.rgbReserved shl 24)), _alpha, _red, _green, _blue); // // Pixel.rgbBlue := _blue; // Pixel.rgbGreen := _green; // Pixel.rgbRed := _red; // Pixel.rgbReserved := _alpha; RGBQuad^ := Pixel; inc(RGBQuad); case 2 //... Color := Buf[dx, dy] and $FFFFFF; DWORD(Pixel) := Color or (Pixel.rgbReserved shl 24); // SKAERO_SplitColorARGB((Pixel.rgbReserved shl 24) or Color, _alpha, _red, _green, _blue); // // Pixel.rgbBlue := _blue; // Pixel.rgbGreen := _green; // Pixel.rgbRed := _red; // Pixel.rgbReserved := _alpha; RGBQuad^ := Pixel; inc(RGBQuad);
Delphi-Quellcode:
_alpha, _red, _green, _blue: Byte;
werden dann nicht mehr benötigt. gruss |
AW: Circular spectrum visualizer
Falls jemand gerne diese Knobs möchte sagt bescheid lade dann eine aktualisierte uControls.pas incl. des Knobs hoch.
Dafür sind dann leider ein paar kleine Änderungen nötig damit das 3 Frame der Value entsprechend angepasst wird. Man kann dann wechseln zwischen Knobs mit 2 oder 3 Frames. gruss |
AW: Circular spectrum visualizer
Neue Version..
Es waren leider noch einige Korrekturen von Nöten. (Danke an Michael II) Wir merken uns jetzt den Pointer auf Pixel (0,0)
Delphi-Quellcode:
RGBQuad := BitmapData.Scan0;
von daher können wir uns den Scan0 auf jede Zeile sparen.
Delphi-Quellcode:
RGBQuad := Scanline(BitmapData, Row);
ist also nicht mehr nötig. zudem waren diese Zuweisungen auch unnötig.
Delphi-Quellcode:
wir können die 0 direkt an RGBQuad übergeben.
DWORD(Pixel) := 0;
RGBQuad^ := Pixel;
Delphi-Quellcode:
DWORD(RGBQuad^) := 0;
Die Funktion Scanline wurde entfernt. GDIP_BitmapUnlockBits wurde zu früh aufgerufen das Bitmap war also nach der 1 Zeile (0) schon nicht mehr geschützt. gruss |
AW: Circular spectrum visualizer
Wer den Kreis ausweiten will hier ist die angepasste uControls.pas inklusive neuem Composited.png
je nach Delphi Version muss das FormatSettings.Decimalseparator in DisplayFloatValue angepasst werden. 32 Bit einfach ohne FormatSettings nur einfach Decimalseparator. Im Archiv ist die für 64Bit. Das *.png einfach im Skins Ordner ersetzen. Nicht mehr nötig ist im Archiv enthalten. gruss |
AW: Circular spectrum visualizer
Neue Version..
gruss |
AW: Circular spectrum visualizer
Neue Version.
Zitat:
gruss |
AW: Circular spectrum visualizer
Bitte nicht übel nehmen... Aber wofür isn das gut?
|
AW: Circular spectrum visualizer
Zitat:
Es sei denn du meinst das? Versuche es mal mit DragDrop ;) Mp3 Dateien.. habe es aber extra oben addiert. Wenn es um den Visualizer geht nun ich denke da kann man viel von lernen vor allem Leute die sich mit dem Thema beschäftigen. Keine sorge nehme es nicht übel nicht jeder kann in allem einen Sinn erkennen. Manchmal macht man einfach etwas aus spaß an der Freud. Für mich persönlich ist es die Schmerzgrenze meiner Library zu testen so das ich sie erweitern kann wenn etwas fundamentales fehlt. PS: Kannst du in einer Form ein transparentes Loch erstellen dieses zur Laufzeit in der Transparenz verändern und anschließend in dem Fenster (Aussparung) eine Visualisierung darstellen? Falls nicht wäre das ein Ansatz um vielleicht davon zu lernen ;) Aber das sind alles nur Vermutungen da ich nicht weis was du genau meinst. gruss |
AW: Circular spectrum visualizer
Ich meinte den "Circular spectrum visualizer" als solches, nicht den programmiererischen Background (den ich durchaus zu schätzen weiß). Die Frage kommt daher, dass ich mich z.B. auch bei Winamp schon seit Jahr(zehnt)en frage, wozu die Aussteuerungsanzeige gut ist. Bis in die frühen 80er Jahre ergab das bei Highend-Verstärkern noch Sinn. Aber seit der exzessiven Kompression (Stichwort Loudness War) und Formaten wie MP3 oder AAC ist das eigentlich nur noch sinnfreies Gezappel. Der akustisch wahrgenommene Beat schlägt sich kaum noch in sichtbaren Peaks nieder. Von der Asynchronität infolge träger GDI mal gar nicht zu reden. Im Prinzip könnte man wohl sogar zufallsgeneriertes Gezappel darstellen und keiner würds merken ^^
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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 by Thomas Breitkreuz