La fórmula absoluta de los modos de la escala mayor

Objetivo: aprender a deducir con facilidad la fórmula absoluta de cada uno de los modos de la escala mayor.

Doy por asumidos una serie de conceptos necesarios antes de proceder con la lectura de este artículo:

– Sabes lo que son los modos de la escala mayor.

– Comprendes lo que defino como fórmula absoluta de una escala (en oposición a la relativa).

Conociendo cualquiera de las dos fórmulas podemos calcular fácilmente las notas que constituyen cada escala. Hay un buen número de artículos con ejercicios prácticos en el blog en los que se realizan estos cálculos; recurre a ellos en caso de necesidad.

Más adelante, cuando conectemos todos estos esquemas teóricos en nuestro propio instrumento veremos que el conocimiento de estas fórmulas nos facilitará tremendamente la tarea de deducir y retener cada escala en la práctica.

Hoy obtendremos, partiendo de lo que ya sabemos sobre los modos de la escala mayor, la fórmula relativa de cada uno de ellos.

Tomemos la fórmula absoluta de la escala mayor:

t - t - s - t - t - t - s

La he escrito expresamente en minúsculas; enseguida comprenderás por qué.

Repite, a continuación, exactamente la misma secuencia:

t - t - s - t - t - t - s - t - t - s - t - t - t - s 

Las siete primeras, correspondientes a la escala mayor (o modo jónico), las voy a resaltar ahora con letras mayúsculas:

T - T - S - T - T - T - S - t - t - s - t - t - t - s

Sabemos que el modo dórico se obtiene comenzando la escala mayor por el segundo grado. Vuelve a la secuencia de tonos y semitonos original y destaca en mayúsculas el bloque de siete construido a partir del segundo término:

t - T - S - T - T - T - S - T - t - s - t - t - t - s 

Ese bloque en mayúsculas constituye la fórmula absoluta del modo dórico:

Escala dórica: T – S – T – T – T – S – T

Razonando de igual modo, obtenemos la fórmula de los restantes modos.

Tomando un bloque de siete a partir del tercer término obtenemos la fórmula del modo frigio:

t - t - S - T - T - T - S - T - T - s - t - t - t - s

Escala frigia: S – T – T – T – S – T – T

Sobre el cuarto grado encontramos el modo lidio:

t - t - s - T - T - T - S - T - T - S - t - t - t - s

Escala lidia: T – T – T – S – T – T – S

El modo mixolidio se construye sobre el quinto grado:

t - t - s - t - T - T - S - T - T - S - T - t - t - s

Escala mixolidia: T – T – S – T – T – S – T

En el sexto está el modo eólico (o escala menor natural):

t - t - s - t - t - T - S - T - T - S - T - T - t - s

Escala eólica: T – S – T – T – S – T – T

Finalmente, a partir del séptimo grado se halla el modo locrio:

t - t - s - t - t - t - S - T - T - S - T - T - T - s

Escala locria: S – T – T – S – T – T – T

Así de sencillo; recuerda este truco cada vez que necesites recuperar alguna de estas fórmulas.

Vamos a recopilar en una tabla, para futuras referencias, toda esta información:

Escala jónica (mayor): T - T - S - T - T - T - S

Escala dórica: T - S - T - T - T - S - T

Escala frigia: S - T - T - T - S - T - T

Escala lidia: T - T - T - S - T - T - S

Escala mixolidia: T - T - S - T - T - S - T

Escala eólica (menor natural): T - S - T - T - S - T - T

Escala locria: S - T - T - S - T - T - T

Llegado el momento deberemos memorizarlas. Eso nos dará una comprensión profunda de cada escala, lo que sin duda nos ayudará en su aprendizaje sobre el instrumento.

Entendidas estas relaciones fundamentales, el siguiente paso consiste en la deducción de las fórmulas relativas. No sólo son más sencillas de retener, sino que nos sirven para un cálculo inmediato de la composición de cualquier modo, además de permitirnos situarlos en contexto.

Javier Montero Gabarró


La fórmula absoluta de los modos de la escala mayor


Fecha de la última modificación: 9 de diciembre de 2013


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


Índice completo de artículos sobre armonía.

LaTeX: Aproximación a la gestión de bibliografías

Objetivo: presentar las distintas maneras que ofrece LaTeX para la inclusión de bibliografías.

\LaTeX engancha, reconócelo. Admito que su aprendizaje es duro, pero no hace falta llegar a dominarlo para poder disfrutar de sus beneficios. Con un conjunto básico de técnicas y conceptos puedes lograr resultados tipográficos de calidad profesional.

Y es que el tiempo empleado en aprenderlo es amortizado con creces después. Si eres escritor, no necesariamente científico, seguro que valoras esa capacidad única que tiene de permitir que te concentres en lo que escribes sin preocuparte por el aspecto. Limítate a indicar qué es cada elemento y deja que \LaTeX se ocupe de la presentación y la gestión de las referencias cruzadas.

Con las bibliografías, otro tanto de lo mismo. Modifica tranquilo tu lista de referencias bibliográficas, que \LaTeX actualizará adecuadamente las citas a lo largo del cuerpo del documento. Puedes olvidarte también de su formato y confiar en la coherencia de \LaTeX, o personalizarlo de acuerdo a tus necesidades y reutilizarlo más adelante.

Existen diversos modos de gestionar la bibliografía en \LaTeX y vamos a aproximarnos a ellos de un modo gradual y creciente en complejidad.

Todo surge tras tu primera necesidad: tengo que incluir una bibliografía en este artículo. ¿Cómo lo hago?

Veremos que, al igual que sucede con otras estructuras, como las listas o las tablas, \LaTeX ofrece un entorno en el que figurará la bibliografía:

\begin{thebibliography}
....
\end{thebibliography}

Entre medias, empleando un comando especial, incluiremos cada entrada bibliográfica, que luego será oportunamente referenciada en el documento.

