{"id":698,"date":"2026-09-24T07:04:23","date_gmt":"2026-09-24T07:04:23","guid":{"rendered":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=698"},"modified":"2026-09-24T07:04:24","modified_gmt":"2026-09-24T07:04:24","slug":"interoperabilidad-de-formatos-de-notacion-musical-prescriptiva-i","status":"publish","type":"post","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=698","title":{"rendered":"Interoperabilidad de formatos de notaci\u00f3n musical prescriptiva I"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u00bfQue qu\u00e9? En esta entrada explico los caminos para pasar de un formato a otro. \u00bfPero de qu\u00e9 formatos hablas? Pues de estos:<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=652\">Codificaciones de notaci\u00f3n musical prescriptiva<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Si ya sabes de lo que hablo (bien porque me has hecho caso y te acabas de leer la entrada anterior, o porque eres muy confiado), seguimos. En esta entrada vamos a analizar caminos para transformar formatos de notaci\u00f3n musical (\u00abpartituras\u00bb) de unos a otros. No vamos a explorar todas las v\u00edas posibles (por eso he puesto el \u00abI\u00bb en n\u00fameros romanos en esta entrada, seguramente hayan m\u00e1s para explorar los terrenos no recorridos), sino las que podr\u00edan ser las \u00abautopistas\u00bb con m\u00e1s tr\u00e1nsito habitual.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">El mapa: cuatro niveles y una sola rotonda<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En la entrada anterior los formatos quedaron ordenados en cuatro subcategor\u00edas \u2014sem\u00e1ntico-notacional, performativo, renderizado visual y renderizado sonoro\u2014, y el principio organizador era la distancia al texto simb\u00f3lico. Ese principio, le\u00eddo en clave de conversi\u00f3n, se convierte en algo muy pr\u00e1ctico: <strong>bajar de nivel es trivial y barato; subir es caro, lento y nunca del todo fiable<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bajar es <em>renderizar<\/em>: de un c\u00f3digo simb\u00f3lico sale un PDF, una imagen, un MIDI o un audio con una orden y sin decisiones. Subir es <em>reconstruir<\/em>: hay que inferir lo que el formato de partida nunca guard\u00f3. Un PDF no sabe que aquello es un calder\u00f3n, un MIDI no sabe si el fa es fa sostenido o sol bemol, y un MP3 no sabe ni siquiera cu\u00e1ntas voces hay.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y en medio del mapa hay una rotonda por la que pasa casi todo el tr\u00e1nsito: <strong>MusicXML<\/strong>. No porque sea el formato m\u00e1s elegante (es enorme y farragoso), sino porque es el \u00fanico que leen y escriben pr\u00e1cticamente todos los programas. Casi ninguna autopista va de A a B directamente: casi todas pasan por ah\u00ed.<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">graph LR\n    subgraph N1[\"1 \u00b7 Sem\u00e1ntico-notacional\"]\n        ABC[\"ABC\"]\n        LY[\"LilyPond\"]\n        MXL[\"MusicXML\"]\n        MSC[\"MuseScore\"]\n    end\n\n    subgraph N2[\"2 \u00b7 Performativo\"]\n        MID[\"MIDI\"]\n    end\n\n    subgraph N3[\"3 \u00b7 Renderizado visual\"]\n        IMG[\"PDF \u00b7 imagen\"]\n    end\n\n    subgraph N4[\"4 \u00b7 Renderizado sonoro\"]\n        AUD[\"Audio\"]\n    end\n\n    ABC -->|abctools| MXL\n    MXL -->|abctools| ABC\n    MXL -->|musicxml2ly \u00b7 Hacklily Desktop| LY\n    MXL -->|abrir| MSC\n    MSC -->|exportar| MXL\n\n    ABC -->|abc2midi| MID\n    LY -->|lilypond| MID\n    LY -->|lilypond| IMG\n    MSC -->|mscore -o| IMG\n    MSC -->|mscore -o| AUD\n\n    MID -->|MuseScore \u00b7 midi2ly| MXL\n    IMG -->|Audiveris \u00b7 OMR| MXL\n    AUD -->|Basic Pitch \u00b7 Piano Scribe \u00b7 AMT| MID<\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Las flechas que bajan son \u00f3rdenes de una l\u00ednea. Las que suben \u2014las tres de la derecha hacia la izquierda\u2014 son las que tienen premio y castigo, y son las que ocupan la mitad de esta entrada.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Direcci\u00f3n<\/th><th>Qu\u00e9 se hace<\/th><th>Tecnolog\u00eda<\/th><th>Fiabilidad<\/th><\/tr><\/thead><tbody><tr><td>Hacia abajo (renderizar)<\/td><td>De c\u00f3digo a PDF, imagen, MIDI o audio<\/td><td>Compiladores y sintetizadores<\/td><td>Total y determinista<\/td><\/tr><tr><td>En horizontal (traducir)<\/td><td>Entre formatos simb\u00f3licos: ABC, MusicXML, LilyPond, MSCZ<\/td><td>Conversores de formato<\/td><td>Alta, con p\u00e9rdidas conocidas<\/td><\/tr><tr><td>Hacia arriba desde lo performativo<\/td><td>De MIDI a partitura<\/td><td>Cuantizaci\u00f3n y an\u00e1lisis de voces<\/td><td>Media: se recuperan alturas, no estructura<\/td><\/tr><tr><td>Hacia arriba desde la imagen<\/td><td>De PDF o foto a partitura<\/td><td>OMR<\/td><td>Variable: depende de la imagen<\/td><\/tr><tr><td>Hacia arriba desde el sonido<\/td><td>De audio a partitura<\/td><td>AMT<\/td><td>Baja: orientativa, siempre hay que corregir<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Para no hablar en abstracto, todos los caminos que siguen est\u00e1n recorridos con el mismo archivo de prueba: una melod\u00eda popular de ocho compases, en 3\/4, con anacrusa, repetici\u00f3n y letra silabeada. Es un ejemplo deliberadamente humilde \u2014cabecera, ocho compases y dos l\u00edneas de texto\u2014, y esa es justamente la gracia: si algo se pierde aqu\u00ed, con una sonata se pierde a lo grande.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Escrito en ABC, ese archivo ocupa <strong>275 caracteres<\/strong>. Guardad la cifra, porque va a volver.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cuesta abajo: renderizar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Es el camino que nadie discute porque siempre funciona. Los formatos basados en c\u00f3digo traen su propio renderizador, y la conversi\u00f3n es una orden de terminal o un bot\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># De ABC a MIDI y a imagen\nabc2midi melodia.abc -o melodia.mid\nabcm2ps -g melodia.abc -O melodia   # -g = salida SVG\n\n# De LilyPond a PDF (y a MIDI, si el archivo lleva un bloque \\midi)\nlilypond melodia.ly\n\n# De casi cualquier cosa a casi cualquier cosa, con MuseScore sin abrir ventana\nmscore -o melodia.musicxml partitura.mscz<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed la p\u00e9rdida no es un fallo: es el objetivo. Al renderizar se fija todo lo que la notaci\u00f3n dejaba abierto \u2014el tempo exacto, el timbre, la maquetaci\u00f3n\u2014 y se tira todo lo que no se ve ni se oye. El PDF ya no sabe que el <em>si<\/em> del comp\u00e1s 3 era la sensible; solo sabe que hay una elipse negra en la cuarta l\u00ednea.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La misma melod\u00eda, medida en cada formato, dibuja el principio mejor que cualquier p\u00e1rrafo:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Formato<\/th><th>Tama\u00f1o<\/th><th>Qu\u00e9 sigue estando dentro<\/th><\/tr><\/thead><tbody><tr><td>ABC (<code>.abc<\/code>)<\/td><td>275 B<\/td><td>Todo: notas, letra, anacrusa, repetici\u00f3n<\/td><\/tr><tr><td>LilyPond (<code>.ly<\/code>)<\/td><td>814 B<\/td><td>Todo, m\u00e1s instrucciones de grabado<\/td><\/tr><tr><td>MusicXML comprimido (<code>.mxl<\/code>)<\/td><td>1,1 kB<\/td><td>Todo<\/td><\/tr><tr><td>MIDI (<code>.mid<\/code>)<\/td><td>744 B \u2013 1,1 kB<\/td><td>Alturas y duraciones sonadas; ni enarmon\u00edas ni letra<\/td><\/tr><tr><td>MusicXML (<code>.musicxml<\/code>)<\/td><td>11,3 kB<\/td><td>Todo, dicho con much\u00edsimas palabras<\/td><\/tr><tr><td>Imagen (<code>.svg<\/code> \/ <code>.png<\/code>)<\/td><td>10 \u2013 25 kB<\/td><td>P\u00edxeles o curvas con forma de m\u00fasica<\/td><\/tr><tr><td>Audio (<code>.mp3<\/code>, 29 s)<\/td><td>460 kB<\/td><td>Una interpretaci\u00f3n concreta<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Fijaos en la paradoja: el archivo que m\u00e1s informaci\u00f3n musical contiene pesa 275 bytes, y el que menos contiene pesa medio megabyte. El peso mide la distancia al s\u00edmbolo, no la cantidad de m\u00fasica.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">En horizontal: traducir entre formatos simb\u00f3licos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Este es el tr\u00e1nsito habitual de cualquiera que trabaje con partituras: tengo la m\u00fasica en un formato y la necesito en otro. Como todos los formatos de esta subcategor\u00eda contienen la misma clase de informaci\u00f3n, la traducci\u00f3n es posible; lo que cambia es qu\u00e9 matices sobreviven al viaje.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ABC \u2194 MusicXML: la puerta peque\u00f1a<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ABC es el formato m\u00e1s ligero del ecosistema, y la forma m\u00e1s c\u00f3moda de entrar y salir de \u00e9l es <a href=\"https:\/\/michaeleskin.com\/abctools\/abctools.html\">abctools<\/a>, el editor en l\u00ednea de Michael Eskin: se pega el c\u00f3digo a la izquierda, la partitura aparece a la derecha y el men\u00fa de exportaci\u00f3n deja MIDI, MusicXML y la imagen. En sentido contrario tambi\u00e9n abre un MusicXML y lo devuelve como ABC. No hay que instalar nada, as\u00ed que es la v\u00eda que funciona en cualquier ordenador de un aula.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Qu\u00e9 sobrevive: notas, comp\u00e1s, armadura, anacrusa, repeticiones, letra con su silabaci\u00f3n. Qu\u00e9 no: todo lo que ABC nunca supo decir \u2014polifon\u00eda compleja, matices colocados con precisi\u00f3n, digitaciones, pedal\u2014. Si la m\u00fasica necesita eso, ABC no es el origen correcto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y dentro del propio ABC hay conversores exactos que casi nadie usa. Una transposici\u00f3n, por ejemplo, no es trabajo para una IA: <code>abc2abc melodia.abc -t 2<\/code> devuelve la melod\u00eda un tono m\u00e1s arriba, con la letra y la repetici\u00f3n intactas, en el tiempo que se tarda en pulsar Intro. Eso s\u00ed, el programa aprovecha para avisar de que el primer comp\u00e1s \u00absolo\u00bb tiene un tiempo \u2014es la anacrusa\u2014 y mete la advertencia como comentario dentro del propio archivo. Exacto no significa silencioso.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">MusicXML \u2192 LilyPond: <code>musicxml2ly<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Esta es la autopista que m\u00e1s me interesa, porque conecta la rotonda con el formato de mayor calidad tipogr\u00e1fica. Y la buena noticia es que el conversor <strong>ya viene instalado con LilyPond<\/strong>: no hay que descargar nada aparte.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>musicxml2ly -l espa\u00f1ol melodia.musicxml -o melodia.ly<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Con <code>-l espa\u00f1ol<\/code> las notas salen como <em>do re mi fa sol la si<\/em> en lugar de <em>c d e f g a b<\/em>, que para un aula de conservatorio cambia bastante las cosas. Y con <code>-a<\/code> las octavas se escriben absolutas en lugar de relativas, que evita el error m\u00e1s t\u00edpico de LilyPond (un ap\u00f3strofo de m\u00e1s arrastra toda la frase una octava arriba).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sobre el archivo de prueba, el resultado conserva lo importante: <code>\\partial 4<\/code> para la anacrusa, <code>\\repeat volta 2<\/code> para la repetici\u00f3n, la letra con sus guiones dobles, el t\u00edtulo y la autor\u00eda. Compila a la primera. Pero conviene mirar lo que a\u00f1ade:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PartPOneVoiceOne = \\relative sol' {\n  \\clef \"treble\" \\time 3\/4 \\key do \\major \\partial 4 \\repeat volta 2 {\n    \\U sol8 &#91; \\U fa8 ] \\U mi4 \\U mi8 &#91; \\U fa8 ] \\U sol8 &#91; \\U la8 ] | % 1\n    ...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ese <code>\\U<\/code> delante de cada nota es una direcci\u00f3n de plica fijada a mano: el conversor no se f\u00eda del criterio de LilyPond y congela lo que dec\u00eda el MusicXML. En la letra ocurre algo parecido: cada s\u00edlaba que lleva tilde o signo de puntuaci\u00f3n sale entrecomillada, y una elisi\u00f3n \u2014dos s\u00edlabas cantadas sobre una misma nota\u2014 acaba convertida en una cadena con un espacio dentro. Todo correcto, todo feo: es c\u00f3digo generado por una m\u00e1quina para otra m\u00e1quina, no para que lo edite una persona. Si el objetivo era seguir trabajando el archivo a mano, hay un rato de limpieza por delante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para quien no quiera abrir una terminal, <a href=\"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=700\">Hacklily Desktop<\/a> hace el mismo camino con un men\u00fa: importa MusicXML (y MIDI) y deja el c\u00f3digo LilyPond en el editor, con la partitura al lado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">La rotonda: MuseScore como conversor universal<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">MuseScore importa MusicXML, MXL, MIDI y karaoke, MSCZ, MEI, MNX, Guitar Pro, Capella, Overture, Power Tab, Band-in-a-Box y Bagpipe Music Writer, y exporta MusicXML, MIDI, PDF, PNG, SVG, MP3, WAV, FLAC y LilyPond (este \u00faltimo, con calidad discutible). En la pr\u00e1ctica funciona como la pieza que une el resto del mapa: cuando dos formatos no se hablan, se hablan a trav\u00e9s de MuseScore.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y se puede hacer sin abrir la ventana, que es lo que permite convertir cien archivos de una tacada:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># macOS\n\"\/Applications\/MuseScore 4.app\/Contents\/MacOS\/mscore\" -o salida.musicxml entrada.mid\n\n# Windows\n\"C:\\Program Files\\MuseScore 4\\bin\\MuseScore4.exe\" -o salida.musicxml entrada.mid<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La extensi\u00f3n del archivo de salida decide el formato. Es la orden m\u00e1s \u00fatil de toda esta entrada y no aparece en ning\u00fan men\u00fa. Y tiene dos opciones que valen su peso en oro: <code>-j lote.json<\/code> procesa una lista entera de conversiones descrita en un archivo, y <code>-M ajustes.xml<\/code> aplica a todas ellas los mismos ajustes de importaci\u00f3n de MIDI, que es justo lo que uno quiere cuando tiene cuarenta archivos que corregir igual.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">El camino que no existe<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Conviene decirlo claro: <strong>LilyPond no exporta<\/strong>. Es un compilador, no un formato de intercambio. De LilyPond se sale hacia abajo (PDF, MIDI, imagen), pero no hacia MusicXML. Existe <code>lilypond-export<\/code> y alg\u00fan experimento m\u00e1s, pero ninguno con la fiabilidad de las otras autopistas. Si un proyecto va a tener que viajar entre programas, <strong>LilyPond es un buen destino final y un mal formato de trabajo intermedio<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cuesta arriba I: del MIDI a la partitura<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed empieza lo interesante, porque aqu\u00ed es donde la conversi\u00f3n deja de ser una traducci\u00f3n y pasa a ser una <em>interpretaci\u00f3n<\/em>. Un MIDI codifica cu\u00e1ndo empieza cada nota, cu\u00e1ndo acaba y con qu\u00e9 fuerza. No codifica compases, ni anacrusas, ni enarmon\u00edas, ni letra, ni repeticiones. Todo eso hay que adivinarlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hay dos caminos, y conviene conocer los dos porque fallan de maneras distintas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>midi2ly<\/code>: literal hasta el absurdo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n viene con LilyPond. Convierte un MIDI en c\u00f3digo <code>.ly<\/code> sin cuantizar nada, y ah\u00ed est\u00e1 su virtud y su desgracia. Este es el resultado real sobre el MIDI generado desde el ABC de prueba:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>  r4*1\/480 f4*239\/480 r4*1\/480 g4*239\/480 r4*1\/480 e4*959\/480\n  | % 17<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Eso es un comp\u00e1s. Cada corchea se ha convertido en <code>239\/480<\/code> de negra seguida de un silencio de <code>1\/480<\/code>, porque el sintetizador acorta m\u00ednimamente cada nota para que se oiga articulada, y <code>midi2ly<\/code> transcribe esa microscop\u00eda con una fidelidad devota. La letra que el archivo MIDI tra\u00eda como texto de karaoke aparece, s\u00edlaba a s\u00edlaba, <strong>en forma de comentario<\/strong>: est\u00e1 en el archivo, pero no es letra de la partitura. Y donde el original ten\u00eda ocho compases con repetici\u00f3n, aqu\u00ed hay diecisiete, porque la repetici\u00f3n viaja desplegada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De 275 bytes de ABC hemos llegado a 4,2 kB de LilyPond que dicen menos m\u00fasica. <code>midi2ly<\/code> sirve para rescatar las alturas de un archivo del que no hay nada m\u00e1s; no sirve como conversor de partituras.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">MuseScore: cuantiza, y ah\u00ed toma decisiones<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El camino sensato. MuseScore redondea las duraciones a una rejilla y produce una partitura legible. En MuseScore 4 el ajuste qued\u00f3 reducido a dos opciones, en <em>Preferencias \u2192 Importar \u2192 MIDI<\/em>: la nota m\u00e1s corta admitida y si se redondean los tempos. La primera importa m\u00e1s de lo que parece: si la pieza no tiene semicorcheas, decirle que la nota m\u00e1s corta es la corchea limpia de golpe la mitad de la basura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mismo archivo MIDI, convertido por lotes con <code>mscore -o<\/code>. El resultado, contado sobre el MusicXML que sale:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>68 notas: las 34 del original, dos veces, porque <strong>la repetici\u00f3n viene desplegada<\/strong>.<\/li>\n\n\n\n<li>16 compases y <strong>ninguno marcado como incompleto<\/strong>: la anacrusa desaparece y todos los compases quedan desplazados un tiempo.<\/li>\n\n\n\n<li>Comp\u00e1s de 3\/4 correcto\u2026 pero <em>solo porque el MIDI ven\u00eda de una partitura<\/em> y tra\u00eda la indicaci\u00f3n dentro. Un MIDI obtenido de un audio no la trae, y entonces MuseScore pone 4\/4 y hay que arreglarlo a mano.<\/li>\n\n\n\n<li>Cero letra. Bueno: cero letra \u00fatil. Lo \u00fanico que ha aterrizado como s\u00edlaba, colgando de la primera nota, es la cadena <code>note track<\/code>, que era el nombre interno de la pista en el archivo MIDI.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ese <code>note track<\/code> pegado a la primera corchea resume bastante bien el nivel performativo: el formato no distingue entre una s\u00edlaba cantada y una etiqueta t\u00e9cnica, porque para \u00e9l ambas son texto suelto en el mismo sitio.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Subiendo desde el nivel performativo, <strong>las alturas se recuperan casi siempre; lo que se pierde es la estructura<\/strong>: comp\u00e1s, anacrusa, repeticiones, letra y enarmon\u00edas. Y la estructura es justo lo que convierte un mont\u00f3n de notas en una partitura.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Cuesta arriba II: de la imagen a la partitura (OMR)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El reconocimiento \u00f3ptico de m\u00fasica es, seguramente, el camino que m\u00e1s ilusi\u00f3n hace y m\u00e1s decepciones da. La herramienta libre de referencia es <a href=\"https:\/\/github.com\/Audiveris\/audiveris\/releases\">Audiveris<\/a>: se instala, trae su propio Java, acepta PDF, PNG, JPG y TIFF, y exporta un <code>.mxl<\/code>. Funciona por lotes desde la terminal y tiene una interfaz donde se ve, con colores, qu\u00e9 ha entendido de cada s\u00edmbolo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sobre nuestro escaneo acert\u00f3 <strong>las 34 notas<\/strong>, el comp\u00e1s, la anacrusa y la repetici\u00f3n. Y se invent\u00f3 una colecci\u00f3n de puntos de <em>staccato<\/em> que no existen en el papel: manchas del escaneo ascendidas a articulaciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El otro factor decisivo es la imagen de partida: recta, con buen contraste y escaneada a 300 ppp. Y partituras impresas: los manuscritos, de momento, no son terreno de Audiveris.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cuesta arriba III: del sonido a la partitura (AMT)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El escal\u00f3n m\u00e1s alto. Aqu\u00ed el punto de partida es una onda: ni s\u00edmbolos, ni l\u00edneas, ni notas separadas. Hay que decidir cu\u00e1ntas notas suenan a la vez, d\u00f3nde empieza cada una y qu\u00e9 altura tiene, y despu\u00e9s todo lo del apartado anterior. Dos herramientas gratuitas, las dos en el navegador y las dos con una propiedad que en un centro educativo no es menor: <strong>el audio no sale del ordenador<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/basicpitch.spotify.com\">Basic Pitch<\/a> (Spotify, licencia Apache-2.0). Acepta cualquier instrumento y polifon\u00eda, graba desde el micr\u00f3fono y descarga MIDI. Tiene ajustes que cambian mucho el resultado: segmentaci\u00f3n de notas, umbral de confianza del modelo, altura m\u00ednima y m\u00e1xima en hercios y duraci\u00f3n m\u00ednima de nota. Tambi\u00e9n se instala con <code>pip<\/code> si se quiere usar por lotes.<\/li>\n\n\n\n<li><a href=\"https:\/\/magenta.github.io\/glitch\/piano-scribe\/\">Piano Scribe<\/a> (Google Magenta, modelo <em>Onsets and Frames<\/em>). Entrenado para piano solo: lo que no es piano lo traduce a piano igualmente. No funciona en iPhone ni iPad.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Con un audio de piano de 29 segundos, Basic Pitch recuper\u00f3 <strong>68 alturas de 68<\/strong>, y a\u00f1adi\u00f3 tres notas fantasma. Ni una sola de las decisiones estructurales: comp\u00e1s de 4\/4 donde hab\u00eda 3\/4, ritmo lleno de silencios min\u00fasculos, repetici\u00f3n desplegada y, evidentemente, ninguna letra. Para convertirlo en algo legible hay que pasar por MuseScore y arreglarlo a mano.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfY la IA? Una autopista que no siempre conviene coger<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un modelo de lenguaje convierte formatos. Se le pega un ABC y devuelve MusicXML; se le pega un MusicXML y devuelve LilyPond. Funciona, y la tentaci\u00f3n es evidente. Pero despu\u00e9s de recorrer los caminos anteriores, la conclusi\u00f3n que me llevo es bastante poco espectacular: <strong>cuando existe una herramienta exacta, la IA sobra<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tres razones concretas, no ideol\u00f3gicas:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>El determinismo.<\/strong> <code>musicxml2ly<\/code> se equivoca siempre igual, y por eso se puede aprender d\u00f3nde se equivoca. Un modelo se equivoca distinto cada vez.<\/li>\n\n\n\n<li><strong>El tama\u00f1o.<\/strong> Nuestra melod\u00eda ocupa 275 caracteres en ABC y 11 318 en MusicXML: unos 300 caracteres por nota. Pedirle a un modelo que <em>escriba<\/em> MusicXML es pedirle que genere cuarenta veces m\u00e1s texto para decir lo mismo, con el coste y la lentitud correspondientes.<\/li>\n\n\n\n<li><strong>El corte.<\/strong> Y ese texto largo tiene un fallo caracter\u00edstico: la respuesta se interrumpe a media partitura. El archivo parece bueno hasta que no encuentras el <code>&lt;\/score-partwise&gt;<\/code> del final.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Dicho lo cual, hay tres sitios donde la IA s\u00ed es la mejor herramienta disponible, y los tres tienen algo en com\u00fan: no son conversiones.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Transformar<\/strong>, que es distinto de convertir: cifrar una melod\u00eda, a\u00f1adirle una segunda voz, simplificarla para flauta, adaptarla a un \u00e1mbito vocal concreto. Ah\u00ed no hay conversor que valga porque hay que decidir.<\/li>\n\n\n\n<li><strong>Leer los errores.<\/strong> Pegarle el registro de LilyPond entero junto con el c\u00f3digo es, con diferencia, el uso que mejor funciona de todos los que he probado.<\/li>\n\n\n\n<li><strong>Escribir el programa que hace la conversi\u00f3n.<\/strong> Si el chat puede ejecutar c\u00f3digo, pedirle que modifique el archivo con un script es mucho m\u00e1s seguro que pedirle que lo reescriba entero: toca lo que tiene que tocar y deja el resto intacto.<\/li>\n\n\n\n<li><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Lo que queda para la II<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quedan fuera, y me los apunto: los caminos hacia y desde los formatos acad\u00e9micos (MEI, Humdrum <code>**kern<\/code>), el Braille musical en las dos direcciones, la conversi\u00f3n de partitura a <em>interpretaci\u00f3n<\/em> \u2014que es modificar el MIDI para que suene humano, y da para una entrada entera\u2014, y el terreno m\u00e1s inc\u00f3modo de todos: qu\u00e9 ocurre cuando la partitura de partida es un manuscrito.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Herramientas citadas<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/michaeleskin.com\/abctools\/abctools.html\">abctools<\/a> \u2014 editor ABC en l\u00ednea, con exportaci\u00f3n a MIDI, MusicXML e imagen.<\/li>\n\n\n\n<li><a href=\"https:\/\/abcmidi.sourceforge.io\/\">abcMIDI<\/a> (<code>abc2midi<\/code>, <code>abc2abc<\/code>) y <a href=\"https:\/\/chiselapp.com\/user\/moinejf\/repository\/abcm2ps\/home\">abcm2ps<\/a> \u2014 ABC hacia MIDI, hacia ABC transformado y hacia partitura.<\/li>\n\n\n\n<li><a href=\"https:\/\/lilypond.org\">LilyPond<\/a> 2.26 \u2014 compilador de partituras; trae <code>musicxml2ly<\/code> y <code>midi2ly<\/code>.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.hacklily.org\">Hacklily<\/a> y <a href=\"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=700\">Hacklily Desktop<\/a> \u2014 LilyPond sin instalar nada, e importaci\u00f3n de MusicXML y MIDI con men\u00fa.<\/li>\n\n\n\n<li><a href=\"https:\/\/musescore.org\">MuseScore<\/a> 4 \u2014 la rotonda, tambi\u00e9n desde la l\u00ednea de \u00f3rdenes con <code>mscore -o<\/code>.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/Audiveris\/audiveris\/releases\">Audiveris<\/a> 5.11 \u2014 OMR libre, de imagen a MusicXML.<\/li>\n\n\n\n<li><a href=\"https:\/\/basicpitch.spotify.com\">Basic Pitch<\/a> y <a href=\"https:\/\/magenta.github.io\/glitch\/piano-scribe\/\">Piano Scribe<\/a> \u2014 de audio a MIDI, en el navegador y sin subir nada a ning\u00fan servidor.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<pre class=\"wp-block-code\"><code><em>Nota metodol\u00f3gica: todas las conversiones descritas en esta entrada est\u00e1n hechas sobre el mismo archivo de prueba, en un macOS con LilyPond 2.26.0, MuseScore 4.7.5, abcMIDI 5.03, abcm2ps 8.14.18 y Audiveris 5.11. Las cifras (tama\u00f1os, n\u00famero de compases, notas recuperadas, elementos perdidos) est\u00e1n contadas sobre los archivos resultantes, no estimadas. Como en la entrada anterior, el trabajo se ha desarrollado con asistencia de Claude (Anthropic): ejecuci\u00f3n de las conversiones, recuento sobre los archivos de salida y redacci\u00f3n; la selecci\u00f3n de caminos, la interpretaci\u00f3n de los resultados y las conclusiones son del autor.<\/em><\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfQue qu\u00e9? En esta entrada explico los caminos para pasar de un formato a otro. \u00bfPero de qu\u00e9 formatos hablas? Pues de estos: Si ya sabes de lo que hablo (bien porque me has hecho caso y te acabas de leer la entrada anterior, o porque eres muy confiado), seguimos. En esta entrada vamos a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":653,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[13,16,12,8],"class_list":["post-698","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-audio","tag-codigo-musical","tag-inteligencia-artificial","tag-tecnologia"],"jetpack_publicize_connections":[],"jetpack-related-posts":[{"id":709,"url":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=709","url_meta":{"origin":698,"position":0},"title":"Las m\u00faltiples vidas de un mordente","author":"admin","date":"marzo 10, 2026","format":false,"excerpt":"Quiz\u00e1 pienses que esta es una entrada musicol\u00f3gica sobre interpretaci\u00f3n hist\u00f3ricamente informada, o sobre cabal\u00edsticas leyendas acerca de los ornamentos barrocos. Pues no. Se trata de mostrar, usando como ejemplo uno de los mordentes m\u00e1s famosos de la historia de la m\u00fasica, c\u00f3mo podemos representar la m\u00fasica de formas muy\u2026","rel":"","context":"En \u00abAudio\u00bb","block_context":{"text":"Audio","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?tag=audio"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-10-a-las-13.55.28.png?fit=1200%2C912&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-10-a-las-13.55.28.png?fit=1200%2C912&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-10-a-las-13.55.28.png?fit=1200%2C912&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-10-a-las-13.55.28.png?fit=1200%2C912&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/Captura-de-pantalla-2026-03-10-a-las-13.55.28.png?fit=1200%2C912&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":652,"url":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=652","url_meta":{"origin":698,"position":1},"title":"Codificaciones de Notaci\u00f3n Musical Prescriptiva","author":"admin","date":"marzo 1, 2026","format":false,"excerpt":"El siguiente post es un trabajo de sondeo y categorizaci\u00f3n sobre diferentes formatos de notaci\u00f3n musical, con el objetivo de organizar un marco te\u00f3rico que los agrupe con coherencia acad\u00e9mica, as\u00ed como establecer una base para analizar posteriormente los trabajos de conversi\u00f3n entre ellos. La finalidad \u00faltima es trabajar desde\u2026","rel":"","context":"En \u00abAudio\u00bb","block_context":{"text":"Audio","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?tag=audio"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_c5zr8gc5zr8gc5zr.png?fit=1200%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_c5zr8gc5zr8gc5zr.png?fit=1200%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_c5zr8gc5zr8gc5zr.png?fit=1200%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_c5zr8gc5zr8gc5zr.png?fit=1200%2C1200&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_c5zr8gc5zr8gc5zr.png?fit=1200%2C1200&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":762,"url":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=762","url_meta":{"origin":698,"position":2},"title":"Vibe-live-coding: jamming con la inteligencia artificial y Strudel","author":"admin","date":"junio 21, 2026","format":false,"excerpt":"Tres l\u00edneas de c\u00f3digo, menos de un minuto, y suena m\u00fasica. Esta es la historia de Strudel Notebook: un manual vivo para aprender a componer con c\u00f3digo que dise\u00f1\u00e9 pensando en una idea sencilla pero poco habitual: en vez de ense\u00f1ar m\u00fasica a programadores, ense\u00f1ar programaci\u00f3n a m\u00fasicos. Esta entrada\u2026","rel":"","context":"En \u00abAudio\u00bb","block_context":{"text":"Audio","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?tag=audio"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/06\/01-pagina-principal.png?fit=1179%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/06\/01-pagina-principal.png?fit=1179%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/06\/01-pagina-principal.png?fit=1179%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/06\/01-pagina-principal.png?fit=1179%2C1200&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/06\/01-pagina-principal.png?fit=1179%2C1200&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":700,"url":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=700","url_meta":{"origin":698,"position":3},"title":"Hacklily Desktop (fork), lector offline en local de Lilypond","author":"admin","date":"marzo 8, 2026","format":false,"excerpt":"Si conoces el lenguaje de notaci\u00f3n musical Lilypond, y alguna vez lo has usado, es posible que tambi\u00e9n conozcas Hacklily, un lector\/editor de Lilypond que funciona desde el navegador sin necesidad de instalar nada. Lo cu\u00e1l es una ventaja, ya que la instalaci\u00f3n de Lilypond (y su amigo Frescobaldi) no\u2026","rel":"","context":"En \u00abC\u00f3digo Musical\u00bb","block_context":{"text":"C\u00f3digo Musical","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?tag=codigo-musical"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/7511350B-E99D-4FBE-AFD2-2DA76F4EBCFD.png?fit=1024%2C1024&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/7511350B-E99D-4FBE-AFD2-2DA76F4EBCFD.png?fit=1024%2C1024&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/7511350B-E99D-4FBE-AFD2-2DA76F4EBCFD.png?fit=1024%2C1024&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/7511350B-E99D-4FBE-AFD2-2DA76F4EBCFD.png?fit=1024%2C1024&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":62,"url":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=62","url_meta":{"origin":698,"position":4},"title":"Incapacidades inaudibles y la normalidad construida en la pr\u00e1ctica musical","author":"admin","date":"diciembre 1, 2023","format":false,"excerpt":"El cuerpo es un campo de batalla. A veces contra uno mismo, a veces contra la sociedad. Aunque otras, no es m\u00e1s que un espect\u00e1culo a mostrar. \u00bfAcaso la pr\u00e1ctica musical, especialmente aquella basada en la asistencia a conciertos de m\u00fasicos-atletas no es todas esas cosas a la vez?","rel":"","context":"En \u00abm\u00fasica y diversidad\u00bb","block_context":{"text":"m\u00fasica y diversidad","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?tag=musica-y-diversidad"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/02\/Design-2.jpg?fit=1080%2C1080&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/02\/Design-2.jpg?fit=1080%2C1080&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/02\/Design-2.jpg?fit=1080%2C1080&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/02\/Design-2.jpg?fit=1080%2C1080&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2024\/02\/Design-2.jpg?fit=1080%2C1080&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":631,"url":"https:\/\/elpulpoenelvaso.jlmirall.es\/?p=631","url_meta":{"origin":698,"position":5},"title":"Una distop\u00eda cyberpunk sobre el futuro de la escucha musical","author":"admin","date":"febrero 27, 2026","format":false,"excerpt":"En esta entrada presento una hist\u00f3ria a la que le he ido d\u00e1ndo diferentes formas y formatos desde hace unos a\u00f1os. Es una distop\u00eda cyberpunk sobre hac\u00eda d\u00f3nde puede dirigirnos un mundo en el que la creaci\u00f3n musical sea dominada por modelos generadores de audio y no por m\u00fasica creada\u2026","rel":"","context":"En \u00abarte sonoro\u00bb","block_context":{"text":"arte sonoro","link":"https:\/\/elpulpoenelvaso.jlmirall.es\/?tag=arte-sonoro"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/02\/unnamed.jpg?fit=1024%2C1024&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/02\/unnamed.jpg?fit=1024%2C1024&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/02\/unnamed.jpg?fit=1024%2C1024&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/02\/unnamed.jpg?fit=1024%2C1024&ssl=1&resize=700%2C400 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/elpulpoenelvaso.jlmirall.es\/wp-content\/uploads\/2026\/03\/Gemini_Generated_Image_c5zr8gc5zr8gc5zr.png?fit=2048%2C2048&ssl=1","_links":{"self":[{"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/posts\/698","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=698"}],"version-history":[{"count":4,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/posts\/698\/revisions"}],"predecessor-version":[{"id":937,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/posts\/698\/revisions\/937"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=\/wp\/v2\/media\/653"}],"wp:attachment":[{"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=698"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=698"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/elpulpoenelvaso.jlmirall.es\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}