# Vers un système unifié d'interaction et de synchronisation en composition électroacoustique et mixte : partitions électroniques centralisées

José Miguel Fernandez

► To cite this version:

José Miguel Fernandez. Vers un système unifié d'interaction et de synchronisation en composition électroacoustique et mixte : partitions électroniques centralisées. Langage de programmation [cs.PL]. Sorbonne Université, 2021. Français. NNT: 2021SORUS420. tel-04022244

HAL Id: tel-04022244

https://hal.science/tel-04022244

Submitted on 9 Mar 2023

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
Sorbonne Université

École doctorale Informatique, Télécommunications et Électronique

(Paris)

IRCAM / Représentations Musicales

# Vers un système unifié d'interaction et de synchronisation en composition électroacoustique et mixte : partitions électroniques centralisées

Par José Miguel Fernández

Thèse de doctorat de Composition Musicale

Dirigée par Jean-Louis Giavitto et Pierre Couprie

Présentée et soutenue publiquement le 17 septembre 2021

Devant un jury composé de :

<table><tr><td>Jean-Louis GIAVITTO</td><td>Directeur de thèse</td></tr><tr><td>Pierre COUPRIE</td><td>Co-directeur de thèse</td></tr><tr><td>Alain BONARDI</td><td>Rapporteur</td></tr><tr><td>Jean-François TRUBERT</td><td>Rapporteur</td></tr><tr><td>Philippe MANOURY</td><td>Examinateur</td></tr><tr><td>Yann ORLAREY</td><td>Examinateur</td></tr><tr><td>Georgia SPIROPOULOS</td><td>Examinateur</td></tr></table>
À mes parents
Remerciements

Aux membres du jury de cette thèse, aux rapporteurs et en particulier à mon directeur et
co-directeur de thèse, Jean-Louis Giavitto et Pierre Couprie qui m'ont aidé tout au long de la
rédaction de cette thèse avec leurs conseils avisés et leurs disponibilités.

À tous les membres de l'IRCAM qui m'ont accompagné pendant ces années de travail
et de recherche avec leurs amitiés, leurs idées et conseils sur différents sujets liés à
l'informatique musicale.

À tous les compositeurs avec lesquels j'ai eu la chance de travailler et qui ont partagé
leurs pensées musicales et leurs amitiés, en particulier avec Lara Morciano avec qui on a
expérimenté différentes idées et formes musicales dans la musique mixte avec l'utilisation de
la librairie AntesCollider.

À mes amis percussionnistes Thierry Miroglio et Philippe Spiesser pour leur
disponibilités infinis vers l'exploration.

À mes amis vidéastes Raphaël Foulon et Thomas Koppël pour chercher des rapports
entre le son et l'image dans une ambiance décontractée sans limites.

À l'association Flashback de Perpignan et son directeur Alexander Vert ainsi qu'à la
HEM de Genève pour permettre de créer et expérimenter des nouvelles pièces audiovisuelles
en relation avec la captation gestuelle.

À la direction artistique de l'IRCAM qui m'a permis de développer des projets
ambitieux et innovants.

À l'équipe de développement du logiciel Antescofo, Arshia, José et Philippe et en
particulier Jean-Louis pour le développement du langage Antescofo dont le travail de cette thèse
est basé ainsi que pour sa disponibilité permanente et conseils à toutes mes questions pendant
tous ces années.

À Alfonsina et Enora pour leurs soutiens et conseils et à mes amis de la Préfecture à
Virieu Le Grand où j'ai commencé à écrire cette thèse pendant un confinement.
# Sommaire

<table><tr><td>Remerciements</td><td>2</td></tr><tr><td>Sommaire</td><td>4</td></tr><tr><td>Résumé</td><td>9</td></tr><tr><td>0. Introduction</td><td>10</td></tr><tr><td>0.1. De la notation de l'électronique et de l'interaction à la partition centralisée</td><td>10</td></tr><tr><td>0.2. Organisation de ce document</td><td>12</td></tr><tr><td>0.3. Contributions</td><td>13</td></tr><tr><td>Développements logiciels</td><td>13</td></tr><tr><td>Création musicale en relation avec la recherche</td><td>13</td></tr><tr><td>Concerts en lien avec la recherche</td><td>14</td></tr><tr><td>Résidence recherche-création</td><td>15</td></tr><tr><td>Workshops, séminaires, cours et diffusion</td><td>16</td></tr><tr><td>Publications</td><td>17</td></tr><tr><td>I. Notation de l'électronique et de l'interaction : vers la partition centralisée</td><td>18</td></tr><tr><td>Organisation du chapitre</td><td>18</td></tr><tr><td>I.1. Notation procédurale et notation déclarative</td><td>19</td></tr><tr><td>I.2. Sur l'écriture musicale symbolique</td><td>21</td></tr><tr><td>I.3. L'émergence d'un espace de pensée acousmatique</td><td>24</td></tr><tr><td>I.4. La partition électronique</td><td>27</td></tr><tr><td>Le paradigme orchestre/score</td><td>29</td></tr><tr><td>Trois générations de langage</td><td>32</td></tr><tr><td>Écrire la musique comme un code informatique</td><td>35</td></tr><tr><td>Notation graphique de l'électronique</td><td>37</td></tr><tr><td>Limitations de la composition avec des objets graphiques</td><td>39</td></tr><tr><td>Visualisation des partitions électroniques</td><td>41</td></tr><tr><td>I.5. Musiques mixtes et suivi de partition</td><td>42</td></tr><tr><td>Suivi de partition</td><td>43</td></tr><tr><td>Partitions électroniques pour le temps réel et l'interactivité</td><td>44</td></tr><tr><td>Vers la partition électronique centralisée</td><td>48</td></tr><tr><td>I.6. La partition électronique centralisée</td><td>56</td></tr><tr><td>Structure d'une partition électronique centralisée</td><td>57</td></tr><tr><td>Une courbe d'apprentissage variable</td><td>57</td></tr><tr><td>I.7. Préservation de l'électronique</td><td>59</td></tr><tr><td>II. Outils pour la composition de musiques électroacoustiques et mixtes</td><td>62</td></tr><tr><td>II.1. Introduction</td><td>62</td></tr><tr><td>Organisation du chapitre</td><td>64</td></tr><tr><td>II.2. De l'instrument à l'outil informatique : entre exploration, création, programmation et composition</td><td>64</td></tr><tr><td>II.3. De l'outil informatique fermé à l'outil programmable</td><td>65</td></tr><tr><td>II.4. Les systèmes de programmation musicale temps réel et leurs limites</td><td>68</td></tr><tr><td>II.5. Dépasser le modèle visuel</td><td>70</td></tr><tr><td>III. Antescofo, un langage de programmation pour écrire le temps musical</td><td>72</td></tr><tr><td>III.1 Introduction</td><td>73</td></tr><tr><td>III.2. Le langage Antescofo</td><td>73</td></tr><tr><td>Contexte</td><td>73</td></tr><tr><td>Antescofo et les systèmes temps réel</td><td>75</td></tr><tr><td>Un langage parallèle</td><td>76</td></tr></table>
<table>
  <tbody>
    <tr>
      <td>Un langage impératif généraliste</td>
      <td>76</td>
    </tr>
    <tr>
      <td>Antescofo comme langage dédié</td>
      <td>77</td>
    </tr>
    <tr>
      <td>III.3. Structuration des actions : les processus et les acteurs</td>
      <td>78</td>
    </tr>
    <tr>
      <td>Processus</td>
      <td>79</td>
    </tr>
    <tr>
      <td>Acteurs</td>
      <td>81</td>
    </tr>
    <tr>
      <td>III.4. Parallélisme implicite et hypothèse synchrone</td>
      <td>83</td>
    </tr>
    <tr>
      <td>III.5. Le whenever</td>
      <td>85</td>
    </tr>
    <tr>
      <td>III.6. Courbes différentielles</td>
      <td>86</td>
    </tr>
    <tr>
      <td>III.7. Mécanismes d'exécution dédiés</td>
      <td>87</td>
    </tr>
    <tr>
      <td>Propagation de constantes</td>
      <td>87</td>
    </tr>
    <tr>
      <td>Évaluation au chargement</td>
      <td>88</td>
    </tr>
    <tr>
      <td>Évaluation à la volée</td>
      <td>88</td>
    </tr>
    <tr>
      <td>Fonctions de transport</td>
      <td>88</td>
    </tr>
    <tr>
      <td>Compilation à la volée</td>
      <td>89</td>
    </tr>
    <tr>
      <td>III.8. Bibliothèque ad hoc</td>
      <td>89</td>
    </tr>
    <tr>
      <td>KNN</td>
      <td>90</td>
    </tr>
    <tr>
      <td>Réification d'un score Antescofo</td>
      <td>90</td>
    </tr>
    <tr>
      <td>Formats d'entrée/sortie</td>
      <td>90</td>
    </tr>
    <tr>
      <td>III.9. Représentations graphiques de la partition</td>
      <td>90</td>
    </tr>
    <tr>
      <td>Une direction de recherche</td>
      <td>91</td>
    </tr>
    <tr>
      <td>IV. SuperCollider</td>
      <td>93</td>
    </tr>
    <tr>
      <td>IV.1. SuperCollider dans mon travail</td>
      <td>93</td>
    </tr>
    <tr>
      <td>IV.2. Un exemple introductif</td>
      <td>93</td>
    </tr>
    <tr>
      <td>IV.3. Une architecture client/serveur</td>
      <td>95</td>
    </tr>
    <tr>
      <td>IV.4. La structure dynamique d'un graphe audio dans SC</td>
      <td>96</td>
    </tr>
    <tr>
      <td>IV.5. Le choix de scsynth comme moteur audio</td>
      <td>97</td>
    </tr>
    <tr>
      <td>Un choix largement partagé</td>
      <td>98</td>
    </tr>
    <tr>
      <td>IV.6. Extensibilité du serveur scsynth</td>
      <td>99</td>
    </tr>
    <tr>
      <td>V. La librairie AntesCollider : un système dynamique de composition et d'écriture de l'électronique en temps réel</td>
      <td>101</td>
    </tr>
    <tr>
      <td>V.1 De la partition centralisée à AntesCollider</td>
      <td>101</td>
    </tr>
    <tr>
      <td>Motivations</td>
      <td>101</td>
    </tr>
    <tr>
      <td>Objectifs</td>
      <td>102</td>
    </tr>
    <tr>
      <td>V.2. Principales caractéristiques de la librairie AntesCollider</td>
      <td>102</td>
    </tr>
    <tr>
      <td>V.3. Communications entre le serveur scsynth et Antescofo</td>
      <td>104</td>
    </tr>
    <tr>
      <td>V.4. Structuration des traitements scsynth dans la librairie AntesCollider</td>
      <td>106</td>
    </tr>
    <tr>
      <td>V.5. Objets de la librairie AntesCollider</td>
      <td>107</td>
    </tr>
    <tr>
      <td>Sc_server</td>
      <td>108</td>
    </tr>
    <tr>
      <td>Mix_group</td>
      <td>108</td>
    </tr>
    <tr>
      <td>Crea_track</td>
      <td>108</td>
    </tr>
    <tr>
      <td>Crea_aux</td>
      <td>108</td>
    </tr>
    <tr>
      <td>V.6. Exemple d'utilisation</td>
      <td>113</td>
    </tr>
    <tr>
      <td>V.7. Arguments des objets de la librairie</td>
      <td>116</td>
    </tr>
    <tr>
      <td>sc_server</td>
      <td>117</td>
    </tr>
    <tr>
      <td>Arguments des mix_group</td>
      <td>118</td>
    </tr>
    <tr>
      <td>Arguments des mix_group_HOA</td>
      <td>118</td>
    </tr>
    <tr>
      <td>Argument des crea_track</td>
      <td>119</td>
    </tr>
    <tr>
      <td>Argument des crea_track_HOA</td>
      <td>119</td>
    </tr>
    <tr>
      <td>V.8. Les autres ressources de la librairie AntesCollider</td>
      <td>120</td>
    </tr>
    <tr>
      <td>Fonctions utilisateurs</td>
      <td>120</td>
    </tr>
  </tbody>
</table>
<table>
  <tbody>
    <tr>
      <td>Processus</td>
      <td>120</td>
    </tr>
    <tr>
      <td>Objets</td>
      <td>120</td>
    </tr>
    <tr>
      <td>V.9. La visualisation graphique et le contrôle interactif des chaînes de traitements audio</td>
      <td>121</td>
    </tr>
    <tr>
      <td>V.10. Le visualisateur antescollider_spatial_interface</td>
      <td>124</td>
    </tr>
    <tr>
      <td>V.11. Œuvres réalisées avec AnteCollider</td>
      <td>125</td>
    </tr>
    <tr>
      <td>V.12. Futurs développements</td>
      <td>126</td>
    </tr>
    <tr>
      <td>Développements à court terme</td>
      <td>126</td>
    </tr>
    <tr>
      <td>Développements à moyen terme</td>
      <td>126</td>
    </tr>
    <tr>
      <td>Développements à plus long terme</td>
      <td>128</td>
    </tr>
    <tr>
      <td>VI. Paradigmes compositionnels</td>
      <td>130</td>
    </tr>
    <tr>
      <td>VI.1. Quelques éléments biographiques</td>
      <td>130</td>
    </tr>
    <tr>
      <td>La fabrication du son</td>
      <td>131</td>
    </tr>
    <tr>
      <td>L'impact des courants musicaux</td>
      <td>132</td>
    </tr>
    <tr>
      <td>VI.2. Une liberté issue de la diversité et de la plasticité musicale</td>
      <td>133</td>
    </tr>
    <tr>
      <td>« Une inépuisable diversité » comme déterminant de ma poïétique</td>
      <td>133</td>
    </tr>
    <tr>
      <td>Un déploiement entre écoute et possibilités techniques</td>
      <td>134</td>
    </tr>
    <tr>
      <td>L'espace de la représentation</td>
      <td>135</td>
    </tr>
    <tr>
      <td>VI.3. Composition des processus sonores et de leurs interactions</td>
      <td>135</td>
    </tr>
    <tr>
      <td>L'interaction des processus sonores</td>
      <td>135</td>
    </tr>
    <tr>
      <td>Processus sonores et processus informatiques</td>
      <td>136</td>
    </tr>
    <tr>
      <td>VI.4. Utilisation d'algorithmes, de modèles formels et de calculs dans la composition</td>
      <td>137</td>
    </tr>
    <tr>
      <td>VI.5. La composition : un artisanat et une palette en constante augmentation à maîtriser</td>
      <td>139</td>
    </tr>
    <tr>
      <td>VI.6. Écriture du son et de la forme</td>
      <td>140</td>
    </tr>
    <tr>
      <td>VI.7. Au-delà de la notion de temps réel/différé</td>
      <td>142</td>
    </tr>
    <tr>
      <td>Maquettes, écoute intérieure et concrète</td>
      <td>143</td>
    </tr>
    <tr>
      <td>VI.8. Un compositeur doit-il apprendre à programmer ?</td>
      <td>144</td>
    </tr>
    <tr>
      <td>VII. L'espace</td>
      <td>146</td>
    </tr>
    <tr>
      <td>VII.1. L'espace physique</td>
      <td>147</td>
    </tr>
    <tr>
      <td>Une préoccupation ancienne</td>
      <td>147</td>
    </tr>
    <tr>
      <td>Une préoccupation personnelle</td>
      <td>148</td>
    </tr>
    <tr>
      <td>VII.2. Synthèse spatiale</td>
      <td>149</td>
    </tr>
    <tr>
      <td>VII.3. Projet Stück für die Schwerkraft avec la compagnie de théâtre suisse ultra</td>
      <td>159</td>
    </tr>
    <tr>
      <td>VIII. Musiques acousmatiques</td>
      <td>166</td>
    </tr>
    <tr>
      <td>VIII.1. Orchestration de l'électronique dans les pièces électroacoustiques</td>
      <td>166</td>
    </tr>
    <tr>
      <td>VIII.2. Pièces électroacoustiques jouées en live, entre écriture et improvisation</td>
      <td>167</td>
    </tr>
    <tr>
      <td>VIII.3. Curvatura II</td>
      <td>168</td>
    </tr>
    <tr>
      <td>IX. Musiques mixtes</td>
      <td>171</td>
    </tr>
    <tr>
      <td>IX.1. La captation gestuelle</td>
      <td>171</td>
    </tr>
    <tr>
      <td>Les capteurs</td>
      <td>171</td>
    </tr>
    <tr>
      <td>Gestes</td>
      <td>175</td>
    </tr>
    <tr>
      <td>Gestes instrumentaux</td>
      <td>175</td>
    </tr>
    <tr>
      <td>Gestes non instrumentaux</td>
      <td>176</td>
    </tr>
    <tr>
      <td>Mapping</td>
      <td>177</td>
    </tr>
    <tr>
      <td>IX.4. Homotopy</td>
      <td>178</td>
    </tr>
    <tr>
      <td>X. Expériences audiovisuelles</td>
      <td>190</td>
    </tr>
    <tr>
      <td>X.1. Projet GeKiPe</td>
      <td>191</td>
    </tr>
    <tr>
      <td>Architecture et captation</td>
      <td>192</td>
    </tr>
    <tr>
      <td>Mapping dynamique</td>
      <td>193</td>
    </tr>
    <tr>
      <td>X.2. Hypersphère</td>
      <td>194</td>
    </tr>
    <tr>
      <td>X.3. Le Silence</td>
      <td>200</td>
    </tr>
  </tbody>
</table>
<table><tr><td>Système de suivi de gestes</td><td>200</td></tr><tr><td>Écriture de la partition pour l'interprète</td><td>202</td></tr><tr><td>Mapping de la partie vidéo</td><td>203</td></tr><tr><td>X.4. Crossing Points, pour percussions, captation gestuelle, électronique et vidéo en temps réel</td><td>204</td></tr><tr><td>Synthèse concatenative</td><td>205</td></tr><tr><td>Ateliers pédagogiques</td><td>207</td></tr><tr><td>X.5. Las Pintas, œuvre audiovisuelle en temps réel</td><td>209</td></tr><tr><td>Système vidéo eqkoscope</td><td>214</td></tr><tr><td>Conclusion</td><td>217</td></tr><tr><td>Bibliographie</td><td>220</td></tr><tr><td>Glossaire</td><td>229</td></tr></table>
<figure><img src="image_2.png" /></figure>

SORBONNE
UNIVERSITÉ

CRÉATEURS DE FUTURS
DEPUIS 1257

Science et Technologie de la musique et du Son

ircam

<figure><img src="image_3.png" /></figure>

Centre

Pompidou

<figure><img src="image_4.png" /></figure>

<figure><img src="image_5.png" /></figure>

<figure><img src="image_6.png" /></figure>

<figure><img src="image_7.png" /></figure>

SORBONNE
UNIVERSITÉ
# Résumé

Avec l'avènement de l'informatique et son intégration dans le monde de la composition musicale, de nouveaux champs de recherche compositionnelle et sonore se sont ouverts. Mais si l'on voit depuis des années une pléthore de générateurs de son et de nouvelles techniques de synthèse, il y a peu de propositions d'outils qui adressent le contrôle et la construction formelle musicale électronique à plusieurs niveaux et qui permettent une intégration fine de l'écriture et des processus électroniques interactifs en temps réel dans la composition.

Le travail initié dans cette thèse vise à développer, dans le contexte des musiques interactives mixtes, électroacoustiques et audiovisuelles en temps réel, une notion de partition électronique centralisée permettant au sein d'un même environnement la définition, la composition et le contrôle général de tous les processus électroniques, leurs interactions et leurs synchronisations avec les événements musicaux, gestuels et visuels.

L'enjeu artistique est l'écriture et la réalisation d'interactions mettant en rapport la liberté interprétative de l'artiste sur scène et les processus sonores en temps réel à partir de dispositifs de captation efficaces et de mécanismes de synchronisation. La centralisation et la coordination de ces interactions au sein d'une même partition ont pour objectif une intégration fine des processus électroniques dynamiques et génératifs avec différents médias temporels. Le développement des outils informatiques correspondant doit permettre, lors de l'interprétation d'une œuvre musicale ou scénique, de réaliser les relations temporelles complexes exprimées dans la partition, en contrôlant en temps réel les flux d'événements interconnectant les performeurs, la partie électronique, le public, les équipements permettant de gérer les dispositifs scéniques et les systèmes de production, de diffusion et de transformation du son.

