Skip to content

Processing (Fr)

Christophe Lengelé edited this page Sep 2, 2023 · 63 revisions

La vidéo ci-dessous montre quelques captures d'écran de la représentation visuelle d'objets sonores réalisée dans Processing.

Live.mp4

Mise en place

Le code dans Processing, qui est disponible dans ce dossier, fonctionne avec la version 4.3 de Processing et nécessite l'installation dans Processing de la librairie externe oscP5, disponible dans ce dossier ou directement sur internet.

Afin que les données sonores dans SuperCollider soient transmises via OSC dans Processing :

  1. La variable ~visualizeProcessing doit être égale à 1 dans le fichier _0_Init_Live4Life.scd. Il est donc nécessaire d'évaluer la ligne après avoir modifié la variable à 1. Voir le début du processus d'installation dans le ReadMe pour savoir comment évaluer une ligne de commande dans SuperCollider.
  2. Le fichier _3_Init_Pattern_182.scd doit être évalué, soit en sélectionnant tout le fichier ou bien simplement avec cette ligne dans le fichier _0_Init_Live4Life.scd. Si cette ligne a déjà été évaluée, arrêtez l'exécution de certaines fonctions du langage via Stop dans the menu Language ou le raccourci clavier Control (on Windows) / Command (on Mac) + . et ré-évaluez le fichier _3_Init_Pattern_182.scd comme indiqué précédemment.

Détails sur les données sonores générées à partir de SuperCollider et transmises via OSC

Globalement, deux types d'informations sonores sont transmises à Processing :

Les informations de haut niveau :

  1. sur chacun des évènements sonores (contrôlés par l'interface graphique) venant du langage, comme :
  • le numéro de piste ou éventuellement de séquence,
  • la durée de l'évènement,
  • le numéro de type de synthèse utilisée,
  • l'amplitude,
  • le type d'enveloppe de volume - percussive, gaussienne -,
  • la vitesse de lecture ou fréquence,
  • le numéro de dossier son, le type de dossier son, le numéro de fichier,
  • la position dans le fichier son de début de lecture,
  • le type de spatialisation,
  • l'envoi vers des effets,
  • ainsi que certaines variables associées à ces derniers paramètres.

Des dizaines, voire des centaines d'évènements, peuvent être générés en même temps dans une même piste.

  1. sur le signal sonore venant du server audio en temps-réel :
  • a : le volume perçu,
  • b : la hauteur (pitch),
  • c : certaines informations sur le spectre sonore, comme :
    • le centroïde spectral (fréquence moyenne pondérée, brillance perceptive d'un signal, masse centrale d'un spectre, zone de fréquences la plus importante du point de vue perceptif),
    • la complexité d'un signal (spectral flatness : sinus = 0 et bruit blanc = 1),
    • un indicateur de la présence de pics dans la distribution de l'énergie spectrale (FFT crest : sinus = 1 et bruit blanc = 0),
    • la dispersion spectrale (FFTSpread),
    • la dissonance (SensoryDissonance : consonance = 0 et dissonance = 1),

Les informations de bas niveau :

  1. La représentation spectrale du signal sonore venant du server audio : les données FFT du spectre sonore,

  2. On pourrait aussi éventuellement la représentation temporelle de l'onde : valeur du sample audio représentant des milliers d'informations par seconde.

Il aurait été intéressant d'utiliser les informations de bas-niveau pour détailler chaque information de haut niveau et plus particulièrement pouvoir regrouper ensemble les informations sur l'évènement et le signal sonore. Mais les ressources de calcul seraient trop importantes. On aura donc une information segmentée précise des évènements et en arrière fond une quantité considérable d'informations globales sur le signal sonore, mais malheureusement "déconnectée" des évènements sonores.


Mapping

Clone this wiki locally