Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR MANAGING DIGITAL AUDIO FLOWS
Document Type and Number:
WIPO Patent Application WO/2009/122059
Kind Code:
A3
Abstract:
The aim of the invention is to provide a method for managing digital audio flows of a musical work, involving creation of digital audio flows known as tracks (p1 to p21) for a single musical work, said tracks having a duration substantially equal to the musical work, each of said digital audio flows corresponding to an audio signal, and characterized in that, when created, it comprises: regrouping said tracks into two sets (G1 to G5), the tracks and the sets being called elements; setting constraints relative to the elements; verifying, through a constraint resolution engine, that each new constraint is compatible with the previous constraints; encapsulating the tracks (p1 to p21) and the constraints in a single computer disc; and when listening, selecting the tracks desired by the listener while observing the constraints, and obtaining an audio signal from the selected tracks.

Inventors:
LAGADEC OWEN NICOLAS MARIE (FR)
GALLOT FABIEN PAUL ANDRE (FR)
DUCHEMIN IVAN (FR)
DESAINTE-CATHERINE MYRIAM (FR)
MARCHAND SYLVAIN (FR)
Application Number:
PCT/FR2009/050403
Publication Date:
December 10, 2009
Filing Date:
March 11, 2009
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
IKLAX MEDIA (FR)
UNIV BORDEAUX 1 (FR)
CENTRE NAT RECH SCIENT (FR)
ECOLE NATIONALE DE L ELECTRONI (FR)
LAGADEC OWEN NICOLAS MARIE (FR)
GALLOT FABIEN PAUL ANDRE (FR)
DUCHEMIN IVAN (FR)
DESAINTE-CATHERINE MYRIAM (FR)
MARCHAND SYLVAIN (FR)
International Classes:
G10H1/00
Domestic Patent References:
WO2005003927A22005-01-13
Foreign References:
FR2903804A12008-01-18
US20030212466A12003-11-13
Other References:
AES, 60 EAST 42ND STREET, ROOM 2520 NEW YORK 10165-2520, USA, 8 October 2007 (2007-10-08), XP040373509
MARK WHERRY: "Using Folder Tracks in Cubase SX", CUBASE NOTES, May 2005 (2005-05-01), www.soundonsound.com, XP002496939, Retrieved from the Internet [retrieved on 20080906]
Attorney, Agent or Firm:
AQUINOV, FANTIN, Laurent (Beychac et Caillau, FR)
Download PDF:
Claims:

REVENDICATIONS

1. Procédé de gestion de flux αudionumériques d'une oeuvre musicale, consistant à créer des flux audionumériques appelés pistes (pi à p21) d'une même oeuvre musicale, lesdites pistes ayant une durée sensiblement égale à l'œuvre musicale, chacun desdits flux audionumériques correspondant à un signal sonore, caractérisé en ce qu'il consiste, au moment de la création, à regrouper lesdites pistes en au moins deux ensembles [Q) 1 les pistes et les ensembles étant appelés éléments, à établir des contraintes (cl à c3) relatives aux éléments, à vérifier que chaque nouvelle contrainte est compatible avec les contraintes précédentes grâce à un moteur de résolution de contraintes, à encapsuler les pistes (pi à p21) et les contraintes (cl à c3) dans un fichier informatique unique, et au moment de l'écoute, à choisir les pistes que souhaite entendre l'auditeur en respectant les contraintes (cl à c3) et obtenir un signal sonore à partir des pistes choisies.

2. Procédé de gestion de flux audionumériques selon la revendication 1, caractérisé en ce qu'il consiste à fixer pour au moins un ensemble, de préférence chaque ensemble, les nombres minimal et/ou maximal d'éléments de l'ensemble joués de manière simultanée.

3. Procédé de gestion de flux audionumériques selon la revendication 1 ou 2, caractérisé en ce qu'il consiste à fixer des implications entre éléments, lesdits éléments liés devant être joués simultanément. 4. Procédé de gestion de flux audionumériques selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il consiste à fixer des exclusions entre éléments, lesdits éléments liés ne pouvant pas être joués de manière simultanée.

5. Procédé de gestion de flux audionumériques selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il consiste à conserver le rapport entre

les volumes sonores d'au moins deux éléments a et b de manière à conserver

Vc(a)/Vc(b)=Vrdéfaut(a)/Vrdéfaut(b) avec Vc(a) le volume courant de l'élément a, Vc(b) le volume courant de l'élément b, Vrdéfaut(a) le volume par défaut donné par le créateur de l'élément a et Vrdéfaut(b) le volume par défaut donné par le créateur de l'élément b.

6. Procédé de gestion de flux audionumériques selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il consiste à conserver les différences entre les volumes sonores d'au moins deux éléments a et b de manière à Vc(a)- Vc(b)=Vrdéfaut(a)-Vrdéfaut(b), avec Vc(a) le volume courant de l'élément a, Vc(b) le volume courant de l'élément b, Vrdéfaut(a) le volume par défaut donné par le créateur de l'élément a et Vrdéfaut(b) le volume par défaut donné par le créateur de l'élément b.

7. Procédé de gestion de flux audionumériques selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il consiste à conserver l'inégalité Vc(a)/Vc(b)>Vrdéfaut(a)/Vrdéfaut(b) avec Vc(a) le volume courant de l'élément a, Vc(b) le volume courant de l'élément b, Vrdéfaut(a) le volume par défaut donné par le créateur de l'élément a et Vrdéfaut(b) le volume par défaut donné par le créateur de l'élément b.

8. Procédé de gestion de flux audionumériques selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il consiste à conserver l'inégalité Vc(a)-

