Composición asistida por computador Carlos Agón Jean Bresson.

Post on 28-Jan-2016

228 views 2 download

Transcript of Composición asistida por computador Carlos Agón Jean Bresson.

Composición asistida por computador

Carlos AgónJean Bresson

QuickTime™ et undécompresseur TIFF (LZW)

sont requis pour visionner cette image.

Comienzos (Hiller)

Música Informática

Por que la informática y la composición ?

Herramientas de composicion

Estudio de la calculabilidad

Enfoque simbólico de la CAC

Memorización

CondensaciónEstructuración

Calculo

Lectura/escritura

Un archivo audio

La forma de la onda

Sonograma

Señal vs. símbolo

Piezas mixtas

Escritura de un sonido

vs. CAOTratamiento de señal

Idea musical

obra Rep. simbólica

Representaciones simbólicas

Que es una idea musical ?

No se trata de una traducción

8 sec.

Factor = 441/2000

Onset = 4 sec.

Escritura

Modelisacion

Representación y manipulación

Estructuras &conocimientos musicales

Modelos

Observar

Modificar

Crear

Composicióny Análisis

Lenguajes

Computabilidad

El objetivo es determinar si un problema dado tiene o no una solución algorítmica.

Modelo de calculoentrada x * ={0,1}* salida y * ={0,1}*

problemas de decisión y = 0 o 1

problemas de calculo y ={0,1}*

El problema de la parada

Crear una función “arret?” que determine para todo programa p si p se termina o no.

(defun boucle () (boucle))

(defun test (p)(if (arret? (test p))

(boucle) 1)))

(test test)

El problema de la parada es irresoluble

La tesis de Church-Turing

Maquina de Turing

Funciones recursivas

Lógica de primer orden

Lambda Calculo

Maquinas de Turing

b b b b 0 0 1 1 1 b b b b

q

M = (Q, , q0, , F)

Maquinas de Turing

q0Q estado inicial

Q= { q0,…, qk }

FQ estados finales = alfabeto {0,1,b} : Q x Q x x {I,D,S}

(q1,1) = (q2,0,D)

Descripción instantánea

b b b x ’ b b b

q

= (q, , x, ’)

donde qQ

x

, ’ *

Transición

(q, , x, ’)si

Una relación binaria entre 2 descripciones instantáneas

(q1, 1, x1, 1’)

(q,x) = (q1, x’,m)

m=D 1 =x’ et ’= x1 1’

Definiciones principales

*

M acepta x * si existe qF tq

(q0,x) (q , x’’)

*

El lenguaje asociado a una MT M

{x: x es aceptado par M}

MT no-deterministas

Todo es igual excepto que es una relación

Q x x Q x x {G,D,S}

Función calculable por una MT

sea f(x), MT calcula la función si para toda xi

si f(xi) esta definida MT para

si f(xi) no esta definida MT no para

Complejidad

TM(x) = numero de transiciones de M a partir de x.EM(x) = numero de casillas de M a partir de x.

M es DTEMPS (f(n))

f: N N

si TM(x) O(f(n))

M es DSPACE (f(n))si EM(x)

O(f(n))

sea M une maquina de Turing

Complejidad

M es NTEMPS (f(n))si k N , c Q tq.

h (calcul tree) <= cf(n)

M est NSPACE (f(n))

si k N , c Q tq.

pour tout chemin de (calcul tree) le nombre de cases es <= cf(n)

P et NP

P =

kN

DTEMPS(nk)

La classe de problemas tq existe un MT en DTEMPS(nk)

NP =

kN

NTEMPS(nk)

La classe de problemas tq existe un MTND en NTEMPS(nk)

P NP

NP-completo

Reducción en tiempo polinomial

Q est NP-complet

Q est NP

Q’ NP Q’<=Q

Q1 <= Q2

Si existe una función f en tiempo polinomial y determinista tq.

x xQ1 ssi f(x) Q2

Q1 es mas fácil o igual de complicado que Q2

Ejemplo

(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)

El agente viajero

Visitar n ciudades pasando exactamente una vez por ciudad y regresar a la ciudad de origen. Que camino escoger para minimizar el costo del viaje ?

O(n!)

Ciudades Posibilidades Tiempo de calculo

5 12 12 s

10 181440 12 horas

25 310E+21 9.8 millares de años

Problemas mal definidos

Dada una composición saber si es bella ?

Un archivo midi es de estilo jazz ?

Quiero fabricar un exito

Dos puntos de vista

Lo calculable

Los lenguajes de programación

