10.07.2015 Views

RAPPORT D'ACTIVITÉ 2003 - WWW Ircam

RAPPORT D'ACTIVITÉ 2003 - WWW Ircam

RAPPORT D'ACTIVITÉ 2003 - WWW Ircam

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>RAPPORT</strong> DETAILLERECHERCHE ET DEVELOPPEMENTREPRESENTATIONS MUSICALES4.4.3 Services MIDI sous OpenMusicLes développements d'outils MIDI pour OpenMusic ont pourobjectif d'améliorer l'utilisation et l'exploitation duprotocole MIDI à des fins analytiques ou compositionnelles.MIDI est un standard essentiel pour le codage, stockage, ou latransmission de données musicales. Parmi les recherches enanalyse musicale, nombreux sont les travaux qui utilisent pourentrée des fichiers MIDI, en particulier sur OpenMusic dansles recherches menées (entre autres) par l'équipeReprésentations Musicales (Kant, MusicMap, Zn, Kanthus, Lz,etc.) Dans OpenMusic, le protocole MIDI est utilisé pour lerendu musical des structures manipulées (chords, voices, poly,etc.) Le fonctionnement est basé sur la librairie MidiShare,développée par le Grame. Cependant les fonctionnalités dehaut-niveau, accessible aux utilisateurs de OpenMusic, étaientjusqu'ici assez primitives.Les développements des nouvelles classes et fonctions MIDIsont articulés autour d'une structure de description de basereprésentant un événement MIDI, et concrétisés par la classeMidiEvent. Les paramètres (slots) de cette classe sont lesinformations nécessaires à la construction du message MIDIcorrespondant. Des "boîtes-menus" ont été créées pourpermettre de paramétrer ces slots (ainsi que ceux des autresclasses et les fonctions MIDI), en s'appuyant sur lesspécifications General MIDI.A partir de cette structure, nous considérons les autresclasses MIDI comme des conteneurs MIDI pouvant être traduitssous forme d'une liste d'événements MIDI. De telles classespourront dès lors être "jouées" (envoi de la séquence MIDI àun instrument MIDI), ou placées dans des maquettes. De cepoint de vue, nous pouvons également considérer d'autresobjets musicaux de OpenMusic (chord-seq, voice, ...) comme deconteneurs MIDI puisqu'ils peuvent eux aussi être traduit enMidEvents (avec parfois une perte d'information, notamment auniveau de la quantification rythmique pour les voices). Cetteconversion systématique des objets en séquence MIDI faciliteraet généralisera le stockage sous forme de fichier MIDI. Unefonction générique get-midievents permet cette conversion d'unobjet quelconque vers une liste de midievents. Sur cettefonction peut être greffé un test, sous forme de lambdafonction, et permettant un filtrage des événements MIDIextraits. Des filtres élémentaires (canaux midi, dates, etc.)sont également fournis dans la bibliothèque de fonctions deOpenMusic.La classe EventMidi-seq, modélisant une séquence d'événementsMIDI, se base sur le fonctionnement du chord-seq de OpenMusic: ses entrées sont les listes des entrées correspondantes desévénements qu'elle représente. De cette manière, cette classeconstitue une structure similaire à un fichier midi, mais avecla propriété d'être plus facilement manipulable et modifiable.Elle peut, en particulier, être créée à partir d'une listed'événements, qui aurait été extraite (et éventuellementfiltrée) à partir d'autres objets.La classe MidiControl constitue un cas plus particulier deséquence d'événements MIDI, représentant l'évolution d'uncontrôleur continu (pitch bend, volume, panoramique, effets,etc.) Cette classe est donc à mi-chemin entre la bpf, dontelle hérite en particulier de l'éditeur et du mode de- 114 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!