MIDI Werte zu ungenau/grob

M

mindmaze

.
Hallo!

Ich bin seit ein paar Tagen Besitzer eines iPad und hab mein MIDI Keyboard, Arturia Keylab 49, erstmals an selbiges angeschlossen.
Per MIDI learn hab ich einige Parameter der Synths von Syntronik auf Fader/Potis gelegt.

Mir fällt ein deutlich hörbarer Sprung bei Werteveränderung am Controller auf - bei der direkten Bedienung über das Display via Touch läuft das viel weicher/abgestufter ab.

Gibt es einen MIDI Controller, der die Werte 0-127 höher auflöst? (Viel höher!)
Oder ist das ein generelles Problem bei Datenübertragung von Midi.

In diversen Situationen ist das echt störend...

Vielen Dank für eure Infos!
 
Ist halt so. CC's sind halt immer 0-127.
Wenn der Empfänger (und Controller natürlich auch) NRPN's unterstützt, sieht es anders aus.
Tun aber die wenigsten.
 
Vielen Dank für die schnelle Antwort!

Hab mal nach der Materie gegoogelt - diese NRPN sind ja nur (lt. meinem Verständniss) variable Signalkanäle, die auch nur die Werte an/aus oder 0-127 übertragen.

Entschuldigt mein Halbwissen - bin hier ganz neu.

Ich kann mir aber gut vorstellen, zB in GarageBand eine Automation zu machen, die etwa über 4 Bars den Cutoff vom Wert 80 auf 90 hochfährt - mit manuellem Drehen am Poti bei Midi Recording wird das für mich leider nix. (In der Daw mit der Automation läuft das auch butterweich)

Schade! Aber wenigstens kann ich mir in groben Zügen mit den „echten“ Reglern am Keyboard den Sound zurechtformen.
 
NRPN können 14 Bit. Einfach mal bissl MIDI Grundlagen lesen, zB in meiner Signatur.
 
Neuere Synths interpolieren zwischen den Werten des Controllers, von daher sollten man selbst bei 128 Werten keine Stufen mehr hören. Lässt sich vielleicht auf Kosten der nötigen CPU-Power oder Polyfonie irgendwo einstellen.
 
Interpolieren ist dann halt mit einer minimalen Latenz verbunden (vom eintreffen des neuen Werts bis zum erreichen eines eben selbigen).
 
Wenn du mehr Zwischenschritte hast ist der Effekt der Gleiche, du musst genauso lange "warten" um den entsprechenden Wert zu erreichen.
 
Man hört das je nach Parameter auch bei schnellen Bewegungen. Bei der Modulation der Lautstärke führen schnelle Änderungen zu regelrechtem Krachen. Die Latenz ist nicht so wahnsinnig hoch - VSTs oder auch viele VAs zeigen ja, dass das praktikabel geht. Umgesetzt wird das meist durch einen linearen Interpolator oder einen Lowpass.

Übrigens: Bei analogen Synths liegt das von Natur aus "glatte" Verhalten nicht nur an der nahezu unendlichen Auflösung (Quanten lassen wir mal draußen), sondern auch an der Tatsache, dass es keine Zustandsänderungen in Nullzeit gibt. Wenn ein Kondensator beispielsweise entlädt, dauert das eben eine Winzigkeit. Damit haben die analogen Synths aber auch eine Art minimaler Latenz. Oder anders gesagt: Ohne Latenz kein stufenloser Sound.
 
Mal eine Laienhafte Überlegung: die mechanischen Regler/Fader/Potis am Controller sind ja theoretisch in der Lage, wesentlich höher aufzulösen - werden praktisch aber vom Midi Standard in die 0-127 Stufen-Beschränkung „downgegradet“?

Das finde ich nicht sexy.
 
wie soll das denn gehen? woher soll der synth denn wissen, wann welcher neue wert kommt?
In analog würde das ein Slew Limiter erledigen, der aus einen stufigen Signal einen Verlauf macht (aka Glide).

Ich bin mir ziemlich sicher das das auch so ähnlich in digital gemacht wird, ansonsten würden sich immer noch viele über stufige Filterfahrten beschweren....

Meine Erfahrung zumindest bei alten VSTis war immer: Der ModWheel Eingang war besser (oder überhaupt) interpoliert und führte zu bessere Ergebnisse, als wenn man Regler direkt per Midi CC angesteuert hat.
 
