MuseScore #16: Casillas de primera y segunda vez

En el artículo anterior comenzamos el tratamiento de los signos de repetición y explicamos su símbolo por excelencia, los dos puntos. Hoy veremos cómo representar repeticiones alternativas, en las que una sección determinada de la repetición es sustituida por otra dependiendo del número de veces que ha sido ejecutada ya. Aprenderemos también a usar MuseScore para que reproduzca las repeticiones tal como están escritas, cambiando entre secciones adecuadamente según los requerimientos de la partitura.

El primer ejercicio que te propongo es escribir algo como esto:

Comienza introduciendo las notas tal cual, sin preocuparte por los signos de repetición. No es necesario que repliques la octava baja de la clave de Sol; está ahí simplemente porque forma parte de la plantilla que más utilizo.

El fichero musescore-16-1 muestra el resultado de esta primera edición simple.

Abre a continuación la paleta Líneas de Compás:

Desde la paleta, arrastra la barra de fin de repetición hasta la línea divisoria del final del segundo compás. Haz lo mismo con la doble barra que va al final del tercer compás.

Despliega ahora la paleta Líneas, en la que se encuentran las casillas de primera y segunda vez:

Arrastra cuidadosamente el símbolo de la casilla primera vez hacia la parte superior del pentagrama. Quiero que observes como, a medida que desplazas el ratón por la parte superior, aparece una línea punteada que vincula el símbolo con el comienzo del compás. Antes de soltar el ratón, mueve el símbolo sobre varios compases y observa como cambia de anclaje la línea punteada. Es muy importante que te asegures de soltar el ratón estando el anclaje al comienzo del segundo compás, que es donde debe figurar la casilla primera vez.

Si no lo hicieras así no funcionaría correctamente la reproducción de la repetición al pulsar el botón de Play.

No te preocupes si no está ubicada en el sitio correcto. Haz clic sobre ella, seleccionándola, y arrástrala hasta su posición final.

Si necesitaras modificar su tamaño haz doble clic sobre el símbolo. Te aparecerán unos cuadrados que te permitirán redimensionar su anchura.

Elige ahora en la paleta el símbolo segunda vez y repite estos pasos para colocar la casilla sobre el tercer compás.

El fichero musescore-16-2 recoge el resultado final buscado.

Haz clic sobre el botón Play para escuchar la partitura. Observa cómo, efectivamente, la segunda vez que sucede la repetición la reproducción salta a la sección adecuada.

Realicemos ahora un nuevo ejercicio en el que aprenderemos a configurar repeticiones que suceden más de dos veces. Por ejemplo, sobre las mismas notas, supongamos que pretendemos escribir esto:

Es decir, la repetición sonará un total de tres veces: la primera y segunda se corresponderán con la casilla 1-2. y la tercera con la casilla 3.

Para hacer esto, haz clic con el botón derecho sobre la casilla primera vez y, en el menú contextual que aparece, elige la opción Propiedades de Volta:

En el cuadro Propiedades de Volta, cambia el texto por el nuevo deseado:

Repite la operación con la otra casilla de repetición alternativa.

Si sólo deseas imprimir la partitura esto puede ser suficiente; sin embargo, hay un pequeño problema: pulsa el botón de Play y comprobarás que la reproducción sólo sucede dos veces, a pesar de que ahora queremos que sean tres.

Veamos cómo hacer que el fichero suene correctamente.

Nuestra primera tarea es decirle a MuseScore cuántas veces va a realizar la repetición, pues por defecto supone que será dos veces. Para hacerlo debemos seleccionar el último compás de la repetición con el botón derecho del ratón, haciendo clic sobre un hueco en el que no haya una nota y elegir la opción Propiedades de Compás:

Incrementa el valor de conteo de repeticiones para que el número total de ellas sea 3:

Aún debemos hacer algo más. Hay que indicar a MuseScore que en las repeticiones 1 y 2 sucederá el contenido de la primera casilla, mientras que en la 3 se ejecutará la segunda.

