Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tutorials: fix incipit tutorial #645

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions _tutorials-ES/102_incipit/102_incipit.json
Original file line number Diff line number Diff line change
Expand Up @@ -481,16 +481,16 @@
{"rule": "\/\/mei:measure[4]\/mei:staff\/mei:layer\/mei:note\/mei:artic\/@artic = 'acc'", "renderanyway": false, "hint": "Compás n=3: necesitas un atributo @artic con un valor acc en el elemento artic."},
{"rule": "\/\/mei:measure[4]\/mei:staff\/mei:layer\/mei:note\/mei:artic\/@place = 'above'", "renderanyway": false, "hint": "Compás n=3: necesitas un atributo @place con un valor above en el elemento artic."},
{"rule": "count(\/\/mei:measure[4]\/mei:staff\/mei:layer\/mei:beam[1]\/mei:note[1]\/@*) = 4", "renderanyway": false, "hint": "Necesitas cuatro atributos en la primera nota barrada (@pname, @oct, @dur & @xml:id) del primer elemento beam."},
{"rule": "\/\/mei:measure[4]\/mei:staff\/mei:layer\/mei:beam[1]\/mei:note[1]\/@*[name()='xml:id'] = 'd1e4614'", "renderanyway": false, "hint": "Necesitas a @xml:id attribute con un valor `d1e4614` en la primera nota barrada del primer elemento beam."},
{"rule": "\/\/mei:measure[4]\/mei:staff\/mei:layer\/mei:beam[1]\/mei:note[1]\/@*[name()='xml:id'] = 'd4567'", "renderanyway": false, "hint": "Necesitas a @xml:id attribute con un valor `d4567` en la primera nota barrada del primer elemento beam."},
{"rule": "count(\/\/mei:measure[4]\/mei:staff\/mei:layer\/mei:beam[1]\/mei:note[2]\/@*) = 4", "renderanyway": false, "hint": "Necesitas cuatro atributos en la segunda nota barrada (@pname, @oct, @dur & @xml:id) del primer elemento beam."},
{"rule": "\/\/mei:measure[4]\/mei:staff\/mei:layer\/mei:beam[1]\/mei:note[2]\/@*[name()='xml:id'] = 'd1e4615'", "renderanyway": false, "hint": "Necesitas a @xml:id attribute con un valor `d1e4615` en la segunda nota barrada del primer elemento beam."},
{"rule": "\/\/mei:measure[4]\/mei:staff\/mei:layer\/mei:beam[1]\/mei:note[2]\/@*[name()='xml:id'] = 'd4568'", "renderanyway": false, "hint": "Necesitas a @xml:id attribute con un valor `d4568` en la segunda nota barrada del primer elemento beam."},
{"rule": "count(\/\/mei:measure[4]\/mei:slur) = '1'", "renderanyway": false, "hint": "Necesitas un elemento slur como hijo de measure."},
{"rule": "\/\/mei:measure[4]\/mei:staff\/following-sibling::mei:slur", "renderanyway": false, "hint": "el elemento slur tiene que seguir el elemento staff."},
{"rule": "count(\/\/mei:measure[4]\/mei:slur\/@*) = 4", "renderanyway": false, "hint": "Necesitas cuatro atributos en el elemento slur (@staff, @curvedir, @startid & @endid)."},
{"rule": "\/\/mei:measure[4]\/mei:slur\/@staff = '1'", "renderanyway": false, "hint": "Necesitas a @staff attribute con un valor 1 en slur."},
{"rule": "\/\/mei:measure[4]\/mei:slur\/@curvedir = 'above'", "renderanyway": false, "hint": "Necesitas a @curvedir attribute con un valor above en slur."},
{"rule": "\/\/mei:measure[4]\/mei:slur\/@startid = '#d1e4614'", "renderanyway": false, "hint": "Necesitas a @startid attribute con un valor #d1e4614 en slur."},
{"rule": "\/\/mei:measure[4]\/mei:slur\/@endid = '#d1e4615'", "renderanyway": false, "hint": "Necesitas an @endid attribute con un valor #d1e4615 en slur."}
{"rule": "\/\/mei:measure[4]\/mei:slur\/@startid = '#d4567'", "renderanyway": false, "hint": "Necesitas a @startid attribute con un valor #d4567 en slur."},
{"rule": "\/\/mei:measure[4]\/mei:slur\/@endid = '#d4568'", "renderanyway": false, "hint": "Necesitas an @endid attribute con un valor #d4568 en slur."}
]
}
],
Expand Down
2 changes: 1 addition & 1 deletion _tutorials-ES/102_incipit/102_incipit.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
layout: tutorials-ES
type: tutorial-ES
name: "AVANZADO: Codificación de íncipit"
fullname: "Un tutorial avanzado sobre cómo codificar íncipits en MEII"
fullname: "Un tutorial avanzado sobre cómo codificar íncipits en MEI"
data: "102_incipit.json"
---
¡Bienvenido/a! En este tutorial aprenderás cómo codificar un íncipit (secuencia inicial de notas en una composición musical) en MEI con el siguiente ejemplo:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<li><code>@dur</code> (duración) - por ejemplo, <code>"1"</code> para la redonda, <code>"2"</code> para la blanca, <code>"4"</code> para la negra, <code>"8"</code> para la corchea, <code>"16"</code> para la semicorchea, ... <code>"2048"</code> para la 2048ª nota, utiliza <code>"4"</code>.</li>
</ul>

