Contrôles des Connaissances de stim
1. Lire de la fugue
projet

La structure d’un fichier MIDI contenant plusieurs pistes, il est assez fréquent que chacune contienne une voix et une seule dans le cas d’une musique polyphonique, typiquement une fugue. On trouvera sur le site kunstderfuge plusieurs interprétations codées en MIDI de différentes œuvres du répertoire, notamment des fugues. Le but du présent projet est de concevoir et de programmer un algorithme extrayant de fichiers MIDI supposés respecter l’hypothèse ci-dessus le thème fugué.

Le projet est à faire seul. Il sera rendu sous forme d’une archive au format ZIP, à l’aide du formulaire en méthode POST disponible au bas de cette page. Cette archive devra comporter les fichiers dont le nom respecte les conventions précisées dans l’énoncé des questions. Le langage de programmation peut être choisi librement, toutefois l’archive doit contenir tout ce qui est nécessaire à l’exécution du programme et n’est pas déjà disponible dans un système Unix de base.

Le projet est à rendre pour le lundi 13 Janvier 2014 à MIDI (évidemment), le cachet de la méthode POST faisant foi. Il est possible et conseillé de déposer ses versions successives plutôt que d’attendre le dernier moment ; seule la dernière version déposée sera prise en compte.

Une Foire Aux Questions est ouverte à la fin de l’énoncé ; toute question à son propos devra être posée sur ce forum, afin que chacun dispose des mêmes informations.

1 Le thème, moi non plus

Dans une fugue très classique, le thème est une succession de 30 notes maximum. Il est exposé une première fois (c’est le sujet) dans une voix seule, puis est réexposé dans une autre voix, mais à la quinte supérieure ou à la quarte inférieure (c’est la réponse) pendant que la première voix énonce le contre-sujet. Afin de respecter la tonalité et les règles de l’harmonie, cette réexposition n’est souvent pas une transposition littérale, respectant les intervalles et les rythmes, mais une légère variation.

Dans cette première question, vous exposerez en français l’algorithme comparant deux pistes MIDI et déterminant si le début de la deuxième est la réexposition du début de la première, modulo des variations que vous expliquerez et justifierez.

Le fichier comportant cette information se nommera rapport.pdf. En fait il contiendra également la description de l’implémentation qui va suivre.


2 Main Theme, même thème

Dans cette question, il s’agit d’implémenter l’algorithme défini précédemment, sous forme d’un programme prenant sur la ligne de commande Unix les noms de deux fichiers MIDI n’utilisant chacun qu’une seule piste. Le programme répond seulement ok ou ko selon que le 2e fichier est une transposition variée du premier ou pas.

Le fichier attendu se nommera theme.ext, où ext dépend du langage de programmation choisi. Devront aussi figurer dans l’archive 4 fichiers MIDI créés par vos soins, nommés e1v1.mid e1v2.mid e2v1.mid e2v2.mid. Les deux premiers sont des transpositions l’un de l’autre, idem pour les deux derniers mais ils ne doivent pas l’être des deux premiers, de sorte que l’on puisse vérifier votre programme sur plusieurs cas positifs et négatifs.


3 Sujet de mécontentement

Dans cette question, on se propose de tester l’algorithme en vraie grandeur, sous forme d’un programme prenant sur la ligne de commande un unique fichier MIDI. Il doit comparer les différentes pistes pour déterminer si leur début est une transposition variée de la première. Le programme répond 0 si ce n’est pas le cas, le nombre de voix si cela l’est.

Le fichier souhaité se nommera voix.ext, où ext dépend du langage de programmation choisi. Figureront également dans l’archive deux exemples de fugue, exemple-ok.mid et exemple-ko.mid dont l’un est bien reconnu comme une fugue mais pas l’autre, et vous expliquerez dans votre rapport pourquoi votre algorithme échoue dans le 2e cas.


4 Il était une fugue...

Dans cette dernière partie, il s’agit d’améliorer l’ergonomie du programme conçu précédemment, tant en entrée qu’en sortie, afin d’en faire un service Web :

Le page HTML attendue se nommera fugue.html. La version de Web votre programme se nommera fugue.ext, où ext dépend du langage de programmation choisi.


5 Foire Aux Questions

Cliquer sur le lien ci-dessous pour poser une question à propos du projet. Afin d’éviter les spams, celle-ci n’apparaitra qu’après lecture par le modérateur.