Zuletzt bearbeitet von einem Moderator:
Doch, denn du erreichst Deinen Zielwert mit einem Slew Limiter eben nicht sofort, sondern über einen Anstieg / Abfall. Der dauert eine gewisse Zeit und das ist in dem Sinne Latenz.
 
Per MIDI learn hab ich einige Parameter der Synths von Syntronik auf Fader/Potis gelegt.
Kann man da nix in der App selbst einstellen? Kenn mich mit iPad Synths überhaupt nicht aus, mit Midi learn wirst du da aber jedenfalls nicht weiterkommen.... das dürfte wirklich nur 0-127 umsetzen.
 
Zuletzt bearbeitet von einem Moderator:
Nein, denn eine Änderung des wertes findet ja sofort statt. nur ist noch nicht der zielwert erreicht.

Und genau so ist das im Digitalen auch. Wenn ein neuer Wert eintrifft, wird der alte als Start hergenommen und der neue als Ziel definiert. Die Überleitung zum Zielwert beginnt sofort und ist nach einer gewissen Zeit abgeschlossen. Das kann im nächsten Sample sein (macht wenig Sinn) oder nach beliebig vielen.

Das alles hilft aber nur gegen Sprünge, denn die Zielwerte umfassen bei 7 bit Controllern ja nur die Werte 0 - 127. Für mehr muss man 14 Bit Controller nutzen (afaik geht das nur über NRPN oder CC 0 bis 31). Pitchbend wird beispielsweise so gesendet (7 Bit MSB, 7 Bit LSB).
 
Poa! Das waren jetzt 2 Jahre!
dazwischen hatte ich anderweitig zu tun, jetzt — nach dem kollektiv verdammten Nichtstun, hab ich nun wieder etwas Zeit, an mir selbst, und an der Musik herumzuspielen. :)
jetzt zum wesentlichen:
was witzige ist: wenn ich einen gewissen Regler, nennen wir ihn „Cutoff“ am softsynth am iPad per midi learn aufm modwheel lerne, lauft dieser viel „glatter“ als auf dem endless-regler. Das gleiche ist mit den 8 fadern - die laufen perfekt und „springen“ auch nicht so abrupt. sind hier die „endless“ drehregler schuld?
...ich hätte absolut nix gegen eine Kaufempfehlung eines Midikeyboards - das butterweich läuft!

vielen Dank, ich bin betrunken, ich hoffe euch gehts gut!
 
Das gleiche ist mit den 8 fadern - die laufen perfekt und „springen“ auch nicht so abrupt. sind hier die „endless“ drehregler schuld?
Kannst du mit 'nem MIDI Monitor nachprüfen.

dazwischen hatte ich anderweitig zu tun, jetzt — nach dem kollektiv verdammten Nichtstun, hab ich nun wieder etwas Zeit, an mir selbst, und an der Musik herumzuspielen.
Für mich als "Einsiedler" hat sich nicht all zu viel geändert, einkaufen ist vielleicht was nerviger geworden ;-)
 
MIDI kann auch 14 Bit. Auch normale CC's, die man dann halt als Paare nimmt. Es gibt halt nicht so viele CC's. Deshalb wohl NRPN's? Ich habe mich damit nie befassen müssen. Wenn man aber nur ein paar Parameter steuern möchte, dann dürften CC's als Paare (für 14 Bit) doch auch reichen, oder?

Das andere Problemfeld ist, wie oft nacheinander diese Werte übermittelt und empfangen werden. Sind die Zeitabstände eher grob als fein, gibt es eben Stufen, und es hilft die 14 Bit-Auflösung nix, weil sie bei kontinuierlicher Steuerung aus zeitlichen Gründen gar nicht ausgenutzt werden kann. Sprich, einzelne Werte sind dann zwar präziser möglich, aber bei kontinuierlicher Steuerung hilft das nix, wenn Zeitabstände zu grob sind.

Innerhalb einer DAW (ob PC oder iPad etc.) kann ja Sample-genau, sprich zu jedem Audio-Sample ein hoch aufgelöster MIDI-Wert geleitet oder eine sonstige hoch aufgelöste Steuerung gemacht werden. Wird von extern geteuert, so kommt es auf die Schnelligkeit der Übertragung und des Empfangs an. Konventionelles MIDI ist da z.B. sehr langsam. Insb. so per konventionellem MIDI-Kabel. Per USB dürfte es theoretisch schneller gehen. Aber auch wirklich so hoch aufgelöst und kontinuierlich wie bei Audio?

