A propos

Qui sommes-nous ?

Stéphane, développeur à temps plein, musicien home-studiste à ses heures perdues et un mélange des deux autant que possible. Tente de pondre un code qui marche pour le Midi Pi, avec plus ou moins de succès en fonction des jours 🙂 Egalement randonneur amateur et gratouilleur de chats professionnel.

Jérémy, guitariste du tandem, passionné par l’informatique, la MAO et l’audiovisuel en particulier la photographie et la vidéo, j’apporte ma patte musicale et visuelle au projet. Aussi amateur des engins motorisés à 2 roues je virevolte au gré des routes de nos si belles montagnes.

Midi Pi ?

Derrière ce nom tout simple se cachent les deux technologies sur lesquelles repose ce projet !

MIDI (Musical Instrument Digital Interface) est le protocole de communication utilisé par les instruments de musique électronique pour communiquer entre eux et échanger des données musicales. C’est en transformant les interactions des utilisateurs en messages MIDI que le Midi Pi peut modifier la musique en temps réel.

 

Pi comme le Raspberry Pi qui est le micro-ordinateur qui fait fonctionner tout ça ! C’est lui qui sert de point d’accès WiFi, de serveur web et qui transmet les données MIDI à l’interface audio qui est sur scène. Il est très peu encombrant, a une consommation très faible en énergie, ce qui permet de le faire tourner sur simple batterie et il est suffisamment puissant pour réaliser toutes ces tâches !

Comment ça marche ?

Le Midi Pi fonctionne donc à partir d’un simple Raspberry Pi et d’un câble MIDI relié à une interface audio. Mais pour aller plus loin pour les techniciens que ça peut intéresser, voici en détail les différentes couches de l’application.

Tout d’abord, pour une optimisation des performances, le système d’exploitation installé sur le Pi est Raspbian Stretch Lite. Il ne gère pas d’interface graphique et comprend le strict minimum nécessaire pour faire tourner l’application. Il est ensuite configuré en tant que point d’accès WiFi et il est donc accessible depuis n’importe quel appareil pouvant s’y connecter. Dans ce cas il sert de serveur local hors-ligne et met en relation tous les spectateurs connectés dessus. Il gère également un mode connecté avec lequel il est possible de s’y connecter depuis n’importe où sur Internet afin de pouvoir proposer une performance en streaming par exemple. Pour que ce mode fonctionne, il faut simplement brancher le Pi en ethernet sur un routeur connecté à Internet.

Côté serveur, l’application utilise Node JS. C’est lui qui gère les relations entre les différents spectateurs via des WebSockets. Chaque spectateur connecté a un pseudo et un socket attribué. C’est via ce socket que vont transiter tous les messages MIDI générés par ses interactions. Le serveur va ensuite les traiter pour les envoyer sur les bons canaux, directement à travers le câble MIDI-USB qui est connecté au Pi. C’est également via les sockets que le serveur va déterminer quelles interactions sont disponibles pour les spectateurs. Chaque interaction est à usage exclusif, elle ne peut pas être utilisée par deux spectateurs en même temps.

Côté client, tout se passe via des mini-animations simples. Elles utilisent des canevas en plein écran, certaines sont en 3D, d’autres utilisent le gyroscope de l’appareil quand c’est possible. Le but est de pouvoir varier les interactions et de générer des messages MIDI sans que le spectateur n’ait besoin de notions musicales. Le tout se veut intuitif et c’est au spectateur d’identifier quel impact il va avoir et comment s’en servir au mieux. Il est possible à tout moment de passer d’une animation à une autre et de tester les différentes interactions possibles.

A vous de jouer !

Voilà, vous savez tout. Maintenant on vous donne rendez-vous à la Belle Electrique le 25 mai pour mettre tout ça en pratique 🙂