Vuelve a hacer clic con el botón derecho sobre la primera casilla para abrir el cuadro de diálogo Propiedades de Volta. En la sección Lista de repetición escribe, separado por comas, los números de repetición asociados a la casilla:

Repite la operación sobre la otra casilla y establece el valor correcto:

Pulsa el botón Play. La partitura debe reproducirse correctamente ahora. En el fichero musescore-16-3 tienes el resultado final.

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2012/01/musescore-16-casillas-de-primera-y-segunda-vez/


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Construcción de acordes – 7: menor séptima

Séptima entrega de la serie dedicada al acorde menor séptima, cuatriada que más aparece en la armonización por terceras de la escala mayor (en los grados segundo, tercero y sexto).

Para elaborarlo basta con agregar a la triada menor una séptima. Recuerda que cuando no calificamos la séptima estamos sobreentendiendo que es menor (b7 en vez de 7). Por lo tanto, su fórmula es:

m7: 1 – b3 – 5 – b7

También puedes encontrarte este acorde como min7, o -7.

Calculemos las notas de Do menor séptima (Cm7, Cmin7 o C-7) aplicando la metodología que describimos en el primer artículo de la serie.

Empezamos por la escala de Do mayor:

C – D – E – F – G – A – B – C

Y cogemos los grados indicados en la fórmula:

Cm7: C – Eb – G – Bb

Veamos un segundo ejemplo: calculemos las notas de Am7.

La escala de La mayor es:

A – B – C# – D – E – F# – G#

con lo que

Am7: A – C – E – G

Sencillo, ¿verdad? Compruébalo en tu instrumento. Si sabes colocar el acorde, no te quedes simplemente ahí: descubre y comprende las notas que lo forman.

Javier Montero Gabarró


Construcción de acordes – 7: menor séptima


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

LaTeX – Capítulo 18: Las clases por defecto y sus opciones

Hoy vamos a hablar con algo más de detalle de la primera línea de todo fichero LaTeX, la especificación de la clase de documento:

\documentclass{article}

La clase article, indicada como parámetro entre llaves, no es más que una plantilla de estilo con la que será elaborado el documento. Tradicionalmente, se dice que LaTeX ofrece cuatro clases por defecto:

article: artículos, pequeños informes y, por lo general cualquier tipo de documento no demasiado voluminoso.
book: libros
report: informes más complejos que pueden estar organizados en capítulos
letter: cartas

Tu propia distribución, sin duda, incorpora otras más, además de estas. Escanea la carpeta donde tienes instalado LaTeX y busca los ficheros con extensión .cls, propia de las clases.

En MikTeX, una de las distribuciones que uso, se encuentran en la carpeta C:\Program Files\MiKTeX 2.9\tex\latex\base. Allí, además de las clases indicadas, verás otras como slide, para presentaciones, proc, para procedimientos, o minimal, que como su nombre sugiere, se emplea para pequeños borradores.

Y no decir la infinidad de clases de terceros especializadas en casi cualquier tipo de formato y al gusto del consumidor. Por supuesto, además, tú mismo puedes diseñar clases a tu medida si aprendes a hacerlo.

Cada clase impone un estilo y la mayor parte de nuestro trabajo se limitará simplemente a escribir el texto. LaTeX se ocupará, después, del trabajo de diseño en función de los requerimientos de la clase. Pero, aún así, cada clase ofrece ciertos parámetros que se dejan a la elección del usuario. Podemos, por ejemplo, decidir que el documento se generará con una fuente de 11pt en vez de 10pt, que es el valor por defecto, o indicar que adoptará un formato a dos caras, es decir diferenciando los márgenes en las páginas pares e impares, como sucede, habitualmente, en cualquier libro.

Es decir, la clase nos ofrece ciertas opciones de parametrización. Existe un ajuste más fino aún que realizaremos utilizando paquetes que permiten extender la funcionalidad de las clases, pero eso es otra historia y hablaremos de ella en el momento adecuado.

Veamos las diferentes opciones que nos ofrece cada clase.

Abre un fichero de clase en el editor de texto, que vamos a examinar su contenido. Toma, por ejemplo, book.cls, clase adecuada para la escritura de libros.

