Schlagzeug Bass Drum mit LED-Streifen visualisieren

+A -A
Autor
Beitrag
peda_97
Neuling
#1 erstellt: 25. Mrz 2017, 17:30
Hallo Leute,

Ich bräuchte eure Hilfe.
Ich spiele Schlagzeug und möchte meine Bass-Drum mit LED-Streifen visualisieren.
Dazu verwende ich einen Arduino Uno mit einem Mikrofon-Modul. Bei jedem Schlag soll die Farbe von Rot auf Blau wechseln. Das funktioniert so weit ganz gut. Jedoch habe ich das Problem das mein Mikro so sensibel ist, dass es auf alle anderen Trommeln auch reagiert. Wenn ich die Sensibilität zurück drehe reagiert es nicht mehr auf die Bass Drum.
zur Info eine Bass Drum hat eine Frequenz von ca 60 Hz, alle anderen Trommeln haben deutlich höhere Frequenzen.
Meine Überlegung wäre ein analoger Tiefpass oder ähnliches.

Vielleicht hat jemand eine Lösung parat Danke im Voraus
Reference_100_Mk_II
Inventar
#2 erstellt: 25. Mrz 2017, 20:29
Ein piezoelektrischer Sensor wäre vielleicht ne Überlegung wert.
Da würde ich mich mal ein bisschen schlau lesen.

Generell bist du im HiFi-Forum aber nicht wirklich an der richtigen Anlaufstelle
Eher Mikrokontroller.net oder so
jonath
Inventar
#3 erstellt: 27. Mrz 2017, 10:47
Mit welcher Frequenz sampelst du denn mit dem Arduino?

Da dürfte eh ein Tiefpass am Eingang fehlen, einen weiteren Tiefpass kann man dann auch problemlos in Software realisieren, wobei der ATmega da doch recht schwach auf der Brust sein dürfte. Auf der anderen Seite kann man mit =< 8 Bit Wortbreite rechnen...
DommeP
Stammgast
#4 erstellt: 27. Mrz 2017, 11:29
Moin moin,

was für ein Microfonmodul verwendest du denn, eins mit digitalem, analogem oder seriellem Ausgang?
Bie den digitalen "Klopfsensoren" die bei Geräuscherkennung ein hi oder low liefern müsstest du auf der SMD-Platine den Tiefpass nachrüsten.
Bei den anderen Möglichkeiten ist die Digitale Filterung evtl zu aufwändig, dann wäre ggf auch Löten angesagt.

Der (mechanische) piezo Sensor wäre vermutlich noch einfacher als die Lösung mit akustischem Sensor.

Alternative: Microschalter am Pedal

Gruß,
Domme
Schleusser
Hat sich gelöscht
#5 erstellt: 27. Mrz 2017, 17:33

