# Analyse Iana - Synthèse sonore Csound. Contrôle par le programme PatchWork

Laurent Pottier

► To cite this version:

Laurent Pottier. Analyse Iana - Synthèse sonore Csound. Contrôle par le programme PatchWork. Journées d'informatique musicale 1994, Mar 1994, Bordeaux, France. pp.74-81. hal-03347069

HAL Id: hal-03347069

https://hal.science/hal-03347069

Submitted on 17 Sep 2021

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
# Analyse Iana - Synthèse sonore Csound
Contrôle par le programme PatchWork.

L. Pottier

Département Pédagogie

IRCAM

pottier@ircam.fr

Présentation d'une méthode permettant d'analyser des sons musicaux par l'algorithme de Terhardt -analyse Iana (IRCAM) -, de traiter les données dans PatchWork, (IRCAM) puis de réaliser une synthèse sonore avec Csound (MIT) à partir de ces données. Tous ces opérations se déroulent sur ordinateurs Macintosh et le programme principal utilisé ici, PatchWork ,est un environnement graphique interactif de composition assistée par ordinateur permettant aux compositeurs de créer, représenter et manipuler le matériau musical

## I) Introduction

"Plusieurs faits importants semblent découler de l'utilisation de l'informatique en musique:

- l'utilisation des ordinateurs pour l'analyse des sons peut révéler des caractéristiques du son dont l'importance peut être confirmée mais non étudiée par la seule écoute.

- la modification systématique des paramètres des sons synthétisés doit permettre de souligner leurs importances relatives vis-à-vis de la perception, en utilisant les techniques de la psycho-acoustique et non seulement la description purement acoustique.

- il est possible de supprimer des détails non décelés par l'écoute afin de procéder à une réduction des données nécessaires à la synthèse et rendre les ordinateurs plus efficaces sans pour autant altérer la perception."

John Chowning - ICMC 93

Nous décrivons dans ce document une méthode regroupant des techniques d'analyse, de traitement et de synthèse, gérées au niveau du contrôle par le programme PatchWork. Le but est ici de présenter des outils qu'il est possible d'utiliser tel quel pour réaliser des sons en extrayant les paramètres de la synthèse à partir de données musicales très condensées. Les étapes de ce parcours peuvent n'être exécutées qu'en partie par des utilisateurs intéressés par une fraction seulement de ces opérations.

## II) Procédés

### a) L'analyse Iana

PRINCIPE :

L'analyse Iana prend pour point de départ une analyse par FFT du son.

La FFT donne une photographie statique de la structure d'un son analysé en composantes spectrales à un moment choisi. Elle ne prend pas en compte les variations temporelles de ses paramètres (fréquence, amplitude), ce qui est suffisant pour spéculer sur le champ des hauteurs, dans la mesure où les objets utilisés sont assez stables.

Les résultats de cette analyse sont ensuite soumis à une extraction de crêtes qui permet d'extraire les composantes les plus importantes en amplitude.
L'analyse Iana utilise alors l'algorithme de Terhardt qui propose une pondération des composantes extraites par la méthode précédente à partir de critères tels que la courbe de réponse de l'oreille ou le pouvoir de masquage des composantes spectrales entre elles (Assayag-85). Il fournit, pour chaque crête repérée, un paramètre nommé poids perceptif. En éliminant des données les fréquences de poids perceptif nul, (non pertinentes d'un point de vue perceptif, selon Terhardt), on obtient une description à la fois suffisamment signifiante d'un point de vue acoustique, et suffisamment simple pour être manipulée par un musicien.

### MISE EN ŒUVRE :

Les analyses peuvent actuellement être réalisées sur ordinateurs Macintosh dans un environnement MPW (Macintosh Programming Workshop) par des commandes en ligne.
Les sons à analyser sont au format standard AIFF.

La commande suivante permet d'analyser un son percu3.aiff :

iana -b200ms -D4KS -c1 percu3.aiff

avec

