Cómo una idea de 1619 se convierte en música generativa en el navegador
Diciembre 2024
En 1619, Johannes Kepler publicó Harmonices Mundi, un tratado donde argumentaba que los planetas producen música mientras orbitan el Sol. Aunque científicamente superada, su idea de que las proporciones matemáticas del cosmos pueden traducirse en sonido permanece extraordinariamente fértil. Este artículo traza la línea desde la visión mística de Kepler hasta una implementación moderna en JavaScript que sonifica el Sistema Solar en tiempo real, explorando qué significa "escuchar" el universo 400 años después.
Palabras clave: Kepler, música de las esferas, sonificación, música generativa, Web Audio API, astronomía
En la primavera de 1619, mientras Europa se desangraba en la Guerra de los Treinta Años, un matemático de 47 años publicó en Linz un libro extraño. No era un tratado de astronomía convencional, aunque su autor había descubierto las leyes que llevan su nombre. Era un libro sobre música.
Johannes Kepler había dedicado dos décadas a una obsesión: demostrar que el universo estaba construido sobre proporciones musicales. Que los planetas, en sus órbitas elípticas, literalmente cantaban. No como metáfora —Kepler era demasiado matemático para eso— sino como realidad física: cada planeta producía una nota cuya frecuencia dependía de su velocidad orbital.
El libro se llamó Harmonices Mundi (Las armonías del mundo), y su quinta parte contenía algo sin precedentes: una partitura del Sistema Solar.
Kepler fracasó, por supuesto. Los planetas no producen sonido en el vacío del espacio. Pero su fracaso fue extraordinariamente productivo. Cuatro siglos después, tenemos la tecnología para hacer exactamente lo que él soñó: convertir las órbitas planetarias en música audible. No porque el cosmos "suene", sino porque podemos hacerlo sonar.
Este artículo cuenta esa historia y su continuación digital.
La idea de que el cosmos es musical no empezó con Kepler. Tiene 2000 años.
Según la leyenda, Pitágoras (siglo VI a.C.) descubrió que los intervalos musicales consonantes corresponden a proporciones numéricas simples:
| Intervalo | Proporción | Ejemplo |
|---|---|---|
| Octava | 2:1 | Do₃ → Do₄ |
| Quinta justa | 3:2 | Do → Sol |
| Cuarta justa | 4:3 | Do → Fa |
| Tercera mayor | 5:4 | Do → Mi |
Este descubrimiento fue revolucionario. Significaba que la belleza musical —algo aparentemente subjetivo— tenía una base matemática objetiva. Si la música era matemáticas, razonó Pitágoras, y el cosmos también seguía leyes matemáticas, entonces el cosmos debía ser musical.
Los pitagóricos creían literalmente que los planetas, al moverse, producían sonidos. No los oíamos porque habíamos nacido con ese ruido de fondo, como quien vive junto a una cascada y deja de percibirla.
Platón recogió estas ideas en el Timeo, donde describió la creación del universo como un acto musical: el Demiurgo organizó el cosmos según proporciones armónicas. Durante la Edad Media, la musica universalis (música de las esferas) se consideraba la forma más elevada de música —superior incluso a la que podíamos oír— porque reflejaba el orden divino.
Boecio (siglo VI) clasificó la música en tres tipos:
Durante dos milenios, la música de las esferas fue una idea filosófica, no científica. Nadie había intentado calcular qué notas producirían los planetas. Faltaban dos cosas: un modelo preciso del Sistema Solar y alguien lo suficientemente obsesivo para hacer las cuentas.
Kepler tenía ambas.
Kepler llegó a Praga en 1600 para trabajar con Tycho Brahe, quien poseía las observaciones astronómicas más precisas de la historia. Cuando Brahe murió al año siguiente, Kepler heredó sus datos.
De esos datos extrajo sus tres leyes del movimiento planetario:
Pero Kepler no veía estas leyes como el objetivo final. Para él eran herramientas para descubrir algo más profundo: la estructura armónica del cosmos.
El razonamiento de Kepler fue el siguiente:
Por ejemplo, Saturno tiene una velocidad angular en el afelio de aproximadamente 106"/día y en el perihelio de 135"/día. La proporción es aproximadamente 4:5, que corresponde a una tercera mayor.
Kepler asignó a cada planeta un rango de notas basado en sus velocidades orbitales extremas:
| Planeta | Afelio | Perihelio | Intervalo |
|---|---|---|---|
| Saturno | Sol | Si | Tercera mayor |
| Júpiter | Sol | Si♭ | Tercera menor |
| Marte | Fa | Do | Quinta |
| Tierra | Sol | La♭ | Semitono |
| Venus | Mi | Mi | Casi unísono |
| Mercurio | Do | Mi | Décima mayor |
Kepler fue más allá de las notas individuales. Intentó determinar cuándo los planetas cantarían juntos en consonancia perfecta.
Descubrió que las configuraciones armónicas completas eran extremadamente raras. Calculó que el Sistema Solar había "cantado" en armonía perfecta solo dos veces en la historia: al comienzo de los tiempos y... una vez más. Kepler estaba convencido de que había presenciado (matemáticamente) el sonido de la Creación.
Desde una perspectiva moderna, Harmonices Mundi tiene problemas fundamentales:
Sin embargo, reducir Harmonices Mundi a un error sería injusto:
La sonificación es la representación de datos mediante sonido. Así como la visualización usa la vista para revelar patrones, la sonificación usa el oído.
Ejemplos cotidianos:
La NASA y otras agencias han sonificado datos espaciales:
Hay una diferencia crucial entre la sonificación moderna y la visión de Kepler:
Esta diferencia no hace que la sonificación sea menos valiosa. Solo más honesta.
Crear una implementación web que:
Cada planeta se simula usando las leyes de Kepler. El problema central es resolver la ecuación de Kepler:
\[ M = E - e \sin(E) \]
donde \(M\) es la anomalía media, \(E\) la anomalía excéntrica, y \(e\) la excentricidad orbital.
Esta ecuación trascendental se resuelve numéricamente con el método de Newton-Raphson:
function solveKepler(M, e, tolerance = 1e-6) {
let E = M; // Aproximación inicial
for (let i = 0; i < 100; i++) {
const dE = (E - e * Math.sin(E) - M) / (1 - e * Math.cos(E));
E -= dE;
if (Math.abs(dE) < tolerance) break;
}
return E;
}
La velocidad orbital se calcula con la ecuación vis-viva:
\[ v = \sqrt{\mu \left( \frac{2}{r} - \frac{1}{a} \right)} \]
Seguimos el espíritu de Kepler: la velocidad orbital determina la altura del sonido.
// Mapeo de velocidad a nota MIDI
function velocityToNote(velocity, vMin, vMax, noteMin, noteMax) {
const t = (velocity - vMin) / (vMax - vMin);
const note = noteMin + t * (noteMax - noteMin);
return Math.round(note);
}
// Frecuencia desde nota MIDI (A4 = 440 Hz)
function midiToFreq(note) {
return 440 * Math.pow(2, (note - 69) / 12);
}
Cada planeta tiene su propio oscilador con características tímbricas únicas que reflejan su "personalidad" astronómica:
| Planeta | Forma de onda | Octava | Carácter |
|---|---|---|---|
| Mercurio | Sine | 5 | Agudo, veloz |
| Venus | Triangle | 4 | Suave, estable |
| Tierra | Sine | 4 | Familiar |
| Marte | Sawtooth | 3 | Áspero, guerrero |
| Júpiter | Sine | 2 | Profundo, majestuoso |
| Saturno | Sine | 2 | Grave, lento |
| Urano | Triangle | 2 | Distante, frío |
| Neptuno | Sine | 1 | El más grave |
Un año de Neptuno dura 165 años terrestres. Si mapeáramos el tiempo 1:1, el usuario moriría antes de oír una órbita completa. La solución es una compresión temporal logarítmica que mantiene las proporciones relativas mientras hace el sistema audible en tiempo humano.
Teníamos dos opciones:
Elegimos un híbrido:
Kepler usó la escala diatónica de su época. Nuestra implementación ofrece varias opciones:
| Escala | Carácter |
|---|---|
| Mayor | Brillante, "celestial" |
| Menor | Melancólico, espacial |
| Pentatónica | Ambiental, sin tensión |
| Cromática | Máxima fidelidad física |
| Modos griegos | Conexión histórica |
La visualización no es decorativa; es funcional:
Nuestra implementación no "descubre" nada sobre el cosmos. Las frecuencias son arbitrarias (podrían ser otras). El mapeo es una elección estética.
Pero tampoco es pura ficción. Las relaciones entre planetas son reales:
Lo que hacemos es traducir relaciones reales a un medio diferente.
Hay algo que la sonificación ofrece y la visualización no: temporalidad encarnada.
Cuando vemos un gráfico de períodos orbitales, entendemos intelectualmente que Neptuno es lento. Cuando oímos su nota grave sostenida mientras Mercurio gorjea frenéticamente, lo sentimos en el cuerpo.
Este "conocimiento encarnado" tiene valor pedagógico y estético.
Kepler creía que la música de las esferas existía pero era inaudible para los humanos. Ahora podemos hacerla audible —no porque descubramos lo que siempre estuvo ahí, sino porque tenemos el poder de crear la experiencia que él imaginó.
Harmonices Mundi fue un fracaso científico y un éxito imaginativo. Kepler buscaba descubrir música en el cosmos; nosotros podemos crearla.
La implementación web que acompaña este artículo no es una réplica arqueológica ni una simulación científica. Es algo intermedio: una traducción creativa de una idea antigua a medios modernos.
Cuando el usuario presiona "Play" y los planetas comienzan a cantar, no está escuchando el universo. Está escuchando a Kepler soñando con el universo, renderizado en JavaScript.
Quizá eso sea suficiente.
[1] Kepler, J. (1619). Harmonices Mundi. Linz: Johann Planck.
[2] Stephenson, B. (1994). The Music of the Heavens: Kepler's Harmonic Astronomy. Princeton University Press.
[3] Walker, D.P. (1967). "Kepler's Celestial Music". Journal of the Warburg and Courtauld Institutes, 30, 228-250.
[4] Pesic, P. (2014). Music and the Making of Modern Science. MIT Press.
[5] Dunn, J. & Clark, M.A. (1999). "Life Music: The Sonification of Proteins". Leonardo, 32(1), 25-32.
[6] Hermann, T., Hunt, A., & Neuhoff, J.G. (Eds.). (2011). The Sonification Handbook. Logos Verlag Berlin.
[7] NASA Chandra X-ray Observatory. (2022). "A New NASA Sonification Turns Astronomical Images Into Music".
[8] Caspar, M. (1993). Kepler. Dover Publications. (Traducción de C. Doris Hellman)
| Planeta | Semieje mayor (UA) | Excentricidad | Período (años) | vperi (km/s) | vafel (km/s) |
|---|---|---|---|---|---|
| Mercurio | 0.387 | 0.206 | 0.24 | 58.98 | 38.86 |
| Venus | 0.723 | 0.007 | 0.62 | 35.26 | 34.79 |
| Tierra | 1.000 | 0.017 | 1.00 | 30.29 | 29.29 |
| Marte | 1.524 | 0.093 | 1.88 | 26.50 | 21.97 |
| Júpiter | 5.203 | 0.049 | 11.86 | 13.72 | 12.44 |
| Saturno | 9.537 | 0.056 | 29.46 | 10.18 | 9.09 |
| Urano | 19.191 | 0.046 | 84.01 | 7.11 | 6.49 |
| Neptuno | 30.069 | 0.010 | 164.8 | 5.50 | 5.37 |
Fuente: NASA Jet Propulsion Laboratory, Horizons System