Motivo di progettazione per la creazione di viste complesse in spartiti

1

Ho un sacco di Note -Modelli con proprietà come pitch e duration . Nella notazione musicale, queste note devono ora essere collocate in una determinata barra su una determinata riga in una determinata pagina e così via. Molti altri fattori influenzano il posizionamento di queste note come le note che si trovano nella stessa barra prima di loro.

Inoltre, le proprietà di stile influenzano molti diversi elementi di visualizzazione.

Il posizionamento delle note è influenzato dalla "altezza della linea" delle linee musicali, indipendentemente dal fatto che la barra sia giustificata dalla larghezza della pagina o meno, e così via.

Sto cercando un modello di progettazione che possa aiutarmi a posizionare in modo pulito tutte queste viste l'una rispetto all'altra.

Qualcuno può aiutarmi?

Sto utilizzando SVG con JavaScript per il mio progetto attuale, se questo è importante.

Grazie mille per l'aiuto! :)

    
posta Macks 19.06.2013 - 02:10
fonte

1 risposta

2

Perché vuoi un modello di design? Quello che vuoi veramente è un algoritmo.

Le note musicali derivano la loro "altezza" sul pentagramma dalla nota che rappresentano. Derivano la loro posizione sul pentagramma rispetto al momento in cui sono giocati all'interno della barra. Ulteriori informazioni possono cambiare il modo in cui le note vengono disegnate, come le terzine o altre regole relative alle cravatte e i gruppi di 8a nota.

Il mio consiglio sarebbe di elaborare tutte le regole. E poi guarda la struttura dei dati e scopri come trasformare i dati, con l'aiuto delle regole, in qualcosa che devi rendere.

Potrebbe essere utile pensare a ogni barra come a un albero di note di lunghezza variabile. Il primo livello sarebbe un semibreve, che ha due bambini (minimi) ciascuno con bambini (semicrome) e così via. Dovresti compilare i nodi nell'albero solo se queste note esistono o se c'è una pausa per quel periodo. Quindi è possibile attraversare l'albero per ogni barra per applicare le regole associate alla posizione e annotare il raggruppamento, e cosa no.

Potrebbe essere necessario modificarlo leggermente per gestire le terzine (forse una notifica sul nodo genitore che contiene le terzine).

Usando un albero M-way potresti rappresentare anche in questo modo una firma del tempo.

Ci sono alcuni renderer di tablature di note open source (notazione di chitarra) che disegnano anche righi di note, vai e dai un'occhiata a come fanno anche questo.

    
risposta data 19.06.2013 - 02:24
fonte

Leggi altre domande sui tag