Beat (?)-Erkennung ?

Hallo zusammen !

Wie schon geschrieben, möchte ich mir ein Moodlight

formatting link
nachbauen.

Das Original spielt bestimmte Lichtfolgen im Takt der Musik ab... hat jemand von Euch eine spontane Idee, wie man die Musik in den Microcontroller bekommt - reicht da ein einfacher Tiefpass ?

Danke schonmal für Eure Antworten und viele Grüsse, Martin

Reply to
Martin Meier (MMC)
Loading thread data ...

von Euch eine spontane Idee, wie man die Musik in den

Wenn du nicht fähig bist, Musik "in" einen Microcontroller zu bekommen (oder den Newsreader zu konfigurieren), dann wirst du vermutlich mit dem Microcontroller selbst und der Musik darin auch herzlich wenig anfangen können. Also wäre es vielleicht besser, sich diese Idee aus dem Kopf zu schlagen.

Gruß Lars

Reply to
Lars Mueller

Am Tue, 01 Jun 2004 15:41:54 +0200 hat Lars Mueller geschrieben:

Ich würde an einen Spitzenwertgleichrichter mit passenden Zeitkonstanten (eher schnellerer Anstieg, langsamerer Abfall) denken und dann eher einen noch einen Hochpaß oder Komparator mit schwimmender Schwelle als Flankendetektor nachschalten. Vor dem Glr. ein Tiefpaß, aber ich weis auch nicht, welcher Spektralbereich hier wirklich maßgeblich ist. Es gibt ein paar DJ-Computerprogramme, die Waveform Darstellung und Beaterkennung haben (zB Traktor DJ Studio, ich glaub da gibt es eine zeitlimitierte Demnoversion), man köännte sich da die Wellenform beim Beat ansehen und daraus die Zeitkonstanten abschätzen. Vielleicht gibt es auch freie Softwarealgorithmen, deren Kern man als Analogschaltung realisieren kann (oder im µC implementieren).

...Eine der üblichen, hilfreichen Lars Müller Meldungen.

--
Martin
Reply to
Martin Lenz

