Domanda:
C'è un modo per determinare la forma principale di un insieme quando viene fornito il suo vettore intervallo?
Richard
2019-03-30 00:51:17 UTC
view on stackexchange narkive permalink

Tipicamente, usiamo la forma principale di un insieme di classi di passo per determinare il vettore di intervallo. Ma esiste un algoritmo che ci permette di andare dall'altra parte? In altre parole, dato il vettore intervallo di un insieme, possiamo decodificare quale sia (o potrebbe essere) la forma principale di quell'insieme?

La mia ipotesi è che sia solo un algoritmo di forza bruta per andare nell'altro modo, ma forse esiste un metodo matematico per ottenere la forma principale.

Una ovvia difficoltà di questa domanda è la nozione di insiemi Z-correlati. Se esiste un tale algoritmo, può trovare tutti i possibili insiemi che hanno quel vettore intervallo?

Questa potrebbe effettivamente essere una domanda migliore per [cs.SE] (https://cs.stackexchange.com/) ... in ogni caso, dovresti specificare con precisione il tipo di algoritmo che intendi. "Un metodo matematico" includerebbe anche la ricerca della forza bruta. E per chiarire cosa sarebbe "efficiente", è necessario dire in quale parametro. Quando si fissa il sistema a 12-ET, qualsiasi algoritmo è tecnicamente parlando _O_ (1) ...
Ci sono solo 224 forme prime di insiemi di classe pitch. Probabilmente potresti elencarli ei loro vettori di intervallo in un commento qui :-)
Stavo scrivendo una risposta, ma poi ho scoperto che puoi facilmente cercarle su questa pagina di Wikipedia: https://en.wikipedia.org/wiki/List_of_pitch-class_sets
@YourUncleBob Spiacente, avrei dovuto essere più chiaro: sto cercando un metodo che non implichi solo l'utilizzo di una risorsa esterna.
@leftaroundabout è interessante ... per rispondere, probabilmente ci vorrebbe l'informatica, ma per capire la domanda è la teoria musicale ...
Una risposta:
#1
+10
Your Uncle Bob
2019-03-31 09:31:56 UTC
view on stackexchange narkive permalink

Bene, se stai componendo in una capanna nel bosco e non c'è copertura Wi-Fi o cellulare e ti sei dimenticato di portare con te la stampa cartacea della pagina di Wikipedia, farlo a mano non è più difficile che risolvere un Sudoku ™. Il problema più grande è che la maggior parte dei vettori di intervallo casuali non porterà a una soluzione, quindi potresti dedicare molto tempo a trovarne uno che funzioni effettivamente.

Questi sono i numeri di Prime Forms, Interval Vectors e Z-Related Couple per dimensione del Pitch Class Set:

 PC 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 

* Il set vuoto di Pitch Class e il set con una Pitch Class e Prime Form (0) hanno lo stesso Interval Vector e formano una coppia Z-Related .

Noterai la simmetria in questi numeri. Infatti, ogni Forma Prime e Vettore Intervallo di un insieme di dimensione N ha un PF e IV corrispondenti di un insieme di dimensione 12-N. Ciò significa che quando si cerca un set con ad es. 9 Pitch Classes, possiamo cercare il set corrispondente con 3 Pitch Classes (che è più facile), e poi trasformarlo.

Passaggio 1: Numero di Pitch Classes nel set:

Ogni dimensione del Pitch Class set ha Interval Vector la cui somma è un numero fisso; per un insieme di dimensione N, la somma dei vettori è 0 + 1 + 2 + ... + N-1.

 Dimensioni PC: 0 1 2 3 4 5 6 7 8 9 10 11 12 Somma IV: 0 0 1 3 6 10 15 21 28 36 45 55 66 

Un vettore intervallo come <2,4,2,4,2,4> non è valido, perché la sua somma è 18. Il vettore intervallo <5,5,4,5,6 , 3> ha la somma 28 e (potenzialmente) corrisponde a una classe di passo impostata con dimensione 8.

