Travail Pratique 3 (TP3)

Le thème de ce TP est la musique. Vous pourrez choisir entre trois projets possibles. Quelque soit votre choix, vous aurez à réaliser un certain nombre de modifications ou de fonctionalités, valant un certain nombre de points, selon la taille de votre équipe.

Équipe de 1 personne: vos modifications ou fonctionalités doivent totaliser 4 points
Équipe de 2 personnes: 6 points
Équipe de 3 personnes: 8 points
Équipe de 4 personnes: 10 points

Votre projet sera évalué lors d'une démonstration devant le chargé de laboratoire. Votre code source ne sera pas évalué, mais sera à remettre aussi.

Vous aurez aussi à présenter votre projet en cours, lors d'une présentation d'un maximum de 4*N minutes, N étant le nombre de membres dans votre équipe. Pendant votre présentation, votre projet ne sera peut-être pas encore fini, alors vous pourrez simplement parler de ce que vous avez fait à date et ce que vous planifiez faire.


Projet 1: visualiser les relations d'influences entre des musiciens

Vous devez visualiser le réseau de liens entre les musiciens du jeu de données suivant:
http://www.michaelmcguffin.com/tmp/allmusic-data/allmusic-data-csvTables.zip
(identifiant: louisxiv , mot de passe: soleil )

Le jeu de données est sous forme de tableaux CSV (comma-separated values). Vous pourrez utiliser la librarie de votre choix pour lire les données, par exemple,
http://opencsv.sourceforge.net/

Pour visualiser le réseau, on vous conseille d'utiliser le logiciel suivant comme point de départ:
http://profs.etsmtl.ca/mmcguffin/code/#SimpleNetworkVisualizer

Si vous voulez, vous pourrez écrire votre propre logiciel de visualisation de réseau, dans le langage de programmation de votre choix, pour visualiser le jeu de données. Mais il faut demander notre approbation avant.

Dans le jeu de données, il y a plus de 600 artistes, 193 "styles" (ou "marchés"), 13 styles principaux ou genres ("major markets"), et plus de 3000 liens d'influence entre les artistes. Le jeu de données contient aussi beaucoup d'informations supplémentaires qui vous serviront pas pour bâtir le réseau de base, telles les années pendant lesquelles chaque artiste était actif, etc.

Notez aussi que le jeu de données contient des erreurs et des parties manquantes (par exemple, des liens vers des artistes qui ne sont pas définis), alors votre code va devoir être assez robuste pour seulement tirer les informations cohérentes et bien sauter les données qui ne sont pas complètes.

Finalement, le jeu de données est CONFIDENTIEL et ne dois pas être distribué en dehors des élèves du cours.

Exemples de travaux antérieurs: http://www.youtube.com/watch?v=6yH9ifBvK6o#t=198

Matière de cours utile: http://www.michaelmcguffin.com/ets/diapos/ETS-mcguffin-visualisation-partie4-graphes.pptx

Modifications et fonctionnalités à réaliser:


Projet 2: modifier un logiciel interactif permettant de jouer de la musique

Modifiez ou créer un logiciel permettant d'écrire des notes de musique et de les jouer. On vous propose SimplePianoRoll.zip comme point de départ, mais vous pouvez aussi créer votre propre logiciel, dans le langage de programmation de votre choix, mais il faut demander notre approbation avant.

Quelques remarques concernant SimplePianoRoll:

Modifications et fonctionnalités à réaliser:


Projet 3: créer une interface multitactile avec un ou plusieurs instruments de musique

Créer un logiciel multitactile permettant de jouer de la musique. Vous pouvez réutilisez le cadriciel Java multitactile que vous avez déjà utilisé dans le cours. Communiquez avec le chargé de laboratoire pour réserver des sessions au laboratoire avec les écrans multitactiles.

Exemples de travaux antérieurs: http://www.youtube.com/watch?v=6yH9ifBvK6o

Fonctionnalités à réaliser:



Informations utiles pour les projets 2 et 3

On vous conseille de générer les notes de musique en utilisant javax.sound.midi.Synthesizer. Comme exemple simple, téléchargez le fichier SynthesizerTest.java et compilez et exécutez le pour voir comment faire jouer des notes.

Lorsqu'on utilise javax.sound.midi.Synthesizer pour jouer des notes, on identifie les notes par un "MIDI note number", qui varie de 0 à 127. Le tableau ci-dessous fait la correspondence entre ce "MIDI note number" et les noms habituels des notes.

MIDI_note_number  Nom anglais  Nom francais           Remarques
----------------  -----------  ------------           --------------------------
 21               A0           la                     touche la plus basse sur un piano de 88 touches
  .               .            .                      .
  .               .            .                      .
  .               .            .                      .
 57               A3           la                     frequence de 220 Hertz
 58               A3# = B3b    la diese = si bemol
 59               B3           si
 60               C4           do                     "middle C"; debut de l'octave 4
 61               C4# = D4b    do diese = re bemol
 62               D4           re
 63               D4# = E4b    re diese = mi bemol
 64               E4           mi
 65               F4           fa
 66               F4# = G4b    fa diese = sol bemol
 67               G4           sol
 68               G4# = A4b    sol diese = la bemol
 69               A4           la                     "concert A"; frequence de 440 Hertz
 70               A4# = B4b    la diese = si bemol
 71               B4           si
 72               C5           do                     "concert C" = do concert; debut de l'octave 5
 73               C5# = D5b    do diese = re bemol
  .               .            .                      .
  .               .            .                      .
  .               .            .                      .
108               C8           do                     touche la plus haute sur un piano de 88 touches


(pris de http://www.josef-k.net/mim/ThePianoKeyboard.gif)


(pris de http://www.vibrationdata.com/Resources/piano_keys.jpg)

Exemples de visualisations et d'instruments qui pourraient vous servir d'inspiration pour les projets 2 et 3

Visualisations de musique:
http://www.visualcomplexity.com/vc/blog/?p=811
http://www.youtube.com/watch?v=_PhathoNcXM
http://infosthetics.com/archives/2010/03/generative_music_visualization_composition.html
http://www.youtube.com/watch?v=71hNl_skTZQ

Instruments pour rhythmes en boucles:
http://www.youtube.com/watch?v=Jug3iYAuJes
http://www.youtube.com/watch?v=_SGwDhKTrwU

Instruments de musique:
http://www.youtube.com/watch?v=-swFqAT8yaA
http://www.youtube.com/watch?v=qQmSwuj7DZw
http://www.youtube.com/watch?v=0h-RhyopUmc
http://innovis.cpsc.ucalgary.ca/Research/SurfaceMusic
http://www.youtube.com/watch?v=4ciKgH5z1Dc
http://www.youtube.com/watch?v=aeQOuNBuJwg

Autres:
http://highc.org/