Some time ago i built a fun little music visualizer that reads a MIDI file and generates a 3D piano roll in sync with the music. The project combines music and 3D graphics for a creative coding experience.

🧠 Idea

The concept is simple: load a MIDI file, and use Three.js to create the 3D visuals triggered by the notes. Tone.js handles the MIDI playback, and everything runs in the browser.

🔧 Tech Stack

  • Three.js for 3D rendering
  • Tone.js for MIDI playback
  • Vite for bundling and development
  • TypeScript for type-safety and cleaner code

🎮 Try it live

👉 Live demo on Surge

📦 Source code on GitHub

🧩 What could be better

Some parts of the code are a bit rough. Still, it's fun to share this as-is!

💭 Let me know what you think

Thanks for reading, and I hope you enjoy the music! 🎧✨