Este procedimiento, que explicaremos con detalle en el siguiente artículo, debe ser tu primera parada en el camino. Tiene sus ventajas e inconvenientes: es muy sencillo y en cuestión de un par de minutos puedes adquirir todo el conocimiento necesario para resolver tu problema; por el contrario, como limitación (que en determinadas circunstancias puede ser hasta interesante) tú debes ocuparte del estilo de cada línea bibliográfica, decidiendo qué debe figurar en mayúsculas o en cursiva o el orden de aparición de cada campo. Te recuerdo que escribir bibliografías es toda una ciencia repleta de normas y recomendaciones de estilo.

Una vez te vas sintiendo en tu salsa, si generas muchos escritos con bibliografía, te planteas inevitablemente la siguiente cuestión: ¿no habría algún modo de poder reutilizar entradas y no tener que volver a escribirlas cada vez?

Y es entonces cuando descubres el programa BibTeX

Con BibTeX mantienes uno o varios ficheros aparte con toda tu colección de bibliografías, tu librería. Después indicas las entradas que necesites en tu documento y \LaTeX, en conjunción con BibTeX, incluirá las referencias oportunas y construirá, automáticamente, el índice bibliográfico.

Es más, selecciona simplemente el tipo y estilo de bibliografía y el resultado presentará un aspecto coherente y uniforme.

¿Dónde obtenemos este maravilloso programa? No debes preocuparte: casi con toda seguridad BibTeX estará incluido en tu propia distribución de \LaTeX.

Puede que, con el tiempo, incluso BibTeX te resulte incluso pequeño y quieras personalizar aún más tu experiencia bibliográfica. Entonces deberás recurrir al uso de paquetes que extenderán la funcionalidad de \LaTeX y BibTeX.

Todo a su momento y según su proceso natural. ¿Listo para crear tu primera bibliografía en \LaTeX?

Javier Montero Gabarró


LaTeX: Aproximación a la gestión de bibliografías


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


Índice completo de artículos relacionados con \LaTeX.

Python: Cómo copiar un diccionario

Objetivo: aprender a copiar un diccionario en Python, evitando referencias al mismo objeto.

Al igual que las listas, los diccionarios, como sabes, tienen cosquillas (no son inmutables). Padecen el mismo problema que aquéllas a la hora de copiarlas: podemos obtener referencias al mismo objeto que, si no somos cuidadosos, pueden llevarnos a un buen quebradero de cabeza.

Observa el fenómeno:

>>> x = {'manzana':'verde', 'plátano':'amarillo'}
>>> y = x
>>> y
{'plátano': 'amarillo', 'manzana': 'verde'}

Aparentemente, aunque x e y tengan el mismo valor, se trataría de objetos distintos y cada uno podría vivir, desde este momento, su propia vida independiente. Al menos, eso es lo que esperaríamos en otros lenguajes de programación.

Pero no es así, uno de los grandes atractivos de Python: x e y no son más que dos collares en el mismo perro.

>>> y is x
True

De hecho, si modificamos x, los cambios también se reflejan en y:

>>> x['fresa'] = 'roja'
>>> y
{'fresa': 'roja', 'plátano': 'amarillo', 'manzana': 'verde'}

Entonces, ¿cuál es el modo correcto de obtener un duplicado independiente de un diccionario?

Los diccionarios tienen una inmesa colección de metodos que, poco a poco, conviene ir aprendiendo. Uno de ellos, copy(), soluciona nuestro problema:

>>> z = x.copy()
>>> z
{'fresa': 'roja', 'plátano': 'amarillo', 'manzana': 'verde'}

La variable z apunta a un duplicado de x, pero observa que ahora son objetos distintos:

>>> z is x
False

Si modificamos x podemos comprobar que z no se ve afectada:

>>> del x['plátano']
>>> x
{'fresa': 'roja', 'manzana': 'verde'}
>>> z
{'fresa': 'roja', 'plátano': 'amarillo', 'manzana': 'verde'}

Habríamos llegado al mismo resultado a través de la función dict(), empleada para construir diccionarios:

>>> z = dict(x)

Hablaremos de dict() con mucho más detalle más adelante. Quédate, hasta entonces, con estos dos modos de duplicar diccionarios.

Observa que la variable y, copia burda de x, se ha quedado sin su tan rico en potasio plátano.

>>> y
{'fresa': 'roja', 'manzana': 'verde'}

Se lo merece, ¡esto es Python!

Javier Montero Gabarró


Python: Cómo copiar un diccionario


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


Consulta el índice completo de artículos relacionados con Python.

Descargando Knoppix 7.0.4

Desde hace dos de semanas, la última versión de Knoppix, 7.0.4, está disponible para su descarga. En los repositorios oficiales podrás encontrar tanto la versión en CD como en DVD. Siempre recomiendo hacerse con las dos: aunque la versión CD contiene las aplicaciones de uso más frecuente, por cuestiones de espacio determinadas herramientas importantes, como el antivirus ClamAV o el gestor de máquinas virtuales Virtualbox, han sido relegados a la versión DVD.

Sé cuidadoso al elegir el fichero a descargar: observa bien la versión y el idioma de la distribución (inglés o alemán, aunque en el arranque podrás optar fácilmente por un entorno en español). Dependiendo del mirror que elijas, encontrarás también ficheros precedidos por el nombre ADRIANE. Son versiones de Knoppix especializadas para personas con discapacidad visual (como es el caso de Adriane, mujer de Klaus Knopper, el creador de Knoppix).

Si ya conoces Knoppix poco te podré contar que tú no sepas; pero si eres novato te diré que, en esencia, no es más que una distribución Linux del tipo LiveCD. Esto significa que no necesitas instalarla en el ordenador para poder disfrutarla: basta con que arranques con el CD o DVD para tener a tu disposición más de 3000 herramientas (en el DVD) para casi cualquier propósito que puedas imaginar. Y todo ello sin afectar en absoluto (salvo que deliberadamente quieras hacerlo) el equipo utilizado.

Una de las características más pulidas de Knoppix en relación a otras distribuciones similares es la extraordinaria capacidad para detectar el hardware. Siempre hace su mejor esfuerzo por arrancar en las mejores condiciones posibles y, de no lograrlo, ofrece modos de personalizar el arranque que te pueden ayudar a salvar el atolladero.