En s'appuyant sur des nouveaux langages plus expressifs pour l'écriture de l'électronique comme Antescofo et des systèmes performants de synthèse et traitement du signal comme SuperCollider, ce travail s'est concrétisé par le développement d'une librairie dédiée : AntesCollider. Cette librairie permet d'expérimenter des nouvelles approches de l'écriture de l'électronique à travers l'organisation et la composition de structures sonores, multitemporelles, multi-échelles et de l'interaction. En tirant partie des notions informatiques d'agents, de processus et d'algorithmes temps réel, ces structures sonores peuvent se combiner dynamiquement et polyphoniquement en relation avec des événements externes (captation gestuelle, interconnexion avec d'autres médias), ouvrant vers de nouveaux paradigmes compositionnels et renouvelant la liberté et la plasticité de la création musicale.
# 0. Introduction

## 0.1. De la notation de l'électronique et de l'interaction à la partition centralisée

Le travail de cette thèse porte sur la notation de l'électronique et de l'interaction, dans le contexte de la musique mixte et de la musique électroacoustique (purement électronique). Il défend une notion, la partition centralisée, qui vise à combiner la notation instrumentale et la notation de l'électronique, au sein d'un même document. Et comme le domaine musical s'est élargi aujourd'hui à d'autres médias et d'autres pratiques « mixtes », il s'agit aussi d'inclure dans ce même document la gestion d'autres flux temporisés (lumière, vidéo, mécatronique de scène) et d'intégrer d'autres types de performances (gestes).

L'enjeu artistique est l'écriture et la réalisation d'interactions mettant en rapport la liberté interprétative de l'artiste sur scène et les processus sonores en temps réel à partir de dispositifs de captation efficaces et de mécanismes de synchronisation. La centralisation et la coordination de ces interactions au sein d'une même partition a pour objectif une intégration fine des processus électroniques dynamiques et génératifs avec différents médias temporels.

Cette intégration ne va pas de soi. La question de la notation de l'électronique est toujours vivement débattue. Cette dernière serait par essence procédurale et impliquerait de spécifier tous les paramètres de la fabrication du son, ce qui s'opposerait à la déclarativité et à l'abstraction auxquelles est parvenue la notation occidentale en se focalisant principalement sur les seules hauteur, durée et intensité des sons à produire. Une abstraction désirable car elle permettrait de mieux adresser les problématiques de formes, de polyphonie, d'articulation du discours musical, etc.

Mon travail sur mes propres compositions, mais aussi mon travail de RIM (réalisateur en informatique musicale) [Zat13] pour d'autres compositeurs, m'ont convaincu que cette nature procédurale de la définition du son à produire « reste neutre » par rapport aux autres problématiques plus macroscopiques de l'écriture musicale. Ces problématiques doivent en effet être traitées à un autre niveau de la partition. Encore faut-il pouvoir intégrer au sein de la même partition l'écriture de toutes les parties musicales, et donc aussi la production de l'électronique. Il faut souligner que les intégrer au sein d'un même document ne vise pas à unifier les notations destinées aux instruments et à l'électronique, mais à permettre leur mise en relation explicite afin de faciliter l'écriture de leur polyphonie et de composer leurs articulations.

Cette notion de partition centralisée, qui n'est pas une partition unifiée, a émergé de mon activité de compositeur mais est largement restée utopique par manque d'outils permettant d'incarner cette notion. Un fait nouveau est apparu avec le développement du système Antescofo qui a renouvelé la notion de suivi de partition en couplant une machine d'écoute à un langage de programmation. L'intégration de la fabrication du
son électronique (qui doit être programmé) à la spécification de la partie instrumentale (qui doit être écoutée) devient théoriquement possible. Théoriquement, car Antescofo ne permet pas de spécifier directement la synthèse et la transformation des sons.

AnteCollider, issu de ce travail de thèse, est un système qui vise à doter Antescofo d'une capacité de synthèse et de transformation du son, afin d'offrir un premier exemple de partition centralisée. Dans les faits, les traitements audionumériques sont délégués à SuperCollider, qui est vu comme un moteur de rendu sonore piloté depuis la partition Antescofo.

Cet outil permet de spécifier au sein d'un même document, puis de réaliser lors de l'interprétation d'une œuvre musicale ou scénique, les relations temporelles complexes exprimées dans la partition, en contrôlant en temps réel les flux d'événements interconnectant les performeurs, la partie électronique, le public, les équipements permettant de gérer les dispositifs scéniques et les systèmes de production, de diffusion et de transformation du son.

Notre prototype a été utilisé dans plusieurs compositions qui ont nourri notre réflexion et qui ont permis de valider les développements informatiques. AnteCollider permet d'expérimenter de nouvelles approches de l'écriture de l'électronique à travers l'organisation et la composition de structures sonores, multitemporelles, multi-échelles et de l'interaction. En tirant partie des notions informatiques d'agents, de processus et de réactions, ces structures sonores peuvent se combiner dynamiquement et polyphoniquement en relation avec les autres parties de la partition ou avec des événements externes (captation gestuelle, interconnexion avec d'autres médias) ouvrant vers de nouveaux paradigmes compositionnels et renouvelant la liberté et la plasticité de la création musicale.

La seconde partie de cette thèse est dédiée à la présentation des pièces réalisées avec AnteCollider dans le cadre de ce travail et comment un tel système peut apporter des éléments nouveaux de réponses à des problématiques paradigmatiques de l'activité du compositeur.

L'utilisation d'AnteCollider pour réaliser l'électronique de pièces d'autres compositeurs et l'aboutissement de projets multimédias comme *Las Pintas* (projet audiovisuel) ou impliquant le suivi des gestes du performeur comme *GeKiPe* (projet de suivi de geste en collaboration avec la HEM de Genève) indique clairement que certains mécanismes dédiés dans les langages de programmation – comme le contrôle réactif, les acteurs, la représentation de variations temporelles par des données (plutôt que du contrôle) ou la synchronisation – apportent des réponses concrètes à la notation de l'électronique et de l'interaction, tout en ouvrant un espace de pensée fécond pour la musique en elle-même.

AnteCollider n'est qu'une première étape dans la concrétisation de la notion de partition centralisée. Mais les résultats obtenus m'ont convaincu qu'il faut poursuivre dans cette voie.
## 0.2. Organisation de ce document

Le **chapitre I** élabore la notion de partition centralisée. Celle-ci prend la forme d'une spécification, qui est exécutable par une machine – un programme – pour la partie qui porte sur l'électronique.

Le **chapitre II** esquisse un panorama des outils informatiques développés pour la composition et la performance de l'électronique. Ces outils se distribuent en trois catégories : les systèmes d'aide à la composition, les systèmes pour le contrôle temps réel de la performance et les systèmes de traitement et de synthèse du son. Une partition centralisée est nécessairement à l'intersection de ces trois catégories. L'analyse des outils existants nous amène à développer notre proposition à partir des systèmes Antescofo et SuperCollider.

Le **chapitre III** est une présentation du système Antescofo. Ce chapitre n'est pas une introduction détaillée, l'objectif étant de montrer comment ce système répond à certaines problématiques compositionnelles discutées précédemment. Il s'agit aussi de donner les éléments qui permettent la compréhension des développements de la librairie AnteCollider et les exemples présentés à l'occasion de la description des pièces réalisées dans le cadre de cette thèse.

Le **chapitre IV** remplit un objectif similaire au chapitre III, mais pour le système SuperCollider. Nous nous focalisons sur l'architecture client/serveur qui nous permettra d'adresser directement le serveur comme moteur de rendu sonore, ainsi que sur les propriétés d'extensibilité du système qui sont une garantie de sa pérennité.

Le **chapitre V** détaille la conception et la réalisation de la librairie AnteCollider que j'ai développée au cours de cette thèse. Cette librairie constitue une première incarnation d'un environnement adressant la notion de partition centralisée.

Ce chapitre clôt la première partie de cette thèse. La seconde partie est dédiée à la présentation de plusieurs créations qui ont été développées dans le cadre de cette thèse. Plutôt que de présenter ces pièces une à une, ce qui aurait été peut-être fastidieux et peu éclairant, j'ai choisi de les présenter à travers plusieurs problématiques compositionnelles qu'elles illustrent plus particulièrement.

Le **chapitre VI** présente ma posture de compositeur et mon exigence de liberté musicale. Cette exigence se traduit par un besoin, toujours insatisfait, d'expressivité.

Le **chapitre VII** aborde la thématique de l'écriture de l'espace, qu'il soit utilisé pour localiser et rendre distinguishable des sources sonores, ou au contraire pour réaliser une synthèse spatiale. Le contrôle de l'espace physique est aussi abordé à travers le projet que j'ai mené avec la compagnie de théâtre ultra de Lucerne.

Mon travail sur des pièces purement acousmatiques est traité au **chapitre VIII**, tandis que le **chapitre IX** se concentre sur les pièces de musique mixte.

Enfin, le **chapitre X** aborde la problématique d'une partition centralisée qui intègre une dimension visuelle, à travers la pièce audiovisuelle *Las Pintas* qui a été développée
pour la Satosphère à Montréal, un dôme de projection hémisphérique doublé d'un système de diffusion ambisonique pour la spatialisation du son.

Le dernier chapitre esquisse quelques perspectives ouvertes par ce travail et les travaux futurs que je souhaite entreprendre.

## 0.3. Contributions

Le travail effectué pendant cette thèse s'est concrétisé par le développement logiciel de la librairie AntesCollider.

Cette librairie a été utilisée pour plusieurs créations musicales formalisées dans le cadre de cette thèse et chacune comporte donc aussi d'importants développements logiciels spécifiques (tant dans le langage Antescofo que des patchs Max) aux côtés d'un travail de composition plus classique. Ces pièces ont donné lieu à plusieurs concerts publics, en France et à l'étranger (Pékin, Moscou, Saint-Pétersbourg, Rome, Montréal, Genève).

Mon travail de création musicale a été soutenu par plusieurs résidences obtenues sur concours.

Les idées et les outils issus de ce travail ont aussi largement été diffusés à travers des séminaires et des cours présentés devant un public de musiciens et d'informaticiens dans le domaine de l'informatique musicale.

### Développements logiciels

La librairie AntesCollider est constituée d'une librairie Antescofo et de programmes compagnons en *sclang*. La librairie Antescofo représente 24 239 lignes de code définissant 45 processus, 34 acteurs et 69 fonctions.

J'ai aussi développé antescollider_spatial_interface, un programme de visualisation adapté au contrôle et à la représentation graphique des données issues de modèles physiques que j'utilise pour le pilotage de processus de synthèse. Ce programme représente 2 085 lignes de code.

Ces logiciels sont des logiciels libres. Ils sont actuellement diffusés auprès de quelques compositeurs qui m'en ont fait la demande, mais ils seront accessibles librement avec l'achèvement de mon travail de thèse et après un peu de nettoyage.

### Création musicale en relation avec la recherche

La librairie AntesCollider a été validée à travers plusieurs de mes créations réalisées pendant ce travail de thèse :

* *Hypersphères*, Projet GeKiPe (HEM de Genève) pour un performeur, captation gestuelle et vidéo générée en temps réel, 4 758 lignes de code, durée 10-15 minutes

* *Homotopy* pour percussions, captation gestuelle et électronique, 11 391 lignes de code, durée 17 minutes
* Crossing Points, œuvre collective avec Alexander Vert, Thomas Köppel et Philippe Spiesser pour 5 toms, électronique, captation gestuelle et vidéo en temps réel, 4 390 lignes de code, durée environ 30 minutes

* Curvatura II, œuvre électroacoustique en HOA, entièrement écrite dans le langage Antescofo, 17 442 lignes de code, durée 11 minutes

* Las Pintas, audiovisuel en temps réel et en HOA, 10 192 lignes de code, 25 minutes

* Stück für die Schwerkraft, pièce utilisant un dispositif particulier de 400 trappes pour laisser tomber des objets sur scène, pour la compagnie de théâtre Suisse ultra.

Je cite aussi une pièce antérieure mais qui est la première à utiliser le couplage entre Antescofo et le logiciel SuperCollider :

* Dispersion de trajectoires, pour saxophone baryton et électronique, 15 000 lignes de code, durée d'environ 20 minutes.

Ce travail se complète aussi par la réalisation de l'électronique pour la compositrice Lara Morciano avec les pièces :

* Estremo d'ombra, pour flûte, saxophones, trombone, alto, contrebasse et électronique

* Philiris, pour piano, captation gestuelle et électronique

* Taygeta, pour percussions transducteurs et captation gestuelle

* Lyphira, pour piano, transducteurs et captation gestuelle.

## Concerts en lien avec la recherche

Les événements suivants sont des performances impliquant Antescofo, SuperCollider et/ou AntesCollider :

* 06/02/18 : Perpignan, concert musiques mixtes

* 27/08/18 : Tokyo, Suntory Hall avec Philippe Manoury

* 29/11/18 : Amiens, reprise de la pièce Amas pour 5 instruments et captations gestuelles

* 14/12/18 : reprise de Raggi di stringhe de Lara Morciano à la Cité de la musique

* 22/01/19 : Genève, concert hommage à Eric Daubresse, informatique musicale pour Nachmusik d'Emmanuel Nunes

* 22/02/19 : Perpignan, création de Double jeux pour violon, vidéo et électronique en temps réel

* 19/06/19 : reprise de Raggi di stringhe de Lara Morciano à Dijon
* 18/06/19 : concert au festival Les Musiques du GMEM, informatique musicale pour *Chuchotements burlesques* de Alireza Farhang

* 22/06/19 : concert à ICMC New York, informatique musicale pour *Liphyra* de Lara Morciano

* 15/06/19 : concert hommage à Eric Daubresse au Centre Pompidou, informatique musicale pour *Nachmusik* d'Emmanuel Nunes

* Projet GeKiPe HEM de Genève, captation gestuelle pour performances audiovisuelles en temps réel. Concerts :
  * 06/07/18 : Perpignan
  * 03/08/18 : Pékin
  * 23/11/18 : Saint-Pétersbourg
  * 24/11/18 : Moscou
  * 08/02/19 : Genève
  * 05/07/19 : Rome
  * 05/08/19 : Pékin
  * 14/11/19 : Globe du CERN, Genève

* 18/01/2020 : concert GeKiPe, Perpignan

* 18-19/01/2020 : *Curvatura II*, concert anniversaire de l'Ensemble Vortex de Genève

* 29/02/2020 : *Homotopy*, pièce pour percussions, capteurs et électronique temps réel, Columbia Global Center Paris

* 04/03/2020 : *Las Pintas*, pièce audiovisuelle avec Raphael Foulon (vidéo), concert IrcamLive, Centre Pompidou

* 08-10/07/2020 : enregistrement de *Crossing Points* pour percussions, captation gestuelle et vidéo en temps réel au théâtre de l'Archipel à Perpignan

* 25/09/2020 : *Crossing Points* pour percussions, captation gestuelle et vidéo en temps réel, festival Facyl de Salamanque, Espagne.

Concerts prévus mais annulés en raison des conditions sanitaires en 2020 : Saragosse (Espagne), Saarbrücken (Allemagne), Strasbourg (France).

## Résidence recherche-création

Depuis le début de cette thèse, j'ai obtenu plusieurs résidences en lien avec mon travail :

* du 28/06/18 au 08/07/18 : **Perpignan**, nouvelle création pour violon, électronique et vidéo en temps réel. Suivi audio/vidéo du jeu instrumental

* du 16 au 25/11/18 : Russie, résidence et masterclass au conservatoire Tchaïkovski de **Moscou** et à l'Institut français de **Saint-Pétersbourg** sur Antescofo
* du 23 au 31/01/19 : **Stockholm**, résidence à EMS (Elektronmusikstudion) pour la nouvelle création pour violon avec Diego Tosi, violon et Thomas Penanguer, vidéo

* du 18 au 23/02/19 : **Perpignan**, préparation du concert *Double jeux* pour violon, vidéo et électronique en temps réel

* octobre 2019 : résidence à la SAT (Satosphère) de **Montréal** pour la création de *Las Pintas*, une pièce audiovisuelle avec Raphael Foulon à la programmation vidéo

* 08-11/12/2020 et 15-20/02/2020 : résidence avec la compagnie de théâtre ultra à Lucerne, Suisse, pour le projet Apesanteur : conception, développement et mécatronique d'une machine avec 400 trappes pour faire tomber des objets sur la scène.

## Workshops, séminaires, cours et diffusion

* 22/02/18 : participation au séminaire « Geste » organisé par le Collegium Musicae à l'Ircam.

* 13-14/10/18 : Jussieu, participation à la Fête de la science avec Collegium Musicae. Présentation des capteurs au public dans des gants pour générer différents types de synthèses sonores.

* 29/11/18 : présentation d'informatique musicale au Conservatoire d'Amiens.

* 08/02/18 : présentation/workshop aux Journées de la percussion suisse à Genève.

* 08/02/18 : visite du Globe du CERN pour la préparation d'une conférence et d'un concert en novembre 2019 dans le cadre de leur programme art-science.

* 29/05/19 : présentation Antescofo et AntesCollider pour les réalisateurs en informatique musicale à l'Ircam.

* 29/05/19 : présentation de AntesCollider au Forum Ircam.

* 4-5/06/19 : présentation de Antescofo et AntesCollider au CIRM, Centre national de création de Nice.

* 21/06/19 : présentation de AntesCollider à ICMC 2019 New York.

* 04/06/19 : présentation de GeKipe et Antescofo à l'Instituto Cervantes de Rome dans le cadre du festival Artescienza du CRM (Centro Ricerche Musicali).

* 10/07/19 : présentation de AntesCollider aux chercheurs de GRAME, Centre national de création de Lyon.

* 09/09/2019 : workshop international GeKiPe. Co-organisation du workshop avec Philippe Spiesser, Alexandre Vert et Pierre Donat Bouillud, à l'HEM Genève.
https://www.hesge.ch/hem/en/recherche-developpement/gekipe-conference

Ce workshop sur invitation a réuni les participants suivants : Frédéric Bevilacqua (Ircam, Paris), Rémy Campos (HEAD et HEM, Genève), Philippe Dinkel (HEM, Genève), José Miguel Fernández (Ircam Paris), Jean-Louis Giavitto (CNRS Ircam, Paris), Fabrice Marandola (McGill University, Montréal), Thomas Penanguer (Ensemble Flashback), Giovanni Santini (Hong Kong Baptist University), Philippe Spiesser (HEM, Genève), Rebeca Stewart (Imperial College London), Alexander Vert (Ensemble Flashback), Daniel Zea (HEAD, Genève).

* 15/10/2020 : présentation d'un poster aux Rencontres nationales de recherche en musique.

* 11/02/2021 : présentation (avec Jean-Louis Giavitto) : Antescofo et AntesCollider. Ircam Forum à Montréal (webinaire).

* 12/02/2021 : participation à la table ronde « Composition électronique », Ircam Forum à Montréal.

Un cours d'informatique musicale et de composition à Geïdaï University de Tokyo prévu en novembre 2020 a été annulé suite aux conditions sanitaires.

## Publications

* J.-M. Fernandez, « AntesCollider », Poster présenté à Recherches en musique, Rencontres nationales sur les recherches en musique organisées par la direction générale de la création artistique – Ministère de la Culture, 15 et 16 octobre 2020.

* J.-M. Fernandez, J.-L. Giavitto, « Une codynamique formelle », *Culture et Recherche*, n° 141, printemps-été 2020. Dossier thématique « Cinéma, audiovisuel, son ».

* J.-M. Fernandez, J.-L. Giavitto, P. Donat-Bouillud, « AntesCollider: control and signal processing in the same score », ICMC-NYCEMF 2019 (International Computer Music Conference joined with the New York City Electroacoustic Music Festival), 16-23 juin 2019, New-York. **ICMA Audience Award for Best Paper Presentation**.
# I. Notation de l'électronique et de l'interaction : vers la partition centralisée

La première partie de ce chapitre est dédiée à une remise en perspective d'une problématique souvent soulevée quand on évoque la question de la notation de l'électronique : cette dernière serait par essence procédurale et impliquerait de spécifier tous les paramètres de la fabrication du son, ce qui s'opposerait à la déclarativité et à l'abstraction auxquelles est parvenue la notation occidentale en se focalisant sur les seules hauteur, durée et intensité des sons à produire. Cette problématique est souvent perçue comme un problème, mais ce n'est pas mon ressenti dans ma pratique de compositeur. Le caractère procédural me semble incontournable quand le compositeur veut explorer une matière sonore nouvelle et doit donc nécessairement préciser comment fabriquer ces nouveaux sons, que ce soit à travers des modes de jeu sur les instruments acoustiques ou bien à travers la synthèse audionumérique. Plusieurs éléments tirés de l'histoire de la musique montrent que cette dimension procédurale a toujours été présente.

Mon travail sur mes propres compositions, mais aussi mon travail de RIM (réalisateur en informatique musicale) pour d'autres compositeurs, m'ont convaincu que cette nature procédurale de la définition du son à produire « reste neutre » par rapport aux problématiques de formes, de polyphonie et d'orchestration des différentes sources sonores (instruments, voix, synthèses, effets), à la condition de pouvoir intégrer au sein de la même partition l'écriture de toutes les parties musicales et de leurs relations, y compris pour les parties électroniques.

Ce besoin d'intégrer différentes parties musicales et d'exprimer leurs relations amène à la notion de *partition électronique centralisée*.

Nous évoquerons quelques outils utilisés pour la réalisation de l'électronique mais nous reviendrons plus en détail sur ceux-ci dans le chapitre suivant. Dans le panorama esquissé, nous pointons l'apport du système Antescofo qui a renouvelé la notion de suivi de partition en couplant une machine d'écoute à un langage de programmation. L'intégration de la fabrication du son électronique (qui doit être programmé) à la spécification de la partie instrumentale (qui doit être écoutée par la machine) concrétise cette notion de partition centralisée.

## Organisation du chapitre

Dans ce chapitre, je présenterai quelques éléments historiques sur la notation musicale (section 1), non pas pour en faire une histoire raisonnée, mais pour montrer que le souci procédural (i.e. comment produire le son) a toujours été présent aux côtés du souci déclaratif (i.e. quels sons produire).
Cette problématique est devenue prégnante avec le développement de l'électronique et je présenterai quelques éléments marquants (pièces, compositeurs, outils) qui m'ont particulièrement influencé et qui ont structuré mon questionnement (section 2).

Cette analyse m'amène à défendre l'idée que la notion de programme informatique est une notion recevable quand il s'agit de noter l'électronique et que les langages de programmation sont de facto utilisés pour la spécification de la synthèse et la transformation du son (section 3). La programmation visuelle a souvent été défendue comme facilitant cette notation, que ce soit à travers la programmation à flot de données (*dataflow*) ou bien via la représentation graphique de * timeline * dans les séquenceurs et les DAW (*digital audio workstation*). Nous verrons que même si le caractère visuel de ces formalismes les rend plus accessibles, ils présentent des limitations propres. Les outils correspondants et leurs usages spécifiques seront analysés plus précisément du point de vue de ma pratique personnelle dans le chapitre suivant.

Le suivi de partition, apparu au milieu des années 1980, marque un tournant dans cette histoire et montre avec le système Antescofo (2008) qu'il est possible de joindre utilement partition instrumentale et partition électronique (section 4) et préfigure la notion de partition centralisée.

La dernière section élabore cette notion de partition centralisée, et en particulier le problème de la préservation (section 5). En effet, une notation doit transmettre aux musiciens la musique pour être jouée. Le caractère procédural de la notation de l'électronique, lié à un matériel et à des systèmes logiciels spécifiques, doit faire face à un risque certain d'obsolescence, bien plus marqué que pour les partitions instrumentales. Cette obsolescence s'oppose à l'objectif de transmissibilité associé à la partition. Ce problème excède toutefois largement le cadre de cette thèse.

I.1. Notation procédurale et notation déclarative

La musique, par sa nature, est un art du temps éphémère qui s'apprécie dans l'instant. Mais le besoin de représenter la musique par des symboles comme moyen mnémotechnique et de transmission au-delà de l'instant présent s'est développé dans la plupart des civilisations qui ont développés l'écriture. Les trente-six Chants hourrites, une tablette en argile (qui se trouve au musée du Louvre) trouvée dans la ville syrienne de Ugarit [Nel15], est la plus ancienne notation musicale qu'on connaît. Elle remonte à 1400 av. J.-C.

Cette musique écrite en notation cunéiforme, un hymne au dieu Nikal, est une transcription qui représente une voix et son accompagnement instrumental (lyre ou harpe) ainsi qu'une table contenant l'information de comment accorder l'instrument. Il y a aussi des instructions de comment la musique doit être lue, ce qui n'est pas sans rappeler la notion de programme et de données sur un même support, une pratique que nous pouvons retrouver 3 000 ans plus tard dans les langages de programmation utilisés en informatique musicale [Mag19].
D'une certaine façon, cet exemple montre que le besoin de représenter tous les éléments musicaux sur un même support a toujours existé et constitue un ancêtre de la notion de partition électronique centralisée.

Les éléments musicaux notés relèvent de deux catégories : ceux qui portent sur comment faire le son et ceux qui prescrivent le résultat sonore à entendre. Cette distinction, présente depuis le tout début de la notation, oppose une « notation procédurale » à une « notation déclarative », ce qu'il faut faire versus ce qu'il faut entendre.

Cette distinction entre une notation qui serait de nature déclarative et qui s'opposerait à un style procédural, est une distinction usuelle dans les langages de programmation : un langage déclaratif vise à spécifier ce que le programme doit accomplir en termes de résultat (i.e. le *quoi calculer*) plutôt que de décrire quelle séquence d'actions élémentaires il faut précisément accomplir pour arriver à ce résultat (i.e. le *comment calculer*). La programmation fonctionnelle, la programmation logique ou encore la programmation par contrainte sont des exemples de modèles de programmation qui sont des formes de programmation déclarative. Ces deux notions ne sont cependant pas étanches : les langages logiques peuvent inclurent des mécanismes procéduraux et les langages impératifs, des mécanismes fonctionnels.

Si l'on regarde une partition comme planification des événements musicaux à réaliser pour concrétiser une musique, alors on peut s'apercevoir que la notion de partition et la notion de programme partagent un certain nombre d'objectifs et de propriétés<fnref n="1" /> et l'on comprend mieux que les qualificatifs de déclaratif et de procédural s'appliquent aussi bien aux partitions qu'aux programmes.

La notation occidentale est largement déclarative : une partition de piano décrit les notes à entendre, pas les touches sur lesquelles il faut appuyer<fnref n="2" />. Cette nature déclarative est en partie due à la fixation de l'instrumentarium qui permet de laisser implicite les aspects les plus opérationnels de la production musicale. Ces aspects opérationnels font alors partie de la culture implicite et sont partagés par tous. Elle a aussi été rendue possible en concentrant la description du résultat à produire sur des paramètres relativement faciles à standardiser une fois qu'on accepte de les discrétiser : la hauteur, la durée et l'intensité des sons à produire. Une notion comme le timbre est bien plus difficile à traiter de manière abstraite et bien souvent, la meilleure description existante est celle des conditions de sa production.

Cette évolution vers une notation abstraite, symbolique, déclarative est remise en cause avec l'invention des premiers instruments mécaniques au XVIIe siècle, période qui coïncide aussi avec l'apparition des premières calculatrices mécaniques<fnref n="3" />. Le contrôle de ces instruments se faisait souvent par des cartons perforés pour activer/désactiver

<footnote n="1">¹ Nous reviendrons sur ce point plus loin dans ce chapitre.</footnote>

<footnote n="2">² Comme indiqué précédemment, ces catégories ne sont pas étanches et on peut trouver des informations opérationnelles dans une partition comme l'indication d'un doigté.</footnote>

<footnote n="3">³ https://fr.wikipedia.org/wiki/Calculatrice_mécanique</footnote>
des tuyaux d'orgue et jouer des mélodies. Ces cartons jouent à la fois le rôle de programme et de partition : on peut dire qu'ils constituent une première version des partitions électroniques qui se généraliseront ultérieurement avec les ordinateurs.

Au XXe siècle, avec l'avènement de l'électricité, c'est un changement radical qui s'opère au niveau de la lutherie instrumentale avec l'apparition des premiers instruments électroniques analogiques comme le thérémine, le telharmonium ou les Ondes Martenot, ce dernier étant utilisé par plusieurs compositeurs au XXe siècle. Si ces instruments électriques n'appellent pas nécessairement un changement de nature dans la notation musicale, l'irruption de l'ordinateur bouscule le paysage et, dès les toutes premières expérimentations musicales avec l'ordinateur, les notions de partition et de programme se brouillent (citons le premier enregistrement de musique générée par un ordinateur d'Alan Turing<fnref n="4" /> et la première musique générée algorithmiquement, *Illiac Suite* de Lejaren Hiller et Leonard Issacson).

## 1.2. Sur l'écriture musicale symbolique

Des notions linguistiques peuvent éclairer les nouveaux besoins de notation de l'électronique [Lev13]. Cet angle de réflexion a été développé par le compositeur Fabien Lévi, par exemple, dont je reprends ci-dessous plusieurs développements.

On attribue en général deux fonctions aux écritures, les fonctions *graphémologique* et *grammatologique*. La première considère que l'écriture représente, à travers des signes et signaux, la transcription de ce qu'elle exprime, comme l'écriture musicale ou l'enregistrement car ils renvoient par la lecture de leur transcription à l'action de jouer, à une séquence musicale au même titre que l'écriture linguistique renvoie à une langue orale. Alors que la fonction *grammatologique* a un rapport avec le processus matériel : l'écriture, les signes sont des substances autonomes qui interrogent la pensée et le matériau de ce qu'ils expriment [Lev13].

La notion de *grammatologie* [Der97] explique comment les humains étendent leur mémoire et leurs techniques corporelles au moyen de « suppléments » externes et comment ces inscriptions ne sont pas une représentation ou une reproduction neutre et fidèle mais affectent fortement la nature et la pensée de la chose transcrite. Bernard Stiegler développe la notion de *grammatologie* et introduit ce qu'il appelle « grammatisation » [Sti10] comme « *le processus par lequel le continuum temporel des comportements humains est transformé en un spatial discret, qui permet de les intégrer dans les outils* ».

La notation musicale est pour moi un bel exemple de ce processus de *grammatisation* symbolique qui transforme notre façon de penser la musique. Et en expérimentant de nouvelles procédures sur le signe, on ouvre de nouvelles perspectives musicales. On peut dire que la notation est une technologie qui permet de dépasser une notation qui ne serait qu'analogique (du son à produire), pour développer un système (plus ou moins

<footnote n="4">⁴ https://www.theguardian.com/science/2016/sep/26/first-recording-computer-generated-music-created-alan-turing-restored-enigma-code</footnote>
autonome) avec une logique propre, de nature linguistique et indépendante du son. De nombreuses opérations illustrent cette idée, comme la polyphonie et la permutation avec des inversions, des rétrogradations, des canons, etc., des compositeurs de l'Ars Nova<fnref n="5" /> au sérialisme intégral, en passant par d'autres opérations comme la modification de la vitesse, le filtrage, la lecture à l'envers ou le micro montage dans les musiques électroacoustiques. Ce sont des opérations qui ont un sens dans le monde de l'écriture et qui trouvent ensuite un sens dans le monde sonore. La notation crée un espace de pensée qui se distingue de la chose pensée, ce qui permet l'abstraction.

