ich habe wieder mit musik angefangen und habe mir für meinen elektronischen kontrabass ein funk modul gebaut... gestern ist mir dann bei der singstar werbung die idee gekommen das ich eigentlich verstaubten synties mal wieder hochfahren könnte und nun denke ich daran diese per midi mit dem bass zu verbinden. vorteil von einem bass ist das man sogesehen fast immer nur einen ton spielt. so zur frage: bass macht ton --> wie kann der atmel die tonhöhe messen? --> bekomme ich auch die anschlagstärke raus? ich würde mich freuen wenn ihr mir einen kleinen startschuss für die herangehensweise zur messung geben würdet, mit dem programmieren und der tonhöhe/stärke zu midi wandlung tu ich mich dann eher leicht... oder hat jemand sowas schon mal gemacht? grüße, internessi
Du willst Dir also einen Pitch-to-Midi-Converter bauen? Hut ab. Um die Tonhöhe herauszufinden, bietet sich eine Fourier-Analyse des Eingangssignales an - such' mal nach FFT. Damit kannst Du dann auch die Signalamplitude bestimmen.
Hi, Tonhöhe ist die Frequenz. Einen Frequenzzähler kannst du zur Messung recht einfach programmieren. Such u.A. mal nach µC-Stimmgeräten für Saiteninstrumente, die machen genau das. Eine Frage bleibt natürlich: Ich kann dir nicht sagen, was für schreckliche Signalformen das Instrument macht. Oberwellen sind auf jeden Fall drauf. Inwieweit die die Messung stören werden, ist noch rauszufinden. Nur als Warnung, denn ich könnte mir schon vorstellen, dass der Zähler allerlei Mist mißt. Die Signalamplitude ist ein Maß für die Anschlagstärke, kann also auch erfasst werden... Am besten wird wohl eine schnelle Abtastung sein und dann einiges an Rechenleistung draufwerfen (DSP). Mit FFT oder dergleichen kannst du Erfassung von Amplitude und Frequenz mit einem Mal erschlagen.
So mein Stand is da nicht mehr der neuste. Ich kann mich aber daran erinnern, dass Roland da mal ein ziemlich gut funktionierendes System fürm Stromgitarren gebaut hat (hab ich selbst auch mal getest, lustig Schlagzeug auf ner Klampfe ;-), ich glaube die wollten mich nacher aus dem Laden rausschmeissen :-)) ). Für Bass funktionierte das aber nur sehr schlecht, da das System zur Bestimmung der Frequenz immer zwei Schwingungen brauchte und die dauern halt bei tiefen Frequenzen. Die Latenzzeiten waren jedenfalls nicht wirklich brauchbar. Mir würde keine Lösung einfallen, um das zu umgehen.
@Rufus
hmm ich hab mir das mit fem FFT mal angesehen und von einem kollegen
erklären lassen, das währe auch ein lösungsweg aber wir versuchen es
erstmal mit folgendem
@Thomas
>Tonhöhe ist die Frequenz.
ich nehme mal eine basswalk auf und sende den an meinem kollegen mit
oszi --> dann sehen wir wie gut/klar/rein die schwingungen sind, evtl.
noch einen tiefpass filter davor. evtl. reicht dann ja das zählen
aus... ist auf jeden fall einfacher und ein guter start.
@Sandynister
das roland teil habe ich auch schon gespielt mit der gitarre, aber
nicht als drumset sondern piano fettgrins super effekt auf der bühne
... latenzzeiten: könnte ein problem sein, ich mein eine oder 2 zehntel
sind kein thema daran gewähnt mann sich aber ne sekunde währe schon die
hölle... auf der anderen seite könnte man den syntie zusätzlich zum
signal mit streichern/flächen lauffen lassen dann ist es eher easy...
danke für euere hilfe, internessi
Das mit dem Sampling der Tonhöhe und -stärke hab ich gestern geschrieben und als Platine aufgebaut (übelst billiger Vorverstärker aus der E-Schrottkiste + Prozessor). Hier mal was über den ADC bei 4 MHz rüberkommt (8 Bit Hex): Ein tiefes "A" E-Kontrabass 122E465256697974697E8D9AA5B0B9C2C9D0D6D4A9896D56422F1F100000000000000000 0000000000 223C4F50617276657A8997A3AEB7C0C8CFD6DBB794775E49362516100000000000000000 0000000000 122A424E526576686C7E8D9AA6B0BAC3CAD1D7D5AB8A6F57433120110000000000000000 0000000000 Ein "G" E-Kontrabass 11233B4F61717F8C989F7D614A35231200000000000000 132D4356677684909B9C795E4732201000000000000000 1F374C5E6E7C89959F96755A432F1D1100000000000000 Ein hohes "F" E-Kontrabass 2532353B3D2D14000000000000 10131520141410000000000000 152A313135321D000000000000 Man kann die Wellenberge fömich sehen grins Ich habe der Einfachheit halber den ADC auf 8 bit beschnitten und nur 4 MHZ intern benutzt und alles unter 0x10 gesqelcht, ich denke das ergebniss lässt sich noch stark verbessern und es sollte sich bei der 3.ten Welle eine Aussage über die Tonhöhe treffen lassen. Wenn noch andere Intresse an dem Teil haben könnte ich ja in das Codesammlung Forum gehen?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.