Forum: Mikrocontroller und Digitale Elektronik AVR / Notenfrequenz messen


von Wojciech P. (pimpek)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich suche nach einer Möglichkeit die auf einem Klavier gespielten Noten 
auf einem Display anzuzeigen. Ganz wichtig, die Messung soll per billig 
Mikrofon erfolgen.

Es wird nur eine Taste gleichzeitig gedrückt.

Wenn es Paarhundert ms Verzögerung bei der Anzeige gibt, ist es egal.

Das anzeigen der Noten ist kein Thema. Auch die Frequenzentabelle habe 
ich da.

Ich habe auch das "AVR205: Frequency Measurement Made Easy
with Atmel tinyAVR and Atmel megaAVR" durchgelesen.

Ich habe nur keine Idee wie ich die Frequenz vom analogen 
Mikrofon-Eingang in dem AVR auslesen soll.

Würde die Schaltung aus dem Bild dafür reichen ?

Gruss

von Murkser (Gast)


Lesenswert?

Ab 5€ gibt es Klavier- und Gitarrentuner, die genau dies mit einem 
eingebauten Mikrofon tun und die Frequenz/Note auf einem kleinen LCD 
anzeigen. Willst Du dies wirklich selbst bauen?

von Axel R. (Gast)


Lesenswert?

Lass ihn doch :)
Ja - geht damit.

von c-hater (Gast)


Lesenswert?

Wojciech Pietrzak schrieb:

> Würde die Schaltung aus dem Bild dafür reichen ?

Nein, du hättest dort, wo du sie herkopiert hast nachlesen sollen, was 
ihre Aufgabe ist.

Die linke Hälfte allerdings, ja die könnte eventuell einigermaßen 
brauchbar für deinen Zweck sein...

von OAmp (Gast)


Lesenswert?

Eine ähnliche Eingangsstufe hatte mal ein MiniSynth der den
Eingangston verstärkte/anpasste und via 4046 PLL einen Gleichklang
erzeugte.
Das ist heute veraltet und würde riesigen Aufwand erfordern.

Der richtige Weg liegt auf dem Tip mit dem Tuner. Nur dass eben etwas
mehr erfasst und angezeigt werden sollte als Gitarrenstimmgeräte das
können.

Auf einem App (Android) habe ich das. Wirds auch für PC geben
und ich wette irgendwer hat das auch schon mal mit nem uC gemacht...

yooh

von Wojciech P. (pimpek)


Lesenswert?

Murkser schrieb:
> Willst Du dies wirklich selbst bauen?

Nein, meine Schaltung soll nicht nur die Frequenz anzeigen.

Das es solche Dinger wie Du beschreibst im Musikladen gibt, ist mir 
bewust.

Der analoge Teil war das einzige womit ich nicht zurecht komme, deshalb 
habe ich hier gefragt, mit einem Stück Schaltung, wo das Signal in den 
Mikrocontroller eingespeist wird, ob das so passt.

von eProfi (Gast)


Lesenswert?

Um welchen Tonumfang geht es?
Normale Frequenzmessung ist schwierig wegen der Oberwellen, d.h. es gibt 
oft innerhalb eines Wellenzuges mehrere Flanken, je nach Lautstärke.

Meine Idee ist deshalb: mehrere Görtzelfilter oder schmalbandige FFT
http://de.wikipedia.org/wiki/Goertzel-Algorithmus

von Wojciech P. (pimpek)


Lesenswert?

eProfi schrieb:
> Um welchen Tonumfang geht es?

Es geht um ein Klavier mit 88 Tasten, von ,,A(A0) bis c’’’’’(C8), der 
Frequenzbereich liegt bei 27,5000 Hz bis 4186,01 Hz.

Es reicht aber locker die Genauigkeit ohne Komma, ich habe vor die 
gemessene Frequenz gegen eine Tabelle zu vergleichen, welcher Wert am 
nachsten passt, und dessen Note auf dem Display anzeigen.

