• Aucun résultat trouvé

jMax : un environnement pour la réalisations d'applications musicales temps réel sur Linux

N/A
N/A
Protected

Academic year: 2021

Partager "jMax : un environnement pour la réalisations d'applications musicales temps réel sur Linux"

Copied!
8
0
0

Texte intégral

(1)

HAL Id: hal-03116895

https://hal.archives-ouvertes.fr/hal-03116895

Submitted on 20 Jan 2021

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Distributed under a Creative Commons Attribution| 4.0 International License

jMax : un environnement pour la réalisations d’applications musicales temps réel sur Linux

François Dechelle

To cite this version:

François Dechelle. jMax : un environnement pour la réalisations d’applications musicales temps réel sur Linux. Journées d’Informatique Musicale 2000, 2000, Bordeaux, France. 7 p. �hal-03116895�

(2)

musiales temps réel sur Linux

FrançoisDéhelle (dehelleiram.fr)

IRCAM,1plaeIgorStravinsky,75004Paris.

Résumé :jMaxestunenvironnement programmablepour laréalisation d'appli-

ations musiales et multimédia interatives. Ce logiiel est une nouvelle implé-

mentation de l'environnement Max déjà onnu sur laplateforme Maintosh. Un

brefhistorique desdiérentes versionsde Maxest donné.L'environnement jMax

est dérit, expliitant les hoix eetués pour obtenir une grande portabibilité.

Les spéiités de l'interfae graphique utilisateur de jMax sont présentées. La

versionLinuxdejMaxestdétaillée:intégrationdejMaxave lesdriversaudioet

MIDI Linux, omparaisonsde performanes entreles diérentes plateformes.

1 Introdution

jMax est une nouvelle implémentation de l'environnement Max qui a été largement

adoptépourlaréalisationd'appliations musialesinterativesmettant en÷uvrelesteh-

nologies informatiques. Remplaçant la "Station d'Informatique Musiale" de l'Iram par

une solution purement logiielle, jMaxfontionne surlesystème Linux.

2 Le langage Max

Le langage Max est souvent présenté omme un langage de programmation visuel :

l'interfae graphique, réutilisant la métaphoredu synthétiseur analogique modulaire, per-

met à l'utilisateur de onstruire une appliation sous forme de "path" par onnexion

