Home Forums Macros Probleme de synchro avec looper en insert

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #6424
    Stephane LE DROStephane LE DRO
    Participant

    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."
    //
    #6426
    Philippe OllivierPhilippe
    Keymaster

    Salut Stephane,
    Avant de commencer à creuser, les loopers sont en mode free ou en mode synchro?
    Si synchro, ils sont sur quelle carrure?
    Merci,
    Philippe

    #6427
    Stephane LE DROStephane LE DRO
    Participant

    Salut 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.

    #6428
    Philippe OllivierPhilippe
    Keymaster

    Salut,
    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,
    Philippe

    #6429
    Stephane LE DROStephane LE DRO
    Participant

    Salut 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

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.