pyrun Opcodes

pyrun — Exécute une instruction Python ou un bloc d'instructions.

Syntaxe

pyrun "statement"
pyruni "statement"
pylrun "statement"
pylruni "statement"
pyrunt ktrigger, "statement"
pylrunt ktrigger, "statement"

Description

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 du groupe d'opcodes pyrun

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

Exemple 869. Partition

i1 0 0.1

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

Crédits

Copyright (c) 2002 Maurizio Umberto Puxeddu. Tous droits réservés. Certaines parties, copyright (c) 2004 et 2005 Michael Gogins. Ce document a été mis à jour le 25 juillet 2004 et le 1er février 2005 par Michael Gogins.