Beat (?)-Erkennung ?

  • Thread starter Martin Meier (MMC)
  • Start date
M

Martin Meier (MMC)

Guest
Hallo zusammen !

Wie schon geschrieben, möchte ich mir ein Moodlight (http://www.booster.de/moodlight/info.htm) 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
 
"Martin Meier (MMC)" wrote:

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 ?
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
 
Am Tue, 01 Jun 2004 15:41:54 +0200 hat Lars Mueller <lm@despammed.com>
geschrieben:

"Martin Meier (MMC)" wrote:

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 ?
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).

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.

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

--
Martin
 
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.
Geh spielen :-(

MM
 
On Tue, 01 Jun 2004 10:40:38 +0200, Martin Meier (MMC) wrote:

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 ?
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/
 
Lars Mueller wrote:

Sagt der richtige! :)
Nein der falsche.

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

Demgegenüber 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öst, sobald die
Spannung an AIN0 größer als die an AIN1 ist.

Wolfgang
 
Martin Meier (MMC) wrote:
Hallo zusammen !

Wie schon geschrieben, möchte ich mir ein Moodlight
(http://www.booster.de/moodlight/info.htm) 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 ?
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
 
Robert Rudolf schrieb:

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.
http://www.elv-downloads.de/service/manuals/BC200/BC200_KM_G_011108.pdf


Gruß Dieter
 
Dieter Wiedmann wrote:
Robert Rudolf schrieb:

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.

http://www.elv-downloads.de/service/manuals/BC200/BC200_KM_G_011108.pdf
...aaah, genau der! ('tschuldige bitte meine Faulheit!)

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

Abend,

-Robert
 
Wolfgang Draxinger wrote:

Signalanalyse in Echtzeit mit einem Wald und Wiesen uC soll mir
erst mal jemand zeigen. Ich würde gerne wissen, wie man eine
ordentliche FFT mit gerade mal 1kiB Speicher machen will.
Und wozu braucht man das, um einen simplen Baßtakt zu erkennen?

Lars
 
Lars Mueller wrote:

Und wozu braucht man das, um einen simplen Baßtakt zu erkennen?
Wie soll das sonst gehen? Ein Basstakt ist nicht einfach ein
Ansteigen der Hüllkurvenamplitude. Und selbst wenn man bloß
diese auswerten würde, müsste 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ünftig machen.

Wolfgang
 
Wolfgang Draxinger wrote:
Lars Mueller wrote:

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

Wie soll das sonst gehen? Ein Basstakt ist nicht einfach ein
Ansteigen der Hüllkurvenamplitude. Und selbst wenn man bloß
diese auswerten würde, müsste man das Signal mit einer
hinreichenden Rate ( > 1kHz ) A/D sampeln. Das bedeutet, dass
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.

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ünftig machen.
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
 
Am 01.06.04 10:40 schrieb Martin Meier (MMC):

Hallo zusammen !

Wie schon geschrieben, möchte ich mir ein Moodlight
(http://www.booster.de/moodlight/info.htm) 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 ?
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
 
Lars Mueller wrote:

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.
Vorschlag meinerseits: Stöpsel 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ß wie die höchste
auftretende Frequenz sein, sonst Funktioniert es nicht.

Aber mit einem einfachen Tiefpassfilter ist es hier nicht getan,
da der alles, was drüber liegt knallhart abschneiden
wird/sollte. Für 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üllkurve des Signals
herauszufiltern. Ungefähr das gleiche wie die Detektorschaltung
bei einem AM Empfänger nur, dass der Träger ein Frequenzgemisch
ist.

Wolfgang
 
Wolfgang Draxinger schrieb:

Aber mit einem einfachen Tiefpassfilter ist es hier nicht getan,
da der alles, was drüber liegt knallhart abschneiden
wird/sollte. Für 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
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"
 
Hi,

Signalanalyse in Echtzeit mit einem Wald und Wiesen uC soll mir
erst mal jemand zeigen. Ich würde gerne wissen, wie man eine
ordentliche FFT mit gerade mal 1kiB Speicher machen will.
Eigentlich braucht man dafür entweder einen schnellen Prozessor
(mehr als 300MHz sollten es schon sein) oder einen DSP. Das ist
wohl beides für ein MoodLight übertrieben.
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
 
Wolfgang Draxinger wrote:

Vorschlag meinerseits: Stöpsel 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ß wie die höchste
auftretende Frequenz sein, sonst Funktioniert es nicht.
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
 

Welcome to EDABoard.com

Sponsor

Back
Top