Dann käme es auf die Implementierung an. Ob 14 Bit-Werte wirklich sehr schnell nacheinander gesendet und empfangen werden können. Bei 7 Bit gäbe es immer noch die Möglichkeit der Interpolation. So ähnlich wie Glide beim Pitch. Da wäre halt die Frage nach der Zeitkomponente. In Echtzeit wäre es dann auch die zusätzliche Latenz. Diese Glide-Zeit für MIDI-Parameter. Damit könnte man aber auch die zeitliche Grobheit einer konventionellen MIDI-Übertragung überbrücken. Dann reichen auch 7 Bit aus, wenn die 127 Abstufungen pro Parameter als feste Werte ausreichen. Werte sind 128 bei 7 Bit, aber Abstufungen 127, oder? ;-) Also beginnend mit zwischen 0 und 1 und endend mit zwischen 126 und 127, wenn wir im dezimalen Format bleiben. ;-)
 
Zuletzt bearbeitet:
Pitch Bend hat fast jeder schon probiert, ist auch 14Bit ;-) wenn auch nicht bei allen Klangerzeugern.
Oder nicht bei allen Keyboards. Mein SL-161 hat z.B. 7 Bit gesendet.* Habe ich aber in Cubase eh meist nachgezeichnet. Dann natürlich mit 14 Bit-Auflösung. Die Werte kann man dort (also in Cubase) auch sehen.

Zumal man für Pitch Bend in der Klangerzeugung ja verschiedene tonale Bereiche einstellen kann. 1 Halbton vs. 2 Oktaven usw.
Bei 2 Oktaven würde man die Sprünge wohl eher hören als bei 1 Halbton. :agent:

* Bei Velocity-Werten war es beim SL-161 sogar so, dass bei intern gesetzten Velocity-Curven noch weniger als 128 Werte übermittelt wurden, weil das Ding wohl die Werte von Anfang an mit 7 Bit-Auflösung verarbeitet hat, und bei der Umrechnung die Auflösung dann noch geringer wurde.

War mir aber beides nicht wichtig, da ich eh im Sequencer nacheditiere. :P

Hauptsache, Aftertouch abgeschaltet, weil bei Fatar eh unbrauchbar und müllt nur die Leitung zu. :twisted:
 
Zuletzt bearbeitet:
Guten morgen allerseits und vielen Dank, ob der Aufnahme dieses alten Themas!
(mann, mir tut die Rübe weh...)

ist das ein Problem dieser endless-potis, dass diese nicht so akkurat die Werte übertragen?
bei den Fadern, mit fixem Start- und Endpunkt funktioniert das ja.

ich hab mir grad die nackten Werte, die der Poti überträgt, in der Daw Reaper angesehen:
bei langsamen Drehbewegungen springt der Wert mal von 58, 54, 61, 53, 57...
Bei den Fadern und beim Modwheel ist das nicht der Fall.

kennt jemand ein MIDI Keyboard, welches die Werte ein bissi genauer übermittelt?
ist das ein Arturia internes problem?
 
Das könnte an der begrenzten Geschwindigkeit der MIDI-Übertragung liegen. Dreht man zu schnell, schafft der Controller es nicht, alle dazwischen liegenden Werte zu übertragen. Versuch mal ganz langsam am Encoder zu drehen. Solange kein Defekt vorliegt, müssten dann alle Werte übertragen werden ... :agent: Ab einer gewissen Drehgeschwindigkeit können dann Wertesprünge auftreten, wenn die MIDI-Übertragung es zeitlich nicht schafft alle Werte zu übertragen. Oder es gibt einen anderen Flaschenhals im Gerät, wodurch die Werte übersprungen werden. :agent:
 
Zuletzt bearbeitet:
Es soll doch bald midi 2.0 kommen, hat dann sicher eine hoehere "baudrate". Aber ich mag das alte midi irgendwie trotz der Limitationen. Das digitale USB scheint mir weniger zuverlässig (?)
Endess-potis uebertragen glaube ich meist nur relative werte, also +4 oder -9 etc.
 
Zuletzt bearbeitet:
MIDI 2.0 hat eine sehr hohe Auflösung.
Aber es gibt auch NRPNS und Controllerkaskaden, damit konnte man schon 2001 den Andromeda versorgen, der 16384 Schritte pro Parameter anbietet. Es gibt noch viele andere die zumindest mehr als 7 Bit haben, also mal 256, mal 4096 und eben auch mehr Schritte anbieten.