<p>Aquí hay un ejemplo de cómo codificar una redonda C4: <code>&lt;nota pname="c" oct="4" dur="1"&gt;&lt;/nota&gt;</code>.</p>
<p>Aquí hay un ejemplo de cómo codificar una redonda C4: <code>&lt;note pname="c" oct="4" dur="1"/&gt;</code>.</p>

<p class="tutorialTask">En el editor de abajo, introduce la codificación de la primera nota del ejemplo dentro del elemento <code>&lt;layer&gt;</code>.</p>

Expand Down
29 changes: 24 additions & 5 deletions _tutorials-ES/102_incipit/step-12/102_incipit_step-12-desc.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,36 @@
<li>Un elemento separado <code>&lt;slur&gt;</code>.</li>
</ol>

<p>En este último paso, se utilizará el segundo enfoque: Al igual que las dinámicas, los elementos <code>&lt;slur&gt;</code> son eventos de control. No se codifican como elementos hijos de los eventos correspondientes que deben controlar, sino que se colocan en la mayoría de los casos fuera de los elementos <code>staff</code>.</p>
<p>En este último paso, se utilizará el segundo enfoque: Al igual que las dinámicas, los elementos <code>&lt;slur&gt;</code> son <i>eventos de control</i>. No se codifican como elementos hijos de los eventos correspondientes que deben controlar, sino que se colocan en la mayoría de los casos fuera de los elementos <code>staff</code>.
Para permitir un control preciso sobre la colocación del ligado en relación con el pentagrama musical, se puede usar el atributo <code>@staff</code>. Este atributo identifica el número del pentagrama al que se aplica el elemento <code>&lt;slur&gt;</code>.</p>

<p>Para indicar el punto inicial y el punto final de la ligadura, es posible aplicar una referencia al correspondiente <code>@xml:id</code> de un elemento <code>&lt;note&gt;</code> o <code>&lt;chord&gt;</code>. Los <code>@xml:id</code>s son identificadores con una secuencia de caracteres arbitraria pero única que regulariza la denominación de un elemento a lo largo de un documento y facilita así la construcción de enlaces entre elementos y otros recursos. En el caso de <code>&lt;slur&gt;</code>, la referencia al <code>@xml:id</code> de un elemento puede darse a través de los atributos <code>@startid</code> y <code>@endid</code>.</p>
<p>Para indicar el punto inicial y el punto final de la ligadura, se pueden usar los atributos <code>@startid</code> y <code>@endid</code>.
Para hacerlo, los valores de los atributos <code>@startid</code> y <code>@endid</code> deben referenciar un atributo llamado <code>@xml:id</code> de los elementos reales donde comienza y termina el ligado.
Los <code>@xml:id</code> son identificadores con una secuencia de caracteres arbitraria pero única que regularizan la denominación de un elemento a lo largo de un documento
y así facilitan la creación de enlaces entre elementos y otros recursos. Este es un mecanismo de referencia común en XML: aplicar un <code>@xml:id</code> a un elemento y referenciarlo desde otro elemento.</p>

