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