settings.tex
Transcription
settings.tex
settings.tex 1 Cahier des charges Brinas Julien Caruel Cedric Rhita Mahrouch Antoine Clouet 23 novembre 2001 2 Table des matières Préambule 4 1 Présentation générale du projet 5 1.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Principe du logiciel . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Pourquoi un tel logiciel ? . . . . . . . . . . . . . . . . . . . . . 5 2 3 Présentation du groupe de la DJTeam .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1 Julien Brinas 2.2 Rhita Mahrouch . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Cédric Caruel . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4 Antoine Clouet . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.5 Objectif du groupe . . . . . . . . . . . . . . . . . . . . . . . . 6 Nos choix 6 8 3.1 Le systeme d'exploitation 3.2 Le compilateur . . . . . . . . . . . . . . . . . . . . 8 . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4 Description du logiciel point de vue utilisateur 10 5 Description du logiciel point de vue technique 11 6 Organisation du groupe 13 7 6.1 Répartition globale des tâches . . . . . . . . . . . . . . . . . . 13 6.2 Tableau de la répartition des taches . . . . . . . . . . . . . . . 13 6.3 Organisation du travail . . . . . . . . . . . . . . . . . . . . . . 14 Le budget 16 Conclusion 18 3 Préambule La DjTeam est heureuse de vous présenter le projet Mixator. Qui n'a jamais voulut s'improviser DJ du jour au lendemain ? Faire bouger les foules et attirer la gente féminine à l'aide d'un bouton et de deux platines : voilà le but du DJ (hum.. enn presque..) . C'est aussi l'objectif de la DjTeam, le problème c'est qu'aucun d'entre nous ne sait mixer et n'a le courage d'apprendre. De plus il nous est impossible de payer simultanément une école d'informatique et la panoplie du parfait petit DJ. Nous avons donc décidé de créer un logiciel de mixage audio si performant que n'importe quel attardé ou débutant de la platine pourrait se débrouiller. Voilà comment le projet Mixator a vu le jour. Le logiciel Mixator aura pour particularité de mixer soit des chiers au format WAV soit au format MP3. Ainsi il sera possible de lancer un mix à n'importe quel moment et de passer d'une musique à une autre sans que l'auditoire ne s'en rende compte. Mixator devra aussi gérer les playlists et pouvoir enchaîner les mix de manière autonome. Aussi, Mixator remplacera votre 'Winamp' poussiéreux. Vous pourrez ainsi enchaîner vos soirées comme des Dieux, ou enregistrer vos mix comme dans un studio New-yorkais et devenir le nouveau Bob Sinclar (ou DJ Krisboul ) des boites de nuit parisiennes. Mixator devra s'adapter à tout style de musique, néanmoins il sera optimisé pour les musiques électroniques. Mais rien ne vous empêchera de mixer du Eddy Michel avec du Brassens, c'est comme à Loft Story : C'est vous qui décidez !. Pour que Mixator voit le jour, dites RESTE. Bonne lecture. 4 1 Présentation générale du pro jet 1.1 Présentation Mixator est un logiciel dont le but principal est de mixer des sons, en wav ou mp3. Il sura d'appuyer sur le bouton mixator-magic puis de déplacer le cross-fader pour aller d'une musique a l'autre. Les quelques eets de son permettrons d'apporter sa touche personnelle a la musique. Il y aura également une playlist, ce qui est très pratique si l'on veut utiliser mixator juste comme lecteur mp3, et l'option mixator-auto permettra de faire une transition entre les morceaux de musique de façon très harmonieuse. 1.2 Principe du logiciel Mixator est un logiciel de mixage audio. Le but de Mixator est de faciliter le mixage de deux musiques. Il y aura deux moyens de mixer deux musiques ensembles : manuellement ou automatiquement avec les boutons mixatormagic et mixator-auto. Le bouton mixator-magic calera les deux morceaux ensemble, et l'utilisateur pourra passer d'une musique à l'autre quand il voudra, alors que le bonton mixator-auto fera la transition entre deux morceaux avant la n du premier pour enchainer de deuxième. Ce dernier bouton aura une utilité majeure grâce a la playlist. 1.3 Pourquoi un tel logiciel ? Pourquoi un logiciel de mixage de musique ? Car un logiciel qui mixe tout seul les sons, est beaucoup plus pratique que de passer son temps devant ses platines de vinyle pour faire les mix soit même .... De plus, nous sommes tous les quatres adeptes du travail en musique, et tous ceux qui aiment travailler en musique savent le sentiment que l'on peut éprouver lorsqu'un morceau s'arrête, laisse un gros blanc, et enchaine le suivant tout d'un coup... Notre logiciel permettra donc de pouvoir proter au maximum de nos playlists et de travailler un peu, même en écoutant de la musique. 5 2 Présentation du groupe de la DJTeam .. 2.1 Julien Brinas A fait partie du projet Epibanana l'année dernière, après avoir découvert le pascal, il s'apprête à découvrir le C ... Il vient toujours de la campagne au milieu des champs (dans le Loir-et-Cher), et la vie a Paris lui convient très bien, même si EPITA ne laisse pas beaucoup de temps pour proter complètement de la vie parisienne ... 2.2 Rhita Mahrouch C'est la touche féminine du groupe, après avoir participée au projet Epichtrompf , nous sommes heureux de l'accueillir au sein de la DjTeam. Passionnée de musique, le projet Mixator l'a intéressé . Elle nous vient du Maroc, et a fait le trajet uniquement pour participer à notre projet donc pas de problème, on a conance en elle ! Que demander de mieux pour Mixator ? 2.3 Cédric Caruel C'est le doyen de la DjTeam, âgé de 22 ans, il reste néanmoins assez vigoureux pour ce consacrer entièrement au projet Mixator. Le gros changement pour cette année, c'est qu'il ne sera pas tous seul pour faire le projet, comme Dancer 2005 (en tout cas il l'espère). Entouré d'une telle équipe, sa motivation est maximale pour concrétiser le projet Mixator. 2.4 Antoine Clouet Il vient de Normandie ! Le pays des tartes aux pommes, de la pluie, du cidre et de "la goutte"... L'année dernière, en Sup A2 à EPITA, membre du Groupe VAL, il a participé au projet E's'PIT-ball IV2. Le projet Mixator le motive beaucoup car il apprécie de pouvoir écouter de la musique de qualité, tout en ayant une main mise dessus, notamment pour le mixage, et les réglages. De plus, il n'a jamais trouvé un logiciel du genre de Mixator correspondant à ses attentes. 2.5 Objectif du groupe L'objectif du groupe de la DJTeam est de réussir à réaliser un logiciel respectable et qui puisse nous servir au quotidien après la spé. Nous pensons réellement que si Mixator est réalisé comme nous espérons pouvoir le réaliser, 6 alors il sera d'une réelle utilité pour de nombreux étudiants qui aiment la musique, et ne sont pas pour autant de grands DJ . 7 3 Nos choix 3.1 Le systeme d'exploitation Nous avons longuement rééchi et discuté sur le système d'exploitation sur lequel nous développerons notre projet. Nous avons pesé le pour et le contre pour chacun d'eux : Unix/Linux : cela nous apporterait beaucoup de travailler sur ces plates- formes, que nous ne connaissons pas beaucoup (hormis les 4 commandes principales pour se logger et lire ses mails). Nous aurions une avance pour l'année prochaine à développer sur ces systèmes d'exploitation, tout en apprenant comment les utiliser et surtout leur structure interne, d'autant plus que les logiciels exploitants le son sous Unix ne sont pas nombreux. Mais nous aurions ainsi eu une très longue période d'apprentissage, et le risque de tomber sur un os ! Sur ce système, il nous faudra gérer nous même la carte son et les périphériques intervenants et coder entièrement l'interface graphique. Faut-il prendre le risque, en commençant la réalisation de projet par la prise en main du système d'exploitation lui-même ? Windows : nous connaissons bien ce système d'exploitation et le dé- veloppement d'applications multimédias y est assez facile et d'autant plus intéressant qu'elles peuvent toucher tout le monde. La distributivité de notre projet serait ainsi une satisfaction. De plus, durant les trois prochaines années, nous travaillerons sous Unix, alors pourquoi ne pas continuer à se faire plaisir avec nos vielles apparitions impromptues d'écrans bleus ? De plus nous pouvons exploiter les performances de Direct Sound pour la gestion de la carte son ainsi que d'autres modules nous permettant de nous consacrer sur notre projet. Après une longue réexion, notre choix s'est porté sur Windows, mais après une remise en cause, notre choix s'est porté sur Linux, pour les raisons énoncées ci-dessus et le fait qu'il nous semble indispensable de connaître ce système pour l'année prochaine. Sa méconnaissance risque de nous poser quelques problèmes, mais il n'y a aucun victoire à vaincre sans se battre (Le cid). Nous passerons sûrement beaucoup de temps, mais nous pensons que le jeu en vaut la chandelle même si les espérances de qualité peuvent être meilleures sous Windows. Nous travaillerons tous sur Mandrake, qui est très couramment utilisée et que nous installerons tous pour la réalisation du projet, sachant que l'ins- 8 tallation, nous devons déjà réussir à la faire ! 3.2 Le compilateur Concernant le compilateur, le choix a quant à lui été très rapide. Mais le pour et le contre ont tout de même été pesés. Nous utiliserons GCC, le compilateur le plus couramment utilisé sous Linux. Pour l'interface graphique, nous utiliserons les librairies GTK, qui a pour avantages d'être totalement libre de droit, et du fait totalement exploitable, mais surtout le fait qu'il est très courament utilisé et est aujourd'hui sur toutes les distributions Linux en standard, ce qui accroit la compatibilité, ou tout simplement simplie l'installation. 9 4 Description du logiciel point de vue utilisateur Lorsque l'utilisateur lance Mixator, une fenêtre apparaît avec, bien dis- tincts, 2 lecteurs de sons, et entre les deux, un cross fader. Ce Cross fader nous permettra de switcher entre les deux lecteurs. Près de chaque lecteur, il y aura un bouton mixator-magic qui permettra de caler la musique du lecteur proche du bouton Mixator-magic par rapport à l'autre musique. Pour mixer deux musiques, l'utilisateur n'aura qu'à appuyer sur l'un des deux bontons mixator-magic puis déplacer le cross-fader. Les musiques étant calées selon leur rythmiques, elles se superposeront correctement. Pour rendre Mixator un logiciel utilisable également comme un lecteur de base, il pourra lire des wav et mp3, et bien sur, il les mixera sans problème. Une playlist sera également disponible, et l'utilisateur pourra cocher mixator-auto si il le souhaite. Ce bouton permettra de mixer les musiques de la playlist ensemble. Juste avant la n de chaque morceau de musique, Mixator lancera le morceau d'après dans la playlist en mixant les deux mu- siques pour que la transition se fasse ne douceur. Au dessus de tout cela, les courbes de fréquence des musiques seront achées en temps réel de deux couleurs diérentes. Cela permettra a l'utilisateur d'avoir une vision du travail eectué par Mixator 10 5 Description du logiciel point de vue technique Nous pouvons partager le projet en plusieurs parties : Tout d'abord, nous pouvons considérer les deux lecteurs mp3 comme les piliers du projet. Pour les avoir, il faudra pouvoir gérer leur décompréssion en temps réel, sachant que le plus dur de ce principe est de gérer les ressources : il ne faut pas remplir le disque de données, et supprimer celles inutiles au moment où il faut. De plus, il faut que nous obtenions des WAV, pour pouvoir travailler dessus, ce qui nous oblige à recoder la décompression, selon les critères que nous imposerons pour le bon fonctionnement du logiciel. Il faut aussi pouvoir gérer les wav en temps réel pour jouer sur la vitesse et acher la courbe de fréquence etc.. Bref, pour le moment, nous ne savons pas exactement quels seront nos problèmes et quelles parties seront plus simples. La première soutenance sera l'objet de nombreuses recherches, et tout devrait être plus clair a ce moment. Sous Linux, la partie interface graphique est une grosse partie du projet. Elle nécessitera beaucoup d'apprentissage et d'approfondissements pour permettre le résultat que nous espérons. Surtout pour la création de l'oscilloscope. Ensuite, le principal problème que nous devrions rencontrer, est l'analyse du signal. C'est le vrai but et l'originalité du projet. Cela demandera beaucoup de recherche avant de pouvoir commencer à coder et aboutir à un résultat satisfaisant. Comment utiliser la courbe de fréquence du son lu pour le modier par rapport au deuxième son, et les caler de manière à avoir une homogénéité ? Nous devrons certainement utiliser des ltres pour récupérer les pics de fréquence, et caler les musiques selon ces pics. Mais un probleme se posera pour les musiques plus douces sans boum-boum typique de la techno ... Il nous faudra aussi apprendre à gérer les chiers sous Linux et apprendre les possibilités et impossibilités (selon les droits etc..) pour pouvoir gérer la playlist, et, ne serait-ce que pour sélectionner le MP3 à lire. Nous avons déjà eectué quelques recherches dans des livres et sur internet pour étudier la faisabilité du projet, et savoir ce que nous devrions aronter. Nous pouvons déjà situer quelques dicultés : Apprentissage de l'environnement Linux et de la programmation sur cette plate-forme Extraction de la courbe de son Analyse du signal (de la courbe) Modication du chier son 11 Décompression des MP3 Gestion du mixage Optimisation de la gestion des ressources Gestion et exploitation des périphériques et modules sous Linux Malgré l'utilisation de Linux, nous essaierons de faire une interface graphique la plus attractive et agréable possible. Le but étant aussi d'avoir un logiciel très fonctionnel et qui permet de s'improviser DJ dès son installation sans passer trois nuits blanches pour apprendre à passer d'une musique à l'autre. 12 6 Organisation du groupe 6.1 Répartition globale des tâches Cédric : ménage, boue et accessoirement chef de proj. Rhita : analyse du signal, interface graphique, mixage, en bref le proj et surtout recrutement de l'assistance féminine. Antoine : front page'age du site web + préparation des soirées en boîtes. Julien : analyse du programme TV et des news du BDE. Plus sérieusement, après ce petit relâchement, nous avons décidé d'attribuer à chacun une spécialité, sachant que notre but reste tout de même d'apprendre des choses et de toucher à tout. Chacun travaillera un minimum sur les spécialités des autres pour notre apprentissage personnel, et ne serait-ce que par obligation : comment acher une courbe extraite si on ne connaît rien à l'interface graphique ? Les spécialités de chacun sous récapitulées dans le tableau de répartition) La répartition des tâches suit : 6.2 Tableau de la répartition des taches 13 Rhita Julien Première Interface graphi- soutenance que : GTK Recherche sur Cédric Antoine Lecteur de Wave. Recherche sur l'algorithme de la compression du tion du son sous mp3. Recherche programma- Linux. sur le streaming. Recherche l'analyse sur du signal Deuxième Interface de base soutenance Mixator' ' Lecteur de mp3 Oscilloscope Lecture sons de deux simultané- ment Calculateur de Recherche bpm moyen sur de le mixer deux sons. Troisième Création soutenance playlist de la Bouton mixator- Création magic Bouton mixator- du Création d'un Cross-Fader magic Création du Gestion bouton Mixator- des lumes sonores auto Balance Soutenance Débuggage Débuggage Débuggage nale A cote de cela, tout au long de l'année, nous créerons et mettrons a jour le site et l'aide du logiciel. 6.3 Organisation du travail Notre but est cette année de faire un travail d'équipe ecace et le plus optimisé possible. En tenant compte de notre expérience de l'année dernière, plus ou moins bénéque sur certains points et pour chacun de nous. Organisation des chiers Par évidence, l'organisation des chiers est dénie de manière initiale, mais pourra être modiée selon les besoins au cours de l'évolution du projet. Nous pensons avoir notre chier principal auquel viennent se greer les autres chiers, contenants pour certains des fonctions de fonctionnement 'général' et aussi les chiers contenants les 'modules spéciques', sachant que ceux-ci peuvent aussi avoir des chiers leur étant propres. Pour dire simplement, nous pouvons parler d'une sorte de hiérarchie des chiers, qui est fonction, pour chaque chier de sa spécicité. 14 Débuggage vo- Nous organiserons les chiers et leur extensions avec un maximum de règles que nous dénirons à l'avance, et ceci dans le but d'éviter les éventuelles pertes de temps. Dans ce même soucis de perte de temps, les variables et les fonctions suivront certaines conventions en fonction de la spécicité qu'elles ont. Ceci peut paraître simple à un programmeur conrmé, et il nous paraît un peu idée de l'écrire et de faire un shéma, mais il faut bien montrer la diérence de début de projet avec l'année dernière. Il va de soit, pour continuer dans cette lignée, que le code de porc est proscrit. De toute manière, notre projet n'est pas réalisable sans un minimum de rigueur, car la moindre négligence de notre part peut nous faire perdre des ressources et ainsi compromettre le bon fonctionnement de Mixator. En plus d'éviter de perdre du temps, cela sera bénéque pour tous : le travail en équipe où chaque chose est à sa place et est reconnaissable au premier coup d'÷il. Cela permettra de n'avoir aucun problème d'échange de code, et de reprise de code par un autre, les commentaires étant susants. Etant donné que nous travaillons sous Linux, il faudra nous familiariser avec diérentes règles imposées par le système. Mais bien entendu, nous suivrons tout de même les quelques conseils de nos profs de C. 15 7 Le budget An de réaliser le projet Mixator nous serons équipés de quatre PC et d'un portable. Conguration prix Intel Celeron 1 GHz GeForce II 128 MHz Rhita 128 DDRam 1512.18 Euros SoudBlaster Live 1024 Carte Réseau AMD Athlon 600 Mhz Elsa Riva TNT2 Erazor Cédric 256 SDRam 2021.06 Euros SoudBlaster Live 1024 Carte Réseau AMD Athlon 900 Mhz GeForce II 128 MHz Antoine 128 SDRam 2135.13 Euros SoudBlaster Live 1024 Carte Réseau Intel Pentium III 500 GHz NVidia Riva 16 MHz Julien 196 DDRam 2013.54 Euros SoudBlaster Live 1024 Carte Réseau Julien Portable Logiciels en 4 exem- Intel Pentium III 800 Mhz 2430 Euros Distribution Linux 8 Euros plaires Compilateur Une année a EPITA .... 5384 * 4 = 21538 Euros .. Nous additionnons à notre budget environ 20 Kg de Guronsant et une bonne dose de stress, sans oublier les 300 Mars, Twix & Co total : 31658.37 Euros ! N'ayant aucune entrée d'argent, ni le temps de bosser pour en gagner, il ne nous reste que la possibilité de pirater les serveurs de la Banque de France, mais comme nous sommes honnêtes ( ;-) et surtout que nous ne sommes pas 16 assez qualiés ) et que nous n'avons pas le temps (Boulot et Fiesta oblige) de bosser. Nous avons donc décidé de signer des reconnaissances de dettes au nom de Krisboul Bureau du Boss Epita - Le K-B. Et si c'est refusé, dommage mais nous ne sommes pas en tord : après tout c'est son numéro de CB ! 17 Conclusion A l'heure ou nous écrivons ce cahier des charges, nous ne maitrisons en aucun cas notre sujet, ni surtout le système d'exploitation, et le planning que nous venons de faire est le fruit de tres nombreuses recherches durant ces dernières semaines. Notre objectif est de pouvoir présenter à la dernière soutenance un produit ni et respectant notre cahier des charges. Nous pensons que ce projet est possible et nous désirons insister sur le travail de groupe : nous soutenir, nous harmoniser et xer les règles est quelque chose qui a pu, avec l'inexpérience nous faire défaut l'année dernière, mais cette année, nous partons motivés et surtout... du bon pied. 18