Αυτό που λέει ο theoctapus θα τρέξει.
Θα πρέπει να μετατρέψει τις νότες και τις αξίες σε αντίστοιχες συχνότητες και χρονικά διαστήματα.
"Κατασκευάζοντας" και τις παύσεις με μηδενικά είναι ένας τρόπος για να αποφύγεις να "μετράς" που θα πρέπει να "γράψεις" την κάθε νότα.
Ο (λίγο) γρηγορότερος τρόπος θα ήταν να δημιουργήσεις ένα αρχικό διάνυσμα με μηδενικά με μήκος Fs*Τ όπου Τ η συνολική διάρκεια του "κομματιού",
y=zeros(1, Fs*Τ); (%Τ ακέραιος σε sec.)
στη συνέχεια να δημιουργήσεις τις νότες και να πας να τις "γράψεις" στις αντίστοιχες θέσεις του (αρχικά γεμάτο μηδενικά) διανύσματος.
Σε σχέση με την περιβάλλουσα, νομίζω ότι θέλει να υλοποιήσει κατι σαν volume automation.
θα εφτιαχνα ενα αλλο διάνυσμα, με μήκος όσο και το y και με τιμές απο 0 ως 1 και θα το πολλαπλασίαζα (pointwise) με το y.
y=peribal.*y;
Παντως, για πανω απο 2-3 νότες είναι η αποθέωση της "χαμαλικής" να αντιμετωπιστεί έτσι αυτό το πρόβλημα.
Η πιο "σωστή" προσέγγιση θα ήταν να δημιουργηθούν συναρτήσεις που να παράγουν τις κυματομορφές (με ορίσματα: νότα, tempo, αξία, συχνότητα δειγματοληψίας) και να παίρνει το script τις νότες του κομματιού απο ενα αρχείο (π.χ. text)
Αν "επιτρέπεται" η χρήση midi, τότε υπάρχουν και έτοιμες λύσεις π.χ.
http://www.kenschutte.com/midi