La notation musicale symbolique (qui correspond ici à une « notation déclarative ») a permis d'expérimenter de nouvelles formes avec différents styles et techniques musicaux jusqu'à nos jours. Elle est aussi devenue de plus en plus complexe et de plus en plus précise. Dans la musique baroque, par exemple, la partition décrivait une sorte de squelette musical que les instrumentistes devaient remplir avec des ornements. Pendant cette période baroque, la distance entre la chose écrite par le compositeur et celle jouée par l'interprète était plus grande que dans des périodes postérieures où cette distance devint nulle grâce à une notation de plus en plus précise, ne laissant que l'aspect interprétatif aux instrumentistes.

Cette quête de précision aboutit paradoxalement à des pièces où l'écriture est d'une telle complexité que cette précision rythmique se perd à l'interprétation pour laisser place à une improvisation dirigée, par exemple dans l'école de la *nouvelle complexité* (new complexity, terme assez vague puisqu'on ne sait pas s'il désigne la complexité de la pensée compositionnelle, celle de la notation, celle de l'interprétation ou celle de la perception [Lev13]). Dans ce courant, l'extrême complexité rythmique de l'écriture instrumentale rend la partition imprécise dans son interprétation du fait que les rythmes exprimés sont impossibles à réaliser par un être humain. Cette imprécision est voulue par les compositeurs et permet de faire émerger de l'interprétation des sonorités qui ne sont finalement pas perceptibles dans la densité de l'écriture. À propos de *Unity Capsule* pour flûte solo de Brian Ferneyhough, le compositeur Fabien Levy écrit :

> « La difficulté de la notation-interprétation lui permet de créer un certain nombre de modes de jeux jugés normalement "indésirables" (sons impurs, soufflés, différentes embouchures, multiphoniques) et d'atteindre, selon sa volonté, une diversité de couleurs proche des phonèmes de la voix. L'interprète est dans un état continuel de "surprise d'exécution". » [Lev13]

Mais pour le compositeur américain Curtis Roads :

> « La densité de ces partitions était cependant le signe d'un affaiblissement du langage musical. Il fallait de plus en plus du symbolisme pour exprimer de moins en moins de l'audible. » [Roa15]

Parallèlement à cette complexification de la notation, on peut constater une autonomisation croissante de l'écriture par rapport à la chose dénotée. On est passé par

<footnote n="5">⁵ Par exemple la célèbre composition de Guillaume de Machaut, *Ma fin est mon commencement*.</footnote>
plusieurs configuration harmoniques (« modales », « tonales ») pour arriver à une égalité entre les hauteurs dans le sérialisme et à une autonomie généralisée avec le sérialisme intégral. Tout intervalle étant égal à tout autre, et toute valeur de paramètre à une autre, le côté référentiel de la notation s'abolit pour se focaliser sur le jeu de combinatoire formelle propre à la notation pure.

À côté de ces enjeux et de ces développements de la notation symbolique et abstraite, des recherches sur la « notation procédurale » se développent en relation directe avec l'idée d'écriture du son. Par exemple, le compositeur Helmut Lachenmann dans sa « musique concrète instrumentale » essaye de décrire comment jouer les instruments pour produire un son avec une énergie et un timbre déterminés plutôt que de décrire des paramètres musicaux traditionnels précis (hauteurs, rythmes, nuances, etc.):

> « Cela signifie une musique dans laquelle les événements sonores sont choisis et organisés de telle sorte que la manière dont ils sont générés est au moins aussi importante que les qualités acoustiques qui en résultent d'elles-mêmes. Par conséquent, ces qualités, telles que le timbre, le volume, etc., ne produisent pas de sons pour elles-mêmes, mais décrivent ou dénotent la situation concrète : en écoutant, vous entendez les conditions dans lesquelles un son ou action bruitée est effectuée, vous entendez quels matériaux et énergies sont impliqués et quelle résistance est rencontrée.<fnref n="6" /> »

Dans la notation de Lachenmann, il y a tout de même une grande composante de tradition orale, puisque les signes qu'il utilise dans ses partitions pour générer des sonorités ne représentent pas le résultat sonore désiré, il faut donc décrire à l'instrumentiste comment jouer, oralement ou à travers un enregistrement audio/vidéo. C'est une problématique qu'on retrouve aussi dans les représentations graphiques de l'électronique, surtout quand on travaille avec des sons et des superpositions complexes : on ne peut pas décrire très précisément le résultat sonore avec une représentation graphique symbolique, on peut seulement décrire ses contours, une idée qualitative de son amplitude, etc.

Il faut noter que d'autres expérimentations ont vu le jour au XXᵉ siècle, comme les notations graphiques, ou programmatiques<fnref n="7" />. Ces notations expérimentales qui ont proliféré entre les années 1950 et 1970 ont commencé par la suite à être de moins en moins utilisées parce que difficiles à étudier, chacune présentant des caractéristiques différentes pour chaque pièce, et les instrumentistes n'étant pas entraînés à lire ces partitions graphiques comme pour la notation symbolique sur une portée. Selon le compositeur Luciano Berio :

<footnote n="6">⁶ Slought Foundation Online Content (7 April 2008), musique concrète instrumentale: Helmut Lachenmann, in conversation with Gene Coleman, https://slought.org/resources/musique_concrete_instrumentale (retrieved 30 March 2021).</footnote>

<footnote n="7">⁷ Cette notation programmatique spécifie une série d'instructions à suivre pour le déroulé de la pièce, par exemple pour certaines pièces de John Cage, la Mount Young, etc.</footnote>
« An ultimate sign of the gap between thought and acoustic end-result came about when the musical score became an aesthetic object to be admired only visually – the eye becoming the substitute for the ear... It may evoke the "beauty" of Bach's manuscripts or the "uglines" of Beethoven's sketches; but that "beauty" and "ugliness" have nothing to do with musical processes and functions. » [Ber06]

## I.3. L'émergence d'un espace de pensée acousmatique

Si l'écriture symbolique traditionnelle a permis le développement d'un espace de pensée musicale propre, elle est prisonnière des conditions de son avènement : les hauteurs ont été discrétisées et les rythmes simplifiés par un principe de division qui ne recouvre que le domaine atteignable par des instrumentistes humains et des instruments acoustiques qui ont été fabriqués pour un genre de musique en demi-ton. L'écriture symbolique, par sa traduction en signes abstraits, transforme et simplifie l'information musicale. Avec l'avènement des instruments électroniques, ces limites seront surpassées et il faudra recourir à des systèmes d'écriture numérique.

La musique électroacoustique est sans doute l'une des plus importantes révolutions du XXᵉ siècle dans le domaine de la musique d'exploration. Qu'elle provienne des premières expérimentations de la musique concrète de Pierre Schaeffer ou des expériences avec des synthétiseurs dans le studio de Cologne dans les années 1950, elle a pris un chemin complètement différent des notions d'écriture instrumentale traditionnelle pour créer son univers, son solfège, son langage et des écritures propres fondées sur des techniques spécifiques. Ces techniques, sonorités et morphologies, diffusées par des haut-parleurs et fondées sur le paradigme du son et du déroulement énergétique, se sont installées dans la composition contemporaine à partir des années 1950, et ont même été une inspiration pour beaucoup de compositeurs issus du monde instrumental. György Ligeti n'aurait sans doute pas écrit les œuvres emblématiques *Atmosphère* et *Lontano* sans être passé par l'expérience de la composition électroacoustique :

« Une chose est sûre : la pratique de la composition électronique nous a enrichis ; de nouvelles catégories musicales en sont nées et de nouveaux mondes de l'imagination sonore et formelle ont été explorés. » [Lig14]

La musique acousmatique<fnref n="8" /> est généralement conçue dans un contexte plus souple au niveau temporel et du son que la musique instrumentale du fait qu'on ne se base pas sur une grille temporelle et de hauteurs prédéterminée. La musique acousmatique présente des éléments d'écriture basés sur des techniques opérationnelles de manipulation et de synthèse du son. Ces opérations de composition, construction et manipulation sonores reposaient au début sur des techniques difficiles à mettre en

<footnote n="8">⁸ Terme repris par Pierre Schaeffer dans son *Traité des objets musicaux* à Jérôme Peignot qui le cite dans un article de critique du premier concert de musique concrète à Paris en 1948. Dans le dictionnaire de Littré, au XIXᵉ siècle, une acousmie est un bruit dont on ignore la cause [Van17].</footnote>
œuvre, comme découper et coller des bandes magnétiques ou piloter des générateurs sinusoïdaux à la main. La situation a considérablement changé avec l'avènement de l'informatique, et notamment les logiciels de montage (comme ProTools<fnref n="9" />) et les techniques d'enregistrement numérique qui facilitent grandement la création, la manipulation et le montage des sons :

> « Le montage est l'essence même de l'écriture sur support (celle des "sons fixés" selon la terminologie de Michel Chion<fnref n="10" />), qui permet les possibilités musicales offertes par l'acte, très déterminé, de couper, coller, interrompre, insérer, changer de plan (au sens cinématographique), faire apparaître ou disparaître un événement sans avertissement et comme par enchantement, celui de nos arrières-grand-mères devant les films de Méliès, créer des êtres sonores chimériques. Il s'agit donc, depuis que la musique électroacoustique existe grâce à la bande magnétique, de "couper" résolument dans un déroulement temporel. » [Van17]

La musique acousmatique et sa façon d'écrire et composer, ainsi que sa perception du son comme une morphologie forme/matière [Sch66] sont un apport fondamental au paradigme du son dans la composition contemporaine :

> « L'écriture et la perception morphologiques sont sans doute une des révolutions musicales du XXe siècle. Le fait d'écrire directement sur support, de pouvoir réécouter à satiété (le « rimage » de François Bayle [Bay93]) des sons très courts comme des séquences entières, fait prendre conscience qu'un son ne s'entend pas seulement comme fréquence, durée, spectre harmonique, mais aussi comme déroulement temporel d'une enveloppe d'amplitude : attaque, entretien, chute (forme), avec sa vie interne et ses caractères de grains (matière). » [Van17]

<figure><img src="image_8.png" /><figcaption>**Fig. 1.1** Schéma proposé par la compositrice Annette Vande Gorne pour évoquer les différentes étapes de travail en studio, incluant des étapes d'écriture par montage et mélange [Van17].</figcaption></figure>

L'écriture « analogique » des sons fixés est aussi susceptible d'offrir une logique propre reliée à la logique du support comme la lecture à l'envers, la substitution d'attaque, le micro montage, l'interpolation, l'incrustation, les objets composites, les

<footnote n="9">⁹ https://fr.wikipedia.org/wiki/Pro_Tools</footnote>

<footnote n="10">¹⁰ Chion M., 1991, L'art des sons fixés, Fontaine : Metamkine, Nota-bene, Sono-Concept, p. 101.</footnote>
jeux sur le spectre, les jeux sur le temps et, particulièrement important dans ma démarche, les jeux sur l'espace [Van17]. Ces procédés, par un processus similaire à celui à l'œuvre dans la notation symbolique, deviennent des éléments formels de l'espace de pensée du compositeur au-delà de la manipulation de la matière sonore auxquels ils réfèrent.

On peut observer que l'écriture dans les pièces acousmatiques est souvent (mais pas toujours) plus centrée sur la composition du son lui-même que sur l'écriture rythmique, contrepointiste et par processus à plus grande échelle. Elle a aussi la particularité d'être composée en temps différé et fixée sur un support, ce qui enlève un caractère jusqu'à présent intrinsèque à toutes les musiques : l'interprétation. À ce propos, Pierre Schaeffer écrivait :

> « Étais-je ou non à un poste de commandement ? Devait-on régler une fois pour toutes le volume des haut-parleurs, ou fallait-il, selon une vague intuition, répondre par une présence à la présence du public, ne pas le laisser seul en face des tourne-disques, et ajouter une marge d'exécution, si minime fût-elle, à la reproduction automatique de l'enregistrement ? C'est après coup que je me rendis compte de mon audace légitime. Il fallait en effet être présent, et, si peu que ce fût, (apparemment), interpréter. »

[Sch52]

Ce manque d'interprétation et de performeurs dans les musiques acousmatiques est surmonté par la pratique de l'interprétation des pièces acousmatiques qui est devenue une discipline à part entière et qui donne un relief supplémentaire à la musique du fait de la projeter dans un orchestre de haut-parleurs (acousmonium) et de jouer en même temps avec le lieu de diffusion ainsi qu'avec le nombre, la nature et la disposition des haut-parleurs. Cette démarche est aussi le résultat d'un fait technique et historique : les premières pièces acousmatiques étaient en mono ou stéréo. C'est seulement à partir des années 1990 que les acousmaticiens ont eu largement accès à des enregistreurs abordables 8 pistes (ADAT ou DA88). À partir de ce moment, on voit deux directions différentes dans l'utilisation de l'espace dans la musique acousmatique : d'un côté, il y a des pièces en format stéréo qui seront interprétées et diffusées dans un acousmonium, et de l'autre des compositions où la spatialisation des sons dans le discours musical est intégrée à l'acte de composition lui-même (je reviendrai sur cette thématique à propos de la synthèse spatiale). Par exemple, aujourd'hui, grâce à de nouvelles techniques comme l'ambisonie [Ger73] ou le VBAP [Pul97] (entre autres), il est possible de reproduire et restituer une information spatiale même très élaborée vers différents types de configuration de haut-parleurs.

La musique acousmatique ouvre un nouveau monde de possibilités de compositions et d'articulations sonores qu'il n'était pas possible d'imaginer dans le monde instrumental. Ma pratique de la composition dans ce domaine m'a permis de dégager quelques réflexions, en particulier sur :

* l'orchestration de l'électronique ;

* l'adaptation au lieu de diffusion permise par le temps réel ;
* et la spatialisation non seulement comme un paramètre supplémentaire mais comme un constituant de la morphologie du son et de la forme.

Ces notions seront abordées dans la seconde partie de cette thèse, lors de la présentation des pièces produites au cours de ce travail.

## I.4. La partition électronique

> « La notation musicale traditionnelle n'a pas été conçue pour décrire la musique dans laquelle le timbre, les textures statistiques, et les qualités spatiales sont l'objectif principal. » [Roa15]

> « Une partition de musique instrumentale symbolise les sons par des notes : la notation permet de les évoquer, et connaissant les instruments et les modes de jeu – par exemple un sol grave de violon pizzicato – on peut se donner une idée assez précise de l'effet sonore et recourir à l'écoute intérieure. Mais une telle description n'est pas d'une grande aide pour spécifier un son désiré à un programme d'ordinateur qui doit le calculer. L'ordinateur respecte rigoureusement les ordres des données et réalise le son sur plan exactement comme on lui a demandé : il faut tout lui dire, lui prescrire tous les détails de facture. » [Ris80]

Avec l'avènement de l'informatique musicale, de nouveaux types de partitions ont vu le jour, il s'agit des « partitions électroniques » ou partitions informatiques. Ces partitions, par analogie avec les partitions instrumentales, auront comme but d'écrire les éléments constituants de la partie électronique pour l'enregistrer et la reproduire ultérieurement en temps différé pour la première génération des logiciels de création musicale, et en temps réel à partir de la génération suivante.

La notation de l'électronique est par essence procédurale<fnref n="11" /> car, à la différence de la notation instrumentale, les instruments électroniques ne sont pas « stabilisés ». L'ordinateur est « universel » (il peut faire n'importe quel calcul) et il n'est donc pas comparable à un instrument. Mais il peut les émuler tous. Dans le monde des partitions informatiques, la séparation historique entre instruments physiques acoustiques et partitions symboliques sur papier se brouille donc pour donner lieu à un nouveau type de partition où tous les éléments sont interdépendants et existent en tant que programmes avant de générer du son. L'instrument s'adapte à la partition et inversement du fait que la morphologie sonore et musicale est un mix entre le timbre et son déroulement temporel. L'instrument peut se métamorphoser continuellement

<footnote n="11">¹¹ Il faut cependant prendre garde à une confusion possible : si l'électronique est notée dans un style procédural, par exemple en spécifiant précisément l'évolution des paramètres d'une synthèse au cours du temps, le langage informatique qui permet de définir cette évolution peut relever du paradigme déclaratif. La notation résultante sera plus concise et plus abstraite que dans un langage impératif, mais ne remet pas en cause la nature opérationnelle de la spécification de l'électronique.</footnote>
dans le temps et ces changements d'états continus sont décrits dans la partition et, en même temps, la partition est l'instrument qui se déploie dans le temps.

Le programme et les langages de programmation deviennent le moyen de définir les instructions musicales à réaliser. De manière similaire à la partition instrumentale qui instruit le musicien de ce qu'il faut faire, le programme instruit l'ordinateur des calculs à effectuer. Il y a donc une certaine analogie entre la notion de partition instrumentale et la notion de programme. On pourrait dire que le programme est une partition, la « partition électronique »<fnref n="12" /> :

<table><thead><tr><td>Partition</td><td>Programme</td></tr></thead><tbody><tr><td>Réalisée par le compositeur</td><td>Réalisé par le compositeur ou un RIM</td></tr><tr><td>Interprétée par un humain</td><td>Interprété par une machine</td></tr><tr><td>Instruments acoustiques</td><td>Instruments numériques, synthétiseurs</td></tr><tr><td>Écriture en notation symbolique standardisée</td><td>Écriture dans un langage de programmation ad hoc décrivant les éléments de l'électronique, des programmes (fonction, processus, objets) pour générer de la musique électronique et des actions (événements discrets, contrôles continus, etc.)</td></tr><tr><td>Interprétation de la partition</td><td>Exécution du programme</td></tr><tr><td>Partition d'orchestre</td><td>Programme parallèle (partition centralisée)</td></tr><tr><td>Notation déclarative (à l'exception de la notation procédurale, comme dans l'écriture de modes de jeu chez Lachenmann)</td><td>Notation déclarative et procédurale (Antescofo)</td></tr><tr><td>Partition écrite horizontalement (en parallèle)</td><td>Code écrit séquentiellement</td></tr></tbody></table>

<footnote n="12">¹² Cependant, malgré ces convergences, le statut d'une partition et celui d'un programme diffèrent. « Si partition et programme sont tous deux écrits par un humain pour être ensuite interprétés, la partition musicale est interprétée par des humains et le programme par des machines. En conséquence, les relations attendues entre la musique écrite et ses interprétations divergent de celles voulues entre un programme et son exécution. Guerino Mazzola parle de la partition comme d'un geste surgelé qu'il faut dégeler lors de l'interprétation. Mais ce réchauffement ne peut se comparer à l'exécution d'un programme informatique : c'est un processus ouvert qui demande une création de l'interprète qui échappe aux spécifications de la partition afin, comme l'exprime Theodor Adorno, de passer d'un état solide à l'état liquide de la musique. » Jean-Louis Giavitto, « Du temps écrit au temps produit en informatique musicale » in *Produire le temps*, Hermann 2014.</footnote>
**Fig. 1.2** Tableau comparatif entre une partition et un programme.

## Le paradigme orchestre/score

Historiquement, le premier son synthétique réalisé par ordinateur dans le programme Music I développé par Max Mathews en 1957 aux Bell Labs<fnref n="13" />, est tout d'abord un programme informatique. Dès l'apparition de ces premiers sons numériques, le mariage entre partition et programme informatique donne naissance à un nouveau concept où un programme *dans un langage dédié* sous forme de description de l'instrument et son déploiement temporel est en même temps sa propre partition électronique. C'est aussi le concept qu'a adopté Max Mathews dans la famille des logiciels de synthèse MUSIC-N avec le développement de la notion de *Unit Generators*<fnref n="14" /> pour avoir un système de synthèse le plus flexible possible pour la création d'instruments numériques. Ces familles de langages sont déclaratives : l'utilisateur va définir différents événements musicaux dans une partition ou « score » et puis sera le compilateur qui organisera et mettra en œuvre les calculs nécessaires.

<footnote n="13">13 https://fr.wikipedia.org/wiki/Laboratoires_Bell</footnote>

<footnote n="14">14 Les *Unit Generators* (UGen) sont des blocs de construction atomiques, souvent prédéfinis, pour générer ou traiter des signaux audio. En plus des entrée/sortie audio, une UGen prend en charge un certain nombre d'entrées de commande qui contrôlent les paramètres associés à l'UGen.</footnote>
<figure><img src="image_9.png" /><figcaption>**Fig. 1.3** Extrait d'une partition en MUSIC V : à gauche, la description de l'instrument ; à droite, les notes « NOT » avec leur date de départ pour jouer l'instrument (numéro 5). Extrait de l'analyse de la bande magnétique de l'œuvre de Jean-Claude Risset, *Inharmonique*, par Denis Lorrain<fnref n="15" />.</figcaption></figure>

En 1968, le programme MUSIC V est le premier système de programmation de musique à être implémenté dans un langage de haut niveau, le FORTRAN<fnref n="16" />. Cela signifiait que MUSIC V pouvait être porté sur n'importe quel système informatique exécutant FORTRAN, ce qui a grandement contribué à la fois à son utilisation généralisée dans la communauté d'informatique musicale et à son développement ultérieur. MUSIC V est le dernier et le plus mature des langages de synthèse de Max Mathews aux Bell Labs et il est probablement le langage de musique informatique le plus influent. Les descendants directs incluent MUSIC 360 (pour l'IBM 360) et MUSIC 11 (pour le PDP-11) de Barry Vercoe et ses collègues du MIT. On peut citer aussi Cmusic de F. Richard Moore qui est plus tardif.

Ces systèmes ajoutaient beaucoup de flexibilité syntaxique et logique, mais au fond restaient fidèles aux principes des langages MUSIC-N : la connexion de Unit Generators et le traitement séparé de la synthèse sonore .orc (orchestre) et de l'organisation musicale .sco (partition). Selon J.-C. Risset :

> « Une partition MUSIC V donne comme une partition habituelle la disposition des sons, mais de plus elle spécifie intégralement la structure des sons "composés" comme des accords. » [Ris80]

<footnote n="15">¹⁵ http://articles.ircam.fr/textes/Lorrain80a/</footnote>

<footnote n="16">¹⁶ https://fortran-lang.org</footnote>
MUSIC V reste un modèle pour de nombreux autres langages et environnements de programmation pour la musique jusqu'à nos jours. Ce paradigme orchestre/score ou tout simplement partition selon ses utilisateurs [Ris80], a aussi été adopté postérieurement, par exemple dans des logiciels tels que Csound, Cmusic, Cmix ou CLM<fnref n="17" />. À l'époque des MUSIC-N, ce système d'écriture servait à donner les instructions à l'ordinateur qui après un temps de calcul « off line » donnait le résultat de ce rapport entre instruments numériques et partition pour le déploiement temporel des instruments et leurs paramètres.

1 ▼ (definstrument simp (start_time duration frequency amplitude)
2 ▼ (let* ((beg (floor (* start_time *srate*)))
3     (end (+ beg (floor (* duration *srate*))))
4     (j 0))
5 ▼ (run
6     (loop for i from beg below end do
7         (outa i (* amplitude (sin (* j 2.0 pi (/ frequency *srate*))))))
8     (incf j)))))
9
10
11 (with-sound () (simp 0 0.25 440.0 0.2)))

<caption>**Fig. 1.4** Exemple d'un instrument dans l'environnement de programmation Common Lisp Music (CLM). On définit un instrument *simp* entre la ligne 1-8 avec une fonction *sin* pour générer un oscillateur pour être joué à la ligne 11 (*with-sound*) avec ses paramètres *start_time*, *duration*, *frequency* et *amplitude*.</caption>

<footnote n="17">¹⁷ https://ccrma.stanford.edu/software/snd/snd/clm.html</footnote>
```c
<CsoundSynthesizer>
  <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac ;;;realtime audio out
    -iadc ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime output leave only the line below:
    ; -o oscils.wav -W ;;; for file output any platform
  </CsOptions>
  <CsInstruments>
    < instr 1>
      <ksmps 32>
      <nchnls 2>
      <odfs 1>
      < instr 1>
        <iflg p4>
          <asig oscils .7, 220, 0, iflg>
            <outs asig, asig>
          </asig>
        </iflg>
      </instr>
    </ksmps>
  </CsInstruments>
</CsoundSynthesizer>
```

**Fig. 1.5** Exemple d'un instrument simple avec un générateur *oscils* (oscillateur) dans l'environnement de programmation Csound. Comme dans MUSIC V, on définit des paramètres de base comme le taux d'échantillonnage (*sampling rate*), le taux de contrôle (*control rate*), puis l'instrument *instr 1* et à la fin le score pour jouer l'instrument *instr 1* « i 1»<fnref n="18" /> avec ses paramètres.

## Trois générations de langage

On peut dire que la famille des logiciels MUSIC-N correspond à la première génération des langages pour la synthèse et la composition musicale de l'électronique.

<figure><img src="image_10.png" /></figure>

**Fig. 1.6** Schéma chronologique de représentation de trois générations de logiciels pour la composition et la synthèse et traitement du son.

Chronologiquement, une deuxième génération de logiciels voit le jour et, à la différence de la famille MUSIC-N qui est un langage textuel, cette nouvelle génération sera basée sur la programmation visuelle (*data flow*). Max et sa librairie audio MSP [Zic98] [Puc02] ainsi que la version open source Pd [Puc96] sont des logiciels de cette deuxième génération et ils partagent avec la première génération l'utilisation et le concept des *Unit Generators*. Les connexions entre les différentes *Unit Generators* se font par des câbles virtuels, un circuit qu'on appelle « *patch* ».

<footnote n="18">¹⁸ http://www.csounds.com/manual/html/</footnote>
Dans cette famille de logiciels graphiques *data flow*, il y a une correspondance directe entre le programme graphique et les générateurs de son (*Unit Generators*) sous-jacents. La nouveauté principale de cette famille est qu'ils générèrent le son en temps réel, ce qui présente plusieurs avantages comme le jeu en interaction avec des musiciens pendant l'exécution de la musique ou le fait de ne pas devoir stocker et préenregistrer des fichiers sons et limiter l'utilisation de mémoire. Cette famille de logiciels a été conçue à l'Ircam par Miller Puckette dans un contexte de création et composition musicales, en particulier pour les créations des pièces mixtes de Philippe Manoury, et aussi pour des besoins techniques et pratiques de contrôle. M. Puckette ne voulait pas reproduire l'expérience où pour faire une seule production à l'Ircam, il aurait fallu trois ans et quatre chercheurs :

« “Si on voulait que la musique numérique temps réel croisse et devienne importante dans le monde, il fallait un système où un compositeur seul pouvait faire une pièce<fnref n="19" />”, c’était ça le but principal qu’il avait quand il a mis tous ses éléments ensemble dans un Macintosh de façon graphique et utilisable par les non-programmeurs en principe. L’introduction des interfaces graphiques dans cette famille a grandement facilité le contrôle, se rapprochant des instruments acoustiques, on va pouvoir expérimenter et jouer les sons de synthèses à travers le changement des paramètres directement avec la souris de l’ordinateur ou avec différents types d’interfaces de contrôles physiques. »
Pour Philippe Manoury l’interface graphique donnait aussi un accès plus intuitif pour un compositeur que la programmation en texte, il était possible de contrôler le son en temps réel avec des boutons, sliders, etc., ce qui était une grande avancée. « Il n’y avait plus besoin de formaliser numériquement une structure de timbre, car on pouvait la construire et la faire varier d’une façon analogue à celle d’un musicien qui produit le son par une variation de souffle ou une pression de l’archet. » [Man97]

Une notion informatique de contrôle commence aussi à émerger avec la possibilité de programmer des interactions et des structures musicales plus complexes, mais la notion d'un contrôle temporel général, fin et dynamique reste toujours difficile à implémenter dans les systèmes *data flow*.

On peut repérer une troisième génération de logiciels pour la synthèse sonore et de composition tels que SuperCollider [MC02] qui sera décrit dans le prochain chapitre, ou ChucK [WC03]. Ils sont aussi conçus pour réaliser des opérations en temps réel, et la distinction entre orchestre et score est moins évidente. Il peut y avoir des cas où l'orchestre et le score ne se différencient pas, par exemple avec les SuperCollider Tweets<fnref n="20" /> (code condensé pour générer des petits morceaux de musique électronique).

Cette intégration étroite entre un système de synthèse sonore et un langage plus expressif, généraliste, permet de coupler, d'intégrer et d'expérimenter des idées de

<footnote n="19">¹⁹ JIM 2020, https://www.youtube.com/watch?v=GKsZ5pDgOmI&t=5039s</footnote>

<footnote n="20">²⁰ https://ccrma.stanford.edu/wiki/SuperCollider_Tweets</footnote>
synthèse et de composition avec une grande souplesse. De plus, le langage SuperCollider (slang), qui ressemble en partie aux langages de programmation Smalltalk<fnref n="21" /> et C, est orienté objet et fournit un large éventail de constructions de programmation expressives pour la synthèse sonore et la programmation d'interfaces utilisateur.

Cette intégration entre un système de synthèse puissant et un langage expressif dédié à la musique est à la base de la conception de la librairie pour l'écriture de partitions électroniques centralisées AntesCollider qui sera décrite dans les chapitres suivants.

<figure><img src="image_11.png" /><figcaption>**Fig. 1.7** Exemple de SuperCollider Tweets, chaque ligne correspond à une musique ou morphologie sonore pour être partagée sous forme de Tweet : « A popular way to share SuperCollider code is to post it to the social networking site Twitter. This site imposes a restriction on the length of posts, limiting them to 140 characters or less. Creating an interesting sound or piece of music within this constraint has proven to be a popular challenge. »</figcaption></figure>

Un autre exemple d'une intégration entre orchestre et score, dans cette troisième génération, est le langage ChucK pour le *live coding*<fnref n="22" />. La syntaxe de ChucK va permettre de faire des connexions entre les *Unit Generators* ou modules de traitement, ainsi que le changement des paramètres dynamiquement, « à la volée », pendant que le programme s'exécute.

Cette modalité de « programmation à la volée », ou écrire les événements électroniques et les évaluer en temps réel pour créer et contrôler les chaînes de synthèse constitue de toute évidence un renouvellement de la dichotomie historique entre composition et interprétation ainsi que de la modalité de l'écriture de l'électronique. La programmation, l'écriture et l'interprétation de la musique se centrent ici sur l'improvisation avec l'écriture directe à partir d'un code. Le live coding postule que la programmation en code directement sur scène (l'écriture du code est projetée sur un écran sur scène en direct) a aussi un caractère d'interprétation et performance. Du point de vue de la composition et de l'écriture, cette technique peut servir de moyen d'expérimentation ou de recherches sonores et paramétriques qui seront, par la suite, fixé dans un code informatique pour être exécutés ultérieurement pendant le concert.

