Introduction | Objets fondamentaux |
Messages émis et reçus |
Interface graphique |
Scripts | Référence | Index des fonctions |
Documentation
Les commandes IanniX doivent spécifier une cible à chaque exécution :
id
désigne un objet précis.
Exemple :remove 2
group_id
désigne le groupe entier qui peut être un mot.
Exemple :remove toto
all
désigne tous les objets.
Exemple :remove all
current
désigne le dernier objet créé.
Exemple :remove current
Gestion des objets
Ajouter un objet
Ajoute un objet sur la partition, mais ne spécifie pas sa position (par défaut
l'objet est placé au point de coordonnées (0,0,0)). Le mot clef auto
attribue automatiquement un ID à votre objet.
add <objet> <id>
Exemple : add trigger 1
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add trigger 1);
|
Définir un groupe
Les groupes sont identifiés par un chiffre ou un mot que vous êtes libre de
choisir. Les objets n'ont pas l'obligation de faire partie d'un groupe.
setGroup <target>
<group name>
Exemple : setGroup
current triggers
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add trigger 1
|
Space position
Positionne un objet sur la partition via des coordonnées (x,y,z).
setPos <target> <x> <y> <z>
Exemple : setPos 1 1 2
0
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add trigger 1
|
Activer/désactiver un objet
Un objet est actif par défaut, mais vous pouvez le désactiver.
setActive <target>
<0|1>
Exemple : setActive
1 0
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add trigger 1
|
Affecter un message
Cette commande définit le message qu'un objet doit envoyer.
setMessage <target>
<period>, <variables>, ,message2, message3, …
Exemple : setMessage
current 1,
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
setMessage current 1,
|
Le trigger ajouté précédemment enverra respectivement : son ID, son
abscisse, son ordonnée et l'ID du curseur l'ayant déclenché. |
Supprimer un objet
Efface un objet de la partition grâce à son ID.
remove <target>
Exemple : remove 1
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add trigger 1
|
Trigger
Temps avant relâche (NoteOff)
Lorsqu'une notre est jouée grâce à un trigger, vous pouvez le configurez pour qu'il
coupe la note automatiquement après un délai paramétrable. Ce temps Note-off time peut être défini
soit par cette méthode, qui définit le temps qui est toujours utilisé par ce trigger,
ou le temps de note-off peut être contrôlé par le paramètre de durée dans le message du
trigger. Controller l'off-time dans le message permet au temps de contrôler
certaines variables de la partition, changeant au fur et à mesure que la partition joue. Le temps avant la relâche doit
être normalement définit à zéro lorsque le temps note-off n'est pas envoyé dans les messages de
ce trigger.
setTriggerOff <target>
<delay>
Exemple : setTriggerOff
current 0.5
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add trigger 1
|
Le trigger précédemment créé enverra un message "note off" après une demi-seconde. |
Messages & variables liés au trigger
Vous pouvez utiliser les variables suivantes dans les messages envoyés par les triggers :
trigger_id
ID du trigger déclenchétrigger_group_id
ID du groupe concerné par le déclenchementtrigger_document_id
nom du projettrigger_xPos
abscissetrigger_yPos
ordonnéetrigger_distance
straight line distance from the trigger to the cursor at the time of collisiontrigger_value
127 quand le trigger est déclenché et 0 lorsque le trigger est éteinttrigger_side
0 when the trigger is on the left of the direction of cursor motion and 1 if on the right
Vous pouvez aussi utiliser n'importe laquelle des variables cursor_ du curseur rencontré ou les variables curve_ du curseur de la courbe.
Courbe
Courbes circulaires & ellipses
Les ellipses sont définies par un grand axe et un petit axe. Pour construire
des cercles, les deux axes doivent avoir la même valeur.
setPointsEllipse <target>
<width> <height>
Exemple : setPointsEllipse
current 2 1
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add curve 1
|
Trajectoire droite
Une courbe est définie par une séquence de points. L'index des points débute à
0.
Notez que les coordonnées d'un point sont définies pour être relative à la position de
l'objet courbe.
Pour plus de détails, voir la section sur dessiner des
ocurbes dans la section script.
setPointAt <target>
<point index> <x> <y>
Exemple : setPointAt
current 1
3 3
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add curve 1
|
Courbe de Bézier
Pour ajouter des points à une courbe de Bézier, utilisez :
setPointAt <target>
<path>
Les courbes de Bézier sont formées de segments de courbes définis donnant le dernier point
pour chaque segment. La courbure est définie par deux "points de contrôle"
additionnels par la fonction setPointAt
, un définit la
direction de la tangente de la courbe à son point de départ et l'autre pour contrôler la
direction de la tangente de la courbe à son point final.
Pour plus de détails sur comment dessiner avec les courbes de Bézier, voir la section dessiner des courbes dans la section script.
Texte
Un caractère peut aussi jouer le rôle de courbe.
setPointsTxt <target>
<scaling> <font> <text>
Exemple : setPointsTxt
current 0.1 Arial a
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add curve 1
|
Courbe SVG — chemin cubique
Une courbe SVG est définie par un path que vous pouvez importer directement
depuis un autre logiciel par copier-coller.
setPointsSVG <target>
<width> <height> <svg
path>
Exemple : setPointsSVG
current 5 5 M637.599,1569.972c0,0,89.127,0,222.818,
0c8.913,0,18.023,0,27.381,0.113C901, 1570,913,1573,926,1576c67,15,128,43,
198,28c9-2,17.833-4.277,26.554-6.685c8. 72-2.407,17.255-5.074,25.247-8.562C1224,
1567,1239,1514,1256,1469c18-48,69-29, 101-9c81.375,48.125,161.219,103.141,
254.032,110.08c13.259,0.991,26.782, 1.001,40.616-0.129C1716,1574,1788,
1562,1842,1606c39,32,62,97,119,
90c44-6,70-47,101.551-72.846
![]() |
add curve auto
|
Courbe SVG — polygones
Le SVG path de ces courbes est simplement une série de points (positionnés de
manière absolue).
setPointsSVG2 <target>
<scaling> <svg
path>
Exemple : setPointsSVG2
current 1 1,1 1,2 -1,2 -1,-2 -2,0
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add curve 1
|
Vectorisation automatique
Une courbe peut être directement construite à partir d'une image par une
vectorisation automatique.
setPointsImg <target>
<scaling> <filename>
Exemple : setPointsImg
current 0.1 ./Examples/trigger_speaker.png
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add curve 1
|
Taille
La taille des objets peut être changée directement.
setResize <target>
<width> <height>
Exemple : setResize
current 2 1
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add curve 1
|
Curseur
Affecter une courbe
Après avoir créé votre curseur, assurez-vous d'avoir défini la courbe que vous
voulez qu'il suive. Vous pouvez utiliser le mot clef lastCurve
pour
désigner la dernière courbe ajoutée.
setCurve <cursor target>
<curve target>
Exemple : setCurve
2 lastCurve
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add curve 1
|
Largeur de la tête de lecture
ous pouvez modifier en temps-réel la largeur d'un curseur pour qu'il active ou
non les triggers à proximité.
setWidth <target>
<width>
Exemple : setWidth
current 3.5
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add cursor 1
|
Position instantanée
La position d'un curseur est modifiable en temps-réel. Cette instruction ne
fonctionne pas si vous l'incluez directement dans votre script, car à chaque
nouvelle exécution, IanniX effectue un fastrewind.
setTime <target> <time>
Exemple : setTime 11 0
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add curve 1
|
Décalage temporel
Vous pouvez choisir de démarrer votre curseur à un certain point de la courbe
(repéré en secondes) puis de le borner entre certaines valeurs (elles aussi en
secondes).
Par exemple, le décalage 2 4 6 signifie que votre curseur démarrera votre courbe
à la position t=2s puis la parcourra jusqu'au point t=6s pour recommencer au
point t=4s.
setOffset <target>
<initial> <start> <end>
Exemple : setOffset
current 3 1 7
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add curve 1
|
Mapping des valeurs
Il est possible de paramétrer votre curseur pour qu'il envoie des valeurs
comprises dans un intervalle choisi. Par exemple, s'il évolue dans un carré de
3x3, il peut tout de même envoyer ses coordonnées sous forme de valeurs entre 0
et 1.
Utilisez setBoundsSource pour indiquer à IanniX l'intervalle dans lequel se situe
votre curseur et setBoundsTarget pour paramétrer l'intervalle de vos valeurs
envoyées. Généralement le BoundsSource est correctement paramétré par
défaut.
Vous devez utiliser les variables : cursor_value_x
,
cursor_value_y
, collison_value_x
ou collison_value_y
pour que les valeurs envoyées soient celles du
BoundsTarget.
setBoundsSource <target>
<x-top-left-corner> <y-top-left-corner> <x-bottom-right-corner> <y-bottom-right-corner>
setBoundsTarget <target>
<x-top-left-value> <y-top-left-value> <x-bottom-right-value> <y-bottom-right-value>
Exemple : setBoundsSource
2 0 3 3 0
et setBoundsTarget 2
0 1 1 0
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add curve 1 setBoundsSource 2
0 3 3 0setBoundsTarget 2 0 1 1 0 setMessage 2 250, direct:// cursor_value_x cursor_value_y |
Messages & variables liées au curseur
Vous pouvez utiliser les variables suivantes dans les messages envoyés par les curseurs :
cursor_id
ID du curseurcursor_group_id
ID du groupe concerné par le curseurcursor_document_id
nom du projetcursor_xPos
abscisse du curseurcursor_yPos
ordonnée du curseurcursor_time
position du curseur sur la courbe en secondescursor_time_percent
position du curseur sur la courbe en pourcentage (entre 0 et 1)cursor_value_x
abscisse en accord avec le BoundsTarget spécifiécursor_value_y
ordonnée en accord avec le BoundsTarget spécifiécursor_angle
angle du curseur par rapport à la courbecursor_nb_loop
nombre de cycles sur la courbe
Les curseurs peuvent également envoyer des informations concernant la courbe sur laquelle ils se trouvent et les courbes qu'ils croisent.
curve_id
ID de la courbe concernée par le curseurcurve_group_id
ID du groupe de la courbecurve_document_id
nom du projetcurve_xPos
abscisse du premier point de la courbecurve_yPos
ordonnée du premier point de la courbecollision_curve_id
ID de la courbe croiséecollision_xPos
abscisse du point de la collisioncollision_yPos
ordonnée du point de la collisioncollison_value_x
abscisse du point de la collision en accord avec le BoundsTarget spécifiécollision_value_y
ordonnée du point de la collision en accord avec le BoundsTarget spécifiécollision_distance
straight line distance between the collision point and the cursor
La vitesse dans IanniX
La vitesse de déplacement des curseurs est composée de plusieurs paramètres :
speed
, speedfactor
, speedf
and
pattern
.
speed
est la vitesse globale de la partition, speedfactor
est la vitesse du curseur en lui-même, speedf
est la vitesse instantanée
du curseur et pattern
sert à définir le nombre et le sens des
cycles.
On peut ainsi écrire la vitesse d'un curseur:
(speed
)x(speedfactor
)x(speedf
)x(pattern
)
with pattern
.
Vitesse de la partition
Vous pouvez modifier la vitesse globale de la partition. Une vitesse négative fera évoluer le temps dans le sens négatif. The speed is a sort of velocity factor that is combined with the speed factor or duration parameter of each cursor to determine the speed, or more intuitively the transit time of the cursor on its curve.
For more details of the determination of cursor speed, see the following
section on the "Speed of a Cursor."
speed <speed>
Exemple : speed 20
|
Vitesse d'un curseur
Les curseurs ont un facteur vitesse indépendant les uns des autres. La durée de parcours d'une courbe est également paramétrable. Une vitesse négative fera évoluer le curseur dans le sens inverse, mais le temps continuera à s'écouler de manière naturelle.
La vitesse d'un curseur peut être mieux compris en pensant en termes de temps requis pour un curseur donné de traverser son chemin en une fois. Si la vitesse globale de la partition est définie à 1.0 (avec la commande "speed" ou la réglette), et le temps d'un curseur est défini à 10.0 secondes, le curseur mettra 10 secondes pour parcourir la courbe une fois. Doubler la vitesse globale à 2 coupera le temps de transit du cursor à 5.0 seconds. Aussi, chaque curseur peut avoir son propre temps de transit (ou inversement, vitesse), proportionnel à la vitesse globale de la partition.
Pour définir la vitesse d'un curseur en termes de durée de temps de transit, utilisez la
forme suivante de la commande setSpeed :
setSpeed <target> auto
<duration>
Pour définir la vitesse d'une curseur en termes de facteur de vitesse (ex : les vitesses utilisant les mêmes
unités que la réglette générale) utilisez la forme suivante de la commande :
setSpeed <target>
<speed factor>
Exemple : setSpeed
11 4
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add curve 1
|
Vitesse instantanée d'un curseur
Les curseurs ont un facteur de vitesse instantanée indépendant, très utile
lors des performances en temps-réel. De la même manière qu'avec setSpeed, une
vitesse négative est possible et ne modifiera pas la vitesse de lecture
globale.
setSpeedF <target>
<speed factor>
Exemple : setSpeedF
11 cursor_yPos
add curve 2
|
Motif de répétition
Ce paramètre désigne le sens et le nombre de cycles. Par exemple pour 1
1 0
, le curseur effectuera deux cycles dans le sens positif et s'arrêtera,
l'écriture équivalente est 2 0
.
setPattern <target> 0 0
<pattern>
Exemple : setPattern
current 0 0 1
-1
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add curve 1
|
Navigation dans les partitions
Effacer une partition
Efface tous les objets de la partition.
clear
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
clear
|
Zoom
Ajuste le zoom en utilisant le script. Le facteur est en pourcentage. Ex : un facteur de
200 double la taille de la zone affichée.
zoom <zoomfactor>
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
clear"
|
Resize des objets indépendamment du zoom
Activé par défaut, permet d'augmenter ou de diminuer automatiquement la taille
des triggers et curseurs lorsque vous zoomer/dézoomer la partition afin de
faciliter la lecture. Seul l'aspect visuel est affecté, la taille réelle des
objets n'est pas modifiée.
autosize <0|1>
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add trigger 1
|
Placer un point au centre de l'écran
Place le point (x,y) au centre de l'espace de travail.
center <x> <y>
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
clear
|
Changer la direction de la vue
Rotationne la vue en fonction des axes x,y et z
rotate <RotationAboutX-Axis>
<RotationAboutY-Axis> <RotationAboutZ-Axis>
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
rotate 45 0 0
|
Jouer la partition
Déclenche la lecture de la partition.
play
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
play
|
Fast Rewind
Retour à 000:00.000.
fastrewind
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
fastrewind
|
Apparence générale des partitions
Ajouter du texte
Vous pouvez ajouter une description textuelle de vos objets sur la partition. Afficher/cacher ces descriptions grâce au bouton 7 de la barre d'outils (cf. Interface).
Tous les types de caractères sont acceptés, il n'y a pas de limite en
nombre.
setLabel <target>
<label>
Exemple : setLabel
current Hello World
!
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add trigger auto
|
Taille des objets
Contrairement à setResize, cette
fonction modifie l'épaisseur d'une courbe ou d'un curseur et la taille d'un
trigger.
setSize <target> <size>
Exemple : setSize 1 10
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add curve 1
|
Format des tracés
Définit un style de pointillé grâce à dash pattern
qui doit être
une suite de 0 et 1, dash style
définit l'espace entre chaque
pointillé.
setLine <target> <dash style> <dash
pattern>
Exemple : setLine 1 2000 1
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement du
code !
add curve 1
|
Les couleurs
Vous pouvez spécifier directement la couleur d'un objet à l'aide des codes RGB ou
HSB avec gestion de l'opacité A.
Les valeurs R G B vont de 0 à 255 et celles H S B vont de 0 à 360. L'opacité A est
comprise entre 0 (transparence totale) et 255 (aucune transparence).
Couleur d'un objet actif n'émettant pas de messages
Modifie la couleur des objets actifs.
setColorActive <target>
<variable>
setColorActive <target>
<r> <g>
<b> <a>
setColorActive2 <target>
<h> <s>
<b> <a>
Exemple : setColorActive
1 0 255 0 255
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add trigger 1
|
Couleur d'un objet inactif n'émettant pas de messages
Modifie la couleur des objets inactifs.
setColorInactive <target>
<variable>
setColorInactive <target>
<r> <g>
<b> <a>
setColorInactive2 <target>
<h> <s>
<b> <a>
Exemple : setColorInactive
1 0 0 255 255
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add trigger 1
|
Couleur d'un objet actif émettant des messages
Modifie la couleur d'un objet actif pour lequel un message a déjà été
paramétré.
setColorActiveMessage <target> <variable>
setColorActiveMessage <target> <r> <g> <b> <a>
setColorActiveMessage2 <target> <h> <s> <b> <a>
Exemple : setColorActiveMessage2 1 360 255 255
255
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add trigger 1
|
Couleur d'un objet inactif émettant des messages
Modifie la couleur d'un objet inactif pour lequel un message a déjà été
paramétré.
setColorInactiveMessage <target> <variable>
setColorInactiveMessage <target> <r> <g> <b> <a>
setColorInactiveMessage2 <target> <h> <s> <b> <a>
Exemple : setColorInactiveMessage 1 0 127 127
200
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
add trigger 1
|
Création d'une variable couleur
IanniX permet également d'enregistrer une couleur comme variable pour la
réutiliser avec plus de facilité.
registerColor <variable>
<r> <g>
<b> <a>
registerColor2 <variable>
<h> <s>
<b> <a>
Exemple : registerColor
rougeRGB 255 0 0 255
et
registerColor2 rougeHSB 360 255 255 255
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement
du code !
registerColor rougeRGB 255 0 0 255
|
Textures
Personnalisez votre partition avec vos propres images.
Vous pouvez directement modifier le fond de la partition ou l'apparence des triggers
à l'aide des variables:
background
backgroundtrigger_active
active triggerstrigger_inactive
inactive triggerstrigger_active_message
active triggers with messagetrigger_inactive_message
inactive triggers with message
Création d'une variable texture
Enregistre votre texture sous une variable. Si vous utilisez les variables
ci-dessus, l'apparence est directement modifiée, car les textures natives sont
enregistrées sous ces variables. Utilisez l'outil "restore triggers original
shapes" de l'inspecteur "scripts & styles" pour retrouver les textures
originales.
registerTexture <variable>
<x-top-left-corner> <y-top-left-corner> <x-bottom-right-corner> <y-bottom-right-corner> <file
name>
Exemple : registerTexture
trigger_active -1
1 1 -1 ./Examples/trigger_triangle.png
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement du
code !
registerTexture trigger_active -1 1 1 -1
./Examples/trigger_triangle.png
|
Texture d'un objet actif n'émettant pas des messages
Modifie l'aspect d'un seul objet actif. Vous pouvez également utiliser un nom de
groupe ou l'une des variables ci-dessus :
setTextureActive <target>
<variable>
Exemple : setTextureActive
1 triangle
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement du
code !
registerTexture triangle -1 1 1 -1
./Examples/trigger_triangle.png
|
Texture d'un objet inactif n'émettant pas des messages
Modifie la texture d'un objet ou groupe d'objets inactifs.
setTextureInactive <target>
<variable>
Exemple : setTextureInactive
2 triangle
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement du
code !
registerTexture triangle -1 1 1 -1
./Examples/trigger_triangle.png
|
Texture d'un objet inactif émettant des messages
Modifie la texture d'un objet ou groupe d'objets actifs avec message.
setTextureActiveMessage <target> <variable>
Exemple : setTextureActiveMessage triggers
triangle
![]() |
Copier/coller cet exemple dans IanniX pour comprendre le fonctionnement du
code !
registerTexture triangle -1 1 1 -1
./Examples/trigger_triangle.png
|
Texture d'un objet inactif émettant des messages
Modifie la texture d'un objet ou groupe d'objets inactifs avec message.
setTextureInactiveMessage <target> <variable>
Exemple : setTextureInactiveMessage triggers
triangle
![]() |