Espace programmation

Première page Page précédente Page suivante Dernière page

API KandiskyScore 1.0.1 (Juin 2024)

(Cette documentation est en cours de mise à jour)

En

Présentation

L'API de KandiskyScore permet l'écriture de scripts en Javscript.

Ces scripts d'actions peuvent être regroupés dans le dossier/kandiskyscore/Actions/. Ils permettent de compléter l'atelier. Ils sont accessibles par le menu Atelier->Actions

Pour des raisons de sécurité, ces scripts ne peuvent pas accéder directement au système de fichiers.

Il ne doit pas y avoir de ligne vide dans le corps du script.

Le script doit se terminer par une ligne vide.

Vous pouvez voir un exemple ici : Exemple

Le choix de l'éditeur de script est totalement libre dès lors qu'il accepte l'UTF8.

Table des matières


Insertion d'objets

Généralités

Insertion d'un objet audio

createObjet(timepos,transposition,rate,type,color)

Exemple :

createObjet(45,1,1,5,'#ff0000');

loadAudioTableBuffer(index,url)

Exemple :

loadAudioTableBuffer(objActif,'/home/.../kandiskyscore/Projets/Projet1/Audios/kurt1-1s.wav');

muteObjet(index,mute)

Exemple :

muteObjet(objActif,1);

reverseObjet(index,rv)

Exemple :

reverseObjet(objActif,1);

gainObjet(index,gain)

Exemple :

gainObjet(objActif,time);

envTypeObjet(index,type)

Exemple :

envTypeObjet(objActif,1);

envObjet(index,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7)

Exemple :

envObjet(objActif,0,0.2,0.08,0.288,0.245,0.86,0.49,0.99,0.725,0.86,0.8, 0.58,0.978,0.5);

timePosObjet(index,gain)

Exemple :

timePosObjet(objActif,14);

detuneObjet(index,detune)

Exemple :

detuneObjet(objActif,-100);

dbfObjet(index,debut,fin)

Exemple :

dbfObjet(objActif,0.4,0.9);

nameObjet(index,name)

Exemple :

nameObjet(objActif,'test');

convolObjet(index,convol)

Exemple :

convolObjet(objActif,8);

trackObjet(index,track)

Exemple :

trackObjet(objActif,2);

Objet audio : éléments graphiques

objetColor(id,color)

Exemple :

objetColor(objActif,'#cc8855');

objetDim(id,w,h)

Exemple :

objetDim(objActif,2.2,1.4);

objetBordure(id,width,color,opacity)

Exemple :

objetBordure(objActif,2,'#ff0000',0.8);

objetBkgColor(id,color)

Exemple :

objetBkgColor(objActif,'#ff5500');

objetBkgDim(id,w,h)

Exemple :

objetBkgDim(objActif,60,40);

objetBkgOpacity(id,opacity)

Exemple :

objetBkgOpacity(objActif,0.1);

objetBkgTransparent(id)

Exemple :

objetBkgTransparent(objActif)

Exemple :

objCadreLeft(objActif,'solid',6,'0%','#00ff00');

objetMarge(id,x,y)

Exemple :

objetMarge(objActif,8,4);

Insertion d'un symbole

createSymbole(x,y,type,color)

Exemple :

createSymbole(44*18,376,23,'green');

posSymb(id,x,y)

Exemple :

posSymb(objActif,40*18,406);

rotateSymb(id,r)

Exemple :

rotateSymb(objActif,-40);

bkgSymb(id,opacity,width,height,color)

Exemple :

bkgSymb(objActif,1,48,40,'#00ff00')

Exemple :

gCadreSymb(objActif,'solid',4,'0%','#ff0000')

cadreSymb(id,style,eps,r,color)

Exemple :

cadreSymb(objActif,'solid',4,'0%','#ff0000')

Définition d'un groupe

createGroupe(color,w,liste)

Exemple :

createGroupe('#0000ff',4,'0,1');

Pour pouvoir utiliser plusieurs fois le même script vous devez indéxer les objets de votre script avec nbObjets en plaçant, par exemple, cette ligne au début de votre script :

var nbobj=nbObjets;

puis

var nl=(nbobj+1)+','+(nbobj+2);
createGroupe(nl);

à l'endroit où vous désirez créer un groupe avec les objets créés par votre script. Dans l'exemple les objets 1 et 2 de votre script seront groupés. Il en sera de même si vous rélancez le script, mais avec de nouveaux objets et donc avec les nouveaux index.

dimCadreGroupe(id,w,h)

Exemple :

dimCadreGroupe(objActif,200,150);

bkgGroupe(id,width,height,color,opacity)

Exemple :

bkgGroupe(objActif,200,200,'#550000',0.2);

groupeTransparent(id)

Exemple :

groupeTransparent(objActif);

Exemple :