El computador puede hacer mas que calcular

IA

Los lenguajes de programación

+ de 2000 lenguajes

ImperativosFuncionales

Lógicos

O-O

ConcurrentesPar AspectosReactivosEtc…

Seguridad

EficienciaMantenimientoExtension

Como herramienta de creación

Como herramienta de investigación

Por que los lenguajes de programación ?

Un problema : CRRC

QuickTime™ et undécompresseur TIFF (LZW)

sont requis pour visionner cette image.QuickTime™ et un

décompresseur TIFF (LZW)sont requis pour visionner cette image.

QuickTime™ et undécompresseur TIFF (LZW)

sont requis pour visionner cette image. =+

Les CRRCM

Los Canones Los Canones afinesafines

Lenguajes para la creación

La composición es imprevisible

Diversidad de estéticas

Modelos como programas

El compositor programador

El compositor no es un usuario

Solución vs. exploración

Proposición de lenguajes adaptados

Medir la influencia de un lenguaje particular

Que es un lenguaje de programación ?

El medio para hacer programas

Que es un programa ?

Léxico

El alfabeto

La niña est jolie

FormalismFormalismee

La sintaxis

While 100 i do < := i ++ i

While i < 100 do i := i ++

Backus Naur FormBackus Naur Form

meta-simbolos + non terminales + terminales

::= , | , ( , )

<nom> « mots »

La BNF

<terme> ::= <nombre signé> | <nombre signé> <op> <terme>

<nombre signé> ::= <nombre> | « + » <nombre> | « - » <nombre>

<nombre> ::= <entier> | <nombre fractionnaire>

<op> ::= « * » |   « / » | … |  « + » | « -»

<nombre fractionnaire> ::= <entier> | <entier> « / » <entier>

<entier> ::= <chiffre> | <chiffre><entier>

<chiffre> ::= « 0 » |  « 1 » | … |  « 8 » | « 9»

1+3-1+3-1/41/4

1+3*11+3*1/4/4

1+3*11+3*1/0/0

La semántica

Cual es el sentido de un programa ?

Que pasa cuando se ejecuta un programa ?

Semántica como una relación

1

2

3

4

5

1

2

E S

R R (E (E S)S)

Semántica

De un programa

De un lenguaje

e e s s

p p e e ss

Programa

determinista

R es una R es una función función

Tres definiciones de la semántica

Por un función

Por une definición inductiva

Por la fermetura reflexiva-transitiva de una relación

DenotacionalDenotacional

OperacionalOperacional

bigstepbigstep

Operacional Operacional smallstepsmallstep

Descripción de alto nivel

Estructuras de datos

Estructures de control

Los resultados

Los medios

Los programas

Programas como ciudadanos de primera categoría

Estructuras de datos

Midi

60

61

67

60

60

60

60

10

1/2

1/4

1/8

1/8

Listas

(60 65 67)

((48 52 68) (49 50 54 68) (50 54 68))

Árboles

1

1 1 1 1

4/4

2 1 14

Árboles

5/4

1 4

1 1 1 1 4 2 1 1

1 1 1 1 1

1 1 1

Estructuras de control

Definir el orden de ejecución

Condicionales

Bucles

Comandos | unificación | composición

La recursión

a = (root , (a1… an))

R(a) = (root , (R(an),…,R(a1)))

Programación funcional

La programación funcional

Funciones « a la Euler »

Funciones « a la Riemann »

1/(1 -x) = 1 + x + x2 + …+ xn + …

E S

Funciones y programas

El razonamiento matemático como objeto de estudio

La demostración automática

El lambda-calculo

El lambda calculo

Aplicación

Abstracción

Variable

Abstracción

? ??

? ??

Aplicación

? ??

(repeat 10 (repeat 3 (random DO3 DO4)))

AbstracciAbstraccióónn

F1(n)=(repeat n (repeat 3 (random DO3 DO4)))

Abstracción

F2(n m)(repeat n (repeat m (random DO3 DO4)))

Abstraccion

F3(n m a b) (repeat n (repeat m (random a b)))

Abstraccion

F3(n m a b) (5)

F4(m a b) (repeat 5 (repeat m (random a b)))

Aplicacion

F4(m a b) (4)

F5(m a b)=(repeat 5 (repeat 4 (random a b)))

Aplicacion

F5(m a b)(C2 )(C5)

(repeat 5 (repeat 4 (random C2 C5)))

Aplicacion

Lambda-Calculo

LéxicoLéxico

= { (, ) , , a,

b, c…}

SintaxSintaxisis

