Peinture Poesie Musique

Alètheia ( ἀλήθεια )

Espace programmation

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

KandiskyScore 0.3 (Mai 2023)

Présentation

"Les symétries dans l'univers donnent lieu à des lois mathématiques de conservation." Emmy Noether

KandiskyScore est un éditeur graphique pour l'analyse et la création de musique électroacoustique/acousmatique.

C'est une application html/javascript. Elle fonctionne parfaitement avec Firefox, Chrome et Opéra et donc sur tous les PC Windows, OSX, Linux et autres.

KandiskyScore

Vous pouvez toujours lancer Kandiskyscore à partir de son site :

https://baldrik.org/kandiskyscore/kandiskyscore.html

Elle utilise la WebAudio API pour la génération du son ainsi que le langage Faust du GRAME pour les greffons. 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.

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.

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. Cela peut finir par ressembler à des collages de signes ésotériques venus du monde d'Harry Potter, mais cela permet de donner une représentation graphique du travail de composition électroacoustique.
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.

Le ReaScript nommé importKandiScore, disponible dans le dossier Scripts de l'archive, permet d'importer tous les paramètres audio de Kandiskyscore dans Reaper.

Vous disposez également d'un script d'importation 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.

Voici un document pdf en anglais (traduction DeepL) et en français qui vous permettra de démarrer peut-être plus rapidement. La vidéo va suivre.

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.

Changements au 29 mai 2023

  • Tous les rendus audios sont maintenant disponibles.
    Les rendus audios des objets, des groupes et de l'intervalle entre les marqueurs "début" et "fin", utilisent la fonction MediaRecorder. Le rendu des pistes ou de la partition utilise la fonction startRendering d’un OfflineAudioContext
  • Vous pouvez faire un rendu SVG d'une sélection d'objets ou d'un groupe d'objets.
  • L'entrée Tempo du menu Atelier permet de créer un rendu d'une variation de la vitesse de lecture de l'objet actif en préservant sa hauteur.
  • L'interface de Kandiskyscore a été améliorée.
  • Vous pouvez définir votre propre thème pour l'application et l'enregistrer.

Changements au 29 avril 2023

  • Tous les objets audios sont maintenant disponibles
  • Le rendu SVG de la partition est nettement meilleur
  • Il est maintenant possible de faire des rendus audios d'objet individuel, de groupe d'objets...
  • Vous pouvez faire un export en direction d'un sequenceur d'un groupe d'objets ou de la partition
  • Le script LUA (Reascript) pour Reaper est fonctionnel. Il permet de récupérer tous les paramètres audios définis dans KandiskyScore.
  • Le script LUA pour Ardour est également disponible. Il permet d'importer des rendus d'objets ou de groupes d'objets directement utilisables.

Problèmes identifiés

  • Les fonctions Undo et Redo ne sont pas encore disponibles.

Présentation

Menu

Les objets

Les greffons Faust

La Spacialisation

Les textes

L'export et les scripts d'importation dans Reaper et Ardour





Installation

Toutes plateformes

Il est recommandé d'utiliser Kandiskyscore à partir d'une installation sur son disque dur.

Vous pouvez l'installer de deux manières : soit vous disposez d'un serveur en interne accessible via http://localhost, auquel cas vous devez décompresser l'archive dans le dossier de votre espace personnel accessible à votre serveur. Sous Linux et avec Apache, ce dossier se trouve dans votre espace personnel dans :


~/public_html

Si vous ne souhaitez pas, ou ne voulez pas, utiliser de serveur alors décompresser votre archive dans un dossier quelconque.save

Lancement

Si vous utilisez un serveur, entrez l'adresse suivante dans votre navigateur :


http://localhost/kandiskyscore/kandiskyscore.html

Si vous désirez lancer votre application à partir de votre sélecteur de fichier, allez dans le dossier dans lequel vous avez décompressé l'archive puis cliquez sur kandiskyscore.html et sélectionnez ouvrir avec et choisissez le navigateur de votre choix. L'application s'ouvrira rapidement.

La solution idéale est de disposer d'un serveur, en particulier pour les liens avec certains fichiers, mais l'application fonctionne très bien sans. Nous en reparlerons plus loin.