Es soll kein Gerät zum stimmen eines Klaviers werden...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

In diesem Thread gibt es einige Links zu einfachen Tunerprojekten mit 
z.B. AVR:
Beitrag "Töne einer Flöte erkennen"

von Axel S. (a-za-z0-9)


Lesenswert?

Wojciech Pietrzak schrieb:
> Ich habe nur keine Idee wie ich die Frequenz vom analogen
> Mikrofon-Eingang in dem AVR auslesen soll.
>
> Würde die Schaltung aus dem Bild dafür reichen ?

Nun, "die Frequenz auslesen" kann diese Schaltung nicht. Aber sie kann 
das Signal von einem Elektretmikrofon so weit verstärken und begrenzen, 
daß man es mit dem ADC eines µC oder notfalls sogar nur mit einem 
digitalen Eingang auswerten kann.

Nach der Softwareseite hattest du ja nicht gefragt.


XL

von Wojciech P. (pimpek)


Lesenswert?

Axel Schwenke schrieb:
> Nun, "die Frequenz auslesen" kann diese Schaltung nicht. Aber sie kann
> das Signal von einem Elektretmikrofon so weit verstärken und begrenzen,
> daß man es mit dem ADC eines µC oder notfalls sogar nur mit einem
> digitalen Eingang auswerten kann.

Genau,

Es geht mit nur darum, das ich die "impulse" der frequenz vom Mikro als 
Low und High auf den Input Pin bekomme, denn Rest bastle ich mir schon 
zusammen.

von OAmp (Gast)


Lesenswert?

Wojciech Pietrzak schrieb:
> Es geht mit nur darum, das ich die "impulse" der frequenz vom Mikro als
> Low und High auf den Input Pin bekomme, denn Rest bastle ich mir schon
> zusammen.

Schon einen Plan zum "zusammenbasteln" ?

Das wären bei einem Klavier ja 88 Low oder Highs. Wenn die mit
Hochpass,Tiefpass und/oder Bandpass - nach der Vorverstärkerstufe 
zerlegt
werden ist ja abzusehen, dass es zuerst mal nur eine Note ist, die
erkannt werden kann. Was ist mit einem Akkord?

Eine Möglichkeit wäre die Filter, nach denen die Frequenz ermittelt wird 
nach Oktaven zu gruppieren. Und dann ob so oder einzeln zu errkennen.

Hochwertige Programme auf dem PC sind da schon selten, und die 
Rechenleistung und Kompexität dort ist wesentlich höher.
Das ist praktisch, wie wenn du mit einem Mofa Formel 1 fahren willst.

Um Noten zu erkennen - und auch alle 10 Finger (was ich eher selten
brauche) gibts Midi und Keyboards, Digitalpianos etc.

Eine moderate Lösung kann ich mir lediglich mit Hilfe von DSPs 
vorstellen.
Oder hochwertigen - komplexen - ADC- Stufen. Frequenz zu 
Voltage-Konvertern
und anschliessender Berechnung im uC...

Auf jedem Fall - Viel Spass und Erfolg

von Wojciech P. (pimpek)


Lesenswert?

Ich habe ganz am Anfang geschrieben das nur eine Taste gedrückt wird, 
also keine Akorde vorhanden. Der Benutzer kann, wenn notwendig auch die 
Taste eine Sekunde lang halten.

Meine Idee wie schon erwähnt ist die Eigangsfrequenz gegen eine Tabelle 
zu vergleichen, da die Tasten eine konkrete Anzahl sind so sind auch die 
Frequenzen zum Vergleich nicht unendlich viele / unbekannt.

Was mir wirklich Sorgen macht ist die Frequenz Erkennung auf der Linken 
Seite der Tasten da dort der Frequenz Unterschied sehr klein ist (wird 
je weiter rechts größer).

von OAmp (Gast)


Lesenswert?