<footnote n="21">²¹ https://fr.wikipedia.org/wiki/Smalltalk</footnote>

<footnote n="22">²² https://fr.wikipedia.org/wiki/Live_coding</footnote>
Cette fonctionnalité d'évaluer des bouts de code à la volée tient une place centrale dans mon travail, en facilitant énormément l'expérimentation et l'écoute. Elle a aussi été implémentée dans Antescofo grâce à une commande qui permet d'envoyer des fragments de programme (en OSC) à partir d'éditeurs de texte (Sublime Text<fnref n="23" /> [alt + p] ou ATOM<fnref n="24" /> [alt-cmd-n]) vers l'interprète qui les évalue dynamiquement. Cette technique est largement utilisée dans la librairie AnteCollider pour faire du *live coding* et expérimenter et tester d'une façon dynamique différentes idées.

Une autre caractéristique technique de ChucK est qu'à la différence d'autres logiciels « classiques », il ne fait pas de distinction entre la fréquence d'échantillonnage pour l'audio et pour le contrôle. Cette technique a aussi été explorée dans un prototype prometteur [DGCNO16] d'intégration entre le langage Antescofo et le programme de synthèse FAUST. Cette évolution rend encore plus artificielle la distinction entre partition et instrument qui devient une différence de degré plutôt que de nature.

1 // basic FM synthesis using sinosc
2
3 // modulator to carrier
4 SinOsc m => SinOsc c => dac;
5
6 // carrier frequency
7 220 => c.freq;
8 // modulator frequency
9 20 => m.freq;
10 // index of modulation
11 200 => m.gain;
12
13 // phase modulation is FM synthesis (sync is 2)
14 2 => c.sync;
15
16 // time-loop
17 while( true ) 1::second => now;

<caption>**Fig. 1.8** Exemple d'une synthèse par modulation de fréquence dans l'environnement de programmation (strongly-timed) Just-in-Time ChucK pour le *live coding*. On définit deux oscillateurs (ligne 4) où le premier oscillateur *m* se connecte avec un deuxième oscillateur *c*. Entre les lignes 7 et 11 sont donnés les paramètres des oscillateurs. Les générateurs ainsi que le contrôle sont créés dynamiquement.</caption>

Cette faculté de pouvoir créer dynamiquement des processus musicaux à partir de l'interaction avec l'utilisateur confère à l'ordinateur la faculté de devenir aussi un interprète et pas simplement un programme exécuter de manière classique, sans interaction avec l'environnement. On va pouvoir créer des processus, les manipuler, les transformer, les superposer, les faire interagir entre eux pour jouer en direct (pour le *live coding* et l'improvisation) ou pour enregistrer ces manipulations dans le cadre de la composition pour les intégrer à la partition électronique.

## Écrire la musique comme un code informatique

Comme déjà exprimé, la création des partitions en code commence en même temps que les premiers systèmes de composition du son numériquement comme dans la

<footnote n="23">23 https://www.sublimetext.com</footnote>

<footnote n="24">24 https://atom.io/packages/atom-antescofo</footnote>
famille de logiciels MUSIC-N. Depuis, plusieurs œuvres ont été réalisées entièrement en code dans des logiciels tels que Csound, CLM ou SuperCollider pour en citer quelques-uns. Un exemple de code-partition est donné à la figure 1.9.

L'écriture de la musique directement en code est un exercice d'abstraction complexe et laborieux qui nécessite un apprentissage spécifique. Il faut d'abord se familiariser avec un langage de programmation, puis le pratiquer et le maîtriser. À la différence de la notation musicale traditionnelle dont la maîtrise repose sur plusieurs années de solfège, de composition, de contrepoint, d'orchestration, etc., la programmation reste peu enseignée dans les cursus musicaux. C'est aussi une expérience compositionnelle qui se distingue de la composition électroacoustique dans un DAW qui passe par une représentation graphique.

<figure><img src="image_12.png" /><figcaption>**Fig. 1.9** Exemple d'un extrait de partition séquentielle événement par événement dans l'environnement Csound<fnref n="25" />. On peut voir qu'il y a des indications de tempo (t) (lignes 1 et 17) ainsi que de sections (s) (ligne 16) et d'autres symboles pour faciliter l'écriture comme le *carry* (.) qui copie la valeur d'un paramètre propre à une note à la note suivante, le *ramp* (<) interpole linéairement entre deux valeurs d'un même paramètre et le (+) qui est réservé au *p-field p2*. Il calcule automatiquement le temps de commencement de la note courante, en additionnant le temps de commencement et la durée de la note précédente (*p2* + *p3*).</figcaption></figure>

Pour moi, le code informatique et les instructions pour générer des actions sonores, musicales et morphologiques correspond à une partition à part entière, même si ces codes sont génériques et spécifiques à l'informatique et n'ont aucune relation à première vue avec la musique. Il ne s'agit plus de représenter des actions musicales d'une façon symbolique mais d'exprimer des idées musicales, sonores, morphologiques à travers un langage de programmation informatique expressif dédié.

<footnote n="25">²⁵ http://www.csounds.com/chapter1/french/</footnote>
L'écriture directement en code dans des systèmes interactifs tels que le *live coding* ou l'écriture des partitions électroniques comme dans Antescofo est une pratique relativement nouvelle qui, par les possibilités ouvertes et la précision rendue possible, s'écarte de la composition « classique » de l'électroacoustique qui reste très contrainte et normalisée par les DAW.

L'écriture entièrement en code textuel ne répond cependant pas à tous les problèmes et il reste beaucoup de travail de recherche et beaucoup de travail de développement pour disposer d'outils performants et plus facilement utilisables par les compositeurs. Nous reviendrons sur les difficultés spécifiques de l'approche code dans le chapitre consacré aux pièces électroacoustiques en temps réel (lors de la présentation de *Curvatura II* par exemple) mais on peut déjà noter que ce paradigme souffre de ne pas offrir de bons repères au niveau temporel (par exemple si on veut jouer ou placer un son ou processus à un moment déterminé de la pièce, on peut se perdre assez facilement dans les lignes de code !). On présentera aussi un exemple d'approche hybride où les dates de départ des processus sont spécifiées dans une * timeline « augmentée »*, une approche utilisée dans la première partie de la pièce audiovisuelle *Las Pintas*.

En tant qu'utilisateur du langage de programmation Antescofo et avec la pratique, j'arrive à anticiper avec beaucoup de précision certains éléments de l'électronique et à imaginer des nouvelles possibilités grâce à la flexibilité et l'expressivité du langage. Cette pratique est assez similaire à celle de la notation classique dans laquelle on va pouvoir imaginer dans une partition d'orchestre par exemple les sonorités des mixtures d'instruments et du discours musical. En même temps, les possibilités étendues d'un système de composition et synthèse avec ordinateur laissent aussi beaucoup d'espace à l'expérimentation et à l'improvisation.

## Notation graphique de l'électronique

Les approches visuelles sont souvent présentées comme facilitant la programmation ou, plus généralement, comme simplifiant la mise en œuvre de tâches complexes.

On peut écarter les tentatives de représentations graphiques analogiques du son. Quand on veut représenter les sons graphiquement, il y a toujours le problème que le visuel et le sonore ne sont pas dans une même échelle. Et on ne peut pas voir un son ou écouter une image si on ne passe pas par un *mapping* direct entre eux. On peut par exemple voir des figures de Chladni<fnref n="26" /> mais on n'est pas en mesure de savoir précisément quelle hauteur ou avoir une notion du timbre à partir des figures obtenues.

Dans le domaine acousmatique, on peut cependant citer quelques systèmes où le graphique est transcrit directement en son comme l'UPIC [MRM90] de Xenakis ou

<footnote n="26">²⁶ https://fr.wikipedia.org/wiki/Figure_de_Chladni</footnote>
l'utilisation de logiciels dérivés comme HighC<sup>27</sup> ou Methasynth<sup>28</sup> (le système IanniX<sup>29</sup>, bien qu'inspiré de l'UPIC, relève du séquenceur multicurseur).

Les musiques acousmatiques ne nécessitent que peu d'interprétation pour être jouées, à l'exception de la spatialisation dans le cadre d'un acousmonium. Ce dernier n'a pas besoin de savoir comment faire les sons qui seront joués (ils sont fixés) mais d'avoir une notion claire de la forme et des moments spécifiques d'articulation qui sont nécessaires au regard de la diffusion. Le montage dans un DAW remplit ce besoin et constitue une partition graphique. Mais cette représentation reste pauvre puisqu'elle donne seulement l'information de départ et de fin du playback d'un fichier audio.

D'autres types de descriptions comme le sonogramme<sup>30</sup> sont plus informatives quant au contenu sonore, en représentant le son au niveau spectral (représentation de la pression acoustique en fonction de la fréquence et du temps). Mais regarder un sonogramme ne garantit en aucun cas une écoute interne d'un son comme avec la notation symbolique traditionnelle. Des systèmes tels que iAnalyse ou l'acousmographe utilisent cette technique plutôt dans un but d'analyse que de composition ou d'écriture.

Dans les musiques mixtes, la représentation graphique de l'électronique peut aider le compositeur à élaborer sa partition en explicitant les rapports entre les mondes instrumental et électronique. Il faut pour cela que la représentation visuelle vienne enrichir la partition classique. Expliciter ces relations est aussi utile pour les interprètes ainsi que pour l'analyse de l'œuvre. Dans des musiques mixtes où la partie électronique repose sur des hauteurs, des rythmes ou des modulations déterminés comme dans la musique instrumentale (par exemple des harmoniser, frequency shifter, modulation en anneau, etc.), l'écriture peut être assez claire et déterministe comme dans la notation traditionnelle. Ces représentations, compatibles avec la partition traditionnelle, contraignent souvent à décrire l'électronique en termes de déclenchement, ce qui est une contrainte. Et dans le cas où il faut décrire précisément la fabrication du son, par exemple avec des sons inharmoniques, des spatialisations complexes, ou devant intégrer des données de captations gestuelles ou d'autres types d'analyse en temps réel, ou encore faisant appel à des interactions procédurales, la notation devient moins évidente ou impossible à intégrer dans une partition classique.

Les notations graphiques de l'électronique se sont donc largement focalisées sur la programmation visuelle de celle-ci, en relation avec des outils informatiques et indépendamment de la notation instrumentale classique. Les outils de la seconde génération (e.g. Max) ont proposé des approches visuelles qui ont été présentées comme un grand progrès par rapport aux outils textuels de la première génération (e.g. Music-N).

<footnote n="27">27 http://highc.org/history.html</footnote>

<footnote n="28">28 https://uisoftware.com/metasynth/</footnote>

<footnote n="29">29 https://www.iannix.org/fr/</footnote>

<footnote n="30">30 https://fr.wikipedia.org/wiki/Sonagramme</footnote>
On peut classer les approches visuelles existantes en deux grandes catégories : celles qui relèvent de la * timeline*, et les autres qui correspondent à des systèmes de programmation * data flow* (comme Max ou Pd). Parmi les systèmes basés sur une * timeline*, il y en a ceux qui sont « explicites » comme les séquenceurs DAW et ceux qui sont plus « sophistiqués » comme Ossia score, Iannix, InScore ou la maquette/séquenceur dans Open Music. Antescofo avec son interface Ascograph fait aussi partie des « sophistiqués ». Cette classification est illustrée à la figure 1.10.

Avec les timelines « sophistiquées », on peut faire des actions temporelles qui ne sont pas possibles dans des timelines explicites, par exemple sauter d'un endroit à un autre ou faire des choix de déclenchement en fonction des conditions, c'est-à-dire avec un degré plus ou moins grand de programmabilité et d'interactivité. Une autre caractéristique de ces timelines « sophistiquées », qui sera utilisée dans mes productions, est la multitemporalité, c'est-à-dire pouvoir jouer des phrases musicales à différents tempi, en synchronisation ou pas.

<figure><img src="image_13.png" /><figcaption>**Fig. 1.10** Graphique représentant les familles de systèmes graphiques pour l'écriture de l'électronique.</figcaption></figure>

## Limitations de la composition avec des objets graphiques

La représentation graphique est aujourd'hui extrêmement dominante, la plupart des logiciels pour faire de la musique et du design sonore possèdent des interfaces graphiques pour les manipuler et une timeline explicite pour les organiser temporellement. Bien entendu, ce n'est pas un hasard et l'interface graphique et gestuelle dans l'informatique en général est l'une des façons la plus ergonomique et directe pour communiquer à haut niveau avec l'ordinateur. Dans la composition électroacoustique, ce paradigme est représenté par l'approche graphique de la * timeline*
dans les logiciels de montage de type DAW. Dans cette approche, on pourrait dire qu'on compose avec les yeux, la souris et les rapports de distance et d'alignement. Les fichiers sont présentés comme des boîtes contenant des formes d'ondes qu'on déplace dans le temps linéairement, ce qui conditionne forcément l'acte de composition et le résultat musical.

Cependant, en regardant par exemple la partition électronique de *Curvatura II*, pièce électroacoustique en temps réel composée directement en code sans aucun recours à une représentation graphique<fnref n="31" />, la question se pose de la pertinence d'utiliser des interfaces ou symboles pour la composition de ce genre de pièces.

Vouloir à tout prix avoir des représentations graphiques pour composer, manipuler des objets visuels qui représentent des sonorités ou des morphologies sonores avec des symboles et des figures ne serait-il pas finalement une limitation pour l'imagination sonore qui elle peut aller bien au-delà des relations représentables graphiquement ?

L'expérimentation de nouvelles façons de composer sans une * timeline* explicite (et mono-curseur) comme dans l'exemple de *Curvatura II* est très importante dans ma démarche. Ce type de composition présente une liberté qui va au-delà des conditionnements de la « composition avec les yeux ».

Il ne faut cependant pas minimiser les difficultés de l'approche textuelle. Elle est difficile à maîtriser, il faut apprendre la programmation, et acquérir des routines qui permettent de se concentrer sur un niveau d'abstraction sans représentations graphiques. Cette pratique n'est pas répandue, elle nécessite un effort et un apprentissage supplémentaire par rapport aux logiciels graphiques où, avec seulement deux mouvements de souris et un click, on peut déjà produire du son. Elle présente aussi des difficultés pratiques certaines, comme quand on veut superposer des couches temporelles indépendantes et polyphoniques dans un langage textuel qui lui est écrit et conçu séquentiellement. Et gérer une partition avec des milliers de lignes de code n'est pas toujours facile...

L'écriture de l'électronique reste un domaine d'étude très actif, et on peut s'attendre à de nouvelles propositions. Depuis 2015, il existe par exemple une conférence annuelle, TENOR<fnref n="32" />, qui est consacrée à la recherche des technologies numériques pour la notation musicale en général. Dans le cadre de cette conférence, plusieurs recherches sont consacrées à la notation de l'électronique. Aujourd'hui, il y a de nouvelles expérimentations pour la notation de l'électronique, par exemple dans des systèmes d'aide à la composition tels que Open Music [Ago98], le séquenceur dans OM-sharp [BrBiCaSc17], Bach [AG12] dans l'environnement Max, ou avec des propositions

<footnote n="31">³¹ Cette pièce sera présentée dans la seconde partie de ce document.</footnote>

<footnote n="32">³² https://www.tenor-conference.org/</footnote>
comme l'objet *struct* (*data Structures*) dans Pd, et de nouveaux logiciels comme
l'Acousmoscribe [DiS13], Symbolist [GoB18], InScore [FOL12] ou Ossia Score<fnref n="33" />.

Visualisation des partitions électroniques

Il y a une autre façon d'utiliser les représentations graphiques, peu utilisée, mais qu'on
peut voir à l'œuvre dans un logiciel dédié à l'analyse musicologique comme iAnalyse<fnref n="34" />.
L'idée n'est pas de représenter la prescription des actions musicales à réaliser, mais le
résultat de cette prescription, la musique qui a été jouée.

On évite ainsi le problème de représenter opérationnellement l'électronique à réaliser,
au profit de la représentation *a posteriori*, « post-mortem », du rendu musical. La
représentation graphique peut alors être générée au moment de l'exécution, comme un
sous-produit de la réalisation musicale.

Ce rendu graphique du résultat de la partition électronique en code peut servir à des
fins d'amélioration ou ajustements de certains paramètres dans un aller-retour lors de
la composition entre idées musicales et expérimentation, ou encore après la
composition de l'œuvre à des fins d'étude et d'analyse.

Pour ce qui concerne des paramètres et événements déterministes et statiques de
l'électronique, quelques pistes et possibilités de développement ont été élaborées
comme le projet AscoGraph [CCG14], et d'autres sont envisageables, comme avec
l'intégration des partitions électroniques réalisées dans Antescofo dans le logiciel
d'analyse musical iAnalyse. Dans le développement de AscoGraph, des tentatives
d'exprimer des éléments dynamiques de la partition électronique ont été théorisées
[BuCoPo16], notamment avec l'utilisation d'arborescences et différents types de
visualisation. Malheureusement, le projet AscoGraph n'a pas été poursuivi.

<footnote n="33">³³ https://ossia.io</footnote>

<footnote n="34">³⁴ Pierre Couprie, http://logiciels.pierrecouprie.fr</footnote>
<figure><img src="image_14.png" /><figcaption>**Fig. 1.11** En haut à droite, une capture d'écran du logiciel de notation symbolique Symbolist ; à gauche, l'objet Pd struct ; au milieu, INScore et en bas, le séquenceur de OM-sharp. Ils permettent d'associer une représentation graphique à des événements sonores et musicaux. Dans le cas de Symbolist et INScore et leur intégration du protocole OSC, il est possible d'associer n'importe quel type d'événement à un objet graphique.</figcaption></figure>

## 1.5. Musiques mixtes et suivi de partition

La musique mixte est l'un des genres musicaux qui m'a le plus intéressé, offrant plein d'idées compositionnelles, de palettes sonores hybrides, de nouvelles formes d'interprétation et d'interaction, et d'avancées technologiques novatrices grâce au mariage et à l'interaction entre le jeu instrumental en direct avec l'électronique aujourd'hui joué par l'ordinateur.
Cette mixture entre sons instrumentaux et sons électroniques et leur synchronisation a commencée avec des rapports plutôt fixes comme ce fut le cas des premières pièces avec bande de Schaeffer, Varèse ou Maderna. Puis ce genre n'a cessé d'évoluer et de se transformer avec les premières expériences des musiques de Cage et de Stockhausen où l'électronique est réalisée en direct, jusqu'à l'arrivée de l'informatique en temps réel avec des ordinateurs assez rapides pour calculer des sons et des manipulations sonores dans le temps de la performance. De cette union entre instrumentiste humain et ordinateur, de nouvelles musiques pleines d'inspiration et de nouvelles idées ont commencé à apparaître depuis le milieu des années 1970. Cette émergence a été initialement possible par le développement de ressources matérielles dédiées : à l'Ircam avec la création des premiers ordinateurs pour la synthèse en temps réel à partir de la 4A, 4B, 4C pour aboutir à la 4X<fnref n="35" /> en 1981. Au même moment et plus dans la démarche des musiques acousmatiques et électroniques au GRM, il y a eu le développement de SYTER, un autre système audionumérique temps réel. Citant aussi à la même époque mais dans un autre registre l'UPIC de Xenakis développé au CEMAMu (Centre d'études de mathématique et automatique musicales) pour la génération de synthèse du son à partir de dessins.

