In[]:=
orig=
;
In[]:=
width=200;blur=2;pos=PixelValuePositions[EdgeDetect[ImageResize[GaussianFilter[orig,blur],width],5],1]//N;path=pos[[FindShortestTour[pos][[2]]]];ts=Accumulate[EuclideanDistance@@#&/@Partition[path,2,1]];ts=ts/ts[[-1]];ts=PrependTo[ts,0];xs=path[[All,1]]/width;ys=path[[All,2]]/width;xf=Interpolation[Transpose[{ts,xs}]];yf=Interpolation[Transpose[{ts,ys}]];Grid[{{Graphics[orig,ImageSize->"Small"],ParametricPlot[{xf[t],yf[t]},{t,0,1},ImageSize->Small]}}]
Out[]=
In[]:=
sound=Module[{period=200},ListPlay[{Table[yf[Mod[t,period]/period//N],{t,10000}],Table[xf[Mod[t,period]/period//N],{t,10000}]},SampleDepth->16,SampleRate->2048]];
In[]:=
EmitSound[sound]
In[]:=
Export["~/Buff/icon.wav",Sound[sound],AudioEncoding->"Integer16"]
Out[]=
~/Buff/icon.wav