# How to make the note transition smooth?

Posted 10 years ago
8122 Views
|
2 Replies
|
0 Total Likes
|
 Hi,I am trying to generate notes/volume based on a slider2d control. Here is the code:PlayNoteExample[{n_, v_}] := Module[{note, vol},note = Floor[Rescale[n, {-1, 1}, {0, 11}]];vol = Rescale[v, {-1, 1}, {0, 1}];EmitSound[Sound[SoundNote[note, 0.1, "Flute", SoundVolume -> vol]]]];Manipulate[PlayNoteExample[pt], {pt, {-1, -1}, {1, 1}}]When I animate using the slider, the note transitions are jittery (I understand why). What should I do to make the transitions smooth?Regards,Rangarajan
2 Replies
Sort By:
Posted 10 years ago
 Hi Sean,Thanks a lot. I see your point about EmitSound. I am starting to do some work on algorithmic music composition in Mathematica. It seems to me that SoundNote is the basic primitive to use for generating western music using pitches, scales, and instruments. The Play function (also ListPlay) appear to be fairly low level, and not that useful for generating music directly (I may be wrong). For example, how to model instruments such as Piano, Flute, etc. using Play? Compared to other music/sound composition programs such as SuperCollider, Mathematica appears a bit less powerful. I chose Mathematica because of its symbolic computation capabilities. It would be nice if there is a way to use Mathematica as a front end to Supercollider (or CSound).Regards,Rangarajan
Posted 10 years ago
 Hi. Did you get this code from somewhere? This function is using SoundNote which creates sounds using Midi and discrete intervals. Frequencies between semi-tones are not accepted by the function, so you won't smooth transitions between frequencies with it. If you would like more control over the sound being made, you may want to use Play or ListPlay. Additionally, what EmitSound does is cause a sound to be played. Once EmitSound starts to play a sound, changing something using a slider will not change the sound that EmitSound was asked to play. Instead, it will queue a new sound for EmitSound to play. To see this note the lag here:Manipulate[EmitSound[Play[Sin[note*440 Pi t], {t, 0, 0.1}]], {note, 1, 2}]