113.229 archivos MIDI seleccionados por voluntarios de todo el mundo
Estaba recordando los días de Geocities y Angelfire, cuando la web era peculiar y divertida. Recordé cómo los sitios solían usar la etiqueta <bgsound> para incluir un archivo MIDI de fondo que se reproducía automáticamente. Esos archivos tenían una estética muy agradable y de la vieja escuela.
Quería escuchar algunos archivos MIDI, así que busqué y encontré un archivo .zip con más de 100 000 archivos MIDI que alguien publicó en Reddit. Intenté reproducir algunos en Chrome, Firefox, Safari, etc. y luego me di cuenta de que todos habían eliminado la etiqueta <bgsound>. Ni siquiera Quicktime y VLC podían reproducir los archivos.*
Había algunos sitios web que podían convertir MIDI a MP3 de baja calidad y, técnicamente, Apple todavía ofrece Quicktime 7 para descargar, que puede reproducir MIDI, pero no fue fácil ni divertido de hacer.
Algunos sitios web ofrecían reproducción en línea con Flash (pero era inestable y difícil de hacer funcionar en Chrome), y los basados en JS carecían de muchos instrumentos o eran monstruosidades compiladas con Emscripten de varios MB.
Decidí que compilaría el mejor reproductor MIDI escrito en C (libtimidity) en WebAssembly y me esforcé mucho para optimizar el paquete e incluir la cantidad mínima de código. El resultado de eso es la biblioteca timidity. Es bastante liviana: solo 34 KB de JavaScript y 23 KB de WebAssembly cargado de forma diferida.
Luego le puse una interfaz, por lo que es fácil explorar el contenido de ese archivo .zip. Y eso es BitMidi.
Planeo ingerir muchos más archivos MIDI en el futuro, tal vez del archivo MIDI de Geocities en Internet Archive.