Sea cuál sea tu relación con los ordenadores podrás sacarle partido a Knoppix. Los administradores de sistemas encontramos en esta distribución un compañero excelente para ayudarnos en nuestro día a día. Echa el DVD en el bolso y podrás, estés donde estés, hacer una imagen del disco de un portátil, eliminar un virus de un Windows dado por desahuciado, recuperar el Master Boot Record de un equipo que no arranca o incluso restablecer la contraseña del administrador de un servidor Windows.

Pero no hace falta que seas ningún experto para beneficiarte de Knoppix. Es más, puede servirte como fabulosa introducción al universo Linux sin el riesgo de perjudicar un ápice tu sistema actual.

¡Te animo a utilizarlo!

Javier Montero Gabarró


Descargando Knoppix 7.0.4


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: Cómo copiar una lista

Objetivo: aplicar las técnicas de slicing de secuencias para obtener un duplicado de una lista.

En el artículo anterior, El sagrado misterio de la inmutabilidad, pudimos apreciar un fenómeno curioso a la hora de trabajar con listas.

Supongamos las siguientes asignaciones aparentemente inocentes:

>>> x = [1, 2]
>>> y = x

Tiene toda la pinta de que y es una copia de x, ¿no?.

>>> y
[1, 2]

Si ahora modificamos la lista x:

>>> x.append(3)
>>> x
[1, 2, 3]

¿Qué habrá sucedido con y?

>>> y
[1, 2, 3]

Atención: ¡los cambios en x también han ocurrido en y! Esto es Python.

Lo que está pasando es que x e y se corresponden con el mismo objeto en memoria. Esto no tendría la menor importancia desde el punto de vista del programador si el objeto en cuestión fuera inmutable, como un número, un string o una tupla, pues no pueden ser modificados in situ. En cambio, con las listas tenemos un serio problema, como hemos podido comprobar.

¿Cómo hacemos, entonces, si necesitamos duplicar una lista de modo que cada una pueda vivir su vida libre independientemente de la otra?

Las técnicas de slicing de secuencias, que ya hemos dejado caer con anterioridad, permiten la independencia de las listas clonadas.

Repasemos brevemente el concepto de slicing, o troceado de una secuencia.

>>> x = 'pradera'
>>> x[1:5]
'rade'

Con esa instrucción extraemos desde el elemento cón índice 1 (recuerda que, en las secuencias, el primer elemento tiene por índice cero) hasta, y sin incluir, el de índice 5; es decir, desde el 1 al 4.

Fíjate en el formato de la instrucción: entre corchetes y separando los límites mediante los dos puntos.

Podemos omitir uno de los índices:

>>> x[:5]
'prade'

que equivale a tomar todos los caracteres desde el principio hasta el de índice cuatro.

>>> x[3:]
'dera'

que es lo mismo que extraer desde el que tiene por índice 3 hasta el último de la secuencia.

O también podemos suprimir los dos, equivalente a extraer todo desde el principio hasta el fin:

>>> x[:]
'pradera'

¿Qué sentido tiene realizar algo así, te preguntarás?

La clave estriba en que siempre que hagamos un slicing de una lista, obtendremos un objeto distinto, aunque sea un slicing como el anterior, de principio a fin.

Obsérvalo:

>>> x = [1, 2]
>>> y = x[:]
>>> y
[1, 2]

Tras esta operación y contiene el resultado de la extracción completa de los elementos de x, pero ahora sí que se trata de un duplicado independiente. Comprobémoslo:

>>> id(x)
162280364
>>> id(y)
162280556

También podríamos haber empleado el operador is para verificar si dos variables apuntan al mismo objeto, lo que es más rápido que comprobar las identidades individuales:

>>> x is y
False

Hemos logrado separar a las listas siamesas. Una última comprobación:

>>> x.append(3)
>>> x
[1, 2, 3]
>>> y
[1, 2]

Ley de vida: x e y dejan de ser almas paralelas y cada una recorre ahora su propio camino hasta que, inevitablemente, llegue el día en que dejen de existir.

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2012/09/python-como-copiar-una-lista/


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


Consulta el índice completo de artículos relacionados con Python.

Python: El sagrado misterio de la inmutabilidad

Objetivo: comprender los conceptos críticos de mutabilidad, inmutabilidad y referencia en Python.

Estás ante un artículo esencial en tu formación como programador en Python. Te llevará sólo cinco minutos leerlo, pero puede dar luz sobre conceptos que no resultan ni mucho menos obvios cuando se comienza con Python, particularmente si procedes de otros lenguajes de programación.

Por lo general, cuando empezamos a estudiar un lenguaje de programación, se nos cuenta que existen distintos tipos de datos, tales como numéricos, strings, etc.

En Python se nos enseña algo más: determinados tipos son inmutables y otros mutables. Los números, los strings y las tuplas son inmutables. Por el contrario, las listas son mutables.

Ahí ya empiezan a sacudirnos algo; pero nuestro cerebro, al que no le gustan las dudas, intenta buscar una respuesta coherente para no quedarse atascado y seguir avanzando. Claro: los números, los strings y las tuplas no se pueden modificar, mientras que las listas .

Bueno, bueno, un momento:

>>> a = 5
>>> b = 'pradera'

La variable a contiene un número; la variable b contiene un string. Hemos dicho que los números y los strings son inmutables. ¿Significa eso que no podemos modificar ni a ni b?

>>> a = 6
>>> b = 'casa'
>>> a
6
>>> b
'casa'

Pues sí, se pueden modificar (de no ser así Python tendría un serio problema), por lo que eso de la inmutabilidad debe de significar algo diferente. Decir que un tupla es inmutable, pero una lista no, ¿significará acaso que ésta tiene cosquillas pero la otra no?

Más adelante cuando estudiamos las listas y las tuplas creemos haber comprendido, al fin, el misterio.

>>> lista = [1, 2, 3, 4]
>>> lista[0] = 5
>>> lista
[5, 2, 3, 4]

Bien: las listas, mutables, se pueden modificar.

>>> tupla = (1, 2, 3, 4)
>>> tupla[0] = 5
Traceback (most recent call last):
  File "<pyshell#55>", line 1, in <module>
    tupla[0] = 5
TypeError: 'tuple' object does not support item assignment

