Séances: 17h et 20h en décembre
13h00, 14h30, 16h00 les 22-23-24-27-28 décembre
Restez pour un verre ou une bouchée après la représentation! Profitez d'un rabais de 10% à Pavillon, le nouveau restaurant de la SAT. Sous présentation de votre billet, le jour-même seulement.
Découvrez les techniques clés du développement de systèmes temps réel, dans cette formation issue de la collaboration entre la SAT et ÉTS Formation.
Une caractéristique fondamentale de nombreux systèmes multimédias — tels que les systèmes de visioconférence, les installations d’art numérique interactives, les logiciels de création et de production musicale, les jeux vidéo, etc. — est leur rapport au temps et à l’immédiateté. Par exemple, un logiciel de simulation d’effets de guitare doit effectuer ses calculs sans délai perceptible : un·e musicien·ne professionnel·le ressentira déjà une gêne avec des délais de traitement de l’ordre de la dizaine de millisecondes.
Les langages de programmation et systèmes d’exploitation classiques ne sont pas adaptés par défaut pour ce type de tâches, qui requièrent des précautions spécifiques. Cette formation introduira les participant·e·s à un ensemble de techniques et de méthodologies de développement logiciel adaptées à la création de systèmes temps-réel.
Objectifs pédagogiques
À l’issue de cette formation, vous serez en mesure de :
Comprendre les enjeux du temps-réel dans la création d’outils multimédia et artistiques.
Identifier les limites des outils de développement conventionnels (par exemple, l’environnement JavaScript sur Windows) face aux besoins des systèmes temps-réel.
Programmer des logiciels de traitement de signal basiques en respectant un ensemble de règles garantissant un comportement temps-réel.
Utiliser des outils permettant de rendre explicites les appels de fonction incompatibles avec le temps-réel.
Connaître les outils avancés de la programmation temps-réel en C++ : variables atomiques, conteneurs sans verrou, spinlocks, etc.
Structurer et architecturer un logiciel de manière à faciliter l’application de ces règles.
Appliquer ces outils à différents flux de données multimédia : audio, vidéo, messages de contrôle, en prenant en compte les spécificités de chacun.
Contenu du cours
FONDAMENTAUX
Qu’est-ce que le temps-réel ? Quelle est la différence entre “soft real-time” et “hard real-time” ?
Quelles sont les spécificités du temps-réel en multimédia ? Que se passe-t-il lorsqu’un système de traitement de signal destiné à des applications artistiques ne respecte pas un fonctionnement temps-réel ?
Quels sont les outils nécessaires à la réalisation de systèmes temps-réel : langages de programmation et systèmes d’exploitation appropriés ? Pourquoi tous les langages ne permettent-ils pas de créer des systèmes avec des garanties temps-réel ?
Les mécanismes d’appels système, d’allocation mémoire et d’exclusion mutuelle : pourquoi sont-ils incompatibles avec un comportement temps-réel “doux” ?
PROGRAMMATION TEMPS-RÉEL EN C++
Les bases : stratégies pour éviter les allocations mémoire.
Structures de données dynamiques compatibles avec une approche temps-réel : files sans verrou, tables de hachage.
Programmation à multiples fils d’exécution et temps-réel : quelle architecture choisir ?
PROGRAMMATION TEMPS-RÉEL POUR LE MULTIMÉDIA
Traitement audio et image temps-réel : quels algorithmes ?
Traitement des données de contrôle : réseau, etc.
Une architecture logicielle éprouvée : la programmation synchrone.
Applications au-delà du multimédia.
Méthodologie
Plusieurs méthodes d’apprentissage seront utilisées tout au long de la formation pour mesurer votre progression et l’intégration des concepts :
Exposés
Travaux individuels
Exercices pratiques de programmation
Quel est le matériel nécessaire ?
Aucun, cette formation est prévue dans une salle informatique, donc aucun matériel n’est requis.
Qui peut suivre cette formation ?
Tout·e professionnel·le intéressé·e par le développement de systèmes temps-réel : chefs·fe de projet, superviseur·euse·s, technicien·ne·s, consultant·e·s, etc.
Prérequis
Les participant·e·s doivent avoir une expérience en programmation (idéalement au moins 2 ans d’expérience ou bien un cursus d’ingénierie suivi).
Jean-Michaël, directeur du développement technologique à la SAT, s'intéresse à l'art, au code, et à l'informatique musicale. Il développe suite à un cursus en ingénierie informatique et un doctorat en multimédia, une gamme de logiciels libres utilisés pour l'art numérique dont la plateforme ossia dont il est le principal développeur. Il possède une riche expérience d'enseignement en créativité numérique.
Horaire
10 février 2025 - 17 février 2025 Heure : 8h30 à 16h30
Durée: 14h
Lieu : ÉTS Formation, 1220, rue Notre-Dame Ouest, Montréal (Québec) H3C 1K5. Pavillon E, 3e étage, local E-3031
Niveau: Intermédiaire