MIDI-Lautstärkepegel und Expression-Interaktion

Ich kann die Beziehung zwischen der MIDI-Controller-Nachricht 0x07 (Gesamtlautstärkekanal) und der MIDI-Controller-Nachricht 0x0B (Ausdruckslautstärke) nicht verstehen. Ich sehe, dass letzteres für Crescendo und Diminuendo verwendet werden kann, aber da es Werte von 0 bis 127 hat, was ist der Standardwert und wie sind diese Werte relativ zu den ersteren?

Nehmen wir an, ich fixiere die Lautstärke für Kanal 1 bis 100 mit einem CC 0x07 am Anfang und ändere sie nie. Wie implementiere ich ein Diminuendo, indem ich regelmäßig CC 0x0B-Nachrichten sende? Was ist der erste Wert von CC 0x0B, den ich senden sollte? 100 oder 127, vorausgesetzt, der Ausdruck ist ein Prozentsatz des Volumens? Und was ist, wenn ich stattdessen ein Crescendo machen möchte?

Antworten (3)

Aus dem GM2-Standard:


3.3.6 Ausdruck (cc#11) Standardwert: 127 (7FH) [...] Ändert die durch Channel Volume (cc#7) eingestellte Lautstärke auf dem angegebenen Kanal.

Hinweis: Expression (cc#11) und Channel Volume (cc#7) werden für unterschiedliche Zwecke verwendet. Kanallautstärke (cc#7) sollte verwendet werden, um die Gesamtlautstärke des Kanals vor der Wiedergabe von Musikdaten sowie für Bewegungen im Mixdown-Fader-Stil einzustellen, während Expression (cc#11) während der Musikdatenwiedergabe verwendet werden sollte, um die Lautstärke zu dämpfen programmierte MIDI-Lautstärkedaten (cc#7), wodurch Diminuendos und Crescendos erzeugt werden. Dies ermöglicht einem Zuhörer im Nachhinein, die relative Mischung von Instrumenten anzupassen, ohne den dynamischen Ausdruck dieses Instruments zu zerstören.

Die verwendete Formel lautet:

Verstärkung in dB = (40 * log10(cc7/127)) + (40 * log10(cc11/127))


Also: Wenn Sie eine beliebige Dynamik pro Instrument verwenden möchten , entspricht der Standard-Controller-Wert von 7f fffffff (oder wie auch immer Sie die lauteste Möglichkeit nennen möchten: Ich war einfach zu sehr in Versuchung und musste 7f in sieben fs übersetzen), und Sie müssen wahrscheinlich sofort mit etwas Kleinerem beginnen.

Ich glaube, ich habe es. Nehmen wir an, die erste Note eines Crescendos hat eine "p"-Velocity und die letzte eine "mf"-Velocity. Und ich habe numerische Werte für p und mf eingestellt und p ist die niedrigste Geschwindigkeit, die ich im ganzen Song für Anfangsnoten unter der Crescendo-Gabelung habe. Ich setze cc11 am Anfang des Songs auf den gleichen Wert von p und ändere ihn allmählich, so dass er am Ende einer Haarnadel den gleichen Wert der Geschwindigkeit der letzten Note unter der Haarnadel erhält. Habe ich recht? Ich brauche dieses Crescendo-Diminuendo-Zeug wirklich, um eine echte Geige mit MIDI besser zu simulieren. Für Piano-Crescendos verwende ich nur Velocity-Werte.
Verwechseln Sie den Ausdruck nicht mit „härter oder weicher spielen“ (am Telefon, wird später konkretisiert)
Selbst auf den einfachsten Sample-Wiedergabegeräten ['Romplern'] wird ein härteres Spielen [höhere Geschwindigkeit] zumindest die Filter öffnen und den Klang heller machen, als grobe Annäherung an das, was ein echtes akustisches Instrument tut. Erhöhen der Lautstärke durch cc7 oder 11 wird nicht; es wird nur lauter.
In traditioneller Musiknotation gibt es auf der ersten und letzten Note jeder Haarnadel eine dynamische Angabe wie mf, p, f, mp usw. Sie machen zB ein Crescendo von p zu mf, das sich über mehr als zwei Noten erstreckt. Das versuche ich in MIDI zu tun.
dann müssen Sie es wahrscheinlich per Velocity machen [oder, wenn Sie Glück haben] können einige High-End-Sampler der Geigenfamilie das Modulationsrad zum Beispiel als separate Dynamiksteuerung verwenden. Sie müssen mit Ihrem speziellen Instrument experimentieren. Wenn Ausdruck nicht zumindest speziell mit den Filtern verknüpft ist, wäre es so, als würde man eine Aufnahme einer echten Geige aufdrehen - es würde den Spieler nicht härter spielen lassen.

Die eigentliche Antwort finden Sie in den Dokumenten, die Sie unter https://www.midi.org/specifications/item/general-midi-2 herunterladen können

Die Lautstärke (7) ist standardmäßig auf 100 eingestellt, sodass Sie sie etwas erhöhen können. Ausdruck (11) ist standardmäßig 127.

Volume sollte einmal am Anfang des Tracks/Kanals verwendet werden, um die Gesamtlautstärke einzustellen. Expression sollte der kontinuierliche Controller für das Mischen sein, um Crescendo/Diminuendo zu erzeugen (falls dies nicht in die Notengeschwindigkeiten integriert ist). Es gibt einen Standard dafür, wie sie zusammenarbeiten, aber ich würde mich nicht darauf verlassen, da nicht jeder Synthesizer nach diesem Algorithmus reagiert. Besonders die älteren Hardware-Synthesizer, die möglicherweise nicht einmal auf 7, 11 oder die Master-Lautstärke reagieren.

Zusammenfassend ist Midi der verworrenste, überarbeitete Mülleimer von sooo kaaalliertem Standard-SSS, der mir je begegnet ist. Nur wenige Hersteller halten sich genau daran. Seien Sie also bereit, mit der Midi-Datei, die Sie haben, komplett herumzuspielen, um den Synthesizer zu bekommen, den Sie brauchen, um das Richtige zu tun. Aber gut, das ist der einzige "Standard", den ich kenne. Und niemand hat versucht, einen besseren zu machen. Midi ist ein kleiner Segen und ein großer Fluch.

Es stellte sich heraus, dass mein Yamaha-Keyboard CC11 unterstützt, aber die Violinstimme wird besser ein- und ausgeblendet, wenn ich die Lautstärke des CC7-Kanals kontinuierlich erhöhe/verringere, also werde ich das tun. Ich stimme zu, dass der MIDI-Standard HTML sehr ähnlich ist ... denke, Yamaha verwendet MIDI nicht als internes Speicherformat, sondern sein eigenes proprietäres Format, das alle Synthesizer-Funktionen unterstützt.

Eine hastig konstruierte Antwort ...

Die beiden sind separate Werte, beide sind standardmäßig auf 127 eingestellt. Wenn Sie einen von
beiden einstellen, wird die Lautstärke auf unter 127 reduziert
. 127 auf beiden ist „maximale Lautstärke“, alles andere ist eine Reduzierung, kann aber je nach Gerät als „Kanal“ oder „Bus“ betrachtet werden , was sich auf Pre/Post-Sends auswirkt.

Master vol bei 100 & Expression bei 120 ist dasselbe wie Master bei 120 & Expression bei 100, also sind sie realistisch austauschbar.

Einige Maschinen reagieren intern so, als wären sie tatsächlich derselbe Controller, andere können Overdrive oder andere Plugin-Einstellungen beeinflussen, als wäre einer ein Kanal und der andere eine Master-Steuerung - empirisch ist die einzige Möglichkeit zum Testen.

[Vorbehalt – das war früher meine Stärke, aber ich bin seit 17 Jahren nicht mehr im Geschäft]

& da meine Antwort und die von user38161 innerhalb von Sekunden gepostet wurden - nichts in seiner Antwort ist falsch und seine ist die bessere technische Erklärung, aber verschiedene Hersteller gehen unterschiedlich mit der tatsächlichen Signalkette um]

Ich bin mir ziemlich sicher, dass der Standardwert für den Ausdruck 100 ist ...
Bedeutet dies, wenn ich CC Nr. 7 einstelle und CC Nr. 11 für Dynamik verwenden möchte, muss ich auch CC Nr. 11 einstellen? Wenn z. B. CC#7 100 ist und ich CC#11 auf 127 belasse (als Standardwert gemäß den Spezifikationen), kann ich kein Crescendo implementieren, weil ich CC#11 nicht höher machen kann, sondern nur niedriger, um a zu machen diminuendo. Sollte ich CC#11 immer auf 127/2~63 stellen, um sowohl Crescendo als auch Diminuendo spielen zu können?
@StephenHazel - Sie haben vielleicht Recht, aber ich habe so viel Dokumentation durchforstet, wie ich finden kann, und kann tatsächlich nirgendwo darauf verweisen sehen [dh ich finde nicht nur keine widersprüchlichen Informationen, sondern überhaupt keine Informationen zu einem Standard]. Wenn Sie ein offizielles Zitat finden, nehme ich es gerne in die Antwort auf :)
Ich hatte es rückwärts. volume(7) ist 100. expression (11) ist 127. Gemäß dem Dokument, das Sie hier herunterladen können: midi.org/specifications/item/general-midi-2