28.05.2020
Das Oberton-Stimmen eines Instruments, wie z.B. einem Marimbaphon,ist sehr komplex. Es kostet viel Zeit, und ist mit konventionellen (bezahlbaren) Stimmgeräten kaum zu bewerkstelligen. Denn einfache chromatische Stimmgeräte haben Probleme mit Obertönen. Das zeigt sich dann dadurch, dass die Anzeige des Stimmgerätes wie wild herumspringt, wenn man mit "schwer" stimmbaren Instrumenten, wie z.B. einem Marimbaphon oder Röhrenglocken zu tun hat.
Deshalb habe ich mich dafür entschieden ein Stimmgerät in Form eines Computerprogramms speziell für Malletinstrumente selbst zu entwickeln.
Das Programm ist in C++ geschrieben und verwendet einige plattformunabhängige Bibliotheken:
Ich bin ein sehr großer Freund von Open-Source. Deshalb wird der Quellcode demnächste auch auf Github veröffentlicht, sobald ich den Code enstsprechend "leserlich" für dritte gemacht habe.
In den folgenden Seiten möchte ich ein bisschen auf die Funktionen der einzelnen Software-Blöcke eingehen. Und auch ein bisschen die Theorie dahinter näher bringen.
Das Stimmgerät besteht aus einem Fenster mit drei (ausblendbaren) Oberflächen. Ganz oben bei "LiveAudio" ist das aufgenommene Audio-Signal zu sehen. Mit Hilfe des Schiebereglers rechts der Anzeige kann die Trigger-Schwelle (graue Linie in Grafik) eingestellt werden. Somit kann das Stimmgerät auf verschieden laute Umgebungen angepasst werden. Um auch die die Klänge vor dem Auslösen des Triggers erfassen zu können wurde ein, derzeit noch auf 10% fest eingestellter, Pre-Trigger implementiert.
In der nächsten Oberfläche, "FFT", ist die Darstellung des Signals im Frequenzbereich zu sehen. Das aufgenommene Signal wird hierbei mit Hilfe des FFT-Algorithmus in seine einzelnen Frequenzanteile zerlegt. Einzelne Peaks (Spitzen) in diesem Signal entsprechen dann entsprechend den Frequenzen des gespielten Tons. Der Peak ganz links im Signal ist ist der Grundton des E3 meines selbstgebauten Marimbaphons. Die Nachfolgenden Peaks sind entsprechend die Obertöne.
In der letzen Oberfläche wird zum einen der ermittelte Grundton mit seinem Tonabstand in Cent dargestellt. Zum anderen eine Liste mit den übrigen, gefundenen Peaks/Tönen und deren Abweichung in Cent. Cent ist eine Maßeinheit um Intervalle und deren Abweichungen sehr exakt zu bestimmen. Ist der Cent-Bereich des Grundtons zwischen -5 und +5 erscheint die Anzeige grün, andernfalls rot.
In den Einstellungen kann der Audio-Eingang und dessen Abtastrate, sowie diverse Einstellungen der FFT-Analyse vorgenommen werden.
Folgende Punkte sind noch offen:
Zum Verwenden des Stimmgerätes müsst ihr die Zip-Datei entpacken und die Exe-Datei ausführen. Es ist keine Installation des Programms notwendig. Für Schäden und etwailige Fehler im Programm übernehme ich keine Haftung.
Gefundene Fehler und Bugs im Programm könnt ihr mir gerne mitteilen.
Die Source-Dateien zum können hier heruntergeladen werden: https://github.com/maxhinze/OvertoneTuner