Ja, bei den tiefsten Bässen auf dem Klavier sind es grad mal 1-Hz
per Halbton und 2 Hz von A0 auf H0  Unterschied in der Frequenz.
Frequenzmesser die im Netz zu finden sind haben eine Genauigkeit von 10 
Hz

Das ist mit einer verfeinerten Tabelle machbar.

Weitere Beschaltung mit einem externen ADC wäre auch eine Möglichkeit.

von Richard Clayderman (Gast)


Lesenswert?

Hallo,

verrätst du uns auch, wozu du das ganze brauchst, also zu welchen Zweck 
du den Frequenzmesser einsetzen willst?

von ich (Gast)


Lesenswert?

OAmp schrieb:
> Frequenzmesser die im Netz zu finden sind haben eine Genauigkeit von 10
> Hz

Das ist ja nun wirklich nicht wahr!
Hier ein x-beliebiges Beispiel mit einer Genauigkeit von +- 1 Cent.

Zur Erläuterung: 1 Cent ist ein hundertstel eines Halbtones!

http://www.thomann.de/de/korg_ga1.htm?gclid=CJOa2Y69-LwCFagBwwodSUgAzg

Hier noch eins:
http://www.kirstein.de/Zubehoer-Stimmgeraete/Rocktile-BT-10-Stimmgeraet.html

von OAmp (Gast)


Lesenswert?

ich schrieb:
> Das ist ja nun wirklich nicht wahr!

Wusste das das kommt :-)
Klar dass es "käufliche" Geräte gibt, vermute aber wegen dem Problem
der Auflösung Selbstbau.

von OAmp (Gast)


Lesenswert?

Hab was gefunden das besser auflöst :

Schaltung (mit Sinusgenerator)

http://www.vitalstates.org/diy/amplifiers/sg-cct.pdf

Kode:

http://www.vitalstates.org/diy/amplifiers/sg-code.txt

von Wojciech P. (pimpek)


Lesenswert?

OAmp schrieb:
> Klar dass es "käufliche" Geräte gibt, vermute aber wegen dem Problem
> der Auflösung Selbstbau.

Ja, einer der Gründe ist die Auflösung, vor allem bei den niedrigen 
Tönen, aber jemand meinte hier es gibt Tuner die diesen Zweck erfüllen 
schon ab 5 EUR, so ein Gerät will ich mal sehen.

Richard Clayderman schrieb im Beitrag #3559890
> verrätst du uns auch, wozu du das ganze brauchst, also zu welchen Zweck
> du den Frequenzmesser einsetzen willst?

Das ist der eigentliche Grund warum ich das bauen möchte:

Level I:

Das Gerät zeig eine Note auf dem Display an, wo nach es auf einen Ton 
wartet.
Der Benutzer drückt eine Taste auf dem Klavier, auf dem Display vom 
Gerät wird angezeigt ob der Ton getroffen, niedriger oder tiefer 
gedrückt wurde, das Ergebnis wird gemerkt.

Nach ein Paar "Runden" wird das Endergebnis angezeigt mit 
"Problemzonen", also welche Noten die meisten Schwierigkeiten gemacht 
haben.

Dieser Level hilft das trainieren die Richtigen Tasten anhand der 
GELESENEN Noten zu treffen.

Level II:

Das selbe Spiel, nur anstatt die Noten anzuzeigen, werden diese per Ton 
ausgegeben, der Benutzer soll diese nachspielen. Das Resultat wird 
genauso angezeigt und gespeichert wie Level I.

Dieser Level hilft das trainieren die Richtigen Tasten anhand der 
GEHöRTEN Noten zu treffen.

Es könnte auch möglich sein die Anzahl der Oktaven auszuwählen etc, das 
ist ja dann alles pes Software gelöst.


Ich bin Softwareentwickler, und überhaupt nicht musikalisch.

Meine Frau ist aber Vollzeit musikalisch beschäftigt, sie spielt Orgel.

Ich habe es unendliche male versucht unser Klavier zu erlernen, aber 
ohne Erfolg, Noten lesen kann ich, aber das spielen... na ja.

