FR 2903802 A1 20080118 FR 0606428 A 20060713 PROCÉDÉ DE GÉNÉRATION AUTOMATIQUE DE MUSIQUE La présente invention concerne le domaine de la production musicale ou multimédia assistée par un équipement électronique, ainsi qu'un format de fichier multimédia numérique. On connaît dans l'état de la technique de nombreuses solutions pour produire des séquences multimédias à partir de matériaux multimédia préexistants. A titre d'exemple, le brevet européen EP0857343B1 décrit un générateur de musique électronique comportant: un dispositif d'introduction, un ou plusieurs supports d'enregistrement liés à un ordinateur, un générateur de rythmes, un programme d'exécution de hauteur, et un générateur de sons. Lorsqu'il est manipulé par un usager désireux de créer et de jouer un morceau en solo, le dispositif d'introduction produit des signaux d'entrée de rythme et de hauteur. Les supports d'enregistrement présentent différentes pistes d'accompagnement sur lesquelles l'utilisateur peut en superposition créer et jouer le solo, et différents blocs de rythme dont chacun définit pour au moins une note au moins un instant où la note doit être jouée. Le support d'enregistrement enregistre au moins une partie du solo créé par l'utilisateur pendant un laps de temps, d'une longueur donnée, venant de s'écouler. Le générateur de rythme reçoit les signaux de rythme introduits par le dispositif d'introduction, sélectionne l'un des blocs de rythme dans le support d'enregistrement en fonction desdits signaux et donne l'ordre de jouer la note à l'instant défini par le bloc de rythme sélectionné. Le programme d'exécution de hauteur reçoit les signaux de hauteur introduits par le dispositif d'introduction et sélectionne: la hauteur adéquate en fonction desdits signaux, la piste d'accompagnement choisie par l'utilisateur, et le solo 2903802 2 enregistré. Le programme d'exécution de hauteur produit alors la hauteur adéquate. Le générateur de sons ayant reçu les instructions du générateur de rythmes, les hauteurs du programme d'exécution de hauteurs, ainsi que l'indication 5 de la piste d'accompagnement choisie par l'utilisateur, produit un signal audio fonction du solo créé par l'utilisateur et de la piste d'accompagnement choisie. On connaît également le brevet américain US6815600 concernant une méthode pour la génération de musique par 10 modification d'un contenu initial. Les solutions de l'art antérieur consistent pour l'essentiel en une dénaturation d'une séquence musicale de départ, selon un processus continu lié à un format de fichiers musicaux numériques figés. 15 Le but de l'invention est de proposer une solution permettant de produire des compositions musicales dont l'exécution pourra donner lieu à une grande variabilité, et une possibilité d'adaptation illimitée à partir d'un fichier unique composé selon le procédé de l'invention. 20 L'invention concerne un procédé de composition où l'informatique intervient non plus seulement comme un moyen de reproduction, mais comme un moyen d'interaction avec une musique. Il ne s'agit pas de musique automatique, dans la mesure où la phase de création musicale est toujours 25 centrale et absolument fondamentale à la qualité de la musique générée. Cependant le travail de l'auteur est sensiblement modifié par la mise en œuvre de l'invention : il s'agit pour lui de définir un espace musical dans lequel 30 l'auditeur sera amené à naviguer, en utilisant éventuellement des outils d'interaction. À cet effet, l'invention concerne selon son acception la plus générale un procédé de génération automatique de musique à partir d'au moins une séquence musicale 2903802 3 prédéfinie, caractérisé en ce qu'il comporte les étapes suivantes : û création à partir de ladite séquence musicale prédéfinie de briques musicales par application d'un filtre 5 ou d'un traitement sur ladite séquence musicale, û création d'une base de briques musicales comprenant les briques ainsi créées ainsi que des briques préexistantes sélectionnées en fonction de leur cohérence avec les briques créées, 10 û définition d'une nomenclature de descripteurs psycho-acoustiques, û construction d'une table définissant un score pour chaque couple (brique ; descripteur), définition d'un sous-ensemble de descripteurs sur 15 lesquels un utilisateur peut interagir par l'intermédiaire d'une interface de mixage, via un poids d'interaction spécifique, û construction d'une liste de fonctions de mixage, chaque fonction étant liée à une piste, chaque fonction 20 étant appliquée à une brique candidate avec les paramètres de contexte (brique qui vient d'être jouée, briques en cours de lecture sur les autres pistes, poids d'interaction défini par l'utilisateur) et ayant pour résultat un taux de pertinence de la brique candidate, 25 û sélection de la brique candidate dont le résultat de la fonction de mixage est maximal. L'invention sera mieux comprise à la lecture de la description qui suit, se référant à un exemple non limitatif illustré par les dessins où : 30 -la figure 1 : processus d'encodage mxp4 d'une musique pré-existante, - la figure 2 : fonctionnement général d'un player mxp4. Le procédé selon l'invention a pour but la production 35 d'un fichier numérique généré à partir d'une séquence 2903802 4 musicale initiale et à partir de traitement conduit à un fichier d'un format nouveau, grâce auquel l'auditeur peut agir sur la navigation pour explorer la musique en fonction de ses humeurs. Il peut également a contrario déambuler 5 passivement, des heures durant, dans un morceau qui lui plaît, sans passer deux fois au même endroit. Procédé de fabrication d'un contenu selon l'invention 10 Le point de départ de la production d'un contenu musical selon l'invention est un fichier audio ou vidéo, sous une forme numérique. Cette séquence initiale présente un tempo qui va servir à la décomposition en séquences, et donner l'indication de cadencement au programme d'exécution 15 (player). Étape de découpaqe de la séquence initiale La première étape consiste en un découpage en 20 séquences de durée correspondant à un multiple de mesures (au sens musical). Ce découpage peut être effectué manuellement, par exemple à l'aide d'un logiciel d'édition musicale classique ou encore d'une pédale actionnée en rythme commandant l'enregistrement de marqueurs de fin de 25 mesure. Le découpage peut également être réalisé automatiquement, par analyse de la séquence. Le résultat de cette première étape de découpage est la production de matériaux initiaux audio ou des matériaux initiaux vidéos, constitués par des fichiers numériques. 30 Étape de filtrage La deuxième étape consiste à appliquer des filtres sur ces matériaux initiaux audio ou vidéo, pour calculer, pour 35 chaque matériau initial, un ou plusieurs matériaux filtrés, 2903802 5 dans un format correspondant au player utilisé (par exemple un format MP3). Chaque matériau filtré est associé à un identifiant, par exemple le nom du fichier. On construit ainsi un ensemble de matériaux filtrés spécifiques, c'est- 5 à-dire résultant du filtrage de la séquence initiale. Ces filtres peuvent être constitués par : - un filtre isolant la voix d'un chanteur, ou l'orchestration, - un filtre de distorsion, 10 - un filtre d'ajout de sons, - un filtre produisant des effets spéciaux, Optionnellement, on conserve un leader (piste de 15 chant) sur laquelle s'organise les autres matériaux filtrés pour conserver la structure originale. Utilisation d'une base de matériaux génériques 20 On ajoute par ailleurs des matériaux filtrés universels dont la longueur peut dépasser celle d'un matériau filtré spécifique . Il s'agit de fichiers numériques musicaux ou vidéos, qui ne dépendent pas de la séquence musicale ou vidéo initiale. 25 Définition de critères psycho-acoustiques Pour permettre à l'auditeur d'interagir avec le fichier produit, on prépare trois séries de composants : 30 - des critères psycho-acoustiques, - des pistes, - une collection de matériaux filtrés ou briques . 2903802 6 On définit des critères psycho-acoustiques, par exemple : - le volume, - le numéro d'ordre dans la séquence initiale, 5 -le niveau de ressemblance à la séquence initiale, - la qualité de brique de démarrage ou de fin de morceau, - élément solo (éteignant les autres pistes), - élément joué systématiquement avec une autre 10 brique,... Ensuite, on construit un ensemble de pistes (n pistes vidéo, m pistes audio, z pistes texte, éclairage, ou encore un filtre ex : volume appliqué aux pistes x et y (certaines 15 pistes définissent des effets appliquées à d'autres pistes, relations inter-pistes)....) Il existe également des pistes dites de contrôle , qui n'ont aucun effet sensible à l'oeil ou à l'oreille, mais qui déterminent les paramètres sur lesquelles les autres pistes vont s'appuyer. Par 20 exemple une piste va déterminer l'harmonie à respecter par les autres. On construit ensuite une collection de briques : chaque brique est constituée d'un matériau filtré, auquel 25 on associe : - des coefficients correspondant à son poids par rapport à chacun des critères psycho-acoustiques (manuellement ou automatiquement), - une piste choisie parmi la collection de pistes. On définit ensuite des curseurs d'interaction permettant à l'utilisateur d'interagir avec l'exécution musicale. 30 35 Définition des fonctions d'évaluation 2903802 7 L'étape suivante consiste à définir pour chaque piste, une fonction d'évaluation consistant à pondérer chaque brique en fonction de constantes (critères psycho-acoustiques) et d'un contexte (valeurs des curseurs, et 5 historique du morceau en cours d'exécution). Optionnellement, on définit pour chaque piste des fonctions de modification de variables interne, pour chaque brique (effet de bord), appelée au début et à la fin de chaque brique. 10 Les différentes fonctions permettent les calculs arithmétiques de base, le recours à un générateur aléatoire, l'utilisation de structures complexes et la gestion des effets de bord. Fonction de distance : évite d'évaluer la totalité des combinaisons de briques, et de 15 n'appliquer la fonction que sur les briques proches de la brique dont la lecture vient de s'achever. On construit ainsi une séquence audio/vidéo dont le format correspondant à un format multimédia dédié à la musique interactive. 20 Le format utilise la notion de morceau . Un morceau est une séquence multimédia de durée quelconque, éventuellement illimitée. Le format selon l'invention repose sur des briques 25 multimédia, qui sont principalement des briques audio, mais qui pour certaines sont également vidéo, textuelles ou autres. Certaines briques peuvent également être des filtres multimédia (filtre audio, vidéo, ...) qui seront appliqués à d'autres briques. 30 Le système produit une séquence multimédia en assemblant et en mixant les briques comme décrit dans ce qui précède. 2903802 8 Le choix des briques à assembler et à mixer peut se faire en fonction des interactions d'un utilisateur en cours d'exécution de la séquence. Le système est constitué de plusieurs étages : 5 ^ la composition, ^ les fichiers, ^ le programme d'exécution (player). La composition d'un morceau mxp4 s'effectue en assemblant, de manière non exhaustive : 10 ^ des éléments multimédia appelés briques : des extraits de musique, des extraits de vidéo, des animations 3d, des textes, des filtres audio et vidéo, ... Chaque brique est une séquence temporelle de durée limitée, codant des manifestations multimédia diverses, 15 ^ des paramètres dits psycho-acoustiques déterminant les attributs constants des briques, ^ des curseurs d'interaction, ^ des fonctions d'évaluation, déterminant la manière dont la sélection des briques va s'effectuer. 20 Cet assemblage donne normalement lieu à un fichier contenant ou référençant les éléments cités ci-dessus. Le format d'encodage du contenu de chaque brique n'est pas figé dans la spécification. Il peut utiliser un format 25 standard, par exemple MP3. Le format contient les listes de paramètres correspondant aux critères psycho-acoustiques ainsi que la description des curseurs d'interaction. En outre, le format inclut les différentes fonctions d'évaluation. Ces fonctions sont décrites sous la forme d'un bytecode dont les caractéristiques font partie de la spécification. Ce bytecode a vocation à être interprété par 30 2903802 9 une machine virtuelle intégrée dans les programmes d'exécution. Le fichier est ouvert à l'ajout de méta-données 5 permettant l'enrichissement des morceaux et notamment l'enrichissement de leur rendu par les programmes d'exécution. Proqrammes d'exécution 10 Le programme d'exécution est un logiciel capable de lire les fichiers générés par le procédé selon l'invention, puis d'exécuter les morceaux correspondants. Le programme d'exécution est capable d'interpréter les briques contenues ou référencées dans le fichier. 15 Le programme d'exécution est capable de gérer les curseurs d'interaction, éventuellement de manière automatique, sans faire appel à un utilisateur, mais généralement en offrant une interface d'interaction à 20 l'utilisateur. Enfin, le programme d'exécution est capable d'évaluer les fonctions d'évaluation et de sélectionner en fonction du résultat les briques à mixer. 25 On définit un morceau mxp4 de la manière suivante : un tempo : un ensemble de pistes : T, une relationfi non symétrique et non nécessairement injective indiquant qu'une piste agit sur une autre piste :t 30 fit', un ensemble de critères psychoacoustiques : C, un ensemble de briques multimédia, associée chacune à une piste : B = {bt,, tET). Par extension, on notera B, les briques associées à une certaine piste, 2903802 10 un ensemble de valeurs, évaluant chaque brique sur chaque critère psycho-acoustique : K= {ke,b, cEC, bEB}, une fonction de distance, éventuellement euclidienne, sur les critères psycho-acoustiques : 5 o dt:BxB-+D+ un limiteur psycho-acoustique, éventuellement infini : A,t E D +, un ensemble de curseurs d'interaction :I, un ensemble de paramètres d'interaction, donnant 10 la valeur courante de chaque curseur d'interaction : P = [pi, iEI}, - la liste des briques en cours de diffusion sur chaque piste, et le nombre de répétitions : H = { ht , tel', htEB }U{rt, 'ET), 15 un ensemble de paramètres généraux (par exemple, le temps écoulé depuis le début du morceau) : G, un ensemble de variables globales à usage général : V, des fonctions d'évaluation associées à chaque 20 piste : o F={ft, tET}, avecft : BtxKxPxHx Gx V-> D o ces fonctions peuvent s'appuyer sur un générateur aléatoire rand : 0 -> [O, 11, o ces fonctions peuvent générer des effets de bord 25 sur l'ensemble V pour optimiser la gestion de ces effets de bord, des fonctions de début et de fin de brique, pour chaque piste : o S={st, (ET}, avec st: BtxKxPxHx Gx V--. D 30 o E=[et,tET}, avec et:BtxKxPxHxGxV->D 2903802 11 Lors de l'exécution d'un morceau, le player mxp4 mixe toutes les pistes en permanence. Sur chaque piste, il enchaîne les briques, à raison d'une seule à la fois. À la fin de chaque brique, le player sélectionne la 5 brique suivante, qu'il démarrera sur le prochain tempo. La sélection de la prochaine brique à jouer sur la piste t se fait en déterminant la brique b qui maximise ft(b, K, P, H, G, V). Ce calcul se fait sur les briques bEBt, telles que 10 dt (b, bo) REVENDICATIONS 1 û Procédé de génération automatique de musique à partir d'au moins une séquence musicale prédéfinie, caractérisé en ce qu'il comporte les étapes suivantes : û création à partir de ladite séquence musicale prédéfinie de briques musicales par application d'un filtre ou d'un traitement sur ladite séquence musicale, û création d'une base de briques musicales comprenant les briques ainsi créées ainsi que des briques préexistantes sélectionnées en fonction de leur cohérence avec les briques créées, û définition d'une nomenclature de descripteurs 15 psycho-acoustiques, û construction d'une table définissant un score pour chaque couple (brique ; descripteur), - définition d'un sous-ensemble de descripteurs sur lesquelles un utilisateur peut interagir par 20 l'intermédiaire d'une interface de mixage, via un poids d'interaction spécifique, û construction d'une liste de fonctions de mixage, chaque fonction étant liée à une piste, chaque fonction étant appliquée à une brique candidate avec les paramètres 25 de contexte (brique qui vient d'être jouée, briques en cours de lecture sur les autres pistes, poids d'interaction défini par l'utilisateur) et ayant pour résultat un taux de pertinence de la brique candidate, û sélection de la brique candidate dont le résultat de 30 la fonction de mixage est maximal. 2 û Procédé de génération automatique de musique selon la revendication 1, caractérisé en ce qu'une partie au moins des briques sont des pistes de contrôle comportant 35 des informations pour le pilotage d'un périphérique. 2903802 3 û Procédé de génération automatique de musique selon la revendication 1, caractérisé en ce qu'il comporte une étape automatique de sélection des briques en fonction d'informations provenant de capteurs physiques ou de 5 sources informatiques distantes. 4 û Procédé de génération automatique de musique selon la revendication 1, caractérisé en ce qu'il comporte en outre des briques non musicales. 10 5 û Procédé de génération automatique de musique selon la revendication 1, caractérisé en ce que les fichiers comportent une partie au moins des éléments suivants : - des paramètres généraux (principalement le tempo), 15 - le nombre et la description des pistes, notamment la nature de chacune (source audio / effet sonore / sous-titre / vidéo / filtre visuel), - les relations entre les pistes : par exemple, la piste 3 gère le crescendo de la piste 2, - le nombre et la description des caractères psycho-acoustiques, - les différents matériaux multimédia (soit directement intégrés dans le fichier mxp4, soit référencés par un chemin sur le disque ou par une url), - la liste et la description de chaque brique (une brique contient un matériau multimédia, mais un même matériau peut être utilisé par plusieurs briques), - le tableau des valeurs des caractères psycho-acoustiques de chaque brique, - le nombre et la description des curseurs d'interaction, - la liste des fonctions de distance de chaque piste, définie sous la forme d'un bytecode, ainsi que le limiteur associé, 2903802 16 -. - la liste des fonctions d'évaluation de chaque piste, définie sous la forme d'un bytecode, - la liste des fonctions de début et de fin de chaque piste, définie sous la forme d'un bytecode. 5 6 û Procédé de génération automatique de musique selon la revendication 1, caractérisé en ce qu'il réalise au démarrage d'une brique, un programme d'exécution d'une fonction st modifiant les paramètres de contexte, et réalise 10 à la fin de la brique, un programme d'exécution évaluant la fonction et appliquée aux paramètres de contexte (b, K, P, H, (, V). 7 - Équipement pour la génération automatique de musique, selon le procédé objet de la revendication 1, 15 caractérise en ce qu'il comporte des moyens pour l'exécution d'une fonction de mixage pour la sélection séquentielle des briques candidates et comportant des circuits pour le traitement en parallèle d'une pluralité de flux compressés, et de mixage desdits flux. 20