En cambio, las tuplas, inmutables, no, como podemos comprobar.

Aprendemos también que los strings también son secuencias, como las listas y las tuplas y, como tales, podemos acceder a sus caracteres individuales:

>>> serie = 'la casa de la pradera'
>>> serie[3]
'c'

Pero no podemos modificarlos:

>>> serie[3] = 'k'
Traceback (most recent call last):
  File "<pyshell#60>", line 1, in <module>
    serie[3] = 'k'
TypeError: 'str' object does not support item assignment

Un error semejante al que recibimos al tratar de modificar una tupla. Esto hace que cuadre todo: los strings son inmutables, también.

Pero ¿cuadra realmente todo? Parece que sí, aunque no aparenta tener mucho sentido práctico eso de la inmutabilidad de los números.

Tarde o temprano, cualquier estudiante de Python que ya ha programado en otros lenguajes se enfrenta al siguiente misterio.

Observémoslo muy despacio:

>>> x = 5
>>> y = x

Pregunta: ¿cuánto crees que vale y?

En efecto, 5:

>>> y
5

Modifiquemos ahora el valor de x:

>>> x = 6

¿Cuánto crees que valdrá ahora y?

Vamos a ver, no me asustes: x e y son dos variables diferentes, cada una con su propio contenido; por lo tanto y tiene que seguir valiendo 5, aunque hayas modificado x, ¿no?

En efecto, así es:

>>> y
5

Veamos otro ejemplo. Ahora x es una lista:

>>> x = [1, 2, 3, 4]
>>> y = x
>>> y
[1, 2, 3, 4]

Voy a modificar el valor de x:

>>> x[0] = 5
>>> x
[5, 2, 3, 4]

¿Cuánto crees que valdrá ahora y?

Por la lógica anterior, x e y son dos variables diferentes, cada una con su propio contenido, por lo que cabría esperar que el valor de y fuera [1, 2, 3, 4].

Pero no es así:

>>> y
[5, 2, 3, 4]

Esto rompe completamente nuestros esquemas. Si somos programadores en otros lenguajes una alarma nos sacude inmediatamente.

¿Por qué al modificar x ha cambiado y también?

De acuerdo: los números son inmutables, pero las listas no. ¿Pero qué tiene que ver esto con el hecho de que se haya modificado el valor de y?

Para resolver el misterio hace falta un una nueva pieza clave: el concepto de referencia.

Veamos lo que está sucediendo realmente entre bastidores:

>>> x = 5

En Python, todo son objetos. Se acaba de crear uno nuevo: un número de valor 5.

Este objeto, que reside en algún lugar de la memoria, posee un identificador único que lo diferencia del resto de los objetos. Piensa en él como si fuera su DNI (es, en realidad, la dirección de memoria en la que reside el objeto).

Para conocer ese identificador, Python dispone de la función id():

>>> id(5)
137396064

Y ahora el concepto crítico: la variable x no es más que una referencia a ese objeto. A efectos prácticos, es como si se tratara de un puntero (empleando conceptos de otros lenguajes) a ese objeto. No contiene su valor, sino una referencia a él.

La función id(), aplicada a una variable, nos devuelve el id del objeto al que referencia, por lo que obtenemos el mismo valor que antes:

>>> id(x)
137396064

Proseguimos; asignamos a la variable y el valor de x:

>>> y = x

Observa ahora cuidadosamente qué pasa al preguntar por el id del objeto al que referencia y:

>>> id(y)
137396064

Exactamente el mismo al que referencia x. Tanto x como y apuntan al mismo objeto.

Este es un concepto radicalmente distinto al de las variables en otros lenguajes, en los que el contenido de x y de y estaría en diferentes direcciones de memoria.

A continuación, modificamos x:

>>> x = 6
>>> id(x)
137396080

Se ha creado un nuevo objeto, de valor 6, y ahora x apunta a ese valor. Esto también es muy diferente a lo que sucedería en otros lenguajes: la variable x seguiría en la misma dirección de memoria, habiendo modificado únicamente su contenido.

Fijémonos que, como es de esperar, y sigue apuntando al objeto primero:

>>> id(y)
137396064
>>> y
5

Analicemos ahora qué sucede en el caso de las listas:

>>> x = [1, 2, 3, 4]
>>> y = x
>>> id(x)
170964396
>>> id(y)
170964396

De momento, todo es exactamente igual que antes: se ha creado un único objeto, la lista [1, 2, 3, 4], que está referenciado por dos variables, x e y.

Si ahora modificamos directamente el objeto (al ser mutable, podemos hacerlo):

>>> x[0] = 5
>>> id(x)
170964396
>>> id(y)
170964396

comprobamos que tanto x como y siguen siendo referencias al mismo objeto.

Por lo tanto y tiene el mismo valor que x:

>>> y
[5, 2, 3, 4]

En el ejemplo anterior, cuando hicimos x = 6, se creó un nuevo objeto. En el caso de la lista, hemos modificado in situ el propio objeto, aprovechándonos de su mutabilidad. Es como si un cirujano hubiese realizado una operación sobre el objeto.

La situación habría sido muy distinta si hubiéramos hecho esto otro:

>>> x = [1, 2, 3, 4]
>>> y = x
>>> x = [5, 2, 3, 4]
>>> y
[1, 2, 3, 4]
>>> id(x)
170489580
>>> id(y)
170791756

Fíjate en la importante diferencia: al hacer x = [5, 2, 3, 4] hemos creado un objeto diferente, de modo que x e y apuntan a objetos distintos y por eso ahora sus valores difieren. En el caso anterior, al hacer x[0] = 5 modificamos directamente el mismo objeto y no se creó otro nuevo.

Espero que todo resulte más claro ahora y entiendas la diferencia esencial que hay en lo que respecta al concepto de variable respecto a otros lenguajes de programación. Si es así, felicítate, pues habrás cambiado de nivel en tu proceso de aprendizaje de Python.

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2012/09/python-el-sagrado-misterio-de-la-inmutabilidad/


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


Consulta el índice completo de artículos relacionados con Python.

Los modos de la escala mayor – Ejercicios prácticos

