composición asistida por computador carlos agón jean bresson
Post on 28-Jan-2016
229 Views
Preview:
TRANSCRIPT
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
top related