Myriad Blog 1.3.0 Friday, Oct 24th, 2014 at 04:54pm 

Friday, Jan 16th, 2009 at 05:29pm
Harmony 9.? Etape future

 
Une idée, qui nous trotte dans la tête depuis un bon bout de temps, est remontée à la surface lorsque nous avons dû nous replonger dans le module de quantification des imports MIDI :
beaucoup de fichiers MIDI sont en fait un enregistrement du jeu d'un interprète, qui a joué sans tenir compte du métronome.
On obtient donc un fichier où les notes sont de longueur quelconque, et démarrent à peu près n'importe où, sans tenir aucun compte des positions des mesures ou des temps.
 
Il pourrait alors être intéressant d'analyser ces positions et longueurs de notes, et d'en déduire automatiquement un battement métronome (pouvant être irrégulier, au gré des accélérations et ralentissements de l'interprète) permettant de représenter au mieux la partition.
 
Les notes sur la partition seraient alors beaucoup mieux représentées, et une ligne contenant les variations de tempo permettrait d'obtenir, lorsqu'on rejouerait le morceau, un rendu identique à l'original.
 
Cette fonction existe probablement dans d'autres logiciels ou a même pu faire l'objet de logiciels indépendants. Nous n'avons pas encore effectué de recherche bibliographique à ce sujet, d'autant plus que nous ignorons totalement comment une telle fonction pourrait être nommée.
 
Quoi qu'il en soit (ou quoiqu'il en soit, choisissez l'orthographe qui vous convient le mieux), nous attendrons probablement la fin des projets en cours pour étudier cela. Nous commenceront, pour des raisons de commodités, à l'écrire en MyrScript, et si les résultats sont satisfaisants, nous l'intègrerons alors aux fonctions "en dur" d'Harmony Assistant.
by Olivier Guillion
Comments

Comment from Friday, Jan 16th, 2009 at 06:17pm
(No subject)
Une perspective des plus intéressante!!!    

Comment from Sylvain Machefert Friday, Jan 16th, 2009 at 11:37pm
ah oui !
Oh que oui ça serait intéressant !
ainsi je pourrais jouer une partition sur mon clavier MIDI, et la partition serait correcte, en cachant les tempo pour l'impression, et on a une belle partition interprétée humainement, le panard !

Comment from Thibault Le Meur Friday, Jan 16th, 2009 at 11:42pm
Excellente idée
Voici une excellente idée.
Un projet peut-être un peu délicat à implémenter (mais passionnant), et utile.
 
Bravo encore pour vos idées, votre travail et votre enthousiasme.
 

Comment from Tremolo Saturday, Jan 17th, 2009 at 07:19pm
Magnifique !!!
Superbe idée ...
J'ai hâte de voir..
Merci

Comment from Lutz Stahlhofen Saturday, Jan 17th, 2009 at 07:44pm
Excellent idea
For lousy piano players like me who can not keep a steady beat while playing this would help to keep the notes in the places where they supposed to be.

Comment from Jean-Armand Saturday, Jan 17th, 2009 at 11:14pm
(No subject)
J'en profite pour conseiller la lecture de "A generative theory of tonal music" de Fred Lerdahl et Ray Jackendoff. Dans son genre, c'est un des meilleurs livres de musicologie publiés. Quand on pense qu'il n'est pas traduit en français !
 
Un des thèmes qu'il aborde est : comment retrouver l'organisation rythmique d'un morceau (à partir de la seule écoute). Les règles que donnent les auteurs sont très formalisées, la pensée est clairement informatique.
 
Je ne sais pas si le livre vous servira directement, car, d'une part le problème que vous traitez est un peu plus simple, l'utilisateur ayant indiqué la signature temporelle de la mesure (4/4, 6/8...) ; et d'autre part le livre traite principalement du niveau d'organisation supérieur à la mesure, et introduit des notions (par exemple d'harmonie) qui dépassent le cadre de ce que vous voulez faire.
 
Toutefois ce livre est suffisamment intéressant et suffisamment orienté informatique pour valoir la peine d'être lu.
 
 
Voici quelques pistes. D'une certaine manière, le problème que vous voulez traiter est similaire à celui de la déformation de la feuille de papier, ou la déformation des lignes de la portée, que vous avez abordé dans la reconnaissance optique d'une partition. Ici il va s'agir de reconnaître les déformations du rythme.
 
Un autre point de vue consiste à assimiler cela à une trajectographie : on veut suivre le trajet du rythme, qui est régulier mais affecté de variations aléatoires. Habituellement on utilise un filtrage de Kalman pour cela.
 
En réception radio, on utilise une "phase-locked loop" pour asservir un récepteur aux variations de rythme du signal reçu. Toutefois ce sont des variations très lentes et très faibles...
 
Dans le même genre d'idées, il y a sur les lecteurs de CD un algorithme qui stabilise la lecture des trous et des bosses (des 0 et des 1). Bien entendu, s'il y a trop de 0 ou trop de 1 à la suite les uns des autres, l'algorithme se désynchroniserait. Mais je crois qu'il y a, dans l'encodage des CD, une règle pour éviter cela, du type "au bout de N zéros, mettre un 1".
 
Une façon pratique de traiter la chose peut être de "promener" le long du fichier MIDI un "tamis", constitué de trous espacés d'une double croche par exemple. Ce tamis a une longueur de l'ordre d'une mesure. On prend toutes les notes sous le tamis, et on compte la distance de chaque note au trou du tamis le plus proche. On additionne leurs carrés : cela donne la "distance" entre la musique et une position donnée du tamis. On cherche la position du tamis qui donne la distance la plus faible : cela permet de recaler le tempo. (Pour bien faire il faudrait affecter chaque trou du tamis d'un coefficient, minimum pour le premier temps de la mesure, puis qui irait en croissant : temps faibles, croches, doubles croches, triolets...).
 
Bon, bien entendu, le diable est dans les détails : ce qui va être difficile c'est que l'algorithme ne se perde pas lorsque la musique devient syncopée, ou qu'il y a un point d'orgue, ou une bizarrerie rythmique telle une hémiole.

Comment from Verpeaux J-Paul Saturday, Jan 17th, 2009 at 11:35pm
midi import
Bonjour
Je viens seulement de découvrir l'existence te la possibilité de faire des commentaires dans le blog, alors j'en profite pour fair une suggestion :
 
Votre idée est tres bonne, mais il faudraut la faire de la façon suivante :
1) traiter l'import et l'enregistrement temps réel Midi de manière rigoureuse, en ne modifiant absolument pas la durée exacte des notes.
2) considerer votre nouvelle fonction comme une "Quantification Intelligente" et parametrable que chacun serait libre d'utiliser à sa guise.
Jean-Paul


Most recent first
Oldest first

Top of page
Last update:  (c) Myriad 2013