Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Sound vis (https://www.delphipraxis.net/84763-sound-vis.html)

ebber 21. Jan 2007 12:54


Sound vis
 
Hallo

Ich habe 2 fragen zum Sound. Ich habe 4 Lampen, sie sollen ähnlich wie eine Lichtorgel funktionieren. Also auf den Sound reagieren und dann immer die nächste Lampe einschalten.

1. Frage : Wie könnte man das technisch machen. Irgenwie die kleinen Frequezen beobachten und dann eben wenn s lauter wird oder so dann die nächste Lampe einschalten ?

2.Frage : Wie kann man das in Delphi umsetzen. (Am liebsten wärs mir mit der bass.dll)

MfG

TonyR 21. Jan 2007 13:46

Re: Sound vis
 
In diesem Thread wird kurz erwähnt, wie man die Lautstärke rausbekommt.
Ich hab mich mit solchen Sound-Librarys zwar noch nicht beschäftigt, aber sollte es nicht einfach sein, die Lampen dann je nach Lautstärke (vorher Schwellenwerte festlegen) aufleuchten zu lassen? Oder verstehe ich dein Problem falsch?

ebber 21. Jan 2007 14:48

Re: Sound vis
 
Du hast das Problem schon verstanden, ich weis auch wie man die Lautstärke rausbekommt, blos wie definiert man diesen Schwellenwert. Die Lichter sollen ja mehr so aufleuchten wenn so Spitzen bei der Lautstärke auftreten, ob sie leise oder Laut sind. Der Schwellenwert müsste da dann irgendwie mitwandern. Die Lampen sollen nicht dauerweitergehen wenn die Laustärke über einem bestimmten Pegel ist, sonder dann nur schneller. Oder so Ähnlich.

Ich wollte nur noch sagen, dass ich nicht so besonders programmieren kann. Also bitte ein bisschen ausfürhliche erklären, bitte.

MfG

flossinger 21. Jan 2007 17:33

Re: Sound vis
 
Hallo ebber,

das lässt sich recht einfach lösen:

Du berechnest einen gleitenden Mittelwert der Lautstärke. Im einfachsten fall schaltest du die Lampe ein, wenn die Lautstärke über dem gleitenden Mittelwert ist, und darunter ist sie dunkel. Du kannst aber auch ein Vielfaches als Schaltschwelle nutzen. Vielleicht das 0.8 fache oder das 1.2 fache. In jedem Fall passt sich so der Schwellwert an die Musikpassagen an. Mit ein wenig experimentieren siehst du, was dir am besten zusagt.

grüsse,
der flossinger

ebber 21. Jan 2007 18:38

Re: Sound vis
 
Hört sich gut an, aber wie berechne ich das.
Ich habe den Wert der Laustärke (1-100). Jetzt zum Beispiel in 5 Sekunden den Wert jeder Sekunde + und dann durch 5 ?
Aber das Licht soll ja möglichst ohne verzögerung gehen.

flossinger 22. Jan 2007 04:46

Re: Sound vis
 
Du kannst die Lautstärkewerte in einen Ringpuffer schreiben und immer wieder mitteln.

Eine andere Möglichkeit ist die, die ich vorziehen würde ist die folgende:

Du initialisierst das gleitende Mittel mit 0 und bildest dann fortlaufend ein gewogenes Mittel aus dem alten gM und dem neuen Lautstärkewert.

Beispielsweise:
gm := 0.8 * gm + 0.2 * ls;
oder
gm := 0.99 * gm + 0.01 * ls;

Am einfachsten ermittelt man die Koeffizienten durch Ausprobieren. Also fang mal an.


der flossinger

ebber 22. Jan 2007 14:37

Re: Sound vis
 
Danke.

Es funktioniert eigentlich ganz gut, aber kann ich das auch noch irgenwie anders machen; ohne die Laustärke so einzubeziehen, mehr mit dem Bass, oder sowas ?


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