Ich weiss, ich kann das auch auf einen PC per software machen, Mikro ist 
ja eingebaut, oder einfach per MIDI auslesen, aber ist doch ein nettes 
Projekt nebenbei auszuprobieren. Und am Rechner etwas wieder zu 
schreiben, ist nicht so interessant...

Heutzutage kann man fast alles fertig kaufen, es ist einfach nur ein 
hobby Projekt.

Und wenn mir jemand kommt mit einem Klaviertuner für 5 EUR, ohne das 
Problem verstanden zu haben, tut er mir leid.

Gruss

von Helmut L. (helmi1)


Lesenswert?

Du liest das Signalspektrum das vom Mikro aufgenommen wird per ADC ein. 
Dann wird das ganze mittels FFT in ein Spektrum zerlegt. In dem 
Ausgangsarray der FFT suchst du dir die groesste Amplitude raus dann 
hast du deine gesuchte Frequenz. Die FFT must du allerdings so auslegen 
das deren Binbreite besser ist als die Frequenzaufloesung die du haben 
moechtest. Ob dann allerdings dein AVR in Rechengeschwindigkeit und 
Speicherverbrauch aussreicht must du dann sehen. Ohne FFT das zu machen 
duerfte schwierig werden. Einfach die Anzahl der Nulldurchgaenge zu 
zaehlen ist dabei nicht Zielfuehrend weil du ja auch Oberwellen im 
Signal hast.

von ich (Gast)


Lesenswert?

OAmp schrieb:
> Hab was gefunden das besser auflöst :
>
> Schaltung (mit Sinusgenerator)
>
> http://www.vitalstates.org/diy/amplifiers/sg-cct.pdf
>
> Kode:
>
> http://www.vitalstates.org/diy/amplifiers/sg-code.txt

Ich zitere mal aus dem Quelltext:
> determine frequency of the sin wave produced by the sig gen

Das Teil kann also die Sinus - Frequenz des internen Generators 
anzeigen.
Und das mit einem Mikrofon aufgenommene Klavier ist alles andere als ein 
Sinus. Das NF-Signal muß also noch aufbereitet werden. Aus dem 
Frequenzgemisch, welches ein Klavierklang darstellt, soll die 
Grundfrequenz herausgefiltert werden, damit er sie mit einem µC messen 
und darstellen kann. Und genau das möchte Wojciech haben. Ihm geht es 
nur um den analogen Teil. Er möchte keinen Generator haben, der seine 
eigene Frequenz anzeigen kann:

Wojciech Pietrzak schrieb:
> Der analoge Teil war das einzige womit ich nicht zurecht komme, deshalb
> habe ich hier gefragt,

von OAmp (Gast)


Lesenswert?

Wojciech Pietrzak schrieb:
> Heutzutage kann man fast alles fertig kaufen, es ist einfach nur ein
> hobby Projekt.

Das ist die richtige Einstellung. Also einen Gehöhrtrainer, eine
Übungssoftware bauen. Könnte mich auch reizen.

Helmut Lenzen schrieb:
> Ohne FFT das zu machen
> duerfte schwierig werden. Einfach die Anzahl der Nulldurchgaenge zu
> zaehlen ist dabei nicht Zielfuehrend weil du ja auch Oberwellen im
> Signal hast.

Das Zauberwort FFT wollte ich vermeiden. Es muss doch noch einen
anderen Weg geben. Vermute allerdings dass der hardwareseitig
ziemlich hoch werden kann.

von ich (Gast)


Lesenswert?

Wojciech Pietrzak schrieb:
> Ja, einer der Gründe ist die Auflösung, vor allem bei den niedrigen
> Tönen, aber jemand meinte hier es gibt Tuner die diesen Zweck erfüllen
> schon ab 5 EUR, so ein Gerät will ich mal sehen.

