¿Existe una forma de determinar la forma prima de un conjunto cuando se le da su vector intervalo? (Música, Teoría, Atonal, Teoría De Los Juegos)

Richard preguntó.

Normalmente, utilizamos la forma prima de un conjunto de clase de tono para determinar el vector de intervalo. Pero, ¿existe algún algoritmo que nos permita hacer lo contrario? En otras palabras, dado el vector de intervalos de un conjunto, ¿podemos hacer ingeniería inversa de cuál es (o puede ser) la forma prima de ese conjunto?

Mi opinión es que se trata de un algoritmo de fuerza bruta para ir en sentido contrario, pero tal vez exista un método matemático para obtener la forma prima.

Una dificultad obvia de esta cuestión es la noción de conjuntos relacionados con Z. Si existe tal algoritmo, ¿puede encontrar todos los conjuntos posibles que tienen ese intervalo vectorial?

Comentarios

  • En realidad, esa podría ser una pregunta mejor para cs.SE… en cualquier caso, deberías precisar a qué tipo de algoritmo te refieres. «Un método matemático» incluiría también la búsqueda por fuerza bruta. Y para que quede claro qué sería «eficiente», debes decir en qué parámetro. Al fijar el sistema a 12-ET, entonces cualquier algoritmo es técnicamente hablando O (1)… –  > Por leftaroundabout.
  • Sólo hay 224 formas primarias de conjuntos de clase de tono. Probablemente podrías enumerarlas y sus vectores de intervalo en un comentario aquí 🙂 –  > Por Tu tío Bob.
  • Estaba escribiendo una respuesta, pero luego descubrí que puedes buscarlas fácilmente en esta página de Wikipedia: es.wikipedia.org/wiki/List_of_pitch-class_sets –  > Por Tu tío Bob.
  • @TuTíoBob Lo siento, debería haber sido más claro: estoy buscando un método que no implique sólo usar un recurso externo. –  > Por Richard.
  • @leftaroundabout es interesante… para responderla, probablemente se necesitaría informática, pero para entender la pregunta es teoría musical… –  > Por usuario45266.
1 respuestas
Tu tío Bob

Bueno, si estás componiendo en una cabaña en el bosque, y no hay wifi ni cobertura para el móvil, y se te ha olvidado llevar la impresión en papel de la página de Wikipedia, , hacerlo a mano no es más difícil que resolver un Sudoku™. El mayor problema es que la mayoría de los vectores de intervalos aleatorios no llevarán a una solución, por lo que podrías pasar mucho tiempo encontrando uno que realmente funcione.

Estos son los números de Formas Primas, Vectores de Intervalo y Pares Relacionados con Z por tamaño de Conjunto de Clases de Tono:

PCs   PF    IV    ZR  

 0     1     1*    1*  
 1     1     1*    1*  
 2     6     6     0  
 3    12    12     0  
 4    29    28     1  
 5    38    35     3  
 6    50    35    15  
 7    38    35     3  
 8    29    28     1  
 9    12    12     0  
10     6     6     0  
11     1     1     0  
12     1     1     0  
     ---   ---   ---  
     224   200    24  

* El conjunto de Pitch Class vacío y el conjunto con una Pitch Class y una Forma Prima (0) tienen el mismo Vector Intervalo, y forman un par Z-Related.

Notarás la simetría en estos números. De hecho, cada Forma Prima y Vector de Intervalos de un conjunto con tamaño N tienen su correspondiente FP e IV de un conjunto con tamaño 12-N. Esto significa que cuando buscamos un conjunto con, por ejemplo, 9 clases de tono, podemos buscar el conjunto correspondiente con 3 clases de tono (que es más fácil), y luego transformarlo.

Paso 1: Número de clases de tono en el conjunto:

Cada tamaño de conjunto de clases de tono tiene vectores de intervalo cuya suma es un número fijo; para un conjunto de tamaño N, la suma de los vectores es 0 + 1 + 2 + … + N-1.

PCs size: 0   1   2   3   4   5   6   7   8   9  10  11  12  
IV sum:   0   0   1   3   6  10  15  21  28  36  45  55  66  

