Administrateur

  • Profile picture of echeveste
  • Profile picture of Jean-Louis Giavitto
  • Profile picture of Philippe Cuvillier
  • Profile picture of arshiacont

Antescofo

Groupe Public active 2 days et 19 hours ago

The user group for Antescofo.

Curve simultanées

Auteur 2 Utilisateurs souscrits |
Profile photo of Lorangeverte
Lorangeverte

Bonjour à tous,

je me confronte à un petit problème lorsque j’essaie de produire plusieurs curve simultanément. Cela doit certainement venir d’une mauvaise syntaxe que j’emploie…

Tout d’abord, lorsque j’écris par exemple:

curve @command { i6_curve c Aa6.04 } 2, 6.2 40s
curve @command { i6_curve c Aa6.05 } 1, 8.2 40s
curve @command { i6_curve c Aa6.06 } 1, 1.2 40s

Seul le dernier curve (le troisième donc) est réalisé.

Me suis dis-je que cela pouvait provenir du receive unique, j’ai donc tenté d’écrire:

curve @command { i6_curve1 c Aa6.04 } 2, 6.2 40s
curve @command { i6_curve2 c Aa6.05 } 1, 8.2 40s
curve @command { i6_curve3 c Aa6.06 } 1, 1.2 40s

Soit trois receive différents, si je ne m’abuse…
Et bizarrement malgré ces trois receive différents c’est uniquement sur le dernier, i6_curve3, que le curve est correctement réalisé (les deux autres affichent seulement le message adressé au receive et le point de départ du curve désiré: “c Aa6.04 2″ pour le premier receive et “c Aa6.05 1″ pour le second)…

Chose plus qu’étonnante, tout marche à merveille en revanche si j’écris des noms de receive “incohérents” (pour ne pas dire bidon), si j’écris:

curve @command { i6_curve c Aa6.04 } 2, 6.2 40s
curve @command { i6toto c Aa6.05 } 1, 8.2 40s
curve @command { i6LOL c Aa6.06 } 1, 1.2 40s

Bien, les trois curve s’exécutent parfaitement et simultanément.

Je dois faire une erreur de syntaxe à l’utilisation de @command, mais laquelle…

Si vous avez une solution… Merci!

En tous cas merci d’avance de votre aide et de votre attention.

Bien à vous tous,

Lorangeverte.

Février 15, 2017 à 16:23 #20875
Jean-Louis Giavitto
Jean-Louis Giavitto

Bonjour Lorangeverte.

La forme simplifiée de la curve est identifiée par le nom du receveur utilisé. Malheureusement, dans le cas d’un message spécifié par @command,il est difficile de déterminer le receveur du message (ce pourrait être le résultat d’un calcul complexe) et on se fie uniquement à la tête du message, ici i6_curve. On ne prend pas en compte les arguments qui diffèrent (Aa6.04, Aa6.05, et Aa6.06).

Une curve simplifié commence par tuer les éventuelles curves de même identificateur. C’est pourquoi le premier exemple ne lance en réalité qu’une seule curve. On peut voir le calcul exact qui est effectué en envoyant un message printfwd à antescofo~: la partition est affichée avec certaines expansions, en particulier les curves simplifiées sont traduites dans la syntaxe générale.

Utiliser des receveurs différents permettra de lancer les trois curves mais enverra des messages à des receveurs différents :-)

Cela devrait fonctionner mais une erreur perturbe parfois le calcul du receveur du message dans un @command ce qui explique que cela fonctionne dans un cas et pas dans l’autre. Ce bug est à présent corrigé. N’hésitez pas à me contacter par email pour obtenir un nouvel objet (mais la nouvelle version de antescofo~ est en cours de finalisation et sera disponible dans un ou deux mois directement sur le forum).

Une autre approche est d’utiliser une curve dans sa forme complète afin de spécifier les envois de messages via l’attribut @action. Le premier exemple devient

Curve 
  @Grain := 0.03 s, 
  @Action := {
       i6_curve c Aa6.04 $x
       i6_curve c Aa6.05 $y
       i6_curve c Aa6.06 $z
  }
{
     $x { { 2 }  40 s { 6.2 } }
     $y { { 1 }  40 s { 8.2 } }
     $z { { 1 }  40 s { 1.2 } }
}

(où les variables $x, $y, $z ne sont pas utilisées par ailleurs) qui génèrent les messages


6_curve c Aa6.04 2.0
i6_curve c Aa6.05 1.0
i6_curve c Aa6.06 1.0
i6_curve c Aa6.04 2.00315
i6_curve c Aa6.05 1.0054
i6_curve c Aa6.06 1.00015
i6_curve c Aa6.04 2.0063
i6_curve c Aa6.05 1.0108
i6_curve c Aa6.06 1.0003

; ...

i6_curve c Aa6.04 6.19895
i6_curve c Aa6.05 8.1982
i6_curve c Aa6.06 1.19995
i6_curve c Aa6.04 6.2
i6_curve c Aa6.05 8.2
i6_curve c Aa6.06 1.2
Février 16, 2017 à 14:37 #20880

Vous devez être connecté pour répondre à ce sujet.

Log in now