Das hier geht von B0 bis B6 mit 1ct Genauigkeit:
http://www.thomann.de/de/korg_ga1.htm?gclid=CJOa2Y69-LwCFagBwwodSUgAzg

und das von A0 bis C8, ebenfalls 1ct:
http://www.kirstein.de/Zubehoer-Stimmgeraete/Rocktile-BT-10-Stimmgeraet.html

Von 5€ hatte ich allerdings nichts geschrieben, das war jemand anderes.

Nachdem du jetzt deinen Einsatzzweck beschrieben hast, glaube ich auch 
nicht, daß ein fertiges Gerät dafür geeignet ist. Da kannst du ja die 
Anzeige schlecht auswerten mit deiner Elektronik.

von Helmut L. (helmi1)


Lesenswert?

OAmp schrieb:
> Das Zauberwort FFT wollte ich vermeiden. Es muss doch noch einen
> anderen Weg geben. Vermute allerdings dass der hardwareseitig
> ziemlich hoch werden kann.

Ja klar, Doppel Eurokarte mit jede Menge Filtern drauf. Was ist das 
Problem mit der FFT? Sourcecode dafuer gibt es jede Menge im I-Net.

von Richard Clayderman (Gast)


Lesenswert?

Wojciech Pietrzak schrieb:
> Der Benutzer drückt eine Taste auf dem Klavier, auf dem Display vom
> Gerät wird angezeigt ob der Ton getroffen, niedriger oder tiefer
> gedrückt wurde, das Ergebnis wird gemerkt.

Also ein autogener Klaviertrainer..

Ich vermute mal, dass Du der Benutzer sein willst oder ein anderer 
Anfänger.

Zu den technischen Problemstellungen wurde ja schon einiges geschrieben.

Dass ein Klavier keinen Sinus liefert, ist dir sicher klar. Besonders in
 die Attack-Phase des Tones ändern sich die Frequenzbestandteile ständig 
(sog. Transienten)

Um die dem Gerät zugedachte Aufgabe zu erfüllen, ist es mMn nicht 
notwendig, den gesamten Tonumfang des Instrumentes nutzen zu müssen.
Im Sub- un Kontraoktavbereich hört man sowieso kaum Töne heraus, da 
"grummelt" es nur, und die Harmonischen sind direkt wahrnehmbar. Für 
einen Anfänger ohne absolutes Gehör reicht es, Übungen ab der kleinen 
Oktave, also dem kleinen "c" zu beginnen. Nach oben kann auf "c3" 
begrenzt werden, darüber kann man gehen, wenn die Grundtechniken 
beherrscht werden. Aber dann sollte sich dieses Hilfsmittel von selbst 
erübrigen.

Vielleicht vereinfacht die Eingrenzung des Tonumfanges auch die 
technische Umsetzung, wenn die ganz tiefen und hohen Frequenzen 
ausgefiltert werden können.

von OAmp (Gast)


Angehängte Dateien:

Lesenswert?

Vielleicht ist die Eingangsschaltung vom PLL Synth brauchbar ( eventuell
bessere Opamps nehmen)

Übrigens erzeugen die PLLs eine Schwingung die wesentlich besser
auszuwerten ist.

von OAmp (Gast)


Lesenswert?

Helmut Lenzen schrieb:
> Ja klar, Doppel Eurokarte mit jede Menge Filtern drauf. Was ist das
> Problem mit der FFT? Sourcecode dafuer gibt es jede Menge im I-Net.

Hast ja Recht. Vielleicht ist der TO ja befähigt genug das im uC via
Code zu lösen.

Richard Clayderman schrieb:
> Um die dem Gerät zugedachte Aufgabe zu erfüllen, ist es mMn nicht
> notwendig, den gesamten Tonumfang des Instrumentes nutzen zu müssen.
> Im Sub- un Kontraoktavbereich hört man sowieso kaum Töne heraus, da
> "grummelt" es nur, und die Harmonischen sind direkt wahrnehmbar. Für
> einen Anfänger ohne absolutes Gehör reicht es, Übungen ab der kleinen
> Oktave, also dem kleinen "c" zu beginnen. Nach oben kann auf "c3"
> begrenzt werden, darüber kann man gehen, wenn die Grundtechniken
> beherrscht werden. Aber dann sollte sich dieses Hilfsmittel von selbst
> erübrigen.

