Stimmgerät mit ARDUINO

  • Ersteller captainbee
  • Erstellt am
captainbee
captainbee
Registrierter Benutzer
Zuletzt hier
07.08.25
Registriert
13.11.12
Beiträge
373
Kekse
1.447
Ort
Pohlheim-Grüningen
Hi Leute, als Zusatzthread zu meinem aktuellen Gitarrenbastelprojekt interessiere ich mich für die Möglichkeit, ein Stimmgerät auf Arduino-Basis mit in die Gitta einzubauen.
Es gibt ja schon so einige Projekte dazu im Netz, hat jemand von euch schonmal direkt Erfahrugnen mit sowas gemacht ? Reicht ein Arduino für sowas ? Kann er mit den Frequenzen und Störeinflüssen gescheit umgehen ?

Mit Elektrik in dieser Richtung hab ich kein Problem, als ehemaliger Softwareentwickler hab ich kein Problem mit coden und meine ARDUINO-Experimente mit verschiedenen LED-Basteleien und Temperatursensoren waren auch OK.

Meine Idealvorstellung ist, 2 LEDs zu haben, eine "zu hoch" und eine "zu tief". Bei Übereinstimmung sollen dann beide leuchten. Geil wäre es, je nach Annäherung an den gewünschten Ton die jeweiligen LEDs mit wachsender Intensität leuchten würden. Naja sowas in die Richtung halt ;-)

Ok, also wie gesagt, wenn ihr Ideen oder konkrete Erfahrungen mit vorhandenen ARDUINO-Projekten habt, dann gerne mal hier was hinterlassen.

Tschöö und Gruß Jörch
 
Eigenschaft
 
AAAAHHHH GEIL!!!

Ich versuch gerade genau das gleiche :D - aber mit nem Zeiger.

Die Ausgabe ist bisher mein geringstes Problem - das hätte ich quasi schon halb fertig.... ich weiß aber noch nicht so ganz, wie ich das Signal in den Arduino bekomme. Klar, als analoges Signal, aber ich habe noch keine Interpretationsmöglichkeit gefunden.

Hast du ne Idee dazu?
 
Hallo,
zum Stimmgerät an sich kann ich gerade nichts sagen, aber zum Einlesen vom Signal:

Die Arduinos basieren ja auf dem ATMEGA, und der hat mehrere ADC (Analog Digital Converter). Für die Frequenzen der leeren Saiten reicht der von der Geschwindigkeit her vollkommen aus. Siehe: http://arduino.cc/en/pmwiki.php?n=Reference/AnalogRead
Noch einen OpAmp zwischen Gitarre und Arduino (vielleicht zusätzlich noch einen Tiefpass), dann sollte das prima funktionieren.
Wie ihr aus den eingelesen Werten dann ein "zu hoch/ zu tief" macht, ist euren Programmierkünsten überlassen ;). Da sollte es im Netz genug Beispiele geben, aber am Ende wird es wohl auf eine FT/FFT hinauslaufen!
Viel Erfolg bei dem Projekt, ich würde gerne euer Ergebnis sehen!
schöne Grüße,
Felix
 
Also nen Amp hab ich auch schon und damit kann man auch "rein gehen". Aber man braucht ja einen Vergleichswert um eben das "zu hoch/tief" zu ermitteln. Dieser Vergleichswert ist aber genau die Frage.... die Kalibrierung auf den Perfekten Ton eben. Bisher kam ich nur auf die Idee das mit einem Tongenerator zu erzeugen und den Wert dann als Vergleichswert zu nehmen. Doof ist jetzt nur, dass ich keinen Frequenzgenerator habe, auf den man sich 100%ig verlassen kann :D.

Dazu kommt das Problem, dass so ein Generator ja nur eine Einzelfrequenz erzeugt und eine Saite eben zusätzliche Schwingungen beinhaltet, die das Signal unkonstant machen. Die müsste man also alle herausfiltern.
 
Verstehe nicht wofür man nen SIgnalgenerator brauchen würde?!

Vom Ansatz her würd ich es glaube ich so machen: FFT --> Schauen bei welcher Frequenz das Maximum ist -> Diese mit der nächstgelegenen Notenfrequenz vergleichen.
 
der X Wert deines FFT Spektrums ist doch gerade die Frequenz, wofür also einen Signalgenerator? Einfach die Frequenzen der Leersaiten als Konstanten definieren und damit vergleichen! Wenn das dann klappt kann man sich natürlich wieder Modifikationen für andere Tunings etc. überlegen ;) Oder ein Polytune bauen :p
 
Hi, super, dass der Thread auf Interesse stösst :)

Also erstmal hat man natürlich die Frequenzanalyse als fiesesten Batzen, dazu das filtern des Stärksten Signals bzw. des gewünschten Haupttones. Das als fertige Lib wär Spitze

