- This topic has 4 replies, 2 voices, and was last updated 7 months, 3 weeks ago by Stephane LE DRO.
-
AuthorPosts
-
26 March 2024 at 20 h 50 min #6424Stephane LE DROParticipant
Salut Philippe,
Je rencontre un problème de synchronisation de métronome avec une macro. Je souhaite enregistrer successivement dans 2 Loopers (en insert) puis rejouer chaque piste un certain nombre de fois et passer de l’une à l’autre. La lecture se décale ( de 4 temps ) et je ne comprends pas pourquoi, je m’y prends peut-être mal. Merci beaucoup pour ton aide.
Voici ma macro ( j’ai mis plein de pauses un peu partout, c’est un peu dégueu ) ://********************************************************************************* // recording successively into several loopers //********************************************************************************* MetroActivateEvents true // activate events on metronome InsertSendMessage fx1 1 Synchro 16 beats // InsertSendMessage fx2 1 Synchro 16 beats // If {$Looper_fx1_rank1_Mute_state$ >= 2} InsertSendMessage fx1 1 Mute // demute EndIf If {$Looper_fx2_rank1_Mute_state$ >= 2} InsertSendMessage fx2 1 Mute // demute EndIf Post { "recording on fx1 looper ..."} InsertSendMessage fx1 1 Record // start recording in fx looper 1 WaitDuration 80 // synchro WaitUserAction WaitDuration 80 // synchro InsertSendMessage fx1 1 Play // stop recording in fx looper 1 InsertSendMessage fx1 1 Mute // mute fx looper 1 Post { "recording on fx2 looper ..."} InsertSendMessage fx2 1 Record // start recording in fx looper 2 WaitDuration 80 // synchro WaitUserAction // wait for end of record Post { "STOP recording on fx2 looper"} InsertSendMessage fx2 1 Play // stop recording in fx looper 2 Post { "current beat "+ $metro_current_beat$} InsertSendMessage fx2 1 Mute // mute fx looper 2 Post { "mute fx looper 2"} Post { "unmute fx looper 1"} InsertSendMessage fx1 1 Mute // unmute fx looper 1 WaitDuration 80 // synchro Declare int $a$ = 0 // Now we will play loops to fit song size // A A B A DoRepeat Post { "WaitMetroNextBarStart playing A"} WaitMetroBeat 1 //WaitMetroNextBarStart // playing A Post { "WaitMetroNextBarStart still playing A"} WaitMetroBeat 1 //WaitMetroNextBarStart // playing A InsertSendMessage fx2 1 Play InsertSendMessage fx1 1 Mute WaitDuration 80 // synchro Post { "WaitMetroNextBarStart playing B"} // <============== ici, il se passe 4 temps avant que la boucle en fx2 ne se lance WaitDuration 80 // synchro WaitMetroBeat 1 //WaitMetroNextBarStart // playing B InsertSendMessage fx2 1 Mute // InsertSendMessage fx1 1 Play // WaitMetroBeat 1 //WaitMetroNextBarStart // playing A Set $a$ = { $a$ + 1 } While { $a$ <= 4 } Message "End of macro." //
27 March 2024 at 10 h 03 min #6426PhilippeKeymasterSalut Stephane,
Avant de commencer à creuser, les loopers sont en mode free ou en mode synchro?
Si synchro, ils sont sur quelle carrure?
Merci,
Philippe27 March 2024 at 11 h 06 min #6427Stephane LE DROParticipantSalut Philippe,
Les 2 loopers sont en mode synchro, avec carrure sur 16 temps (et demarrage sur mesure suivante activé)
Le metronome est en mode auto start slave sur 16 temps aussi.29 March 2024 at 21 h 55 min #6428PhilippeKeymasterSalut,
C’est un cas un peu coriace et j’ai l’impression qu’il y a un truc qui n’est pas très évident, mais c’est toujours un peu compliqué de faire avec deux asservissements au métronome : celui de la macro et celui du looper.Concernant ta macro, le souci est que si tu demandes une action sur le premier temps et que le looper est asservi au premier temps du métronome, lorsque le signal de Mute ou Play arrive, c’est déjà trop tard… Il est donc préférable de lancer l’action à partir du seizième temps, ainsi, le démarrage de la lecture aura bien lieu sur le premier temps de la mesure…
Toutefois, cette histoire de 4 temps soulève une question : j’ai l’impression qu’il y a un bug quelque part, mais je n’arrive pas à le cerner, donc difficile d’en dire plus pour le moment.
La macro devient donc :
MetroActivateEvents true // activate events on metronome
WaitMetroBeat 16 //WaitMetroNextBarStart // playing A
InsertSendMessage fx1 1 Play// Now we will play loops to fit song size
// A A B A
DoRepeat
Post { “WaitMetroNextBarStart playing A”}
WaitMetroBeat 1 //WaitMetroNextBarStart // playing A
Post { “WaitMetroNextBarStart still playing A”}
WaitMetroBeat 16 //WaitMetroNextBarStart // playing A
InsertSendMessage fx2 1 Play
InsertSendMessage fx1 1 Mute
WaitMetroBeat 1
//WaitDuration 80 // synchro
Post { “WaitMetroNextBarStart playing B”} // <============== ici, il se passe 4 temps avant que la boucle en fx2 ne se lance //WaitDuration 80 // synchro WaitMetroBeat 16 //WaitMetroNextBarStart // playing B InsertSendMessage fx2 1 Mute // InsertSendMessage fx1 1 Play // WaitMetroBeat 1 //WaitMetroNextBarStart // playing A While { true }Si tu souhaites que ta macro fonctionne, quel que soit le nombre de temps par mesure, tu peux mettre :
WaitMetroBeat $metro_bar_beats$
à la place de :
WaitMetroBeat 16
J’enlève les WaitDuration qui sont toujours un peu bizarres…
J’ai l’impression qu’avec ces modifications, ça fonctionne, dis-moi ce que tu en penses.
Bonne soirée,
Philippe30 March 2024 at 12 h 45 min #6429Stephane LE DROParticipantSalut Philippe,
Merci! ça fonctionne très bien maintenant avec tes correctifs 🙂
Effectivement j’utilisais mal la gestion des temps du métronome.
A bientôt,
Stéphane -
AuthorPosts
- You must be logged in to reply to this topic.