Das ist logisch und würde die Aufgabe sehr erleichtern.

von LostInMusic (Gast)


Lesenswert?

Oh oh, der unerschütterliche Glaube an die Macht der technischen 
Hilfsmittel...

Dein Vorhaben, ein Notenerkennungsgerät zu bauen, in Ehren, aber mein 
Rat wäre eher, einfach mal mit einem qualifizierten Klavierlehrer zu 
sprechen. Nein, bitte nicht falsch verstehen: Diese Leute können Dir 
keine Tipps zur Implementierung von FFT-Algorithmen auf digitalen 
Signalprozessoren geben. Aber sie wissen, wie man Klavierspielen lernt.

Just my two cents...

von Ulrich (Gast)


Lesenswert?

Man könnte mit dem PC erst einmal sehen wie viele Oberwellen man im 
Signal wirklich hat. Ich könnte mir gut verstellen, dass die gar nicht 
so stark sind.

Für die Auswertung gäbe es ggf. noch eine Lösung unterhalb der FFT, die 
auch mit stärkeren Oberwellen klar kommt, solange die konstant sind. Man 
könnt das Signal digitalisieren und dann einmal die Amplitude direkt 
berechnen und einmal das Signal differenzieren und davon die Amplitude 
bestimmen. Das Verhältnis der beiden Größen ist proportional zur 
Frequenz und unabhängig von der Lautstärke. Ein Problem könnte man aber 
bekommen, wenn tiefere Töne mehr Oberwellen enthalten, etwa durch 
Resonanzen.

Ein anderer Weg wäre es von der grob geschätzten Frequenz (etwa mit dem 
verfahren oben) die Daten durch einen digitalen Filter zu schicken um 
die Oberwellen zu entfernen und dann für die genaue Frequenz rechnerisch 
zu bestimmen - z.B. aus der Zeit zwischen Nulldurchgängen.

Mit einem groben Schätzwert für den Ton (etwa auf 1/2 Oktave) könnte man 
ggf. auch die Methode mit der Hilbert-Transformation nutzen um die 
Frequenz zu bestimmen - auch das gibt eine recht gute Unterdrückung von 
Oberwellen und auch eine sehr gute Frequenzauflösung (deutlich besser 
als 1/Messzeit ist möglich). Das wird aber mit dem Speicher und der 
Rechenzeit im AVR schon anspruchsvoll. Weniger mathematisch ausgedrückt 
werde die Daten auf eine niedrigere Frequenz runter gemischt (2 mal als 
I und Q), Tiefpass-gefiltert und dann bei der niedrigeren Frequenz mit 
reduzierten Daten ausgewertet.

von Richard Clayderman (Gast)


Lesenswert?

LostInMusic schrieb:
> Dein Vorhaben, ein Notenerkennungsgerät zu bauen, in Ehren, aber mein
> Rat wäre eher, einfach mal mit einem qualifizierten Klavierlehrer zu
> sprechen.

Das weiß der TO mit Sicherheit.
Dieses Gerät ersetz keinen Kla4lehrer, hilft auch nicht, Kla(5-1) 
Unterricht zu ersetzen.
Es trainiert lediglich das Gehör mithilfe des Kla(2^2)s.

von Wojciech P. (pimpek)


Lesenswert?

LostInMusic schrieb:
> Oh oh, der unerschütterliche Glaube an die Macht der technischen
> Hilfsmittel...
>
> Dein Vorhaben, ein Notenerkennungsgerät zu bauen, in Ehren, aber mein
> Rat wäre eher, einfach mal mit einem qualifizierten Klavierlehrer zu
> sprechen. Nein, bitte nicht falsch verstehen: Diese Leute können Dir
> keine Tipps zur Implementierung von FFT-Algorithmen auf digitalen
> Signalprozessoren geben. Aber sie wissen, wie man Klavierspielen lernt.
>
> Just my two cents...