Inoltre, i primi cinque valori nel vettore intervallo non devono essere maggiori della dimensione impostata N e non essere inferiore a 2 × N - 12, e il sesto valore non deve essere maggiore di N / 2 e non deve essere inferiore a N - 6:

2 × N - 12 ≤ v 1 ~ 5 ≤ N
N - 6 ≤ v 6 ≤ N / 2

Passaggio 2: trasformare il Vettore intervallo:

Quando si trasforma da un insieme di dimensioni N alla dimensione 12-N, iniziare prendendo la differenza tra le somme del vettore intervallo per queste dimensioni; per esempio. quando viene fornito un vettore intervallo con somma 28, la dimensione dell'insieme è 8, la nuova dimensione dell'insieme sarà 12 - 8 = 4 e la nuova somma del vettore intervallo sarà 6; quindi la differenza delle somme è 28 - 6 = 22. Ora dividi quel numero per 5 e trova il quoziente e il resto:

 22/5 -> quoziente = 4, resto = 2 

Ora sottrai il quoziente dai primi cinque valori nel vettore e il resto dal sesto valore, ad esempio:

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

Quindi per set da 7 a 12 la trasformazione è:

 taglia IV (taglia N) IV (taglia 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> 

Passaggio 3: creazione di una rappresentazione grafica:

Il modo più semplice per rappresentare una Pitch Class impostata su carta è disegnare un quadrante di orologio con numeri da 0 a 11. Puoi quindi contrassegnare le Pitch Class selezionate (ad esempio disegnando un cerchio attorno ad esse o usando il colore) e il Pitch Classes che non possono essere usate (es. Cancellandole). Accanto al quadrante dell'orologio, scrivi quanti intervalli sono ancora necessari. Per esempio. con un vettore intervallo con intervalli zero di distanza 5, potremmo iniziare in questo modo:

set:(0), not:(5,7)

Il cerchio rosso indica un Pitch Class che è stata scelta, i cerchi in grigio indicano Classi Pitch che non possono più essere utilizzate e la linea blu indica un asse di simmetria.

Passaggio 4: Inizio sconcertante:

La strategia di base è quella di provare ogni opzione e tornare indietro quando troviamo eventuali incongruenze. Il numero di opzioni può essere ridotto tenendo conto della simmetria e scegliendo in quale ordine aggiungere gli intervalli. Alcune strategie sono:

  • Iniziamo con qualsiasi Pitch Class selezionata (nell'immagine di esempio ho scelto 0). Questo crea una situazione simmetrica. Quando aggiungiamo la seconda Pitch Class, abbiamo solo un'opzione da considerare; aggiungendolo a sinistra oa destra della prima Pitch Class si otterrà un risultato simmetrico, che avrebbe la stessa Prime Form.

  • Quando si seleziona la seconda Pitch Class, possiamo iniziare con qualsiasi intervallo, senza mai dover tornare indietro a questa scelta. Ogni intervallo presente nel vettore intervallo deve andare da qualche parte, quindi ogni soluzione avrà questo intervallo da qualche parte (dopo la rotazione).

  • Quando non sono richieste più istanze di un certo intervallo, ciò significa che alcune Pitch Classes non possono più essere utilizzate. Nell'immagine di esempio, il fatto che il vettore non contenga istanze dell'intervallo 5 significava che le Classi Pitch a distanza 5 dalla Classe Pitch già selezionata (cioè 5 e 7, perché 0 è già selezionato) diventano inutilizzabili.

  • Se un intervallo è presente solo una volta nell'Interval Vector, iniziare con quell'intervallo renderà immediatamente inutilizzabili alcune Pitch Classes.

  • Quando arrivi a una situazione in cui sono possibili diverse opzioni, fai una copia del quadrante dell'orologio corrente e del conteggio dell'intervallo richiesto e prova la prima opzione. Quando questo non porta a una soluzione, o vuoi verificare se esiste una seconda soluzione, torna a questo punto, fai un'altra copia e prova l'opzione successiva.

  • Ogni volta che trovi una situazione impossibile, torna all'ultima situazione in cui avevi diverse opzioni e prova la successiva.

Passaggio 5: Trasformazione del set di classi di presentazione:

Se hai trasformato il vettore di intervallo nel passaggio 2, hai per trasformare i set di Pitch Class risultanti invertendoli. Disegna un nuovo quadrante di orologio e segna tutti i numeri che non sono inclusi nel set.

Passaggio 6: creazione della forma principale:

Guarda il quadrante dell'orologio e trova l'intervallo più piccolo o la corsa più lunga dell'intervallo più piccolo; questo sarà l'inizio del set. Se ci sono diverse opzioni, considera ciascuna di esse. Ora guarda in entrambe le direzioni per vedere quale direzione ha la classe Pitch selezionata successiva più vicina. Continua a farlo finché non trovi un'opzione migliore delle altre. Alcuni esempi lo renderanno più chiaro:

set:(0,1,5,7,8,9) set:(0,2,5,10) set:(0,2,6,8)

Nel primo esempio, ci sono diversi intervalli di distanza 1; la corsa più lunga è tra le classi di lancio 7, 8 e 9. Quindi la Prime Form inizierà alle 7 e andrà in senso orario o inizierà alle 9 e andrà in senso antiorario. L'opzione in senso orario ha quindi l'intervallo 3, mentre l'opzione in senso antiorario ha l'intervallo 2, che è più piccolo. Quindi la forma Prime inizia dalla Pitch Class 9 e va in senso antiorario: (9,8,7,5,1,0), che se rinumeriamo le Pitch Classes da 0 diventa: (0,1,2,4,8,9 ).

Nel secondo esempio ci sono due intervalli di distanza 2, tra 10, 0 e 2. Quindi la Forma Prime inizierà a 10 e andrà in senso orario o inizierà a 2 e andrà in senso antiorario. L'opzione in senso orario ha quindi l'intervallo 3 (tra le classi di altezza 2 e 5), mentre l'opzione in senso antiorario ha l'intervallo 5 (tra le classi di altezza 10 e 5), che è maggiore. Quindi la forma Prime inizia dalla Pitch Class 10 e va in senso orario: (10,0,2,5), che se rinumeriamo le Pitch Classes da 0 diventa: (0,2,4,7).

Nel terzo esempio ci sono due intervalli di distanza 2, tra 0 e 2 e tra 6 e 8; quindi abbiamo 4 opzioni: partire da 0 e andare in senso orario, iniziare da 2 e andare in senso antiorario, iniziare da 6 e andare in senso orario, oppure partire da 8 e andare in senso antiorario. Tuttavia, poiché la selezione è completamente simmetrica (con assi che passano per 1 e 7 e per 10 e 4), ognuno di questi risulterà nella stessa Forma Prime: (0,2,6,8).

Esempio di presentazione:

Anche quando cerchi un set di Pitch Class di dimensione 6 e cerchi una possibile seconda soluzione Z-Related, può lavorarci a mano in pochi minuti. Diamo un'occhiata a un esempio:

 Vettore di intervallo: <2,3,3,2,4,1> Somma di intervallo: 15 Pitch Dimensione del set di classi: 6 

Inizieremo con Pitch Classe 0, e aggiungi prima l'intervallo 6, perché è solo uno di quelli richiesti. Ciò significa che d'ora in poi, ogni volta che una Pitch Class X viene aggiunta al set, la Pitch Class X + 6, sul lato opposto del quadrante dell'orologio, diventa inutilizzabile.

set:(0), req:(2,3,3,2,4,1) set:(0,6), req:(2,3,3,2,4,0)

Ora abbiamo una situazione con due assi di simmetria, il che significa che qualunque intervallo noi aggiungi il prossimo, dovremo provare solo una Pitch Class.

Notiamo che sono richieste tre istanze dell'intervallo 3; controlliamo se è possibile che nessuno di essi sia stato realizzato utilizzando le già presenti Pitch Classes 0 e 6. Ciò significherebbe che le Pitch Classes 3 e 9 diventeranno inutilizzabili, e altre quattro su 1, 2, 4, 5, 7, 8, 10 e 11 devono essere selezionati (sotto, immagine 1) . Tuttavia, se si tiene conto che l'uso di X scarta X + 6, nessuna combinazione di questi darà tre intervalli di dimensione 3 (sotto, immagine 2) . Quindi possiamo concludere che qualsiasi soluzione include Pitch Class 3 o 9 (di cui dobbiamo solo provarne una, perché sono simmetriche) (sotto, immagine 3) .

set:(0,6), not:(3,9), req:(2,3,3,2,4,0) set:(0,1,4,5), not:(3,7,9,10), req:(1,2,2,1,3,0) set:(0,3,6), not:(9), req:(2,3,1,2,4,0)

Anche in questo caso questa situazione è simmetrica con un asse per 3 e 9. Consideriamo ora il fatto che abbiamo bisogno solo di due intervalli di distanza 1; questo significa che le Classi Pitch 1 e 2 non possono essere selezionate contemporaneamente (e nemmeno 4 e 5). Se avessimo selezionato le classi di altezza 10 e 11 (o il caso simmetrico delle classi di altezza 7 e 8), questo ci darebbe i due intervalli di distanza 1, ma l'unica opzione per l'ultima classe di lancio sarebbe 8 e impostare (0 , 3,6,8,10,11) non fornisce il numero corretto di ogni intervallo (sotto, immagine 1) . Quindi almeno un intervallo di distanza 1 viene effettuato selezionando Pitch Class 1 o 2 (non dobbiamo considerare 4 e 5 a causa della simmetria). Quindi abbiamo due opzioni (sotto, immagine 2 e 3) :

set:(0,3,6,10,11) set:(0,1,3,6), not:(2,7,9) req:(1,2,1,2,3,0) set:(0,2,3,6), not:(1,8,9), req:(1,2,1,1,4,0)

Vediamo che la seconda opzione (sopra, immagine 3) richiede solo un intervallo aggiuntivo di distanza 1, quindi uno dei due passi aggiuntivi Le classi dovranno essere 10; tuttavia, questo aggiunge due intervalli di distanza 4 (tra le classi di lancio 10 e 2 e 10 e 6) quando ne è ancora richiesto uno solo. Quindi la seconda opzione può essere scartata.

Per la prima opzione (sopra, immagine 2) , concentriamoci di nuovo sul numero richiesto di intervalli di distanza 5. Abbiamo bisogno di tre di loro, quindi le ultime due classi di lancio possono essere a distanza 5 l'una dall'altra ea distanza 5 da una Classe Pitch già presente (l'unica opzione per questo è selezionare Pitch Class 5 e 10) (sotto, immagine 1) , oppure non sono a distanza 5 l'uno dall'altro, e uno di loro è a distanza 5 da due classi di lancio già selezionate (questo significherebbe selezionare la classe di lancio 8 e una qualsiasi delle quattro rimaste) (sotto, immagine 2) .

set:(0,1,3,5,6,10) set:(0,1,3,6,8), not:(2,7,9), req:(1,1,1,1,1,0)

La prima di queste opzioni è davvero una soluzione valida. La seconda opzione ci offre quattro opzioni per la sesta classe Pitch. L'aggiunta di Pitch Class 4 non aggiunge un intervallo di distanza 5. L'aggiunta di Pitch Class 5 aggiunge gli intervalli giusti, quindi è un'altra soluzione (sotto, immagine 1) . L'aggiunta di Pitch Class 10 non aggiunge un intervallo di distanza 1. L'aggiunta di Pitch Class 11 aggiunge gli intervalli giusti, quindi è un'altra soluzione (sotto, immagine 2) . Quindi sembra che abbiamo due soluzioni aggiuntive:

set:(0,1,3,5,6,8) set:(0,1,3,6,8,11)

Quando creiamo la Forma Prime di queste tre soluzioni ruotandole e / o specchiandole, troviamo che le prime due sono identiche:

set:(0,1,3,5,6,10), PF:(0,1,3,5,6,8) set:(0,1,3,5,6,8), PF:(0,1,3,5,6,8) set:(0,1,3,6,8,11), PF:(0,1,2,4,7,9)

Quindi ci ritroviamo con due set di Pitch Class con queste Prime Form:

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


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 4.0 con cui è distribuito.
Loading...