E::= xE::= E EE::= xE

(Aplicacion)(Abstraccion)

Lambda-Calculo

La -reducion

Redex

Forma normal

x.M) N

E tq. E no tiene redex

x.M) N

x. y.(x)y)b)c

N/x]

y.(b)y)c(b)c

La terminación

x.(x)x) x.(x)x

x.(x)x) x.(x)x x.(x)x) x.(x)x

x.(x)x) x.(x)x

Church Rossel

E

E2 E1

*

*

*

*

E3

La forma normal de E, si ella existe, es unica

Estrategias de evaluación

y.v)(x.(x)x) x.(x)x)

y.v)(x.(x)x) x.(x)x)

vy.v)x.(x)x) x.(x)x

y.v)x.(x)x) x.(x)x

Llamado por nombre

v.(z.z)(( w.w)(x ( y.y)))

Reducir siempre el redex el mas a la izquierda

x.z (fact 10)

z

x.x + x (fact 10)

(fact 10) + (fact 10)

Llamado por valor

v.(z.z)(( w.w)(x ( y.y)))

Reducir siempre el redex el mas a la izquierda, pero solo si el argumento del redex es un valor

x.x + x 3628800

7257600

x.x + x (fact 10)

Números de Church

0 = x. y.y1 = x. y.(x)y2 = x. y.(x)(x) y

n = x. y.(x)(x)…(x)(x) y n

Suc = x. y. z.(y)((x) y) z

x. y.(x)(x)…(x)(x)yn

x. y. z.(y)((x) y) z)

y. z.(y)((x. y.(x)(x)…(x)(x)y) y) z) n

y. z.(y)(a.(y)(y)…(y)(y)a) z) n

y. z.(y)(y)(y)…(y)(y) z)n

y. z.(y)(y)(y)…(y)(y) z)

n+1

ADD = x. y. a. b.((x) a) ((y) a) bx. y. a. b.((x) a) ((y) a) b)

y. a. b.((x. y.(x)(x) y) a) ((y) a) b) x. y.(x)(x)(x)y

a. b.((x. y.(x)(x) y) a) ((x. y.(x)(x)(x)y) a) b)

a. b.(y.(a)(a) y) (y.(a)(a)(a)y) b)

a. b.(a)(a) (a)(a)(a) b)

x. y.(x)(x) y)

x. y.(x)(x)(x)y

Faux

x. y. y

Vrai

x. y. x

Et x. y((x) y) x

Recursividad

Yh. (x.(h)(x) x)) x.(h)(x) x

(E) G

=G(x.(E)(x) x)) x.(E)(x) x

h. (x.(h)(x) x)) x.(h)(x) x) E

(E) (x.(E)(x) x) x.(E)(x) x)

Y(E)

G (E)G

Material musical

y

Procesos de composición

Programacion orientada-objetos

Historia

« Los años objeto »

Musica

Ordenamiento de funciones

La POO

Lenguaje comun de representacion

Reificacion

Ventajas

PPO

Objetos = datos + operaciones

Lenguajes a clases

vs.

Lenguajes a prototipos

Clases

Estructuras y comportamiento

Slots

chord

base

intervalles

0

(5 7)

Metodos

0

(5 7)

0

(5 7)

QuickTime™ et undécompresseur TIFF (LZW)

sont requis pour visionner cette image.

Dibujar

Tocar

Class1

superclassslot1slot2

Method1

Method2

subclass

slot1

slot3

Method1

Method3

Class2

Class3

Class4

Herencia

Instanciacion

Isa

Slot1-valueSlotn-value

Classname

Meth1

Methn

Superclass1Meth1

Methm

Superclass2Meth1

Methk

Dynamic binding

Message

Class1

Class2

Class3

inst

Method

Ejemplo

Jerarquia de clases

Dispatch multiple

mensaje

instancia

instancia

mensaje

method1

method2

…methodn

method1

method2

…methodn

Organisacion des metodos

M1 M2 M3 Mn…

M1 M2 M3 Mn…

M1 M2 M3 Mn…

FG

C

Polimorfismo

Universel

parametrico

Ad hoc

inclusion

overloading

cohercion

Gen-fun

Length

2 ---> 2.0

2 + 3 , 2.0 + 3.0

Ejemplo

(defgeneric transpose ((object pause) interval))

Clases OM

Los objetos musicales son complejos

Hacer convivir entidades con sistemas temporales difirentes

ms (Midi, Audio)

Partage d'entiers (structures symboliques)

oe

oe u

oe u

oe u

Clases OM