-b date du début de l'analyse (ms = milliseconde)

-D taille de la fenêtre d'analyse (KS = kilosample)

-c numéro du canal à analyser (canal gauche pour un son stéréo)

Le résultat est la production d'un fichier intitulé percu3.aiff.a contenant sur trois colonnes les informations "fréquences" (Hz), "amplitudes" (linéaires), et "poids perceptifs" (cf. Annexe 1).

Puisque l'analyse ne permet pas d'extraire des informations temporelles, il est utile de répéter des analyses successives rapprochées dans le temps pour décrire l'évolution temporelle du son.

### ECRITURE D'UN SCRIPT PAR PATCHWORK :

PatchWork a été utilisé pour produire les scripts destinés à réaliser automatiquement les analyses dans MPW et à attribuer à chaque fichier de données un nom cohérent, indiquant la date de l'analyse (cf. fig. 1).

Le texte produit est le suivant :

iana -b200ms -D4KS -c1 percu3.aiff

mv percu3.aiff.a percu3-0200

iana -b400ms -D4KS -c1 percu3.aiff

mv percu3.aiff.a percu3-0400

iana -b600ms -D4KS -c1 percu3.aiff

mv percu3.aiff.a percu3-0600

...

pour des analyses répétées toutes les 0,2 secondes sur le son "percu3.aiff" et construisant les fichiers de données "percu3-0200", "percu3-0400", "percu3-0600" etc.

## b) Lecture des analyses dans PatchWork

### MENUS "IN-OUT" DE LA LIBRAIRIE "MODRES" :

La librairie "Modres" est une des librairies fonctionnant avec le programme PatchWork pour lui fournir des fonctionnalités spécialisées supplémentaires. Elle contient des modules (fonctions) permettant de lire, transformer et/ou écrire des données principalement issues de l'analyse "Iana" et en "Modèles de Résonance". Les données peuvent être visualisées dans des éditeurs de notes - sous formes d'agrégats - ou par des graphes - sous forme de spectres - (cf. fig. 2). Des modules de filtrage, d'interpolation et de transformation permettent la manipulation de ces données.
LA LIBRAIRIE "CSOUND-EDIT-SCO" :

Cette autre librairie du programme PatchWork est destinée à mettre en forme les données de façon automatique pour l'écriture de "scores" pour la synthèse avec le programme Csound du M.I.T. Ici, les données issues de l'analyse précédemment décrite peuvent être utilisées pour la resynthèse de sons.

<figure><img src="image_2.png" /><figcaption>fig. 1: patch pour l'écriture d'un script MPW destiné à des analyses iana multiples</figcaption></figure>

La synthèse va être réalisée avec un "instrument" rudimentaire - pour lequel il serait très simple d'étendre les outils de contrôle - par addition d'ondes sinusoïdales.

```
sr = 44100
kr = 441
ksmps = 100
nchnls = 1
```

instr 1

kenvamp      linseg      0, p6, p4, p3-p6, 0
ason         oscili      kenvamp, p5, 1
out          ason

endin

Ces portions d'ondes sinusoïdales sont décrites par leur date d'attaque (paramètre p3), la durée de leur l'attaque (p6), leur amplitude maximale (p4) et leur fréquence (p5). L'enveloppe d'amplitude est définie par une attaque suivie immédiatement d'une décroissance (cf. fig. 3).
<figure><img src="image_3.png" /><figcaption>fig. 2: Représentation des données issues de l'analyse lana sous forme d'agrégat, sous forme d'un spectre, avant et après filtrage des poids perceptifs nuls</figcaption></figure>

<figure><img src="image_4.png" /><figcaption>fig. 3: représentation schématique des ondes synthétisées</figcaption></figure>
<figure><img src="image_5.png" /><figcaption>fig. 4: Patch pour la lecture de fichiers lana, le traitement des données et l'écriture du score Csound</figcaption></figure>