de modules [10 , 19 ℄. Ces onnexions représentent des ommuniations de paramètres de

ontrle oud'éhantillons sonores, ave une sémantique d'envoide messages à lamanière

delangagesobjetsdutypeSmalltalk.Unmodulepeutêtreuneunitédetraitement(opéra-

teurarithmétique simpleou transformationomplexe du signal);il peutaussireprésenter

des données, par exemple une ligne à retard, ou enn être un module système d'entrées-

sortiesaudioouMIDI.Lesmodulespeuvent êtredesprimitives,appelées"objets",oubien

peuventeux-mêmesêtredespaths,donnantàunpathunestruturehiérarhique.Enn,

ertains modules "ontrleurs" ont un omportement graphique interatif et permettent

l'envoi de message depuis l'interfae graphique. La gure 1 donne un exemple de path

jMax.

Maxpeutêtrepris ommeun langagede programmationvisuel,etpeutàe titreêtre

rattahéàlafamilledeslangagesfontionnelsimpératifs[10 ℄,lesfontionsétantlesobjets

du path. Mais une autre aratéristique intéressante de Max, qui entre pour une part

essentielledanssonsuès,estqu'ilpeutaussiêtrevuparleprogrammeurdepathsomme

un générateur d'interfaes, à la manière des onstruteurs d'interfaes disponibles dans

beauoupd'environnementsgraphiques.Unpathesteneetladesriptiond'unalgorithme

de traitement,mais également une interfae graphiquede ontrle deet algorithme.

(3)

3 Un bref historique de Max

Max tire son origine de l'éditeur Pather érit par Miller Pukette en 1988 [16 ℄. Ce

logiiel, fontionnant surMaintosh etdédié au traitement de ontrle MIDI a été utilisé

pourlapremièrefois ensituationde onertpourlapièedePhilippeManoury"Pluton",

réalisée ave leproesseur4X [12 , 16 ,19℄.

Le Pather a ensuite été édé à la soiété amériaine Opode où, rérit par David

Ziarelli, il a donné un produit très populaire [11 ℄, introduisant de nombreuses amélio-

rationsdel'interfaegraphiqueutilisateurainsiqu'uneinterfaededéveloppementd'objets

externes qui permetd'étendre l'ensemble d'objets Maxprimitifs [21 ℄.

Le projet "Station d'Informatique Musiale" de l'Iram a démarré en 1989, visant à

remplaerleproesseur4X[13 ℄.Parmilesdéveloppementslogiielsdeeprojetguraitune

nouvelleversiondulogiiel"Pather",quiintégraitletraitementtempsréeldusignalaudio

dans le même paradigme de onnexion [17, 18 ℄. Cetteversion, distribuée ave lematériel

de la Station d'Informatique Musiale et onnue sous le nom de Max/ISPW, apportait

une nouveauté sous la forme d'une arhiteture à deux omposants logiiels, d'une part

l'interfae graphiqueutilisateurfontionnantsousl'environnement NeXTSTEP,etd'autre

partunexéutiftempsréelnomméeFTS [18 ℄,fontionnantsurlesartesadditionnelles de

lastation (artesbâtiesautour duproesseurInteli860).

Lanéessitéderemplaer lematérieldelaStationd'InformatiqueMusiale"aonduit

àladéisiondeproposerune solutionpurement logiielle,ettedéisionétant justiéepar

(4)

dans e but, l'interfae graphique utilisateur a été séparée du moteur d'exéution temps

réel,rendantainsiindépendantesleursévolutions.Cemoteurd'exéutionétaitunenouvelle

version de l'exéutif FTS de la Station d'Informatique Musiale et le nom de Max/FTS

a don été naturellement donné à ette version, distribuée pour stations Silion Graphis

[9, 6,7,3,4℄.

Le développement du logiiel PD [19 , 20 ℄ par Miller Pukette a débuté à la même

époque;herhantàremédieràertainesfaiblessesdeMaxdansledomainedelagestionde

struturesdedonnéesdynamiques,PDutilisaitdansebutlesprinipesdulogiielAnimal

[1℄développédansleadreduprojet"Stationd'InformatiqueMusiale"etintroduisaitune

interfae graphique portable baséesurl'environnement Tl/TK. En1997, David Ziarelli,

réutilisantle moduledetraitement audiode PD,distribuait lelogiielMSP("Max Signal

Proessing"), qui introduisait dans Max/Opode la synthèse et le traitement temps réel

du signal.

Le langage Java a donné la possibilité de réaliser des interfaes graphiques qui sont

réellement multi-plateformes. L'interfae graphique de Max/FTS a été réimplémentée en

Java etlenomde jMax(pour Java Max)a étédonné à ette nouvelle implémentation du

langage Max[14 , 3,4,5,8,2℄.

4 L'arhiteture de jMax

Comme indiqué préédemment, jMax réutilise l'arhiteture à deux omposants de

Max/FTS (et PD), arhiteture souvent dénommée "arhiteture lient/serveur" dans

d'autresdomainesdel'informatique.Cettearhiteturepermetdedéorrélerlesdéveloppe-

mentsdel'interfae graphiqueutilisateur (le"lient")etdumoteur d'exéutiontemps réel

(le"serveur"), orant donuneplusgrandegarantiedeportabilité.Ellepermetégalement

l'exéution des deux omposants sur des mahines diérentes; ei ore des possibilités

intéressantes pour la situation de onert l'interfae graphique peut s'exéuter sur un

ordinateur portable et leserveur surune mahinemahinemulti-proesseurs plus lourde.

Cettearhiteture rendennpossible l'exéutiondu moteurtemps réelsansinterfae gra-

phique, par exempleà l'intérieurd'un environnement àplug-in du typeVST.

La ommuniation entre les deux omposants s'établit via un protoole indépendant

dumatérieletpeututiliseruneonnexionréseau(soketTCP/IP ouUDP)ommeouhe

de transport[9 , 6,7 ℄.

5 Le serveur de traitement temps réel FTS

L'arhitetureduserveurdetraitementtempsréelFTSestdéritedans[6 ,3,5℄.Elleest

organiséeautourdel'interprèteurdulangageMaxetdumoteurd'exéutiondesopérations

detraitement designal.Unséqueneurgèrel'exéutiondesopérationsdeontrle,délen-

hées par des opérations d'entrées-sorties (MIDI ou signal), par des ationsde l'interfae

utilisateur ou par desprimitives temporelles de typealarme.

Le noyau de FTS utilise plusieurs threads an de tirer parti des mahines multi-

proesseurs modernes, qui sont pour la plupart des arhitetures à mémoire partagée et

ahe ohérent etsupportent laprogrammationauniveau thread.L'interfae deprogram-

(5)

L'arhiteture multi-thread est utiliséeen partiulier pour l'implémentation des aès

temps réel aux hiers de sons : la leture et l'ériture des hiers de sons s'exéutent

dansdesthreadsséparés, permettantainsisurdesmahines multi-proesseurs dedisposer

de plusieurs anaux de leture de hiers de sons tout en onservant la puissane d'un

proesseur dédiéeau traitement de signaletdeontrle.

Une autre utilisation de ette arhiteture est la possibilité d'avoir plusieurs threads

d'exéution du ontrle, es threads ayant despriorités diérentes. Dans ette ongura-

tion, des tâhes de ontrle lourdes peuvent s'eetuer de manière asynhrone dans des

threadsàbasseprioritésansinterrompreletraitementdesignalalloué àuneprioritésupé-

rieure, éliminant ainsilereoursàune augmentation delataille dutampon audioetdon

de lalatene.

La portabilité de FTS est déterminée par la séparation strite du ode dépendant du

proesseur et du système opératif (aès à la mémoire, aès à l'unité ottante) et par

l'introdution d'un oneptde devies expliitéi-dessous.

5.1 Les devies FTS

LeproblèmeessentieldeportabilitéposéparleserveurFTS estleodeliéauxentrées-

sortiesaudioetMIDI,quidépendnonseulementdusystèmeopératifmaisaussidel'inter-

faelogiielled'aèsaumatérieletquiestdonintrinsèquementnonportable.L'approhe

hoisie,inspiréeduoneptdedevieUnix,aétéd'établiruneinterfaedeprogrammation

générique qui enapsule les fontions d'entrées-sorties de façon indépendante du système

etdu matériel.

Une devie FTS [6℄ est une abstration supportant un petit nombre d'opérations

d'entrées-sortiesetdeontrle.Cetteinterfaeontientlesopérationsdéniesparlemodèle

Unix :open, loseetiotrlpour lamodiationdynamiquedesparamètres.Les

opérationsd'entrées-sorties sont toutefoisétendues par rapportàe modèle, fournissant à

la fois des opérations sur des aratères et des opérations sur des veteurs, es dernières

étant introduites pour gérer lestamponsd'éhantillons.

Cetteapprohe restreint le ode devantêtre rérit pour un portage àun petit nombre

de lignesdeode,typiquement del'ordrede laentaine,les fontionsdevant êtreréimplé-

mentées étant par ailleursomplètement spéiées.

Lesdevies fournissent également à l'utilisateur une grandeexibilité dans laon-

guration de l'environnement d'exéutiond'unpath:un pathne ontient quedesobjets

d'entrées-sortiesopérantsurdesdevies logiquesquinesontonnuesqueparnom,l'asso-

iationentrelenometledispositifphysiqued'entrées-sortiesétant réaliséeàl'extérieurdu

path. La ommuniation ave un ontrleur externe peut être rendue transparente pour

le programmeur de path, qu'elle s'eetue sur une ligne série, un port parallèle ou une

onnexion réseaupar soket.

6 L'interfae utilisateur de jMax

L'interfae utilisateur de jMax ore essentiellement les mêmes fontionnalités que les

autres délinaisons de Max :un éditeur de path pour la onstrution et le ontrle des

paths etunensembled'éditeursspéialiséspourlesobjetsquireprésentent desstrutures

(6)

partie du hoix de Java omme langage d'implémentation de l'interfae graphique, mais

également dehoix d'arhiteture qui ont été évoqués.

jMax fournit par ailleurs une fontionnalité nouvelle sous la forme d'un langage de

sript intégrédansl'interfae graphique.

6.1 Langage de sript

L'introdutiondansjMaxd'unlangagedesriptviseàdonneràl'utilisateurunlangage

textuelquifournit desprimitivesn'ayantpasd'équivalene graphiquesimple,par exemple

des opérations répétitives telle que la réation de bans d'opérateurs. L'utilisation d'un

langage de sript permet aussi d'intégrer dans la même représentation le méanisme de

onguration [3,8℄.

Le langage de sript atuellement utilisé est Tl [15 ℄, langage de sript simple ayant

une implémentation Java. Etant donné toutefois la faible intégration de Tl et de Java

d'une part, le manque de support de la version Java de Tl d'autre part, il a été déidé

d'abandonner Tlau protde Sheme, dialete du langageLisp.

La gure2 présentedeux exemplesd'utilisation de sripts Tldans jMax. Le premier

exemple est un extrait du hier de onguration propre à haque utilisateur, hier qui

esthargéaulanementde lasessionjMax.Leseondexempleestune fontionTlsimple

qui réeun ban d'objets dumême type.

# Fihier de onfiguration

# Mahine sur laquelle tourne le serveur

set jmaxHost "astor.iram.fr"

# Cette mahine est une SGI Origin

set jmaxHostType origin

when start {

jmaxSetSampleRate 44100 # 44.1 kHz

jmaxSetAudioBuffer 1024 # tampon d'E/S

openDefaultAudioIn adatIn # entrée: ADAT

openDefaultAudioOut adatOut # sortie: ADAT

openDefaultMidi midi2 # MIDI: port 2

}

## Cette fontion Tl rée un ban

## séried'objets de la lasse <lass>

pro bank { lass x y n} {

set prevObj [ObjNew $lass $x $y℄

for {set i 1} {$i < $n} {inr i 1} {

# Create objet

set obj [ObjNew $lass $x $y℄

# Connet to previous

onnet $prevObj 0 $obj 0

# Move y position

inr y [expr [ObjGetHeight $obj℄ + 7℄

}

}

# Exemple d'utilisation:

bank "voie~" 10 10 64 # Ban de 64 voix

Fig.2 Exemplesdesripts :onguration, réationd'un band'opérateurs

7 Plateformes supportées et distribution

jMaxestsupporté atuellement surles plateformessuivantes :

stations SilionGraphis fontionnant sousle systèmeIRIX

PCou Maintosh fontionnant sous lesystèmeLinux

La version Linux de jMaxutilise pour les entrées-sorties son et MIDI les drivers OSS

ou ALSA,suivant lehoix de ongurationeetué par l'utilisateur.

Desportagessont enours surles systèmesMa OSX et Windows.

(7)

Pour laomparaison desperformanes desdiérentes plateformes sur lesquellesjMax

estsupporté, une mesureutile peutêtre lenombre maximald'éhantillons produitpar un

path en un temps xé. Cette fréquene d'éhantillonnage maximale théorique peut être

obtenue en faisant fontionner lesystème hors synhronisation ave une horloge d'éhan-

tillonnage.

Le tableau 1 présente ette omparaison de performanes, les paths hoisis étant un

des paths d'exemple du Spatialisateur et lepath de lapièe En ého, pièe de Philippe

Manourypourvoixetéletronique,rééesurlaStationd'InformatiqueMusiale.Onnotera

l'exellente performanedelaversionLinuxqui,surune mahinedetrès basoût, fournit

une performanesupérieureaux stationsSilion Graphis.

Plateforme Paths

CPU MHz OS Spatialisateur (8-4r) En Eho

R10000 225 IRIX 6.5 156 61

Pentium-III 600 Linux 256 73

G3 400 Linux-PPC 195 71

Tab.1 Comparatif deperformanes

7.2 Distribution

jMax est distribué sous la Liene Publique Générale GNU depuis juillet 1999. Les

souresdejMaxpeuventêtreaédéesdepuislesitejMax:http ://www.iram.fr/jmax.

Référenes

[1℄ M. DeCeo and E. Lindemann. Animal - graphi data denitionand manipulation

inareal time environment. Computer Musi Journal, 15(3):78100,1991.

[2℄ F. Déhelle. jMax : un environnement de programmation pour l'interativité et le

tempsréel.InInterfaeshomme-mahineetréationmusiale,pages8594.HERMES

Siene,1999.

[3℄ F. Déhelle, R.Borghesi, M. De Ceo, E. Maggi, B.Rovan,and N. Shnell. jMax:

a new JAVA-based editing and ontrol systemfor real-time musial appliations. In

Proeedings of the 1998 International Computer Musi Conferene, San Franiso,

1998.International Computer MusiAssoiation.

[4℄ F. Déhelle, R. Borghesi, M. De Ceo, E. Maggi, B. Rovan, and N. Shnell. Latest

evolutions of the FTS real-time engine : typing, soping, threading, ompiling. In

Proeedings of the 1998 International Computer Musi Conferene, San Franiso,

1998.International Computer MusiAssoiation.

[5℄ F.Déhelle,R.Borghesi,M.DeCeo,E.Maggi,B.Rovan,andN.Shnell. jMax:an

environment for real-time musialappliations. Computer Musi Journal, 23(3) :50

58,1999.

(8)

Proeedings of the 1995 International Computer Musi Conferene, San Franiso,

1995.International Computer MusiAssoiation.

[7℄ F.Déhelle,M. DeCeo, E.Maggi, and N.Shnell. NewDSP appliations onFTS.

InProeedings of the 1996International ComputerMusi Conferene, SanFraniso,

1996.International Computer MusiAssoiation.

[8℄ F. Déhelle, M. De Ceo, E. Maggi, and N. Shnell. jMaxreent developments. In

Proeedings of the 1999 International Computer Musi Conferene, San Franiso,

1999.International Computer MusiAssoiation.

[9℄ F.Déhelle,M.DeCeo,M.Pukette,andD.Ziarelli.TheIramreal-timeplatform:

Evolutionandperspetives. InProeedingsofthe 1994InternationalComputerMusi

Conferene, San Franiso, 1994.International Computer MusiAssoiation.

[10℄ P. Desain and H. Honing. Putting MAX in perspetive. Computer Musi Journal,

17(2), 1993.

[11℄ C. Dobrian. Getting Started with Max, Max Referene Manual,and Max Manual Ad-

dendum 3.5. OpodeSystems, In.,Menlo Park,CA, 1995.

[12℄ G.DiGiugnoandJ.Kott.Présentationdusystème4Xproesseurnumériquedesignal

entempsréel.Rapport32/81,IRCAM,1,plaeStravinsky,75004,Paris,Frane,1981.

[13℄ E.Lindemann, F.Déhelle,M. Starkier,andB.Smith. ThearhitetureoftheIram

musialworkstation. Computer Musi Journal, 15(3):4150, 1991.

[14℄ E. Maggiand F.Déhelle. The evolutions of thegraphiediting environment for the

Irammusialworkstation. InProeedingsof the 1996InternationalComputer Musi

Conferene, San Franiso, 1996.International Computer MusiAssoiation.

[15℄ J.Ousterhout. Tl and the Tk Toolkit. Addison-Wesley., 1994.

[16℄ M. Pukette. Thepather. InProeedings of the 1988 InternationalComputer Musi

Conferene, San Franiso, 1988.International Computer MusiAssoiation.

[17℄ M.Pukette. Combining event andsignalproessingintheMAX graphialprogram-

mingenvironment. Computer Musi Journal, 15(3) :6877, 1991.

[18℄ M.Pukette. FTS:Areal-timemonitorformultiproessormusisynthesis. Computer

Musi Journal, 15(3):5868,1991.

[19℄ M. Pukette. Pure Data. In Proeedings of the 1996 International Computer Musi

Conferene, San Franiso, 1996.International Computer MusiAssoiation.

[20℄ M.Pukette.Pure Data:anotherintegrated omputermusienvironment. InProee-

dingsof the Seond Interollege Computer Musi Conerts, Tahikawa,Japan, 1996.

[21℄ M.PuketteandD.Ziarelli. MAXDevelopmentPakageManual. Cyling'74,Menlo

Park,CA, 1991.

Références

Documents relatifs

Nous présentons dans cet article trois effets : un écho granulaire adaptatif, un ralenti/accéléré temporel sélectif et une robotisation adaptative, les trois étant implémentés

→ Validation des informations : l'administrateur valide en 1 clic les informations pertinentes pour les garder dans son dossier. L’administrateur peut valider plusieurs

Alain Connes : Avec l’expérience, j’ai mis au point une méthode pour ne pas travailler dans le vide, et éviter que la mémoire de moments de recherche me trahisse : mes

1MaxVertices Nombre maximum de vertices utilisé pour la création d’une section du premier niveau de branches.. 2MaxVertices Nombre maximum de vertices utilisé pour

• Round Robin (tourniquet) : lorsqu'une tâche sous ordonnancement « Round Robin » est activée, on lui accorde un délai au bout duquel elle sera préemptée pour laisser passer

Pour ces situations, on préférera un ordonnancement « Round Robin », où une tâche peut s'exécuter pendant une tranche de temps au bout de laquelle elle est préemptée et placée

● Utilisation de 2 sondes linéaires complémentaires d'une séquence cible - Une sonde marquée en 3' par un marqueur fluorescent, qui émet une fluorescence verte. - Une sonde

Les boucles ou les collisions survenant sur le côté éloigné d'un traducteur ou mixeur ne peuvent pas être détectés en utilisant l'adresse de transport de source si