Un Vector Intervalo como <2,4,2,4,2,4> no es válido, porque su suma es 18. El Vector Intervalo <5,5,4,5,6,3> tiene la suma 28, y (potencialmente) corresponde a un conjunto de Clase de Paso con tamaño 8.

Además, los cinco primeros valores del Vector de Intervalos no deben ser mayores que el tamaño del conjunto N ni menores que 2×N – 12, y el sexto valor no debe ser mayor que N/2 ni menor que N – 6:

2×N – 12 ≤ v1~5 ≤ N
N – 6 ≤ v6 ≤ N/2

Paso 2: Transformación del vector intervalo:

Cuando se transforma de un conjunto de tamaño N a un tamaño 12-N, se comienza tomando la diferencia entre las sumas del Vector Intervalo para estos tamaños; por ejemplo, cuando se da un Vector Intervalo con suma 28, el tamaño del conjunto es 8, el nuevo tamaño del conjunto será 12 – 8 = 4, y la nueva suma del Vector Intervalo será 6; por lo que la diferencia de las sumas es 28 – 6 = 22. Ahora divide ese número entre 5, y encuentra el cociente y el resto:

22 / 5  ->  quotient = 4, remainder = 2  

Ahora reste el cociente de los cinco primeros valores del vector, y el resto del sexto valor, por ejemplo:

<5,5,4,5,6,3>  ->  <5-4,5-4,4-4,5-4,6-4,3-2>  ->  <1,1,0,1,2,1>

Así, para los tamaños de conjunto 7 a 12 la transformación es:

size  IV (size N)      IV (size 12-N)

 7    <a,b,c,d,e,f>    <a-2,b-2,c-2,d-2,e-2,f-1>
 8    <a,b,c,d,e,f>    <a-4,b-4,c-4,d-4,e-4,f-2>
 9    <a,b,c,d,e,f>    <a-6,b-6,c-6,d-6,e-6,f-3>
10    <a,b,c,d,e,f>    <a-8,b-8,c-8,d-8,e-8,f-4>
11    <a,b,c,d,e,f>    <a-10,b-10,c-10,d-10,e-10,f-5>
12    <a,b,c,d,e,f>    <a-12,b-12,c-12,d-12,e-12,f-6>

Paso 3: Crear una representación gráfica:

La forma más sencilla de representar un conjunto de Pitch Class en papel es dibujar una esfera de reloj con números del 0 al 11. A continuación, puede marcar las clases de tono seleccionadas (por ejemplo, dibujando un círculo alrededor de ellas o utilizando colores) y las clases de tono que no se pueden utilizar (por ejemplo, tachándolas). Al lado de la esfera del reloj, anote cuántos de cada intervalo se necesitan todavía. Por ejemplo, con un vector de intervalos con cero intervalos de distancia 5, podríamos empezar así:

El círculo rojo indica una Clase de Tono que ha sido elegida, los círculos en gris indican las Clases de Tono que ya no se pueden utilizar, y la línea azul indica un eje de simetría.

Paso 4: Empezar a hacer puzzles:

La estrategia básica consiste en probar todas las opciones y retroceder cuando encontramos alguna incoherencia. El número de opciones puede reducirse teniendo en cuenta la simetría, y eligiendo en qué orden añadir los intervalos. Algunas estrategias son:

  • Empezamos con cualquier Clase de Paso seleccionada (en la imagen de ejemplo elegí 0). Esto crea una situación simétrica. Cuando añadimos la segunda Clase de Tono, sólo tenemos una opción a considerar; añadirla a la izquierda o a la derecha de la primera Clase de Tono dará lugar a un resultado simétrico, que tendría la misma Forma Prima.

  • Al seleccionar la segunda clase de tono, podemos empezar con cualquier intervalo, sin tener que volver a esta elección. Cada intervalo que está presente en el Vector de Intervalos tiene que ir a alguna parte, por lo que cada solución tendrá este intervalo en alguna parte (después de la rotación).

  • Cuando no se necesitan más instancias de un determinado intervalo, esto significa que algunas Clases de Paso ya no pueden ser utilizadas. En la imagen de ejemplo, el hecho de que el vector no contenga instancias del intervalo 5 significa que las Pitch Classes a la distancia 5 de la Pitch Class ya seleccionada (es decir, la 5 y la 7, porque la 0 ya está seleccionada) quedan inutilizadas.

  • Si un intervalo está presente sólo una vez en el vector de intervalos, comenzar con ese intervalo hará que algunas clases de tono sean inmediatamente inutilizables.

  • Cuando llegue a una situación en la que haya varias opciones posibles, haga una copia de la esfera del reloj actual y de la cuenta de intervalos requerida, y pruebe la primera opción. Cuando esto no lleve a una solución, o quieras comprobar si hay una segunda solución, vuelve a este punto, haz otra copia, y prueba la siguiente opción.

  • Cuando encuentres una situación imposible, vuelve a la última situación en la que tenías varias opciones, e intenta la siguiente.

Paso 5: Transformar el conjunto de clases de tono:

Si transformó el Vector de Intervalos en el paso 2, tiene que transformar los conjuntos de Clases de Tono resultantes invirtiéndolos. Dibuje una nueva esfera de reloj y marque todos los números que no están incluidos en el conjunto.

Paso 6: Creación de la Forma Prima:

Mire la esfera del reloj y encuentre el intervalo más pequeño, o el recorrido más largo del intervalo más pequeño; éste será el inicio del conjunto. Si hay varias opciones, considera cada una de ellas. Ahora mire en ambas direcciones para ver qué dirección tiene la siguiente clase de paso seleccionada más cercana. Continúe haciendo esto hasta que encuentre una opción que sea mejor que las otras. Unos cuantos ejemplos le aclararán esto:

En el primer ejemplo, hay varios intervalos de distancia 1; el más largo de ellos está entre las Clases de Paso 7, 8 y 9. Por lo tanto, la primera forma empezará en el 7 e irá en el sentido de las agujas del reloj o empezará en el 9 e irá en sentido contrario. La opción en el sentido de las agujas del reloj tiene el intervalo 3, mientras que la opción en sentido contrario tiene el intervalo 2, que es más pequeño. Por lo tanto, la forma primera comienza en la clase de paso 9 y va en sentido contrario a las agujas del reloj: (9,8,7,5,1,0), que si renumeramos las clases de tono desde 0 se convierte en: (0,1,2,4,8,9).

En el segundo ejemplo hay dos intervalos de distancia 2, entre 10, 0 y 2. Por lo tanto, la Forma Prima empezará en 10 e irá en el sentido de las agujas del reloj o empezará en 2 e irá en sentido contrario. La opción en el sentido de las agujas del reloj tiene entonces el intervalo 3 (entre las clases de tono 2 y 5), mientras que la opción en sentido contrario a las agujas del reloj tiene el intervalo 5 (entre las clases de tono 10 y 5), que es mayor. Por lo tanto, la forma primera comienza en la clase de tono 10 y va en el sentido de las agujas del reloj: (10,0,2,5), que si renumeramos las clases de tono desde 0 se convierte en (0,2,4,7).

En el tercer ejemplo hay dos intervalos de distancia 2, entre el 0 y el 2 y entre el 6 y el 8; así que tenemos 4 opciones: empezar desde el 0 e ir en el sentido de las agujas del reloj, empezar desde el 2 e ir en sentido contrario, empezar desde el 6 e ir en el sentido de las agujas del reloj, o empezar desde el 8 e ir en sentido contrario. Sin embargo, como la selección es completamente simétrica (con ejes que pasan por el 1 y el 7 y por el 10 y el 4), cualquiera de ellas dará como resultado la misma Forma Prima: (0,2,6,8).

Ejemplo de recorrido:

Incluso cuando se busca un conjunto de Pitch Class de tamaño 6, y se busca una posible segunda solución relacionada con Z, se puede trabajar a mano en unos pocos minutos. Veamos un ejemplo:

Interval Vector: <2,3,3,2,4,1>
Interval sum: 15
Pitch Class set size: 6