En plaçant le maximum de l'amplitude d'une onde à la même date relative que la date d'analyse dont elle est issue, en plaçant sa date de début à la date de l'analyse précédente et sa date de fin à la date de l'analyse suivante, on peut ainsi reconstituer par synthèse un son cohérent dont l'évolution temporelle suit celle du son original.
Le patch qui permet de lire l'ensemble des fichiers d'analyse pour réaliser un "score" unique au format Csound se décompose en plusieurs parties (cf. fig. 4):

- extraction des dates à partir des noms des fichiers

- construction d'un objet (au sens CLOS) pour chacun des fichiers

- traitement des données de fréquences et d'amplitudes- éventuellement filtrage et transformations -

- écriture du score Csound

Le score produit à la structure suivante:

<table><tr><td colspan="6">;forme d'onde :</td></tr><tr><td>f1</td><td>0</td><td>1024</td><td>10</td><td>1</td><td></td></tr><tr><td colspan="6">;notes :</td></tr><tr><td colspan="6">;inst date durée ampl freq dur-attaq</td></tr><tr><td>i1</td><td>0</td><td>0.4</td><td>0.2</td><td>440</td><td>0.2</td></tr><tr><td>i1</td><td>0</td><td>0.4</td><td>0.1</td><td>680</td><td>0.2</td></tr><tr><td>i1</td><td>0</td><td>0.4</td><td>0.05</td><td>1315</td><td>0.2</td></tr><tr><td>i1</td><td>0.2</td><td>0.4</td><td>0.12</td><td>420</td><td>0.2</td></tr><tr><td>i1</td><td>0.2</td><td>0.4</td><td>0.09</td><td>680</td><td>0.2</td></tr><tr><td>i1</td><td>0.2</td><td>0.4</td><td>0.08</td><td>1315</td><td>0.2</td></tr><tr><td colspan="6">.... e</td></tr></table>

La synthèse peut être lancée sur Macintosh avec le programme Csound dont une version existe sur MPW. Elle se déclenche en écrivant la commande

perf -t instr-simple.orc percu3-iana.sco

où "instr-simple.orc" décrit l'instrument Csound (cf. Annexe 2) et "percu3-iana.sco" est le fichier calculé par PatchWork.

## III) Applications

Des applications musicales ont été réalisées par les étudiants du cursus de composition de l'IRCAM. Pour pouvoir contrôler la durée de la synthèse en temps-réel, celle-ci a souvent été réalisée sur la station musicale de l'IRCAM avec des ordinateurs NeXt.

### a) F. Bachet

Dans sa pièce "Alma-Luvia", F. Bachet a utilisé PatchWork pour construire des fichiers de paramètres pour la synthèse en temps réel, par la station d'informatique musicale, après avoir réalisé des analyses de sons de clarinette. Ces analyses ont été traitées, dans PatchWork, par des fonctions d'interpolations utilisant l'appariement des partiels possédant des fréquences voisines (cf. Barriere et Chabot, ICMC). Des interpolations ont été réalisées entre les séries de spectres issues de l'analyse Iana et des accords écrits par le compositeur.

### b) J. Fineberg

Dans sa pièce "Paradigms", J. Fineberg a écrit une partie pour orchestre, qui n'était destinée qu'à l'enregistrement, pour fournir un support à l'analyse Iana. Après une observation attentive - avec le logiciel SoundDesigner - de cet enregistrement, il a effectué des analyses Iana très rapprochées.

Dans PatchWork, il a construit des listes de paramètres pour la synthèse avec la station musicale, par interpolations entre les résultats de l'analyse et des séries d'accords qu'il avait écrits.
## IV) Conclusions

Cet ensemble de méthodes: analyse, traitement, synthèse, qui peuvent être employées intégralement ou partiellement selon les utilisateurs, permet aux compositeurs de recueillir facilement des informations issues de l'analyse. Ces informations sont pertinentes vis-à-vis de la perception et faciles à manipuler, pour la synthèse et également pour l'écriture instrumentale.

## Références

