MIDI Visualizer

, ,


Vue d’ensemble

MIDI Visualizer est un programme Python développé pour Mac (M1), conçu pour déclencher des séquences vidéo avec leur audio via un contrôleur MIDI (MPK Mini 4). Chaque pad du contrôleur est mappé à un clip : on appuie, la vidéo démarre instantanément, son compris. En dehors des déclenchements, l’écran affiche un système de particules 3D réactif au son ambiant, capté en direct au micro.

Pensé pour la scène : sets VJ, concerts, installations, spectacles — partout où une image doit répondre à un geste musical sans délai ni manipulation.

Aperçu du projet MIDI Visualizer — capture d'écran à venir
Capture d’écran générique — sera remplacée par une vraie vidéo/photo du set.

Fonctionnalités

  • Déclenchement MIDI instantané — chaque pad du MPK Mini 4 lance une vidéo, jusqu’à 120 clips mappés automatiquement (notes 0 à 119).
  • Audio synchronisé — l’audio est extrait à la volée et rejoué en parallèle, avec un calage image/son basé sur le temps réel.
  • Visuel réactif au repos — en l’absence de déclenchement, un système de particules 3D réagit au son ambiant capté au micro.
  • Mode boucle — relance en continu le clip en cours, audio compris.
  • Plein écran — bascule fenêtré / plein écran à la volée, redimensionnement automatique avec conservation du ratio.
  • Plug & play — détection automatique du contrôleur MIDI au lancement.

Sous le capot

Le programme tourne sur une seule classe qui gère tout le pipeline en temps réel. Les vidéos placées dans le dossier des séquences sont triées alphabétiquement et mappées automatiquement aux notes MIDI 0 à 119 — pas de configuration manuelle à faire pour ajouter un clip.

Pour l’audio, la piste son de chaque vidéo est extraite à la demande puis rejouée en parallèle de la lecture vidéo. La synchronisation image/son s’appuie sur le temps écoulé depuis le lancement, recalculé à chaque image affichée — une approche simple qui tient la route en usage live, au prix d’une latence de déclenchement de l’ordre de quelques dizaines à quelques centaines de millisecondes, inhérente à l’extraction audio.

Quand aucun pad n’est actif, l’écran ne reste pas noir : un fond de particules 3D anime la scène en réagissant au volume capté par le micro, pour garder une présence visuelle entre deux déclenchements.


Contrôles

Touche / PadAction
Pad (note MIDI)Déclenche la vidéo mappée
FBascule plein écran
BActive / désactive le mode boucle
ESC ou QQuitte le programme

Stack technique

  • Python 3.8+
  • Pygame — affichage et gestion des entrées MIDI
  • OpenCV — lecture et traitement vidéo
  • NumPy — manipulation des images
  • PortMIDI — communication avec le contrôleur MIDI
  • ffmpeg / ffplay — extraction et lecture de l’audio

Cas d’usage

Sets VJ en live, accompagnement visuel de concerts, installations interactives, décors vidéo pour le spectacle vivant, overlays pour le streaming — tout contexte où une image doit être déclenchée au geste, sans clic de souris ni logiciel de montage à piloter.

Un pad, une note, une vidéo qui prend vie — l’image répond à la main aussi vite que le son.

Détails


Client

Projet personnel

Live


Projet précédent

Projet suivant

Autres projets