Home Forums Macros During et InsertSendMessage Reply To: During et InsertSendMessage

#6441
Philippe OllivierPhilippe
Keymaster

Salut Morgan,
Effectivement l’absence de fonction During pour les messages vers les inserts est dommage.
Peut-être qu’un jour nous disposerons d’une solution simple, mais pour l’instant, il n’y a pas d’autre solution que de faire sa propre routine.
Routine que tu peux déporter dans un slot macro spécifique qui gérera tous tes cas de during spécifiques.

Voici une autre proposition de macro pour faire un during, note qu’elle est encore plus longue que la tienne !

//***********************************************************************************
// Set the total duration of the value change
Declare Local int $duration_ms$ = 1000

// Set the start and end value
Declare Local float $startValue$ = 0
Declare Local float $endValue$ = 1

Declare Local int $steps$ = 100
Declare Local float $incrementDuration$ = 0
Declare Local float $targetValue$ = $startValue$
Declare Local float $increment$ = {($endValue$ – $targetValue$) / $steps$}

// calculate the number of needed steps for the current increment
$steps$ = {($endValue$ – $startValue$) / $increment$}
//Post $steps$

Declare Local int $startClock$ = {monotonic_ms()}

DoRepeat
$increment$ = {($endValue$ – $targetValue$) / $steps$}
$incrementDuration$ = { ($startClock$ + $duration_ms$ – monotonic_ms())/ $steps$ }

// Current step value calculation
$targetValue$ = {min($endValue$,$targetValue$ + $increment$)}

//******************** Put the destination here ********************
InsertSendMessage fx1 1 SpeedFloat $targetValue$

WaitDuration {$incrementDuration$}

$steps$ = {$steps$ – 1 }
While {$targetValue$ < $endValue$} //Post {monotonic_ms() - $startClock$} //***********************************************************************************