Un sistema temporal, en numeros enteros,

Adaptado a cada nivel de profundidad de las estructures musicales.

o = offsete = extendu = unity

0

4 10

4 1

6

2

30

6 3

0

4 1

06 3

6

2

3

06 30

3 3 33 3

0

4 3

0

6 30

6 3

42 3

Representacion interna

Classes

simple-containerparentQvalue offsetextent

container inside

NewContainer (u = 1 par défaut.)

AddTo container1 container2 at (at est exprimé en fraction de noire. )

u = u(container1)p = ppcm(u, denominator(at))u(container1)= po(container2) = at * po(conti) = o(conti) * p / u pour tout conti sous-conteneur immédiat de container1

Interface

c = NewContainer ()

AddTo (c, csymb, 4)

AddTo(c, caudio, 1300/1000)

u(c) = 10, o(csymb) = 40, o(caudio) = 13

Visualization

Music World

Representacion para el usuario

User Representation

Music Representation

Jerarquia de clases OM

Container

Simple-se Comp-seelements

NoteMidiDurVelchan

Seq-se para-se

Ch-seq

measure

voice chordLmidiLdurLvelLchan

poly

Interface Lmidic

Comp-seelements

LmidiLdurLvelLchan

chorddo1fff1

mi1fff1

sol1fff1

(do mi sol)

(1 1 1)

(fff fff fff)

(1 1 1)

Un ejemplo

New-Chord

Read-dur

(do mi sol)

(1 1 1)

(fff fff fff)

(1 1 1)

do1fff1

mi1fff1

sol1fff1nil

nilnilnil

write-dur (2 2 2)

(1 1 1)

Programación por Restricciones

Harmonización

Harmonización

Existen reglas de harmonia (Johann J. Fux 1725)

Reglas horizontales

Otras Reglas

Reglas Verticales

Mixtas

Observaciones

Respectar las reglas no garantiza un resultado musical “interesante”

Las reglas no constituyen un algoritmo

Construcción de resultados

CAO y restricciones

Dato Resultado

Base Perfecto mayor

+ tercera+ quintaCalculo

CAO y restricciones

variables

restricciones

terceraquinta Resolucion

Sistema de restricciones

Un sistema de restricciones SC es definido por :

-Un algoritmo que decide para toda L si puede ser satisfecha en M o no.

-Un lenguaje lógico L (léxico + sintaxis).

-Una estructura M en la cual interpretamos las formulas de L (semántica).

CSP Definición

Un problema de restricciones CSP es una tripleta (X,D,C)

X ={x1,...,xn} un conjunto finito de variables

D un conjunto de dominios finitos

C un conjunto de restricciones de la forma (Y,R)

Variables y dominios

:X --> P(D)

(i) denota el dominio de xi (puede ser la unión de dominios)

Restricciones

Una restricción (X,R) sobre las variables x1,...,xr es un sub-conjunto del producto cartesiano de los dominios de las variables

  (x1) ... (xr) R(x1,...,xr ) Los valores vx1 (x1) ,..., vxr (xr) satisfacen la restricción R(x1,...,xr) si (vx1,..., vxr) R(x1,...,xr)

Instanciacion

Una instanciacion I es un conjunto de valores (vz1,...,vzr) asignados a un sub-conjunto ZX. Si ZX, I es una instanciacion parcial

I es consistente si para toda restricción Ci conteniendo variables en Z las asignaciones de I satisfacen Ci

Una solución es una instanciacion consistente con Z=X

Ejemplo

X = {x, y, z}

(x)= {1,2,3} (y)= {1,3,5} (z)= {2,4,6} C1 : x < y+z C2 : x2 = y + z

x =3, y= 1, z= 4 x =3, y= 5, z= 4

x =3, y= ?, z= 4

La solución

Decision

Complexité

Calculo

Exemple

N-queens

X ={x1, x2, x3, x4}

xi xj

(x1)= (x2)= (x3)= (x4)= {1,2,3,4}

xi xj +(j -i)xi xj - (j - i)

Resolucion

LockBack

Backtracking

Filtraje

Lock Back

Muy costozo en tiempo

Backtracking

BacktrackingFunction Bactracking (csp)

Return recursive-backtracking (nil, csp)

Backjumping

Function recursive+Bactracking (assigned, csp)

If assigned is complete return assigned

Var first (unselected-vars(csp))

For value in domaine(Var) do

if consistent (value + assigned)

result recursive+Bactracking ((value + assigned), csp)

if result < > nil return result

Return nil

Filtraje