G. Assayag Gérard, M. Castellengo, C. Malherbe, "Nouvelles techniques Instrumentales, Composition et formalisation", rapport de recherche IRCAM N°38, 1985.

G. Assayag, C. Rueda, "The Music Representation Project at IRCAM", ICMC Proceedings, 1993.

J. B. Barrière, Y. Potard, P. F. Baisnée, "Models of Continuity between Synthesis and Processing for the Elaboration and Control of Timbre Structures", ICMC Proceedings, Vancouver, Berkeley, Computer Music Association, 1985.

J. B. Barrière, X. Chabot, "Integration of Aid to Composition and Performance Environments: Experiences of Interactions between Patchwork and Max-ISPW" ICMC Proceedings, 1993.

M. Malt, "PatchWork Introduction", IRCAM doc., 1993.

L. Pottier, "Patchwork librairie référence: Csound-Edit-sco", IRCAM doc., 1993.

E. Terhardt, G. Stroll, M. Seewa, "Algorithm for Extraction of Pitch and Pitch Salience from Complex Tonals Signals", Journal of the Acoustic Society of America, vol 71, n°3, 1982.

## Annexes

### 1- Analyse Iana (exemple)

<table><thead><tr><td>freq</td><td>amp</td><td>poids</td><td>perceptif</td></tr></thead><tbody><tr><td>50.06</td><td>0.000331</td><td>0.000000</td><td></td></tr><tr><td>109.72</td><td>0.000670</td><td>0.029579</td><td></td></tr><tr><td>234.73</td><td>0.000296</td><td>0.053906</td><td></td></tr><tr><td>468.53</td><td>0.000270</td><td>0.077236</td><td></td></tr><tr><td>618.61</td><td>0.000464</td><td>0.072689</td><td></td></tr><tr><td>705.40</td><td>0.000242</td><td>0.008150</td><td></td></tr><tr><td>759.13</td><td>0.000449</td><td>0.054985</td><td></td></tr><tr><td>899.05</td><td>0.000212</td><td>0.041239</td><td></td></tr><tr><td>1136.67</td><td>0.008282</td><td>0.045519</td><td></td></tr><tr><td>1222.52</td><td>0.001529</td><td>0.000000</td><td></td></tr><tr><td>1353.01</td><td>0.000994</td><td>0.000000</td><td></td></tr><tr><td>1417.17</td><td>0.000794</td><td>0.000000</td><td></td></tr><tr><td>1490.18</td><td>0.001115</td><td>0.000000</td><td></td></tr><tr><td>1545.09</td><td>0.001049</td><td>0.000000</td><td></td></tr><tr><td>1633.11</td><td>0.001448</td><td>0.000000</td><td></td></tr><tr><td>1758.88</td><td>0.001600</td><td>0.000000</td><td></td></tr><tr><td>1811.89</td><td>0.001362</td><td>0.000000</td><td></td></tr><tr><td>1881.74</td><td>0.002218</td><td>0.000000</td><td></td></tr><tr><td>1922.42</td><td>0.002184</td><td>0.000000</td><td></td></tr><tr><td>1978.65</td><td>0.002156</td><td>0.000000</td><td></td></tr><tr><td>2079.41</td><td>0.001139</td><td>0.000000</td><td></td></tr><tr><td>2182.10</td><td>0.001189</td><td>0.000000</td><td></td></tr><tr><td>2252.93</td><td>0.001184</td><td>0.000000</td><td></td></tr><tr><td>2403.91</td><td>0.000910</td><td>0.000000</td><td></td></tr><tr><td>2527.60</td><td>0.000957</td><td>0.000000</td><td></td></tr><tr><td>2685.79</td><td>0.000498</td><td>0.000000</td><td></td></tr><tr><td>2857.01</td><td>0.000871</td><td>0.000000</td><td></td></tr><tr><td>3033.40</td><td>0.000702</td><td>0.000000</td><td></td></tr><tr><td>3183.35</td><td>0.000783</td><td>0.000000</td><td></td></tr><tr><td>3265.42</td><td>0.000549</td><td>0.000000</td><td></td></tr><tr><td>3390.31</td><td>0.000518</td><td>0.000000</td><td></td></tr><tr><td>3511.90</td><td>0.000501</td><td>0.000000</td><td></td></tr><tr><td>3657.29</td><td>0.000444</td><td>0.000000</td><td></td></tr><tr><td>3827.59</td><td>0.000371</td><td>0.000000</td><td></td></tr><tr><td>3911.44</td><td>0.000630</td><td>0.000000</td><td></td></tr><tr><td>4190.77</td><td>0.000222</td><td>0.000000</td><td></td></tr><tr><td>4785.25</td><td>0.000187</td><td>0.000000</td><td></td></tr><tr><td>4881.83</td><td>0.000193</td><td>0.000000</td><td></td></tr><tr><td>4960.51</td><td>0.000154</td><td>0.000000</td><td></td></tr><tr><td>5859.68</td><td>0.000126</td><td>0.027532</td><td></td></tr><tr><td>21839.70</td><td>0.000167</td><td>0.000000</td><td></td></tr></tbody></table>
## 2- Orchestre