DAWs zeigen die leider nur als 2 oder 6 Controller an, nicht als ein großer Wert - das ist schade.
Das scheint sehr schwer zu sein, weil kein Anbieter das schafft, aber die Synthhersteller tun es, selbst ein kleiner MFB Synth konnte das - mit MIDI 1.0.

Also - das wäre aktuell die Lösung, bis MIDI 2.0 Standard in allen Synths ist wird es noch ein bisschen dauern.
 
Und genau so ist das im Digitalen auch. Wenn ein neuer Wert eintrifft, wird der alte als Start hergenommen und der neue als Ziel definiert. Die Überleitung zum Zielwert beginnt sofort und ist nach einer gewissen Zeit abgeschlossen. Das kann im nächsten Sample sein (macht wenig Sinn) oder nach beliebig vielen.

Das alles hilft aber nur gegen Sprünge, denn die Zielwerte umfassen bei 7 bit Controllern ja nur die Werte 0 - 127. Für mehr muss man 14 Bit Controller nutzen (afaik geht das nur über NRPN oder CC 0 bis 31). Pitchbend wird beispielsweise so gesendet (7 Bit MSB, 7 Bit LSB).
Das ist sehr interessant, denn ich versuche einen Mackie C4 zu verstehen. Im Urzustand, direkt nach dem anmachen, habe ich exakt diese CC 0-31 Vergabe an die jeweiligen 32 Encoder. Links oben Null, rechts unten 31. Wenn ich einen Encoder drehe sendet er aber nur 1 (cw) oder 65 (ccw). Was müsste ich tun, um die richtigen Werte zu sehen? Offensichtlich nutzt der Mackie C4 ja 14 Bit Controller, aber mein Midi-Monitor zeigt mir nur 7 Bit Werte an. Vielleicht magst du mal in meinem C4 Thread vorbeischauen, das wäre toll :)
 
Das ist sehr interessant, denn ich versuche einen Mackie C4 zu verstehen. Im Urzustand, direkt nach dem anmachen, habe ich exakt diese CC 0-31 Vergabe an die jeweiligen 32 Encoder. Links oben Null, rechts unten 31. Wenn ich einen Encoder drehe sendet er aber nur 1 (cw) oder 65 (ccw). Was müsste ich tun, um die richtigen Werte zu sehen? Offensichtlich nutzt der Mackie C4 ja 14 Bit Controller, aber mein Midi-Monitor zeigt mir nur 7 Bit Werte an. Vielleicht magst du mal in meinem C4 Thread vorbeischauen, das wäre toll :)


Mit dem Mackie C4 kenne ich mich gar nicht aus. Ich habe vor zwei Jahren noch an einem Synth gebastelt und hatte daher speziell zu Midiauflösung und Datenglättung ein paar praktische Erfahrungen, die ich hier im Thread geteilt habe. Das ist aber alles "Empfängerseite" in C/C++ gewesen. Wie man so etwas an einem Sender - speziell einem Controller nebst Software - einrichtet, weiß ich allerdings nicht. Ich kann nur soviel dazu sagen:

Es gibt zwei Wege, um 14 bit Daten zu senden.

Pitchbend benutzt
  • erstes Byte mit Status "Pitchbend"
  • zweites und drittes Byte Daten
Diese Daten müssen dann mit
C:
int bend_14bit = (data2 << 7) | data1) - 8192;
rekombiniert werden.


Andere Controller arbeiten wie folgt:
  • erstes Byte ist Status "Control Change"
  • zweites Byte ist Message "Type"
  • drittes Byte sind dann die Daten
Somit muss man da zwei Controllermessages nacheinander senden, um 14 bit zu haben. Und der Empfänger muss das dann zu einem Wert rekombinieren. Das ist aber eine Option - kann er das nicht auswerten, nutzt er nur die erste Message.

Ich habe das nur aus der Erinnerung an das Querlesen der Midispezifikation, praktisch habe ich damit nie was gemacht.
 
Ich danke schon mal. Zwei Fragen hätte ich noch.
Warum nutzen 14 Bit Controller NRPN oder CC 0 bis 31? Was ist an den CC 0-31 so besonders?
Du schreibst "rekombiniert" mit dem Beispiel "int bend_14bit = (data2 << 7) | data1) - 8192;".
Ich meine woher weiss der Sender/Empfänger das was kombiniert werden muss?
Wird so eine formel auch über Midi verschickt?
 


News

Zurück
Oben