borderGrpLeft(objActif,'solid',4,'0%','#ff0000')

cadreGrp(id,style,eps,r,color)

Exemple :

cadreGrp(objActif,'solid',4,'0%','#ff0000')

Functions générales

copy(obj)

Copy les index des objets pour un futur collage.

Exemple :

var nl=(nbobj+1)+','+(nbobj+2)+','+(nbobj+3);
copyObjets(nl);

Pour pouvoir utiliser plusieurs fois le même script vous devez indéxer les objets de votre script en procédant comme pour la création de groupe.

pasteObjets(x,y)

Coller un ensemble d'objets ( défini avec copy(obj) ou directement dans copySelect[] ) aux coordonnées x,y.

Exemple :

pasteObjets(300,100);


Flottant

openPopup(title,width,height,padding,content)

Création d'un popup pour définir des paramètres

Exemple :

openPopup("position",400,200,10,interface);

closePopup(title)

fermeture d'un popup

Exemple :

closePopup('position');

Contenu d'un popup

Vous disposez de toutes les possibilités du HTML pour définir le contenu de votre popup.
Vous ne devez pas utiliser les guillements doubles : ❞ mais ' ou `

Dans le contenu de votre popup vous devez définir le boutons de validation afin de valider les paramètres définis. Vous pouvez également définir un bouton pour redonner les valeurs par défaut et un bouton annuler. Ces boutons doivent être associés à des fonctions ( ce code ne doit pas être copié tel quel ).


var interface=`<table align='center' border='1'style='font-size:1em;
margin-top:10px;' cellpadding='4' cellspacing='0' ><tbody><tr><td>
X : <input id='coordx' type='number' min='0' max='12960' step='1' value='400' />
</td></tr><tr><td >Y : <input id='coordy' type='number' min='0' max='740' step='1' value='200'/>
</td></tr></tbody></table>
<div style='margin-top:20px;margin-left:80px;'><button id='adefaut' >Defaut</button>
<button onclick=closePopup('position')>Annuler</button>
<button id='avalid' >Valider</button></div>`;
openPopup("position",400,200,10,interface);
document.getElementById('avalid').addEventListener('click',validPopup);// association des événements aux boutons document.getElementById('adefaut').addEventListener('click',defautPopup);
function validPopup(title){ // définition des fonctions validPopup et defautPopup : var x=document.getElementById('coordx').value; var y=document.getElementById('coordy').value; console.log(x,y); pasteObjets(x,y); closePopup('position'); } function defautPopup(){ document.getElementById('coordx').value=400; document.getElementById('coordy').value=200; }

popup

Ici, les paramètres permettent de copier un ensemble d'objets prédéfinis dans copySelect[] à une nouvelle position (X,Y).

Filtres FX

Pour les filtres FX, vous devez commencer par insérer le nom d'un filtre dans la table correspondante. Ensuite vous pouvez définir les paramètres du filtre.

fxOnDef(id,name)

insertion d'un filtre dans la table des filtres de l'objet courant

Exemple :

fxOnDef(0,'Phaser');

fxDefParam(id,param)

insertion des paramètres Fx dans la table de l'objet courant

Exemple :

fxDefParam(0,'0.88/0.9/0.1/2.9/3.7/1.8'); // paramètres pour le premier filtre ('Phaser' ici)

Audio

saveFxAudio(obj,mode,nom)

Modifie le fichier courant de l'objet par le rendu de celui-ci avec l'application des paramètres Fx. Les paramètres Fx sont réinitialisés après la modification.

Exemple :

saveFxAudio(objActif,1,'name.wav');

Eportation des fichiers audios pour un séquenceur

Exemple :

exportObj();

Spatialisation

spaceDefPoint(id,t,d,x,y,z)

insertion des points de spatialisation

Exemple :

spaceDefPoint(1,0.28,0.5,-0.55,0.43,0.58); // paramètres du deuxième point de la trajectoire

Configuration

Configuration du projet


baseDefProjet(name,start,end,comment,ppath,audioPath,imgPath,greffon3D,canaux)

Exemple :

baseDefProjet('projet1','24082024','30082024','comment','/home/.../kandiskyscore/Projets/Projet1','/home/.../kandiskyscore/Projets/Projet1/Audios/','/home/.../kandiskyscore/Projets/Projet1/Images/','dominium',18);

appExternes(ledit,sequenceur,dawPath,AssCmd,AppCmd)

Exemple :

appExternes('libreoffice --draw','reaper','/home/.../Reaper/reaper_linux_x86_64/REAPER/reaper','pdfunite','atril');

pdfConfig(page,landscape,scale,margeT,margeL,margeB,margeR,Bkg)

Exemple :

pdfConfig(2,1,1,5,10,15,20,0);

Première page Page précédente Page suivante Dernière page