Dans tous les cas, vous devrez disposer d'une connexion internet pour accéder à l'éditeur de texte qui est une application indépendante : SunEditor.

Gestion des fichiers

La gestion de la sécurité par les navigateurs impose une organisation particulière. En effet, les navigateurs ne nous laissent la possibilité de charger des fichiers locaux que si nous les sélectionnons avec le selecteur de fichier du navigateur. Il n'est pas possible pour l'application de charger un fichier du disque de l'utilisateur sans passer par ce sélecteur.

Pour une application comme celle-ci, qui peut réclamer un nombre important de fichiers audios et éventuellement d'images, nous devons observer certaines règles.

KandiskyScore permet d'enregistrer un fichier projet pour chaque projet. Lorsque vous sélectionner Sauvegarder dans le menu Fichier, le navigateur vous propose une page blanche dans Firefox. Vous pouvez voir le code de cette page en cliquant avec le bouton gauche et en sélectionnnant Code source de la page. Vous découvrirez le texte de sauvegarde de votre partition. Vous pouvez enregistrer ce fichier en faisant Enregistrer sous... dans la page blanche.

Chrome autorise un enregistrement direct à partir de son sélecteur.

save

Dossiers d'un projet

Le fichier descripteur du projet doit disposer de l'extension .xml.

Il est recommandé de placer tous les fichiers audios dans le même dossier que le projet en cours. Lorsque vous voudrez recharger le projet, il vous suffira de faire une sélection multiple dans le sélecteur pour récupérer tous les fichiers audios ainsi que le fichier qui contient la description du projet.

Vous devez définir le chemin des fichiers audios dans la Configuration.

save

Sur cet exemple, saveTest.xml est le fichier descripteur du projet.

Vous pouvez utiliser les extensions : .wav, .ogg, .flac, .aiff, .au pour vos fichiers audios.Les fichiers audios sont indexés dans une table et référencés par les objets sonores grâce à leur index. Ceci permet une économie non négligeable de mémoire.

Pour retrouver facilement les images que vous insérez dans l'éditeur, il est recommandé de les rassembler dans un dossier spécifique. Vous devrez spécifier le chemin du dossier des images dans la Configuration. C'est la condition pour que le rendu svg vous retourne bien les images : menu rendu => Partition ou Vue groupe.
Vous pouvez utiliser les extensions : .png, .jpeg et .svg. L'utilisation du format svg est recommandée. Ce format étant vectoriel, les images ne perdent pas leur qualité lors d'un zoom.

Vous pouvez prendre des "clichés" de votre projet. Ce sont des fichiers descripteurs du projet qui ne présente qu'un état de celui-ci. Vous créez un cliché en sauvegardant votre projet dans un fichier avec l'extension .kcs. Ces clichés peuvent être rangés dans un autre dossier. Ils font référence aux fichiers audios déjà chargés. Cela vous permet de revenir à des états antérieurs de votre travail.

Fenêtre principale de l'application


Espace de travail

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.

Menu flottant

Menu flottantLes 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 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.

Palette

palette

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.

Pour l'immédiat, les fonctions Undo et Redo ne sont pas encore disponibles.

Barre de lecture

Menu

Fichier

NouveauRéinitialise l'espace de travail pour un nouveau projet.
Les paramètres de l'interface ne sont pas réinitialisés.
Ouvrir un projetPermet de charger tous les fichiers audios et le descripteur du projet avec une sélection multiple de tout le dossier.
Ouvrir un clichéCes clichés sont des enregistrements du projet à un moment t du développement.
Nouvel espaceOuvre une nouvelle fenêtre avec un KandiskyScore autonome. Vous pouvez copier des groupes d'objets d'une fenêtre dans une autre. La cohérence de la liste des fichiers audios est vérifiée et le programme vous signale éventuellement les fichiers manquants qui doivent être copiés dans votre dossier audio et rechargés.
SauvegarderEnregistre le fichier descripteur de projet (.xml)
Sauveg. groupePermet de sauvegarder un groupe d'objets pour une éventuel insertion ailleurs dans le projet courant ou dans un autre projet.
Import. GroupeImporte un fichier descripteur de groupe dans le projet courant.
Quitter

Édition