;------------------------------------------
; (ORCHESTRE) instrument "instr-simple.orc"
; SONS SINUSOIDAUX

;p1 =ins
;p2 =date
;p3 = dur
;p4 = .amp max.
;p5 = fréquence
;p6 = dur avant amp. max.

;--------------------------------------------------
| sr = 44100
| kr = 441
| ksmps = 100
| nchnls = 1

;--------------------------------------------------
| instr 1

kenvamp      linseg 0, p6, p4, p3-p6, 0

ason         oscili 100000*kenvamp, p5,1
             out ason
             endin

;--------------------------------------------------

## 3- Score (exemple, extrait)

f 1 0 1024 10 1                 ;-> onde sinus
i 1 0 0.4000 0.0010 109.7200 0.2000
i 1 0 0.4000 0.0000 234.7300 0.2000
i 1 0 0.4000 0.0000 468.5300 0.2000
i 1 0 0.4000 0.0000 618.6100 0.2000
i 1 0 0.4000 0.0000 705.4000 0.2000
i 1 0 0.4000 0.0000 759.1300 0.2000
i 1 0 0.4000 0.0000 899.0500 0.2000
i 1 0 0.4000 0.0080 1136.6700 0.2000
i 1 0 0.4000 0.0000 5859.6800 0.2000
i 1 0.2000 0.4000 0.0010 101.5000 0.2000
i 1 0.2000 0.4000 0.0000 213.1400 0.2000
i 1 0.2000 0.4000 0.0010 605.7500 0.2000
i 1 0.2000 0.4000 0.0000 757.3400 0.2000
i 1 0.2000 0.4000 0.0000 888.2200 0.2000
i 1 0.2000 0.4000 0.0020 1051.0200 0.2000
i 1 0.2000 0.4000 0.0050 1144.4300 0.2000
i 1 0.2000 0.4000 0.0030 1234.4200 0.2000
i 1 0.2000 0.4000 0.0030 1629.9400 0.2000
i 1 0.4000 0.4000 0.0010 93.4200 0.2000
i 1 0.4000 0.4000 0.0000 190.2600 0.2000
i 1 0.4000 0.4000 0.0010 524.0400 0.2000
i 1 0.4000 0.4000 0.0020 600.0900 0.2000
i 1 0.4000 0.4000 0.0010 737.8400 0.2000
i 1 0.4000 0.4000 0.0000 885.1600 0.2000
i 1 0.4000 0.4000 0.0010 963.8500 0.2000
i 1 0.4000 0.4000 0.0170 1136.4300 0.2000
i 1 0.4000 0.4000 0.0070 1742.0700 0.2000
i 1 0.4000 0.4000 0.0080 1955.0400 0.2000
...
e