Vc(b)>Vrdéfaut(a)-Vrdéfaut(b) avec Vc(a) le volume courant de l'élément a, Vc(b) le volume courant de l'élément b, Vrdéfaut(a) le volume par défaut donné par le créateur de l'élément a et Vrdéfaut(b) le volume par défaut donné par le créateur de l'élément b. 9. Procédé de gestion de flux audionumériques selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il consiste à conserver l'inégalité Vc(a)/Vc(b)<Vrdéfaut(a)/Vrdéfaut(b) avec Vc(a) le volume courant de l'élément a, Vc(b) le volume courant de l'élément b, Vrdéfaut(a) le volume par défaut donné

par le créateur de l'élément a et Vrdéfaut(b) le volume par défaut donné par le créateur de l'élément b.

10. Procédé de gestion de flux audionumériques selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il consiste à conserver l'inégalité Vc(a)- Vc(b)<Vrdéfaut(a)-Vrdéfaut(b) avec Vc(a) le volume courant de l'élément a, Vc(b) le volume courant de l'élément b, Vrdéfaut(a) le volume par défaut donné par le créateur de l'élément a et Vrdéfaut(b) le volume par défaut donné par le créateur de l'élément b.

11. Procédé de gestion de flux audionumériques selon l'une quelconque des revendications précédentes, caractérisé en ce que lorsque le créateur impose une nouvelle contrainte, le moteur de résolution de contrainte vérifie si cette nouvelle contrainte est compatible avec les contraintes déjà imposées.

12. Procédé de gestion de flux audionumériques selon la revendication 11, caractérisé en ce que le moteur de résolution de contraintes vérifie que toutes les pistes peuvent changer d'état et que les contraintes sont respectées.

13. Procédé de gestion de flux audionumériques selon l'une quelconque des revendications précédentes, caractérisé en ce que, lors de la phase d'écoute, le moteur de résolution de contraintes vérifie si une combinaison d'états de pistes déterminée par l'auditeur est possible et respecte l'ensemble des contraintes. 14. Procédé de gestion de flux audionumériques selon la revendication 13, caractérisé en ce que si le changement d'état d'une piste choisi par l'auditeur ne respecte pas l'ensemble des contraintes, le changement d'état de ladite piste est automatiquement validé et en ce que le moteur de résolution de contraintes détermine dans un laps de temps donné une combinaison possible intégrant ce changement d'état la plus proche de la combinaison avant ce changement d'état.

15. Procédé de gestion de flux audionumériques selon l'une quelconque des revendications précédentes, caractérisé en ce que le moteur de résolution de contraintes met à jour les choix possibles après une sélection de l'auditeur.

Description:

PROCEDE DE GESTION DE FLUX AUDIONUMERIQUES

La présente invention se rapporte à un procédé de gestion de flux audionumériques ainsi qu'à un format de fichier audionumérique. Une oeuvre musicale et plus généralement un flux audio peut se présenter sous la forme d'un fichier numérique, par exemple un fichier de type WAV, MP3 ou autre. Pour la suite de la description, un flux audio sous forme d'un fichier numérique est appelé un flux audionumérique.

Au moment de la création, le créateur dispose de plusieurs pistes, chacune correspondant à un ou plusieurs instruments et/ou voix. Lors du mixage, le créateur agit sur des caractéristiques acoustiques de chaque piste et regroupe l'ensemble des pistes afin de générer un flux audionumérique unique.

Il existe de nombreux documents traitant du mixage si bien que cette partie n'est pas plus détaillée.

Même s'il existe des aides pour effectuer ce travail, le mixage nécessite des compétences technique, artistique et musicale pour rendre le flux audionumérique audible.

Ce flux audionumérique est ensuite mis à la disposition du public enregistré sur différents supports, par exemple sur un CD. En variante, le flux audionumérique peut se présenter sous la forme d'un fichier informatique qui peut être téléchargé sur un réseau informatique. Le fichier informatique peut avoir différents formats en fonction du logiciel de compression utilisé.

Lors de l'écoute du flux audionumérique, le fichier informatique est transformé en signal sonore grâce à un lecteur. Selon un mode d'écoute connu, l'auditeur peut ajuster le volume, la balance et à l'aide d'un équaliseur, ajuster le volume de

certaines plages de fréquences. Par conséquent, la marge de manoeuvre de l'auditeur est très réduite. Ainsi, à titre d'exemple, il ne peut pas retirer un ou plusieurs instruments.

Pour permettre à l'auditeur de modifier le flux audionumérique et rendre l'écoute interactive, il existe des traitements du signal tel que par exemple décrits dans le document US-5.877.445. Dans ce cas, le flux audionumérique est découpé en tronçons de temps successifs appelés blocs. Chacun de ces blocs peut être traité afin de modifier le signal sonore correspondant, par exemple à l'aide d'un logiciel informatique. Le flux audionumérique est reconstitué en disposant les blocs les uns à la suite des autres.

Cette technique offre à l'auditeur un large choix d'intervention. Cependant, cette grande latitude conduit la majorité du temps à un morceau de musique inaudible, ne respectant plus l'œuvre du créateur. Si l'on cherche à obtenir un flux audionumérique reconstitué audible, il est nécessaire de traiter les bords amont et aval de chaque bloc afin que la fin de chaque bloc puisse coïncider asec le début du bloc suivant. Ce traitement du signal est complexe et les résultats obtenus ne sont généralement pas conformes à l'œuvre du créateur. De plus, ce traitement du signal est long en temps de calcul et requiert une puissance de calcul importante, qui n'est pas compatible asec la majorité des appareils d'écoute des auditeurs.

Aussi, la présente invention vise à pallier les inconvénients de l'art antérieur en proposant un procédé de gestion de flux audionumériques permettant d'obtenir une écoute interactive et audible, ne nécessitant pas un temps de calcul important. A cet effet, l'invention a pour objet un procédé de gestion de flux audionumériques d'une œuvre musicale, consistant à créer des flux audionumériques appelés pistes d'une même œuvre musicale, lesdites pistes ayant une durée sensiblement égale à l'œuvre musicale, chacun desdits flux

