KandiskyScore est un éditeur graphique pour l'analyse et la création de musique électroacoustique/acousmatique.
C'est maintenant une application Electron.
Electron intègre Chromium et Node.js pour permettre aux développeurs Web de créer des applications de bureau. Compatibles avec macOS, Windows et Linux, les applications Electron fonctionnent sur toutes les architectures prises en charge.
Kandiskyscore utilise la WebAudio API pour la génération du son ainsi que le langage Faust du GRAME pour les greffons de spatialisation 3D des séquenceurs externes. Il permet également d'exporter une partition graphique au format SVG que vous pourrez éventuellement modifier avec un logiciel pour le graphisme vectoriel comme Inkscape ou LibreOffice-draw ainsi qu'une présentation de la partition en PDF pour l'impression.
Ce programme permet de créer des objets sonores ou des partitions que l'on peut exporter au format .wav pour l'audio. Il est également possible de spatialiser le son avec les outils fournis par la webAudioAPI. Il est maintenant possible d'exporter la partition au format ADM (EBU Audio Definition Model).
Vous pouvez manipuler quatre types d'objets : des objets audios (stéréo), des groupes, des symboles et du texte.
KandiskyScore n'a pas pour vocation de remplacer les séquenceurs traditionnels comme Reaper ou Ardour.
Il repose sur une autre manière d'aborder la composition électroacoustique au travers de la manipulation d'objets symboliques qu'il est possible de combiner pour former des assemblages complexes comme des assemblages de logiques formelles.
Cet outil a pour objectif de proposer un environnement qui devrait permettre d'accompagner le compositeur au cours de l'élaboration de son œuvre. Il pourra toujours la finaliser dans le séquenceur de son choix.
Vous pouvez étendre les possibilités de l'atelier en écrivant des Actions en javascript en utilisant les fonctions disponibles de la nouvelle API.
Vous pouvez même envisager d'aborder la composition algorithmique en javascript avec cette API.
Vous trouverez la documentation de celle-ci- sur cette page api KandiskyScore.
Les ReaScripts nommés importKandiScore.lua et insertKandiScore.lua, disponibles dans le dossier <$home>/kandiskyscore/Scripts, après installation, permettent d'importer tous les paramètres audio de Kandiskyscore dans Reaper.
Vous disposez des mêmes scripts pour Ardour.
Vous pouvez voir une représentation d'une œuvre de Ligeti, Artikulation qui illustre bien ce propos. Ce travail a été réalisé par Rainer Wehinger dans les années 1970. Vous pouvez également regarder Atmosphère qui combine une représentation graphique de la structure de l'œuvre, des notations traditionnelles et des graphiques audios.
François Bayle avec la Commission Mémoire et Patrimoine de la Sacem propose un entretien sur sa musique et sur son parcours de compositeur. Vous y trouverez des représentations de ses œuvres qui relèvent d'une forme d'écriture à ceci près que celles-ci viennent après la réalisation et non pas avant. Kandiskyscore se place dans cet avant de l'œuvre.
Dans les vidéos de l'INA Grm, vous pourrez découvrir des préparations de F.Bayle pour certaines de ses œuvres au crayon sur feuilles de papier.
Ce travail s'inspire des recherches suivantes :
Denis Dufour, P.Manoury, Ana Dall’Ara-Majek, Noémie Sprenger-Ohana, et bien d'autres, ont également écrit sur ce sujet.
Ce programme est sous licence GNU General Public License. Voir plus loin.
Les fichiers projet de version antérieure à la 1.0.3 seront adaptés au nouveau format pour tenir compte de l'automation. Vous devez les sauvegarder à nouveau afin d'enregistrer les modifications.
Éditeur : | Permets de définir l'éditeur de texte par défaut. Il doit être capable d'exporter une image svg du texte. (libreoffice --draw par défaut) |
Séquenceur : | Précise le séquenceur par défaut. Le chemin de l'application peut être précisé pour Reaper. |
PDF : | Permets de définir les paramètres pour la génération PDF | Ass. Cmd : commande pour fusionner les pages pdf ( par exemple pdfunite sous Linux ). | App. cmd : commande pour lire le pdf résultant ( par exemple atril sous Linux ). |
Attention : les fichiers de sauvegarde des versions antérieures à la version 1.0.0 ne sont pas compatibles avec ceux de la nouvelle version. Vous devrez les adapter manuellement.
Création d'un studio personnel
Comme Kandiskyscore est maintenant une application Electron vous pouvez l'intaller sur macOS, Windows et Linux
Lors du premier lancement de l'application, des fichiers (menuDefaut.js et config.js) seront créés dans le dossier de configuration de votre OS :
par exemple /"home-user"/.config/kandiskyscore sous Linux.
De même, un dossier /"home-user"/kandiskyscore sera créé dans votre espace utilisateur, et les dossiers Pdf, Scripts et DSP y seront copiés. Vous découvrirez plus loin leur fonction.
Vous pourrez, par la suite, utiliser ce dossier pour y placer vos projets.
Vous disposez d'une archive (zip) à décompresser dans un dossier de votre Mac. Cette archive propose un dossier kandiskyscore.app à installer sur votre système.
Pour Windows vous avez deux possibilités :
Pour Linux vous avez trois possibilités :
Si vous cliquez avec le bouton droit de la souris vous ouvrez un menu flottant. Vous pouvez le faire disparaître en déplaçant la souris à l'extérieur de ce menu ou en cliquant à nouveau sur le fond de votre espace de travail avec le bouton droit.
![]() | Les fonctions Grouper et dégrouper concernent la gestion des groupes. La fonction Regrouper permet de regrouper les objets des ensembles complexes comme les agrégats après les avoir dégroupés (voir la gestion des groupes). Ces fonctions sont également disponibles dans le menu Édition. |
Les fenêtres internes que vous pouvez ouvrir dans l'espace de travail peuvent être déplacées en cliquant avec la souris sur la barre de nom en haut et en déplaçant la souris.
Les objets audios sont des objets graphiques pour lesquels nous pouvons associer un fichier audio.
Les symboles ne peuvent pas avoir de fichiers audios associés. Ce sont des éléments purement descriptifs.
Nouveau projet | Réinitialise l'espace de travail pour un nouveau projet. Les paramètres de l'interface ne sont pas réinitialisés. |
Ouvrir un projet | Permet de charger tous les fichiers audios et les descripteurs du projet. |
Sauvegarder | Sauvegarde le projet (.xml) |
Sauvegarder sous | Sauvegarde le projet avec un nouveau nom (.xml) |
Renommer | Renomme le projet(.xml) |
Supprimer | Supprime le projet et ses dossiers associés |
Sauvegarder groupe | Permet de sauvegarder un groupe d'objets pour une éventuel insertion ailleurs dans le projet courant ou dans un autre projet. Vous devez impérativement encapsuler vos objets dans un groupe. |
Importer Groupe | Importe un fichier descripteur de groupe dans le projet courant. |
Liste audios | permet de visualiser les fichiers audios utilisés. |
Exporter | -- Utilitaires pour exporter un objet, des groupes d'objets, la partition, pour intégration dans un séquenceur. |
-- Utilitaires pour exporter une partition au format ADM |
Couper | Permet de supprimer un objet. |
Copier | Permet de copier un objet ou un groupe d'objets. |
Coller | Permet de coller un objet ou un groupe d'objets. |
Grouper | Défini un cadre pour des objets. |
Dégrouper | Supprime un cadre. |
Regrouper | Permets de grouper à nouveau des objets d'un groupe prédéfini. |
Tout dégrouper | Permets de tout dégrouper. |
Couleur groupe | Change la couleur de tous les objets d'un groupe. |
Forme groupe | Change la forme de tous les objets d'un groupe |
Échelle | Change l'échelle des objets d'un groupe |
Alignement | Permets d'aligner les objets dans un groupe. |
Déplacement | Définis la profondeur des objets pour leur superposition. |
Zoom | Zoom de l'espace de travail. |
Fenêtre | Dimension de la fenêtre. |
Augm.Dim | Copie un groupe en appliquant une variation de hauteur et/ou de position. |
Permut.Horiz. | Permutation d'un objet dans le temps (plan horizontal). |
Palindrome | Création d'un palidrome (structure non rétrogradable si cher à O.Messian) |
Inclusion | Permets d'inclure un groupe d'objets dans un autre. Il faut commencer par sélectionner un groupe puis cliquer sur cette entrée de menu et enfin sur le groupe que vous voulez insérer. Un peu de manipulation vous permettra de comprendre comment cela fonctionne. |
Renversement | Copie le renversement des objets d'un groupe. |
Rétrograde | Permets de copier les objets en commençant par le dernier et en remontant au premier. |
Renv.Rétrograde | Permets copier le renversement du rétrograde. |
Tempo | Permets de varier la vitesse de lecture de l'objet actif en préservant sa hauteur et de l'enregistrer comme un rendu. |
Actions | Permets de sélectionner une action externe écrite par l'utilisateur |
Nouveau studio | Permet de créer un nouveau studio pour la spatialisation dans les séquenceurs. |
Svg | Utilitaires pour créer des images SVG d'objets, de groupe ou de la partition que vous pouvez ensuite éditer dans Inkscape ou LibreOffice-draw et intégrer dans la partition |
Création de pdf pour l'impression. | |
Audio | Même chose pour l'audio |
Outils | Forme d'onde |
Spectrogramme. (Uniquement si SOX est dans votre path.) |
Configuration | Configuration de l'application. |
Sauv.Thème | Enregistre la configuration de l'interface actuelle comme thème. |
Select.Thème | Charge un thème. |
Vous pouvez sauvegarder l'audio en cliquant sur le lecteur audio (html5) et en sélectionnant Enregistrer le fichier audio sous.
Les objets sont introduits dans votre espace de travail en cliquant dessus dans la palette. Ensuite vous pouvez les déplacer, modifier les paramètres et éventuellement les écouter.
Les limites précisent le début et la fin de la lecture de l'audio entre 0.01 et 1.
La durée réelle est calculée en fonction de la durée de l'échantillon et la transposition. Le bouton Durée résultante permet de disposer d'une réglette pour voir la longueur réelle de l'audio afin d'adapter éventuellement l'échelle de l'élément graphique.
MuseScore permet l'exportation d'images svg de la partition. Vous pouvez également utiliser LilyPond. Avec cette dernière application vous pouvez utiliser la notation proportionnelle pour faciliter l'alignement des objets. Ces images peuvent être directement intégrées dans Kandiskyscore avec le rendu audio correspondant.
Les paramètres graphiques sont variables suivant la nature des objets.
Ils peuvent disposer d'une bordure, d'un arrière plan et d'un cadre.
Les groupes sont des structures abstraites qui permettent de rassembler des objets dans un cadre spécifique. Ils disposent de leur propre interface. Ils n'ont pas d'existence particulière pour l'audio.
Pour constituer un groupe, vous devez faire appel au sélecteur en cliquant sur le fond de votre espace de travail. En maintenant enfoncé le bouton gauche de la souris et en déplaçant celle-ci, un cadre bordé d'une ligne de tirets va s'adapter aux déplacements de la souris. Si vous recouvrez plusieurs objets audios et que vous relâchez le bouton, vous pouvez cliquer à droite sur l'espace de travail et dans le menu flottant qui apparaît vous pouvez choisir l'option Grouper. Cela va générer un cadre pour votre groupe. Maintenant, si vous voulez déplacer un élément du groupe, vous déplacerez le groupe lui-même. Si vous souhaitez modifier un élément, vous devez sélectionner le groupe et dans le menu flottant, sélectionnez Dégrouper.
Le sélecteur ne demeure à l'écran que si vous avez sélectionné au moins deux éléments.
Il existe quatre groupes prédéfinis qui disposent de leur propre interface :
Cette interface permet de définir les paramètres graphiques et audios pour tous les objets inclus. Attention de bien valider les modifications, sinon les paramètres audios ne seront pas modifiés.
Vous pouvez dégrouper ces groupes et modifier individuellement chaque objet qui le compose : transposition, position, etc. et les Regrouper ensuite. Vous ne perdez pas ainsi les paramètres du cadre.
La fonction Regrouper n'est disponible que pour ces groupes prédéfinis.
Dans la palette vous disposez de 6 panneaux dans lesquels vous pourrez sélectionner des symboles. Pour ouvrir un panneau, il suffit de cliquer sur son nom. Ensuite, vous cliquez sur un objet qui se trouve alors inséré dans votre espace de travail. Il vous appartient ensuite de régler les paramètres pour ce symbole.
L'interface de configuration des symboles est identique à celle des objets audios sans la possibilité d'associer un fichier audio.
En complément, vous pouvez toujours ajouter des images au format .png mais surtout importer de nouveaux symboles au format .svg.
Vous pouvez saisir un simple texte sur une ligne, sans formatage particulier, an cliquant sur Txt
Avec libreOffice-Draw vous pouvez créer un cadre dans lequel vous pouvez rédiger votre texte. Il suffit en suite de sélectionner ce cadre et d'aller dans le menu Fichier =>exporter et de choisir svg (scalable vector graphic .svg) en n'oubliant pas de cocher la case Sélection, à gauche de la fenêtre, et de valider. Ensuite, vous importez le fichier sauvegardé avec le bouton sans lui affecter de fichier audio.
Vous pouvez ainsi obtenir un texte comme celui-ci que vous pouvez manipuler comme n'importe qu'elle autre image :
Le fichier svg doit être dans le dossier défini dans la configuration de votre projet.
![]() | Vous avez le choix entre 21 greffons qui permettent de modifier le son. Ces greffons ont été écrits en langage Faust. Chaque DSP a été compilé pour pouvoir être intégré avec la webAudio API . Vous pouvez en associer jusqu'à 7 pour une même source. Chaque greffon dispose de sa propre interface accessible en cliquant sur ce pictogramme : ![]() Vous pouvez ajouter jusqu'a 9 points d'automation en cliquant avec le bouton gauche sur la courbe. L'évolution des valeurs se fait de manière linéaire. Un point peut être supprimé en cliquant avec le bouton gauche . Les valeurs ne seront pris en compte que si vous quittez la fenêtre par le bouton Valider<.b> |
Les paramètres statiques de la webAudio API concernant la spatialisation peuvent être définis dans le menu Configuration dans l'onglet correspondant.
Pour bien comprendre les réglages, il est nécessaire de se reporter à la documentation accessible en ligne.
Les curseurs carrés permettent de positionner l'objet dans l'espace 3D. Le curseur sur le disque bleu permet de régler la distance apparente.
![]() | Un clic sur ce pictogramme ouvre la fenêtre openGL qui permet de visualiser les objets dans un espace 3D. Vous pouvez faire tourner cette espace en cliquant sur la fenêtre en déplaçant la souris. Vous pouvez également régler le zoom avec la molette de la souris. |
![]() | Ceci ouvre une petite fenêtre dans laquelle vous allez pouvoir ajouter les points de la trajectoire de votre objet sur l'axe du temps. C'est un positionnement relatif à la durée de l'audio. Vous pourrez ensuite les déplacer dans la fenêtre principale pour préciser le positionnement de chaque point dans l'espace 3D. Vous n'êtes évidemment pas obligé d'ajouter de points, dans ce cas votre objet sera statique. |
La WebAudio API permet de gérer la spatialisation en mode HRTF ce qui permet une écoute binaural de vos travaux. Vous devez configurer en conséquence le Panning Model dans l'interface de configuration.
Pour assurer la liaison avec les séquenceurs vous disposez de scripts pour Reaper et Ardour.
Ces scripts se trouvent dans le dossier Scripts de votre dossier (user home)/kandiskyscore/Scripts.
Vous devrez utiliser d'éditeur de script LUA de votre séquenceur pour les activer.
Les scripts préfixés par import permettent d'importer dans le séquenceur l'ensemble des objets exportés de Kandiskyscore.
Les scripts préfixés par insert permettent d'insérer à la position du curseur de lecture de votre séquenceur ces mêmes objets.
Les objets qui ne sont pas associés à un fichier audio ne seront pas exportés.
La demande d'exportation crée un rendu de chaque fichier audio de votre projet dans le sous dossier ./audios/exports. Ce sont ces fichiers qui seront importés dans les séquenceurs.
Pour les deux séquenceurs, vous devez préparer une nouvelle session avec un Master disposant du même nombre de sorties que le greffon de spatialisation que vous souhaitez utiliser. Ainsi, si vous désirez utiliser le greffon ZKM 23 vous devrez disposer de 23 sorties sur votre Master. Voir la documentation du multiSpace3D. Cela suppose que le greffon retenu est disponible dans le dossier de vos greffons. Le greffon de spatialisation est automatiquement chargé sur chaque piste.
Vous devez également définir le nom du greffon que vous désirez utiliser ainsi que le nombre de sorties de celui-ci dans le menu Configuration.
Ensuite dans votre séquenceur, vous devez exécuter le script .
Lors de l'import, le "panner" d'Ardour est court-circuité pour ne pas perturber le greffon de spatialisation 3D.
Dans tous les cas, vous devrez configurer le routage de vos pistes en fonction de votre configuration.
Si, pour une raison ou une autre, vous ne disposez pas du dossier DSP dans (user home)/kandiskyscore vous pouvez décompresser cette archive dans ce dossier.
Dans ce dossier, vous trouverez également des modèles de configuration pour vos séquenceurs.
Vous pouvez à présent exporter votre partition au format wav ADM (EBU Audio Definition Model).
Ce format permet d'exporter un fichier wav disposant de metadonnées pour le positionnement des objets audios dans l'espace 3D.
Cet export a été testé avec le programme EAR (EBU ADM Renderer) en utilisant un format 5.0 pour le rendu.
Quelle que soit leur configuration, ces greffons ont tous la même interface. Seul leur fonctionnement interne change en fonction du nombre et de la disposition des haut-parleurs.
Il est possible de définir des valeurs d'automation pour chacun de ces paramètres. C'est ainsi que sont définis les points des trajectoires.
Ces greffons n'utilisent pas de RFE. Vous devrez donc ajouter les canaux correspondants dans votre séquenceur avant l'exportation de votre fichier multicanal si vous le souhaitez. Précisez toujours dans une note de lecture comment sont définis vos canaux par rapport aux enceintes de votre studio avec un graphique explicatif si possible.
Le nom des dispositifs est une référence à des sytèmes existants, mais les coordonnés des haut-parleurs ne sont pas pour autant très précises car on ne dispose pas toujours des informations nécessaires. À vous de les adapter à vos besoins.
Vous devez d'abord importer un fichier dsp dans l'IDE. Ensuite, vous pouvez le tester.
Attention, dans le web IDE vous pouvez avoir un message d'erreur si votre dsp comporte plus de 32 canaux en sortie. Cela est dû à la limitation à 32 canaux de la WeAudio API. Cette limitation n'existe pas si vous exportez votre dsp pour compilation.
Dans la fenêtre qui s'ouvre alors, vous devez choisir votre système d'exploitation puis le type de greffon que vous souhaitez. Une fois la compilation réalisée, vous pouvez télécharger votre greffon et l'installer dans le dossier adéquat.
Vous devez définir ce greffon dans la configuration de votre projet ainsi que le nombre de canaux pour que les scripts d'exportation le prennent en compte.
Vous devez créer vos plans en cliquant dans l'espace entre le panneau-haut-gauche et le panneau des haut-parleurs avec le bouton droit de votre souris. Ensuite vous intruisez les hauts-parleurs pour chaque plan en cliquant dans le quadrillage avec le bouton gauche. Vous pouvez les déplacer et éventuellement les effacer avec la touche del.
Si vous cliquez sur une case d'un canal dans le tableau, vous retrouverez immédiatement votre haut-parleur sur les graphiques.
Vous pouvez préciser le canal, les coordonnées X et Z dans ce tableau, mais vous ne pouvez pas modifier la coordonnée Y car celle-ci est associé au plan.
Il n'y a pas de contrôle de cohérence pour les canaux, il vous appartient donc d'être vigilant et de procéder méthodiquement.
Lorsque vous sauvegardez un nouveau studio, vous obtenez 3 fichiers :
Vous pouvez compiler le fichier .dsp obtenu en utilisant l'IDE de Faust en cliquant sur cette option dans le menu et en copiant le contenu de votre dsp dans cette IDE.
Le greffon obtenu (lv2 ou vst) devra être copié dans le dossier des greffons accessibles pour votre séquenceur.
Le dossier Dsp se trouve dans (appData) Répertoire de données d'application par utilisateur :
Vous devez absolument définir les dossiers de votre projet ainsi que le nom et le nombre de canaux de votre greffon de spatialisation pour les séquenceurs sinon vous aurez des dysfonctionnements.
Chaque panneau permet de régler les paramètres par domaine indépendamment les uns des autres. N'oubliez pas de valider, sinon les changements ne seront pas pris en compte, tout particulièrement pour la configuration de l'interface et de la palette.
Éditeur : | Permets de définir l'éditeur de texte par défaut. Il doit être capable d'exporter une image svg du texte. (libreoffice --draw par défaut) |
Séquenceur : | Précise le séquenceur par défaut. Le chemin de l'application peut être précisé pour Reaper. |
PDF : | Permets de définir les paramètres pour la génération du PDF | Ass. Cmd : commande pour fusionner les pages pdf ( par exemple pdfunite sous Linux ). | App. cmd : commande pour lire le pdf résultant ( par exemple atril sous Linux ). |
This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; If not, see http://www.gnu.org/licenses.