Geh spielen :-(

MM

Reply to
Martin Meier (MMC)

so ne spontane Idee: ersma Tiefpass is sicher schon mal gut. Danach Gleichrichter und Flankenerkennung, die einen Interrupt auslöst wurde schon gesagt. Dazu nun eine Klemmschaltung. Also ein unbelasteter Kondensator, der sich den höchsten vorgekommenen Pegel "merkt". Der Interrupt löst einen Zeitgeber aus und eine "vernünftige" Zeit (evtl adaptiv) später holt sich der Controler den höchsten erkannten Wert über einen A/D-Eingang und resetet die Klemmschaltung mit einem Schalt-FET gegen Masse. So kriegst Du mit wenig CPU-Last die Zeitpunkte der Beats und ihre Stärke. Damit lassen sich auch kompliziertere Beats als gleichmässiges Bummbumm auswerten.

--
Emil "nobs" Obermayr
http://tigress.com/nobs/
Reply to
Emil Obermayr

Nein der falsche.

Signalanalyse in Echtzeit mit einem Wald und Wiesen uC soll mir erst mal jemand zeigen. Ich w=FCrde gerne wissen, wie man eine ordentliche FFT mit gerade mal 1kiB Speicher machen will. Eigentlich braucht man daf=FCr entweder einen schnellen Prozessor (mehr als 300MHz sollten es schon sein) oder einen DSP. Das ist wohl beides f=FCr ein MoodLight =FCbertrieben.

Demgegen=FCber ist die Idee mit der Klemmschaltung wirklich nicht schlecht. Vor allem weil man z.B. am AVR den sog. Analog Comparator Eingang hat, der einen Interrupt ausl=F6st, sobald die Spannung an AIN0 gr=F6=DFer als die an AIN1 ist.

Wolfgang

Reply to
Wolfgang Draxinger

In einem alten ELV-Journal war auch mal ein "Beatcounter" veröffentlicht - müsste es auch als Fertiggerät (mit Plänen) bei denen geben. Falls Interesse besteht, such ich den Artikel mal.

Schönen Abend,

-Robert

Reply to
Robert Rudolf

Robert Rudolf schrieb:

formatting link

Gruß Dieter

Reply to
Dieter Wiedmann

..aaah, genau der! ('tschuldige bitte meine Faulheit!)

Ist ja alles sogar sehr schön beschriftet im Schaltplan!

Abend,

-Robert

Reply to
Robert Rudolf

Und wozu braucht man das, um einen simplen Baßtakt zu erkennen?

Lars

Reply to
Lars Mueller

Wie soll das sonst gehen? Ein Basstakt ist nicht einfach ein Ansteigen der H=FCllkurvenamplitude. Und selbst wenn man blo=DF diese auswerten w=FCrde, m=FCsste man das Signal mit einer hinreichenden Rate ( > 1kHz ) A/D sampeln. Das bedeutet, dass innerhalb einer Sekunde das ganze RAM in einem mittleren uC voll ist. Dann muss man den Inhalt aber auch noch durch Algorithmen schicken, die aber auch noch Speicher brauchen.

Eigentlich kann man sowas nur mit einem DSP vern=FCnftig machen.

Wolfgang

Reply to
Wolfgang Draxinger

Wozu mußt du überhaupt etwas sampeln und dazu noch mit 4 KHz, das sich nur im Bereich von ca. 2 Hz abspielt? Alles was der OP, wie ich ihn verstehe, wissen will, sind die zeitliche Abstände von Pegelschwankungen. Dazu wird einem sicher eine Menge einfallen.

Oder mit primitivster analoger Singalbearbeitung. Ein wenig filtern, gleichrichten, vielleicht noch einmal filtern, formen. Ich habe aber eigentlich nur wenig, mich damit umfassend zu beschäftigen, zumal ich nicht glaube, daß das Projekt eine Chance hat, sorry. Die Fragestellung klingt einfach viel zu sehr nach fixer Idee. Wenn wirklich etwas vielversprechendes vom OP kommt, kann man ja weiter sehen.

Gruß Lars

Reply to
Lars Mueller

Am 01.06.04 10:40 schrieb Martin Meier (MMC):

Ich hab das Gefühl du gehst das ganze viel zu kompliziert an. Hier nun mein Vorschlag: Vergiss den Mikrocontroller, vergiss die CCFL-Röhren! Kauf dir von dem gesparten Geld lieber noch ein paar Brüllwürfel dazu. Als Beleuchtung reichen ein paar billige Baumarkt-Glühbirnen hinter buntem Acrylglas. So, jetzt schließe das ganze Geraffel mit samt den Verstärkern an eine Netzphase an, leg irgend eine Wump-Wump-Wump-CD ein und dreh mal so richtig[tm] auf! Die Glühbirnen werden bei den Beats gegen den Stromhunger der gierigen Subwoofer keine Chance haben und klaglos nachgeben, du hast also genau das, was du willst! - leider invertiert, aber dafür wirds dir dann wenigstens nicht zu dunkel.

scnr Gruß Michael

Reply to
Michael Kamper

Vorschlag meinerseits: St=F6psel mal ein Audiosignal in ein DSO und stelle eine Samplingfrequenz von 20Hz ein. Dann will ich mal sehen, ob das hinhaut, Stichwort: Aliasing.

Ein Sample ist immer relativ kurz. Das Audiosignal besteht aus einem Frequenzgemisch. D.h. dass man durch eine niederfrequente Abtastung nicht automatisch nur die tiefen Frequenzen erfasst. Oder anders gesagt: Wenn man ein Signal sampelt, muss die Samplingfrequenz mindestens doppelt so gro=DF wie die h=F6chste auftretende Frequenz sein, sonst Funktioniert es nicht.

Aber mit einem einfachen Tiefpassfilter ist es hier nicht getan, da der alles, was dr=FCber liegt knallhart abschneiden wird/sollte. F=FCr eine Pegelerkennung taugt das nicht. In deinem Posting bist Du ja schon auf den Trichter gekommen, dass eine entsprechende Filterschaltung notwendig ist. Nur ist das eben genau das, was bereits vorgeschlagen wurde: Eine Klemmschaltung. Die macht eigentlich nix anders, als die H=FCllkurve des Signals herauszufiltern. Ungef=E4hr das gleiche wie die Detektorschaltung bei einem AM Empf=E4nger nur, dass der Tr=E4ger ein Frequenzgemisch ist.

Wolfgang

Reply to
Wolfgang Draxinger

Wolfgang Draxinger schrieb:

Es gibt/gab massig solcher Gerätchen in billigster Analogschaltungstechnik.

Es geht hier nicht um einen Spektrum Analysator, sondern um einen Bumm-Bumm Detektor. Solche Dinger hat man schon gebaut, als es noch keine DSPs gab.

Da Du soviel Ahnung von Spektren zu haben scheinst: Schau Dir mal die Energieverteilung in solchen Signalformen an. Ein Tiefpassfilter reicht völlig.

- Carsten

--
Audio Visual Systems                          fon: +49 (0)2234 601886
Carsten Kurz                                  fax: +49 (0)2234 601887
Von-Werth-Straße 111                   email: audiovisual@t-online.de
50259 Pulheim / Germany               WGS84:N50°57'50.2" E06°47'28.5"
Reply to
Carsten Kurz

Hi,

Warum nicht, es sagt ja keiner das er die FFT über den gesamten Audiobereich machen soll. Vieleicht erst ein Tiefpass der nur Frequenzen unter 200 Hz durchläßt, das ganze dann mit einer Diode gleichrichten und mit einem Kondensator etwas glätten. Das sampelt man dann mit irgendwas 50-100 Samples ein und macht eine kleine FFT darauf die geziehlt nur den Bereich 50-180BPM (0,5-3 Hz) untersucht.

Sinnvollerweise fängt man mit der FFT Berechnung nicht mit der tiefsten Frequenz an, sondern bei der letzten bekannten Bass-Frequenz und schaut sich die Nachbarn an, sind die kleiner ist man bereits fertig, sonst muss man es halt komplett berechnen.

Da kann man dann außen schön eine LED drann machen die anzeigt ob der Takt gelockt ist. Andernfalls einfach Zufalls- muster anzeigen.

Das wäre sowiso der einfachste Weg, kürzlich hatte ich ein paar Lampen mit ein paar aufaddierten Sinuskurven angesteuert und alle waren der Meinung das würde ja so toll zu Musik passen....

BlueLoop

Reply to
Alex Wenger

Du hast meinen Vorschlag nicht ganz verstanden und ich habe keine Lust, bis ins Detail zu erklären, warum da mit ein klein wenig analoger Verarbeitung des gleichgerichteten Signals (Hüllkurve) bereits der Beat fertig vorliegt und man nur noch die Zeit zwischen zwei oder mehr Impulsen messen müßte. Das sollte selbst mit dem einfachsten Prozessor und geringen Programmierkenntnissen möglich sein.

Gruß Lars

Reply to
Lars Mueller

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.