<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Dear all,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">In collaboration with a colleague here at the University of Exeter, I’ve started to experiment with the idea of producing sound scapes of plots. The idea was motivated by my current work, which requires me to look at lines of best fit (often
 using polynomial smoothers) through many datapoints. Essentially, we can produce a soundscape of a plotted function, or plotted data points. The idea is similar to the Mathtrax software produced by NASA some years ago, except we can now harness the power of
 R. The code is based on the tuner package. Essentially, we create a signal that represents the value of a plotted function using Fourier series, and output the wave to a .wav file. This can be played from within R, using a software such as Windows Media Player
 under Windows, or mplayer under linux. You can choose from four forms of wave which all sound quite different to me. Datapoints can be indicated with pulses, and tick marks on the x axis are indicated with a short blast of the distinctive sawtooth wave. The
 soundscape moves from left to write, in order to mimic moving along the x axis. So far, I’ve used the sonify() function to examine distributions whose PDF I was unfamiliar with, and to look at a nonparametric approximation to a line of best fit estimated from
 data. I’ve had to look at many of these plots over the years, which have often required sighted assistance, and so this represents quite a breakthrough in terms of working efficiency.<o:p></o:p></p>
<p class="MsoNormal">The code can be obtained from here:<o:p></o:p></p>
<p class="MsoPlainText"><a href="https://raw.githubusercontent.com/sieste/sonic-plot/master/Rsonify/sonify.R">https://raw.githubusercontent.com/sieste/sonic-plot/master/Rsonify/sonify.R</a><o:p></o:p></p>
<p class="MsoNormal">For example, you could try<o:p></o:p></p>
<p class="MsoNormal">X=seq(-5,-5,.01)<o:p></o:p></p>
<p class="MsoNormal">Y=sin(x)<o:p></o:p></p>
<p class="MsoNormal">Sonify(y,x,ticks=seq(-4,4,1),pulse_len=0) # without pulses for the datapoints<o:p></o:p></p>
<p class="MsoNormal">Sonify(y,x,ticks=seq(-4,4,1),pulse_len=0.2) # to hear pulses at the datapoints<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">At this stage I would like to gather any feedback, and suggestions as to how the script could be made more useful still. Please send me any bugs you find in the code.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Best wishes<o:p></o:p></p>
<p class="MsoNormal">Robin<o:p></o:p></p>
</div>
</body>
</html>