Real time is particularly difficult in the field of computer music where the handling of low level audio streams corresponding to periodic hard real time processes must be synchronized with asynchronous sporadic control events.
In this context, real time musical interactions with a musician raise even more difficult challenges: the management of both events and durations specified in parallel temporal frames that are only partially aligned, as for instance the musician own temporal coordinate, the temporal specification given in a score and the physical time.
These issues are at the core of the Antescofo research project. The Antescofo system couples a machine listening system and a synchronous and temporized action language. The listening machine follows the performance of a musician and locate in real-time its position in a score. The action language is used to manage the temporal dependencies between the actions triggered by the musical events recognized by the listening module.
The presentation will address the models of time at work in Antescofo and their synchronization, the management of events and duration, the estimation of the musician’s own tempo and the architecture of the system.
The Antescofo approach has been validated through many pieces of composers such as J. Harvey, M. Stroppa, P. Manoury, P. Boulez… Antescofo, inspired by Synchronous Reactive languages such as Esterel, has opened new research problems by considering explicitly the human in the loop and new perspective in real time musical interaction and mixed music.
Este documento describe una propuesta de inversión llamada "Tu Casa Virtual" que permite a los inversionistas construir una casa virtual mediante pagos anuales de $37,120 MXP durante 30 años. A cambio, los inversionistas recibirán beneficios como deducciones de impuestos, pagos anticipados de $273,267 MXP, y rentas de por vida de $1,047,000 MXP luego de terminar la construcción. El documento explica los beneficios en caso de invalidez, fallecimiento o venta de la propiedad.
El padre de un niño discapacitado dio un discurso en el que cuestionó dónde estaba la perfección de Dios en su hijo. Contó la historia de cómo un equipo de béisbol permitió que su hijo jugara y bateara, ganando el partido para ellos. Esto mostró cómo los jugadores alcanzaron la perfección de Dios al tratar a todos los niños con dignidad y respeto. El documento también reflexiona sobre las paradojas de la vida moderna y la necesidad de compartir mensajes positivos.
El poeta expresa la importancia de la amistad en su vida y lo necesarios que son sus amigos para su equilibrio emocional. Aunque algunos amigos no son conscientes del profundo aprecio y cariño que les tiene el poeta, saber que existen es suficiente para llenarlo de coraje. La pérdida de alguno de sus amigos lo dejaría desbalanceado, y la pérdida de todos sus amigos lo desmoronaría.
El documento describe diferentes trastornos del lenguaje oral en niños, incluyendo alteraciones de la voz, trastornos de articulación, disartria y trastornos fonológicos. Explica el retraso simple del habla y del lenguaje, y proporciona recomendaciones para la intervención del maestro, como pasar tiempo comunicándose con el niño, leerle y aprovechar situaciones cotidianas para reforzar el habla.
Este documento presenta un resumen visual del pueblo español a través de imágenes de diferentes aspectos arquitectónicos y lugares emblemáticos de España como Andalucía, el Barrio Gótico de Barcelona, obras de Antoni Gaudí incluyendo La Pedrera, La Sagrada Familia y el Parque Güell, así como el Palacio de la Música de Barcelona. El documento también incluye breves mensajes e imágenes de personas en la ciudad.
Este documento describe una propuesta de inversión llamada "Tu Casa Virtual" que permite a los inversionistas construir una casa virtual mediante pagos anuales de $37,120 MXP durante 30 años. A cambio, los inversionistas recibirán beneficios como deducciones de impuestos, pagos anticipados de $273,267 MXP, y rentas de por vida de $1,047,000 MXP luego de terminar la construcción. El documento explica los beneficios en caso de invalidez, fallecimiento o venta de la propiedad.
El padre de un niño discapacitado dio un discurso en el que cuestionó dónde estaba la perfección de Dios en su hijo. Contó la historia de cómo un equipo de béisbol permitió que su hijo jugara y bateara, ganando el partido para ellos. Esto mostró cómo los jugadores alcanzaron la perfección de Dios al tratar a todos los niños con dignidad y respeto. El documento también reflexiona sobre las paradojas de la vida moderna y la necesidad de compartir mensajes positivos.
El poeta expresa la importancia de la amistad en su vida y lo necesarios que son sus amigos para su equilibrio emocional. Aunque algunos amigos no son conscientes del profundo aprecio y cariño que les tiene el poeta, saber que existen es suficiente para llenarlo de coraje. La pérdida de alguno de sus amigos lo dejaría desbalanceado, y la pérdida de todos sus amigos lo desmoronaría.
El documento describe diferentes trastornos del lenguaje oral en niños, incluyendo alteraciones de la voz, trastornos de articulación, disartria y trastornos fonológicos. Explica el retraso simple del habla y del lenguaje, y proporciona recomendaciones para la intervención del maestro, como pasar tiempo comunicándose con el niño, leerle y aprovechar situaciones cotidianas para reforzar el habla.
Este documento presenta un resumen visual del pueblo español a través de imágenes de diferentes aspectos arquitectónicos y lugares emblemáticos de España como Andalucía, el Barrio Gótico de Barcelona, obras de Antoni Gaudí incluyendo La Pedrera, La Sagrada Familia y el Parque Güell, así como el Palacio de la Música de Barcelona. El documento también incluye breves mensajes e imágenes de personas en la ciudad.
Configurez vos disponibilités, tarifs et saisonnalités sur RESAEHugo Le Squeren
Tutoriel pour paramétrer vos disponibilités, tarifs et saisonnalités afin de permettre à vos clients de réserver depuis le module de réservation RESAE intégré sur votre site et ceux qui vous référencent.
La teoría de contextos establece que un contexto es un conjunto de consideraciones para observar algo. Dos cosas no son idénticas a menos que sean iguales en un subcontexto, y son similares si son iguales en un subcontexto. Al representar o abstraer algo, nos centramos en un contexto o subcontexto específico para enfocarnos en ciertas cualidades. Siempre es posible encontrar un contexto o subcontexto en el que dos cosas diferentes sean iguales.
El documento clasifica y describe las características de diferentes grupos de animales vertebrados e invertebrados. Los vertebrados incluyen peces, anfibios, reptiles, aves y mamíferos, mientras que los invertebrados incluyen poríferos, cnidarios, platelmintos, moluscos, anélidos, equinodermos, arácnidos, crustáceos, miriápodos e insectos.
Moringa is a plantfood of high nutritional value, ecologically and economically beneficial and readily available in the countries hardest hit by the food crisis. http://miracletrees.org/ http://moringatrees.org/
This document provides an overview of Continental Corporation and discusses some of their automotive systems and technologies. It also outlines some key requirements and constraints for automotive system development.
The document summarizes Continental as a global automotive supplier with over 140 years of innovation. It discusses their divisions and products related to chassis & safety, powertrain, interior, and tires. Examples are provided of systems for engine management, electronic stability control, and interior infotainment integration. Emerging technologies around automated driving systems are also described.
Finally, the document outlines some main requirements and constraints for automotive system development. This includes complying with legislation on emissions, safety and radio regulations. It also discusses environmental, safety, security
The purpose of the presentation is to present the audience the various constraints of dependability that must follow an embedded system. General principles are then applied to two examples of the aerospace industry, a long task application (space reliability) and a passenger transport application (air safety, availability). The presentation will conclude with the development cycle of an embedded system.
The work of this thesis aims to contribute to the integration of dependability analysis in the engineering process system based on models using SysML language to make them faster and more efficient analysis. To do this, we have covered the following areas: the formalization of a design methodology based on SysML and which will support dependability analysis; the extension of the SysML language in order to integrate the specificities of mechatronic systems (and more generally multidisciplinary systems) as well as dependability aspects in the system model ; automatic exploration of SysML models to extract the data needed for the development of RAMS artifacts and their (semi-)automatic generation (FMEA and FTA). We also integrated the formal verification of dependability requirements.
This methodology named SafeSysE was applied to aeronautics use cases : EMA (Electro-Mechenical Actuator) and WBS (Wheel Brake System) for the formal verification section.
The study of interactions between man and machine is key in aviation. Recent years have seen these relationships be transformed, and the emergence of interactions technologies called "natural" or concepts of Augmented Human, or collaborative robotics.
The objective of the studies in Human Factors is always to anticipate tomorrow's world by focusing the development of new operations concepts or new technologies on human, so as to optimize the Human Machine relations and therefore uses.
It is therefore to establish a Human Factors Engineering integrated to the cycle of design and development and operation of complex systems in particular, and to develop the Human Factors disciplines appropriate to the expected changes in the industry, operators and users.
Configurez vos disponibilités, tarifs et saisonnalités sur RESAEHugo Le Squeren
Tutoriel pour paramétrer vos disponibilités, tarifs et saisonnalités afin de permettre à vos clients de réserver depuis le module de réservation RESAE intégré sur votre site et ceux qui vous référencent.
La teoría de contextos establece que un contexto es un conjunto de consideraciones para observar algo. Dos cosas no son idénticas a menos que sean iguales en un subcontexto, y son similares si son iguales en un subcontexto. Al representar o abstraer algo, nos centramos en un contexto o subcontexto específico para enfocarnos en ciertas cualidades. Siempre es posible encontrar un contexto o subcontexto en el que dos cosas diferentes sean iguales.
El documento clasifica y describe las características de diferentes grupos de animales vertebrados e invertebrados. Los vertebrados incluyen peces, anfibios, reptiles, aves y mamíferos, mientras que los invertebrados incluyen poríferos, cnidarios, platelmintos, moluscos, anélidos, equinodermos, arácnidos, crustáceos, miriápodos e insectos.
Moringa is a plantfood of high nutritional value, ecologically and economically beneficial and readily available in the countries hardest hit by the food crisis. http://miracletrees.org/ http://moringatrees.org/
This document provides an overview of Continental Corporation and discusses some of their automotive systems and technologies. It also outlines some key requirements and constraints for automotive system development.
The document summarizes Continental as a global automotive supplier with over 140 years of innovation. It discusses their divisions and products related to chassis & safety, powertrain, interior, and tires. Examples are provided of systems for engine management, electronic stability control, and interior infotainment integration. Emerging technologies around automated driving systems are also described.
Finally, the document outlines some main requirements and constraints for automotive system development. This includes complying with legislation on emissions, safety and radio regulations. It also discusses environmental, safety, security
The purpose of the presentation is to present the audience the various constraints of dependability that must follow an embedded system. General principles are then applied to two examples of the aerospace industry, a long task application (space reliability) and a passenger transport application (air safety, availability). The presentation will conclude with the development cycle of an embedded system.
The work of this thesis aims to contribute to the integration of dependability analysis in the engineering process system based on models using SysML language to make them faster and more efficient analysis. To do this, we have covered the following areas: the formalization of a design methodology based on SysML and which will support dependability analysis; the extension of the SysML language in order to integrate the specificities of mechatronic systems (and more generally multidisciplinary systems) as well as dependability aspects in the system model ; automatic exploration of SysML models to extract the data needed for the development of RAMS artifacts and their (semi-)automatic generation (FMEA and FTA). We also integrated the formal verification of dependability requirements.
This methodology named SafeSysE was applied to aeronautics use cases : EMA (Electro-Mechenical Actuator) and WBS (Wheel Brake System) for the formal verification section.
The study of interactions between man and machine is key in aviation. Recent years have seen these relationships be transformed, and the emergence of interactions technologies called "natural" or concepts of Augmented Human, or collaborative robotics.
The objective of the studies in Human Factors is always to anticipate tomorrow's world by focusing the development of new operations concepts or new technologies on human, so as to optimize the Human Machine relations and therefore uses.
It is therefore to establish a Human Factors Engineering integrated to the cycle of design and development and operation of complex systems in particular, and to develop the Human Factors disciplines appropriate to the expected changes in the industry, operators and users.
Interactive systems are nowadays an important part of most command and control systems. Research efforts in the field of Human-Computer Interaction has mainly been focused on the design of innovative and creative interfaces and interaction techniques. These interfaces aim at supporting operators engaged in very diverse tasks involving data of growing complexity. When such interactive systems are deployed in critical contexts, usability and user experience become much less important than reliability and fault-tolerance. The talk will present state of knowledge in the area of notations, methods and tools for engineering interactive critical systems. This body of knowledge is located at the intersection of software engineering, dependable computing and Human-Computer Interaction and provides means for the design, development, verification, validation and evaluation of interactive critical systems. The emphasis will be on benefits of and needs for systematic and integrated approaches in order to design, develop and evaluate the entire interactive system (including its interfaces and interaction techniques, the operational procedures and the training program of operators).
Concrete application of both problems and solutions will be given drawing examples from aeronautics (Air Traffic Control and Interactive
Cockpits) and space (ground segments) domains.
In the automotive world, the number and the diversity of systems implementing embedded computers continue to increase. After a presentation of the different families of automotive systems and some examples (current, trend for futur), we will go through the main requirements and constraints of automotive systems: environmental constraints, reliability, safety, security, diversity of users and use cases, costs, high volumes, diversity of markets and car manufacturers.
Second part of the presentation will address the following points through examples:
- Platform approach: how to optimize schedules and reduce investment
while addressing a variety of system configurations growing.
- System integration: how to optimize the architecture and reduce the
number of embedded computers.
- System development and validation: planning constraints, methods and
tools
The document discusses electromagnetic phenomena and threats that must be considered for critical systems, particularly aircraft systems. It provides context on trends in aircraft design including increased use of composite materials and electronics. It then summarizes various electromagnetic phenomena like high intensity radiated fields, lightning, and electrostatic discharge. Formulas for calculating radiated fields from transmitters are presented. Methods for demonstrating that systems can withstand specified field levels are also outlined.
In aeronautics, embedded electronics plays a major role in the systems development, integration, maturity, reliability in harsh environmental conditions.
Electronic technologies are oriented by mass markets and industrials of electronics onboard aircraft are, in a competitive context, facing challenges to meet the requirements and constraints of embedded products (environment, certification, ...), demonstrate the reliability of their products and control their life time (over 20 years).
In this context, emphasis will be placed on the requirements for avionics applications, including critical ones, as well as the processes and activities established in electronic development to master the complexity and meet the requirements.
The document describes a seminar on software for embedded safety critical systems held in Toulouse, France in January 2014. The seminar included 10 sessions covering various topics related to software in safety critical domains such as aeronautics, automotive, space, etc. The sessions addressed issues like software assurance levels, standards, development processes, verification, and new technologies. Experts from companies like Airbus, Continental, and ONERA presented on topics specific to their domains. The seminar aimed to discuss challenges in developing software for critical systems and recognize best practices defined in international standards.
In Critical Embedded Systems Electronics is central. This presentation focuses on how Automotive Electronics is developped to reach the stringent objectives of this critical systems domain.
Most industrial safety-critical systems are developed and validated following safety standards. However even though all safety standards address similar concerns with similar objectives, they are also domain-specific standards. The presentation results from the activity of a working group (formerly CG2E, now part of the recently set-up Embedded France) gathering industrial safety experts from aeronautics, automotive, industrial automation, nuclear, railway and space. The lecture will combine a presentation focused on one industry specific standard (the recent ISO 26262 for automotive), and complementary perspective in comparison with the standards in the other five mentioned domains. After the presentation of the history and position and the various regulation regimes, we will highlight some more technical topics e.g., integrated or external safety systems, fault prevention vs. fault tolerance, objectives vs. means prescription, probabilistic vs. deterministic arguments and the notion of criticality, integrity or assurance levels.
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...Horgix
This is the slide deck of a talk by Alexis "Horgix" Chotard and Laurentiu Capatina presented at the MongoDB Paris User Group in June 2024 about the feedback on how PayFit move away from a monolithic hell of a self-hosted MongoDB cluster to managed alternatives. Pitch below.
March 15, 2023, 6:59 AM: a MongoDB cluster collapses. Tough luck, this cluster contains 95% of user data and is absolutely vital for even minimal operation of our application. To worsen matters, this cluster is 7 years behind on versions, is not scalable, and barely observable. Furthermore, even the data model would quickly raise eyebrows: applications communicating with each other by reading/writing in the same MongoDB documents, documents reaching the maximum limit of 16MiB with hundreds of levels of nesting, and so forth. The incident will last several days and result in the loss of many users. We've seen better scenarios.
Let's explore how PayFit found itself in this hellish situation and, more importantly, how we managed to overcome it!
On the agenda: technical stabilization, untangling data models, breaking apart a Single Point of Failure (SPOF) into several elements with a more restricted blast radius, transitioning to managed services, improving internal accesses, regaining control over risky operations, and ultimately, approaching a technical migration when it impacts all development teams.
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
4. Du laboratoire à la scène
pour Orchestra & Live Electronique
G. Nouno, A. Cont: Computer Music Designers
Jonathan Harvey
Speakings
5. Jonathan Harvey’s « Speakings »
n Jonathan Harvey (1939 — 2012)
n Idea: An orchestra that speaks
o From speech to orchestra and vice versa
o Enrich orchestral timbre using non-existing speech structures
n Read:
o G. Nouno, A. Cont, G. Carpentier, and J. Harvey
“Making an Orchestra Speak”, Sound and Music Computing Conference, 2009.
Best paper award.
o Tribune article on Forumnet with Max and OpenMusic patches.
n Precedence: Modest Mussorgsky, Clarence Barlow
n Procedure:
o Study existing artistic approaches (Modest Mussorgsky, Clarence Barlow, ...)
o Musical research: Prototype ideas, artistic trial and error, choose pertinent approaches.
o Development & Composition
o Tests and performance considerations
o Rehearsal and Concert (Royal Albert Hall, Proms Festival, BBC Orch. 2008)
6. Phase I: Computer Aided Composition
n Automatic Orchestration
o How to write speech structures
for Orchestra?
o The Orchidée project
8. Harvey’s « Speakings »
n Computer Assisted Composition
o Speech to music transcription
n OpenMusic + SuperVP
9. Phase II: Live electronics
n Impose speech structures
on orchestral sound
o Real-time transformation
o Synchronizing electronics
with conductor/orchestra
10. Speakings
n An excerpt
o Live electronics
e.g. sound synthesis synchronized with orchestral event + tempo
o Premier from August 2008 by BBC Scotish Orchestra
in London (Royal Albert Hall)
14. More than 40 Creations
New York Philharmonics, Chicago Symphony, Los Angeles Philharmonics, Berlin Philharmonics, BBC Orchestra...
Audio Analysis/Synthesis
Spatialization
Physical Models
Improvisation
Gesture
MIDI / Control
17. Jean-Louis Giavitto - Julia Blondeau - CNSMD Lyon, avril 2014
• Quelques enjeux, quelques questions
• Un réel rapport interprète / électronique
• De nouvelles possibilités d’écriture de l’électronique
• Passer d’avancées quantitatives à qualitatives ?
• Dépasser la « simple » question de la synchronisation ?
• Une nouvelle manière d’aborder l’électronique grâce au temps-réel ?
• Une écriture plus fine des temps…
Julia Blondeau, compositrice
Jean-Louis Giavitto - CISEC juin 2014
18. L’écart entre la partition et l’interprétation
Jean-Louis Giavitto - CISEC juin 2014
19. L’écart entre la partition et l’interprétation
• événement
• durée
Jean-Louis Giavitto - CISEC juin 2014
20. Time-triggered versus event-driven architecture"
[H. Kopetz, 1991]
1. event-triggered systems
activities triggered by the occurrence of a
significant event
2. time triggered systems
activities triggered on point of a predefined
temporal grid
21. Time triggered
n TT1: A system-wide time reference exists, with good-enough
precision and accuracy. We shall refer to this time reference
as the global clock. For single-processor systems the global
clock can be the CPU clock itself.
n TT2: The execution duration of code driven by interrupts other
than the timers is negligible. In other words, for timing analysis
purposes, code execution is only triggered by timers
synchronized on the global clock.
n TT3: System inputs are only read/sampled at timer triggering
points.
Jean-Louis Giavitto - CISEC juin 2014
22. Plan
1. Comprendre le temps de l’ordinateur
1. un temps stratifié : rapprocher programme et partition
2. la matière du temps : simultanéité, succession & durée
3. des formes du temps : cyclique, linéaire, DAG et ramifié
4. retour sur la durée
2. Comprendre le temps du musicien
l’écart entre la partition et l’interprétation
3. Coordonner le temps de l’ordinateur et celui du
musicien : Antescofo
Jean-Louis Giavitto - CISEC juin 2014
23. Vivre dans le même temps
Jean-Louis Giavitto - CISEC juin 2014
24. UN TEMPS STRATIFIÉ
du temps écrit au temps produit
est-ce que le temps informatique est différent du temps musical ?
Jean-Louis Giavitto - CISEC juin 2014
25. Rapprocher partition et programme ?
Partition
Programme
phase de composition
phase de spécification
phase d’interprétation
phase d’exécution
une écriture / sa dénotation
une expression / son évaluation
un compositeur
un programmeur
un (des) interprète(s)
une (des) machine(s)
…
…
Partition ≠ Programme
• G. Mazzola : un « geste surgelé »
• Adorno: l’état liquide de la musique
• « dégeler n’est pas réchauffer »
Jean-Louis Giavitto - CISEC juin 2014
26. Moments du temps et temps logiques
le temps
écriture
exécution du programme
temps physique du
système simulé
interprétation
cycle logique"
de l’ordinateur
événements du sous-
système S1
événements du sous-
système S2
événements du
système S
temps logique de la
modélisation/
programme
partition
geste
instrumental
voix…
Jean-Louis Giavitto - CISEC juin 2014
27. Hors temps et Temps réel
temps du
système
le temps
« physique »
temps logique de la
modélisation
= =
= temps du calcul
= temps « physique »
Jean-Louis Giavitto - CISEC juin 2014
28. Prédire, à temps (exemple: météo, contrôle)
temps du système
= temps du calcul
le temps
réel
« physique »
temps logique
(élastique) de
la modélisation
Système temporisé
Jean-Louis Giavitto - CISEC juin 2014
29. temps logique
interne au
programme
le temps réel
écriture
exécution du programme
Live coding…
temps du système
Jean-Louis Giavitto - CISEC juin 2014
30. Waddington : paysage épigénétique
Link Li & Mhairi Towler, 2012
Jean-Louis Giavitto - CISEC juin 2014
31. LA MATIÈRE DU TEMPS
Simultanéité, succession & durée
Jean-Louis Giavitto - CISEC juin 2014
32. Temps
Objets
• instant
• intervalle
Relations
• succession
• simultanéité
• durée
Formes
• linéaire total
• linéaire partiel
• cyclique
• ramifié
Styles
• modal
• vérifonctionnel
Pluralités
• temps physique
• temps intime
Jean-Louis Giavitto - CISEC juin 2014
33. – la durée (depuis/jusqu'à).
Ces relations sont figurées sur la figure I.1.
instants
du
temps
Simultanéité
pendant,
en même temps
Durée
depuis/jusqu'à
Deux états étant
ni avant, ni après
l'autre sont l'un
pendant l'autre
ce qui n'est ni avant, ni
après, donc ce qui va
d'un seul tenant de son
origine à son terme
Succession
Simultanéité
avant et après sont
les deux formes du
pas en même temps
tant que ça dure,
on est pas passé
à autre chose
ce qui n'est
pas pendant
on est simultané à un
instant, ce qui exclut
le depuis/jusqu'à!!
= non
simultanéité= non-durée
= non
succession
= non
simultanéité
= non-durée
= non
succession
Durée
Succession
avant/après
Simultanéité, succession & durée
Langages
synchrones
algèbre de
processus
systèmes
temporisés
Jean-Louis Giavitto - CISEC juin 2014
35. Les relations de Allen (temps linéaire)
• Contraintes :
• une séquence E doit se jouer avant A
• une séquence A après R
• Est-ce possible ? quel scénarios ?
• E, R, A
• R, E, A
• E=R, A
• Quelles relations peut-on rajouter en restant compatible ?
precedes meets
overlaps starts during finishes equals
E = [x, y]
x
y
O
p
di
oi
pi
d
m
Jean-Louis Giavitto - CISEC juin 2014
36. LES FORMES DU TEMPS
linéaire, cyclique, ramifié
Jean-Louis Giavitto - CISEC juin 2014
37. Répétition, flot et ramification
• Ramifié (branching)
• Cyclique
• Linéaire
• une relation d’ordre totale (synchrone)
• une relation d’ordre partielle (asynchronisme)"
systèmes distribués sans horloge globale, relativité)
Jean-Louis Giavitto - CISEC juin 2014
38. Œuvres ouvertes extensionnelles
Jason Freeman,
diagrame d’un fragment de « Piano Etudes »
Raymond Queneau"
1000 milliards de poèmes
Raymond Queneau"
un conte à votre façon
Jean-Louis Giavitto - CISEC juin 2014
40. Raisonnements temporels
n Vérifier des propriétés sur la dynamique du système
n Choisir son formalismes suivant l’usage le plus approprié
o modale/extensionnelle
o instant/durée (Allen), borné ou pas, …
o linéaire/ramifié(LTL vs CTL)
LTLCTL
CTL*
µcalcul
Jean-Louis Giavitto - CISEC juin 2014
41. STYLES A & STYLE B
A-series / B-series
Logique Modale / Logique Vérifonctionelle,
Temps réel / Hors temps
Jean-Louis Giavitto - CISEC juin 2014
43. John Mc Taggart (1866—1925) : A-propriétés et B-propriétés"
Arthur Prior (1914-1969) : logique modale temporelle
n A-series : caractérisation d’un événement e comme
passé, présent ou futur (prédicat unaire).
Le temps est un flux, un passage.
n B-series : caractérisation d’un événement e comme
avant e’ ou après e’ (prédicat binaire).
Pas de notion de présent, mais un temps « spatialisé », statique
• On peut retrouver les deux styles dans les langages
o Le style « modal » est-il adapté à la performance ?
o Le style « spatial » est-il adapté à la composition ?
• Affinité entre les propriétés de type A et le style modal (intensionnel) des
logiques temporelles
• Affinité entre les propriétés de type B et le style premier ordre
(vérifonctionnel, extensionnel, explicitement indexé) des logiques
temporelles
Jean-Louis Giavitto - CISEC juin 2014
44. Exemple: "
Une esquisse de
Christopher Trapani"
inspirée par les"
canons rythmiques de"
Colon Nancarrow
Clarinet in Bb
f
mp
p
pp
mf-p
ca. q = 108
Cl.
sfz f ppp p mf
mp
p
pp sfz f
n p
4
Cl.
sfz f pp
ppp
mf
8
Cl.
sfz mf pp
n pp p
12
Cl.
sfz mf
pp mf
p pp
mf pp
16
Cl.
p pp
mp
p pp p pp n
19
34
24 34 24
24 34
24 34
34
24
&
SCORE in C
1
X
>
markers to be
placed by Antescofo
>
gliss.
É
'pizz.'
X
possible convergence points
.
.^
.v >
>5
3
3 3
Sketch — 7 Nov 2012
CHRISTOPHER TRAPANI
&
É
A
sub.
2
.> 3
.> .>
>
.
É
B
.>
3
3
7
3 6
&
É
C
.>
4
>
3
>
6 7
5
&
É
D
.>
5
.3
.
.
. 3
3
5
&
Étongue
-slap
E
6
.> sub.
> >
gliss.
.
3 6 6
5
3
3
6
3
&
.
7
> >
3
3
7
3
5
œb
œœ
œœ œ™
J Æœ œ
œ#
≈
œ# œ œ œ œ
j ‰ ‰ fiœ
j
æææœb
j
û
‰
œ œ
œ# œ# œ# œn œn
œ Æœ
J
œ œn œ œb
œb
j
œ œ# œ œ# œn œb œ œ œ œn œ œ œ# œœœ
œn œb ≈
œb
Œ
fi
œ
j œ
j‰
œ œb œ
œ œb
j‰ œn œ
J œB
Ϫ
œB œ œb
j ‰ œ# œœ œ œb œ œœ œ# œ# œ
œ œ
œ
œ œ
œœ
œ#
œ œ# fiœb j
œ ≈
æææ
œ
æææ
œ
Jæææ
œµ fiœ
j
æææ
œ œ œn œ
œb
j ‰ ‰ fi
œb œb
œ
J ‰ ‰ fiœ
j
œ
j ‰ ≈ fi
œb œb
œ
R Œ
fiœj
œn
j‰
œ
J
œ œ œ œb œ œ
≈ œ œb œ œb œ œb œ œn
œb
‰
œ œ œb œ œb œn œn œn œb œb œn œœ œb œ œn
œ œ# œ# œ
Jû‰ ≈
œb œb
œ œn œ œn
œ œ# œ œ œ
J
‰
œb
œb œ
œ œ
œ
‰ ≈
œ œ
œ# œ#
œb œn
œ œ
œb
œ œû ≈
œn œ# œ# œ#
œb œ œn œ
1 -> A 3/5
1B
1B -> A
3 -> D 7/11
2 -> B
1B -> A
point d'entrée défini
point d'entrée défini
point d'entrée défini
3 DEC
Jean-Louis Giavitto - CISEC juin 2014
45. temps réel
(de la performance
entrain de se faire)
début
fin
now
partie lue du buffer
= position de la tête de lecture
au cours du temps
remplissage du buffer
= position de la tête d’enregistrement
au cours du temps
buffer entièrement lu
partie
enregistré du
buffer à
l’instant now
partie rejouée
du buffer à
l’instant now
temps estimé
restant à jouer
partie du buffer
restant à jouer
estimé
connu
temps réel
temps partition
temps
partition
vitesse de jeu
now dans
la partition
position
de la tête de
lecture dans
la partition
B : partie de la courbe de vitesse à utiliser pour ce qui reste
A : partie de la courbe de vitesse à utiliser pour ce qui reste à jouer
46. Jean-Louis Giavitto - CISEC juin 2014
Clarinet in Bb
f
mp
p
pp
mf-p
ca. q = 108
Cl.
sfz f ppp p mf
mp
p
pp sfz f
n p
4
Cl.
sfz f pp
ppp
mf
8
Cl.
sfz mf pp
n pp p
12
Cl.
sfz mf
pp mf
p pp
mf pp
16
Cl.
p pp
mp
p pp p pp n
19
34
24 34 24
24 34
24 34
34
24
&
SCORE in C
1
X
>
markers to be
placed by Antescofo
>
gliss.
É
'pizz.'
X
possible convergence points
.
.^
.v >
>5
3
3 3
Sketch — 7 Nov 2012
CHRISTOPHER TRAPANI
&
É
A
sub.
2
.> 3
.> .>
>
.
É
B
.>
3
3
7
3 6
&
É
C
.>
4
>
3
>
6 7
5
&
É
D
.>
5
.3
.
.
. 3
3
5
&
Étongue
-slap
E
6
.> sub.
> >
gliss.
.
3 6 6
5
3
3
6
3
&
.
7
> >
3
3
7
3
5
œb
œœ
œœ œ™
J Æœ œ
œ#
≈
œ# œ œ œ œ
j ‰ ‰ fiœ
j
æææœb
j
û
‰
œ œ
œ# œ#
œ# œn
œn
œ Æœ
J
œ œn œ œb
œb
j
œ œ# œ œ# œn œb œ œ œ œn œ œ œ# œœœ
œn œb ≈
œb
Œ
fi
œ
j œ
j‰
œ œb œ
œ œb
j‰ œn œ
J œB
Ϫ
œB œ œb
j ‰ œ# œœ œ œb œ œœ œ# œ# œ
œ œ
œ
œ œ
œœ œ# œ
œ# fiœb j
œ ≈
æææ
œ
æææ
œ
Jæææ
œµ fiœ
j
æææ
œ œ œn
œ
œb
j ‰ ‰ fi
œb œb
œ
J ‰ ‰ fiœ
j
œ
j ‰ ≈ fi
œb œb
œ
R Œ
fiœj
œn
j‰
œ
J
œ œ œ œb œ œ
≈ œ œb œ œb œ œb œ œn
œb
‰
œ œ œb œ œb œn œn œn œb œb œn œœ œb œ œn
œ œ# œ# œ
Jû‰ ≈
œb œb
œ œn œ œn
œ œ# œ œ œ
J
‰
œb
œb œ
œ œ
œ
‰ ≈
œ œ
œ# œ#
œb œn
œ œ
œb
œ œû ≈
œn œ# œ# œ#
œb œ œn œ
1 -> A 3/5
1B
1B -> A
3 -> D 7/11
2 -> B
1B -> A
point d'entrée défini
point d'entrée défini
point d'entrée défini
3 DEC
48. Le temps intérieur pour Zimmermann
Nous appellerons durée temporelle effective la portion de temps que nécessite une
œuvre musicale pour son exécution. Cette durée n’est cependant pas dans son
extension une grandeur constante dans le sens où elle resterait la même à chaque
exécution. Autrement dit, les conditions toujours changeantes de l’exécution
musicale, même si elles sont la plupart du temps d’ordre minimal, occasionnent des
durées d’exécution variables pour une même composition, alors qu’au contraire les
proportions de toutes les relations métriques, rythmiques et donc temporelles
demeurent inchangées à l’intérieur de la durée temporelle (effective) qui, elle, varie.
De cette manière, le temps inhérent à une composition sera doublement organisé :
d’une part par le choix d’une certaine unité de temps (effective) qui a la fonction de
tempo musical, d’autre part, par le choix d’une certaine unité de temps (intérieure)
qui ordonne les rapports entre Intervalle et Temps. Les unités de temps, intérieures
aussi bien qu’effectives, sont définies par la conscience intérieure du temps musical
à laquelle, en ce sens, nous devons attribuer la fonction régulatrice de l’expérience
et de la perception du temps en musique.
Jean-Louis Giavitto - CISEC juin 2014
50. Une seconde par seconde
$€
Jean-Louis Giavitto - CISEC juin 2014
51. Subordonner le temps objectif au temps subjectif"
au lieu du contraire
n La durée n’est pas réductible aux instants
o diviser une durée par deux
o accelerando
o le phrasé musical (ex. rubato)
n la partition est écrite / tempo, pas au temps physique
n le “taux de change” (varie dans le temps et)
n’est connu qu’après
n parce que cela permet une interaction musicale
entre instrumentistes et machine
Jean-Louis Giavitto - CISEC juin 2014
52. Extraction du tempo et sympathie des horloges
Jean-Louis Giavitto - CISEC juin 2014
59. L’écriture du temps
n simultanéité
n succession
n répétition
n durée (e.g., finir en même temps)
n mouvements (processus continu)
n la hiérarchie
n l’expression
impérative, équationnelle, par contrainte…
temps lisse
temps strié
structure
63. Group
Jean-Louis Giavitto - CISEC juin 2014
Note C3 1.0
Group G1
{
}
Group G2
{
}
0.5 Group G3
{
}
0.5 Group G4
{
}
Note C4 1.5
…
G1
G2
G3
G4
G1
G2
G3
G4
0.5
1.0
C3
C4
64. Loop
Jean-Louis Giavitto - CISEC juin 2014
Note C3 2/3
Loop L 1.0
{
}
Note C4 1.5
…
L
1.0
C3
C4
L
1.0
L’
1.0
L’’
65. ForAll
Jean-Louis Giavitto - CISEC juin 2014
Note C3 2/3
ForAll $x in TAB[1, 2, 3] do
{
}
Note C4 1.5
…
L
1.0
C3
C4
L
L’
L’’
66. Whenever
Jean-Louis Giavitto - CISEC juin 2014
Note C3 2/3
Whenever ($X > 0)
{
}
Note C4 1.5
…
L
C3
C4
$X
L L L
L
L
$X:=3
67. Curve
7.5.5 Managing Multiple Curves Simultaneously
To make easier the simultaneous sampling of several curves, it is possible to define multiples
parameters together in the same clause:
curve C
{
$x , $y , $z
{
{ 0, 1, -1 } @linear
4 { 2, 1, 0 } @linear
4 { -1, 2, 1 }
}
}
time
$x, $y, $z
2
1
4
8
4
-1
0
Note that with the previous syntax it is not possible to define simultaneous curves with
breakpoint at different time. This is possible using multiple parameter clauses, as in:
41
curve C
{
$x
{
{ 0 } @constant
2 { 1 } @linear
3 { -1 }
}
$y
{
{ 1 } @linear
3 { 2 }
}
}
time
$x, $y
2
1
2
5
3
-1
0
3
même durée, mêmes breakpoints
même durée, différents breakpoints
Jean-Louis Giavitto - CISEC juin 2014
68. Exemple: contrôle de synthèse (Nachtleben, 5mn, Julia Blondeau)
Jean-Louis Giavitto - CISEC juin 2014
69. Exemple d'empilement de tempi
Jean-Louis Giavitto - CISEC juin 2014
Curve C1 @grain 0.05s
{ $t1 { {60} 5 {180} 5 {60} } }
Group G1 @tempo := $t1
{
Curve C2 @grain 0.05s
{ $t2 { {60} 3 {180} 3 {60} 3 {180}
3 {60} 3 {180} 3 {60} }
}
Group G3 @tempo := $t2
{
@local $x
$x := 0
Loop L 0.5
{
$x := $x + 0.1
plot $NOW " " $x "n"
} during [15]
}
}
71. Processus
1. ce sont des valeurs (comme les fonctions)
2. qu’on peut appeler
le résultat est la création d’une instance de groupe
3. l’appel est soit une expression, soit une action
4. les processus peuvent être récursifs
5. et d’ordre sup
Jean-Louis Giavitto - CISEC juin 2014
72. Processus
9.3 Process as Values
A process can be the argument of another proces
@Proc_def ::Tic($x) {
$x print TIC
}
@proc_def ::Toc($x) {
$x print TOC
}
@proc_def :: Clock($p , $q) {
:: $p(1)
:: $q(2)
3 :: Clock($q , $p)
}
A call to Clock(::Tic, ::Toc) will print TIC one be
and then TIC again at date 4, TOC at date 6, etc.
passage en paramètre
(un proc est une valeur
comme les autres)
appel récursif (avec une
fonction ça bouclerait)
appel calculé
(décision, contrôle
dynamique)
généricité: on peut abstraire
sur toute expression
Jean-Louis Giavitto - CISEC juin 2014
73. Processus comme agent
@global $incremente, $decremente ; canaux de communication
@Proc_def ::P($id)
{
@local $state
whenever ($incremente = $id)
{
$state := $state + 1
}
whenever ($decremente = $id)
{
$state ;: $state - 1
}
}
…
::P("José") ; instanciation de l’agent « José »
…
$incremente := "José" ; envoi du message « incrémente » à José
$decremente := "José" ; envoi du message « decrémente » à José
Jean-Louis Giavitto - CISEC juin 2014
77. Causalité & Durée
temps
(durer prend du temps)
dépendances
(causation à succession)
a
b
un instant
logique
un instant
logiqueexpiration
d’un délai
Jean-Louis Giavitto - CISEC juin 2014
78. Synchronous (e.g. zero duration) & timed action
e2
e1
delay d1 to a1
logical instant spanned by
the occurrence of an action
logical instant spanned by
the occurrence of an event
logical time
= causal precedence between computations
relative time
defined by a tempo
updated in a0, a1, a2 and a3
a1
a2
delay d3 to a3
a3
delay d2 to a2
Note e1 1.5
0. action a0
d1 action a1
d2 action a2
Note e2 1.0
d3 action a3
a0
physical time
measured by clocks
beat
ms
beat
score
Jean-Louis Giavitto - CISEC juin 2014
80. Time alignment of Score, Human-
Performance and Electronic Actions
alignment
with an
event
alignment with
an event +
tempo
alignment with several
events + several
tempo
choosing an event
89. Implementation
n best effort
n OS X or Linux or Windows
n embedded in Max/msp, PureData or standalone
n graphical interface for edition and monitoring
n used in several creations and re-creation
n with BBC, Berliner Philharmoniker, Los Angeles Philharmonic, etc.
Jean-Louis Giavitto - CISEC juin 2014
90. Implementation
n best effort
n OS X or Linux or Windows
n embedded in Max/msp, PureData or standalone
n graphical interface for edition and monitoring
n used in several creations and re-creation
n with BBC, Berliner Philharmoniker, Los Angeles Philharmonic, etc.
Jean-Louis Giavitto - CISEC juin 2014
91. Implementation
n best effort
n OS X or Linux or Windows
n embedded in Max/msp, PureData or standalone
n graphical interface for edition and monitoring
n used in several creations and re-creation
n with BBC, Berliner Philharmoniker, Los Angeles Philharmonic, etc.
Jean-Louis Giavitto - CISEC juin 2014
92. Antescofo
environment
• history variables
• notifications
external
Events
score and actions datas
Scheduler
Static Timing - Static Order
timing
dispatch
external
environment
(including the
listening machine)
internal
events
Dynamic Timing - Static Order
Dynamic Timing - Dynamic Order
clock
timing variables
Event-trigger
output
Time-trigger
Runtime
95. Détecter un motifs temporel
Jean-Louis Giavitto - CISEC juin 2014
1 whenever ($PITCH) {
2 @local $x
3 $x := $PITCH
4 whenever ($PITCH > $x) {
5 @local $y
6 $y := $PITCH
7 whenever ($PITCH <$y & $PITCH >$x) {
8 @local $z
9 $z := $PITCH
10 a
11 } during [1#]
12 } during [1#]
13 }
pitch
h it from the
al statement
on of a series
trated on the
contains only
will be active
t its body is
ber evaluates
(W3) have a
The activity
on. A column
1) is pictured
ay. When the
is dashed.
(W1) returns
ow in parallel
and waiting
umbered and
eption of the
launches its
eption of the
nwhile, (W1)
notes which
Etc.
ttern is con-
e if one wants
9 $z := $PITCH
10 a
11 } during [1#]
12 } during [1#]
13 }
time
pitch
...
G B E B A G
1
2
3
pitch,$DUR representing the duration of the current note in the score
and some other parameters (position in beat in the score, current
tempo of the musician, etc.).
3.1 A Motivating Example
The detection of the pattern described in Fig. 2 can be easily written
with nested whenever, see top of Fig. 3. In Antescofo, a variable
identifier starts with a dollar character (to distinguish it from the
message receiver used in atomic actions) and the @local statement
introduces local variables.
The behavior of this code fragment on the notification of a series
of pitches (indicated in the middle of Fig. 3) is illustrated on the
bottom of the same figure. This sequence of pitches contains only
one instance of the pattern, figured in bolder line.
The whenever in line 1 (W1) has no stop clause. It will be active
until the end of the program. The net effect is that its body is
triggered each time $PITCH is updated (a non-zero number evaluates
to true). The whenever at line 4 (W2) and at line 7 (W3) have a
during clause and will test their condition only once. The activity
table at bottom of Fig. 3 represents the flow of evaluation. A column
is a time instant. The evaluation of the condition of (W1) is pictured
in pale gray, (W2) in middle gray and (W3) in dark gray. When the
evaluation returns true the border is solid, otherwise it is dashed.
On the reception of the first note, the condition of (W1) returns
true. So, one instance of the body of (W1) is running now in parallel
with (W1), that is, one instance of (W2) is activated and waiting
for a note. The different instances of (W1) body are numbered and
correspond to the row of the activity table. On the reception of the
second note, this instance evaluates to true so (W2) launches its
body and one instance of (W3) is activated. The reception of the
third pitch does not satisfy the condition of (W3). Meanwhile, (W1)
has also been notified by the reception of the second notes which
trigger one instance of (W2) body (row 2) in parallel. Etc.
Admittedly the specification of such a simple pattern is con-
trived to write. And it becomes even more cumbersome if one wants
to manage duration and elapsing time. The objective of Antescofo
temporal patterns is to simplify such definition. The idea is to spec-
ify a pattern elsewhere and then to use it in place of the logical
condition of a whenever:
@pattern P { ... }
...
whenever pattern ::P
{ print "Found one occurrence of P" }
2 @local $x
3 $x := $PITCH
4 whenever ($PITCH > $x) {
5 @local $y
6 $y := $PITCH
7 whenever ($PITCH <$y & $PITCH >$x) {
8 @local $z
9 $z := $PITCH
10 a
11 } during [1#]
12 } during [1#]
13 }
time
pitch
. . .
G B E B A G
1
2
3
4
5
Figure 3. A fragment of Antescofo code that triggers action a on
the reception of 3 consecutive notes x, y, z such that x < y > z >
96. local state-
essions. For
es:
es. The first
correspond-
used in the
constraints of the pattern. If the constraints are not meet, the match-
ing fails. The before clause can be used to shrink or to extend the
temporal interval on which the pattern is matched beyond the first
value change. For instance, the pattern
@pattern twice
{
@local $v
Event $V value $v
Before [3] Event $V value $v
}
is looking for two updates of variable $V for the same value $x
within 3 beats. Nota bene that other updates for other values may
Event: une propriété ponctuelle
Jean-Louis Giavitto - CISEC juin 2014
Pattern P
{
@local $x , $y , $z
Event $PITCH value $x
Event $PITCH value $y where $x < $y
Event $PITCH value $z where ($y > $z) & ($z > $x)
}
…
whenever P
{ print "j'ai vu un P" }
97. State: une propriété qui dure
une variable $X prend une valeur v pendant au moins 2 beats
Jean-Louis Giavitto - CISEC juin 2014
The Event pattern corresponds to a logic of instants: each variable
update is meaningful and a property is checked on a given point in
time. This contrasts with a logic of states where a property is looked
on an interval of time. The State pattern can be used to face such
case.
A Motivating Example. Suppose we want to trigger an action
when a variable $X takes a given value v for at least 2 beats. The
pattern sequence
@Local $start , $stop
Event $X value v at $start
Event $X value v at $stop
where ($stop - $start) >= 2
does not work: it matches two successive updates of $X that span
over 2 beats but it would not match three consecutive updates of $X
for the same value v, one at each beat, a configuration that should
be recognized.
It is not an easy task to translate the specification of a state that
lasts over an interval into a sequence of instantaneous events. Using
a State pattern, the specification of the previous pattern is easy:
State $X where ($X == v) during 2
matches an interval of 2 beats where the variable $X constantly has
the value v (irrespectively of the number of variable updates).
Four optional clauses can be used to constraint a state pattern:
before and where clauses constrain the matching as described for
event pattern. The at clause is replaced by the two clauses start
and stop to record or constrain the date at which the matching of
the pattern has started and the date at which the matching stops.
Event $X value v at $start
Event $X value v at $stop
where ($stop - $start) >= 2
does not work: it matches two successive updates of $X that
over 2 beats but it would not match three consecutive updates
for the same value v, one at each beat, a configuration that s
be recognized.
It is not an easy task to translate the specification of a stat
lasts over an interval into a sequence of instantaneous events. U
a State pattern, the specification of the previous pattern is ea
State $X where ($X == v) during 2
matches an interval of 2 beats where the variable $X constantl
the value v (irrespectively of the number of variable updates)
Four optional clauses can be used to constraint a state pa
before and where clauses constrain the matching as describe
event pattern. The at clause is replaced by the two clauses s
98. State: une propriété qui dure
Jean-Louis Giavitto - CISEC juin 2014
update of the variables. The matching of a State also stops when
the specified duration has elapsed, independently of the variables
update. If there is no during clause, the pattern tracks the variables
whilst the constraints are satisfied and the matching stops as soon
they are no longer satisfied.
We illustrate State with the pattern
State $X during u where $X > a
Before [v]
State $X where $X > b
whose behavior is sketched in Fig. 4. The diagram assumes that
variable $X is sampling at a rate a function f. The first State
pattern is looking for an interval of length u where constantly $X is
greater than a. The first possible interval start at A and is figured
by the two white circles on the time axis. The second State pattern
must start to match before v beats have elapsed since the end of
the previous pattern. The match starts as soon as $X is greater than
b. There is no specification of a duration for the second state, so it
finishes its matching at time T as soon as $X becomes smaller than
b. The matched interval is marked with the two dark circles on the
time line.
$X
a
b
is found, only the two matches
The Refractory Period. Sym
the same pattern may start at d
time point. For instance, the cu
other possible occurrences of
T. These occurrences start at
rate of the curve (i.e., the ra
f(A + n ) > a.
In such case, a @refracto
number of successful (reporte
specifies the period after a suc
match may occur. This period
the successful match. A possib
in Fig. 4. The refractory period
for an atomic pattern. The @R
at the beginning of the patte
eventual @Local clause. If the
all feasible paths trigger the ac
4.5 Patterns Hierarchizatio
Because atomic patterns track
very easy to create patterns P
from more elementary pattern
variable which is then tracked
For instance, suppose that p
gestures reported through the
recognition of a sequence Gseq
G1 followed either by G2 or G
whose behavior is sketched in Fig. 4. The diagram assumes that
variable $X is sampling at a rate a function f. The first State
pattern is looking for an interval of length u where constantly $X is
greater than a. The first possible interval start at A and is figured
by the two white circles on the time axis. The second State pattern
must start to match before v beats have elapsed since the end of
the previous pattern. The match starts as soon as $X is greater than
b. There is no specification of a duration for the second state, so it
finishes its matching at time T as soon as $X becomes smaller than
b. The matched interval is marked with the two dark circles on the
time line.
time
$X
f
a
b
u v r
A T
Figure 4. Matching two successive states, the first above level
a with a specified duration of u and the second above level b
with no duration and within a temporal scope of v. See text for
number o
specifies
match m
the succe
in Fig. 4.
for an at
at the be
eventual
all feasib
4.5 Pat
Because
very easy
from mo
variable w
For in
gestures
recogniti
G1 follow
as:
$ges
when
when
when
when
@pat
Ev
Ev
99. Semantique "
de trace
Jean-Louis Giavitto - CISEC juin 2014
(1) M
q
"
y
⇢ S = ⇢($NOW)
(2) M
q
P
y
⇢ ✏ = fail, P 6= "
(3) M
q
Px · Q
y
⇢ x0
:= v · S = M
q
Px · Q
y
⇢[x0
:= v] S where x 6= x0
let Px = Event x at y value z where e in:
(4) M
q
before[ d ] Px · Q
y
⇢ (d0
· S) =
(
fail, if d d0
M
q
before[ d d0
] Px · Q
y
⇢[$NOW += d0
] S, if d > d0
(5) M
q
before[ 0# ] Px · Q
y
⇢ S = fail
(6) M
q
before[ n# ] Px · Q
y
⇢ (d0
· S) = M
q
before[ n# ] Px · Q
y
⇢ S
(7) M
q
before[ D ] Px · Q
y
⇢ x := v · S =
(
M
q
P0
x · Q
y
⇢0
S, if E
q
e
y
⇢00
= false
min M
q
P0
x · Q
y
⇢0
S, M
q
Q
y
⇢00
S if E
q
e
y
⇢00
= true
where ⇢0
= ⇢[x := v] and ⇢00
= ⇢0
[y := ⇢($NOW), z := v] and P0
x =
(
before[ d ] Px, if D = d
before[ (n 1)# ] Px, if D = n#
let Px = State x where e and Px 2 Px, Px during[ D ] in:
(8) M
q
before[ d ] Px · Q
y
⇢ (d0
· S) =
8
>>>>>><
>>>>>>:
fail if d d0
^ E
q
e
y
⇢ = false
M
q
before[ d d0
] Px · Q
y
⇢0
· S if d > d0
^ E
q
e
y
⇢ = false
MS
q
Px · Q
y
⇢ d0
· S if d d0
^ E
q
e
y
⇢ = true
min
MS
q
Px · Q
y
⇢ (d0
· S),
M
q
before[ d d0
] Px · Q
y
⇢0 · S
!
if d > d0
^ E
q
e
y
⇢ = true
where ⇢0
= ⇢[$NOW += d0
]
(9) M
q
before[ d ] Px · Q
y
⇢ (x := v · S) =
8
><
>:
M
q
before[ d ] Px · Q
y
⇢0
S if E
q
e
y
⇢0
= false
min
MS
q
Px · Q
y
⇢0
· S,
M
q
before[ d ] Px · Q
y
⇢0 · S
!
if E
q
e
y
⇢0
= true
where ⇢0
= ⇢[x := v]
(10) MS
q
Px · Q
y
⇢ ✏ = fail
MS
q
Px · Q
y
⇢ (x0
:= v · S) = MS
q
Px · Q
y
⇢[x0
:= v] S where x 6= x0
(11) MS
q
Px · Q
y
⇢ (d0
· S) = MS
q
Px · Q
y
⇢[$NOW := d0
] S
MS
q
Px · Q
y
⇢ (x := v · S) =
(
MS
q
Px · Q
y
⇢[x := v] S if E
q
e
y
⇢[x := v] = true
M
q
Q
y
⇢[x := v] S if E
q
e
y
⇢[x := v] = false
(12) MS
q
Px during[ d ] · Q
y
⇢ (d0
· S) =
(
M
q
Q
y
⇢[$NOW += d] (d0
d · S) if d d0
MS
q
Px during[ d d0
] · Q
y
⇢[$NOW += d0
] S if d > d0
MS
q
Px during[ d ] · Q
y
⇢ (x := v · S) =
(
fail if E
q
e
y
⇢[x := v] = false
MS
q
Px during[ d ] · Q
y
⇢[x := v] S if E
q
e
y
⇢[x := v] = true
+ 0 + 0
100. Jean-Louis Giavitto - CISEC juin 2014
is triggered and its body is launched only if the start time of the pat-
tern, recorded in the variable $start is posterior to the last time the
property became true.
The variable $halt play a role similar to $continue and is used
to abort the whenever when the time goes outside the specified
temporal scope. The computation of the expression [D] is not
figured here (it implies several auxiliary variables to record the
number of updates of the tracked variable or of the elapsed time).
Such optimization is needed to garbage efficiently the instance of
the body of the whenever.
Examples. Fig. 6 gives the complete code generated for the pat-
tern P2 below and illustrates the occurrences of P2 on a curve sam-
pled every one hundredths of a second:
@pattern P2
{
@local $s1 , $t1 , $s2 , $t2
@refractory 2
State $X start $s1 stop $t1 during 0.5
where $X > [1#]: $X
before [1.3]
State $X start $s2 stop $t2 during 0.5
where $X > [1#]: $X
}
This pattern matches two intervals, of length 0.5, separated by less
than 1.3 time units, such that on this interval we have $X > [1#]:$X.
The notation [1#]:$X is used to access the past value of $X (the
specification [1#] correspond to the value at the previous update
but we can also use a time interval instead of a logical count). In
other word, this property simply characterizes a series of increasing
values.
The curve plotted at the top of Fig. 6, is increasing on [0, 1],
@local $04_last_matching_time ,
$08_started
$04_last_matching_time := -1.0
$08_started := -1.0
WHENEVER ($X == $X) @Immediate
{
@local $21_duration , $s , $t
$21_duration := 0.2
$s := $NOW
$t := $NOW + $21_duration
if ($X > 0.5 && $X > [1#]: $X)
{
@local $03_continue_matching
if ( $08_started < 0.0) {
$08_started := $NOW
}
$03_continue_matching := true
$21_duration
if ($08_started >=0.0 && $s >= $08_started )
{
@local $09_started , $17_tscope , $18_cpt , $13_halt
$09_started := -1.0
$17_tscope := 2
$13_halt := false
$18_cpt := -1
WHENEVER ( $03_continue_matching && $X == $X) @Immediate
{
@local $s2 , $t2
$18_cpt := $18_cpt + 1
$s2 := ( $09_started >= 0.0 ? $09_started : $NOW)
$t2 := $NOW
if ($X < [1#]: $X)
{
if ( $09_started < 0.0) {
$09_started := $NOW
}
} else {
if ( $09_started >= 0.0)
{
$13_halt := true
if ( $04_last_matching_time < 0.0
|| $NOW - $04_last_matching_time >= 2)
{
$04_last_matching_time := $NOW
$03_continue_matching := false
print "OK start1 " $s1 " to stop1 " $t1
print "OK start2 " $s2 " to stop2 " $t2
}
}
$13_halt := $18_cpt >= $17_tscope
$09_started := -1.0
}
} until ($13_halt)
}
} else {
$08_started := -1.0
}
}
Compilation"
par"
réécriture dans
un sous-langage
102. Auteur (compositeur)
« read »
« eval »
« print »
Scénario interactif
partition ouverte,
virtuelle, interactive…
Œuvre
interactive
œuvre musicale mixte,
time-art, …
Analyse
synthèse,
rendu
Acquisition
Production
Perception
Action
Musiciens & spectateurs
write
interact
Une architecture pour l’œuvre ouverte interactive
L’écriture du temps :
• composition
• calculer du temps
L’écriture de l’interaction :
• performance
• calculer dans le temps
Ecriture du temps
dans le temps
lecteur
parsing
écrivain
pretty-printing
dusignalausymbole
dusymboleausignal
traitement du signal
traitement du signal
106. Faire cohabiter les 2 mondes
sur-echantillonage
tempo variable
when
whenever
constructeur de signal audio
curve
107. Faire cohabiter les 2 mondes :"
traitement précis à l’échantillon des actions
n traiter un échantillon à la fois
n calcul par bloc aligné sur le contrôle
(appel de fonction)
o le 1er bloc est incomplet
n pro: les blocs restent alignés
n cons: la fréquence du contrôle n’est pas preservé
o démarrer un bloc avec le déclenchement
n pro: on traite toujours un bloc entier à la fois
n cons: les blocs ne sont plus alignés
108. retarder un bloc
• introduit une latence car on doit attendre d’avoir le buffer le plus tardif avant
de faire une sortie
109. 0
Bloc partiel
• Les constructeurs de signaux attendent qu’on leur fournissent un contrôle
(constant) par bloc
• la même entrée va sortir à des moments différents suivant le retard sur les
chemins suivis
111. Modeling and anlysing Antescofo's time
n Model Based Conformance Testing
n quality releases (tools for developpers)
n user assistance (tools for composers / RIMs)
n preservation
112. • high-level
• many language constructs
• hierarchical structures
• complete information
• low-level
• few language constructs
• flat structure
• enough information for execution
model checking
Formal Model:
FSM extended
with clocks and vars
Operational Semantics
of Antescofo DSL
JDEDS 23(4) 2013
EMSOFT 2013
Quantitive Evaluation
of the Robustness of Antescofo Scores
to Timing Variations at Performance
ICMC 2013
PhD Clément Poncelet (oct. 2013)
114. 114
IRCAM Scientific Council – 19-20 December 2013
BlackBox BlackBox
WhiteBox
Covering
Criteria
Model Based Conformance Testing
PhD Clément Poncelet
Comparison
Diagnosis
CoVer
Interpreter
SAT solver
Tempo curves
116. Produire le temps ?
n une ressource qui se structure formellement
o instants, simultanéité, succession, durée
o une forme
n une ressource qu’on
o coupe en morceau
o organise, hiérarchise
o aligne
o transforme
o représente spatialement
o consomme en faisant des calculs
n mais il y a bien d’autres aspects du temps : vivre le temps
o mémoire, apprentissage
o attente, anticipation
o conscience
o …
Daniel Firmin, 2011
Jean-Louis Giavitto - CISEC juin 2014