CouperPermet de supprimer un objet.
CopierPermet de copier un objet ou un groupe d'objets.
CollerPermet de coller un objet ou un groupe d'objets.
Copier spécialCopie d'un groupe d'objet pour le coller dans une autre fenêtre (éventuellement un autre projet).
Coller spécialPermet de coller un groupe d'objets d'une fenêtre dans une autre.
GrouperDéfini un cadre pour des objets.
DégrouperSupprime un cadre.
RegrouperPermets de grouper à nouveau des objets d'un groupe prédéfini.
Tout dégrouperPermets de tout dégrouper.
Couleur groupeChange la couleur de tous les objets d'un groupe.
Forme groupeChange la forme de tous les objets d'un groupe
AlignementPermets d'aligner les objets dans un groupe.
DéplacementDéfinis la profondeur des objets pour leur superposition.
ZoomZoom de l'espace de travail.

L'atelier

Augm.DimCopie un groupe en appliquant une variation de hauteur et/ou de position.
Permut.Horiz.Permutation d'un objet dans le temps (plan horizontal).
PalindromeCréation d'un palidrome (structure non rétrogradable si cher à O.Messian)
InclusionPermets 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.
RenversementCopie le renversement des objets d'un groupe.
RétrogradePermets de copier les objets en commençant par le dernier et en remontant au premier.
Renv.RétrogradePermets copier le renversement du rétrograde.
TempoPermets de varier la vitesse de lecture de l'objet actif en préservant sa hauteur et de l'enregistrer comme un rendu.

Rendu

PartitionCrée une image svg de la partition que vous pouvez ensuite éditer dans Inkscape ou LibreOffice-draw.
Vue groupeMême chose pour un groupe. Ceci permet de disposer d'une image svg d'un groupe que vous pouvez intégrer ensuite dans votre partition en l'associant par exemple au rendu audio correspondant. Cela permet de simplifier la génération de l'audio pour des objets complexes faisant appel à plusieurs greffons par exemple.
ObjetRendu audio d'un objet.
GroupeRendu audio d'un groupe.
IntervalleRendu audio de tous les objets commençant entre les marqueurs Début et Fin.
PisteRendu d'une piste. (Les objets des 4 premières secondes ne doivent pas faire référence à des filtres Faust. Si c'est le cas, vous devez substituer un rendu audio des objets de ces 4 premières secondes).
PartitionRendu audio de la partition (même remarque que précédemment).

Outils

Verif. liste audioPermets de vérifier la cohérence des objets avec les fichiers audios préchargés.
Export groupeCes fonctions crées un fichier utilisable par les scripts d'import des séquenceurs.
Export intervalle
Export partition
ConfigurationConfiguration de l'application.

Les rendus utilisent l'interface OfflineAudioContext de la Webaudio API. Elle introduit un delai incontournable d'au moins 4 secondes au démarrage du rendu. C'est une contrainte dont il faut tenir compte. Ceci peut être aggravé si on utilise certains greffons Faust comme le Granulator.

Vous pouvez sauvegarder l'audio en cliquant sur le lecteur audio (html5) et en sélectionnant Enregistrer le fichier audio sous.

Les objets audios

palette

Les paramètres graphiques sont variables suivant la nature des objets.

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. La case qui se trouve devant 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. Ces images peuvent être directement intégrées dans Kandiskyscore avec le rendu audio correspondant.

Les groupes

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.
Celui-ci est parfois contraignant, car il peut se déplacer au lieu de s'agrandir. Déplacez calmement votre souris vers la droite en maintenant la touche gauche enfoncée et il devrait faire ce que vous lui demandez. Pas de précipitation.

palette

Vous devez évité de rassembler des groupes dans un autre groupe. Cela n'aurait pas beaucoup de sens et il n'est pas possible de sauvegarder une telle structure.