Objetivo: afianzar los conocimientos teóricos sobre los modos griegos practicando la construcción de diversas escalas.

En el reciente artículo, dedicado a los modos de la escala mayor, explicamos la base teórica de su construcción y aprendimos a calcularlos a partir de una determinada escala mayor.

Vamos a complicarlo algo más hoy. Te pediré que calcules escalas como Mi Mixolidia, Re Frigia o Sol Sostenido Locria. Es más complicado porque no sabemos de qué escala mayor son modos y habrá que aprender a deducirla.

Más adelante dedicaremos artículos monográficos a cada una de estas escalas y explicaremos tanto su fórmula absoluta como la relativa. Conocidas éstas el cálculo de las notas será inmediato, pero hasta entonces la forma que te voy a explicar a continuación es la mejor forma de proceder.

Para mayor comodidad, voy a repetir el cuadro resumen de los modos:

Los modos de la escala mayor

Sobre el PRIMER grado --> Escala JÓNICA (escala mayor)

Sobre el SEGUNDO grado --> Escala DÓRICA

Sobre el TERCER grado --> Escala FRIGIA

Sobre el CUARTO grado --> Escala LIDIA

Sobre el QUINTO grado --> Escala MIXOLIDIA

Sobre el SEXTO grado --> Escala EÓLICA (es la escala menor natural)

Sobre el SÉPTIMO grado --> Escala LOCRIA

Ejercicio 1: Mi Mixolidia

Si consultas la tabla anterior, verás que la escala mixolidia se construye sobre el quinto grado de la escala mayor. Todo comienza, por lo tanto, por determinar qué escala mayor tiene por quinto grado MI.

Operaremos mediante una simple cuenta de la vieja hacia atrás

Puede resultar tentador esbozar un razonamiento como el siguiente: si el quinto grado es MI, el cuarto es RE, el tercero DO, el segundo SI y el primero LA. En este caso particular se trata en efecto de un LA natural, pero podría haber sido un LA bemol o un LA sostenido.

Para realizar la operación correcta hay que contar semitono a semitono.

Pero, ¿cuántos semitonos hacia atrás hay que contar desde el quinto grado hasta llegar al primero?

En el artículo Intervalos sin secretos – 2 de 2, una de las conclusiones a las que llegamos fue la siguiente:

– A la distancia existente entre el primer grado de una escala mayor y el segundo se le denomina SEGUNDA MAYOR.

– Entre el primero y el tercero, TERCERA MAYOR.

– Entre el primero y el cuarto, CUARTA JUSTA o PERFECTA.

– Entre el primero y el quinto, QUINTA JUSTA o PERFECTA.

– Entre el primero y el sexto, SEXTA MAYOR.

– Entre el primero y el séptimo, SEPTIMA MAYOR.

A su vez, en la siguiente tabla de referencia figura la distancia en semitonos de cada tipo de intervalo. Voy a resumirla con lo que necesitamos saber:

SEGUNDA MAYOR: 2 semitonos

TERCERA MAYOR: 4 semitonos

CUARTA JUSTA: 5 semitonos

QUINTA JUSTA: 7 semitonos

SEXTA MAYOR: 9 semitonos

SÉPTIMA MAYOR: 11 semitonos

Estos son números que debes saber calcular (no dudes en revisar artículos anteriores si es necesario) y debes memorizar cuanto antes. La forma más simple de descubrirlos es observando las teclas de un piano y contando cuantas teclas (negras incluidas) separan el primer grado con los sucesivos.

Con estos datos ya sabemos que el quinto grado se corresponde con una quinta justa, y que esta, a su vez, consta de siete semitonos.

Por lo tanto, debemos calcular siete semitonos hacia atrás desde MI:

1 - Re # (o Mi b)
2 - Re
3 - Do # (o Re b)
4 - Do
5 - Si
6 - La # (o Si b)
7 - La

La nota buscada es LA, y además natural, como vemos.

Aún no hemos terminado. Hemos visto que la escala de LA Mayor tiene como quinto grado MI. Ya sabemos construir escalas mayores, por lo que no debe suponerte mucho esfuerzo elaborar LA mayor:

LA Mayor --> LA - SI - DO# - RE - MI - FA# - SOL# - LA

Si ahora tomas las mismas notas de esta escala, pero empezando por el quinto grado, obtienes MI Mixolidia:

MI Mixolidia --> MI - FA# - SOL# - LA - SI - DO# - RE - MI

El ejercicio que figura a continuación ilustra un caso frecuente: al contar semitonos hacia atrás aterrizamos en notas que pueden nombrarse, enarmónicamente, de varias formas.

Ejercicio 2: Re Frigia

Al tratarse de una escala frigia, se corresponde con el tercer grado de una escala mayor que tenemos que determinar.

Observando los cuadros anteriores vemos que el tercer grado está a una TERCERA MAYOR del primer grado, intervalo que se corresponde con cuatro semitonos.

Debemos contar, pues, cuatro semitonos hacia atrás:

1 - Do # (o Re b)
2 - Do
3 - Si
4 - La # (o Si b)

¿Cuál elegimos, La sostenido o Si bemol? Aunque se trate de sonidos enarmónicos y sus escalas mayores suenen iguales, debemos ser precisos en la respuesta.

Para aclarar la duda hay que realizar la otra cuenta básica. Si RE es el tercer grado, el segundo ha de ser un DO y el primero un SI.

Así pues, la respuesta correcta es SI bemol.

Construyamos la escala de SI bemol Mayor:

SI bemol Mayor --> SIb - DO - RE - MIb - FA - SOL - LA - SIb

obtenemos RE Frigia con las mismas notas, tomadas a partir de RE, el tercer grado de Si bemol Mayor:

RE Frigia --> RE - MIb - FA - SOL - LA - SIb - DO - RE

Para finalizar, trataremos una manera de acelerar el cálculo en algunas situaciones que se prestan a ello.

Ejercicio 3: Sol sostenido Locria

¿Locria? Escala sobre el séptimo grado, a una séptima mayor, 11 semitonos hacia atrás.