Fragt sich nur wozu ?

Ich habe nicht vor Klavierunterricht zu nehmen, ich habe oben 
geschrieben, es soll ein Hobbyprojekt werden. Was dein Rat mit meiner 
hier gestellten Frage zu tun hat ist mir auch ein Rätsel.

von LostInMusic (Gast)


Lesenswert?

OK, no problem, war dann wohl ein Missverständnis meinerseits... bitte 
ignoriere mein Geschreibsel einfach.

Viel Spaß + Erfolg für Dein Projekt :-)

von eProfi (Gast)


Lesenswert?

Mein Vorschlag ist, mache es über Midi, das ist ein schneller Weg zum 
Erfolg.
Aber das wolltest Du ja nicht, also empfehle ich Dir, mal ins 
DSP-Unterforum zu wechseln. Das wird aber ein deutlich steinigerer Weg.

Ein 2003- Projekt fällt mir noch ein (weil Du ja im Eingangspost AVR 
nanntest): Beitrag "Audio Spectrum Analyzer"

von ich (Gast)


Lesenswert?

eProfi schrieb:
> Mein Vorschlag ist, mache es über Midi, das ist ein schneller Weg zum
> Erfolg.

Wie soll dieser Weg denn aussehen?
Er nimmt den Klang des Klavieres über ein Mikrofon auf, dann kommen ein 
paar Fragezeichen, und plötzlich ist da ein MIDI-Signal, oder?

Entschuldige den Sarkasmus, aber wie willst du ein Mikrofonsignal in 
MIDI-Daten umsetzen?

Wenn schon MIDI vom Intrument vorliegen würde (ein Keyboard 
beispielsweise), dann gebe ich dir recht. Die MIDI-Daten dann anzuzeigen 
ist wirklich kein Problem. Aber in diesem Falle sind keine MIDI-Daten 
vorhanden...

von c-hater (Gast)


Lesenswert?

Wojciech Pietrzak schrieb:

> Das ist der eigentliche Grund warum ich das bauen möchte:
[...]

Das sind doch endlich mal Fakten, mit denen man was anfangen kann.

Als Exzerpt aus deiner Darstellung kann man als "springenden Punkt" 
postulieren, daß die zu erkennende Grundfrequenz dem Gerät _vorab 
bekannt_ ist.

Damit reduziert sich das Problem (einigermaßen korrekt gestimmtes 
Klavier vorausgesetzt) auf eine Goertzelbank mit einer ziemlich kleinen 
Zahl von Kanälen (z.B. 11, um die richtige und +- 5 benachbarte falsche 
Tasten erkennen zu können) und einen RMS-Filter mit gemäßigtem IIR-Notch 
um die Sollfrequenz, der die völlig falschen Anschläge mitbekommt.

Das ganze Filterwerk muß natürlich je nach Sollfrequenz neu parametriert 
werden. Man braucht also schon ein paar Byte Flash, um das Setup für 
alle Klaviertasten speichern zu können, wenn man es nicht zur Laufzeit 
berechnen möchte (was aber auch nicht völlig unmöglich wäre).

Das alles ist jedenfalsl auch auf einem kleinen 8-Bitter @20MHz 
definitiv realisierbar. Wenn man die richtige Sprache beherrscht oder 
die Compiler der Falschen so gut, daß man sie hinreichend vergewaltigen 
kann, daß sie fast so effizient wird, wie eine Lösung in der richtigen 
Sprache...

An Hardware brauchst du einen Mikrofon-Vorverstärker und einen Tiefpass, 
der alles oberhalb der halben Samplingfrequenz der ADC möglichst 
weitgehend ausfiltert. Zwei OVs (oder ein Doppel-OV) und Hühnerfutter.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.