Busca las líneas que comienzan con el comando \Declareoption. Por ejemplo, hay un bloque dedicado al tamaño del papel:

\DeclareOption{a4paper}
   {\setlength\paperheight {297mm}%
    \setlength\paperwidth  {210mm}}
\DeclareOption{a5paper}
   {\setlength\paperheight {210mm}%
    \setlength\paperwidth  {148mm}}
\DeclareOption{b5paper}
   {\setlength\paperheight {250mm}%
    \setlength\paperwidth  {176mm}}
\DeclareOption{letterpaper}
   {\setlength\paperheight {11in}%
    \setlength\paperwidth  {8.5in}}
\DeclareOption{legalpaper}
   {\setlength\paperheight {14in}%
    \setlength\paperwidth  {8.5in}}
\DeclareOption{executivepaper}
   {\setlength\paperheight {10.5in}%
    \setlength\paperwidth  {7.25in}}

Esto nos indica que la clase admite, como opciones: a4paper, a5paper, b5paper, letterpaper, legalpaper y executivepaper, indicando en cada una las dimensiones correspondientes.

Estas otras líneas nos muestran que podemos elegir entre escritura a una columna o dos:

\DeclareOption{onecolumn}{\@twocolumnfalse}
\fi
\DeclareOption{twocolumn}{\@twocolumntrue}

Existe una línea que resume las opciones por defecto que ofrece la clase en caso de que no se especifiquen otras:

\ExecuteOptions{letterpaper,10pt,twoside,onecolumn,final,openright}

Es decir, la clase book imprime en tamaño letter, con una fuente de 10pt, impresión a dos caras, una columna, formato final (no borrador) y exigiendo que los capítulos empiecen sólo en páginas impares.

Esta misma línea, en la clase article:

\ExecuteOptions{letterpaper,10pt,oneside,onecolumn,final}

Vemos, como diferencia, que los artículos se diseñan para escritura a una sola cara. No hay mención al comienzo de los capítulos (openright, openany), puesto que esta clase no los incluye.

En la clase report aparece el siguiente comando:

\ExecuteOptions{letterpaper,10pt,oneside,onecolumn,final,openany}

Compáralo con el de la clase book y observa su similitud. La diferencia está en openany, que hace que los capítulos puedan comenzar tanto en páginas pares como impares.

Una pequeña observación: aunque por defecto veas un tamaño de papel letter, probablemente en tu distribución lo tengas en A4 por defecto. Esto es así porque está configurado como opción en la propia distribución. Por ejemplo, en MikTex:

¿Cómo especificamos parámetros diferentes a los que son por defecto? Los indicamos junto al comando de declaración de clase entre corchetes:

\documentclass[11pt, oneside]{book}

Este comando indicaría que empleamos la clase book, pero con la opción de fuente de 11pt y formato de una cara. Observa que los parámetros obligatorios en un comando se escriben entre llaves, mientras que los opcionales van entre corchetes.

Voy a resumirte las diferentes opciones por categorías. Ten en cuenta que no todas ellas estarán disponibles en todas las clases.

Tamaño de fuente: 10pt, 11pt y 12pt.
Tamaño de papel: a4paper, a5paper, b5paper, letterpaper, legalpaper y executivepaper.
Orientación: landscape(apaisado, si no se indica es vertical directamente).
Formato de hoja: oneside (una cara), twoside(dos caras).
Portada: titlepage, notitlepage (con portada o sin ella).
Número de columnas: onecolumn, twocolumn
Inicio de capítulos: openright (páginas impares), openany (en cualquiera).
Edición: final y draft (para borradores).

También tienes opciones para la escritura de ecuaciones (la gran especialidad de LaTeX y por la que me decidí a estudiarlo: para poder escribir con elegancia fórmulas en artículos de física y matemáticas).

Alineación de ecuaciones: fleqn, para que queden alineadas a la izquierda en vez de centradas.
Numeración de ecuaciones: leqno, para que el número de ecuación quede alineado a la izquierda y no a la derecha.

