Home Forums Macros Trim Main Looper/Insert Looper start and end point (not by selection) Reply To: Trim Main Looper/Insert Looper start and end point (not by selection)

#6379
Stephane LE DROStephane LE DRO
Participant

Bonjour Philippe,

Merci pour ta réponse. Effectivement ton script fonctionne chez moi aussi. La différence avec le mien était simplement dans les valeurs choisies pour $selectionBeginPosition$ et $selectionEndPosition$. Par exemple, si j’utilisais la valeur 0 pour begin ça ne fonctionnait pas. J’ai investigué et j’ai remarqué qu’il y avait un décalage entre les valeurs affichées de $selectionBeginSelection$ et $selectionEndPosition$ et la sélection réelle dans la loop (tu devrais constater le même décalage chez toi) . Presque par hasard j’ai trouvé ce rapport :

$realBeginning =  $selectionEndPosition$ - $selectionBeginSelection$
$realEnding =  $selectionEndPosition$ + $selectionBeginSelection$ 

Du coup j’ai réécrit un script et maintenant ça fonctionne bien chez moi, je peux sélectionner la bonne partie de la boucle et la recopier dans le second looper:

//******************************** Copy and Paste a selection to a second looper *********************************
Declare Local Once int $selectionBeginPosition$ = 0
Declare Local Once int $selectionEndPosition$ = 0

Declare Local Once int $numberOfBeats$ = 8 // for example we divide loop in 8 equal parts
Declare Local Once int $stepLengthInSample$ = {$Looper_fx1_rank1_current_length$ / $numberOfBeats$}
Declare Local Once int $beginningBeat$ = 2 // We want to start selection at beat 2
Declare Local Once int $endingBeat$ = 4 // We want to stop selection at end of beat 4

//------- calculate  $selectionBeginPosition$ and $selectionEndPosition$ -----
// realBegin = (beginningBeat-1) * stepLengthInSample
// realEnd = endingBeat * stepLengthInSample
// selectionEndPosition = (realBegin + realEnd ) /2 = ((beginningBeat-1) + endingBeat) * stepLengthInSample / 2
// selectionBeginPosition = (realEnd - realBegin ) / 2 = (endingBeat - (beginningBeat-1)) * stepLengthInSample / 2

$selectionBeginPosition$ = {(($endingBeat$) - ($beginningBeat$-1) ) * $stepLengthInSample$ / 2}
$selectionEndPosition$ = {(($beginningBeat$-1) + ($endingBeat$) ) * $stepLengthInSample$ / 2}

InsertSendMessage fx1 1 SelectionIn $selectionBeginPosition$
InsertSendMessage fx1 1 SelectionOut $selectionEndPosition$

WaitDuration 10

// Copy your selection
InsertSendMessage fx1 1 AudioMessages Copy

WaitDuration 200
// Paste your selection and this will replace
// the content of the looper by you selection
InsertSendMessage fx2 1 AudioMessages Paste
InsertSendMessage fx1 1 SelectionReset

Stéphane