Antes de que empieces a contar, un pequeño truco: contar 11 semitonos hacia atrás da a parar al mismo nombre de nota que contar 1 hacia delante, del mismo modo que contar 7 hacia atrás desemboca en el mismo nombre de nota que 5 hacia delante. La suma total ha de ser 12, que se corresponde con el número total de notas.

A partir del quinto grado, incluido, la distancia por delante es menor que por detrás.

Si contamos hacia delante un semitono, tenemos:

1 - La

La escala buscada es LA Mayor:

LA Mayor --> LA - SI - DO # - RE - MI - FA# - SOL # - LA

de modo que

SOL # Locria --> SOL # - LA - SI - DO # - RE - MI - FA #

Una pregunta de nota: ¿y si hubiese pedido SOL Locria, en vez de SOL sostenido Locria?

Un semitono por encima de SOL está SOL Sostenido, enarmónico de LA bemol? ¿Cuál elegir de las dos opciones?

Un segundo truco que está perfectamente explicado en los artículos sobre intervalos: una séptima mayor hacia atrás va a parar al mismo nombre de nota que una segunda menor hacia adelante? La suma ha de ser nueve. Te recomiendo encarecidamente que, si tienes dudas en el cálculo de intervalos, te leas todos los artículos del blog relacionados.

Debe tratarse, entonces, de una segunda; la respuesta correcta es LA bemol (SOL sostenido está a una primera aumentada).

Conviene que te ejercites con este tipo de cálculos, te ayudarán a comprender mejor lo que sucede en tu instrumento.

Si eres guitarrista, esta forma de operar te facilitará tremendamente el aprendizaje de las escalas: por cada escala mayor que aprendas, estarás aprendiendo, a su vez, seis más, correspondientes al resto de los modos restantes.

Pero de eso ya hablaremos a su momento; por hoy es suficiente materia y tengo la cabeza que me va a reventar.

Locrio de remate, eólico perdido…

Javier Montero Gabarró


Los modos de la escala mayor – Ejercicios prácticos


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


Índice completo de artículos sobre armonía.

Escritura y sudor

Hubo un tiempo no tan lejano en el que siempre, tras finalizar cada entrenamiento (esto es, un día sí y otro no), publicaba puntualmente un resumen en un foro de atletismo que después replicaba en este blog.

Ese era un gesto común entre muchos de los que nos encontrábamos allí. Entrenábamos y después, sin demora, contábamos nuestra gesta a los demás.

Porque correr era siempre una hazaña, algo que sabíamos muy bien los que practicábamos con regularidad este deporte. Había sufrimiento implícito en cada entrenamiento. El nivel de exigencia al que sometíamos nuestro organismo, con el corazón latiendo a 150 ppm (cuando no más), ininterrumpidamente durante largos períodos de tiempo, rozaba el límite de la tortura.

Pero era un sufrimiento morboso que a su vez nos llenaba de un placer indescriptible, no sólo durante el ejercicio, sino especialmente después.

Y así, embriagados por las endorfinas, nos disponíamos prestos a contar nuestra hazaña a otros corredores y a esperar sus comentarios, del mismo modo que, recíprocamente, esperábamos y comentábamos los entrenamientos puntuales de los demás.

Una vez se forjó esa asociación escritura-sudor, los entrenamientos ya empezaron a ser diferentes. No querías limitarte a una simple exposición de datos deportivos sino que buscabas ser imaginativo y original, evitando repetirte.

Entrenabas pendiente de cada detalle, al acecho de aquel suceso original digno de ser narrado después. Otras veces, el entrenamiento era condicionado por la escritura: sabías lo que querías contar, pero antes estabas obligado a vivirlo.

Correr y escribir se convirtieron en amigos inseparables. Cuando uno flojeaba el otro tiraba de él. Si un día te sentías extenuado físicamente, las ganas de escribir te obligaban a salir a la calle para tener algo que contar. Y viceversa; si no te encontrabas inspirado, el acto de correr despertaba tu imaginación.

Hoy sólo escribo sobre mis entrenamientos en ocasiones muy puntuales ( y, por supuesto, tras cada carrera), pues la escritura ha encontrado nuevos amigos inseparables en la música, la productividad o la programación de ordenadores.

Y se necesitan desesperadamente entre ellos. Porque escribir, o componer una canción, o hacer un programa de ordenador, al igual que correr, es siempre una hazaña: llevan implícitos un dolor morboso, reflejo de esa parte de nuestra alma que queda siempre tras cada artículo, canción o programa y que sabemos que nunca recuperaremos.

7’7 Km, a un ritmo medio de 6:05 min /Km.

Javier Montero Gabarró


Escritura y sudor


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

Cálculo de la frecuencia de nuestras notas musicales

Objetivo: entender las matemáticas que hay detrás de un sistema con temperamento igual y aprender a calcular la frecuencia de las notas musicales.

La música y las matemáticas han estado siempre íntimamente ligadas. Conocer la evolución de la concepción musical a lo largo de los siglos, hasta alcanzar el sistema de doce notas con temperamento igual que empleamos en el mundo occidental, es una apasionante aventura, no sólo en sus vertientes musical y matemática, sino también desde las perspectivas cultural, física, técnica y artesanal.

En el artículo de hoy explicaremos qué entiende un matemático por sistema igualmente temperado, conocimiento que nos permitirá calcular con facilidad la frecuencia de cualquier nota de nuestro sistema musical.

A estas alturas del cuento supongo que ya sabrás que nuestro sistema musical tiene doce notas, y no siete. Si no lo tienes claro, echa un vistazo a cualquier imagen de un piano y presta atención a esas teclas negras situadas estratégicamente entre las blancas.

También supongo que sabes que ese patrón de doce notas vuelve a repetirse, encontrando las mismas notas, una octava más agudas a la derecha o más graves a la izquierda. Y que la frecuencia de una nota una octava más aguda que otra es exactamente el doble de esta. Por ejemplo, si tenemos un LA a 440 Hz, el siguiente LA más agudo estará exactamente a una frecuencia de 880 Hz, mientras que el anterior, más grave, se situará en la mitad, 220 Hz.

Esta proporción 2:1 es la única que necesitamos para proseguir con los cálculos que realizaremos a continuación.

