Bruce schrieb:
Danke!
Dadurch, dass ich vor der IF-Abfrage durch 8 teile muss sich der Wert am Eingang doch schon um mehr als 1 ändern, also MidiCC-Wert 127 entspricht 1016 bis 1024 - so meine Vorstellung. Mein Test bestätigt das auch: Wenn ich erst nach der IF-Abfrage dividiere, dann wird das "zappeln" jedenfalls deutlich stärker.
Wie gesagt, das zappeln hält sich in Grenzen, aber ich will das gar nicht haben und werde auf jeden Fall da noch etwas rumprobieren:
a) Hysterese (wenn ich das richtige darunter verstehe)
b) Tiefpass (elektrisch)
c) Tiefpass / Mittelwert (Software)
d) IF-Abfrage ändern / statt ungleich z.B. die Differenz muss größer als 16 statt 8 (bzw. auf Midi skaliert 2 statt 1) sein
e) Software (Arduino): die Funktionen "map" und "constrain" (geht vielleicht in die Richtung "Totbereich" [?])
mfG Bruce
Ich nutz das hier mal weiter auch als offenes Notizbuch ... bin dabei für Hinweise immer dankbar.
a) / d) haben es nicht gebracht, möglicherweise habe ich das mit der Hysteres auch noch nicht richtig verstanden.
Der elektrische Tiefpass (b) funktioniert schon, zieht aber definitiv ein spürbares Nachlaufen (Latenz) mit sich - nun könnte man evtl. noch mit der richtigen Grenzfrequenz experimentieren, aber ich habe mich schon quasi dagegen entschieden, schätze das jetzt so ein, dss ein wirksames Bekämpfen des Rauschens immer mit spürbarer Latenz einhergehen wird. Außerdem ist es unflexibler als das per Software zu machen.
Mittelwertbildung (c) funktioniert für mich bisher am Besten. Ich kann nur noch nicht einschätzen, wie weit ich da gehen kann. Mit einem Mittwelwert aus 1000 Potiabfragen kann ich bisher (bei nur einem Poti) keine Latenz und auch kein Jitter mehr sehen, glaube aber dass das unrealistisch ist ...
e) Mit Map kann man zwar skalieren, es bringt bzgl Jitter aber keine Vorteile. Der Code wird auch nicht kleiner, also uninteressant dafür.
f) Totbereich: Finde ich sehr interessant den Gedanken, wie ich ihn mir gerade mache: Warum nicht aus den 5V per Spannungsteiler 1,25V machen ... spart auf jeden Fall schonmal die Skalierung auf Midi per Software - dafür habe ich allerdings auch wieder zwei Bauteile mehr auf der Platine. (Anmerkung: belasteter Spannungsteiler - ich gehe mal von hochohmig [>1MOhm] bei den analogen Eingängen aus (?))
Edit: Spannungsteiler (oder auch Vorwiderstand), Hardware-Tiefpass ... alles Quatsch. Nur als Software macht die Bekämpfung des Zappelns hier Sinn - glaube ich gerade rausgefunden / verstanden zu haben ...
Edit2: Okay, es sieht so aus, als würde d) also Änderung größer 2 in der IF-Abfrage und danach erst Division durch 8 (bzw Bitshift um 3) reichen ... cool, weil easy, weniger Code und sicher auch nicht so rechenintensiv wie 1000 Mittelwerte
mfG Bruce