Caos

Matrici di Markov del Secondo Ordine

Per ottenere una matrice di Markov del 2 ordine bisogna verificare le occorrenze di ogni nuovo stato a partire dall’essersi verificata una coppia di stati.

Consideriamo 3 altezze: do, re, mi e una matrice di transizione del primo ordine:

www.gabrielavelitch.com

fig. 54
Matrice di transizione del 1 ordine

Consideriamo ora la probabilità che si verifichi uno dei tre eventi (do,re,mi) dopo che si sia verificata una coppia di eventi.

www.gabrielavelitch.com

fig. 55
Matrice di transizione del 2 ordine

Supponiamo ora di partire dalla coppia Re-mi: l’algoritmo individua la prima colonna cioè la nota do. A questo punto la vecchia coppia Re-mi viene sostituita con la coppia mi-do.

Ad esempio:
Re-mi → do
Mi-do → re
Do-re → mi
Mi-re → do
ecc


E’ come considerando il Re-mi iniziale, spostassi il Re sulla sinistra, non considerandolo più e considerassi la nuova coppia MI-DO.

L’algoritmo proposto intende fare la stessa operazione, utilizzando la codifica MIDI delle altezze.

Spostare un numero verso sinistra di una posizione è analogo a moltiplicare quel numero per il sistema posizionale scelto: ad esempio se il numero 123 viene spostato verso sinistra di una posizione diventa 1230 ed è analogo ad avere moltiplicato 123 per 10.

Spostare di due posizioni implica moltiplicare per 100.

In Max l’oggetto << sposta il numero delle posizioni indicate dalla cifra che segue << , in base ad un sistema posizionale basato sul 2.

www.gabrielavelitch.com

fig. 56

L’oggetto bucket ricorda il dato in ingresso all’oggetto e lo restituisce in uscita all’arrivo del dato successivo.

L’algoritmo prende due note consecutive MIDI, la prima delle quali viene shiftata di 7 posizioni (7 bit) e aggiunge a tale numero generato la nota MIDI attuale, generando un unico numero.

www.gabrielavelitch.com

fig. 57

L’oggetto anal riporta quante occorrenze sono state effettuate di una coppia di numeri in ingresso.

Nell’algoritmo considerato, vengono contate le occorrenze di coppie di numeri che contengono già una coppia per ogni numero, realizzata con lo shift.

www.gabrielavelitch.com

fig. 58

L’oggetto prob ricava una matrice di probabilità a partire dalla occorrenze in ingresso.

L’oggetto % 128 estrae il resto della divisione per 128 (7 bit) riportando il numero ad un valore compreso tra 0 e 127.

www.gabrielavelitch.com

fig. 59

www.gabrielavelitch.com

fig. 60

www.gabrielavelitch.com

fig. 61
Algoritmo di caricamento di Midi File

L’oggetto prob, per ogni bang successivo genera un nuovo valore tra quelli possibili dalla matrice di transizione.

Possiamo controllare la densità di attacco a attraverso una scelta pesata casuale. .

www.gabrielavelitch.com

fig. 62

Oppure costruendo una una matrice di transizione per le durate..

www.gabrielavelitch.com

fig. 63

Site was started with Mobirise