Définition de la consistance de noeud : Un CSP (X,D,C) est consistant de noeud si pour toute variable Xi de X, et pour toute valeur v de D(Xi), l'affectation partielle {(Xi,v)} satisfait toutes les contraintes unaires de C.

ExempleC contient la contrainte "X1 > 2", le domaine de X1 = {1,2,3,4,5}, Donc le CSP n'est pas consistant de noeud. Pour qu'il soit consistant de noeud, il faut que le domaine de X1 soit égal à {3,4,5}

Filtrage

Définition de la consistance d'arc : Un CSP (X,D,C) est consistant d'arc si pour tout couple de variables (Xi,Xj) de X, et pour toute valeur vi appartenant à D(Xi), il existe une valeur vj appartenant à D(Xj) telle que l'affectation partielle {(Xi,vi),(Xj,vj)} satisfait toutes les contraintes binaires de C.

Exemple, si C contient la contrainte "X1 + X2 > 2", et si D(X1)=D(X2)={0,1,2}, alors le CSP n'est pas consistant d'arc, car lorsque X1=0, il n'y a aucune valeur de D(X2) pour satisfaire la contraintPour qu'il soit consistant d'arc, il faudrait queD(X1)=D(X2)={1,2},

Forward checking

Propagación

X1 [1,10] X2 [1,10] X3[1, 10]

C1 : X1 > 2*X2 + X3

C2 : X2 > X3

C3 : X1 < 7

Look-Ahead

Heurísticas

Taille du domaine

Ordre d'instanciation

Recherche adaptative

Algorithmo de recherche locale (P. Codognet 2000)

CSP format

Muy rapido (P. Codognet et D. Diaz 2001)

{V1,…,Vn}

D1,…,Dn

{C1,…,Cm}

f1,…,fm

P Funcion de error para cada variable

F Funcion de costo total

Definicion de un problema

Algorithmo

Random initializationRepeat

- Compute the cost for every variable- Select the most expensive one X, among those not marked as Tabu- Search a better value for X

if there is one : iterateelse : X is marked Tabu and iterate

Until the global cost is zero

Exemple

1

1

3

2

1

Cost of eachqueen

8

Global cost

5-queens

6 8 6 2

0

1

3

2

2

Adaptive search

0

0

0

1

1

2

5-queens

Restricciones primitivas

Arithmetic

Equality

Inequality

Membership

Logical connectors and / or

Different or all-different

Existential and universal quantifiers

| V1 - V2 |

max (0, 1 + V1 - V2 )

min (V1 - v), v

V2

max (fC1 , fC2

)

Card (Vi=Vk, i < k)

max fC1 (V1), V1 V2

V1= V2

V1 < V2

V1 V2

C1 C2

alldiff (V1 … Vn )

V1 V2 , C

(V1)

Funciones de costo

∀ ∈

Funciones de costo de alto nivel

Increase (V1 ... Vn )

i<j<nVi >Vj

∑ Vi −Vj

Ritmos no simultáneosMauro Lanza

Variables = des motifs rythmiques, de longueurs fixéesChaque motif est joué de manière répétitive par une voix.

Contrainte = pendant une durée choisie, jamais deux onsets simultanés

Solution approximative Solution exacte

Ejemplo

Ejemplo

(Georges Bloch)

minimizeDistance Estrada (Chi, FixCh)i Πchords

minimizei Πchords

Virfun (Chi) -Virfun (Chi+1)

FixCh =

RA en CAO

Siempre hay un resultado

Solución progresiva

Soluciones aproximativas / CSP sin solución

Jerarquía de restricciones

Tiempo de calculo

Metodo incompleto

Programacion visual

Que es ?

Programas utilisando mas de una dimension

If x> 0

then x

else -1 * x

If x> 0 then x else -1 * x

If x> 0

then x

else -1 * x

Colores

ImagenesAudio

Relaciones espaciales

Estrategias

Mezcla con texto

Generalizacion a toda aplicacion

Aplicaciones especificas

Por que ?

Evita errores lexicos y sintaxicos

Facilita el acceso a los conceptos del lenguaje

Hacer programas mas rapidamente

Hacer programas mas lisibles

Especificacion

Lenguajes a iconos

Enfoque espacial

Enfoque gramatical

OM Lexique

Cadres simples

Cadres composés

Lignes

Cadre de texte

Texte

OM Syntaxe

Classes

Slots

Héritage

OM Sémantique

Sentido y denotacion

2/M

M

-Material musical

(particion)

-Procesos de composicion

(programas)

Partitura potencial