<p>Por ejemplo, si tienes un elemento <code>&lt;note&gt;</code> con un <code>@xml:id</code> de "note-1" y otro elemento <code>&lt;note&gt;</code> con un <code>@xml:id</code> de "note-2",
puedes crear un <code>&lt;slur&gt;</code> que comienza en la primera nota y termina en la segunda nota configurando el atributo <code>@startid</code> a "#note-1" y el atributo <code>@endid</code> a "#note-2".
Nota que el hash de referencia <code>#</code> solo se usa con los atributos de referencia, no con los <code>@xml:id</code> en sí mismos:</p>

<p>
<code>&lt;note xml:id="note-1" pname="g" oct="4" dur="4"/&gt;</code><br>
<code>&lt;note xml:id="note-2" pname="a" oct="4" dur="4"/&gt;</code><br>
<code>...</code><br>
<code>&lt;slur staff="1" curvedir="above" startid="#note-1" endid="#note-2"/&gt;</code>
</p>

<p>Junto con <code>@startid</code> y <code>@endid</code>, se deben utilizar los siguientes atributos en este paso:</p>
<p>Debido a que los ligaduras pueden estar curvados en diferentes direcciones, el atributo <code>@curvedir</code> describe una curva con un término genérico que indica la dirección de la curvatura del ligado: <code>“above”</code>, <code>“below”</code> o <code>“mixed”</code>.</p>

<p>Así que los siguientes atributos deben usarse con el elemento <code>&lt;slur&gt;</code> en este paso:</p>
<ul>
<li><code>@staff</code> - el número de identificación del pentagrama al que se aplica un elemento, por ejemplo, <code>"1"</code> en este caso,</li>
<li><code>@curvedir</code> (dirección de la curva) - describe una curva con un término genérico que indica la dirección de la curvatura: <code>”above"</code>, <code>"below"</code> o <code>"mixed"</code>,</li>
<li><code>@startid</code> - referencia al <code>xml:id</code> de la nota de inicio de la ligadura, de la forma: <code>#xml:id</code> (nótese el signo <code>#</code>),</li>
<li><code>@endid</code> - referencia al <code>xml:id</code> de la nota final de la ligadura, de la forma: <code>#xml:id</code> (nótese el signo <code>#</code>).</li>
<li><code>@curvedir</code> (dirección de la curva) - describe una curva con un término genérico que indica la dirección de la curvatura: <code>”above"</code>, <code>"below"</code> o <code>"mixed"</code>,</li>
</ul>

