lua_exec — Exécute un bloc arbitraire de code Lua depuis l'orchestre de Csound.
Exécute un bloc arbitraire de code Lua depuis l'orchestre de Csound. Le code est exécuté pendant l'initialisation, typiquement depuis l'en-tête de l'orchestre.
Sluacode -- Un bloc de code Lua, de n'importe quelle
longueur. On peut entourer les blocs multi-lignes par des accolades
doubles ({{ }}
). Le code est évalué une seule fois
durant l'initialisation, typiquement depuis l'en-tête de l'orchestre. On
peut déclarer et définir des variables globales et locales, des fonctions,
des tables et des classes. Les objets définis dans la portée globale de
Lua restent accessibles durant toute l'exécution, et ils sont visibles
depuis tout autre code Lua situé dans le même fil de Csound.
L'instance courante de Csound est stockée sous forme de donnée utilisateur
légère de Lua dans une variable globale csound
. Celle-ci
peut être passée à n'importe quelle fonction de l'API de Csound. Une
utilisation possible de ce mécanisme est la génération d'une partition
par Lua dans l'en-tête de l'orchestre et la distribution des évènements
pour exécution au moyen de csoundInputMessage
.
![]() |
Note |
---|---|
Par défaut, tous les objets définis dans Lua sont dans la portée globale. Pour maintenir les objets confinés dans leur propre bloc de code, c'est-à-dire pour que les objets ne soient visibles que dans leur portée lexicale, il faut les déclarer avec l'attribut local. Cette particularité de Lua a souvent tendance à troubler les débutants. Il faut aussi tenir compte du fait que les tableaux de Lua sont indexés à partir de 1 à l'inverse de ceux de C et d'autres langages de programmation qui sont indéxés à partir de 0. |