Ces développements n'ont cessé de se renouveler et de s'enrichir avec les nouveaux apports de la technologie aussi bien au niveau logiciel que matériel.

## Suivi de partition

La musique mixte pose de manière frontale le problème de la coordination de l'électronique aussi bien au moment de la composition que de l'interprétation. Dans ce contexte, le *suivi de partition*, processus consistant à aligner automatiquement une exécution musicale en direct avec une partition électronique, se présente comme une solution à la problématique de synchronisation entre le monde instrumental et l'électronique. Il va permettre de faire jouer la partie électronique en synchronisation avec la partie instrumentale et va se comporter comme un chef d'orchestre, surtout dans le cas des pièces avec beaucoup d'interactions et de couches d'électronique. Cette interaction et cette synchronisation automatique peuvent permettre de jouer l'électronique d'une façon plus fine, précise, que ne pourrait le réaliser un humain qui déclencherait les événements électroniques « à la main » (par exemple dans le cas où il faut réaliser un traitement note à note).

Le suivi de partition introduit en 1984 avec les articles fondateurs de Roger Dannenberg et Barry Vercoe [Dan84, Ver84] est toujours un axe de recherche très actif dans le domaine de la musique mixte interactive. À l'Ircam, cette recherche a débuté en 1986, d'abord avec le suivi d'instruments midifiés<fnref n="36" />, notamment avec le processeur numérique en temps réel 4X. Parmi les premières œuvres réalisées à l'Ircam et jouées sur des instruments MIDI, on peut citer *Jupiter* et *Pluton*, fruit d'une collaboration

<footnote n="35">³⁵ http://articles.ircam.fr/textes/DiGiugno81a/</footnote>

