FX spread?

Ansicht von 4 Antwort-Themen
  • Autor
    Beiträge
    • #216182
      who-be
      Teilnehmer

      hallo,

      ich moechte gerne macroseitig mit SetFx() effekte laden,
      ist es moeglich diese zu spreizen?

      thank u da who

    • #226088
      van.beeck
      Teilnehmer

      Juhu Da Who Be,

      geht schon, wenn Du den Weg über eine Programmschleife wählst.
      Ein kommentiertes Makro habe ich mal unten angefügt.

      Grüße

      Philipp

      Da das Forum leider die lästige Eigenart hat, alle Einrückungen zu verwerfen, habe ich das Makro auch noch mal als Datei angehängt.

      //Spread Fx Example

      // Declare a set of variables
      int k, width;
      int fspeed, fsize, foffset, fratio;
      // Empty the Programmer View
      proClear();
      // Loop with k running from 0 through width-1
      width=20;

      for (k=0; k<width; ++k)
      {
      // Deselect all fixtures in the Programmer View
      proSelectOut();
      // Select one fixture from the first fixture group
      proSelectSingle(0,k+1);
      // Set the base position to 50% (65535/2)
      SetPosition(32767);
      // Calculate a effect
      fsize =2048;
      fspeed =100;
      fratio =2048;
      // Spreading offset from 0 to 100%
      // IMPORTANT: First muliply by k, THEN divide by the number of fixtures

      foffset =(1000*k)/width;

      SetFx(1, fsize,fspeed,foffset,fratio);
      // Load the effect to the first fixture channel of the currently
      // selected fixture
      proLoadValue(0);
      }

    • #226089
      who-be
      Teilnehmer

      …dankeschoen,

      ich hatte allerdings gehofft, es gaebe eine moeglichkeit, ohne den programmermodus zu beeinflussen

      da who

    • #226090
      van.beeck
      Teilnehmer

      Man kann nicht nur den ProgrammerView durch ein Makro beeinflussen, sondern auch in den "Cuelist-Playback-Status" eingreifen.

      Zuerst brauche ich das sogenannte Handle von einer bereits laufenden Cueliste (Kommando GetCuelistHandle()).

      Dann muss ich noch genau wissen, welchen Programmer-internen DeskChannel ich verändern möchte (Kommandos GetFixtureTypeId() und GetDeskChannel())

      Wenn ich das alles zusammen habe, kann ich wie oben mittels der Kommandos SetPosition() und SetFx() bzw. ClearFx() einen Effekt erzeugen.

      Diesen kann ich dann mit LoadValue() auf den Lampenkanal laden. Dabei kann ich sogar eine Verzögerungsdauer und eine Ãœberblendzeit mit angeben.

      Beispiel:
      int handle, type_id, channel_id;

      // Handle von Cueliste 1 besorgen.
      // Am einfachsten ist es, wenn Cuelist 1 nur eine einzige leere Cue mit Modus MANUAL enthält.
      If (GetCurrentCue(0)<0)
      StartCuelist(0);
      handle=GetCuelistHandle(0);

      // Den richtigen Deskchannel für den ersten RGB Fader finden.
      type_id=GetFixtureTypeId("RGB Fader");
      channel_id=GetDeskChannel(type_id,0);

      // Einen Effekt erzeugen
      SetPosition(32767);
      SetFx(1,2048,100,0,2048);

      // Den Effekt ohne Ãœberblendung und Delay auf den blauen Kanal laden
      LoadValue(handle, channel_id, 0,0, 1);

      //——————————

      Philipp

    • #226091
      who-be
      Teilnehmer

      glassklar…so brauche ich das, habe zwar aehnlich rumprobiert…gut

      danke

Ansicht von 4 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.