Cubase Fernbedienungsgeräte

von Armin, 07.08.08.

  1. Armin

    Armin Registrierter Benutzer

    Im Board seit:
    01.11.04
    Zuletzt hier:
    8.05.16
    Beiträge:
    606
    Zustimmungen:
    5
    Kekse:
    30
    Erstellt: 07.08.08   #1
    hallo zusammen

    Vielleicht hat ja schon jemand bei meinen Ideen mitgelesen - ist auch egal, ich schreib einfach alles, was wichtig ist :)

    Und zwar suche ich eine Möglichkeit, dass VST Instrumente beim ProgramChange alle geänderten Einstellungen via Midi raussenden, damit sich meine Controller einstellen können.

    Bisher hat die NI B4 II als einziges PlugIn, das ich kenne die Option "CC Dump on ProgramChange", die genau das tut. Tatsache ist aber, dass man Cubase Controller konfigurieren kann (unter Geräte/Geräte konfigurieren/Fernbedienungsgeräte), bei denen genau das Selbe passiert, ohne dass diese Option explizit eingeschaltet ist.

    Allerdings kann man bei Cubase nicht einstellen, WANN dieser CC Dump passiert - das ist also scheinbar VSTi-Spezifisch (was ich schonmal gar nicht brauchen kann). So tun diverse andere Plugins nichts beim ProgramChange.

    Trotzdem kann Cubase die nötigen Daten auslesen: Wenn man in den Optionen die Controller anders belegt (z.B. der Encoder, der vorher auf CC7 "Volume" war steht halt jetzt auf "Cutoff" oder so), dann werden die Daten über Midi rausgeschickt und der Controller stellt sich ein.
    Was bei Automatisierung passiert habe ich nicht versucht, da ich das Ganze für eine LiveAnwendung ohne Playknopf brauche =)

    also kurzum: nicht jedes Instrument sendet, aber Cubase kann eigentlich jeden Wert abfragen!

    Das Programm VSTHost von www.hermannseib.com kann zu jedem VSTi sogenannte "Flags" auslesen. Dort stehen dann unter "Plugin CanDo" Sachen wie "sendVstEvents", "sendVstMidiEvent", etc. Oder eben nur der entsprechende "receive"-Teil. Könnt ihr euch ja mal ansehen - das Programm ist ganz nett. Ich vermute mal, die oben beschriebenen Fähigkeiten des VSTis hängen mit genau diesen Flags zusammen. Sicher bin ich mir aber nicht.


    Nun zur Frage: Bekomme ich Cubase dazu, entweder in einem festgelegten Zyklus die Einstellungen des VSTis abzufragen und die rauszusenden? Oder noch besser: Bekomme ich dazu, bei gewissen (wählbaren) midievents auf einem Eingangskanal (z.B. ProgramChange oder CC, ...) die Einstellungen eines VSTis abzufragen und rauszusenden an einen beliebigen Midi-Ausgang?

    Findet sich vielleicht unter Midi-Geräte-Verwaltung eine Lösung? Wenn ich meinen Controller nicht als Remote (Fernbedienung) sondern als eigenes Midi-Gerät fahre?
    Ich befürchte nur, dass es dann Probleme mit dem Mapping geht, weil diese Midi-Geräte ja eher als unidirektionale externe Hardware gesehen werden, so wie das aussieht. Will also heißen: Man kanns auf nen midi-Track-Ausgang legen aber Empfangen ist nicht vorgesehen. Außerdem sollte auf dem Ausgang ja eigentlich mein VSTi dann liegen...


    Oder kennt schon jemand eine Lösung? Oder eine Software, die genau das kann?
     
  2. Armin

    Armin Threadersteller Registrierter Benutzer

    Im Board seit:
    01.11.04
    Zuletzt hier:
    8.05.16
    Beiträge:
    606
    Zustimmungen:
    5
    Kekse:
    30
    Erstellt: 11.08.08   #2
    keiner?
     
  3. HaraldS

    HaraldS Mod Emeritus Ex-Moderator

    Im Board seit:
    03.03.05
    Zuletzt hier:
    10.04.14
    Beiträge:
    4.890
    Ort:
    Recklinghausen
    Zustimmungen:
    750
    Kekse:
    29.296
    Erstellt: 11.08.08   #3
    Eine Lösung hab ich nicht, aber ein paar Gedanken dazu.

    Die sauberste Herangehensweise, die dich einer Lösung näherbringen würde, besteht darin, bei www.steinberg.de das VSTi SDK herunterzuladen (Registrierung notwendig). Das ist das einzig "amtliche" Dokument, in dem drinsteht, was VSTis können müssen oder nicht. Wenn da drinsteht, daß sie einen CC dump beherrschen müssen, steht da auch drin, wie du ihn auslösen kannst.

    Andererseits: wenn NI diese Option explizit mit reinprogrammiert hat (und was du beschreibst sieht ja danach aus) ist es unwahrscheinlich, daß der CC dump eine VSTi-Standardfunktion ist. Aber wie gesagt, einzig und allein das VSTi SDK kann darüber Aufschluß geben. Wenn es keine Standardfunktion sein sollte (was ich auf den ersten Blick stark vermute), bleibt dir nur der Weg des Workaround:

    Du mußt alle MIDI-Daten, die du zum VSTi sendest, durch eine andere Software hindurchleiten. Diese andere Software, nennen wir sie mal CC-Watcher (weil ihre Aufgabe ist, die CC-Messages zu registrieren), leitet grundsätzlich alle MIDI-Daten unverändert zum VSTi weiter, speichert aber auf allen 16 Kanälen alle 128 verfügbaren CCs. Das sind 2048 Werte pro MIDI-Port und leicht zu bewältigen. Wenn ein ProgramChange vorbeikommt, sendet die Software alle gespeicherten CC-Werte auf einstellbarem Port und Kanal raus.

    Vielleicht geht das mit Cubase, ich glaube aber eher nicht. Es könnte mit MIDIOX gehen, aber es wäre viel Frickelei und evtl. Script-Programmierung notwendig. MIDIYOKE würdest du vermutlich sowieso brauchen, um die MIDI-Messages innerhalb des Rechners durch den CC-Watcher hindurch zu leiten. Die umfassendste Lösung wäre natürlich, einen CC-Watcher als Standalone-Software zu haben, dann z.B. in Delphi oder C++ programmiert. Auch Java könnte gehen.

    Das wäre eine schöne Aufgabe, um daran Programmieren zu lernen. Ich hab's bei ähnlicher Gelegenheit so gelernt...

    Harald
     
  4. Armin

    Armin Threadersteller Registrierter Benutzer

    Im Board seit:
    01.11.04
    Zuletzt hier:
    8.05.16
    Beiträge:
    606
    Zustimmungen:
    5
    Kekse:
    30
    Erstellt: 11.08.08   #4
    ohmann, als ob das Projekt, das dahinter steht nicht schon aufwändig genug wäre :D

    Nein also erstmal danke für deine Antwort. Die SDK ist vielleicht eine interessante Alternative, an die ich mich bei viel Zeit im Oktober mal wagen könnte.

    Zwecks dem Workaround, den du vorschlägst, muss ich sagen, dass ich ihn entweder nicht verstanden habe oder er nicht das tut, was ich möchte.

    du schlägst vor, ein ProgramChange einfach abzufangen, falls es kommt, und alle bisher eingestellten Werte an den Controller zurückzuschicken. Der Witz wäre allerdings gewesen, dass die neuen Werte, die die Knöpfe und Regler im VSTi _NACH_ dem ProgramChange haben, sofort an den Controller zurückgeschickt werden, um Sprünge in den Sounds zu vermeiden.
    Nur gespeicherte Werte senden genügt also nicht, da die ja nach dem ProgramChange alle nicht mehr aktuell sind...

    ich seh schon, das wird umständlich. Und der Herr Seib von der Website, die ich oben gepostet habe, scheint im Urlaub zu sein :eek:
     
  5. Armin

    Armin Threadersteller Registrierter Benutzer

    Im Board seit:
    01.11.04
    Zuletzt hier:
    8.05.16
    Beiträge:
    606
    Zustimmungen:
    5
    Kekse:
    30
    Erstellt: 27.08.08   #5
    also die VSTi SDK bringt mich leider nicht weiter. Da sind wie erwartet nur Funktionen erläutert, die man benutzen kann, um VSTis zu programmieren. Wenn dann würde ich da eine suchen, die Cubase dazu veranlasst, die Daten per Midi rauszusenden. Und selbst dann hätte ich nichts davon - das Plugin, das ich spielen möchte, müsste die jeweilge Funktion unterstützen.

    Viel besser wäre es, wenn man Cubase dazu bringen könnte, nach bestimmten Kriterien die Plugin-Controller abzufragen und per Midi an die externen Controller rauszuschicken! Dazu in der Lage wäre es ja auf jeden Fall!
    Wo kann ich mich da noch umhören? Mir gehen irgendwie die Ideen aus, gerade.
     
  6. HaraldS

    HaraldS Mod Emeritus Ex-Moderator

    Im Board seit:
    03.03.05
    Zuletzt hier:
    10.04.14
    Beiträge:
    4.890
    Ort:
    Recklinghausen
    Zustimmungen:
    750
    Kekse:
    29.296
    Erstellt: 28.08.08   #6
    Okay, ich hatte dein Anliegen etwas falsch verstanden. Jetzt ist das klarer. Okay, so ein CC-Watcher wie bisher beschrieben wäre eine etwas andere Anwendung, als die, die du suchst. Letztlich bist du voll auf die Funktionen des VSTis angewiesen: wenn es so "kooperativ" programmiert ist wie die NI B4 II hast du Glück, wenn nicht, Pech.

    Du könntest natürlich mit einem CC-Watcher alle Controllereinstellungen beim Soundprogrammieren abfangen und abspeichern - dann würde das VSTi die Controller intern abspeichern und zusätzlich würde der CC-Watcher die Controller als Datensatz in einer eigenen Datei abspeichern und dann an deinen Hardware-Controller senden (nicht an das VSTi wie bisher vorgeschlagen). Das würde dein Problem lösen, wäre aber sehr aufwändig. Außerdem müßtest du das Soundprogrammieren dann ausschließlich via MIDI-Controller und z.B. nicht mehr mit der Maus am Bildschirm machen.

    Ehrlich gesagt glaube ich nicht ganz, daß Cubase bei jedem VSTi die Controller abfragen kann. Ich bin gerade nicht im Studio, kann's nicht ausprobieren, außerdem verwende ich genau ein einziges VSTi (die VSL), das wird sowieso nicht repräsentativ... Kannst du die Vorgehensweise zum Controller-Auslesen nochmal genau beschreiben? Aus deinem ersten Posting erkenne ich nicht genau, was du gemacht hast.

    Was sagt denn das VST SDK zum Thema Controller auslesen? Kannst du deine Vorgehensweise zum Controller-Auslesen in Cubase durch die Funktionen des SDKs nachvollziehen, sodaß es z.B. eine SendController-Funktion o.ä. gibt, die bei Controller-Umbelegung den alten Wert sendet? Nur wenn es so eine Funktion im SDK gibt, ist das eine belastbare Vorgehensweise, die den weiteren Ausbau lohnt.

    Harald
     
  7. Armin

    Armin Threadersteller Registrierter Benutzer

    Im Board seit:
    01.11.04
    Zuletzt hier:
    8.05.16
    Beiträge:
    606
    Zustimmungen:
    5
    Kekse:
    30
    Erstellt: 28.08.08   #7
    ui da benutzt jemand die VSL :) das ist mir dann doch irgendwie zu geldbeutelfeindlich...
    Wobei es die ja auch angeblich in kleinen Stücken gibt, aber das hat uns der Typ beim Vortrag irgendwie nicht so verständlich rübergebracht. okay egal, also:

    Das mit dem extra Programm zur Preset-Speicherung hab ich auch schon mal überlegt - wird aber von der Benutzung her umständlich. Eine Notlösung ist keine Lösung.
    Im Kontextmenü unter Geräte/Geräte konfigurieren lässt sich ein "Generischer Controller" als Fernbedienungsgerät hinzufügen. Das hast du vllt schonmal gemacht - sollte auf jeden Fall keines von den Presets sein - beim Generischen Controller kann man alles von Grund auf konfigurieren.
    Wenn du ihn jetzt anklickst, ist das Fenster zweigeteilt (neben MIDI I/O, die du oben wählen kannst).
    Zwei Listen lassen es zu, bestimmte Midi Ereignisse mit sogenannten Steuerelementen und bestimmte Programmfunktionen mit diesen Steuerelementen zu koppeln. In der oberen Liste Richtest du deinen Fader ein, der Daten von Motorfadern, Drehencodern, oder was auch immer du hast empfängt und an sie sendet. Dazu muss man bei den Flags "E" und "Ü" aktivieren (Englische Version vermutlich "R" und "T").
    Jetzt kann man dieses "Fader"-Steuerelement mit einer Programmfunktion kopplen.
    Gerät: dein bereits geladenes VSTi, den Rest musst du dir aussuchen.
    Bei mir war es so, dass meine Motorfader bei ein VSTi, dass dies eigentlich nicht unterstützt, hier bei jedem Wechsel der Einträge mitgefahren ist. Also wenn ich von "Volume" auf "Pan", "Cutoff",... umgeschalten habe, wurden die Daten rausgeschickt.

    ich fand die SDK nur bedingt brauchbar. Ich habe mich auf die CanDo-Flags konzentriert. Dabei gings darum, welche fähigkeiten ein Plugin haben kann. Die B4 II hatte z.b. "sendVstEvents" und "sendVstMidiEvents". Beide fehlten den anderen VSTis, mit denen ich meine oben beschriebenen Versuche gemacht habe. Trotzdem konnten die Parameter _ausgelesen_ werden (aktiv von Cubase) - sie wurden nur nicht selbständig _gesendet_ (Cubase passiv und wartet). Das ist meine Interpretation.

    Wie das SDK-seitig funktioniert: ob "VSTi schickt Daten", "Host requestet Daten", oder "Host greift direkt auf Werte zu" habe ich nicht rauslesen können aus der SDK - dazu müsste man sich wohl recht lange damit beschäftigen.
    Wie gesagt meine Vermutung: Standardmäßig tut Cubase nichts und wartet auf die "sends", was aber nur wenige Plugins unterstützen. Trotzdem könnte Cubase alles auslesen. Ist vielleicht bei einer neueren Version anders
    Ich hätte kein Problem mit SW-Umstieg, so lange ich das auf einem Windows System laufen lassen kann. Logic kann das übrigens angelich -.- habe ich aber noch nicht überprüft
     
Die Seite wird geladen...

mapping