<footnote n="36">³⁶ Il s'agit de rajouter à un instrument acoustique la possibilité d'envoyer ou de recevoir des messages MIDI en lui rajoutant des composantes électroniques de détection des notes, de vitesse, d'amplitude, etc.</footnote>
historique entre le compositeur Philippe Manoury et le mathématicien Miller Puckette qui a donné naissance à Max, l'un des logiciels les plus répandus aujourd'hui dans le domaine de l'interaction musicale [Puc91]. La technique a rapidement évolué afin de permettre la détection des hauteurs à partir de l'analyse du flux audio des instruments acoustiques avec le système ISWP<fnref n="37" /> (une station d'informatique musicale, précurseuse des logiciels de deuxième génération où le contrôle et le traitement du signal sont incorporés dans un même environnement graphique). L'intégration de l'analyse audio pour estimer les hauteurs d'instruments acoustiques par une détection FFT (Fast Fourier Transform) de la f0 (fréquence fondamentale) a largement simplifié l'utilisation à n'importe quel instrument acoustique monophonique ou polyphonique sans nécessité de le midifier. La partition de l'instrumentiste à suivre étant connue, l'incorporation de modèles probabilistes (chaînes de Markov cachées) a grandement amélioré l'estimation et l'alignement entre le jeu instrumental en direct et la position dans la partition électronique.

Antescofo, la nouvelle génération de suiveurs de partitions, développé vers 2007 à l'Ircam par Arshia Cont, est un système qui couple une machine d'écoute pour réaliser le suivi et un langage de programmation dédié permettant de décrire les actions électroniques. Il inclut aussi un aspect temporel fort, chose qui n'était pas présente dans les anciens systèmes avec une estimation du tempo courant d'exécution par l'instrumentiste.

Ces deux points, le langage de programmation et l'inférence du tempo du musicien, constituent une avancée fondamentale dans le domaine. La prise en compte du tempo va permettre non seulement de déclencher des événements discrets de l'électronique, comme dans les premières générations de suiveurs, mais aussi d'avoir des synchronisations fines au niveau de la durée (et non seulement des événements) et des contrôles continus, par exemple pour synchroniser des bandes (technique de time-stretching), de la spatialisation, des paramètres de la synthèse, etc. De plus, l'estimation du tempo peut être utilisée comme une nouvelle donnée de captation de l'interprétation qui peut servir à manipuler différents éléments de l'électronique en temps réel.

L'intégration du langage de programmation (qui sera décrit dans le chapitre III) augmente les possibilités d'écriture de l'électronique ainsi que la capacité à coordonner plusieurs événements en parallèle comme dans une partition pour orchestre.

## Partitions électroniques pour le temps réel et l'interactivité

Les premières cue-list <fnref n="38" />, ou partitions électroniques pour décrire les actions électroniques en temps réel pour contrôler le synthétiseur 4X à l'Ircam, sont composées de deux fichiers, un pour le suivi de notes MIDI et l'autre pour les actions à réaliser pour la note MIDI détectée. La première œuvre à utiliser un suiveur de partition et les potentialités de l'interactivité entre un instrument acoustique et l'ordinateur avec des

<footnote n="37">³⁷ https://en.wikipedia.org/wiki/ISPW</footnote>

<footnote n="38">³⁸ Liste d'événements à réaliser à un moment déterminé et en ordre.</footnote>
sons de synthèse est *Jupiter* pour flûte et électronique de Philippe Manoury, œuvre créée en 1987. Dans *Jupiter*, l'ordinateur va recevoir l'information de la hauteur et de l'intensité de la flûte, ce qui va permettre l'utilisation du suivi de partition ainsi que l'alimentation des algorithmes de production de l'électronique pour créer l'interaction en temps réel. *Jupiter* ouvre le cycle de trois pièces *Sonus ex machina* qui explorent des possibilités nouvelles d'interaction entre instruments et ordinateur et posent les bases de la musique interactive mixte en temps réel, avec notamment l'article « Les partitions virtuelles » où Philippe Manoury théorise ses idées sur l'interaction : « *La partition virtuelle est donc une partition dont on connaît, a priori, la nature des éléments qui vont être traités mais dont on ignore les valeurs exactes qui vont définir ces éléments.* » [Man97]

Les deux parties de la figure 1.12 représentent seulement le suivi et les actions, les processus et le patch sont décrits dans d'autres fichiers et exécutés dans un autre ordinateur. À l'époque, il y avait un nombre limité des traitements et synthèses fixes, comme les harmoniser, frequency shifter, délais, sampling, la réverbération infinie et un synthétiseur additif.

L'intégration du contrôle et du signal dans un même environnement graphique dans la deuxième génération de systèmes temps réel (ISWP) a donné lieu à de nouvelles possibilités de contrôle beaucoup plus fines, interactives et relationnelles entre le son acoustique et l'électronique. Un exemple musical d'utilisation de ce nouveau système est la pièce *En echo* de Philippe Manoury où l'analyse des formants de la voix (maxima d'énergie dans le spectre de la voix) va permettre de contrôler la synthèse en temps réel.
<figure><img src="image_15.png" /><figcaption>**Fig. 1.12** Exemple de la partition pour l'ordinateur 4X de la section 6 de la pièce Jupiter (1987) de Philippe Manoury pour flûte et électronique en temps réel. À droite, la partie qui décrit l'ordre d'apparition des notes MIDI (en vert) et sa correspondante action (en rouge), note 60 déclenche « b 10 ». À gauche, l'étiquette (label) qui correspond aux actions à déclencher (en bleu) pour cet événement. Dans les parties actions, il y aussi la spécification des connexions, par exemple à la ligne 42 .sh T correspond au synthétiseur qui rentre dans l'harmonisateur et c'est T (true), .hf l'harmonisateur rentre dans le frequency shifter F (false). Entre les lignes 47 et 74, il y a les fréquences pour alimenter un synthétiseur additif joué en temps réel, processus appelé « le chapo » par le compositeur. Ce traitement tisse un lien entre les hauteurs jouées à la flûte et la distribution de l'énergie dans le spectre de la synthèse additive comme un filtre formantique à travers les hauteurs MIDI de la flûte. « L'idée initiale consistait en un prélèvement de l'enveloppe spectrale de la flûte, afin de contrôler les amplitudes d'un groupe d'oscillateurs » [Man03].</figcaption></figure>

Cette intégration du contrôle et du signal dans le même environnement a permis, à partir de ce moment, un grand nombre d'expérimentations et de mapping du monde du signal vers le contrôle, et vice versa. La partition électronique, même sans suivi, a aussi adopté ce nouveau système avec par exemple l'introduction de l'objet Max *qlist* qui
reprend la partie action des programmes de la 4X. Ces objets sont inclus dans les *patchs de concert*<fnref n="39" />. L'objectif est de définir une série de messages discrets et de déclencheurs de sons ou de processus dans une liste d'ordonnancement temporel qui conditionne chaque action à l'écoulement d'un délai (principe qui sera repris dans Antescofo). Ces objets peuvent être déclenchés depuis l'extérieur à partir d'un suivi de partition, issu de l'analyse de la hauteur d'un instrument, d'une pédale de déclenchement, d'un clavier d'ordinateur ou d'un autre contrôleur externe. Une fois déclenchés, ils exécutent leurs actions en suivant l'ordonnancement prévu.

<figure><img src="image_16.png" /><figcaption>Fig. 1.13 Exemple d'écriture de l'électronique dans l'objet *qlist* dans l'environnement Max pour la pièce *En écho* (1994) de Philippe Manoury. Chaque événement correspond à une liste d'actions à réaliser à un certain moment de la performance et déclenchés par un suivi de partition intégré dans le système. On peut voir aussi l'utilisation des délais en millisecondes avant les messages (ex. : lignes 119-145-148...).</figcaption></figure>

Les actions regroupées dans un objet qlist peuvent aussi être éclatées des « boîtes de messages ». Comme pour l'objet *qlist*, il s'agit d'envoyer des paramètres pour des traitements et synthèses comme pour déclencher des processus et aussi en intégrant des délais. Ce système présente l'inconvénient que les données sont difficiles d'accès, il faut aller chercher les paramètres dans des sous-patchs et puis les modifier dans des boîtes séparées, ce qui ne permet pas d'avoir une vision d'ensemble de la partition. Les messages comme dans les objets *qlist* restent discrets et ponctuels.

<footnote n="39">³⁹ Un patch de concert est un programme réalisé dans Max spécifiquement pour un concert, avec une architecture qui comprend des processus de contrôle, des modules de traitement, synthèse et analyse audio et un système de qlist ou séquences pour piloter l'ensemble en synchronisation avec la partie instrumentale.</footnote>
<figure><img src="image_17.png" /><figcaption>**Fig. 1.14** Exemple d'un événement dans une « boîte de messages » Max de la pièce *Lichtung III* (2007) pour ensemble et électronique de Emmanuel Nunes. Il s'agit de décrire les actions de l'électronique dans le style Max avec l'utilisation des délais et des informations de spatialisation dans des objets *coll* (dictionnaires). Dans ce cas, les événements sont déclenchés par un clavier MIDI qui joue sur scène avec les autres instruments.</figcaption></figure>

## Vers la partition électronique centralisée

Avec l'arrivée du suivi de partition Antescofo, l'idée d'intégrer tous les éléments de l'électronique au sein d'une même partition se concrétise dans la syntaxe même du langage de programmation du système.

En effet, à la différence de ses prédécesseurs, la partie du programme dévolue au suivi de partition<fnref n="40" /> et la partie dévolue aux actions électroniques sont présentes au sein d'un même fichier texte. Leur interdépendance est explicite : chaque action est rattachée à un événement musical (note, accord, trill, etc.) qui sera détecté par la machine d'écoute (cf. figure 1.15). Cela n'empêche pas certaines actions d'avoir une durée propre et de se dérouler en parallèle avec le discours instrumental. La partition Antescofo entremêle ainsi (une forme simplifiée de) la partition instrumentale et la partition électronique.

La partie instrumentale peut être issue d'une partition classique éditée dans un logiciel de gravure musicale tel que Finale, Sibelius ou Notability Pro. La procédure consiste à exporter cette partition en format *Music XML* puis à la traduire dans le format Antescofo. Ce format contient moins d'informations que celui d'une partition instrumentale classique et n'adresse qu'un seul instrument (l'instrument à suivre). Mais il démontre la possibilité et l'intérêt d'inclure la spécification instrumentale et la spécification électronique au sein d'un même document.

<footnote n="40">⁴⁰ Il faut souligner que même si le suivi n'est pas utilisé, le compositeur peut spécifier des événements abstraits qui peuvent servir à structurer la partition. Il est par exemple possible de démarrer l'exécution d'une partition Antescofo à partir d'un événement abstrait quelconque.</footnote>
<figure><img src="image_18.png" /><figcaption>**Fig. 1.15** Exemple de l'écriture de l'électronique dans *Einspielung I* d'Emmanuel Nunes pour violon et électronique (version avec électronique temps réel de 2011). À gauche, la partition pour violon (en couleur, les parties traitées avec filtrage, réverbération et résonateurs). À droite, la partition électronique de la première mesure en septolet, chaque note déclenche une série d'actions (traitement note à note) pour la spatialisation avec l'utilisation d'enveloppes sur le son du violon qui sont traitées par six chaînes de traitement indépendantes (ce qu'Emmanuel Nunes appelle ADC).</figcaption></figure>

La pièce *Einspielung I* d'Emmanuel Nunes est un bon exemple d'évolution des techniques d'écriture de l'électronique dans un système de suivi de partition en temps réel. En 1994, quand Emmanuel Nunes et Eric Daubresse (réalisateur en informatique musicale) ont travaillé pour faire la partie électronique de la pièce dans le système ISPW, la carte DSP<fnref n="41" /> de traitement du son installée dans la NeXT<fnref n="42" /> s'est arrêtée de fonctionner juste avant la générale du concert et le projet est resté en attente pendant 17 ans. Quand Nunes a repris la partie électronique de la pièce en 2011, il avait à sa disposition de nouveaux moyens techniques pour réaliser les idées théoriques qu'il ne pouvait pas réaliser lors de la première tentative en 1994. Les nouvelles possibilités

<footnote n="41">⁴¹ *Digital Signal Processing*, processeur spécialisé dans le traitement du signal.</footnote>

<footnote n="42">⁴² Ordinateurs des années 1990 utilisés à l'Ircam pour la ISPW, développés par l'entreprise américaine NeXT Computer, Inc.</footnote>
techniques offertes par Antescofo lui ont aussi permis de repenser complètement l'électronique grâce à un environnement d'écriture de l'électronique plus souple, avec un suiveur de partition plus robuste et prenant en compte la dimension temporelle de l'interaction.

Au niveau suivi de partition, la partition électronique Antescofo comporte différents événements musicaux issus du monde de l'écriture symbolique comme des notes, des accords, des trilles ou des glissandi qui sont reconnus par la machine d'écoute. Pour l'instant, une des limitations du suivi de partition pour la musique contemporaine est le fait que la machine d'écoute ne prend pas en compte des sons plus complexes comme les modes de jeux particuliers à chaque instrument, ni des sons avec une grande composante de bruit, ce qui réduit son utilisation et donc conditionne une certaine écriture instrumentale.

Avec notamment les travaux de José Echeveste sur les stratégies de synchronisation [Ech15] et de Philippe Cuvillier [Cuv16] sur l'intégration des paramètres temporels dans le modèle probabiliste de suivi, la synchronisation entre les parties instrumentales solistes et l'écriture de la partie électronique s'est grandement améliorée et enrichie.

Dès ses premières versions, Antescofo permet de regrouper des séquences des actions dans une structure de groupe (*group*) représentant une phrase musicale dotée de sa stratégie de synchronisation. La notion de *loop* permettant d'itérer une séquence d'actions était aussi présente dès le début, avec la possibilité de définir des macros incluant des expressions rudimentaires. Voici un exemple d'une définition de fonction et de macro dans la première version de Antescofo pour calculer en temps réel des temporalités à partir du jeu et une conversion de notes MIDI vers des fréquences en hertz :

```c
@MACRO_DEF midi2hz(X)
{
    expr{440.0 * exp((X-69) * log(2) / 12)}
}
```

Cette fonctionnalité est très importante parce qu'elle préfigure l'idée d'un langage de programmation incorporé à la partition, permettant l'intégration de processus complexes dans la partition elle-même et en relation avec celle-ci. Cette intégration permettra par la suite une grande flexibilité, et une grande expressivité. Elle ouvre aussi vers une indépendance de la partition au système hôte dans lequel on va programmer les patchs ou traitements et synthèses : le contrôle dans tous ses aspects sera centralisé dans la partition.

Les primitives de calcul d'Antescofo se sont rapidement enrichies et ont évolué vers un langage de programmation complet à partir de 2011 avec l'arrivée d'un nouveau chercheur sur le projet, Jean-Louis Giavitto. Le langage Antescofo introduit des variables, des fonctions, des structures de données et de contrôle et d'autres éléments qui seront décrits dans le chapitre dédié au langage Antescofo ainsi que des nouvelles fonctionnalités.
Si le langage d'Antescofo se présente comme un langage généraliste, il comporte plusieurs mécanismes spécifiquement dédiés aux besoins musicaux. Les *curves* qui servent à interpoler et échantillonner des variations continues de paramètres sont un exemple de constructions dédiées. La première œuvre à utiliser les *curves* dans Antescofo fut *Iki-no-michi* (*Les Voies du souffle*) pour saxophones et électronique en temps réel de Ichiro Nodaira, commande de l'Ircam et créée en 2012 par Claude Delangle.

Cette construction illustre tout l'intérêt de réunir au sein d'une même partition l'instrumental et l'électronique : elle permet en effet des contrôles continus avec une synchronisation en relation directe avec le jeu instrumental. Cette fonctionnalité est très importante puisqu'elle donnera naissance à une nouvelle technique qui dépasse la notion d'événements discrets pour aller vers le continu. Ainsi, les contrôles continus ne seront plus fixes et indépendants de l'interprétation mais il s'adapteront à l'agogique du jeu instrumental où ils pourront être déformés, étirés ou rétrécis par un contrôle d'un tempo externe.

<figure><img src="image_19.png" /><figcaption>**Fig. 1.16** Exemple de l'écriture de l'électronique dans *Iki-no-michi* pour saxophones et électronique en temps réel. À gauche, la partition pour saxophone avec des annotations de la partie électronique. À droite, la partition électronique avec les notes (NOTE) correspondant à la partie symbolique de la partition. Cet exemple montre pour la première fois la capacité du programme à générer des interpolations dans le temps en relation directe au tempo du jeu de l'instrumentiste. Dans ce cas, il s'agit de faire des « freezes » (gels) de notes à un moment déterminé puis commencer à faire des glissandi de ces hauteurs polyphoniquement.</figcaption></figure>

Dans l'exemple suivant, issu de ma pièce *Dispersion de trajectoires* pour saxophone baryton et électronique (créée au festival *Traiettorie* à Parme, Italie, par Claude
Delangle en 2014), l’intégration des processus en temps réel dans le langage est poussée à un niveau d’interaction supérieur. Le son du saxophone est analysé en temps réel par différents types des descripteurs audio [Pee04] pour piloter la synthèse et traitement en temps réel. *Dispersion de trajectoires* est la première pièce à intégrer le suivi de partition et langage Antescofo à un système de synthèse dynamique dans SuperCollider.

<figure><img src="image_20.png" /><figcaption>**Fig. 1.17a** Extrait de la partition de *Dispersion de trajectoires* (entre les mesures 138 et 141) avec l’indication de l’interaction. Les figures en couleur représentent les interactions dans la partition des différents éléments et processus de l’électronique. Cette représentation reste très qualitative. Si elle est utile à l’instrumentiste en lui donnant une certaine idée de l’électronique, elle ne permet pas la réalisation de celle-ci.</figcaption></figure>
<figure><img src="image_21.png" /></figure>

**Fig. 1.17b** Description de chaque élément et de l'interaction avec le type d'analyse, de synthèse, de traitement et de processus déclenché par le suivi de partition. Cette description qualitative de haut niveau donne lieu à une spécification complète et exécutable dans la partition électronique.

Ce couplage entre contrôle et synthèse développe encore plus avant le concept de partition centralisée et donnera lieu par la suite au développement de la librairie pour la composition électroacoustique AnteCollider. Cette approche de programmation directement dans la partition des tous les éléments d'interactivité, de traitements et de synthèses stimule la créativité compositionnelle et agrandit la palette sonore. Grâce à ce système, on peut écrire la partie électronique comme « une orchestration de l'interactivité » avec plusieurs couches qui interagissent entre elles et avec le jeu instrumental en direct.

Avec ce système, on peut arriver à un niveau de finesse de l'écriture de l'électronique chirurgical qui permet par exemple d'enregistrer des petits buffers audio de l'instrument « note à note » pour alimenter une synthèse granulaire et contrôler les rythmes et enveloppes de chaque grain indépendamment et les modifier dynamiquement dans le temps.
<figure><img src="image_22.png" /><figcaption>**Fig. 1.18** Extrait de la partition électronique de Dispersion de trajectoires de l'exemple précédent (mesure 138). On peut voir l'utilisation des variables ($) et l'instanciation des processus (lignes 7502, 7504 et 7508) avec différents paramètres pour l'interaction avec des descripteurs audio ainsi que d'autres traitements. On peut aussi voir la création des chaînes de traitements dynamiquement (lignes 7517, 7552 et 7553). La variable `$saxIn` représente le bus d'entrée audio provenant des microphones du saxophone dans SuperCollider.</figcaption></figure>
<figure><img src="image_23.png" /><figcaption>**Fig. 1.19** Exemple du processus *NoiseEnergie_trig_spec_freeze* pour faire des gels (freezes). La structure de contrôle whenever (ligne 1945) reçoit la variable $NoiseEnergie qui provient directement de l'analyse du descripteur audio NoiseEnergie de l'objet Max *IrcamDescriptors*<sup>43</sup>. En fonction d'un seuil, le processus déclenche les freezes FFT (ligne 1958) avec l'envoi du son gelé vers une position spatiale (parmi 8 haut-parleurs) avec une fonction probabiliste (ligne 1956).</figcaption></figure>

<figure><img src="image_24.png" /><figcaption>**Fig. 1.20** Extrait de la mesure 180 de la partition de *Dispersion de trajectoires*. Le système enregistre un segment de chaque note pour alimenter plusieurs générateurs de synthèse granulaire instanciés dynamiquement. Ceci permet d'avoir un système polyphonique à n voix qui se superposent chacune avec un développement rythmique et des types d'enveloppes et de spatialisation différents. En bas, un extrait du code de la partition pour générer la synthèse granulaire avec différentes possibilités, souvent géré par des probabilités. Le processus **::play_gran_seq** utilise des tableaux de rythmes, transposition, spatialisation, type d'enveloppe et amplitude pour générer la synthèse granulaire.</figcaption></figure>

<footnote n="43">43 https://forum.ircam.fr/projects/detail/max-sound-box/</footnote>
## 1.6. La partition électronique centralisée

Les exemples précédents illustrent la notion de partition électronique centralisée. C'est une partition pour l'exécution puisque l'électronique est définie à travers le programme qui la réalise. Mais pour peu que le langage de programmation impliqué soit un langage offrant un haut niveau d'expressivité, c'est aussi un espace de pensée qui permet l'écriture précises et complète des processus temporels, des traitements, des synthèses et une intégration des différents éléments nécessaires aux musiques interactives.

On peut voir la partition centralisée comme une partition d'orchestre dans laquelle chaque pupitre correspondrait à la gestion des différents programmes en parallèle, comme la synthèse, la captation gestuelle, la vidéo, les lumières, etc., avec la synchronisation et l'interaction entre ces programmes (cf. figure 1.21).

<figure><img src="image_25.png" /><figcaption>**Fig. 1.21** Représentation des différents éléments qui constituent aujourd'hui les musiques interactives et la place de la partition centralisée qui va coordonner tous ces éléments au sein d'une même partition. Elle peut s'adresser à n'importe quel média temporel et aussi les faire interagir entre elles à travers des communications et traitements de différentes données dans une * timeline « sophistiquée »* en utilisant en même temps les avantages d'un langage de programmation expressif.</figcaption></figure>
Dans le cadre de ce travail, nous proposons de réunir tous ces programmes dans une seule et unique partition décrite dans la partition Antescofo. De cette façon, lors de la performance, Antescofo va gérer chaque pupitre (et même créer et jouer les instruments dans le cas de la synthèse grâce à AnteCollider) et va les coordonner comme un chef d'orchestre. La partition centralisée est donc à la fois le support d'écriture, la partition d'orchestre et le chef d'orchestre.

Les possibilités offertes par cette approche de l'écriture de l'électronique sont fascinantes et s'adressent à différents genres musicaux :

* *musiques mixtes* : des pièces mixtes avec une nécessité de précision dans la synchronisation et une orchestration des interactions ;

* *musiques acousmatiques* : pour leur écriture et la composition du son, leurs transformations dans le temps et la superposition des couches temporelles de leur morphologie et leur construction à tous les niveaux, de la micro à la macro forme ;

* *œuvres multimédias* : que ce soit dans le domaine de l'opéra, du théâtre ou de la danse, un système d'écriture avec un langage de programmation temporelle dans une même partition permet de synchroniser différents médias, coordonner les différents éléments entre eux et les faire interagir.

## Structure d'une partition électronique centralisée

La partition électronique dans le langage Antescofo s'organise en différentes parties qui suivent un ordre fixe. La partition débute par les librairies de fonctions et de processus préprogrammés par les utilisateurs qui seront utilisées dans le reste de la partition. Puis il y aura une étape d'initialisation des paramètres et de l'environnement qu'on va utiliser, par exemple Max ou AnteCollider. Enfin, il y a la partition proprement dite, qui entremêle événements musicaux et écriture de l'électronique. C'est dans cette partie qu'on compose l'électronique et les interactions avec les différents médias.

## Une courbe d'apprentissage variable

La nécessité d'apprendre un langage de programmation est souvent invoquée comme une des difficultés majeures qui s'oppose à la généralisation des partitions électroniques. Cette remarque s'applique tout autant à la partition centralisée qui est un aboutissement de la partition électronique.

J'ai eu l'opportunité de travailler avec plusieurs compositeurs. Bien que la maîtrise nécessaire de la programmation prenne un temps certain, voire des années, les compositeurs peu habitués peuvent aussi se familiariser assez vite avec la syntaxe des partitions électroniques à un niveau plus adapté. Il ne s'agit pas de rentrer dans la programmation de processus complexes mais d'utiliser une syntaxe de base, avec des librairies prédéfinies, pour écrire une partition selon des principes et processus prédéterminés. Le compositeur peut alors écrire sa partition en réutilisant des structures
déjà programmées et en les modifiant graduellement pour répondre à de nouvelles nécessités musicales.

Un des objectifs de la librairie de composition AntesCollider (qui sera présentée dans le chapitre V) est justement de donner aux compositeurs plusieurs possibilités de création et de structuration des formes musicales, paramètres, synthèses, etc. pour qu'ils puissent écrire l'électronique de façon plus simple et fluide sans rentrer dans une programmation de plus bas niveau.

<figure><img src="image_26.png" /><figcaption>**Fig. 1.22** Structure en trois parties d'une partition électronique dans le langage Antescofo. La première partie *inserts* (@insert), correspond à toutes les fonctions, processus et librairies qui peuvent être inclus dans la partition, comme la librairie AnteCollider, des modèles physiques ou la *Trajectory Score Library* pour la spatialisation. La partie *initialisation* concerne toutes les variables et paramètres qui vont être calculés avant le départ de la musique pour préparer et instancier les différents composants de l'électronique. La troisième partie *événements et actions électroniques dans le temps* est la partition proprement dite, elle décrit les différentes actions à effectuer à des moments précis du déroulement de la pièce musicale.</figcaption></figure>

<footnote n="44">44 https://forum.ircam.fr/projects/detail/trajectory-score-library/</footnote>
## I.7. Préservation de l'électronique

Pour conclure ce chapitre, il faut évoquer un problème potentiel qui peut empêcher les partitions électroniques et les partitions centralisées de jouer pleinement le rôle de notation de l'électronique : leur obsolescence.

La partition, avec sa notation fixée par la tradition, a comme fonction de transmettre aux musiciens la musique pour être jouée et en même temps de pouvoir l'enregistrer pour la reproduire dans le futur, y compris après le décès du compositeur. Ce problème de transmission se prolonge en un problème d'archivage, de conservation et de pérennité.

Dans le monde de la musique électroacoustique en temps réel, cette problématique est toujours présente et s'aggrave du fait qu'à la différence de la notation symbolique occidentale qui a eu un développement relativement lent sur un support matériel stable comme le papier et visant un ensemble d'instruments prédéfinis, la technologie numérique en revanche évolue en permanence. Les évolutions du matériel et du logiciel impliquent par exemple de mettre à jour ou de redévelopper des effets ou des synthèses pour pouvoir rejouer les pièces.

La question de la pérennité des supports numériques est un des grands défis de nos sociétés contemporaines et les solutions son bien loin d'être satisfaisantes. Même avec les techniques actuelles très sophistiquées, nous sommes encore loin d'avoir des supports aussi pérennes que la table en argile des 36 Chants hourrites et ses 3 400 ans ! L'espoir de supports spécifiques de longue durée n'a jusqu'à présent pas été réalisé. Des supports comme le CD ou les disques durs s'abîment inévitablement avec le temps et, à la différence de la représentation analogique de l'information sur papier ou sur argile, l'information numérique est fragile et s'altère beaucoup plus facilement. Et indépendamment de la pérennité de l'encodage physique, la course technologique est la cause d'une obsolescence à court terme. Par exemple, des supports spécifiques pour le son comme le DAT (bandes magnétiques) ou pour le stockage de données comme les disques Syquest, ne sont plus fabriqués une vingtaine d'années après leur apparition, et on ne retrouve plus aujourd'hui de dispositif de lecture.

Apple aura utilisé en 30 ans 4 architectures de processeurs différents, ce qui signifie à chaque fois un travail supplémentaire de recompilation pour les développeurs. Les logiciels dont le développeur « est passé à autre chose » ne fonctionneront tout simplement plus dans les nouvelles architectures. Et l'obsolescence des outils informatiques aujourd'hui n'est pas seulement due au matériel, mais aussi aux évolutions des systèmes d'exploitation.

Ce problème n'est pas récent. L'exploitation du répertoire à l'Ircam passe pour chaque reprise par une étape de portage. Cette étape vise à assurer les mises à jour nécessaires et même le redéveloppement des librairies externes qui ne sont plus disponibles. Cela peut se faire plus simplement si les logiciels sont des logiciels en « open source ». Mais au-delà de la mise à jour, la phase de portage est aussi nécessaire pour adapter la pièce
à la salle de concert (par exemple pour la réverbération), aux dispositifs de captation (micro) et de diffusion (par exemple multicanale).

Nos sociétés contemporaines de consommation, du déchet et mercantiles poussent à l'obsolescence, un paradoxe auquel doivent faire face les institutions vouées à un travail de conservation du patrimoine et de la culture. Cette contradiction nous amène à interroger une préconception implicite de la musique savante occidentale : est-ce que les musiques qu'on fait aujourd'hui sont destinées à être rejouées dans le futur ou doivent-elles être considérées comme des objets éphémères liés à un moment et à un lieu, comme c'est le cas dans d'autres arts (la mise en scène dans le théâtre par exemple) ou dans d'autres cultures ?

Bien entendu, nous n'avons pas assez de recul pour prévoir ce qui arrivera aux créations musicales actuelles. On peut déjà constater qu'il y a un plus grand pourcentage de pièces mixtes avec informatique qui ont été jouées une ou deux fois puis sont passées à l'oubli que de pièces qui font répertoire. Bien sûr, toute création n'est pas destinée à rentrer dans le répertoire, mais cette tendance est plus marquée pour les pièces mixtes avec des dispositifs complexes, ce qui montre l'impact de l'obsolescence technologique.

Ce phénomène va de pair avec le fait que les compositeurs ont aussi besoin d'avoir des commandes et tout un système de diffusion (les salles de concerts, les festivals, les orchestres) qui privilégie les créations plutôt que les reprises. Si on ajoute les contraintes de temps (et d'argent) de plus en plus marquées qui amènent à négliger la documentation des dispositifs électroniques impliqués, et l'obsolescence du matériel utilisé (ordinateurs, capteurs, caméras, interfaces de contrôle, contrôleurs, dispositif de diffusion multicanale...), on voit bien que la situation n'est pas près de s'améliorer, au moins dans le temps où j'écris cette thèse ni dans un futur proche...

La mise à jour des pièces avec électronique est gérée pour l'instant par les institutions et les pièces sont mises à jour si l'œuvre en question est reprise. Le temps fait son travail de filtrage. Quand les outils ou librairies ne sont pas disponibles et que le compositeur n'est plus parmi nous, c'est tout un travail de restauration à faire pour essayer de recréer les mêmes sonorités que la version d'origine, en s'appuyant sur des enregistrements quand ils existent. Il faut donc avoir une infrastructure et consacrer des ressources pour conserver et actualiser ces œuvres en permanence en s'adaptant aux nouvelles technologies de production sonores.

Il faut tout de même relativiser le problème : la difficulté évoquée existe aussi pour la musique classique. Sa perpétuation semble poser moins de problème mais implique tout un écosystème, des instrumentistes, des orchestres, des conservatoires, des professeurs, des lieux de concerts, des luthiers, etc., pour pouvoir se perpétuer.

Parmi des réponses envisageables qui diminuent le coût de la pérennité des pièces mixtes ou avec dispositifs interactifs en temps réel, il y a :

* la standardisation et la rétrocompatibilité logicielle et matérielle ;
* des architectures logicielles qui permettent de pérenniser le programme en exécutant des applications dans différents environnements (comme *Docker* ou comme les systèmes de virtualisation) ;

* le développement de l'open source et de l'open hardware.

Une initiative comme la plateforme Software Heritage <fnref n="45" /> montre bien que ces problèmes ne sont pas spécifiques à la musique et les solutions apportées bénéficieront aussi au domaine musical. Si la disponibilité des sources ne garantit pas une pérennisation des logiciels, elle y contribue grandement en permettant théoriquement, même dans un futur lointain, de recompiler les logiciels nécessaires.

Les logiciels open source permettent aussi un partage de connaissances et, dans le cas de l'informatique musicale, des librairies de traitements, de synthèses, de représentation des données musicales, etc. La librairie AntesCollider développée au cours de cette thèse, est une librairie open source. Elle est basée sur le logiciel open source SuperCollider, moteur de synthèse sonore, et Antescofo, langage de programmation actuellement en accès gratuit mais dont la partie langage est destinée à devenir open source.

Une posture plus radicale est aussi possible à l'instar d'autres cultures où la musique relève d'une tradition orale. La transmission se concentrerait pendant les répétitions, l'exécution et le concert. Le concert est conçu comme un moment créateur d'émotions et de nouvelles idées et la pièce n'est pas destinée à être conservée comme un tableau, une sculpture ou un objet matériel. La musique par essence est un art du temps, du présent, éphémère et immatériel.

<footnote n="45">⁴⁵ Software Heritage est une initiative qui vise à archiver tous les programmes open source et à les garder exécutables : https://www.softwareheritage.org/</footnote>
## II. Outils pour la composition de musiques électroacoustiques et mixtes

> « La technologie à elle seule ne suffit pas à susciter des outils de création, non plus que l'intuition du musicien. Il faut engranger tout un savoir, un savoir-faire et des idées : sur les possibilités technologiques ; les modes de synthèse, leurs caractéristiques psycho-acoustiques, leurs implications sur les mises de jeu ; les situations musicales qu'on veut mettre en œuvre, et en particulier, les programmes d'aide à la réalisation et à la composition qu'elles supposent, la place à donner au "temps réel", aux commandes gestuelles, et au temps différé, au recul critique, aux représentations hors temps. » [Ris85]

### II.1. Introduction

Dans ce chapitre, je vais exposer ma conception des outils informatiques pour la composition de musiques mixtes, interactives et électroacoustiques à partir de ma pratique compositionnelle et de RIM. L'exploration des outils et instruments électroniques/informatiques m'a questionné sur son rapport avec la créativité et la nécessité d'avoir des systèmes flexibles qui permettent non seulement d'aider le processus de création mais aussi de le stimuler avec de nouvelles possibilités. Cette exploration m'a permis aussi de me confronter à différents environnements de travail conçus pour des tâches spécifiques et pour la création de différents types de sons et de musiques.

On peut distinguer différentes catégories d'environnements informatiques pour la création musicale et la composition. Il y a des logiciels ad hoc de type séquenceur comme les DAW qui ont des limitations évidentes du fait qu'on ne va pas pouvoir changer leur comportement interne. On dira qu'ils sont « fermés ». D'un autre côté, il existe des environnements beaucoup plus « ouverts » comme ceux proposant une programmation visuelle (de type data flow) tels que Max/Pd qui permettent de construire des événements musicaux en temps réel. Dans une autre catégorie encore, il y a les logiciels d'aide à la composition (CAO) tels que OpenMusic qui vont permettre de modéliser et organiser des pensées compositionnelle à un niveau plus abstrait et symbolique mais qui se limitent à des opérations hors temps.

Un système comme Antescofo échappe à la dichotomie temps réel/hors temps et propose de ce fait une approche nouvelle. Il permet en effet une unification du contrôle et de l'écriture générale de l'électronique à un haut niveau expressif, permettant de spécifier des événements compositionnels et de les générer en temps réel en tenant compte de la temporalité de la performance.

Le graphique ci-dessous offre une classification des outils offerts par l'informatique musicale à partir de trois pôles : la composition, la performance et le traitement et la manipulation du son. Historiquement, ces trois classes ont été distinguées car elles
correspondent à des besoins en ressources de calculs et à des contraintes de temps réel très différents. Avec l'augmentation de la puissance de calcul (en vitesse mais aussi en mémoire), les systèmes récents tentent souvent de se positionner à l'intersection de ces catégories traditionnelles, ouvrant ainsi de nouvelles dimensions créatives et facilitant l'expression des idées musicales.

<figure><img src="image_27.png" /><figcaption>**Fig. 2.1** Une classification des logiciels musicaux en systèmes de composition, de performance (temps réel) et de synthèse et traitements. La liste des logiciels cités n'est pas exhaustive mais elle donne une bonne idée du paysage et permet de positionner la librairie AntesCollider dans le panorama des logiciels et librairies pour la performance et création sonore aujourd'hui. Les contours en lignes pointillées représentent des librairies programmées dans des langages dédiés à la musique.</figcaption></figure>

Le langage Antescofo permet une écriture fine et un contrôle de l'électronique en synchronisation avec des performeurs. Il se situe donc à l'intersection des pôles
composition et performance. Mais il ne possède pas de système natif de traitement et de synthèse sonore<fnref n="46" />.

Mon travail avec différents environnements, la nécessité qui en a émergé de composer avec des systèmes plus flexibles permettant une écriture fine, souple et dynamique de l'électronique et le besoin d'adresser ces systèmes à partir d'une partition unique permettant de concrétiser ma pensée musicale, m'ont amené au développement de la librairie AntesCollider. Cette librairie qui tire parti du langage de programmation Antescofo et du moteur de synthèse SuperCollider va permettre la création de structures compositionnelles de haut niveau et la construction dynamique de chaînes de traitements du son et de synthèses sophistiquées. Utilisée comme système d'aide à la composition en temps réel, cette librairie permet aussi d'écrire l'électronique d'une façon centralisée dans une partition augmentée où l'on pourra décrire tous les éléments de l'électronique d'une façon précise au même titre qu'une partition instrumentale traditionnelle, en profitant des possibilités, des potentialités et de la puissance de calcul que les langages informatiques offrent aujourd'hui.

