Home › Forums › Macros › MAJ macros au passage à Logelloop 5.5 › Reply To: MAJ macros au passage à Logelloop 5.5
Salut Christophe
Je voudrais nommer un preset de slicer “truc+la date”. J’essaie d’utiliser la fonction now.
J’ai écrit ça : SlicerPresetStore { “truc-$now$” } mais ça ne fonctionne pas, dans le sens où now ne correspond pas à la date, j’obtiens un preset nommé truc-$now$ Pourtant dans une autre macro j’utilise CopyToFile @ “ply-$now$” et là, j’ai bien la date. Qu’est ce que je ne fais pas bien ?
En fait, tu détournes une très ancienne fonction de Logelloop (probablement antérieure à Logelloop 1) qui avait la mauvaise idée d’utiliser une variable dans un contexte précis. En l’occurrence, CopyToFile @ “ply permet d’utilise $now$, mais ça ne fonctionnera pas dans les autres cas.
Pour faire ce que tu veux faire, il faut aller dans le référence guide des macros, dans la catégorie Expression and functions, et là, tu trouveras toutes sortes d’expressions qui te renvoient le temps : now(), monotonic_ms(), hour() et hourstamp().
Et dans le cas présent, tu utiliseras now(), dans l’expression suivante :
SlicerPresetStore {“truc-” + now()}
Dans une autre macro, j’ai ça :
During {samples2ms($BabylooperA_2_lfx_current_length$)} Reach -76 TrackVolume trk1
qui fonctionne très bien mais j’ai ce message d’erreur :
[Macro, Avertissement] Variable $BabylooperA_2_lfx_current_length$ is unknown, guess its type will be: int with default value of 0
alors que j’ai bien quelque chose d’enregistré dans le babylooper et que je peux voir sa durée dans la table des variables macros.
Donc, je rappelle, une fois de plus que bblooper n’est plus officiellement supporté et qu’il pourrait disparaître sans crier gare.
Note que Looper apporte tellement de fonctions utiles et que ton mac est si puissant que deux loopers remplaceront allègrement un bblooper…
Note également que les LFX (hors inserts) ne sont plus supportés, seuls les SFX et les inserts sont supportés dans les nouveaux projets.
je ne peux pas dans mes projets actuels charger un LFX pour faire le test, mais je pense que la solution est la suivante, tu ajoutes la ligne :
Declare int $BabylooperA_2_lfx_current_length$ = 0
En haut de ta macro.
Ce qui est nouveau, c’est que depuis un certain temps (je ne sais plus quand), nous avons rendu obligatoire la déclaration de variables avant leur utilisation. Les variables internes sont auto déclarées donc, fonctionnent sans message d’erreur, cela n’est pas le cas des babyloopers et des LFX car ils n’ont pas fait l’objet d’une mise à jour.
Autre message
J’utilise ceci
During 10000 Reach 0 SFXController sfx_2_ctrl_1 (qui fonctionne)
et j’ai le message suivant
Warning : listener not enabled/disabled for reaction SFXController_sfx_2_ctrl_1. Use messages setStateEnable/setStateDisable to change the reaction listener state.
Qu’est ce que ça veut dire ?
C’est un oubli de ma part, un message d’erreur qui est surtout là pour nous signifier que l’on a oublié de faire quelque chose…
C’est corrigé pour la prochaine livraison, merci de l’avoir repéré, celui-là ! -)
Dans deux presets, j’ai ces messages :
Adding doc for controller to [MidiInsert type:Track; track=trk5; rank:2; cmd:2] [B_Speed] but a doc already exists: [Speed B]
Adding doc for controller to [MidiInsert type:Track; track=trk5; rank:2; cmd:1] [A_Speed] but a doc already exists: [Speed A]
C’est à chaque fois un babylooper en insert.
Qu’est ce que ça veut dire ?
C’est un petit message sans importance pour te rappeler que ça n’est pas chic de continuer à utiliser les bbloopers… -)
En vrai, c’est une erreur qui nous concerne et pas l’utilisateur, pour nous rappeler qu’il y a une opération de construction de la doc qui est faite deux fois… Rien de grave, mais je note de le corriger dès que possible. Là, maintenant, je n’arrive pas à trouver la cause de cette erreur…
Dans une macro, j’ai quelque chose comme ça :
InsertCommand trk5 2 3
InsertCommand trk5 2 7
InsertSendMessage in1 2 Select 0
InsertSendMessage sfx 1 Select 0
TrackVolume in1 = 0
MessageMain “Attend la fin du 58 1”
Sleep 200
// Passage à Lulu 2
PresetNextet un message dans la console max :
** Error for MacroActionListener InsertSendMessage_in1_2, action listener not found
ERROR : no listener found for action InsertSendMessage_in1_2Est-ce que ça serait parce que le changement de preset se fait avant que la commande InsertSendMessage in1 2 Select 0 ait été effectuée ? et qu’il faudrait donc que je rallonge le Sleep ? Pas très logique, si sur ma vielle bécane Logelloop avait le temps de faire la manip, pourquoi ne l’aurait-il plus maintenant avec une machine plus rapide.
Non, je pense que tu utilises une ancienne syntaxe pour parler à l’insert et que pour une raison qui m’échappe, ce qui reçoit le message a disparu.
Franchement, il y a eu de gros changements lors du passage à Logelloop 5 dans cette partie du code et il a fallu faire des compromis. J’ai tout remplacé par des messages qui sont plus explicites, car ils portent le nom de la fonction comme ici :
InsertSendMessage fx1 1 AutoFadeOut_A 1000
(note, pour le coup, que c’est une command de bblooper… -) )
Pour utiliser ce genre de message, tu cliques sur le ‘?’ de l’insert, tu cliques sur l’onglet du milieu de la doc “Messages – Contro…”, et tu choisi la ligne du message que tu souhaites envoyer au plug-in, là, tu copies la ligne que tu colle dans la macro, et hop, le tour est joué…
Je déclare une variable :
Message “fade de fin Bourdon”
DeclareOnce float $BourdonVolume$ = 0.0
Set $BourdonVolume$ = { floor(valueOfReactionNamed(“BourdonVolume”)) }
Post $BourdonVolume$
Set $my_personnal_counter$ = $BourdonVolume$
DoRepeat
Set $my_personnal_counter$ = { $my_personnal_counter$ – 1 }
Message $my_personnal_counter$
TrackVolume fx2 = {$my_personnal_counter$ }
Sleep 150
While { $my_personnal_counter$ > -76 }et le message d’erreur :
Didn’t found reaction value named BourdonVolume to get float value. Return 0 instead.
Existing reaction values are: [TrackAuxState_10_trk9, TrackAuxState_10_trk8, TrackAuxState_10_trk7, TrackAuxState_10_trk6, TrackAuxState_10_trk5, TrackAuxState_10_trk4, TrackAuxState_10_trk3, TrackAuxState_10_trk2, TrackAuxState_10_trk1, MixedModeEraseLevel, TrackPitchState_trk9, TrackPitchState_trk8, TrackPitchState_trk7, TrackPitchState_trk6, TrackPitchState_trk5, TrackPitchState_trk4, TrackPitchState_trk3, TrackPitchState_trk2, TrackPitchState_trk1, TrackAuxPosition_16_trk10, TrackAuxVolume_5_trk10, TrackAuxPosition_16_fx9, TrackAuxPosition_16_fx8, TrackAuxPosition_16_fx7, TrackAuxPosition_16_fx6, TrackAuxPosition_16_fx5, TrackAuxPosition_16_sfx, TrackAuxPosition_16_fx4, TrackAuxPosition_16_fx3, TrackAuxPosition_16_fx2, TrackAuxPosition_16_fx1, TrackPanStereoLeft_trk9, TrackPanStereoLeft_trk8, TrackPanStereoLeft_trk7, TrackPanStereoLeft_trk6, TrackPanStereoLeft_trk5, TrackPanStereoLeft_trk4, TrackPanStereoLeft_trk3, TrackPanStereoLeft_trk2, TrackPanStereoLeft_trk1, MetroVolume, InsertController_trk6_2_3,Quelle est l’erreur ?
Tu n’as pas le droit d’utiliser valueOfReactionNamed en dehors des cas où tu souhaites obtenir l’état d’une interface comme l’envois d’aux ou le panner d’une tranche.
Ici, si tu remplaces simplement la ligne :
Set $BourdonVolume$ = { floor(valueOfReactionNamed(“BourdonVolume”)) }
par
Set $BourdonVolume$ = { floor($BourdonVolume$)}
ça devrait fonctionner sans erreur.
Et pour terminer quelques messages dont je ne comprends pas la signification (ils ne sont pas liés les uns aux autres):
script disconnect: connection not found
Sans importance, un cas de message de déconnexion d’une connexion qui n’existe pas, j’adorerais réussir à éliminer cette erreur, mais c’est un cas tordu, et je ne trouve pas de solution économique… Ça viendra un jour… -)
event flushed:BEAT
Je ne vois pas, je veux bien savoir dans quel cas cela arrive…
Warning : listener not enabled/disabled for reaction TrackTime_trk_all. Use messages setStateEnable/setStateDisable to change the reaction listener state.
Un autre oubli que je viens de corriger pour la prochaine… Au passage, j’en ai trouvé quelques autres.
merci pour le signalement, même c’est surtout cosmétique… -)
Merci pour tous ces retours.
C’est précieux.
Bonne soirée,
Philippe