Effekte Zähler Beats bei Start nicht null

Alles was nicht direkt mit dem normalen Verhalten des PC_DIMMERs zu tun hat
Antworten
dg3nec

Effekte Zähler Beats bei Start nicht null

Beitrag von dg3nec »

Hallo,

ich habe gerade einen Effekt erzeugt in dem Andere Effekte gestartet werden. Hierbei sind im Ursprungs-Effekt Schritte, die z.B. 3 Beats warten.
Dann wunderte ich mich dass beim Starten die Sub-Effekte etwas zu früh kommen teilweise.

Folgende Vermutung habe ich die dies erklären könnte.
Wird ein Effekt gestoppt und später wieder gestartet fangen die Beatzähler NICHT bei Null an. Sonder haben den Wert, den sie beim Stopp eben hatten.

So schaut es jedenfalls für mich aus.

Weiterhin viel im Effektsequenzer auf dass man einen Schritt zwar nach oben verschieben kann, dies jedoch nicht dargestellt wird. Erst wenn man den Effektsequenzer schließt und erneut öffnet sieht man den verschobenen Schritt wirklich verschoben.

Grüßli
Benutzeravatar
Christian
PC_DIMMER-Entwickler
Beiträge: 1856
Registriert: 12.11.2007, 09:30
Wohnort: Knw.-Remsfeld
Kontaktdaten:

Re: Effekte Zähler Beats bei Start nicht null

Beitrag von Christian »

Hi,

zu erster Frage: jedem Effekt kann man rechts oben vorgeben, dass er "immer bei Schritt 1" beginnen soll.

zu zweitem Problem: kann ich jetzt gerade nichts zu sagen. Ist mir bislang nicht aufgefallen. Kannst Du das noch einmal testen?

viele Grüße,
Christian
Ingo
< PC_DIMMER >
Beiträge: 544
Registriert: 19.03.2009, 17:49
Wohnort: Bad Hersfeld bzw. Stuttgart

Re: Effekte Zähler Beats bei Start nicht null

Beitrag von Ingo »

Hi Chris,

1. er meint damit sicherlich, dass du in PC_DIMMER.pas in StarteEffekt

Code: Alles auswählen

AktuellerEffekt[i].AnzahlBeats:=0;
hinzufügen solltest ;)
2. ich kanns nicht reproduzieren, aber ich erinnere mich an das selbe Problem...

Grüße,
Ingo
dg3nec

Re: Effekte Zähler Beats bei Start nicht null

Beitrag von dg3nec »

OK, ich glaube zwar das Ingo auf der richtigen Spur ist, trotzdem ein Beispiel um es klarer zu machen.

Code: Alles auswählen

Effekt Beispiel1 (Aufsteigend abspielen, beginne bei step 1, unendlich wiederholen){ 
  - call effekt "Sub1a" (Zeit=3 Beats)
  - call effekt "Sub1b" (Zeit=3 Beats)
]

Effekt Sub1a (Aufsteigend abspielen, begin bei step 1, einmal durchlaufen){
  - PAR1 = Rot (Zeit=1 Beat)
  - PAR2 = Rot (Zeit=1 Beat)
  - PAR3 = Rot (Zeit=1 Beat)
}

Effekt Sub1b (Aufsteigend abspielen, begin bei step 1, einmal durchlaufen){
  - PAR4 = Rot (Zeit=1 Beat)
  - PAR3 = Rot (Zeit=1 Beat)
  - PAR2 = Rot (Zeit=1 Beat)
}
Wenn man nun Effekt Beipiel1 stoppt während er gerader "Sub1a" aufgerufen hat und 1 Beat vorüber ist, paassiert es beim nächsten Start von "Beipiel1" das "Sub1b" zu früh aufgerufen wird. Das liegt eben meiner Meinung nach daran, dass der Speicher für die Zählung der Beats von "Sub1a" in "Beispiel1" eben NICHT beim starten des Effekts sauber initialisiert wird. Also den Wert vom letzen Lauf des Effekts noch "gespeichert" hat in der Variable.
Dies renkt sich zwar in diesem Beispiel, da einmal 6 Beats lang und die Subs nur 3 Beats, nach einem Durchlauf ein, aber es gibt halt unschöne Effektstarts. Weiterhin dann bei komplizierteren Verschachtelungen dass es eben nicht mehr sauber läuft. Weil eben die Subs dann unsynchron sind.

Ich hoffe es ist klarer.


Zu Punkt zwei mache ich wohl Besser einen seperaten Thread auf wenn es recht ist.
Antworten