jonath (Beitrag #3) schrieb:
Mit welcher Frequenz sampelst du denn mit dem Arduino?

Da dürfte eh ein Tiefpass am Eingang fehlen, einen weiteren Tiefpass kann man dann auch problemlos in Software realisieren, wobei der ATmega da doch recht schwach auf der Brust sein dürfte. Auf der anderen Seite kann man mit =< 8 Bit Wortbreite rechnen...


Hmm, naja, der Uno läuft imo mit 8 MHz und hier ist eine Erkennung eines 60 Hz Signals erforderlich, womit eine Samplingfrequenz von 500 Hz locker langt. Das sollte der Uno problemlos hinbekommen.

Und das ist auch der Tip für den TE: Samplingfrequenz massiv senken, das sollte schon den gewünschten Effekt bringen. Am Einfachsten zu machen wäre das mit einem Delay nach jedem Sample. Die Function delay() nimmt praktischerweise ms als Einheit entgegen. Mit einem Analogpoti an einem anderen Analogeingang könnte man das auch regelbar gestalten. Ansonsten braucht ein 60Hz Sinus ca. 16ms, das Delay muss also drunter bleiben. Du könntest ja mal den Sourcecode hier posten...

Du willst ja keine Audio-Verarbeitung sondern nur deine Messungen anpassen, da müsste das eigentlich reichen.


Gruß

Schleusser

PS: Alles nur Theorie, keine Ahnung ob das funktioniert (Hier angenommen: D/A wird via Analogeingang und Simpelsampling gemacht, 8Bit ist da eh gesetzt). Aber testen kostet nix und ist im Sourcecode mit einer Zeile erledigt.
jonath
Inventar
#6 erstellt: 27. Mrz 2017, 19:04

Schleusser (Beitrag #5) schrieb:

Hmm, naja, der Uno läuft imo mit 8 MHz und hier ist eine Erkennung eines 60 Hz Signals erforderlich, womit eine Samplingfrequenz von 500 Hz locker langt. Das sollte der Uno problemlos hinbekommen.

Und das ist auch der Tip für den TE: Samplingfrequenz massiv senken, das sollte schon den gewünschten Effekt bringen. Am Einfachsten zu machen wäre das mit einem Delay nach jedem Sample. Die Function delay() nimmt praktischerweise ms als Einheit entgegen. Mit einem Analogpoti an einem anderen Analogeingang könnte man das auch regelbar gestalten. Ansonsten braucht ein 60Hz Sinus ca. 16ms, das Delay muss also drunter bleiben. Du könntest ja mal den Sourcecode hier posten...


Gerade deswegen braucht man einen analogenTiefpass - das Abtasttheorem besagt, dass keine Frequenz, die größer als die Halbe Abtastfrequenz ist im Signal vorkommen darf. Wäre bei dir aber nach wie vor der Fall...

Betreibst du das ohne analogen Tiefpasst vor dem ADC bekommst du Aliasing und damit wird eine Erkennung unmöglich.
Schleusser
Hat sich gelöscht
#7 erstellt: 28. Mrz 2017, 13:02

jonath (Beitrag #6) schrieb:
Gerade deswegen braucht man einen analogenTiefpass - das Abtasttheorem besagt, dass keine Frequenz, die größer als die Halbe Abtastfrequenz ist im Signal vorkommen darf. Wäre bei dir aber nach wie vor der Fall...

Betreibst du das ohne analogen Tiefpasst vor dem ADC bekommst du Aliasing und damit wird eine Erkennung unmöglich.


Da meldet sich ja doch jemand, der sich offensichtlich auskennt. Stellt sich also die Frage, wie man den Analogeingang einfach und kostengünstig mit einem Tiefpassfilter beschalten kann. Denn mit dem Eingangswiderstand des Arduinos lässt sich da nichts regeln... Also müsste ein OP her, der wiederum nur schwer mit den zur Verfügung stehenden 5V betrieben werden kann. Hier bin ich raus...

Als Alternative, die nur mit dem vorhandenen Arduino möglich wäre bietet sich FFT oder in diesem Falle FHT an: OpenMusiclabs ArduinoFHT. Damit könnte man einfach die entsprechenden Frequenzen abfragen. Ist auch ein Programmierbeispiel dabei.

Hmmmmm, sollte mich da auch mal mit beschäftigen, sieht sehr interessant aus.

Gruß

Schleusser
Steffen_Bühler
Inventar
#8 erstellt: 29. Mrz 2017, 09:34
Auch eine FFT wird ohne Anti-Aliasing bei 500Hz Abtastfrequenz keine Chance haben, zu unterscheiden, ob das Eingangssignal z.B. 440Hz (Kammerton)oder 60Hz (Bassdrum) ist! Du musst also alles ab 250 Hz wegfiltern, um solche Verwechslungen auszuschließen.

Im allereinfachsten Fall reicht ein passives RC-Glied, zum Beispiel R=100kOhm, C=6nF. Den Kondensator parallel zum Eingang, das Signal über den Widerstand rein.

Viele Grüße
Steffen
tobotron
Stammgast
#9 erstellt: 29. Mrz 2017, 11:58
Kannst du nicht an den Arduino irgendwie nen Drum-Trigger bekommen? Irgend ein Signal, was man verarbeiten kann, müsste sowas ja auch von sich geben …
Schleusser
Hat sich gelöscht
#10 erstellt: 29. Mrz 2017, 14:19

Steffen_Bühler (Beitrag #8) schrieb:
Auch eine FFT wird ohne Anti-Aliasing bei 500Hz Abtastfrequenz keine Chance haben, zu unterscheiden, ob das Eingangssignal z.B. 440Hz (Kammerton)oder 60Hz (Bassdrum) ist! Du musst also alles ab 250 Hz wegfiltern, um solche Verwechslungen auszuschließen.

Hmm, wie läuft das denn bei FFT-basierten Analyzern, die per Software einstellbar sind? Nicht falsch verstehen, ich kenn mich da nicht aus aber wenn das so wie oben beschrieben wäre würde ja kein Analyzer funktionieren. Ist das dann widerum in Software umgesetzt? Denn so ein Gerät wie dieses FFT-Analyzer könnte ja nicht von DC bis 100Khz arbeiten, wenn vorher analog gefiltert wird. Bin ein wenig verwirrt, da die FFT-Implementierung der bass.dll dieses Verhalten auch nicht zeigt. Zumindest wäre mir das noch nicht aufgefallen. Es sollte also irgendeine Art von Antialiasing geben....
Btw: Die oben verlinkte Library hat eine Fenster-Funktion, vielleicht hilft das ja...


Steffen_Bühler (Beitrag #8) schrieb:
Im allereinfachsten Fall reicht ein passives RC-Glied, zum Beispiel R=100kOhm, C=6nF. Den Kondensator parallel zum Eingang, das Signal über den Widerstand rein.

Wenn das funktioniert ist das ja eine einfach und kostengünstige Lösung. Alles, was ich über die Analogeingänge des Arduino lesen konnte war wenig ermutigend, da der Eingangswiderstand aufgrund des eingebauten Eingangs-C eh schon abhängig von der Eingangsfrequenz ist (wenn ich das richtig verstanden habe) und ohne Signal gegen unendlich (> 100M) geht. Aber hier gehts ja nicht um ein Highend-Messgerät sondern eine LED-Anzeige für einen bestimmten Frequenzbereich (< 60Hz)...

Ich stelle die zitierte Aussage nicht in Zweifel, denn was ich gesehen habe stimmt damit überein. Nur will mir nicht in den Kopf, wie man dann eíne Spektralanalyse machen will. Mit meinen bescheidenen Mitteln macht die ganze FFT ja keinen Sinn, wenn die Nyquist-Frequenz überschritten wird. Oder anders: Wenn bei Musik eine Frauenstimme mit 1000Hz über einen Bass mit 100Hz läuft müsste ja jeder Analyzer versagen. Tun sie aber nicht. Wieso? Lebt man dann mit den auftretenden Fehlern? Ich bin zu doof dafür...

Gruß

Schleusser
Steffen_Bühler
Inventar
#11 erstellt: 29. Mrz 2017, 17:10
Ein "normaler" FFT-Analyzer tastet mit 50kHz oder sogar mehr ab. Da sorgt das System schon dafür, dass nicht mehr als 25kHz reinkommt.

Nur wurde eben vorher zu einem selbstgeschriebenen Abtaster geraten. Ein Timer ist ja schnell programmiert, und wenn der mit 500Hz läuft, also alle 2ms einen Wert holt, überfordert das weder Programmierer noch Arduino. Aber in diesem Fall muss man halt den Anti-Aliasing-Filter spendieren.

Viele Grüße
Steffen
Mr._Kanister_:)
Stammgast
#12 erstellt: 29. Mrz 2017, 23:26
ähm...

versteh ich jetzt richtig, das ihr das aufgenommene Tonsignal der bass drum aus dem micro nutzen wollt um das licht umzuschalten?

Dommes idee mit dem Kontakt am pedal ist doch schon gar nicht schlecht...vielleicht zu ungenau und instabil...

wie wäre es mit einen "Druckdifferenzmotor"...also ein umgekehrter lautsprecher der ein wenig energie als signal erzeut...


oder völliger blödsinn?
tobotron
Stammgast
#13 erstellt: 30. Mrz 2017, 10:31

Mr._Kanister_:) (Beitrag #12) schrieb:

oder völliger blödsinn?


Na ja, von meiner Idee mit einem Drum Trigger, einem Gerät, was für genau solche Scherze gedacht ist, wollte ja auch keiner was wissen.

Wieso einfach, wenns auch kompliziert geht?
Schleusser
Hat sich gelöscht
#14 erstellt: 30. Mrz 2017, 12:51

Steffen_Bühler (Beitrag #11) schrieb:
Ein "normaler" FFT-Analyzer tastet mit 50kHz oder sogar mehr ab. Da sorgt das System schon dafür, dass nicht mehr als 25kHz reinkommt.

Nur wurde eben vorher zu einem selbstgeschriebenen Abtaster geraten. Ein Timer ist ja schnell programmiert, und wenn der mit 500Hz läuft, also alle 2ms einen Wert holt, überfordert das weder Programmierer noch Arduino. Aber in diesem Fall muss man halt den Anti-Aliasing-Filter spendieren.


Möp, natürlich. So ist das manchmal, man sieht den Wald nicht...

Bei der Verwendung des FFT/FHT ist die Senkung der Sampling Rate ja nicht nötig (diese bezog sich nur auf die Pegelerfassung), da man sich ja gezielt die gewünschte/n Frequenz/en aus dem FFT ziehen kann.


tobotron (Beitrag #13) schrieb:
Na ja, von meiner Idee mit einem Drum Trigger, einem Gerät, was für genau solche Scherze gedacht ist, wollte ja auch keiner was wissen.

Wieso einfach, wenns auch kompliziert geht? ;)


Naja, zum Einen ist das ja wohl lang nicht sophisticated genug (ein simpler Schalter, also bitte ). Zum anderen (und jetzt mal im Ernst) ist für den Ansatz FFT keinerlei weitere Hardware nötig, ein Austesten also kostenlos machbar. Und wenn es funktioniert ist es auch haltbarer, kein Schalter der kaputt geht und Ähnliches...

Gruß

Schleusser
Steffen_Bühler
Inventar
#15 erstellt: 30. Mrz 2017, 13:25

Schleusser (Beitrag #14) schrieb:
Bei der Verwendung des FFT/FHT ist die Senkung der Sampling Rate ja nicht nötig (diese bezog sich nur auf die Pegelerfassung), da man sich ja gezielt die gewünschte/n Frequenz/en aus dem FFT ziehen kann.


Genau. Allerdings hat man dann eventuell nur eine 100-Hz-Auflösung (genauer: Samplefrequenz durch Anzahl Abtastungen). Will man die 60 Hz besser von anderen Sachen trennen, ist es geschickter, tatsächlich langsamer abzutasten. Wenn das mit der Hardware nicht geht, dann läuft ein Digitalfilter übers Zeitsignal und anschließend wird z.B. jeder zehnte Wert davon genommen.
Suche:
Das könnte Dich auch interessieren:
"BASS LED"?
r4pt0r am 22.11.2004  –  Letzte Antwort am 24.11.2004  –  2 Beiträge
1 LED Streifen, 2 Controller
HolgerCW am 06.02.2017  –  Letzte Antwort am 07.02.2017  –  3 Beiträge
elektronisches schlagzeug
athlontakter am 25.05.2005  –  Letzte Antwort am 30.05.2005  –  85 Beiträge
12v led mit mikrofon
komysh am 11.01.2012  –  Letzte Antwort am 13.01.2012  –  4 Beiträge
Lichtblize mit Bass
Chrisi100 am 27.11.2011  –  Letzte Antwort am 04.12.2011  –  13 Beiträge
Steuergerät zum getrennten ansteuern von Glühbirne und LED Streifen
Markus2700 am 27.10.2015  –  Letzte Antwort am 30.10.2015  –  11 Beiträge
LED´s die beim Bass leuchten
furlinger am 06.12.2008  –  Letzte Antwort am 27.02.2009  –  7 Beiträge
LED-Stripes mit Musiksteuerung
Schreiner12 am 10.02.2016  –  Letzte Antwort am 04.05.2017  –  15 Beiträge
Cooler LED Effekt
marrybarry am 08.07.2009  –  Letzte Antwort am 11.07.2009  –  11 Beiträge
LED's mit Bass blinken lassen
Kann_jemand_helfen_? am 23.02.2005  –  Letzte Antwort am 28.09.2009  –  189 Beiträge
Foren Archiv
2017

Anzeige

Produkte in diesem Thread Widget schließen

Aktuelle Aktion

Partner Widget schließen

  • beyerdynamic Logo
  • DALI Logo
  • SAMSUNG Logo
  • TCL Logo

Forumsstatistik Widget schließen

  • Registrierte Mitglieder925.669 ( Heute: 5 )
  • Neuestes MitgliedKisa012005
  • Gesamtzahl an Themen1.550.843
  • Gesamtzahl an Beiträgen21.532.907

Hersteller in diesem Thread Widget schließen