Modèles informatiques pour la composition musicale: Informatique

Download Report

Transcript Modèles informatiques pour la composition musicale: Informatique

Master AST
Modèles informatiques pour la composition musicale:
!
Informatique musicale “symbolique”
et composition assistée par ordinateur
Jean Bresson
UMR 9912 « Science et Technologie de la Musique et du Son »
IRCAM /CNRS/UPMC
[email protected]
Informatique musicale « symbolique » … ?
Abstraction des phénomènes physiques
!
Niveau du discours, de la logique musicale ;
Point de vue du musicien, compositeur, musicologue ;
!
Relations entre les structures et connaissances musicales,
et les données et applications informatiques ;
Jean Bresson - AST 2014
Problèmes « informatiques / musicaux »
➽ Utiliser le calcul / l’informatique pour
•modéliser les problèmes
•manipuler des représentations
•comprendre/créer des structures musicales
!
Pour l’analyse:
• Quel est le style d'une séquence musicale donnée
• Quelles sont les caractéristiques d’une partition donnée ?
• ... problèmes algébriques et « mathé-musicaux » (cf. cours M. Andreatta)
!
Pour la composition:
• Générer une séquence musicale suivant un style donné
• Produire une partition « automatiquement »
Jean Bresson - AST 2014
•Structures de données
•Calculabilité
•Complexité
•Recherche oprérationnelle / optimisat
•Systèmes de contraintes
•Metaheuristiques
•Modélisation
•...
I - Introduction / historique :
De l’écriture musicale à la programmation
Jean Bresson - AST 2014
Composer avec l’ordinateur…
1956: Illiac Suite (L. Hiller and L. Isaacson)
!
• Première pièce "composée" par un
ordinateur
!
• Modèles mathématiques génératifs
• Selection et combinaison de notes et
accords suivant des règles prédéfinies
Jean Bresson - AST 2014
Avant l’ordinateur…
Jean Bresson - AST 2014
J.-S. Bach
Musikalisches Opfer
Canon “per tonos”
Dans ce canon le “thème royal”
apparait dans la voix supérieure,
tandis que les voix canoniques sont
séparées par un intervalle de quite
parfaite. La notation allégorique de Bach:
Ascendenteque Modulatione ascendat
Gloria Regis fait référence à une
spirale modulante dans laquelle chaque
répétition du canon augmente de 1
ton…
Jean Bresson - AST 2014
Seconde école de Vienne (début XXème siècle)
(Schönberg, Berg,Webern)
➽ Ecole « sérielle »
Jean Bresson - AST 2014
Formalized (contemporary) music
Herma
(1961)
Ex.: I. Xenakis
(1922-2001)
Metastasis (1954)
Musiques formelles: nouveaux principes formels de
composition musicale.
Revue Musicale n°253-254 (1963)
Expanded edition, Paris: Stock (1981)
Jean Bresson - AST 2014
Nomos Alpha
(1965)
Une petite histoire de la CAO…
!
1) A l’époque de l’IA
1956: Illiac Suite (L. Hiller and L. Isaacson)
Première pièce "composée" par un ordinateur
[1'00'']
IA: "construction de programmes informatiques qui s’adonnent à
des tâches qui sont, pour l’instant, accomplies de façon plus
satisfaisante par des êtres humains car elles demandent des
processus mentaux de haut niveau tels que : l’apprentissage
perceptif, l’organisation de la mémoire et le raisonnement critique"
(M. Minsky)
Jean Bresson - AST 2014
Une petite histoire de la CAO…
!
2) Le compositeur-programmeur et la
« composition algorithmique »
→ Digital sound synthesis
→ Algorithmic composition!
Pierre Barbaud, Iannis Xenakis, André
Riotte & Marcel Mesnage, David Cope, ...!
Apparition de langages de
programmation dédiés. !
Music N (M. Matthews, Bell Labs, 1960s) !
... Csound (B.Vercoe, MIT, 1980s)!
Formes (Rodet et al., IRCAM, 1982-85)!
Common Music (H. Taube, CCRMA, 1991)!
Artic, Nyquist (R. B. Dannenberg, CMU, 1989, 1997)!
SuperCollider (McCartney, 1998)!
...
Jean Bresson - AST 2014
Une petite histoire de la CAO…
!
3) La musique spectrale
➽ Assistance informatique dans
l’exploration, le traitement et le rendu
de matériau sonore/musical complexe
Jean Bresson - AST 2014
L’ordinateur comme « établi » musical…
J.-C. Risset, Musique, un calcul
secret ? (1977) : "Dialogue efficace
avec la machine afin de contrôler
ou agencer détails ou grandes
lignes [...] et permettre au musicien
de se construire son propre
monde."
Otto Laske, Composition Theory in
Koenig's Project One and Project
Two (1981) : "We may view
composer-program interaction
along a trajectory leading from
purely manual control to control
exercised by some compositional
algorithm (composing
machine).The zone of greatest
interest for composition theory is
the midd le zone of the trajectory,
since it al low a great flexibility of
approach.The powers of intuition
and machine computation may
be combined."
PROCESSUS COMPOSITIONNEL
Données
Formalisme
Idées
Théorie
Représenta5ons
Jean Bresson - AST 2014
Calcul
Composition assistée par ordinateur (CAO)
«""L'objec9f"général"est"la"défini9on"de"modèles"informa9sés"u9lisables"dans"des"situa9ons"où"le"compositeur"désire"
préparer"des"matériaux"musicaux"complexes"et"structurés,"rela9vement"à"une"certaine"formalisa9on"ou"un"certain"
ensemble"de"contraintes"qui"lui"sont"propres"et"qu'il"est"en"mesure"d'exprimer"de"façon"cohérente.""
G.:Assayag:&:J.P.:Cholleton,:L'appareil:musical:(1994)
«"Nous"concevons"un"tel"environnement"[de"CAO]"comme"un"langage"de"programma9on"spécialisé"que"les"
compositeurs"u9liseront"pour"construire"leur"propre"univers"musical."[...]"Ceci"nous"amène"à"réfléchir"aux"différents"
modèles"de"programma9on"existants,"aux"représenta9ons,"interne"et"externe,"des"structures"musicales"qui"seront"
construites"et"transformées"par"ceEe"programma9on.""
G.:Assayag,:Computer:Assisted:Composi5on:Today:(1998).:
Environments de CAO ⇆ Langages de programmation
➽ Langages de programmation dédiés comme
environnements pour l’expression des compositeurs
Jean Bresson - AST 2014
Langages de programmation visuelle pour la musique
Max,
PureData
Patchwork
PWGL
OpenMusic
Programme = Représentation « symbolique »
- d’un objet / processus musical
- d'un modèle compositionnel
Décrit des intentions musicales dans le langage
Jean Bresson - AST 2014
II - Formalisme des langages de programmation
Jean Bresson - AST 2014
Constitution d’un langage
Lexique = ensemble de symboles (lettres,
chiffres, caractères) et mots-clés
!
Syntaxe = ensemble de règles et contraintes
définissant la façon d'assembler des unités
lexicales de sorte a écrire des programmes
corrects
while 100 i do < := i ++i
while i < 100 do i := i++
!!! La syntaxe ne dit rien de ce que fait le programme
Sémantique = explicite formellement la
signification, ce que veut dire, ou fait le
programme
Sémantique opérationnelle :
Explicitation de la séquence d'états d'une machine qui exécuterait le programme
!
Sémantique dénotationnelle :
Explicitation sous forme de fonctions mathématiques
!
Sémantique axiomatique :
Explicitation sous forme de propriétés logiques vérifiées (ou pas) par l'état de la
machine avant et après execution du programme
Jean Bresson - AST 2014
Caractéristiques des langages de programmation
Typage
Association de types aux éléments du langage
- explicite / implicite
- faible / fort
- statique / dynamique Abstraction
- procédurale (fonctions/procédures)
- structures de données (records, objets, ...) Structures de contrôle
- conditionnelles (if ... then ... else ...)
- itérations (boucles)
Peter Van Roy, Programming
Paradigms for Dummies: What Every
Programmer Should Know, in New
Computational Paradigms for
Computer Music (2008).
Jean Bresson - AST 2014
Les principaux paradigmes (ou “styles”) de programmation
!
[C#]
int sum = 0; !
foreach (int i in mylist)!
{!
!
sum +=(i'+'1); !
}
Impératif
Ex. C, Matlab...
(~ procedural)
Séquence d’instructions exécutées dans un
ordre précis pour réaliser un calcul ou une
tache
Fonctionnel
Ex. Haskell, Lisp...
(~ déclaratif)
Définition du problème comme un ensemble de
fonctions sans état, composées par appels
!
!
Orienté-Objet
Ex. Smalltalk, Java,
C++, C#, CLOS...
!
Logique
Ex. Prolog...
(~ déclaratif)
!
Modélisation du problème à l’aide de structures
de complexes impliquant des objets
interagissant entre eux.
[Lisp]!
!
Expression du problème à l’aide relation
logiques (processus d’inférence et de
déduction)
!
Langages Multi-paradigmes: (presque tous!)
C++, Java, Lisp/CLOS...
[C#]!
result = mylist.Select(i => i + 1).Sum();
Jean Bresson - AST 2014
(reduce + (map 1+ mylist))
[Lisp]
(let ((sum 0)!!
!
(loop for item in mylist do!
(setq sum (+ sum (+ 1 item)))!
) !
sum)
Langages de programmation pour la musique
Music N (M. Matthews, Bell Labs, 1960s)
Csound (B.Vercoe, MIT, 1980s)
Faust (Orlarey, Grame, 2002)
Artic, Nyquist (R. B. Dannenberg, CMU, 1989, 1997)
SuperCollider (McCartney, 1998)
Formes (Rodet et al., IRCAM, 1982-85)
Common Music (H.Taube, CCRMA, 1991)
…
!
Max/MSP / PureData (M. Puckette, IRCAM 1991, UCSD, 1998)
PatchWork (M. Laurson et al., IRCAM, 1989)
OpenMusic (C.Agon et al., IRCAM, 1998)
PWGL (M. Laurson et al., Sybelius Ac., 2002)
Paradigme fonctionnel
Jean Bresson - AST 2014
Paradigme de programmation fonctionnelle
- Evaluation/applications de fonctions mathématiques.
- Pas de changement d’état.
Basé sur le principe du λ-calcul :
!
Concept d’abstraction:
on peut définir des fonctions à partir des données (et vice-versa)
(4 + 5) * 2
= 18
(4 + 5) * 2
= f(5)
|
f(x) = (4 + x) * 2
(4 + 5) * 2
= g(4,5,2)
|
g(x,y,z) = (x + y) * z
Jean Bresson - AST 2014
Variable/Abstraction/Application
?
?
?
abstraction
application
Jean Bresson - AST 2014
= 3
Abstraction fonctionnelle
Une application musicale…
10 accords de 3 notes entre C3 et C4
F1(n)
n [accords de 3 notes entre C3 et C4]
F2(n,m)
n [m [notes entre C3 et C4]]
F3(n,m,a,b)
n [m [notes entre a et b]]
Jean Bresson - AST 2014
Application
F3(n m a b) (5) ! = 5 accords de m notes entre a et b !
!
!
= F4(m a b)
F4(m a b) (4) !
= F3(n m a b) (5) (4) !
!
!
= 5 accords de 4 notes entre a et b!
!
!
= F5(a b)
F5(a b) (C2,C5)
Jean Bresson - AST 2014
Dualités donnée vs. fonction (résultat vs. processus)
x => (x/2 x/2)
Processus = comment arrive-t-on
à ce résultat (sens)
Claude Imbert, Sens et
dénotation, in Écrits logiques et
philosophiques, Paris: Seuil, 1971.
Résultat = Dénotation
En CAO, il n'y a pas de résultat « juste » ou « correct »
"Object(and(process(are(analogous.(The(sound(object(is(only(a(process(that(can(be(contracted,(the(process(is(nothing(more(than(a(
dilated(sound(object.([...](The(process(makes(percep=ble(what(the(rapidity(of(the(object(hides(from(us:(its(internal(dynamism."(
Gérard:Grisey,:Tempus:ex:Machina,:A:composer's:reflexions:on:musical:5me,:Contemporary:Music:Review,:2,:1987.
Jean Bresson - AST 2014
Fonctions d’ordre supérieur
La fonction devient une donnée du programme…
F3(n,m,a,b)
n [m [notes entre a et b]]
F3(n,m,a,b) => F3’(n,G(x,min,max),m,a,b)
F3’(5 G1 4 C2 C5)
G1(x,min,max):!
(loop for i from 1 to x collect (random min max))
G2(x,min,max):!
(loop from i from min to max by (/ (- max min) x) collect i)!
!
ex. G2(3 2 15) = (2 5 8 11 14)
Jean Bresson - AST 2014
F2(5 G2 4 C2 C5)
III - Modélisation et structures musicales
Jean Bresson - AST 2014
Intro: modélisation
!
Modèle informatique :
Représentation abstraite d'aspects particuliers d'un objet supportant
des experiences et opérations sur cet objet.
Modèle musical/compositionnel :
Cerner/créer un objet musical à travers le modèle
M. Malt. Concepts et modèles, de l’imaginaire à
l’écriture dans la CAO.
Séminaire Musique, Instruments, Machines (2003).
Implémentation
Données
Comportements
MODELE
Simulation
Experimentation
Reformulation
Formalisation
Conception
Jean Bresson - AST 2014
Structures de données
Sur quelles données travaille-t-on ?
Ex: Les notes
HAUTEURS
(« pitch »)
do do# re re# mi fa fa# sol sol# la la# si
reb
C
mib
C# D D#
solb
E
F
lab
sib
do do# re re# …
…
F# G G# A A#/Bb B C …
C3 C#3 D3 …
… B3 C4 C#4 D4 …
Format Numériques:
Fréquences (Hz)
261.6 277.2 293.7 311.1 329.6 349.2 370.0 392.0 415.3 440.0 466.2 493.9 523.3 554.4 587.3 622.3
Convention MIDI
C3 = 60
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Classe de hauteurs
(modulo 12)
0
1
2
3
4
5
6
7
8
9
10
11
0
1
2
3
Jean Bresson - AST 2014
HAUTEURS
(« pitch »)
FREQUENCES
(Hz)
HAUTEURS (MIDI)
Jean Bresson - AST 2014
Structures de données
DUREES /
TEMPS
Ex: Les notes
Durées
2s
Onset t=… 0s
Proportions
rythmiques
0.25s 0.25s 0.25s 0.25s
2
2.25 2.5 2.75
2
1/4
(1 (2 (1 (1 1 1 1)) 1))
1/4 1/4
1/4
2
1
1
1
(si tempo = 60!)
1
(1 (1 (1 ((1 (1 1 1 1) 1))
(1 (1 (1 ((1 ((1 (1 1)) (1 (1 1)))) 1)))
1
1
Arbres rythmiques
AR = (Duree Subdivisions)
1s
3
1
1
1
1
1 1
1
1
1
1
1
1 1
1
1
1
1
1
1 1 1
Jean Bresson - AST 2014
1
Structures de données
Ex: Les notes
DYNAMIQUE
!
Convention MIDI (0-127)
pianissimo mezzo forte
10
66
Jean Bresson - AST 2014
forte …
90
Structures de données
Composer ses structures
SEQUENCES:
ACCORDS:
hauteurs
intensités
60
50
61
50
67
50
60
10
durées
1/2
2.0
1/4
1.0
1/8
0.5
1/8
0.5
Intervalles
(60 65 67)
[1 1 2 3 1 4]
SUITE D’ACCORDS:
((48 52 68) (49 50 54 68) (50 54 68))
Jean Bresson - AST 2014
Abstraction des données
Structures et modélisation « objet »
Encapsuler les concepts pour
optimiser le traitement des
données et l’écriture des
programmes
NOTE
pitch
dur
vel
struct
int
int
int
};
note {!
pitch;!
dur;!
vel;!
(defstruct note !
!
(pitch)!
!
(dur) !
!
(vel)!
)
définition de la structure
struct note n = {67, 1000, 100};!
n.pitch = 65;
instantiation/
modification
(setf n (make-note !
!
!
:pitch 67!
!
!
:dur 1000!
!
!
:vel 100))!
!
(setf (note-pitch n) 65)
Jean Bresson - AST 2014
Abstraction des données
NOTE
pitch
L’approche objet et les CLASSES
dur
vel
transpose
class note {!
public:!
!
int pitch;!
!
int dur;!
! int vel;!
!
void transpose(int interval);!
!
!
!
private:!
float other-attribute;!
(defclass note ()!
!
(pitch :accessor pitch :initval 60)!
!
(dur :accessor pitch :initval 1000) !
!
(vel :accessor pitch :initval 100)!
(other-attribute :initval NIL)!
)!
!
(defmethod transpose ((n note) (i integer)) !
!
(setf (pitch n) (+ (pitch n) i)!
)
!
};
(setf n (make-instance ‘note !
!
!
:pitch 67!
!
!
:dur 1000!
!
!
:vel 100))!
note n = new note();!
n.transpose(7);
!
(transpose n 7)
Jean Bresson - AST 2014
Abstraction des données
L’héritage : factorisation de code et hiérarchie des objets
(defclass note ()!
!
(pitch :accessor pitch :initval 60)!
!
(dur :accessor pitch :initval 1000) !
!
(vel :accessor pitch :initval 100))!
NOTE
!
pitch
(defmethod transpose ((n note) (i integer)) !
!
(setf (pitch n) (+ (pitch n) i))!
dur
(defmethod print ((n note)) !
(print (list (pitch n) (dur n) (vel n)))
transpose
vel
!
print
(defclass my-note (note)!
(label :accessor label :initval « hello"))!
!
(defmethod print ((n my-note)) !
(print (label n))
MY-NOTE
(defmethod print ((n my-note)) !
(print (label n))!
(call-next-method))
label
transpose?
(setf n2 (make-instance ‘my-note))
print?
(transpose n2 4)
(print n2)
Jean Bresson - AST 2014
print
Composition d’objets
… et choix d’implémentation
(defclass accord ()!
(pitches :accessor pitches)!
(durs :accessor durs) !
(vels :accessor vels))
ACCORD
ACCORD
pitches
notes
durs
transpose
vels
print
transpose
NOTE
pitch
dur
vel
transpose
print
print
(defclass accord ()!
(notes :accessor notes))
(defmethod transpose ((c accord) (i int)) !
!
(setf (pitches c) !
!
(loop for p (pitches c) !
collect (+ p i)))!
!
(defmethod transpose ((c accord) (i int)) !
!
(loop for n in (notes c) do!
(transpose n i)))!
(defmethod print ((c accord)) !
(loop for p (pitches c)!
!
for d (durs c)!
for v (vels c) do!
(print (list p d v))!
))
!
(defmethod print ((c accord)) !
!
(loop for n in (notes c) do!
(print n)))
Jean Bresson - AST 2014
Modélisation de séquences
Ex. l’Oracle des facteurs
un outil pour l’apprentissage de styles
Cf. projet OMax
http://repmus.ircam.fr/omax/
• Capturer et modéliser les caractéristiques « stylistiques »
• Recomposer des nouvelles séquences à partir de ces caractéristiques
➽ Parcours du graphe avec, à chaque état, probabilité p de suivre
un frorward link, et (1-p) de suivre un suffix link.
Jean Bresson - AST 2014
IV - OpenMusic: fonctionnement et applications
d’un langage visuel pour la CAO
Jean Bresson - AST 2014
OpenMusic
Computer-Aided
Composition environment
!G. Assayag, C. Rueda, M. Laurson, C.
Agon, O. Delerue. “Computer Assisted
Composition at Ircam: PatchWork &
OpenMusic”, Computer Music Journal,
23(3), 1999.
Visual programming language
!
http://repmus.ircam.fr/openmusic/
J. Bresson, C. Agon, G. Assayag. “Visual Lisp/CLOS
Programming in OpenMusic”
Higher-Order and Symbolic Computation, 22(1), 2009.
Jean Bresson - AST 2014
Langage visuel = Sémantique à + de 1 dimension
⇒ Eléments visuels supplémentaires (couleurs, symboles, formes, images + relations spatiales)
Icônes
Exemple:
Primitives
Relations
Formulaires
Diagrames
ex. MS Excel
Modules de traitement (boites) liés par des
connections
=> Flux de données entre les boîtes
Jean Bresson - AST 2014
Semantique visuelle
C. Agon: OpenMusic, Un Langage de
Programmation Visuelle pour la Composition
Musicale, Thèse Paris 6, 1998.
Jean Bresson - AST 2014
Modèle de calcul dans OpenMusic
(éléments de syntaxe et sémantique visuelle)
n inputs
...
general case
REFERENCE = A FONCTION
BOX
- reference
- value
- state
m outputs
(defun:myRfunc5on:(arg1:arg2:arg3):
:::::(let:rep:
::::::::::::::[...]:
:::::::::rep))
...
3 arguments
reference
= my-function
1 "return value"
Jean Bresson - AST 2014
INPUT = [ value, connection ]
Request input values
+ Call (application) to the reference
[a, NULL] [b, NULL] [c, NULL]
reference::
::=:myRfunc5on:
value::
::=:NULL
VALUE = (apply 'myfunction '(a b c))
EVAL
reference::
::=:myRfunc5on:
value::
::=:XXXX
Jean Bresson - AST 2014
reference::
::=:anotherRfunc5on:
value::
::=:NIL
BOX:2
INPUT*=*'(value*connec6on)*
CONNECTION*=*NIL*|*'(Box*numOut)
reference
= my-function
value
= NIL
Jean Bresson - AST 2014
BOX:1
VB1
VB3
VB2
FB2
FB1
(value VB1)
⇒2
(value VB2)
⇒6
(value FB2)
⇒ (apply ‘* (list (value VB1) (value VB2))
⇒ (apply ‘* 2 6)
⇒ 12
(value FB1)
⇒ (apply '+ (list (value VB3) (value FB2)))
⇒ (apply '+ (list 4 12))
⇒ 18
VB = "value" box
FB = "function" box
Jean Bresson - AST 2014
x
a
b
c
reference*=*une*classe
reference::
::=:myRclass:
value::
::=:NULL
(defclass:myRclass:():
:::::((slot:1:...):
::::::(slot:2:...)::
::::::(slot:3:...)))
EVAL
"self"
reference::
::=:myRclass
3 slots
reference::
::=:myRclass:
value::
::=:XXXX
VALUE = (make-instance 'my-class :slot1 a :slot2 b ...)
Jean Bresson - AST 2014
EVALUATION
control
data flow
Jean Bresson - AST 2014
Programmation avec OpenMusic
(abstraction/application…)
Jean Bresson - AST 2014
Computer-Aided Composition:
FORMALIZATION ⇆ IMPLEMENTATION ⇆ SCORE
Jean Bresson - AST 2014
Edition de la valeurs
contrôle "manuel" et intervention dans le calcul
[ autre aspect important du point de vue de la CAO : dualité objet / processus, etc. ]
Jean Bresson - AST 2014
OpenMusic: applications pour la composition
J. Bresson, C. Agon, G. Assayag (Eds.)
The OM Composer’s Boks vols 1&2
Collection Musique / Sciences
IRCAM - Editions Delatour France
Jean Bresson - AST 2014
Approches « algorithmiques »
S. Mawhinney
Starbog (2006)
Jean Bresson - AST 2014
J. Kretz
Second Horizon (2002)
Traitement de hauteurs sous forme de listes
Permutations des séries d’intervalles
K. Nez
Sculpted Implosions
(1999)
Jean Bresson - AST 2014
C. Melen
Six Metal Fugue (2006)
Jean Bresson - AST 2014
C. Melen
Six Metal Fugue (2006)
Algorithme*de*réduc6on*de*contours*
(u6lisa6on*de*processus*récursifs)
Jean Bresson - AST 2014
A. Schaathun (avec S. Lemouton)
Double Portrait (2006)
Applica=ons(fonc=onnelles(en(chaîne(
(usage(des(fonc=ons(d’ordre(supérieur)
Jean Bresson - AST 2014
A. Schaathun (avec S. Lemouton)
Double Portrait (2006)
Implémenta6on*d’un*processus*
d’*«*interpola6on*de*rythmes*»
Jean Bresson - AST 2014
B. Ferneyhough / M. Malt
String Trio (1995)
Un autre exemple d’interpolation de
rythme utilisant les arbres rythmiques
Opérations sur les arbres de rythme…
(4
(4
(4
(4
(4
(4
(1 2 (3 (4 5)) 6))
(2 3 (4 (5 6)) 1))
(3 4 (5 (6 1)) 2))
(4 5 (6 (1 2)) 3))
(5 6 (1 (2 3)) 4))
(6 1 (2 (3 4)) 5))
Jean Bresson - AST 2014
K. Haddad
Livre Premier de Motets
(2007)
Traitement des rythmes sous forme d'arbres
Jean Bresson - AST 2014
Travail sur une forme temporelle…
Ph. Hurel / E. Daubresse
Hors-Jeu (2006)
Rythme
...
Jean Bresson - AST 2014
Ph. Hurel / E. Daubresse
Hors-Jeu (2006)
Travail sur une forme temporelle…
Distribution des
hauteurs
Jean Bresson - AST 2014
S. Dubnov
Memex (2006)
Modélisation stylistique
Jean Bresson - AST 2014
Ph. Leroux
VOI(REX) (2006)
La notion de modèle…
Jean Bresson - AST 2014
H. Parra
Strette (2006)
La notion de modèle…
Jean Bresson - AST 2014
C. Jaksjo
Undergrounded [Zoonestraal] I (2002)
Zoonestraal (2008)
La notion de modèle…
Jean Bresson - AST 2014
V - Quelques problèmes et techniques avancées
Jean Bresson - AST 2014
Calculabilité
Déterminer si un problème a une solution algorithmique ou non...
➽ La machine de Turing est un modèle abstrait du fonctionnement des appareils mécaniques
de calcul (ordinateur + mémoire)
- « ruban » linéaire infini + tête de lecture
- registre d'état
- alphabet de symboles
➽ Elle donne une base théorique pour l’évaluation de la calculabilité d’un problème, et de sa
complexité en temps (nombre de transition) et en espace (taille nécessaire du ruban)
➽ Les classes de complexité (linéaire, logarithmique, polynomiale…)
se déterminent sur machine de turing déterministe,
ou non-déterministe (= avec possibilité de « subdivisions » dans le ruban)
Jean Bresson - AST 2014
Problèmes « NP-Complets »
➽ On peut vérifier une solution en temps polynomial (par rapport à la taille d’entrée)
sur une MT non-deterministe.
!
➽ Actuellement tous les algorithmes connus pour la résolution de problèmes NP-complets le font en
temps exponentiel par rapport à la taille des données d’entrée (explosion combinatoire).
Exemples:
!
• Parcours Hamiltonien
Passer une (et une seule!) fois par chaque
sommet d’un graphe.
!
• Problème du voyageur de commerce
Visiter n villes séparées par des distances d en
minimisant distance totale parcourue.
!
• Problème du sac-à-dos
Rassembler dans un sac pouvant supporter un
certain poids P un ensemble d'objets de poids
respectifs pi et de valeur vi en maximisant la
valeur totale.
Jean Bresson - AST 2014
Villes
5
10
25
Possibilités
12
181440
310E+21
Temps de calcul (o.g.)
ms
h
109 années
Exemple musical (1)
Permuter une suite d'accord pour maximiser le nombre
de notes communes entre deux accords successifs.
(0 1 0 1 0 0 0 0 1 0 1 0 1 1 2 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
(2 1 1 1 1 2 1 1 1 1 1 2 1 1 2 1 1 1 2 2 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1)
Jean Bresson - AST 2014
Problèmes de recherche opérationnelle :
Ph. Leroux / F. Voisin
VOI(REX) (2002)
Minimum Weight Spanning Tree
= arbre couvrant minimisant le poids des arêtes
Jean Bresson - AST 2014
Résolution
Solution élémentaire :
Parcourir toutes les solutions et garder la meilleure
➽ impossible si il y a trop d'objets disponibles (explosion combinatoire)
!
Algorithmes gloutons
Mettre d'abord les objets ayant les meilleurs rapports valeur/poids,
➽ rapide mais solution optimale non garantie
!
Résolutions approchées
Heuristiques, metaheuristiques
➽ Optimisation combinatoire
Trouver des solutions optimales ou acceptables en temps de calcul raisonnable
Méthodes spécifiques :
• Algorithmes gloutons
• Programmation dynamique
• Programmation par contraintes
•…
Heuristiques :
Procédures exploitant la structure spécifique
du problème, dans le but de trouver une
solution approchée de qualité acceptable.
MetaHeuristiques :
• algorithmes génétiques
• "colonies de fourmis"
• ...
Jean Bresson - AST 2014
La programmation par contraintes
Modélisation = Problème de Satisfaction de Contraintes (CSP)
Ensemble de variables (X)
Ensemble de contraintes (C)
X ={x1,...,xn}
(Relations entre les variables)
définies sur un ensemble D de domaines finis δi
CSP ≠ algorithme
➽ nécessite un processus de résolution (solver)
Déduction LOGIQUE utilisant les contraintes
pour optimiser/réduire l’espace des solutions
➽ Instantiation des variables dans leurs domaines respectifs δi,
satisfaisant l'ensemble C
Jean Bresson - AST 2014
Exemples de CSP
Un CSP « numérique » :
X = {x, y, z}"
δ(x)= {1,2,3} δ(y)= {1,3,5}
!
C1 : x < y+z "
"
δ(z)= {2,4,6} "
C2 : x2 = y + z
Un classique: le problème des reines
Disposer n reines sur un damier de
dimensions nxn
➽
x =3, y= 5, z= 4
Ex. n = 4
X = {x1, x2, x3, x4}"
δ(xi)= {1,2,3,4}!
!
C1 : xi ≠ xj "
"
C2 : xi ≠ xj +(j -i)"
C3 : xi ≠ xj - (j - i)
Jean Bresson - AST 2014
Exemples musicaux
triton non résolu
mouvements ascendants successifs
Harmonisation / Contrepoint
sensible répétée à l'octave
quintes parallèles
Jean Bresson - AST 2014
Exemples musicaux
Exemple des permutations d'accords
Variables = Positions pi
Domaines = Ensemble des accords Aj
(par exemple..)
Jean Bresson - AST 2014
Exemples musicaux
Contraintes rythmiques
Contraintes =
Eviter les notes simultanées entre différentes voix
Forcer des attaques communes
etc…
Recherche de Canons
et problèmes de pavage
(cf. cours M. Andreatta)
Jean Bresson - AST 2014
Programmation par contraintes
dans OpenMusic
Mersenne Rules
(from Harmonie Universelle)
!
• Do not repeat a same interval more than 3 times
• Avoid successive consonnances (fifths, octaves)
• Avoid tritones
• Prefer contrary movements
• Alternate consonance / dissonance
• etc.
Jean Bresson - AST 2014
M. Amoric
Tombeau de Marin Mersenne
Programmation par contraintes
dans OpenMusic
O. Sandred
Kalejdoskop (1999)
OMRC: rhythmic constraints
"layers": form, harmony, rhythm...
Jean Bresson - AST 2014
C. Truchet et G. Assayag (dir.)
Constraint Programming in Music,
Wiley/ISTE Ltd., 2011
Séance spéciale du séminaire MaMuX (IRCAM, 4/11/2011)
http://repmus.ircam.fr/mamux/saisons/saison11-2011-2012/2011-11-04
Jean Bresson - AST 2014
Problème des reines
Quelques méthodes de résolution
Pour n dames sur un damier nxn:
n2 positions possibles par dame
soit n(2*n) = 65536 solutions possibles avec n = 4
Heuristique: une seule dame par ligne !
➽ n positions possibles par dame
soit nn = 256 positions possibles avec n = 4
…
…
Jean Bresson - AST 2014
Backtracking
(19 essais)
Jean Bresson - AST 2014
Une optimisation: Forward-Checking
Jean Bresson - AST 2014
(3 essais!)
1) INITIALISATION d'une population (aléatoire)
Individu = ensemble de genes
John R. Koza. Genetic Programming: on the
programming of computers by means of natural
selection. Cambridge, MA: The MIT Press, 1992.
2) EVOLUTION (itérations):
!
Sélection (maintien ou pas des individus d'une génération à l’autre) par:
• Evaluation : Fonction de Fitness
• "Tournois" (sélection du meilleur élément parmi un groupe de n)
• etc.
!
Crossover / Mutations
- Objectif :
- maintenir la variété
- sélectionner les meilleurs
3) TERMINAISON:
• problème résolu
• fitness en dessous d'un seuil minimal
• nombre max de générations
• convergence
Jean Bresson - AST 2014
G. Carpentier, Approche computationnelle de l'orchestration musicale, PhD
Thesis, 2008.
Objectif : proposer des solutions d'orchestration
pour s'approcher d'un timbre sonore "cible"
=> échantillon sonore et/ou descripteurs
Variables : Les membres d'un orchestre
Domaines : L'ensemble des configurations notes, modes de jeux, dynamiques
qu'ils sont chacun capables de produire
BASE = ensemble d'échantillons sonores.
Chaque son est associé à un ensemble de descripteurs
[ex. partiels, centroide spectral, brillance]
L'association de toutes les contributions
doit se rapprocher le plus possible des
descripteurs de la cible
=> problème de sac à dos ?
Jean Bresson - AST 2014
Algo génétique pour l’orchestration
1 Individu = n gènes (taille de l'orchestre)
chaque gène correspond aux
possibilités d'un instrument
Processus de mutation et crossover
Selection selon comparaison multi-descripteurs
Front de Pareto:
ensemble de solution
sous-optimales
Jean Bresson - AST 2014
Target:!
Car horn
Target:!
Tibetan horn
Target:!
Synthesized Sound
Target:!
Bowed Piano
Orchestration 1: Winds
Horn-Ordinario-C5-ff-!
Bassoon-Harmonic-fingering-G#4-p!
Bb-Clarinet-Ordinario-G#4-mf!
C-Trumpet-Ordinario-C5-ff
Orchestration 2: Strings
Contrabass-Art.Harmonic-G#4-mf-3c!
Violoncello-Sordina-Non-vib-C5-mf-1c!
Viola-Non-vib-G#4-ff-4c!
Violin-Non-vib-G#5-mf-3c
Orchestration for Medium Ensemble
Orchestration for Medium Ensemble
Orchestration
plus loin avec les évolutions temporelles:
P. Esling, Analyse multi-objective des éries temporelles, PhD Thesis, 2012
Jean Bresson - AST 2014
[1'28'']
Orchidee solutions
J. Harvey
Speakings (2008)
Cible :
Performance Recording
BBC Scottish Orchestra, 2008
[1'48'']
G. Nouno et al., "Making an Orchestra Speak",
Proc. SMC, 2009.
Jean Bresson - AST 2014
Harvey's score
VI - Traitement symbolique/musical des signaux sonores
Jean Bresson - AST 2014
Informatique musicale...
H1
H2
µ1
µ2
x(t)
Hn
µm
.!
Traitement du signal :
analyse/transformation/synthèse sonore
Acoustique
Systèmes
temps réel
Systèmes « symboliques » /
CAO
Jean Bresson - AST 2014
Traitement numérique du signal sonore:
une représentation « musicale » ?
Jean Bresson - AST 2014
condensation
mémorisation
organisation
calcul
(precision)
« subsymbolique »
signal
1
0
0
66
1
symboles
0
127
F3# fff
1.0
symboles
symboles
« symbolique »
(abstraction)
Représenter le son comme objet musical nécessite souvent un ensemble de représentations
complémentaires et subjectives sur différents niveaux d'abstraction.
La complexité et la grande diversité de procédés ouverte par les techniques spectrales (et
d’autres!) est à l’origine des conceptions actuelles de la composition assistée par ordinateur.
Jean Bresson - AST 2014
L’approche spectrale
Signal sonore
0.04
Analyse spectrale (FFT)
0.02
0
−0.02
−0.04
0
5
10
15
20
25
Temps (ms)
Transformée de Fourier (FFT)
0.25
0.2
0.15
0.1
0.05
0
0
500
1000
1500
2000
2500
3000
Freq. (Hz)
3500
4000
4500
5000
5500
6000
4000
4500
5000
5500
6000
Spectre (dB) = 20*log10(abs(FFT))
0
dB
−20
−40
−60
−80
0
500
1000
1500
Jean Bresson - AST 2014
2000
2500
3000
Freq. (Hz)
3500
L’approche spectrale
Analyse de Fourier à
court terme (STFT)
Illustration: Doval, B. Méthodes d’analyse du signal musical. In Pachet, F. et
Briot, J.-P.: Informatique musicale. Hermes Science publications, 2004
Jean Bresson - AST 2014
L’approche spectrale
Le spectrogramme
(ou sonagramme)
STFT
Freq. (Hz)
[en niveau de gris: amplitude de signal]
Temps
Jean Bresson - AST 2014
L’approche spectrale
Le spectrogramme :
visions transversales
Séquence de
trames de Fourier
Freq. (Hz)
Temps
Spectre
« instantané »
Jean Bresson - AST 2014
Le spectrogramme :
visions transversales
L’approche spectrale
Modèle « additif »
Freq. (Hz)
Temps
Ensemble de partiels
= composantes sinusoïdales pures
aux variations “lentes” de
fréquence et d’amplitude
P. Hanappe & G. Assayag, 1996: “Intégration des représentations temps/
fréquence et des représentations musicales symboliques”
Jean Bresson - AST 2014
Quelques exemples
!
1975: Partiels (Gerard Grisey)
!
Matériau de départ: analyse (FFT) d’une note (Mi grave) jouée au trombone.
!
Exploration du contenu spectral par l'orchestre
!
Transformations du matériau inspirées par des processus électro-acoustiques
(distorsion, modulation en anneau, filtrage...)
[1'16'']
Jean Bresson - AST 2014
Quelques exemples
1997: Locus (Claudy Malherbe)
STFT
Suivi de
partiels
Filtrage /
Conversion
partitions
Malherbe, C.“Locus, rien n’aura eu lieu que le lieu”.
The OM Composer’s Book, vol 2. (dir. J. Bresson, C.Agon, G.Assayag) Editions Delatour France / IRCAM, 2008.
Jean Bresson - AST 2014
Quelques exemples
1997: Locus (Claudy Malherbe)
Segmentation
Analyse sur
les segments
Partition
Malherbe, C.“Locus, rien n’aura eu lieu que le lieu”.
The OM Composer’s Book, vol 2. (dir. J. Bresson, C.Agon, G.Assayag) Editions Delatour France / IRCAM, 2008.
Jean Bresson - AST 2014
Analyse sonore / génération et traitements de
formes dans les domaines spectral et temporel
AudioSculpt+(c)+Ircam
Jean Bresson - AST 2014
Le modèle spectral
G. Lorieux
Langage de l’ombre (2006)
Jean Bresson - AST 2014
P. Linborg
TreeTorika (2006)
Jean Bresson - AST 2014
La représentation « additive »
une passerelle directe vers la resynthèse des sons
Jean Bresson - AST 2014
1997: Come Natura di Foglia
(Marco Stroppa)
Quelques exemples
Extract [2'59'']
!
Canti lontani per voci ed elettronica
Gruppo vocale: Electric Phoenix Elettronica: IRCAM.
Assistente musicale: Serge Lemouton
Reference sound:
Nahhami song a pearl fishermen of Bahrein
Exploration of sound synthesis
paradigms and technologies
noise
additive
FM
Modulating the time structure, VPS processing, Parameter exchange (energy structure applied to frequencies), ...
Pan from right to left, 10-20 subcomponents for each partial (sounds
more "clustery"), spectral amplitude
and duration of each partial
progressively reversed, which produces
a final chord with the higher
frequencies being the longest and
loudest
Slower tempo, pitch
transposition, more clustery,
more independent individual
partials
Very large clusters (20-100
sub-components) around
each partials (cymballike)
Jean Bresson - AST 2014
Exponential
accelerando, and
percussive attack
(bell-like)
Des liens étroits avec la partition
Ex.: M. Stroppa, Traiettoria (1982), pour piano et ordinateur
Jean Bresson - AST 2014
K. Haddad
Adagio (2004)
Jean Bresson - AST 2014
Le son comme programme…
Approche "Signal"
Approche "CAO"
Approche "Physique"
Jean Bresson - AST 2014
Synthèse sonore en CAO
CAO
Synthèse
Formalisation
Modélisation
Écriture
Implémentation des modèles et processus électroacoustiques / musicaux
• Formalisation du son comme un programme
• Organisation d’une pensée musicale
• Approche/représentation symbolique soumise au raisonnement formel
Jean Bresson - AST 2014
De l’analyse à la synthèse…
T. Tüzün
Metathesis (2006)
Jean Bresson - AST 2014
De l’analyse à la synthèse…
T. Tüzün
Metathesis (2006)
Jean Bresson - AST 2014
De l’analyse à la synthèse…
T. Tüzün
Metathesis (2006)
Jean Bresson - AST 2014
De l’analyse à la synthèse…
T. Tüzün
Metathesis (2006)
Extract'[1'10'']
Jean Bresson - AST 2014
➽ Traitement symbolique de l’information musicale
& introduction à la CAO
!
➽ Langages de programmation
!
➽ Modélisation
!
➽ Méthodes de résolution
!
➽ Introduction à la programmation visuelle
➽ Applications dans OpenMusic
!
➽ Représentations symboliques/musicales du son
Jean Bresson - AST 2014
L'analyse musicale propose également de nombreux problèmes musicaux liées
aux modèles mathématiques et algébriques
!
L'intégration de ces modèles dans le domaine de l'informatique musicale ouvre de
nouvelles perspectives pour l'analyse mais aussi la composition assistées par ordinateur…
!
!
***
Jean Bresson - AST 2014