Empezaremos con la Clase de Paso 0, y añadiremos primero el intervalo 6, porque sólo se requiere uno de ellos. Esto significa que, a partir de ahora, cada vez que se añada una clase de tono X al conjunto, la clase de tono X+6, en el lado opuesto de la esfera del reloj, quedará inutilizada.

Ahora tenemos una situación con dos ejes de simetría, lo que significa que, sea cual sea el intervalo que añadamos a continuación, sólo tendremos que probar una clase de tono.

Observamos que se necesitan tres instancias del intervalo 3; comprobemos si es posible que ninguna de ellas se realice utilizando las Clases de Tono 0 y 6 ya presentes. Eso significaría que las clases de tono 3 y 9 quedan inutilizadas, y hay que seleccionar otras cuatro de entre 1, 2, 4, 5, 7, 8, 10 y 11 (abajo, imagen 1). Sin embargo, si se tiene en cuenta que al utilizar X se descartan X+6, ninguna combinación de éstas dará tres intervalos de tamaño 3 (abajo, imagen 2). Así que podemos concluir que cualquier solución incluye la clase de paso 3 o 9 (de los cuales sólo tenemos que probar uno, porque son simétricos) (abajo, imagen 3).

De nuevo esta situación es simétrica con un eje que pasa por 3 y 9. Ahora nos fijamos en el hecho de que sólo necesitamos dos intervalos de distancia 1; esto significa que las clases de tono 1 y 2 no se pueden seleccionar al mismo tiempo (y tampoco 4 y 5). Si seleccionamos las clases de tono 10 y 11 (o el caso simétrico de las clases de tono 7 y 8), eso nos daría los dos intervalos de distancia 1, pero entonces la única opción para la última clase de tono sería la 8, y el conjunto (0,3,6,8,10,11) no da el número correcto de cada intervalo (abajo, imagen 1). Así que al menos un intervalo de la distancia 1 se hace mediante la selección de Pitch Class 1 o 2 (no tenemos que considerar 4 y 5 debido a la simetría). Así que tenemos dos opciones (abajo, imagen 2 y 3):

Vemos que la segunda opción (arriba, imagen 3) requiere sólo un intervalo adicional de distancia 1, por lo que una de las dos clases de tono adicionales tendrá que ser 10; sin embargo, esto añade dos intervalos de distancia 4 (entre las clases de tono 10 y 2, y 10 y 6) cuando sólo se requiere uno. Así que la segunda opción puede descartarse.

Para la primera opción (arriba, imagen 2), volvamos a centrarnos en el número necesario de intervalos de distancia 5. Necesitamos tres, por lo que las dos últimas clases de tono pueden estar a una distancia de 5 entre sí y a una distancia de 5 de una clase de tono ya presente (la única opción para esto es seleccionar las clases de tono 5 y 10) (abajo, imagen 1), o no están a una distancia de 5 entre sí, y una de ellas está a una distancia de 5 de dos clases de terreno de juego ya seleccionadas (esto significaría seleccionar la clase de terreno de juego 8 y cualquiera de las cuatro restantes) (abajo, imagen 2).

La primera de estas opciones es efectivamente una solución válida. La segunda opción nos da cuatro opciones para la sexta clase de paso. Al añadir la clase de tono 4 no se añade un intervalo de distancia 5. Añadir la clase de tono 5 añade los intervalos correctos, por lo que es otra solución (abajo, imagen 1). Al añadir la clase de tono 10 no se añade un intervalo de distancia 1. Añadir la clase de tono 11 añade los intervalos correctos, por lo que es otra solución (abajo, imagen 2). Así que parece que tenemos dos soluciones adicionales:

Cuando creamos la forma primitiva de estas tres soluciones girándolas y/o reflejándolas, encontramos que las dos primeras son idénticas:

Así que terminamos con dos conjuntos de Pitch Class con estas Formas Primas:

Interval Vector: <2,3,3,2,4,1>  
Pitch Class sets (PF): (0,1,3,5,6,8), (0,1,2,4,7,9)