AntesCollider se situe donc à l'intersection des trois pôles que nous avons pointés, en complétant Antescofo par des fonctionnalités adressant la synthèse du son.

## Organisation du chapitre

La suite de ce chapitre offre un panorama des outils informatiques musicaux du point de vue de ma pratique. Il détaille les motivations qui m'ont poussé à développer la librairie AntesCollider. La section suivante présente la co évolution qui existe de fait entre la technologie et la pensée musicale. Ces interactions, ancrées dans la facture instrumentale et la production du son, ont dépassé les problématiques instrumentales en chamboulant l'écriture et les pratiques compositionnelles, par exemple en dépassant la notion de * timeline * et en construisant la composition comme le résultat d'un programme.

L'analyse présentée dans ce chapitre se poursuivra aux chapitres suivants par une introduction au langage Antescofo (chapitre III) et à SuperCollider (chapitre IV). Nous aurons alors tous les éléments nécessaires pour exposer en détail la librairie AntesCollider au chapitre V.

## II.2. De l'instrument à l'outil informatique : entre exploration, création, programmation et composition

La technologie a toujours été liée au processus de fabrication d'instruments, et l'instrument de son côté a influencé la création et la pensée musicales. Les œuvres musicales pour piano de la période romantique, avec leur virtuosité et leurs sonorités,

<footnote n="46">⁴⁶ Voir cependant la thèse de Pierre Donat-Bouillud, « Models, Analysis and Execution of Audio Graphs in Interactive Multimedia Systems », soutenue en décembre 2019 et qui porte sur l'intégration des traitements audio dans Antescofo. Les propositions de cette thèse ne sont cependant pas suffisamment matures pour avoir été intégrées dans le langage.</footnote>
n'auraient sans doute pas vu le jour sans l'invention et l'évolution du piano à leur époque. La musique des compositeurs romantiques comme Beethoven ou Chopin est écrite avec et pour le piano, instrument très évolué et raffiné au niveau technologique. Cette musique est conçue pour être jouée par un pianiste expert qui a étudié son instrument pendant des années grâce à une pratique et une étude traditionnelle de sa technique. L'instrument, lui, continue à exister et à être fabriqué grâce à sa popularité, ce qui lui a permis de devenir un instrument stable et toujours utilisé dans différents genres musicaux jusqu'à nos jours. On voit bien que l'outil ou l'instrument est ainsi indispensable et inséparable de la musique qu'il produit.

Aujourd'hui, les nouveaux outils informatiques ont complètement révolutionné le rapport au son et à la composition tous styles confondus. À partir des premières expériences audionumériques, de la famille de logiciels Music-N aux Bells Laboratories en passant par les logiciels d'édition comme ProTools (première version en 1989), les compositeurs en quête de nouvelles formes et de nouvelles sonorités se sont très rapidement appropriés et ont intégré ces outils dans leur espace de travail et de pensée compositionnelle. Dans le même temps, ces outils n'ont cessé d'évoluer et sont passés très rapidement d'un paradigme analogique (instruments acoustiques, bande et synthétiseurs électroniques analogiques) au paradigme numérique (les DAW, stations audionumériques et logiciels de synthèse sonore et de composition assistée par ordinateur, CAO).

Parmi ces systèmes, ceux qui sont conçus pour que l'utilisateur puisse bénéficier d'une plus grande flexibilité, modularité et programmabilité permettent aujourd'hui à de nombreux compositeurs et réalisateurs en informatique musicale de programmer leurs propres environnements et instruments audionumériques. Cette programmabilité est fondamentale puisqu'elle permet la rétroaction entre l'espace de pensée compositionnelle et la lutherie numérique (création d'instruments, des interactions, des morphologies...).

Le nombre d'outils commerciaux ou de recherche proposés aujourd'hui rend impossible de tous les explorer et de les maîtriser dans le temps d'une vie humaine. Ce point est intéressant du fait que pour composer ou faire de la musique aujourd'hui, il faut tout d'abord avoir une idée forte de ce que l'on veut faire mais aussi de ce que l'on peut faire. Peu importe le style musical, nous sommes aujourd'hui tous confrontés aux outils numériques et il faut savoir quels seront parmi tous ces écosystèmes de logiciels musicaux ceux qui seront les plus adaptés à la pensée musicale qu'on veut exprimer.

## II.3. De l'outil informatique fermé à l'outil programmable

Avec l'avènement de l'ordinateur dans le monde musical de la deuxième partie du XXe siècle, nous avons vu émerger différentes musiques qui se sont adaptées aux outils dont elles proviennent.

Ceci n'a pas conduit les outils à se stabiliser, mais au contraire ils n'ont cessé d'évoluer en ayant recours aux techniques informatiques issues des recherches les plus actuelles. Par exemple, le Machine Learning et l'intelligence artificielle (IA) contribuent depuis
déjà des années à la création musicale, notamment dans des centres de recherche comme l'Ircam <fnref n="47" /> ou ses équivalents au niveau international. Les grandes multinationales du numérique s'intéressent aussi à ces nouvelles méthodes permettant de générer du son et faire de la musique, comme le projet Magenta<fnref n="48" /> de Google. Dans ce domaine, on trouve des applications avec un grand potentiel dans le domaine de la cocréation et d'autres relevant de la production musicale de masse. Ces nouveaux assistants visent principalement le *casual musician* <fnref n="49" /> en simplifiant la production musicale dans un domaine limité mais significatif. Ils favorisent le workflow créatif en offrant une certaine automatisation, au prix cependant d'une grande spécialisation, par exemple en restreignant de manière importante le domaine d'application. Ces outils risquent d'amener le son et la musique vers une standardisation : l'assistant va proposer des mix jugés « bons » (c'est par exemple le cas des plug-ins qui reposent sur le Machine Learning comme iZotope<fnref n="50" /> et autres) en fonction de standards qui, à leur tour, sont renforcés par les outils technologiques eux-mêmes. Ces systèmes sont donc particulièrement fermés et, dans la plupart de ces nouvelles techniques, la notion de composition et de génération de structures temporelles à plus grande échelle est une dimension qui manque cruellement.

Les stations audionumériques et les logiciels de composition musicale par *drag & drop*<fnref n="51" /> sur une * timeline* fixe sont très répandus de par leur simplicité d'utilisation et offrent un modèle plus ouvert. Avec ces systèmes, il est possible de faire de la musique en quelques minutes sans aucun besoin d'avoir étudié la musique et le solfège et sans aucune notion compositionnelle. Ceci n'est pas une critique en soit, chacun fera la musique qui lui plaît et avec les outils qu'il voudra, mais personnellement, c'est une voie qui m'intéresse peu. Ces logiciels souffrent de sérieuses contraintes même s'ils possèdent un grand nombre de possibilités au niveau timbrique avec des centaines, voire des milliers, de sonorités et de préréglages (*presets*) tous prêts à l'emploi. Au niveau temporel, ils ont été conçus initialement pour faire des genres particuliers de musiques, comme celles basées sur le *groove/loops*. Et par conséquent, bien que les musiques réalisées avec ces outils soient vastes et variées, elles restent toujours dans un cadre déterminé, souvent liées à une « sonorité » déterminée, dans un contexte fixé, et réglées par une horloge fixe et un curseur temporel global. Il est très difficile d'exprimer des relations temporelles complexes, par exemple au niveau rythmique, ou des changements de paramètres basés sur d'autres concepts que la linéarité et des grilles prédéfinies (que ces grilles soient temporelles ou bien qu'elles adressent

<footnote n="47">⁴⁷ On peut citer le renouvellement des transformations vocales apportées par l'apprentissage profond, ou de nouveaux outils créatifs comme ceux développés dans le projet ACIDS : https://acids.ircam.fr</footnote>

<footnote n="48">⁴⁸ https://magenta.tensorflow.org</footnote>

<footnote n="49">⁴⁹ Le terme *casual creator* a été introduit par Katherine Compton dans sa thèse « Casual Creators: Defining a Genre of Autotelic Creativity Support Systems » (2019).</footnote>

<footnote n="50">⁵⁰ https://www.izotope.com/en/learn/speed-up-your-workflow-with-assistive-audio-technology.html</footnote>

<footnote n="51">⁵¹ Le glisser-déposer en français, dans une interface graphique.</footnote>
d'autres paramètres comme la hauteur). Par exemple, l'expression de la polytemporalité et de la synchronisation avec un performer sont inaccessibles dans ces environnements. On va créer et composer dans un cadre prédéfini, limité et structuré (même s'il est vrai que ces limites sont repoussées avec des systèmes de plus en plus élaborés tels que Ableton Live<fnref n="52" /> et l'intégration de Max for Live<fnref n="53" /> par exemple).

Si l'on souhaite sortir de ce cadre prédéfini, ces logiciels ne sont tout simplement pas adaptés et il faut chercher d'autres outils, sans doute plus complexes à utiliser mais plus ouverts et flexibles. Pour « sortir du cadre » et disposer de plus de flexibilité, il faut nécessairement adresser plus directement la machine, c'est-à-dire rentrer dans la programmation.

Il y a tout de même une alternative pour les compositeurs qui souhaitent « sortir du cadre » et qui n'ont pas ou ne veulent pas rentrer dans la programmation : c'est de recourir à un expert en informatique musicale afin de lui déléguer la réalisation de leurs parties électroniques (ou même des parties instrumentales dans le cas de la CAO ou de l'aide à l'orchestration). Dans cette approche, souvent pratiquée par les institutions de création musicale partout dans le monde, le réalisateur en informatique musicale<fnref n="54" /> (RIM [Zat13], « computer music designer » ou « computer music performer » en anglais) dispensera son expertise pour orienter le compositeur et lui apporter des idées et solutions techniques, par exemple des traitements, logiciels, systèmes de programmation, etc. Il ne faut cependant pas oblitérer le fait que la pensée musicale se nourrit aussi de la maîtrise de l'outil informatique, tout comme la composition instrumentale « la plus classique » intègre les contraintes spécifiques de chaque instrument. Ainsi, le compositeur qui souhaite utiliser une technologie spécifique doit « s'approprier » cette technologie (ou au moins ces résultats sonores) pour créer ses pièces.

En tant que compositeur et réalisateur en informatique musicale, et dans la continuité des musiques contemporaines et exploratoires, je me suis intéressé non seulement à l'interaction et au dialogue entre le monde instrumental et électronique mais aussi à comment et avec quels outils réaliser ces instruments et ces interactions. Comment avoir des systèmes performants, plus flexibles pour pouvoir exprimer des idées musicales novatrices en relation directe avec la pensée musicale ? Bien que nous soyons encore bien loin de l'utopie de composer directement avec la pensée, peut-on se rapprocher de systèmes qui donnent plus de liberté et de possibilités au niveau de la manipulation sonore et musicale et qui permettent d'incarner plus directement l'intention musicale dans la tête du compositeur ? Comment créer des outils et instruments qui puissent en même temps stimuler l'espace de pensée et de créativité musicale à travers l'exploration des possibilités offertes par les nouvelles technologies

<footnote n="52">⁵² https://www.ableton.com</footnote>

<footnote n="53">⁵³ https://www.ableton.com/fr/live/max-for-live/</footnote>

<footnote n="54">⁵⁴ Laura Zattra, « Les origines du nom de RIM (Réalisateur en informatique musicale) », Journées d'informatique musicale (JIM 2013), Saint-Denis, 2013, p. 113-120.</footnote>
disponibles ? Pourquoi ne pas chercher aussi d'autres façons de faire avec d'autres
outils et paradigmes ?

Ce travail d'exploration entamé depuis des années converge vers l'utilisation des
logiciels et langages de programmations spécifiques pour la composition, la synthèse
et traitement du son qui se sont à la fois stabilisés sur certains concepts qui ont prouvé
leur efficacité (par exemple la notion de patch) et étendus depuis leur création pour
offrir et explorer de nouvelles possibilités et fonctionnalités. On peut citer par exemple
Max/Pd et SuperCollider qui ont émergé comme des outils incontournables.

Pour la composition et construction des structures temporelles de plus haut niveau, mon
cheminement personnel m'a rapproché dans un premier temps de systèmes d'aide à la
composition tels que OpenMusic et, plus tard, avec la nécessité d'une intégration dans
un système temps réel, du langage Antescofo. Ces recherches ont été réalisées avec la
volonté d'un renouvellement des rapports à l'outil et pour tirer parti des possibilités
inédites offertes par les développements informatiques actuels dans la création des
musiques interactives, de leur interaction et de leur synchronisation avec d'autres
médias temporels.

Le système auquel j'ai abouti dépasse la notion de boîte à outils technique pour devenir
un instrument à part entière dans mon imaginaire et mon espace de pensée, apportant
une plus grande liberté et souplesse à ma musique. L'ordinateur et le programme
informatique deviennent ici un instrument d'aide à la création et à l'expérimentation
avec cette rétroaction qui permet aussi des trouver des idées qui n'auraient pas pu voir
le jour sans cet aller-retour constant entre exploration, création, programmation et
composition. Comme l'écrit Yann Orlarey :

> « L'ordinateur rentre dans cette boucle, entre le cogitare, la circulation des
> idées, la production d'idées nouvelles, et l'intellegere le fait de choisir et de
> reconnaître les idées intéressantes... Le langage de programmation est
> extrêmement important dans cette description-là. Il y a une qualité, une
> ergonomie cognitive qui fait que c'est plus ou moins facile de penser les
> problèmes. Il nous donne une grille de lecture du monde d'une certaine
> manière, comme la notation musicale. » [Pot09]

## II.4. Les systèmes de programmation musicale temps réel et leurs limites

Aujourd'hui, il y a pléthore d'instruments, de systèmes de programmation et
d'exemples de synthèses et traitements de sons. Ces systèmes mettent en œuvre des
technologies de plus en plus élaborées et en pleine expansion comme le Machine
Learning et l'IA. Cependant, on peut dire qu'il y a beaucoup de sons mais pas assez de
musique. Plus précisément, il y a peu de systèmes qui permettent de structurer et
manipuler les sons dans un discours plus vaste comme c'est le cas d'une composition
avec une écriture fine de l'électronique et de l'interaction.

Les systèmes qui adressent ce problème relèvent de deux catégories :
* d'un côté, il y a des systèmes d'aide à la composition comme OpenMusic [Ago98]. Très performants et utilisés depuis des années par beaucoup des compositeurs, ces systèmes restent dans le domaine de la génération du matériel en temps différé et ne prennent pas en compte l'aspect performatif ;

* de l'autre, il y a des systèmes temps réel comme Max ou Pd qui sont très performants au niveau interaction temps réel mais qui n'ont pas une véritable notion de structure et d'organisation temporelle.

Nos projets musicaux nous ont amenés à nous focaliser sur la seconde catégorie des systèmes de programmation pour la musique. En effet, les systèmes de CAO sont utilisés « hors temps » et ne permettent pas de concevoir, de réaliser et de contrôler en temps réel des interactions musicales, lors de la performance.

Des outils largement utilisés comme Pd [Puc96] ou Max et son extension audio MSP [Zic98] ont démontré leur flexibilité et leur adaptabilité à un grand nombre de projets interactifs à travers une notion intuitive de « patchs » qui sont des programmes à flot de données (*dataflow*) rappelant la manière de configurer les premiers synthétiseurs analogiques à l'aide de connexions. Cette façon de programmer, ou de « patcher » dans le vocabulaire de la communauté, a largement contribué à la popularité de ces logiciels par son modèle visuel de programmation, sa simplicité, et la rapidité du prototypage. Ces qualités ont permis de faciliter l'apprentissage de ces environnements, surtout pour les étudiants en composition et plus généralement les musiciens.

Ces systèmes ont démontré leur efficacité et leur pérennité : Max est un logiciel qui existe depuis plus de 30 ans, qui continue à être maintenu et utilisé par une grande communauté artistique internationale non seulement dans le domaine de la musique et du son mais aussi dans le domaine des arts plastiques, de la vidéo, de la scénographie, de la danse, etc.

Ces logiciels ont cependant leurs limites quand il s'agit de la gestion du temps, de la polyphonie, des ressources de calcul. Ils manquent en particulier de dynamisme et de flexibilité dans la construction et le contrôle des processus et des chaînes de traitements. Des solutions existent mais elles sont ad hoc, peu naturelles et pas toujours efficaces (on peut penser à l'objet *poly*~ de Max par exemple). Ces systèmes à flots de données, construits sur l'analogie du circuit électrique, sont en effet des systèmes statiques : quand on programme un patch, il est fixe et on ne va pas le changer, le remplacer ou le modifier lors de la performance ou au cours de son exécution.

Un autre défaut est une gestion temporelle globale et locale des *patchs* qui reste trop élémentaire. Par exemple, l'objet *transport*<fnref n="55" /> pour le contrôle d'un tempo global et introduit dans Max 5 ne permet pas l'expression d'une multitemporalité et n'est pas adapté à des musiques avec une composante rythmique complexe.

<footnote n="55">⁵⁵ https://docs.cycling74.com/max5/refpages/max-ref/transport.html</footnote>
Le modèle à flot de données sous-jacent à Max et à PD se focalise sur les traitements sans représentation explicite de leur occurrence temporelle comme cela serait le cas avec une représentation de type « timeline ». Il n'existe donc pas de notion explicite de partition électronique dans ces systèmes. La notion de *cue-list* a cependant été introduite : il s'agit d'une série d'instructions discrètes envoyées à des dates données par des « boîtes de messages » ou des *presets* (l'objet *pattstorage* introduit à partir de Max 6 a été une grande avancée). Ces *cue-list* ne permettent pas d'exprimer une itération ou bien une exécution conditionnelle. Le calcul des dates reste aussi trop limité.

Des systèmes de * timeline* plus sophistiqués ont été introduits ultérieurement dans Max comme les objets externes rs.delos<fnref n="56" /> ou note~ (Université de musique de Bâle), tous les deux abandonnés depuis, ou plus récemment l'objet bachCommand Roll et bachCommand Score dans la librairie Bach [AG12]. Ce dernier système intègre des fonctionnalités de CAO (aide à la composition) en temps réel dans Max, en important des structures de données et des traitements spécifique de la notation symbolique. Ce système reste cependant mal adapté pour gérer des systèmes plus complexes de musiques interactives génératives avec beaucoup de traitements et d'interactions en temps réel.

Il faut mentionner aussi des alternatives externes de contrôle comme les séquenceurs Vezér<fnref n="57" />, Ossia<fnref n="58" />, Iannix<fnref n="59" /> ou encore des alternatives intégrées plus sophistiquées de contrôle, synthèse et composition comme Usine<fnref n="60" />. Ces systèmes plus ou moins souples et sophistiqués offrent de meilleures possibilités de contrôle, d'interaction et de bonnes performances mais ils ne permettent pas une écriture fine des événements électroniques pour les musiques mixtes. Par exemple, ils ne supportent tous qu'une notion de * timeline* mono-curseur (à l'exception de Iannix qui permet un contrôle multicurseur mais qui reste statique, les * timelines* étant fixées à l'avance).

## II.5. Dépasser le modèle visuel

Les systèmes cités reposent le plus souvent sur des langages de programmation visuelle. Les langages visuels ont souvent été proposés car ils sont censés simplifier la programmation et l'accès aux ressources informatiques [GrPe96] [LaSi87], par exemple en limitant les erreurs syntaxiques et en visualisant explicitement le cheminement et les transformations des données. Ils contribuent aussi à un mode de travail plus interactif et incrémental entre l'utilisateur et les programmes. Si ces propriétés ont pu être validées, notamment dans le domaine de la composition assistée par ordinateur, où cette interactivité améliore considérablement le potentiel créatif des outils informatiques [AgAsBr06] [Ass98], ainsi que dans les applications de traitement

<footnote n="56">⁵⁶ http://arts.lu/roby/index.php/site/maxmsp/rs_delos</footnote>

<footnote n="57">⁵⁷ https://imimot.com/vezer/</footnote>

<footnote n="58">⁵⁸ https://ossia.io</footnote>

<footnote n="59">⁵⁹ https://www.iannix.org/fr/whatisiannix/</footnote>

<footnote n="60">⁶⁰ https://www.brainmodular.com</footnote>
du signal, elles sont discutables dans d'autres contextes [Whi97-1] [Whi97-2] [GrPe92].

En particulier, la programmation visuelle peine à rendre compte simplement des
structures itératives, rend difficile l'expression de traitements algorithmiques
complexes ou la gestion fine de processus dynamiques (récursion, concurrence,
interruptibilité, arrêt). Ces difficultés sont bien connues [AgGhGi19] et ont amené par
exemple à intégrer récemment un langage textuel, Bell [GIAG19], au sein de bach.
Cependant, si bach étendu par Bell est très performant pour générer des structures et
du matériel symbolique en temps réel ainsi que pour une écriture de l'électronique, il
n'est pas conçu pour gérer des tâches dynamiques complexes avec un nombre élevé de
traitements, de synthèses et d'interactions en parallèle comme c'est le cas d'une
performance interactive entre musiciens, électronique et autres médias temporels.
### III. Antescofo, un langage de programmation pour écrire le temps musical

Ce chapitre propose une présentation générale du système Antescofo. Ce n’est pas un manuel utilisateur ou un manuel de référence : l’objectif est de montrer comment il répond à certaines problématiques compositionnelles discutées précédemment. Il s’agit aussi de donner les éléments qui permettent la compréhension des développements de la librairie AnteCollider et les exemples présentés à l’occasion de la description des œuvres.

Les capacités d’écoute du système sont peu utilisées dans le travail présenté ici et nous nous concentrons sur la partie langage. Nous utilisons d’ailleurs le terme Antescofo pour désigner indifféremment le système ou bien son langage de programmation.

Ce chapitre débute par une description succincte de mon travail avec cet outil. Il se poursuit (section 2) par une présentation du langage et du contexte qui a donné lieu à ce projet. Nous situons le langage dans la problématique du suivi de partition, des systèmes temps réel et des langages de programmation.

Nous abordons ensuite plusieurs notions spécifiques à Antescofo qui présentent un intérêt particulier dans le cadre des applications à la musique. Nous proposons de tirer parti de la notion de processus et d’acteur pour structurer les partitions électroniques (section 3).

Antescofo est un langage qui offre un modèle du temps adapté aux processus musicaux. Ce modèle du temps permet la simultanéité en tirant parti de notions développées dans le domaine des langages temps réel synchrones (section 4).

Antescofo est un langage réactif et la section 5 introduit une structure spécifique, le *whenever*, qui permet de réagir à des événements arbitraires. C’est aussi un langage temporisé dans lequel le temps s’écoule. La section 6 introduit la notion de *curve différentielle* qui permet de traiter des modèles physiques dans un temps continu.

Les sections 7 et 8 présentent respectivement quelques mécanismes d’exécution utile pour préparer une performance et quelques fonctions de la bibliothèque Antescofo qui sont particulièrement utilisées dans mes pièces.

Pour finir, je présenterai quelques réflexions sur la possibilité d’une représentation graphique des programmes. En effet, Antescofo a fait le choix d’une représentation textuelle pour pallier plusieurs difficultés inhérentes aux approches visuelles. Mais les langages visuels ont des avantages qu’on ne peut négliger en termes de lisibilité et de facilité d’utilisation. J’esquisse une piste possible pour tirer parti des deux représentations.
### III.1 Introduction

C'est à partir du système Antescofo et de son langage de programmation que nous avons développé notre notion de partition centralisée. Nous avons utilisé Antescofo dans plusieurs créations à l'Ircam à partir de 2010 avec la réalisation de la partie informatique de *Einspielung I* d'Emmanuel Nunes pour violon et électronique (Diego Tosi, violon). Dans cette œuvre, on a utilisé pour la première fois le suivi de partition avec des traitements note à note pour piloter le logiciel Max. Par la suite, nous avons réalisé la partie électronique de *Raggi di stringhe* de Lara Morciano (Hae-Sun Kang au violon) où on a utilisé le suivi de partition et le calcul du tempo en temps réel avec des déformations temporelles (accelerando et rallentando) pour moduler des traitements électroniques. Cette pièce riche et vertueuse aussi bien au niveau électronique qu'instrumental a été lauréate du prix Giga Hertz Awards du ZKM/Experimentalstudio en Allemagne.

Antescofo est un système en évolution continuelle. Plusieurs de mes pièces ou de mes réalisations électroniques ont motivé certains développements du langage ou bien ont permis de valider de nouvelles constructions. Ainsi, la réalisation de *Iki-no-michi* pour saxophones de Ichiro Nodaira, a été la première à utiliser les « *curves* » et les variables dans le langage Antescofo. Nous avons intégré ces *curves* pour faire des glissandi et des gels (*freezes*) des notes des saxophones pour créer des couches qui se superposent au jeu instrumental. Le langage a évolué rapidement vers un système complet de programmation avec l'arrivée de Jean-Louis Giavitto (en 2011), le travail de thèse de José Echeveste (2011-2015) et la création du projet Mutant à l'Ircam.

Après ces premières expériences, une résidence en recherche artistique à l'Ircam en 2016 m'a permis de me familiariser encore plus avec Antescofo et de participer à l'extension de la librairie, en particulier pour la manipulation de tableaux (la librairie native Antescofo inclut ainsi les mêmes fonctions sur les tableaux qu'on peut trouver dans SuperCollider). Cette résidence m'a permis aussi d'expérimenter les premiers couplages à SuperCollider. Dans cette approche initiale, le couplage visait le langage de SuperCollider : *slang*. On verra au chapitre V que la version actuelle de AntesCollider vise directement le pilotage du serveur scsynth et son développement coïncide avec le début de ce travail de thèse.