Les questions et les réponses apparaîtront à la suite de ce texte, précédées de la liste de toutes les questions posées afin qu’un coup d’œil rapide (sans nécessité de défilement) permette de voir si une question a déjà été posée. Pour profiter au maximum de cette fonctionnalité, pensez à donner un titre significatif et différent de tous les titres précédents.

Titres des 5 intervention(s)


  • Dépot fichier
    11 janvier 2014 à 20h45min par PONCOT REMI

    Où dépose-t-on notre fichier.zip ?
    Lorsque je m’authentifie, le formulaire de dépôt disparaît...

    • Dépot fichier
      12 janvier 2014 à 18h12min par Saint James Emmanuel

      Je ne constate pas le pb. Essayez d’autres navigateurs, précisez le vôtre et envoyez moi une copie d’écran de la question 6 après authentification.

      • Dépot fichier
        12 janvier 2014 à 19h43min

        J’ai le même problème, que ce soit avec Chrome, Safari ou Firefox, pour accéder au questionnaire il ne faut pas s’être identifié au préalable sur la gauche de la page.

        Ci-joint un imprime-écran d’avant et après authentification.

        • Dépot fichier
          12 janvier 2014 à 23h11min par Saint James Emmanuel

          Je viens de simuler l’interrogation de la base de données de la scolarité par mon système, et certains d’entre vous sont considérés comme non inscrits à STIM, d’où le refus du système de fournir un formulaire pour éviter d’être spammé par un robot. J’ai rentré à la main les inscriptions, ça devrait fonctionner pour tout le monde sauf erreur. Certains projets étaient d’ailleurs déjà arrivés. Je verrai avec l’équipe technique de la scolarité d’où vient ce problème ... après correction de vos projets. Désolé, du stress occasionné.

          • Dépot fichier
            13 janvier 2014 à 11h46min

            Bonjour, je veux vous envoyer mon rapport mais la fenêtre post a tout simplement disparue...
            Il n’est pas MIDI pourtant :(

            Je vous envoies un lien webtransfer de mon travail
            sur votre boite ircam en attendant ...

            Guillaume Robal

  • Plateforme pour interpréter PHP
    9 janvier 2014 à 01h01min par LEGLAIVE SIMON

    Bonjour,

    Juste pour être sûr, si on utilise du PHP pour la dernière partie du projet, vous aurez bien une plate-forme WEB en local, style LAMP, pour interpréter le PHP, car directement dans le navigateur ça ne semble pas possible ?

    Merci d’avance,
    Simon

    • Plateforme pour interpréter PHP
      9 janvier 2014 à 10h19min par Saint James Emmanuel

      PHP est un langage côté serveur, il ne fonctionne évidemment pas côté client. Etant par ailleurs l’auteur de ce site, vous imaginez bien que j’ai un serveur HTTP en local.

  • ToolBox
    7 janvier 2014 à 11h28min

    Bonjour,

    Est-il autorisé d’utiliser des toolbox, scripts open source, afin de récupérer les informations MIDI de base (et ensuite faire l’algorithme nous même) ?

    Cela me semblait être une évidence, mais mieux vaut demander...

    Bonne année,
    Arthur

  • Un unique fichier par question ?
    4 janvier 2014 à 19h24min par LEGLAIVE SIMON

    Bonjour,

    Est-il obligatoirement nécessaire de faire un unique fichier par question ?

    Je pense à si l’on fait de l’orienté objet par exemple.

    Merci.

    Simon Leglaive

    • Un unique fichier par question ?
      5 janvier 2014 à 12h03min par LEGLAIVE SIMON

      je retire ma question, rien n’empêche de tout faire dans un fichier... désolé

  • html où php
    1er janvier 2014 à 08h32min

    Bonjour,
    Bon nouvel an !
    Les fichiers .ext que vous demandez sont ceux exécutables où source codes ?
    Dans la dernière partie, est ce qu’on peux utiliser PHP ?

    GONG Rong

    • html OU php
      1er janvier 2014 à 13h01min par Saint James Emmanuel

      Il faut donner les fichiers de source, afin que je puisse évaluer la qualité de votre style de programmation. Vous pouvez utiliser tout langage de programmation, en particulier PHP en effet.



6 Remise du projet (20 point(s))

Le projet est à remettre sous forme d’une archive au format Zip (tout autre sera refusé par le formulaire en dessous de ce paragraphe). Cette archive ne devra contenir aucun sous-répertoire, tous les fichiers demandés devant se trouver au premier niveau.

Fichier à créer : [.]zip$

Date limite: 13 janvier 2014 à 12h00min