Jump to content
yuna

Decibel-LED mit SoundIntensity vs SoundPressure

Recommended Posts

Hallo,

 

vorweg - ich habe nur wenig Ahnung von Tontechnik.

ich habe SoundIntensity und SoundPressure Bricklets im Einsatz, um LEDs nach Dezibel aufleuchten zu lassen.

 

* Beim SoundIntensity Bricklet schaut es genial aus. LED flackert sehr fein. Die Dezibel Anzeige tanzt auch schön auf und ab

* Beim SoundPressure Bricklet schaut es nicht so schön aus. Die Dezibel bleiben auf einem Level und die LEDs flackern/tanzen nicht so schön.

 

Kann jemand helfen wie ich die LEDs auch beim SoundPressure tanzen lassen kann? Ich weis das ich spectrumChunkData, spectrumChunkOffset und spectrumLength bekomme. weis aber nicht wie ich das verwerten kann - habe nichts in Wikipedia darüber gefunden :(...

Share this post


Link to post
Share on other sites

Hast du beim Sound Pressure Level Bricklet mal die verschiedenen Gewichtungen durchprobiert?

 

Du solltest getSpectrum() Aufrufen, nicht getSpectrumLowLevel(). Das Spektrum ist zu groß um ein einem Packet übertragen zu werden. Die getSpectrumLowLevel() gibt das Spektrum in Stücken (Chunks) aus. Die getSpectrum() nutzt intern die getSpectrumLowLevel() Funktion und setzt das vollständige Spektrum aus Chunks zusammen.

 

Wie die Dokumentation für die getSpectrum() Funktion beschreibt gibt dieses das Frequenzspektrum in form eines FFT aus. Daraus kannst du dir verschiedenste Darstellung ableiten.

Share this post


Link to post
Share on other sites

Hi Photron,

 

ich habe nun viel versucht zu lesen und zu verstehen. Ich verstehe dennoch nicht wie ich die LEDs wieder flackern lassen kann wie beim Sound Intensity Bricklet. Sobald ich die Werte von getSpectrum() in dB umrechne flackern die LEDs nicht mehr. Klar kann ich einfach ohne dB Umrechnung die LEDs super flackern lassen, aber dann verstehe ich diese random FFT zahlen nicht.

 

Für das BrickletSoundPressureLevel:

Welche config (fftSize : weighting) benötige ich?

Welchen Wert von BrickletSoundPressureLevel.getSpectrum() benötige ich, um den Wert von BrickletSoundIntensity.getIntensity() nachzustellen?

Share this post


Link to post
Share on other sites

Das Sound Intensity Bricklet und das Sound Pressure Level Bricklet sind da nicht so einfach zu vergleichen. Das alte Bricklet hat die Bestimmung der Intensity analog in Hardware gemacht. Das neue Bricklet macht die SPL Bestimmung digital in Software.

 

Mit den verschiedenen Weighting wird versucht das menschliche Hörvermögen nachzubilden. Außer db(Z), dabei wird keine Gewichtung vorgenommen und die Daten vom Mikrofon unverändert verwendet.

 

Ich habe gerade kein Sound Pressure Level Bricklet zur Hand, da die gerade ausverkauft sind. Daher mal ins Blaue: db(A) mit 256er FFT und dann über die Spektrumwerte einen Mittelwert bilden, dabei den ersten Wert im Spektrum ignorieren, da dies das DC Offset ist.

 

Alternativ, schau dir das Spektrum in Brick Viewer an und nimmt dann den Teil des Spektrums der sich am meisten bewegt. Den fasst du dann über Maximum oder Mittelwert zusammen.

 

Ich denke du musst da einfach mal verschiedenes ausprobieren.

Share this post


Link to post
Share on other sites

Hi, ich habe nun verschiedene Varianten probiert. Leider klappt es nicht wirklich. Es geht nur wenn absolut stille in der Umgebung herrscht. Für mich hat es den Anschein, als würde das Sound Pressure nicht ganz mitbekommen welcher Ton wie weit weg ist. Ich kann die LEDs nach Musik tanzen lassen, jedoch wenn draußen auf der Straße Leute sprechen oder eine Auto vorbei kommt, dann bekommt es das SoundPressure Bricklet mit und überlagert die sehr viel Lautere Musik. Auch bei geschlossenen Fenster. Vor allem Menschliche Sprache überlagert alles. Ich habe drei verschiedene Boxen ausprobiert. leider immer das selbe Ergebnis. Egal welche Frequenz, die nicht Lautsprechertöne überragen alles.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...