αudionumériques correspondant à un signal sonore, caractérisé en ce qu'il consiste, au moment de la création, à regrouper lesdites pistes en au moins deux ensembles, les pistes et les ensembles étant appelés éléments, à établir des contraintes relatives aux éléments, à vérifier que chaque nouvelle contrainte est compatible avec les contraintes précédentes grâce à un moteur de résolution de contraintes, à encapsuler les pistes et les contraintes dans un fichier informatique unique, et au moment de l'écoute, à choisir les pistes que souhaite entendre l'auditeur en respectant les contraintes et obtenir un signal sonore à partir des pistes choisies. D'autres caractéristiques et avantages ressortiront de la description qui va suivre de l'invention, description donnée à titre d'exemple uniquement, en regard des dessins annexés sur lesquels :

- la figure 1 est un schéma illustrant les différentes pistes susceptibles d'être contenues dans une oeuvre musicale, - la figure 2 est un schéma simplifié des différents groupes et pistes d'une oeuvre musicale selon l'invention,

- la figure 3 est un tableau illustrant un exemple de contraintes appliquées aux pistes de la figure 2, et

- la figure 4 est schéma illustrant l'affichage des pistes lors des choix de l'auditeur préalablement à l'écoute des pistes illustrées sur la figure 2.

Sur la figure 1, on a représenté de pi à p21 des pistes d'une oeuvre musicale. Par oeuvre musicale, on entend toute création musicale quels qu'en soient le genre, la forme, la durée,...

Par piste, on entend un signal sonore correspondant à un ou plusieurs instruments, à une ou plusieurs voix ou un mélange d'instruments et/ou de voix. Ces pistes ont une durée sensiblement égale à l'œuvre musicale. Une oeuvre musicale peut comprendre n pistes, n étant un entier.

De manière connue, chaque piste peut être arrangée conformément au souhait du créateur.

Lors de la création, les pistes sont regroupées par le créateur en au moins deux ensembles G. les ensembles peuvent correspondre à des groupes G qui peuvent être divisés en sous-groupes SG qui peuvent être eux-mêmes divisés en sous sous-groupes SSG.

A titre d'exemple, comme illustré sur la figure 1, l'œuvre musicale comprend cinq groupes, dénommés « instruments à cordes » Gl 1 « instruments à vent » GZ 1 « instruments de percussion » (53, « instruments élecroanalogiques » (54, « voix » (55.

Les noms des groupes et leurs nombres sont déterminés par le créateur. Selon l'exemple illustré sur la figure 1, le groupe (51 comprend quatre sous- groupes, dénommés «basses» SGl.1, «guitares» SGlZ 1 «piano» SG1.3 et «instruments à cordes frottées » SGlA. Ce dernier se divise en un premier sous sous-groupe « violons » SSGl AX et en un second sous sous-groupe « contrebasse » SSGl A.2.

Le groupe (52 se divise en deux sous-groupes « flûtes » SGZX et « saxophones » SG2.2. Le groupe (55 se divise en deux sous-groupes « solistes » SG5.1 et « choeurs » S<55.2.

Selon l'exemple illustré sur la figure 1, le sous-groupe SGlX comprend les pistes 1 à 3, le sous-groupe SGlZ les pistes 4 et 5, le sous-groupe SG1.3 la piste 6, le sous sous-groupe SSGlAX les pistes 7 et 8, le sous sous-groupe SSGlAZ la piste 9, le sous-groupe SGZX la piste 10, le sous-groupe SGZZ les pistes 11 et 12, le groupe (53 les pistes 13 à 15, le groupe (54 les pistes 16 et 17, le sous-groupe SG5.1 la piste 18 et le sous-groupe S<55.2 les pistes 19 à 21.

Selon l'exemple illustré sur la figure 1, les pistes sont réparties dans des ensembles selon trois niveaux à savoir des groupes, des sous-groupes et des sous sous-groupes. Toutefois, l'invention n'est pas limitée en nombre de niveaux. Pour la suite de la description, les pistes et les ensembles sont définis comme des éléments.

Pour la suite de la description, on entend par élément une piste, un groupe de pistes, un groupe de piste(s) et de groupe(s) ou un groupe de groupes. Un élément père p d'un élément fils e correspond au groupe qui se situe hiérarchiquement au-dessus de l'élément e. Après avoir réparti les pistes en au moins deux ensembles, le créateur définit des contraintes relatives à au moins un élément qui sont répertoriées dans un tableau ou registre. Cette phase de la création est mise en oeuvre notamment sur un ordinateur couplé à un système de reproduction du son tel que des enceintes. Pour la suite de la description de l'invention, celle-ci est faite au regard d'un cas simplifié, illustré sur la figure 2, comprenant deux groupes (51 et (52 comprenant respectivement les pistes pi à p3 pour (51 et p4, p5 pour (52. Les contraintes peuvent être de différents types.

Selon un premier type de contraintes cl, appelée contrainte min/max, le créateur peut fixer pour au moins un ensemble, de préférence chaque ensemble, les nombres minimal et/ou maximal d'éléments de l'ensemble joués de manière simultanée. Les éléments d'un groupe donné comprennent les pistes du groupe ainsi que les groupes du niveau inférieur. Dans le cas d'un regroupement de pistes asec un nombre de niveaux supérieur à un, les contraintes liées aux groupes des différents niveaux doivent être cohérentes.

A titre d'exemple, pour le groupe 1, le nombre minimal d'éléments joués simultanément est 0 et le nombre maximal est 2. Pour le groupe 2, le nombre minimal est 1 et le nombre maximal est 2.

Selon un deuxième type de contraintes c2, le créateur peut fixer des implications à savoir des éléments qui doivent être joués simultanément. Selon l'exemple illustré, la piste pi doit être jouée simultanément avec les pistes p4 et p5, la piste p2 doit être jouée avec la piste p4. Les implications peuvent concernées des éléments d'un même ensemble ou de différents ensembles.

Les implications peuvent être relatives à des pistes ou à des ensembles de pistes. Ainsi, les pistes d'un premier ensemble (groupe, sous-groupe, sous sous-groupe) doivent être jouées simultanément avec les pistes d'un second ensemble. Selon un troisième type de contraintes c3, le créateur peut prévoir des exclusions à savoir des éléments qui ne peuvent pas être joués de manière simultanée. Ainsi, selon l'exemple illustré la piste p2 est incompatible et ne doit pas être jouée avec la piste p5. Les exclusions peuvent concernées des éléments d'un même ensemble ou de différents ensembles.

Les exclusions peuvent être relatives à des pistes ou à des ensembles de pistes. Ainsi, les pistes d'un premier ensemble (groupe, sous-groupe, sous sous-groupe) ne peuvent pas être jouées simultanément avec les pistes d'un second ensemble. Selon un autre type de contrainte dite de forçage, le créateur peut prévoir qu'au moins un élément doit être toujours à l'état actif.

Les contraintes d'implication, les contraintes d'exclusion, les contraintes de forçage et les contraintes min/max sont appelées des contraintes de sélection. D'autres contraintes peuvent être envisagées comme par exemple des contraintes peuvent être imposées aux éléments, notamment le volume mini et maxi.

Ainsi, il est possible de prévoir une autre série de contraintes dites contraintes de mixage permettant de contrôler les modifications éventuelles opérés par l'auditeur sur les volumes des éléments (pistes/groupes) diffusés.

Pour chaque élément, le créateur pourra définir un volume relatif par défaut

Vrdéfaut pour un élément donné, à savoir un volume sonore défini par le créateur pour l'élément donné.

Le volume relatif Vr d'un élément donné est le volume sonore dudit élément donné susceptible d'être ajusté lors de l'écoute par l'auditeur.

Pour la suite de la description, on entend par volume absolu d'un élément la valeur Va(e)=Vr(e).Va(p), Va(e) étant le volume absolu de l'élément e, Vr(e) étant le volume relatif de l'élément e, Va(p) étant le volume absolu de l'élément p qui est le père de l'élément e. Lorsque l'élément n'a pas de père Va(e)=Vr(e). Ainsi, lorsqu'un auditeur modifie le volume d'un élément à savoir le volume relatif d'un élément, le volume absolu dudit élément est calculé ainsi que les volumes absolus des fils dudit élément s'il en a.

On entend par volume courant Vc, le volume relatif ou le volume relatif par défaut. Ainsi, si l'auditeur a modifié le volume sonore d'un élément donné, le volume courant est égal au volume relatif de l'élément donné. Dans le cas contraire, le volume courant est égal au volume relatif par défaut. Pour chaque piste ou pour certaines, le créateur pourra imposer un volume relatif minimal et/ou un volume relatif maximal. Selon une autre contrainte de mixage, le créateur pourra imposer une contrainte d'équivalence entre au moins deux éléments et définir si cette contrainte d'équivalence est applicable à tous les éléments ou uniquement à ceux sélectionnés par l'auditeur lors de l'écoute. Selon les cas, une contrainte d'équivalence peut s'appliquer même si les éléments contraints ne sont pas sélectionnés lors de l'écoute de l'œuvre. Selon un premier type de contrainte d'équivalence dite d'équivalence par maintien des rapports, on conserve le rapport entre les volumes sonores d'au moins deux éléments a et b. Ainsi Vc(a)/Vc(b)=Vrdéfaut(a)/Vrdéfaut(b). Ainsi, si l'auditeur modifie le volume sonore de a Vc(a), alors Vc(b)=Vc(a).Vrdéfaut(b)/Vrdéfaut(a).

Selon un second type de contrainte d'équivalence dite d'équivalence par maintien des différences, on conserve les différences entre les volumes sonores d'au moins deux éléments a et b. Ainsi Vc(a)-Vc(b)=Vrdéfaut(a)-Vrdéfaut(b). Si l'auditeur modifie le volume sonore de a Vc(a), alors Vc(b)=Vc(a)+Vrdéfaut(b)- Vrdéfaut(a).

Ainsi, si un élément est lié à plusieurs autres éléments ou s'il existe plusieurs contraintes d'équivalence liant des éléments communs, il faut propager les calculs.

Les contraintes d'équivalence peuvent concerner les volumes d'éléments d'un même groupe ou de groupes différents.

Selon une autre contrainte de mixage, le créateur pourra imposer une contrainte de supériorité entre deux éléments et définir si cette contrainte de supériorité est applicable à tous les éléments ou uniquement à ceux sélectionnés par l'auditeur lors de l'écoute. Selon les cas, une contrainte de supériorité peut s'appliquer même si les éléments contraints ne sont pas sélectionnés lors de l'écoute de l'œuvre.

Selon un premier type de contrainte de supériorité dite de supériorité par maintien des rapports, pour les volumes sonores d'au moins deux éléments a et b, on vise à conserver l'inégalité Vc(a)/Vc(b)>Vrdéfaut(a)/Vrdéfaut(b). Ainsi, si l'auditeur modifie le volume sonore de a Vc(a) deux solutions sont envisageables. S'il augmente le volume sonore de a Vc(a), alors le volume sonore de b Vc(b) reste inchangé car l'inégalité est respectée. S'il diminue le volume sonore de a Vc(a) alors il convient de calculer le volume sonore de b Vc(b) afin de respecter l'inégalité et choisir Vc(b)=Vc(a).Vrdéfaut(b)/Vrdéfaut(a). Selon un second type de contrainte de supériorité dite de supériorité par maintien des différences, pour les volumes sonores d'au moins deux éléments a et b, on vise à conserver l'inégalité Vc(a)-Vc(b)>Vrdéfaut(a)-Vrdéfaut(b). Ainsi, si l'auditeur modifie le volume sonore de a Vc(a) deux solutions sont envisageables.

S'il augmente le volume sonore de a Vc(a), alors le volume sonore de b Vc(b) reste inchangé car l'inégalité est respectée. S'il diminue le volume sonore de a Vc(a) alors il convient de calculer le volume sonore de b Vc(b) afin de respecter l'inégalité et choisir Vc(b)=Vc(a)+Vrdéfaut(b)-Vrdéfaut(a). si l'auditeur modifie le volume sonore de b Vc(b) deux solutions sont envisageables. S'il augmente le volume sonore de b Vc(b), alors il convient de calculer le volume sonore de a Vc(a) afin de respecter l'inégalité et choisir Vc(a)=Vc(b)+Vrdéfaut(a)-Vrdéfaut(b). S'il diminue le volume sonore de ba Vc(b) alors le volume de a Vc(a) reste inchangé. Ainsi, si un élément est lié à plusieurs autres éléments ou s'il existe plusieurs contraintes de supériorité liant des éléments communs, il faut propager les calculs.

Les contraintes de supériorité peuvent concerner les volumes d'éléments d'un même groupe ou de groupes différents. Selon une autre contrainte de mixage, le créateur pourra imposer une contrainte d'infériorité entre deux éléments et définir si cette contrainte d'infériorité est applicable à tous les éléments ou uniquement à ceux sélectionnés par l'auditeur lors de l'écoute. Selon les cas, une contrainte d'infériorité peut s'appliquer même si les éléments contraints ne sont pas sélectionnés lors de l'écoute de l'œuvre. Selon un premier type de contrainte d'infériorité dite d'infériorité par maintien des rapports, pour les volumes sonores d'au moins deux éléments a et b, on vise à conserver l'inégalité Vc(a)/Vc(b)<Vrdéfaut(a)/Vrdéfaut(b). Ainsi, si l'auditeur modifie le volume sonore de a Vc(a) deux solutions sont envisageables. S'il diminue le volume sonore de a Vc(a), alors le volume sonore de b Vc(b) reste inchangé car l'inégalité est respectée. S'il augmente le volume sonore de a Vc(a) alors il convient de calculer le volume sonore de b Vc(b) afin de respecter l'inégalité et choisir Vc(b)=Vc(a).Vrdéfaut(b)/Vrdéfaut(a).

Selon un second type de contrainte d'infériorité dite d'infériorité par maintien des différences, pour les volumes sonores d'au moins deux éléments a et b, on vise à conserver l'inégalité Vc(a)-Vc(b)<Vrdéfaut(a)-Vrdéfaut(b). Ainsi, si l'auditeur modifie le volume sonore de a Vc(a) deux solutions sont envisageables. S'il diminue le volume sonore de a Vc(a), alors le volume sonore de b Vc(b) reste inchangé car l'inégalité est respectée. S'il augmente le volume sonore de a Vc(a) alors il convient de calculer le volume sonore de b Vc(b) afin de respecter l'inégalité et choisir Vc(b)=Vc(a)+Vrdéfaut(b)-Vrdéfaut(a).

Ainsi, si un élément est lié à plusieurs autres éléments ou s'il existe plusieurs contraintes d'infériorité liant des éléments communs, il faut propager les calculs.

Les contraintes d'infériorité peuvent concerner les volumes d'éléments d'un même groupe ou de groupes différents.

Bien entendu, les contraintes imposées par le créateur doivent être compatibles entre elles. Ainsi, le procédé de l'invention comprend des moyens visant à tester si les contraintes sont compatibles. Ces moyens sont appelés par la suite moteur de résolution de contraintes et seront détaillés ultérieurement.

De préférence, lorsque le créateur impose une nouvelle contrainte, le procédé teste grâce au moteur de résolution de contraintes si cette nouvelle contrainte est compatible avec les précédentes. Dans l'affirmative, la nouvelle contrainte est validée et Intégrée dans le tableau de contraintes. En cas d'incohérence, un message informe le créateur que cette nouvelle contrainte n'est pas compatible avec les précédentes et elle n'est pas Intégrée dans le tableau de contraintes.

Lorsque le tableau de contraintes est achevé, les pistes et le tableau de contraintes sont encapsulés dans un fichier informatique unique d'un nouveau type de format. Ce fichier informatique peut être enregistré sur tous supports.

En variante, ce fichier informatique peut être stocké dans une base de données et être téléchargé via un réseau informatique.

Lorsqu'il veut écouter l'œuvre musicale, l'auditeur dispose d'un lecteur comprenant le moteur de résolution de contraintes et permettant d'extraire du fichier informatique selon l'invention les pistes de l'œuvre musicale et le tableau des contraintes. Ce lecteur lui permet de visualiser les différentes pistes, de les choisir en respectant les contraintes imposées par le créateur et enfin de jouer les pistes sélectionnées. Selon un mode de réalisation, ce lecteur est de type virtuel et consiste en un logiciel permettant de visualiser les différentes pistes, de les choisir en respectant les contraintes imposées par le créateur et enfin de jouer les pistes sélectionnées. Cette phase d'écoute est mise en œuvre notamment sur un ordinateur couplé à un système de reproduction du son tel que des enceintes.

L'auditeur peut disposer en complément de moyens connus de l'art antérieur tel qu'un équaliseur, une balance, un réglage du volume ou autre pour modifier le signal sonore global, les flux audionumériques d'au moins une piste et/ou d'au moins un ensemble de pistes. Ces moyens ne sont pas plus détaillés.

Avantageusement, les pistes sont affichées en respectant l'arborescence définie par le créateur.

Comme illustré sur la figure 4, l'auditeur peut sélectionner les pistes qu'il désire, par exemple en cochant une case associée à chaque piste. La sélection est opérée en respectant les contraintes du créateur. Le moteur de résolution de contraintes permet de vérifier si le choix est possible et de compléter l'action de l'auditeur.

Ainsi, à titre d'exemple, si l'auditeur coche la piste n°2, le moteur de résolution de contraintes va cocher la piste n°4 qui est nécessairement jouée asec la piste n°2 et rendre le choix impossible pour la piste n°5 qui ne peut pas être jouée asec la piste n°2.

L'auditeur peut s'arrêter à cette sélection et lancer la lecture. Les pistes n°2 et n°4 sont jouées simultanément.

Selon un autre cas, l'auditeur peut choisir une autre piste entre la piste n°l ou n°3. S'il sélectionne la piste n°3, le moteur de résolution de contraintes vérifie si ce choix est possible. Dans l'affirmative, il complète l'action de l'auditeur en rendant le choix impossible pour la piste n°l, deux pistes au maximum du groupe 61 pouvant être jouées simultanément.

S'il sélectionne la piste n°l, le moteur de résolution de contraintes vérifie si ce choix est possible. Dans ce cas, le choix de la piste n°l impose la sélection des pistes n°4 et n°5. Or, la piste n°5 ne peut pas être sélectionnée avec la piste n°2 déjà sélectionnée. Par conséquent, le choix de la piste n°l est impossible. Un message est donné à l'auditeur lui indiquant que son choix n'est pas possible. En variante, le moteur de résolution de contraintes valide la sélection de la piste n°l et coche les cases des pistes n°l, n°4 et n°5 et rend impossible la sélection de la piste n°2. A la fin de sa sélection, l'auditeur peut pour chaque piste ajuster le signal sonore en réglant le volume, la balance ou en le traitant grâce à un équaliseur.

A la fin du paramétrage, l'auditeur lance la lecture du flux audionumérique, les pistes sélectionnées étant jouées simultanément de manière à obtenir un signal sonore.

En variante, lors de l'écoute, l'auditeur peut modifier son choix de pistes. Le moteur de résolution de contraintes permet en temps réel de compléter le choix de l'auditeur en ajoutant ou supprimant des pistes en fonction des contraintes. On note que le procédé de gestion de flux audionumériques selon l'invention permet de rendre l'écoute d'une oeuvre musicale interactive car l'auditeur peut choisir des pistes et agir ainsi sur le signal sonore émis. Selon un autre avantage, le procédé selon l'invention ne nécessite pas une puissance de calcul importante, car il traite des pistes et non des blocs qui doivent être joués successivement, ce qui le rend compatible avec la majorité des appareils d'écoute. Le signal sonore

découlant de la lecture des flux audionumériques est parfaitement audible car le choix des pistes est encadré par les contraintes imposées par le créateur. Le moteur de résolution de contraintes est maintenant détaillé. Lors de la phase de création, le moteur de résolution de contraintes doit permettre de valider le choix de contraintes que souhaite imposer le créateur. Lorsque le créateur impose une nouvelle contrainte, le moteur de résolution de contrainte vérifie si cette nouvelle contrainte est compatible avec les contraintes déjà imposées. Pour opérer ce contrôle, toutes les pistes sont mises au même état, de préférence à l'état inactif. En suivant, le moteur de résolution de contraintes vérifie que toutes les pistes peuvent changer d'état et que l'ensemble des contraintes est respecté. Si ce test est concluant la nouvelle contrainte est compatible avec les contraintes déjà imposées et validée dans le tableau des contraintes. Si aucune solution n'a été trouvée pour que toutes les pistes changent d'état alors la nouvelle contrainte n'est pas compatible avec les contraintes déjà imposées. Un message informe le créateur que cette contrainte n'est pas compatible.

Lors de la phase d'écoute, le moteur de résolution de contraintes permet de vérifier si le choix de l'auditeur est possible et respecte l'ensemble des contraintes.

Soit n pistes qui sont à différents états actif ou inactif définissant une combinaison d'état, le choix de l'auditeur conduit à un changement d'état de la piste i (comprise dans les n pistes). Le moteur de résolution de contraintes vérifie que cette nouvelle combinaison avec ce nouvel état de la piste i est possible et respecte l'ensemble des contraintes. Dans l'affirmative, le changement d'état de la piste i est validé. Si cette combinaison n'est pas possible, deux solutions peuvent être envisagées.

La première solution consiste à informer que ce changement d'état n'est pas possible.

Selon une solution préférée, ce changement d'état est automatiquement validé, mais le moteur de résolution de contraintes détermine dans un laps de temps donné la combinaison possible intégrant ce changement d'état la plus proche de la combinaison précédente. Une première combinaison est dite la plus proche d'une seconde combinaison si le nombre de pistes à l'état actif de la première combinaison est le plus proche du nombre de pistes à l'état actif de la seconde combinaison. Lors de la phase d'écoute, le moteur de résolution de contraintes permet de mettre à jour les choix possibles après une sélection de l'auditeur. Ainsi, après avoir vérifié que le choix est possible, le moteur de résolution de contraintes coche les pistes qui sont imposées de part ce nouveau choix en raison des implications et rend impossible le choix d'éventuellement certaines pistes de part ce nouveau choix en raison des exclusions.

La structure du format de musique interactive selon l'invention est la suivante : La Table des Box

Le format de fichier IM AF contient plusieurs Box qui se basent sur le format de fichier ISO type concernant les médias. On décrit deux conteneurs de Box qui encapsulent les Box Groupes et les Box Contraintes :

'grco' : la Box Conteneur de Groupes ;

'cnco' : la Box Conteneur de Contraintes.

Syntaxes et Sémantiques des Box

Les box décrites par le format IM AF constituent un sous-ensemble de box définies par le format de fichier ISO type concernant les médias. Dans ce document, nous détaillons deux conteneurs de box.

La Box Conteneur de Groupes réunit des informations à propos de la composition des groupes. Les groupes permettent d'apporter une structure hiérarchique aux pistes d'un fichier au format IM AF. La Box Conteneur de Contraintes permet de rassembler les contraintes de sélection et de mixage appliquées sur les éléments (pistes et groupes) d'un fichier audio au format IM AF.

Box Conteneur de Groupes

Nom de la Box : 'grco' Conteneur : Movie Box ('moov') Obligatoire : Oui

Quantité : Exactement une

La Box conteneur de Groupe définit le nombre de groupes contenus dans un fichier. Chaque groupe étant représenté par une Box de Groupe. Ainsi, un fichier peut contenir zéro ou plusieurs Box Groupe (quantité définie par num groups).

S syntaxe aligned(8) class GroupsContainerBox extends Box( λ grco') { unsigned int(8) num_groups;

}

S sémantique num_groups - est un entier qui spécifie le nombre de groupes contenus dans un fichier.

Box Groupe

Nom de la Box : 'grup'

Conteneur : La Box Conteneur de Groupes ('grco') Obligatoire : Non Quantité : Zéro ou plus

La Box Groupe regroupe des informations spécifiques à un groupe particulier. Elle décrit la structure du groupe en établissant la liste des sous-éléments qui le compose. En ce sens, un groupe peut être composé de pistes et/ou de groupes.

S syntaxe aligned(8) class GroupBox extends FullBox ( λ grup' , version = 0, flags) { unsigned int(32) group_ID; unsigned int(16) num_elements; unsigned int(32) éléments ID[num éléments] ; unsigned int(8) group_activation_mode; string group_name; String group_description;

}

S sémantique version - est un entier qui décrit la version de la box. flags - est un entier binaire (sur 8 bits) ; les valeurs suivantes sont définies : - display_disable & edit_disable indiquent que les informations contenues dans la box ne seront pas affichées par le lecteur excepté group_name. L'utilisateur ne pourra pas les modifier. Pour cette option, la valeur du f lag est 0x01. display_enable & edit_disable indiquent que les informations contenues dans la box seront affichées par le lecteur. L'utilisateur ne pourra pas les modifier. Pour cette option, la valeur du f lag est 0x02.

display_enable & edit_enable indiquent que les informations contenues dans la box pourront être affichées par le lecteur et modifiées par l'utilisateur. Pour cette option, la valeur du f lag est 0x03.

group_iD - est un entier qui identifie de manière unique le groupe. num_elements - est un entier qui donne le nombre d'éléments contenus dans le groupe. elements_iD [num_elements ] - est un tableau. Chaque case du tableau contient un entier qui représente un identifiant décrivant un élément particulier du groupe. Ces éléments peuvent être des pistes et/ou des groupes. group_activation_mode - est un entier qui définit la façon dont les éléments d'un groupe sont activés lorsqu'on active le groupe.

Box Conteneur de Contraintes Nom de la Box : 'cnco'

Conteneur : Movie Box ('moov')

Obligatoire : Oui

Quantité : Exactement une

Le Box Conteneur de Contraintes contient des informations sur les contraintes appliquées aux éléments qui composent un fichier audio au format IM AF. On distingue deux grandes classes de contrainte : les contraintes de sélection et les contraintes de mixage. Ainsi, cette box donne le nombre de contraintes appartenant à chaque classe. En ce sens, elle pourra contenir zéro ou plusieurs Box Contrainte de Sélection et zéro ou plusieurs Box Contrainte de Mixage.

S syntaxe aligned(8) class ConstraintsContainerBox extends Box( λ cnco'){ unsigned int(16) num_Selection_Constraints; unsigned int(16) num_Mixing_Constraints;

S sémantique num_Selection_Constraints - est un entier qui spécifie le nombre de contraintes de sélection contenues dans un fichier. num_Mixing_Constraints - est un entier qui spécifie le nombre de contraintes de mixage contenues dans un fichier.

Box Contrainte de Sélection Nom de la Box : 'cnsc

Conteneur : Box Conteneur de Contraintes ('cnco') Obligatoire : Non Quantité : Zéro ou plus

La Box Contrainte de Sélection contient des informations propres à une contrainte de sélection particulière. Ces contraintes sont applicables sur les éléments qui composent un fichier audio au format IM AF. On en distingue quatre types qui sont : la contrainte min/max, la contrainte d'exclusion, la contrainte de forçage à l'état actif et la contrainte d'implication. Ainsi, le paramètre seiection_constraint_type permet de distinguer ces différents types. Chaque contrainte est identifiée à l'aide d'un identifiant unique (seiection_constraint_iD) et d'une description sommaire (seiection_constraint_description). La Box Contrainte de Sélection décrit donc les paramètres d'une contrainte de sélection particulière en fonction de son type.

S syntaxe aligned(8) class SelectionConstraintBox extends FullBox ( λ cnsc' , version = 0) { unsigned int(16) selection_constraint_ID; unsigned int(8) selection_constraint_type; unsigned int(16) num_elements; unsigned int(32) éléments ID[num éléments] ;

if (sélection constraint type==0) { // only MINMAX unsigned int(16) rain_num_elements ; unsigned int(16) max num éléments;

} else (selection_constraint_type==3) { // IMPLY unsigned int(16) num_key_elements; unsigned int(32) key éléments ID [num key éléments];

}

String sélection_constraint_description }

S sémantique version - est un entier qui décrit la version de la box. selection_constraint_iD - est un entier qui identifie de façon unique une contrainte de sélection. selection_constraint_type - est un entier qui identifie le type de la contrainte de sélection.

num_elements - est un entire utilise pour def iner le nombre d'éléments impliqués dans cette contrainte. element_iD [num_elements ] - est un tableau. Chaque case de ce tableau est un entier qui décrit un identifiant permettant de désigner les éléments impliqués dans cette contrainte de sélection. Ces éléments peuvent être des pistes et/ou des groupes. min_num_elements - est un entier utilisé uniquement par la contrainte min/max (c'est à dire quand selection_constraint_type=0). Ce paramètre permet de spécifier Ie nombre minimum d'éléments qui peuvent se trouver dans l'état actif simultanément. Ce

nombre est appliqué sur un ensemble d'éléments décrit et défini par les paramètres suivants : num_elements & element_ID. maχ_num_elements - est un entier utilisé uniquement par la contrainte min/max (c'est à dire quand selection_constraint_type=0). Ce paramètre permet de Spécifier le nombre maximum d'éléments qui peuvent se trouver dans l'état actif simultanément. Ce nombre est appliqué sur un ensemble d'éléments décrit et défini par les paramètres suivants : num_elements & element_iD. Il est important de noter que la relation suivante Sera toujours vérifiée : max_num_elements ≥ min_num_elements. num_key_elements - est un entier utilisé pour représenter le nombre d'éléments sur lesquels la contrainte est appliquée. Ce paramètre est utilisé seulement par la contrainte d'implication (c'est-à-dire quand selection_constraint_type=3). key_elements_lD [num_key_elements ] - est un tableau. Chaque case de ce tableau est un entier qui représente un identifiant permettant de désigner les éléments sur lesquels la contrainte est appliquée. Ces éléments peuvent être des pistes et/ou des groupes. Ce paramètre est utilisé uniquement par la contrainte d'implication (c'est-à-dire quand sélect ion_constraint_type=3).

Selection_constraint_description - est une chaîne de caractères (UTF-8) qui donne une description de la contrainte de sélection.

La Box Contrainte de Mixage

Nom de la Box : 'cnmx'

Conteneur : Box Conteneur de Contraintes ('cnco') Obligatoire : Non Quantité : Zéro ou plus

La Box Contrainte de Mixage contient les informations propres à une contrainte de mixage particulière appliquée aux éléments qui composent un fichier audio au format IM AF. On distingue quatre types de contrainte : la contrainte d'équivalence, la contrainte de supériorité, la contrainte d'infériorité ainsi que la contrainte min/max. Le paramètre mixing_constraint_type permet de distinguer les différentes types de contrainte. Chaque contrainte est identifiée par un nom (mixing constraint iD), une description sommaire (mix_constDescription) et un identifiant unique (mix_constiD). Une Box Contrainte de Mixage décrit donc les paramètres d'une contrainte de mixage particulière en fonction de son type.

S syntaxe aligned(8) class MixingConstraintBox extends FuilBox ( λ cnmx' , version 0) { unsigned int(16) mixing_constraint_ID; unsigned int(8) mixing constraint type; unsigned int(16) num_elements; unsigned int(32) éléments ID[num éléments]; if (mixing_constraint_type==3) { // only LIMITS unsigned int(8) min_volume; unsigned int(8) max volume; } else{ //EQUIV, UPPER or LOWER unsigned int(16) éléments reference-volume [num éléments];

unsigned int(8) volume_relation_mode; // Ratio or différence } if (mixing constraint type==l & mixing constraint type==2) {

// UPPER or LOWER unsigned int(16) num key éléments; unsigned int(32) key_elements_ID [num_key_elements] ; unsigned int(16) key éléments référence volume [num key élément];

} string mixing_constraint_Description

S sémantique version - est un entier qui décrit la version de la box. mixing_constraint_iD - est un entier qui permet d'identifier de manière unique une contrainte de mixage. mixing_constraint_type - est un entier qui permet d'identifier le type de la contrainte de mixage.

num_elements - est un entier utilise pour définir le nombre d'éléments impliqués dans cette contrainte. Element_iD [num_elements ] - est un tableau. Chaque case de ce tableau est un entier qui décrit un identifiant permettant de désigner les éléments impliqués dans cette contrainte de sélection. Ces éléments peuvent être des pistes et/ou des groupes. min volume - est un entier qui indique l'index correspondant au gain de volume minimum de

[élément. Ce paramètre est uniquement utilisé par la contrainte LIMITS. max volume - est un entier qui indique l'index correspondant au gain de volume maximum de l'élément. Ce paramètre est uniquement utilisé par la contrainte LIMITS. elements_reference_volume - est un entier qui indique l'index correspondant au gain de volume de référence de l'élément. volume_relation_mode - est un entier qui identifie le mode de relation d'équivalence ou de supériorité (infériorité): ratio ou différence.

num_key_elements - num_key_elements - est un entier utilisé pour représenter le nombre d'éléments sur lesquels la contrainte est appliquée. key_elements_lD [num_key_elements ] - est un tableau. Chaque case de ce tableau est un entier qui représente un identifiant permettant de désigner les éléments sur lesquels la contrainte est appliquée. Ces éléments peuvent être des pistes et/ou des groupes. key_elements_reference_volume [num_key_elements ] - est un entier qui indique l'index correspondant au gain de volume de référence de l'élément. mixing_constraint_Description - est une chaîne de caractères qui permet de donner une description de la contrainte de mixage.