Allora ho buttato giù il possibile funzionamento del tuo inviluppo. Ci sono ancora 2 punti oscuri, ti prego di correggere eventuali errori:
L’informazione sulla velocità è inviata al blocco select che la confronta con il valore 0. A questo punto la patch si divide in due rami: il ramo sinistro è quello che corrisponde al “MATCH” generato dal blocco sel (la velocity è effettivamente zero, dunque la nota non è ancora premuta) e il ramo destro che corrisponde al NO MATCH di sel (la velocity è diversa da zero)
Va da se che sul ramo sinistro sarà possibile agire sull’attacco (la fase durante la quale il volume passa da zero al suo valore massimo) mentre su quello destro si potrà lavorare su sustain e release (in quanto la nota è già stata premuta). Attack e Release sono espressi in unità di tempo, Sustain in unità di ampiezza.
Ramo sx: il valore in uscita da sel viene convertito in un bang e memorizzato in una variabile i. A questo punto è possibile mediante lo slider forzare l’uscita (attraverso l’inlet destro di i) al valore desiderato (che sarà appunto il tempo che impiegherà la forma d’onda a raggiungere il suo valore massimo). Questo valore viene “chiamato 0” e spedito al line object.
Ramo dx: viene richiamata l’informazione sulla velocity e utilizzata come livello di sustain (perchè /127??) il release non ho ancora capito come fa ad agire.)
L’oggetto pack manda i messaggi al line object che genera una rampa lineare i cui livelli e tempi sono determinati dai messaggi che provengono dal ramo sinistro e destro. Ogni 10 msec il valore corrente viene azzerato e viene fatta ripartire una nuova rampa.
Un'altra cosa che non mi torna è il risultato del controllo del release. cambiando il release dovrei modificare il tempo che impiega la nota a tornare ad un valore 0. Gli effetti che si hanno modificando i due slider mi fanno pensare che release e attack siano scambiati anche se di fatto cosi non dovrebbe essere perchè il ramo dove si puo modificare l'attacco corrisponde al match con 0 di sel (ovvero velocity nulla). Però facendo le prove mentre suono, se sparo l'attacco al massimo ho si una variazione del tempo con la quale la nota raggiunge il valore massimo ma soprattutto un decadimento fino allo zero molto più lungo, che dovrebbe essere quello che dovrei poter controllare solo con il release!
Se invece modifico il release il tempo di decadimento mi sembra sempre lo stesso mentre si ha un attacco più lungo!