<p class="tutorialTask">Identifica la primera y la última nota a la que se une la ligadura (dentro del primer elemento <code>&lt;beam&gt;</code> del compás 3) y añade <code>@xml:id</code>s a ambos elementos <code>&lt;note&gt;</code>. Establece un valor único para cada <code>@xml:id</code>, para este ejemplo puedes utilizar los valores: <code>“d1e4614”</code>, <code>“d1e4615”</code>. Añade un elemento de control <code>&lt;slur&gt;</code> después de la etiqueta de cierre del elemento <code>&lt;staff&gt;</code> y aplica los atributos correspondientes.</p>
<p class="tutorialTask">Identifica la primera y la última nota a la que se une la ligadura (dentro del primer elemento <code>&lt;beam&gt;</code> del compás 3) y añade <code>@xml:id</code>s a ambos elementos <code>&lt;note&gt;</code>.
Estos deben ser valores únicos para cada <code>@xml:id</code>, por lo que para este ejemplo usamos los valores: <code>"d4567"</code> para el <code>xml:id</code> de la nota inicial y <code>"d4568"</code> para el <code>xml:id</code> de la nota final del ligado.
Añade un elemento de control <code>&lt;slur&gt;</code> después de la etiqueta de cierre del elemento <code>&lt;staff&gt;</code> y aplica los atributos correspondientes.</p>
</div>
8 changes: 4 additions & 4 deletions _tutorials/102_incipit/102_incipit.json
Original file line number Diff line number Diff line change
Expand Up @@ -481,16 +481,16 @@
{"rule": "//mei:measure[4]/mei:staff/mei:layer/mei:note/mei:artic/@artic = 'acc'", "renderanyway": false, "hint": "Measure n=3: You need a @artic attribute with a value of acc on artic element."},
{"rule": "//mei:measure[4]/mei:staff/mei:layer/mei:note/mei:artic/@place = 'above'", "renderanyway": false, "hint": "Measure n=3: You need an @place attribute with a value of above on the artic element."},
{"rule": "count(//mei:measure[4]/mei:staff/mei:layer/mei:beam[1]/mei:note[1]/@*) = 4", "renderanyway": false, "hint": "You need four attributes on the first beamed note (@pname, @oct, @dur & @xml:id) of the first beam."},
{"rule": "//mei:measure[4]/mei:staff/mei:layer/mei:beam[1]/mei:note[1]/@*[name()='xml:id'] = 'd1e4614'", "renderanyway": false, "hint": "You need a @xml:id attribute with a value of `d1e4614` on the first beamed note of the first beam."},
{"rule": "//mei:measure[4]/mei:staff/mei:layer/mei:beam[1]/mei:note[1]/@*[name()='xml:id'] = 'd4567'", "renderanyway": false, "hint": "You need a @xml:id attribute with a value of `d4567` on the first beamed note of the first beam."},
{"rule": "count(//mei:measure[4]/mei:staff/mei:layer/mei:beam[1]/mei:note[2]/@*) = 4", "renderanyway": false, "hint": "You need four attributes on the second beamed note (@pname, @oct, @dur & @xml:id) of the first beam."},
{"rule": "//mei:measure[4]/mei:staff/mei:layer/mei:beam[1]/mei:note[2]/@*[name()='xml:id'] = 'd1e4615'", "renderanyway": false, "hint": "You need a @xml:id attribute with a value of `d1e4615` on the second beamed note of the first beam."},
{"rule": "//mei:measure[4]/mei:staff/mei:layer/mei:beam[1]/mei:note[2]/@*[name()='xml:id'] = 'd4568'", "renderanyway": false, "hint": "You need a @xml:id attribute with a value of `d4568` on the second beamed note of the first beam."},
{"rule": "count(//mei:measure[4]/mei:slur) = '1'", "renderanyway": false, "hint": "You need a slur element as child of measure."},
{"rule": "//mei:measure[4]/mei:staff/following-sibling::mei:slur", "renderanyway": false, "hint": "slur element has to follow the staff element."},
{"rule": "count(//mei:measure[4]/mei:slur/@*) = 4", "renderanyway": false, "hint": "You need four attributes on the slur element (@staff, @curvedir, @startid & @endid)."},
{"rule": "//mei:measure[4]/mei:slur/@staff = '1'", "renderanyway": false, "hint": "You need a @staff attribute with a value of 1 on slur."},
{"rule": "//mei:measure[4]/mei:slur/@curvedir = 'above'", "renderanyway": false, "hint": "You need a @curvedir attribute with a value of above on slur."},
{"rule": "//mei:measure[4]/mei:slur/@startid = '#d1e4614'", "renderanyway": false, "hint": "You need a @startid attribute with a value of #d1e4614 on slur."},
{"rule": "//mei:measure[4]/mei:slur/@endid = '#d1e4615'", "renderanyway": false, "hint": "You need an @endid attribute with a value of #d1e4615 on slur."}
{"rule": "//mei:measure[4]/mei:slur/@startid = '#d4567'", "renderanyway": false, "hint": "You need a @startid attribute with a value of #d4567 on slur."},
{"rule": "//mei:measure[4]/mei:slur/@endid = '#d4568'", "renderanyway": false, "hint": "You need an @endid attribute with a value of #d4568 on slur."}
]
}
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<li><code>@dur</code> (duration) – e.g. <code>“1”</code> for whole note, <code>“2”</code> for half note, <code>“4”</code> for quarter note, <code>“8”</code> for eighth note, <code>“16”</code> for sixteenth note, … <code>“2048”</code> for 2048th note, use <code>“4”</code></li>
</ul>

<p>Here is an example of how to encode a whole note C4: <code>&lt;note pname="c" oct="4" dur="1"&gt;&lt;/note&gt;</code>.</p>
<p>Here is an example of how to encode a whole note C4: <code>&lt;note pname="c" oct="4" dur="1"/&gt;</code>.</p>

<p class="tutorialTask">In the editor below, please enter the encoding of the first note of the example inside the <code>&lt;layer&gt;</code> element.</p>

Expand Down
Loading