pyrun — Exécute une instruction Python ou un bloc d'instructions.
pyrun "statement"
pyruni "statement"
pylrun "statement"
pylruni "statement"
pyrunt ktrigger, "statement"
pylrunt ktrigger, "statement"
Opcode du greffon py. Ce greffon se trouve dans le répertoire des greffons et il doit être installé séparément. Le répertoire des greffons est ici : https://github.com/csound/plugins
Exécute l'instruction Python spécifiée au taux-k (pyrun et pylrun) ou au taux-i (pyruni et pylruni).
L'instruction est exécutée dans l'environnement global pour pyrun et pyruni ou dans l'environnement local pour pylrun et pylruni.
Ces opcodes n'effectuent aucune transmission de message. Cependant, comme leurs instructions ont accès aux espaces de noms globaux et privés, ils peuvent interagir avec des objets préalablement créés dans ces environnements.
Les versions « locales » des opcodes pyexec sont utiles lorsque le code exécuté par différentes instances d'un instrument ne doit pas interagir.
Exemple 868. Orchestre
sr=44100 kr=4410 ksmps=10 nchnls=1 ;Si vous n'exécutez pas CsoundAC, la ligne suivante est ;nécessaire pour initialiser l'interpréteur Python ;pyinit pyruni "import random" instr 1 ; Ce message est stocké dans l'espace de noms principal ; et il est le même pour chaque instance pyruni "message = 'un nombre aléatoire global : %f' % random.random()" pyrun "print message" ; Ce message est stocké dans l'espace de noms privé ; et il est différent pour différentes instances pylruni "message = 'un nombre aléatoire privé : %f' % random.random()" pylrun "print message" endin
En exécutant cette partition on obtient des paires de messages entrelacées des deux instances de l'instrument 1.
Le premier message de chaque paire est stocké dans l'espace de noms principal et ainsi la seconde instance écrase le message de la première instance. En conséquence, le premier message sera le même pour les deux instances.
Le second message est différent pour les deux instances, étant stocké dans l'espace de noms privé.