He dibujado un piano especial en el que he indicado la frecuencia de unos cuantas notas LA. Es un piano peculiar porque me he permitido poner al mismo nivel las teclas blancas y las negras, de modo que resulte más visual lo que pretendo explicar. He empleado la notación anglosajona a la hora de designar las notas porque me resultaba más cómodo en el gráfico, al ocupar menos espacio.

En vez de ser una visión típica con octavas de DO a DO, he marcado las notas LA como referencia visual, ya que conocemos la frecuencia de una de ellas: la nota LA por encima del DO central tiene una frecuencia exacta de 440 Hz, el sonido de referencia recomendado internacionalmente para la afinación de los instrumentos.

He denominado a esta nota A4 (LA 4), aunque quizás puedas preferir llamarla A3, si eres partidario del sistema franco-belga. Es simplemente una cuestión de elección personal.

Como ya sabemos la relación 2:1 entre octavas, he marcado también las notas A5 y A6, más agudas, y A3, más grave, con sus respectivas frecuencias, inmediatamente calculables multiplicando o dividiendo entre dos.

He colocado también, más pequeñas y en lápiz, el resto de las notas musicales entre A3 y A4. No lo he hecho en las demás octavas para no emborronar demasiado el gráfico.

Imagina que ese dibujo representa un eje de coordenadas en el que se representa la frecuencia de cada nota musical.

¿Es lineal esa representación? Obviamente, no. Si te fijas, la separación entre el A3 y el A4 es de 220 Hz, mientras que entre el A4 y el A5 es del doble, 440 Hz. A su vez, entre A5 y A6 nuevamente el doble, 880 Hz. Sin embargo, sobre el papel, hay la misma distancia entre A3 y A4, que entre A4 y A5 o A5 y A6.

Este tipo de series en las que no hay linealidad, sino proporción constante, se denominan, en matemáticas, progresiones geométricas. Para reducirlas al plano lineal recurrimos a los logaritmos. Gracias a ellos podemos representar linealmente magnitudes que varían exponencialmente. La imagen de las notas uniformemente espaciadas a lo largo de un piano no es más que una visión logarítmica de esta progresión geométrica.

Y lo bueno del asunto, y verdadera clave para comprender lo que es un sistema de temperamento igual, es que la frecuencia de cada una de esas 12 subdivisiones que hay entre medias, correspondientes a cada nota musical, también sigue una representación logarítmica.

Desde el punto de vista matemático, decir que un sistema de doce notas tiene temperamento igual no es otra cosa sino decir que la proporción entre una nota cualquiera y la siguiente (un semitono más alta) es siempre constante.

Hay un factor multiplicativo constante. Si somos capaces de descubrir ese número mágico estaremos en condiciones de poder calcular la frecuencia de cualquier nota.

Calculemos el número que sostiene a nuestro preciado sistema musical. Si A4 es 440 Hz, la siguiente nota, un semitono más alta, LA sostenido (o Si bemol, según prefieras), tendrá por frecuencia:

A su vez, la frecuencia de la nota siguiente, SI, será:

Después de B4 comienza la siguiente octava con C5:

Y así hasta llegar a A5, una octava más alta, doce semitonos, que A4:

Ahora bien, la frecuencia de A5 ya la conocemos, 880 Hz, doble de 440 Hz:

con lo que

Ya tenemos la razón buscada:

Podemos determinar la frecuencia de cualquier nota si conocemos la distancia d en semitonos que la separa de A4:

No es necesario referenciar siempre contra A4; nos sirve cualquier frecuencia conocida, siendo d, en este caso, la distancia en semitonos entre la buscada y la conocida:

Realicemos un ejercicio práctico. Vamos a calcular la frecuencia de MI 5, a una quinta justa por encima de A4. Si contamos, la separación en semitonos entre ambas notas es 7, de modo que:

¿Cuál es la frecuencia del DO central, que se halla nueve semitonos a la izquierda del LA 4? Es un ejemplo en el que d es una distancia negativa.

También podríamos haber resuelto este problema tomando como referencia A3 (220 Hz) y contando tres semitonos hacia delante:

Como vemos, el resultado es el mismo en ambos casos.

Visitaremos en más ocasiones el lado matemático de la música. ¿Sabías que algo que damos por obvio como que Do sostenido tiene la misma frecuencia que Re bemol, es debido a naturaleza igualmente temperada de nuestro sistema musical?

Te dejo pensándolo…

Javier Montero Gabarró


Cálculo de la frecuencia de nuestras notas musicales


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


Índice completo de artículos sobre armonía.

BitBite Python #3: Aula silenciosa en ausencia de profesores

Programa para el control de las aulas en ausencia de profesores.

Técnicas tratadas:

– Bucle while controlado por centinela
– Uso de diccionarios como estructura de datos flexible.
– Comprobación de si una clave determinada figura en un diccionario
– Modificación de los valores de un diccionario
Iteración sobre todos los elementos (claves – valores) de un diccionario

Nueva entrega de la serie BitBite Python, complemento práctico de los artículos del blog, en la que se desarrollan pequeños programas completos en Python empleando técnicas ya descritas en las secciones teóricas.

Hemos dedicado los últimos artículos a presentar una de las estructuras más poderosas y flexibles de Python: los diccionarios. Hoy mostraremos un ejemplo de utilización básico.

Para entender el problema a resolver, deja que te ponga primero en antecedentes:

Tengo un recuerdo nítido de mi infancia, en el colegio, cuando cursaba 2º o 3º de EGB. Era, por entonces, muy pequeño…

En determinadas ocasiones, si el profesor debía abandonar la clase para atender alguna gestión externa, encargaba a algún alumno (normalmente, el pelota de turno) para que se ocupase de mantener el silencio en el aula. Recuerdo que uno de esos días dejó un claro mensaje: «a quien abra la boca lo apuntas en la pizarra».

Eran tiempos en los que algunos profesores ejercían y demostraban su autoridad a base de tortazos. Todos sabíamos que aquellos cuyos nombres figurasen en la pizarra recibirían una o varias bofetadas, dependiendo de la magnitud de su falta.

