pyrun Opcodes
Prev | Opcodes et opérateurs de l'orchestre | Next

## 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

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

Example 728. 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

Example 729. 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.

Prev | Up | Next
pyinit Opcodes | Home | pwd