lua_exec

lua_exec — Exécute un bloc arbitraire de code Lua depuis l'orchestre de Csound.

Description

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.

Syntaxe

lua_exec Sluacode

Initialisation

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

Voir aussi

lua_opdef, lua_opcall.

Crédits

Par : Michael Gogins, 2011

Nouveau dans la version 5.13.2 de Csound.