Modify synthSin function to return a NumPy array, instead of a list of samples.
To prevent clicking between notes, apply an envelope to each note that results in the first few and last few samples being attenuated to 0.0.