No tienes que memorizar esto. Llegado el momento, cuando necesites utilizarlo, lo aprenderás sin esfuerzo. Todo se retiene mejor cuando hay conexión con el lado práctico.

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2012/01/latex-capitulo-18-las-clases-por-defecto-y-sus-opciones/


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Python – Capítulo 28: Introducción a la librería estándar

Una de las razones que me animaron a estudiar Python, además de la elegancia del lenguaje en sí, fue que incluía una tremenda cantidad de funcionalidad extra que me permitía acometer casi cualquier tipo de proyecto de programación sin necesidad de recurrir a librerías de terceros.

Seguro que has leído alguna vez eso de que Python se distribuye «con pilas incluidas». La expresión hace mención a su famosa librería estándar, una gran colección de módulos repletos de código listos para que hagas uso de ellos.

En el capítulo de hoy mostraremos cómo utilizar la librería estándar a través de un par ejemplos sencillos.

Imagina que queremos hacer un programa que simule la tirada de un dado. Necesitaremos algún tipo de código que sea capaz de generarnos un número aleatorio entre 1 y 6. Dentro de las funciones built-in de Python no existe nada parecido. Sin embargo, en algún lugar de tu disco duro hay un fichero, random.py, que te va a sacar del atolladero.

Ese fichero, como todos los que terminan en .py, constituyen lo que se denomina un módulo. Los programas que tú escribes son también módulos en sí mismos. La diferencia es que random.py es un módulo de la librería de Python. Más que programas típicos que se ejecutan y provocan una salida concreta, lo que un módulo de la librería almacena es un conjunto de variables, funciones, clases (con sus respectivos atributos y métodos) que tú vas a poder incorporar después a tus propios programas.

El primer paso para hacer esto es lo que se conoce como importar el módulo. Para que te hagas una idea, eso es casi como si hubieras copiado el código del módulo de la librería y lo hubieras pegado junto al tuyo.

Esto se realiza con la instrucción:

import random

Observa que no necesito poner la extensión, basta con el nombre del módulo.

Por curiosidad, abre el fichero random.py con un editor de texto y observa su contenido. Cientos de líneas especializadas en la gestión de números aleatorios a tu entera disposición. Entre el amplio conjunto de funciones, existe una, randint(), que es capaz de generarnos un entero aleatorio entre dos valores, ambos inclusive, que indiquemos como parámetros.

Carga IDLE o el intérprete interactivo, que vamos a hacer unas pruebas.

Comenzamos importando el módulo random:

>>> import random

Con el módulo importado, permítete echar un vistazo a la ayuda que trae:

>>> help(random)

Puedes entretenerte un rato leyéndola si te apetece…

Vamos a intentar invocar la función randint():

>>> randint(1,6)
Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    randint(1,6)
NameError: name 'randint' is not defined

¿Cómo que no está definida? ¿No habíamos dicho que al importar el módulo teníamos a nuestra disposición todas sus funciones?

Así es. Lo que ha fallado ha sido la forma en la que hemos invocado a randint(). El modo correcto de hacerlo es precediendo el nombre de la función por el nombre del módulo al que pertenece, separados por un punto.

>>> random.randint(1,6)
4

Decimos que randint() pertenece a un espacio de nombres diferente al que usamos en nuestro programa principal. En la invocación hay que indicar que randint() está asociada al espacio de nombres random (igual que el nombre del módulo).

De hecho, podríamos tener una propia función randint() en nuestro código y no entraría en conflicto con la de random:

>>> def randint():
  print('hola')

>>> randint()
hola
>>> random.randint(1,6)
3

Veamos un segundo ejemplo:

En la librería estándar, existe un módulo especializado en el tratamiento de fechas: datetime.

Pues bien, entre lo mucho que tiene datetime nos ofrece una clase especial de objeto: date, con todos sus atributos y métodos. Uno de ellos es el método today(), que nos devuelve la fecha actual. Veámoslo en acción:

>>> import datetime
>>> print(datetime.date.today())
2012-01-24

El primer punto separa el espacio de nombres del nombre de la clase. El segundo separa la clase del método.