Menu flottantSi cette structure facilite les manipulations (déplacement, rendu svg, fonction de l'atelier...) vous devrez dégrouper ce groupe afin de pouvoir le sauvegarder. Interface pour les groupes

Les groupes prédéfinis

Groupe prédefinis

Il existe quatre groupes prédéfinis qui disposent de leur propre interface :

Groupe prédefinis

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.

Vous ne pouvez pas sauvegarder ces groupes prédéfinis à l'intérieur d'un autre groupe.

Les symboles

Dans la palette vous disposez de 7 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.

Comme ces symboles ne sont pas liés à un fichier audio vous disposez d'une interface simplifiée :

palette

Tous les symboles ne disposent pas de la rotation.

palette

En complément, vous pouvez toujours ajouter des images au format .png mais surtout importer de nouveaux symboles au format .svg.

Les greffons Faust

Menu flottantVous avez le choix entre 19 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 : fx.

La spacialisation

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.

palette

Les curseurs rouges permettent de positionner l'objet dans l'espace 3D. Le curseur sur le disque bleu permet de régler la distance. Dans l'exemple, l'objet est devant à gauche à proximité de l'auditeur.

Le texte

Vous disposez d'un petit éditeur accessible par ce pictogramme :texte

Il vous permettra d'écrire des commentaires simples au fil du travail. Ces textes ne seront pas insérés dans la partition svg.

Si vous désirez rédiger une documentation visible également dans la partition svg vous devrez utiliser un éditeur qui permet d'exporter votre document au format svg.

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 texte 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 :

texte LibreOffice

L'export et les scripts d'importation dans Reaper et Ardour

Pour assurer la liaison avec les séquenceurs j'ai réalisé deux scripts, l'un pour Reaper, l'autre pour Ardour.

Ces scripts se trouvent dans le dossier scripts de l'archive. Vous devrez copier le script qui répond à vos besoins dans le dossier de script de votre application. Ainsi, sous Linux, pour Reaper cela se trouve dans /home/"utilisateur"/.config/Reaper/Scripts et dans /home/"utilisateur"/.config/Ardour/scripts

Ces deux scripts supposent que vous exportiez dans un fichier les paramètres des objets audios en utilisant l'une des options d'export dans le menu Outils.

Groupe prédefinis

Les objets qui ne sont pas associés à un fichier audio ne seront pas exportés.

La page qui s'affiche doit être enregistrée dans un fichier de votre dossier de travail.

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é pour chaque région dans Reaper ou sur chaque piste dans Ardour

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.

Groupe prédefinis

Ensuite dans votre séquenceur, vous devez exécuter le script importKandiskyScore pour Reaper ou KandiskyScore pour Ardour.

Les objets sont alors importés dans votre séquenceur. Chaque objet dispose de sa propre piste.

Pour Reaper vous pouvez définir des options dans le menu de configuration : Outils=>Configuration=> onglet Général

Le script pour Reaper est en mesure de définir tous les paramètres audios, cependant, la WebAudio API à ses propres contraintes qui peuvent donner des rendus différents de ceux obtenus directement avec Reaper.

Groupe prédefinis

Export de 5 objets dans Reaper

Pour remédier à cela vous pouvez choisir de ne travailler que sur des rendus d'objets de KandiskyScore. Vous n'aurez alors pas besoin de configurer tous les paramètres audios dans votre séquenceur.

Pour Ardour c'est même une nécessité. La complexité de la gestion de l'audio fait que le script ne peut importer que des fichiers audios avec leurs positions et définir le greffon de spatialisation pour la piste.

Groupe prédefinis

Export des mêmes objets dans Ardour

Vous ne pourrez travailler qu'avec des rendus, même pour une simple transposition. Cela n'est pas un problème, au contraire. Les délais induits par la fonction de rendu de l'API et par l'utilisation des greffons Faust peuvent provoquer des distortions diverses. En n'utilisant que des rendus, vous serez certains de travailler avec les mêmes sons que ceux produit par KandiskyScore.

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 tous vos objets en fonction de votre configuration.

Tableau des fonctionnalités
Reaper (Région) Ardour (Piste)
Fichier audioFichier audio
Position temporellePosition temporelle
CouleurCouleur
Gainnon disponible
Enveloppe ?
Transposition ?
Detune ?
Début et fin de lecturenon disponible
Filtres Faustnon disponible
Spatialisation 3DSpatialisation 3D
save save

Vous pouvez tester l'import dans votre séquenceur en utilisant le fichier export.txt dans le dossier correspondant:
~/kandiskyscore/Projets/decouverte/Exports.




License

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.

EXCEPTION : dbmeter license : "BSD".

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