### III.2. Le langage Antescofo

Antescofo est né à partir du travail entre le compositeur Marco Stroppa et le chercheur Arshia Cont pour la création de la pièce *Off silence* pour saxophone alto et électronique en temps réel (œuvre créée à Shizuoka par Claude Delangle). Il se présente sous la forme d'un objet Max ou Pd.

#### Contexte

Antescofo se présente comme un système de *suivi de partition*. On définit traditionnellement le suivi de partition comme l'alignement automatique d'un flux audio correspondant à un ou plusieurs musiciens sur une partition symbolique.
Dannenberg et Vercoe ont été dans les années 1980 les premiers à proposer un système de suivi de partition [Dan84a, Ver84]. Les entrées sont symboliques (protocole MIDI) avant d'être étendues par la suite à des entrées audio.

À la différence des systèmes précédents de suivi de partition, Arshia Cont propose pour la première fois (en 2007) de coupler une machine d'écoute avec un langage permettant de décrire les séquences d'actions dans le temps de la partition. L'originalité de ce couplage est de permettre l'écriture du déroulement temporel de processus électroniques, en coordination avec des instrumentistes, sans pour autant figer le temps de ces processus.

En effet, le système prend en compte la dimension temporelle du suivi, c'est-à-dire qu'il infère le tempo auquel l'instrumentiste joue à partir des événements musicaux suivis, et utilise ce tempo dans le séquencement des actions électroniques. Ceci permet d'avoir une électronique « adaptative ou élastique » qui va se synchroniser à l'interprète d'une façon dynamique. À la différence d'autres systèmes comme les *cue-list* ou les boîtes de messages Max, la partie électronique ne sera plus seulement un accompagnement rigide de l'interprète avec des événements discrets à la temporalité fixée *a priori*, mais pourra interagir d'une manière plus vivante, réactive et expressive grâce au langage.

En suivant la partie du musicien, le système est capable d'exécuter les commandes de l'électronique en s'adaptant aux variations de l'interprétation. La musique électronique peut désormais être interprétée et le compositeur peut écrire les actions électroniques dans un temps musical partagé et synchronisé avec celui d'un musicien, d'un performeur, avec d'autres médias ou comme un méta-séquenceur sophistiqué, aussi bien pendant le processus de création que pendant le concert, la performance ou l'installation sonore.

Le système est suffisamment mature pour avoir donné lieu à la création d'une *startup* qui commercialise l'application Metronaut<fnref n="61" /> pour l'accompagnement automatique des instruments traditionnels. La partie langage continue d'être développée par Jean-Louis Giavitto et les objets Max et PureData restent disponibles librement pour les applications artistiques.

Le reste de cette section décrit les caractéristiques du langage de programmation de plusieurs points de vue. Notre travail n'implique pas la machine d'écoute, ce qui explique notre focalisation sur la partie langage. Afin de mieux situer les apports spécifiques du langage, nous esquisserons les liens entre Antescofo et les systèmes temps réel, le parallélisme, la programmation impérative et les DSL (*domain specific language*).

<footnote n="61">⁶¹ https://metronautapp.com/fr</footnote>
Antescofo et les systèmes temps réel

Antescofo est un système temps réel qui couple un système de suivi de partition et un langage de programmation dédié :

* Le langage est utilisé pour l'écriture de pièces musicales impliquant des musiciens humains sur scène et des processus informatiques en temps réel.

* Une machine d'écoute permet de détecter les événements musicaux dans un flux audio. Ces événements sont communiqués au système temps réel qui assure l'exécution et la synchronisation des actions électroniques avec la performance instrumentale malgré les erreurs d'écoute ou d'exécution.

* Ce système est un système réactif conçu pour l'interaction : on parle de système événementiel (ou *event-driven*) qui réagit à l'occurrence d'événements (internes ou externes au système).

* C'est aussi un système temporisé (ou *time-driven*) avec un (ou plusieurs) tempo et une synchronisation continue : le système est cadencé par l'écoulement de délai arbitraire et par des activités périodiques.

* Le système Antescofo peut être vu comme un « système cyber-physique avec humain dans la boucle<fnref n="62" /> » puisqu'il interagit avec le monde extérieur comme le musicien ou d'autres médias qui composent ensemble un réseau d'interactions et de synchronisations complexes, hétérogènes et multitemporelles.

* Le langage Antescofo est par ailleurs un langage de programmation généraliste, qui pourrait servir à programmer et contrôler d'autres événements ou médias temporels que la musique.

Le langage de programmation d'Antescofo a la particularité d'inclure à la fois la description des événements musicaux à détecter dans l'entrée audio (ce qui correspond à la partition de l'interprète humain que la machine d'écoute va suivre) et la spécification des actions électroniques.

Le langage traite les événements et l'écoulement du temps, ce qui permet de réaliser des séquencements sophistiqués dans une performance et permet au compositeur de manipuler et transformer les différents temps impliqués par les actions électroniques d'une façon souple et expressive.

Cette expressivité étend et renouvelle en permanence l'espace de pensée compositionnelle. L'électronique et son écriture deviennent une entité à part entière et son caractère n'est plus le résultat d'une pensée nettement instrumentale sujette à un suivi et un accompagnement mais peut se penser en termes d'interactions variables entre des processus autonomes. On verra d'ailleurs dans des exemples qui seront

<footnote n="62">⁶² Cette notion a été popularisée sous le nom anglais de « human in the loop cyber-physical system » dans la communauté de contrôle et de l'automatique, voir par exemple Nunes D., Silva J. S. et Boavida F. (2018), *A Practical Introduction to Human-in-the-loop Cyber-physical Systems*, Wiley.</footnote>
présentés plus tard, des réalisations purement électroacoustiques qui n'impliquent
aucun suivi.

Un langage parallèle

Une des principales caractéristiques du langage Antescofo, par rapport aux langages
classiques de programmation où tout est en séquence, est son parallélisme implicite :
il permet en effet d'exécuter plusieurs processus en parallèle comme dans une partition
d'orchestre.

Ce parallélisme va permettre non seulement d'exécuter plusieurs processus mais aussi de les synchroniser entre eux, ce qui est fondamental non seulement pour la synchronisation des événements de l'électronique dans des pièces musicales interactives mais aussi pour synchroniser plusieurs médias temporels comme la vidéo, les lumières, des robots... Cette synchronisation se réalise par exemple avec le suivi de partition, sa machine d'écoute et ses différentes stratégies de synchronisation (voir la thèse de José M. Echeveste [Ech15]) ainsi que du modèle probabiliste de suivi temporel dans la machine d'écoute (thèse de Philippe Cuvillier [Cuv16]).

Mais Antescofo a aussi été utilisé pour se synchroniser avec des données issues de captations gestuelles, par exemple le suivi gestuel d'un chef [Lem19] ou avec des processus extérieurs arbitraires grâce à un mécanisme générique, les variables temporelles <fnref n="63" />, qui utilisent le même algorithme que la machine d'écoute pour l'inférence d'un tempo et sur lesquelles on peut se synchroniser comme on se synchronise sur le musicien.

Un langage impératif généraliste

Antescofo est un langage de programmation *impératif* avec par exemple une notion de variable tout à fait similaire aux variables en C, python ou Java, mais le langage est non typé (les vérifications de type se font au vol, à l'exécution). Le style impératif permet de développer des programmes efficaces.

Mais Antescofo présente aussi de forts *traits déclaratifs*, c'est-à-dire permettant de décrire ce qui est produit plutôt que la manière de le produire. Parmi les traits déclaratifs, il y la spécification des événements musicaux à suivre, définissant une * timeline* explicite. Plusieurs structures de contrôle de haut niveau sont aussi de nature déclarative, comme les courbes ou bien le *whenever* qui définit une règle qui déclenche un processus à partir d'une condition logique arbitraire. Antescofo offre aussi des fonctions de processus qui sont des valeurs de premier ordre : on peut les passer en arguments pour paramétrer d'autres fonctions ou processus (fonction d'ordre supérieur) ce qui permet un style de programmation fonctionnel.

Comme il est classique dans le monde fonctionnel, les données sont allouées
dynamiquement. La gestion de la mémoire est implicite : le programmeur n'a pas à

<footnote n="63">⁶³ Voir dans la documentation la section consacrée aux @tempovar.</footnote>
gérer les allocations ni les libérations mémoire. Mais Antescofo utilise des compteurs de référence pour éviter les interruptions dues à un ramasse-miettes (*garbage collector*) qui serait trop intrusif dans un contexte temps réel.

Dans un contexte musical, Antescofo adresse plus précisément la création des formes et le contrôle temporel fin des événements électroniques. Il n'inclut pas par lui-même un système de synthèses et de traitements audio car le langage de programmation est dédié à la création des structures temporelles génératives et interactives. Cependant, des intégrations de moteurs de rendu audio dans le langage Antescofo ont déjà vu le jour, notamment le prototype intégrant le langage de synthèse et traitement FAUST dans Antescofo [DGCNO16]. La librairie AntesCollider [FEGIDO19], qui sera décrite en détail dans le chapitre V, est un autre exemple de couplage à un moteur audio.

## Antescofo comme langage dédié

Antescofo est un DSL (*domain specific language*) dédié à un domaine d'application précis avec l'introduction dans le langage de mécanismes spécifiques pour la musique et la gestion temporelle. Mais ces mécanismes sont traités comme des mécanismes généralistes uniformes dans le langage.

Par exemple, les NIM<sup>64</sup> (*New Interpolated Map*), qui permettent de représenter des fonctions définies par morceaux entre des *breakpoints*, sont des valeurs du langage au même titre que les tableaux où les chaînes de caractères. Les courbes sont des structures de contrôle permettant d'échantillonner des NIM ou bien des fonctions définies par un système différentiel<sup>65</sup> (ODEs) et elles ont le même statut qu'une boucle. On va ainsi pouvoir traiter les NIM comme n'importe quelle autre valeur du programme, ce qui permet de les manipuler facilement, les mettre dans des tableaux ou des dictionnaires, les passer en argument, les créer dynamiquement, les jouer et les rejouer à un moment donné... comme tous les autres types de valeurs manipulées dans le langage.

Cette capacité à représenter des processus et des traitements complexes par des données est très importante puisqu'elle permet de traiter ces différents processus comme des éléments abstraits dans l'espace de pensée à l'instar de la notation symbolique traditionnelle (grammatologie). On pourra ainsi les composer, les manipuler et les faire interagir dans le temps avec les structures de contrôle et de données propres au langage Antescofo. Par exemple, dans la pièce *Hypersphères*, les données de captation gestuelle (plusieurs flux en parallèle) sont enregistrées dans des NIM, ce qui correspond à une transformation d'une action dans le temps vers une valeur en mémoire. Cette valeur en mémoire de la captation gestuelle peut être par la suite traitée algébriquement, par exemple pour la simplifier, la renverser, la compressor ou la dilater et l'utiliser pour contrôler n'importe quel paramètre de l'électronique.

<footnote n="64">64 http://antescofo-doc.ircam.fr/Reference/data-nim/</footnote>

<footnote n="65">65 http://antescofo-doc.ircam.fr/Reference/compound_ode/#differential-curve-experimental</footnote>
<figure><img src="image_28.png" /><figcaption>**Fig. 3.1** Schéma de la transformation d'événements temporels en données stockées dans la mémoire de l'ordinateur. Les données sont enregistrées dans des structures de données qui par la suite sont incorporées dans l'espace de pensée et manipulées pour reproduire des nouveaux événements musicaux qui seront rejoués après dans le temps musical de la performance.</figcaption></figure>

Contrairement à un programme classique qui s'exécute du début à la fin, un programme Antescofo permet de déclencher et activer des parties du programme non seulement de façon séquentielle mais aussi en sautant d'un endroit à un autre de la partition. Cette possibilité d'exécuter un programme à partir d'un instant arbitraire est fondamentale, par exemple pendant les répétitions des pièces mixtes ou pendant la composition d'une pièce purement électronique. Cette fonctionnalité repose sur plusieurs types de fonctions de transport<fnref n="66" /> qui vont permettre de naviguer dans la partition en déclenchant ou pas ce qui a précédé.

### III.3. Structuration des actions : les processus et les acteurs

La structuration dans l'écriture de l'électronique est primordiale. À la différence de l'écriture instrumentale qui s'adresse à un humain avec un instrument acoustique réalisé a priori par un luthier, l'électronique s'adresse à un ordinateur générique qui a besoin d'avoir explicitement tous les niveaux d'information, de la programmation des instruments, synthèses et traitements sonores jusqu'à la macro-forme, nécessaires pour générer des événements musicaux. En conséquence, la quantité d'information nécessaire pour décrire des événements musicaux dans une partition électronique est largement plus volumineuse que pour une partition instrumentale traditionnelle, et nécessite impérativement une structuration pour faciliter cette description.

L'approche adoptée par Antescofo est de se reposer sur les constructions informatiques utilisées pour structurer le programme pour structurer les actions musicales, comme jouer des rythmes avec un son synthétique ou interagir avec un performeur ou d'autres médias en temps réel.

Des structures de contrôles informatiques telles que les *processus*, les boucles (*loops*), les règles de déclenchement (*whenever*) ou les blocs d'actions (*group*) ont une correspondance directe avec des actions musicales et offrent les structures de base qui vont nous permettre de construire toutes les actions électroniques et de les manipuler d'une façon abstraite.

<footnote n="66">⁶⁶ http://antescofo-doc.ircam.fr/Reference/tempo_transport/#transport</footnote>
<figure><img src="image_29.png" /><figcaption>Fig. 3.2 Des structures de contrôle du langage avec des correspondances musicales.</figcaption></figure>

## Processus

La notion de processus introduite dans le langage Antescofo va permettre d'abstraire et de paramétrer une séquence d'actions et d'instancier cette séquence dynamiquement, en parallèle avec les autres traitements, autant de fois que nécessaire. Les processus sont polyphoniques, par exemple un processus de génération rythmique peut être déclenché plusieurs fois et se superposer polyphoniquement avec des arguments différents pour changer le résultat. On a ainsi plusieurs instances du même processus qui s'exécutent « en parallèle ». Ce parallélisme est « gratuit » dans le sens où il ne requiert aucune intervention particulière de la part du programmeur. Par défaut, les calculs s'effectuent en parallèle, pas en séquence.

En général, un processus s'exécute à partir d'un instant donné, repéré dans la partition à partir d'un événement détecté par la machine d'écoute. Son déclenchement peut aussi être causé par l'utilisateur ou par un événement extérieur comme le déclenchement à partir de l'analyse d'un flux de captation gestuelle. Chaque processus peut être arrêté arbitrairement (avec la commande *abort*) à n'importe quel moment dans l'exécution du programme et de la performance.
```python
1 @proc_def ::my_random_group()
2 {
3     group seq
4     {
5         // sampler_process <nom_fichierr_audio> <amplitude> <canal_sortie>
6         sampler_process "Slap1.aif" 0 (@rand_int(4)+1)
7         (1/4+@rand(0.5)) sampler_process "Slap2.aif" 0 (@rand_int(4)+1)
8         (1/8+@rand(0.5)) sampler_process "Slap3.aif" 0 (@rand_int(4)+1)
9         (1/16+@rand(0.5)) sampler_process "Slap5.aif" 0 (@rand_int(4)+1)
10     }
11 }
12
13
14 group proc_seq
15 {
16     ::my_random_group()
17     1 ::my_random_group()
18     1.2 ::my_random_group()
19     0.7 ::my_random_group()
20 }
```

**Fig. 3.3** Exemple d'une définition de processus @proc_def sans arguments. Dans ce cas, il s'agit d'un processus qui contient une séquence de 4 événements pour déclencher un échantillon avec 3 rythmes avec une déviation aléatoire de 0.5 temps et un canal de sortie sélectionné aléatoire entre 0 et 4. Les lignes 14-20 spécifient un *group* qui regroupe les actions permettant de jouer une séquence de 4 instances du processus qui se tuilent suivant des délais spécifiés devant l'appel du processus.

```python
1 @proc_def ::spat_circ($source, $dir, $offset, $tpo)
2 {
3     @local $g := 0.01, $lab := 0
4
5     loop 1 @tempo := $tpo
6     {
7         abort $lab
8         $lab := {curve @tempo := $tpo
9             @grain := $g
10            @action := {
11                 spat source $source az (($x + $offset)*$dir)
12             }
13         }
14         { $x { { 0 }
15             1 { 360 } }
16     }
17 }
18
19 $circ_spat1 := ::spat_circ(1, 1, 0, 30)
20 $circ_spat2 := ::spat_circ(2, -1, 90, 45)
21 $circ_spat3 := ::spat_circ(3, 1, 135, 72)
22 $circ_spat4 := ::spat_circ(4, -1, 270, 90)
23
24 10 abort $circ_spat1
25 abort $circ_spat2
26 abort $circ_spat3
27 abort $circ_spat4
```

**Fig. 3.4** Exemple d'une définition de processus permettant de bouger des sources de l'Ircam Spat circulairement autour d'un hot spot. Les lignes 19-22 spécifient 4 instances du processus avec différents arguments pour contrôler 4 sources avec des directions, angle initial et vitesses différentes. Assigner la valeur retournée par le lancement d'un processus à la variable `$circ_spat1-4` permet de tuer une instance précise du processus, dans ce cas 10 temps après sa création.
## Acteurs

La notion d'objet est aujourd'hui largement répandue dans les langages de programmation. Ce concept est utilisé pour faciliter l'organisation du code en rassemblant plusieurs paramètres dans un état et en rendant explicites les interactions possibles avec cet état à travers la notion de *méthode*.

Une notion connexe et moins populaire est le concept d'*acteur*. Le modèle de programmation de l'acteur a été développé au début des années 1970 avec le travail de Carl Hewitt et des langages comme *Act*<fnref n="67" />. De nos jours, plusieurs langages de programmation actuels incluent cette notion d'acteur, par exemple le langage de programmation *Ptolemy*<fnref n="68" /> et des langages comme *Scala* ou *Erlang* qui offrent des « objets parallèles ». Alors que les objets se concentrent sur la réutilisation du code avec des mécanismes tels que l'héritage, le sous-typage de méthodes, le masquage d'état, etc., les acteurs se concentrent sur la gestion des activités concurrentes d'entités autonomes.

Antescofo permet de définir des acteurs spécifiant des entités qui encapsulent un état et fournissent des interactions simultanées, parallèles et temporisées avec cet état. Antescofo utilise aussi le terme d'objet pour désigner ces entités, même s'il n'y a pas de notion comme l'héritage.

Une définition d'acteur peut être instanciée et des méthodes peuvent être appelées sur cette instance. Il y a plusieurs sortes de méthodes :

* la première correspond à des fonctions et réalise des calculs instantanés ;

* le second type de méthodes correspond à des processus dont l'exécution peut durer dans le temps. Ces processus peuvent être vus comme des *timelines* indépendantes contrôlées par l'acteur sur lequel on a lancé la méthode ;

* une méthode peut aussi correspondre à un traitement exécuté simultanément sur toutes les instances d'un acteur donné (par exemple, à des fins de synchronisation) ;

* certaines méthodes ne sont pas déclenchées par un appel explicite mais sont activées de manière reflexe lorsqu'une expression logique devient vraie ;

<footnote n="67">⁶⁷ C. Hewitt, "Viewing control structures as patterns of passing messages", *Artificial intelligence*, vol. 8, n° 3, 1977, p. 323-364.</footnote>

<footnote n="68">⁶⁸ J. T. Buck, S. Ha, E. A. Lee and D. G. Messerschmitt, "Ptolemy: A framework for simulating and prototyping heterogeneous systems", 1994.</footnote>
* cette notion d'activité reflexe est étendue pour exécuter une méthode à la création ou à la destruction d'une instance<fnref n="69" />.

Toutes les exécutions de méthodes sont des calculs comme les autres et peuvent être synchronisées avec le musicien ou sur une variable, elles peuvent être exécutés sur un tempo donné, etc. La concurrence entre les méthodes, les processus et tous les autres calculs est gérée implicitement et efficacement par le système d'exécution (run-time) d'Antescofo<fnref n="70" />.

<figure><img src="image_30.png" /><figcaption>Fig. 3.5 Structure d'un acteur dans le langage Antescofo.</figcaption></figure>

La notion d'acteur en Antescofo ne correspond pas à une nouvelle entité primitive dans le langage. Un acteur est construit au-dessus de la notion de processus. En effet, une instance de processus peut être utilisée comme une sorte d'entité autonome encapsulant certaines données. En fait, un processus en cours d'exécution peut être vu comme un objet ou comme un acteur :

<footnote n="69">⁶⁹ Cela permet par exemple de réaliser très simplement un gestionnaire d'instances, mécanisme très utile quand par exemple une instance correspond à une source sonore et qu'il faut allouer et libérer des ressources extérieures au langage dans le SPAT.</footnote>

<footnote n="70">⁷⁰ J.-L. Giavitto, J.-M. Echeveste, A. Cont et P. Cuvillier, “Time, Timelines and Temporal Scopes in the Antescofo DSL v1. 0”, in *International Computer Music Conference (ICMC)*, 2017.</footnote>