En próximas entregas veremos cómo crear nuestros propios módulos para ir ampliando nuestra librería personal. Entre tanto, intenta averiguar más cosas que la librería estándar de Python puede hacer por ti.

Javier Montero Gabarró


Python – Capítulo 28: Introducción a la librería estándar


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Construcción de acordes – 6: Sexta y menor sexta

Aprovechando que estamos en la sexta entrega de esta serie, vamos a dedicar este artículo a los acordes de sexta y menor sexta.

Aunque no son acordes que surjan de modo natural armonizando en terceras (una tercera sobre la quinta es una séptima), la sexta da un sonido tan característico que no deben faltar en el repertorio de ningún arreglista o compositor. Haz sonar un La menor sexta con ritmo de bossa nova, cierra los ojos y verás la majestuosa figura del Cristo del Corcovado en Río de Janeiro.

Los acordes de sexta se utilizan, a veces, en sustitución de acordes de séptima mayor en aquellos casos en los que hay un conflicto melódico. En efecto, la séptima mayor y la tónica se hayan a una distancia de un semitono, lo que puede resultar en una fuerte disonancia. No es de extrañar que, para mucha gente, la tónica sea una nota a evitar melódicamente sobre un acorde de séptima mayor. Cambia la séptima mayor por una sexta y habrás solucionado el conflicto.

Comencemos por la versión mayor. Toma una triada mayor, agrégale la sexta y tendrás el conocido como acorde de sexta. En cifrado moderno se representa añadiendo un 6 al nombre de la fundamental.

6: 1 – 3 – 5 – 6

Veamos un ejemplo. ¿Qué notas constituyen C6?

Desplegamos la escala mayor de Do:

C – D – E – F – G – A – B – C

Tomamos los grados indicados y obtenemos:

C6: C – E – G – A

Calculemos las notas de A6. La mayor es:

A – B – C# – D – E – F# – G#

A6: A – C# – E – F#

Para obtener un acorde menor sexta tomamos la triada menor y le superponemos una sexta. Es decir:

m6: 1 – b3 – 5 – 6

Por ejemplo, utilizando las dos escalas del ejemplo anterior y aplicando la fórmula, obtenemos:

Cm6: C – Eb – G – A

Am6: A – C – E – F#

Da janela vê-se o Corcovado, O Redentor
Que lindo…

Javier Montero Gabarró


Construcción de acordes – 6: Sexta y menor sexta


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Encabezados en las tablas HTML

En el artículo anterior vimos el procedimiento básico para crear tablas en HTML. Hoy voy a explicarte cómo mejorar la presentación definiendo encabezados que sirvan de títulos a las filas o columnas.

Abre la página de ejemplo y déjala a la vista en una ventana o pestaña aparte, pues acudiremos a ella continuamente.

La Tabla 1 ya la conoces. Es una simple matriz de datos de dos filas por tres columnas que nos servirá como conejillo de indias y sobre la que realizaremos todo tipo de perversiones.

Recordemos su código:

Tabla 1
<table border="1">
<tr>
  <td>manzana</td><td>pera</td><td>fresa</td>
</tr>
<tr>
  <td>tomate</td><td>cebolla</td><td>pepino</td>
</tr>
</table>

Vimos que el método para crearla era aproximarnos a ella fila a fila, cada una contenida entre las etiquetas <tr> ... </tr>. Cada celda individual dentro de una fila se delimitaba con las etiquetas <td> ... </td>. Todo el conjunto quedaba encerrado entre <table> ... </table>.

Los encabezados de una tabla, sus títulos, no son más que celdas que tienen un formato diferente al de una celda normal. Los navegadores suelen presentarlas destacando su contenido en negrita. Obsérvalo en las tablas 3, 4 y 5 del ejemplo.

El único secreto que tiene la confección de encabezados es entender que pueden aplicarse a cualquier celda, no sólo a la primera fila o columna. Observa la Tabla 2 y fíjate cómo aparecen destacados elementos que estrictamente no constituyen un encabezado. Para crearlos, basta con cambiar la etiqueta de sus celdas: en vez de <td> empleamos <th> (de table header, cabecera de tabla).

Este es el código que genera la tabla:

Tabla 2
<table border="1">
<tr>
  <th>manzana</th><td>pera</td><th>fresa</th>
</tr>
<tr>
  <td>tomate</td><th>cebolla</th><td>pepino</td>
</tr>
</table>

Fíjate cómo aquellos elementos que queremos destacados tienen la etiqueta <th> y los que no <td>.

Entendido esto el resto no tiene historia. Vamos a programar la Tabla 3, en la que la fila superior titula cada columna.

Tenemos tres filas (la de título más las dos de datos), por lo que nos aparecerán tres secciones <tr>. En la primera fila todas sus celdas están destacadas, por los que su etiqueta será <th>.

Tabla 3
<table border="1">
<tr>
  <th>Columna 1</th><th>Columna 2</th><th>Columna 3</th>
</tr>
<tr>
  <td>manzana</td><td>pera</td><td>fresa</td>
</tr>
<tr>
  <td>tomate</td><td>cebolla</td><td>pepino</td>
</tr>
</table>

La Tabla 4 ilustra un ejemplo en el que los encabezados titulan cada fila. Tenemos dos filas por cuatro columnas esta vez. Sólo el primer elemento de cada fila tendrá por etiqueta <th>.

Tabla 4
<table border="1">
<tr>
  <th>Fila 1</th><td>manzana</td><td>pera</td><td>fresa</td>
</tr>
<tr>
  <th>Fila 2</th><td>tomate</td><td>cebolla</td><td>pepino</td>
</tr>
</table>

La Tabla 5 tiene títulos tanto en las filas como en las columnas. En este caso, el primer elemento de la primera fila no contiene dato alguno, pero aún así ponemos el par de etiquetas <td></td>, aunque no haya nada entre ellas. Las restantes celdas de la fila son encabezados. En las filas 2 y 3, sólo el primer elemento es un encabezado. El código te ilustrará esto con claridad:

Tabla 5
<table border="1">
<tr>
  <td></td><th>Columna 1</th><th>Columna 2</th><th>Columna 3</th>
</tr>
<tr>
  <th>Fila 1</th><td>manzana</td><td>pera</td><td>fresa</td>
</tr>
<tr>
  <th>Fila 2</th><td>tomate</td><td>cebolla</td><td>pepino</td>
</tr>
</table>

En el próximo artículo veremos cómo crear tablas con celdas irregulares, resultado de combinar entre sí celdas contiguas.

Javier Montero Gabarró


Encabezados en las tablas HTML


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Construcción de acordes – 5: Séptima mayor

Nuestra siguiente visita turística al mundo de los acordes tiene por escala el de séptima mayor. Si un acorde abre la puerta al mundo armónico de las cuatriadas es sin duda éste, resultado de la armonización de la escala mayor sobre los grados de tónica y subdominante.

Empecé a incluirlo en mis composiciones tras la exposición a la música popular brasileña, con ese universo armónico tan exótico, muy influido por la bossa nova, que a su vez lo aprendió del jazz.

Si quieres dar tu primer paso hacia armonías más complejas, este es el primer acorde que debes dominar.

Un pequeño inciso sobre su nombre: decimos que el acorde es de séptima mayor, y no mayor séptima. El nombre hace referencia a que se trata de una séptima mayor (cuando en un acorde de septima no se dice nada se sobreentiende que la séptima es menor, b7). La confusión es debida a una mala traducción del inglés: F major seventh significa F séptima mayor, y no F mayor séptima. Recuerda que, en inglés, el adjetivo precede al sustantivo.

En cifrado moderno, es habitual encontrar el acorde de los siguientes modos:

maj7, 7M, M7, Δ (este último, símbolo de delta, es muy común en el jazz).

No te sorprenda, tampoco, si escuchas a alguien referirse a este acorde como simplemente mayor. Es la cuatriada mayor por excelencia.

Su fórmula es muy sencilla:

7M: 1 – 3 – 5 – 7

Es decir: a partir de cualquier fundamental, construye la escala mayor y toma directamente los grados primero, tercero, quinto y séptimo.

Construyamos, por ejemplo, el acorde Do séptima mayor, C7M. Comencemos por la escala de Do mayor:

C – D – E – F – G – A – B – C

Si tomamos los grados indicados, tenemos:

C7M: C – E – G – B

Veamos otro ejemplo: La séptima mayor. La escala de La mayor es:

A – B – C# – D – E – F# – G# – A

A7M: A – C# – E – G#

Este acorde trae a mi memoria un recuerdo que data de los tiempos en los que aún no sabía qué era una séptima mayor. Me encontré una transcripción de la siempre alucinante Telephone line, de la Electric Light Orchestra. El primer acorde que marcaba era un Amaj7, por entonces desconocido para mí, junto a la siguiente representación para guitarra:

x02120

Fue colocar ese acorde en la guitarra, rasguearlo y estremecerme de emoción…

Hello, how are you?
Have you been alright through all those lonely, lonely, lonely, lonely nights?

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2012/01/construccion-de-acordes-5-septima-mayor/


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Tablas básicas en HTML

Vamos a dedicar una serie de artículos a explicar cómo construir tablas en HTML, elementos imprescindibles para presentar datos estructurados. Las tablas tienen cierta relevancia histórica, pues se abusaba de ellas para diseñar la estructura de la propia página en sí. La primera edición de «El Club del Autodidacta», hace más de quince años, empleaba las tablas como principal elemento de diseño.

Hoy día ya no es necesario recurrir a ellas para mostrar una página perfectamente seccionada. La versión actual de «El Club del Autodidacta», como la gran mayoría de las páginas actuales, consigue diseños infinitamente mejores empleando una tecnología sencilla de la que hablaremos largo y tendido en este blog: CSS, las hojas de estilo «en cascada».

Pero, aún así, para presentar un conjunto de datos en formato tabular, las tablas HTML siguen siendo la mejor opción. Voy a mostrarte cómo generarlas.

Comienza echando un vistazo a esta página, en la que se muestra una tabla de dos filas por tres columnas presentada con tres tipos de borde diferentes.

El primer paso para crear una tabla es delimitarla en HTML con el par de etiquetas <table> ... </table>.

<table>
...
</table>

Una vez definido el contenedor global nos aproximaremos a su contenido pensando en filas. Emplearemos las etiquetas <tr> ... </tr> (de table row, fila de tabla), para delimitar cada fila. En el ejemplo tenemos dos filas, por los que nos encontraremos dos pares de etiquetas <tr>:

<table>
<tr>
...  
</tr>

<tr>
...  
</tr>
</table>

Entre medias, en el espacio definido por los puntos suspensivos, introduciremos los datos de cada fila propiamente dichos, delimitando cada columna por el par de etiquetas <td> ... </td> (de table data, datos de la tabla).

Observa la tabla completa:

<table>
<tr>
  <td>manzana</td><td>pera</td><td>fresa</td>
</tr>
<tr>
  <td>tomate</td><td>cebolla</td><td>pepino</td>
</tr>
</table>

Este código se corresponde a la primera de las tres tablas del ejemplo, que aparece sin bordes. Si deseamos enmarcarlas podemos recurrir al atributo border, asignándole un valor que hará referencia al grosor del marco. Fíjate cómo he cambiado la etiqueta <table> con el nuevo atributo.

<table border="1">
<tr>
  <td>manzana</td><td>pera</td><td>fresa</td>
</tr>
<tr>
  <td>tomate</td><td>cebolla</td><td>pepino</td>
</tr>
</table>

La segunda tabla del ejemplo se corresponde con el código anterior. Incrementando el valor del atributo border aumentamos, a su vez, su grosor. El tercer ejemplo emplea <table border="5">.

Cuando empecemos con las hojas de estilo veremos maneras mucho más potentes de jugar con el diseño de la tabla. Esta ha sido la evolución general del HTML: se ha ido separando el contenido del diseño y, aunque muchas etiquetas aún mantienen atributos que afectan su aspecto, por lo general, se suele recurrir a las hojas de estilo para todas las consideraciones de diseño.

En el próximo artículo le daremos una pequeña vuelta al concepto de tabla y aprenderemos a crear encabezados que identifiquen las filas o columnas.

Javier Montero


Tablas básicas en HTML


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

mIRC – Capítulo 17: El bacalao es salao

En el artículo anterior vimos un método para controlar el acceso a un canal del que somos operadores: estableciendo el modo invitación y, manualmente, invitando uno a uno a todos los eventuales asistentes. Esto puede ser una labor tediosa, aunque más adelante, cuando comencemos a programar el mIRC, aprenderemos a automatizar este tipo de tareas.

Existe, indudablemente, un método más sencillo de regular la entrada al canal: estableciendo una contraseña, de modo que sólo aquellos usuarios que faciliten la palabra de paso correcta podrán entrar.

Supongamos que sostenuto, operador del canal #probilandia, desea establecer una contraseña de acceso. Para ello, ejecuta el comando:

/mode #probilandia +k bacalao

El modificador +k protege el acceso al canal mediante una contraseña que facilitamos a continuación.

Esto, naturalmente, también lo podíamos haber configurado en Channel Central, pero no olvidemos que este curso está orientado a aprender magia programando y, para ello, necesitamos saber hacer absolutamente todo a través de comandos.

Si ahora el incauto plutonio pretendiera acceder al canal se encontraría con una pequeña sorpresa:

/join #probilandia
#probilandia unable to join channel (need correct key)

Si se sabe la contraseña, deberá facilitarla como parámetro adicional del siguiente modo:

/join #probilandia bacalao

Podemos utilizar el modificador contrario, -k, para devolver el canal a su estado libre:

/mode #probilandia -k

¿Quién dijo que el IRC no era un espacio adecuado para encuentros de grupos de trabajo? Protege tu canal mediante una contraseña y podrás realizar tus reuniones virtuales privadas sin la incomodidad de visitas indeseadas.

Javier Montero


mIRC – Capítulo 17: El bacalao es salao


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

LaTeX – Capítulo 17: Limitando el ámbito mediante grupos

Si recuerdas el capítulo en el que tratamos las declaraciones, vimos que estos tipos de comandos actuaban a modo de conmutadores, activando o desactivando diferentes modos de operación. Así, por ejemplo, con el comando \itshape activábamos la escritura en itálica, que permanecía así hasta que ejecutábamos otro comando incompatible con éste como, por ejemplo, \upshape, que devolvía el texto a una verticalidad normal.

Vimos también que dentro de un comando o un entorno su ámbito, es decir, su alcance de acción, venía delimitado naturalmente por el bloque al que pertenecía.

Así pues, en el siguiente ejemplo

\textit{La casa de la pradera era una \bfseries serie antológica}

el ámbito de la declaración \bfseries, que activa la escritura en negrita, concluye con el cierre de las llaves del comando y todo el texto que escribiéramos después de «serie antológica» aparecería en modo normal, sin necesidad de devolver el estado con \mdseries.

Exactamente lo mismo sucedería con esto:

\begin{itshape}
La casa de la pradera era una \bfseries serie antológica
\end{itshape}

Existe otro modo de restringir el ámbito: los grupos.

Un grupo no es más que un conjunto de texto o comandos delimitado entre un par de llaves {}.

Fíjate de que modo más sencillo limitaríamos el ámbito de \bfseries:

La casa de la pradera era una {\bfseries serie antológica}

El par de llaves que hemos introducido define un grupo y todas las declaraciones en su interior pierden efecto fuera de él.

La frase completa la podemos reescribir, entonces, del siguiente modo, empleando sólo declaraciones:

{\itshape La casa de la pradera era una \bfseries serie antológica}

Fuera de ese grupo el texto dejará de ser itálica o negrita.

Los grupos pueden ser anidados:

{\itshape La casa {\bfseries de la pradera} era una serie antológica}

En este ejemplo todo está en itálica; pero, además, en negrita, sólo el fragmento «de la pradera».

Sé cuidadoso y asegúrate, en estos casos, de que cierras tantas llaves como abres.

Javier Montero


LaTeX – Capítulo 17: Limitando el ámbito mediante grupos


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies