Orchestration musicale : interface logicielle et algorithmes

Le problème de l’orchestration musicale consiste à essayer de reproduire un son cible (ou plus généralement une mélodie) par différents instruments d’un orchestre. Ce problème contient un aspect combinatoire important - il s’agit de choisir un ensemble d’instruments, et pour chaque instrument une note à jouer - et des approches algorithmiques ont été développées pour le résoudre, de manière à pouvoir proposer une ou des solution(s) aux compositeurs.

Pour cela, il a fallu d’abord constituer une base de données S des différents sons (notes-instruments) qui peuvent être joués par un orchestre. Etant donné un son cible t, le but est alors de sélectionner un sous-ensemble S’ de sons de la base S de manière à minimiser une distance d(S’,t) entre l'ensemble de sons qui sera joué par l'orchestre et le son cible t.

Un son (qu’il s’agisse d’un son de la base, ou du son cible), est représenté par un ensemble de descripteurs. Ces descripteurs permettent d’exprimer la distance d(S’,t) à minimiser. Des heuristiques ont été développées pour résoudre le problème ainsi que, plus récemment, des approches par programmation mathématique permettant de résoudre le problème à l’optimum.

Le but essentiel de ce projet est de développer une interface logicielle permettant d’utiliser différents algorithmes de résolution. L'interface devra permettre a minima : de choisir les données (un son cible, les instruments de l’orchestre), d'appliquer différentes ‘briques’ intermédiaires (filtrage des sons, séquençage dans le cas d’une mélodie), de choisir l’algorithme de résolution et ses différents paramètres, de générer la ou les solutions et les transformer en fichier son (.wav). On peut également imaginer plusieurs développements dans ce projet, tels que (1) la conception et l’implantation d’autres heuristiques de résolution (2) la possibilité de générer des jeux de tests pour évaluer la qualité des algorithmes.

Certains algorithmes sont (déjà) codés en Python et utilisent des solveurs de programmation mathématique, il est donc souhaitable d’avoir une connaissance minimale sur ces deux aspects. Les choix techniques sur le développement de l’interface seront laissés à l’appréciation du groupe d’étudiants.

Contacts:
- Bruno Escoffier: bruno.escoffier@lip6.fr
- Evripidis Bampis: Evripidis.Bampis@lip6.fr

Encadrant: 
Escoffier - Bampis
Nombre d'étudiants: 
3
Attribué: 
Yes
Deprecated: 
No

User login