Aunque, por lo general, la dureza de los castigos lograba que nos mantuviésemos callados, siempre había valientes que desafiaban a la autoridad. No eran buenos estudiantes, pero todos los respetábamos y, en cierto modo, temíamos.

Ese día quise provocar al pelotilla que vigilaba la clase y abrí la boca. Simplemente la abrí, de ella no salió ningún sonido. Pero el muy tonto me apuntó en la pizarra, tomándose al pie de la letra las instrucciones del profesor.

Naturalmente, cuando regresó el maestro recibí la bofetada de rigor. Creo que fue mi primera bofetada y lloré por la injusticia cometida. De nada me sirvió alegar que no habia pronunciado ni pío.

Ahí estaba mi nombre en la pizarra, injustamente entre los temerarios valientes:

Diego | | | |

Luis | |

Javier |

Cada barra vertical indicaba el número de veces que el alumno había infringido la regla. Si a mí me dolió, imagínate cómo le quedó la cara a Diego.

Si trasladamos esa escena unas cuantas décadas más adelante, quizás el pelota de turno tuviese delante un ordenador portátil o un Smartphone con Python instalado y podría improvisar unas sencillas líneas de código para acometer la tarea impuesta en vez de utilizar la tiza y la pizarra.

Estudiemos cómo podríamos resolver el problema…

Nos haría falta algún tipo de registro en el que anotar la misma información que escribiríamos en la pizarra: un nombre y el número de faltas cometidas.

Son dos campos de naturaleza distinta íntimamente asociados. Podemos pensar en un diccionario, con clave (única e irrepetible) el nombre del osado que se atreve a hablar y como valor el número de veces que lo hace.

Vamos a crear, entonces, un diccionario vacío que iremos rellenando conforme alguien hable. Eso es algo tan sencillo como esto:

bocazas = {}

El programa nos pregunta, por primera vez, quién ha hablado:

bocaza = input('Introduce el nombre del bocaza [0 si vuelve el profe]:')

Esto lo volverá a preguntar, una y otra vez, hasta que el profesor regrese. Necesitamos un modo de indicar al programa cuando ha ocurrido esa situación y hemos decidido que sea mediante la introducción de un 0.

Este tipo de bucles se denominan controlados por centinela. Se procesa todan las entradas hasta que llega ese valor especial, el centinela, que indica el final del ciclo.

He aquí el bucle al completo:

while bocaza != '0':
    if bocaza in bocazas:
        bocazas[bocaza] = bocazas[bocaza] + 1
    else:
        bocazas[bocaza] = 1
    bocaza = input('Introduce el nombre del bocaza [0 si vuelve el profe]:')

Observa la detección del centinela. El ciclo se repetirá mientras la variable bocaza, empleada para registrar el nombre de quien abra la boca, tenga un valor distinto de '0'. Escribo el cero entre comillas, pues la función input() devuelve strings aunque aparentemente estemos introduciendo números.

El funcionamiento del bucle es sencillo: comenzamos comprobando si el alumno ya ha incurrido en falta, en cuyo caso incrementamos en una unidad su número. Si no tenía antecedentes previos, creamos la clave en el diccionario con valor inicial uno.

No te líes con los nombres: bocazas es el diccionario y bocaza, en singular, el nombre del alumno (que actúa como clave del diccionario).

Finalmente, una vez ha sido fichado el infractor, el bucle vuelve a preguntar de nuevo por el siguiente charlatán. Y así sucesivamente hasta que el profesor regrese a la clase (momento en el cual se introducirá un cero en vez del nombre de una alumno real).

Llegado este punto, el pelota está a punto de mostrar satisfecho al profesor el resultado de su vigilancia:

print('LISTADO DE ALUMNOS QUE HAN ABIERTO LA BOCA')

for hablador, veces in bocazas.items():
    print(hablador, '-->', veces)

Nos interesa el bucle for: observa el uso del método items(), sobre el diccionario para crearnos un objeto compuesto de pares clave-valor (alumno-faltas) sobre el que podamos iterar. La variable hablador toma, uno a uno, el nombre de cada alumno, mientras que la variable veces captura el valor asociado a ese alumno en concreto.

Si hay algo que no comprendas en todo este proceso, te recomiendo que te leas los últimos artículos de la serie Python, en los que se detalla el uso de estas técnicas.

Este es, finalmente, nuestro listado completo:

# aulasilenciosa.py

# Programa para el control de aulas en ausencia de profesor
# El Club del Autodidacta

bocazas = {}

bocaza = input('Introduce el nombre del bocaza [0 si vuelve el profe]:')

while bocaza != '0':
    if bocaza in bocazas:
        bocazas[bocaza] = bocazas[bocaza] + 1
    else:
        bocazas[bocaza] = 1
    bocaza = input('Introduce el nombre del bocaza [0 si vuelve el profe]:')

#Ha regresado el profesor: es hora de delatar a los bocazas
# y que reciban su justo castigo

print() #Escribe una línea en blanco
print('LISTADO DE ALUMNOS QUE HAN ABIERTO LA BOCA')

for hablador, veces in bocazas.items():
    print(hablador, '-->', veces)

Interactuemos con él y veamos cómo trabaja:

Introduce el nombre del bocaza [0 si vuelve el profe]:Luis
Introduce el nombre del bocaza [0 si vuelve el profe]:Javier
Introduce el nombre del bocaza [0 si vuelve el profe]:Diego
Introduce el nombre del bocaza [0 si vuelve el profe]:Luis
Introduce el nombre del bocaza [0 si vuelve el profe]:Diego
Introduce el nombre del bocaza [0 si vuelve el profe]:Diego
Introduce el nombre del bocaza [0 si vuelve el profe]:Diego
Introduce el nombre del bocaza [0 si vuelve el profe]:0

LISTADO DE ALUMNOS QUE HAN ABIERTO LA BOCA
Luis --> 2
Javier --> 1
Diego --> 4

Tan sólo falta la ejecución de la sentencia. Por suerte para mí, si el pelota ya tiene un Smartphone en el que ejecutar este script, eso significa que estamos en tiempos donde los profesores ya no pegan bofetadas.

Por ahí me voy a librar.

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2012/08/bitbite-python-3-aula-silenciosa-en-ausencia-de-profesores/


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