Ansonsten könnte ich mir vorstellen, dass man erstmal eine feste Tabelle an Frequenzwerten hat, ich geh jetzt erstmal von der normalen Stimmung auf E aus.

Also, Frequenztabelle als Zuordnung von Ton-Konstanten zu Frequenz.
Dann den Toleranzbereich, ab dem die Analyse den ungefähren Ton erkennt, nach dem Motto "Ah, der Nutzer möchte jetzt bestimmt die E-Saite stimmen, also zeig ich ihm mal den Bereich an"
Man müsste dann definieren, ob man dann 10% nach unten oder oben annimmt , oder ob man das fest einträgt oder whatever. Im Endeffekt reiner Zahlenvergleich.

(Als Hilfsmittel könnte man sich auch zuschaltbar den Referenzton ausgeben lassen, um zu prüfen ob man total daneben liegt...)

Also trennen wir mal die Teilprogramme auf :


* Signal-Input
* Analyse
* Vergleich
* Darstellung
(* Bedienung / EIN-AUS/Wechsel der Stimmung etc.)

Wenn man das so kapselt kann man bestimmt flexibel die Darstellung als LED-Muster, Zeiger, LCD-Display machen, Hauptsache die Grunddaten stimmen.

* Zum Signal-Input :
reicht es aus, hier einfach das Elektrische Signal an der Klinkenbuchse abzufischen, oder platziert man einen Piezo ? Oder beides ?
Hoch- und Tiefpass dann in Hardware vorschalten bevors in den ANALOG-IN reingeht, oder das den ARDi schaffen lassen ?

* Zur Analyse
gibts bestimmt fertige Libs, hoffentlich, ich bin nämlich nicht so die Mathematik-Leuchte ;-)

* Vergleich
Jo, wie gesagt ich würds über ne Tabelle machen, erstmal Prototypisch nur für E-Stimmung.
ne Weiterentwicklung wäre dann, eine Globale Tabelle für die üblichen Töne zu haben und dann per wasauchimmer die dann zu referenzieren

in der Globalen Tabelle steht dann


TONE_A4 = 440000
TONE_E4 = 329628
...

Und steht in der Tabelle "STIMMUNG"

TUNE_E = TONE_E4,TONE_A4,TONE_D5,TONE_G5,TONE_B5,TONE_E6

So, dann kommen ja Werte dabei raus wie

IF (TONE_SIGNAL <= TONE_E4){

Print "niedriger, zieh hoch alter !"

} ELSE {

Print "Lass locker, entspann dich"

}


.. natürlich genauer, man muss für die Tonfrequenz wahrscheinlich auch noch ne Toleranz einbauen, lässt sich auch schön als Konstante hinterlegen


* Darstellung

Ja, da wirds dann individuell lustig ...
Einerseits braucht man ja durch den Teil von vorher die Qualitative Info : HÖHER, GLEICH, TIEFER
und dann aber je nach Anzeige-Instrument natürlich noch die Quantitative Info, also nochmal TONE_SIGNAL, damit man diese dann für Zeigerausschlag, LED-Pegel etc. auswerten kann
Mir würde reichen, die beiden LEDs jeweils blinkend oder dimmend zu variieren, aber ich denke schonmal für die Genossen Zeigerinstrument etc. mit ;-)

* Bedienung

Mir reicht erstmal ein kleiner EIN/AUS-Knopf, aber natürlich gibts für andere Anwendungsfälle noch mehr Ideen.

OK, soweit erstmal dazu,

Gruß Jörch
 
verdammt....ich glaub ich hab mir da ein bisschen zuviel vorgenommen :D
 
Hier smartin, wie weit biste denn schon ?
Ma gucken obs als Gemeinschaftsprojekt "MB-Arduinotuner" taugt, vielleicht kommt noch Hilfe :)
Also das mit Abstand schwierigste wird die Auswertung des Analogen Signales sein, der Rest ist Pipifax. Sobald der Analog-IN uns einen Zahlenwert als Frequenz liefert, ist der Rest nur noch Fingerübung und Lötarbeit.

Kopf hoch ! wir schaffen das ;-)
--- Beiträge wurden zusammengefasst ---
Zusatz : mich würds auch net stören, wenn man die Auswertung von einem billigen, ausschlachtbaren Stimmgerät bekommt und der Platine dort was brauchbares abgreifen kann ... irgendwie müssen das die Dinger ja auch machen.
 
Na das is doch direkt ne fertige Anleitung?!
 
Auf dem Display würde ich den Ton und die Abweichung in Hertz anzeigen - so einen feinstufigen Tuner habe ich noch nicht gesehen (A2 -2 Hz oder D3 +12 hz).
 

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben