<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=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
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:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
p.yiv793451570msoacetate, li.yiv793451570msoacetate, div.yiv793451570msoacetate
        {mso-style-name:yiv793451570msoacetate;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.yiv793451570msonormal, li.yiv793451570msonormal, div.yiv793451570msonormal
        {mso-style-name:yiv793451570msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.yiv793451570msochpdefault, li.yiv793451570msochpdefault, div.yiv793451570msochpdefault
        {mso-style-name:yiv793451570msochpdefault;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.yiv793451570msohyperlink
        {mso-style-name:yiv793451570msohyperlink;}
span.yiv793451570msohyperlinkfollowed
        {mso-style-name:yiv793451570msohyperlinkfollowed;}
span.yiv793451570emailstyle17
        {mso-style-name:yiv793451570emailstyle17;}
span.yiv793451570balloontextchar
        {mso-style-name:yiv793451570balloontextchar;}
p.yiv793451570msonormal1, li.yiv793451570msonormal1, div.yiv793451570msonormal1
        {mso-style-name:yiv793451570msonormal1;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.yiv793451570msohyperlink1
        {mso-style-name:yiv793451570msohyperlink1;
        color:blue;
        text-decoration:underline;}
span.yiv793451570msohyperlinkfollowed1
        {mso-style-name:yiv793451570msohyperlinkfollowed1;
        color:purple;
        text-decoration:underline;}
p.yiv793451570msoacetate1, li.yiv793451570msoacetate1, div.yiv793451570msoacetate1
        {mso-style-name:yiv793451570msoacetate1;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.yiv793451570emailstyle171
        {mso-style-name:yiv793451570emailstyle171;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.yiv793451570balloontextchar1
        {mso-style-name:yiv793451570balloontextchar1;
        font-family:"Tahoma","sans-serif";}
p.yiv793451570msochpdefault1, li.yiv793451570msochpdefault1, div.yiv793451570msochpdefault1
        {mso-style-name:yiv793451570msochpdefault1;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:10.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle31
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
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-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
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-US link=blue vlink=purple><div class=WordSection1><p class=MsoPlainText><span style='color:black'>I thought you wanted values to interpolate between the origin and destination (making a curve over time). Finding a value between is trickier and may require some kind of implementation that belongs to preset_hub. Of course, then the question is how do you weigh such interpolation (or what function do you use?) and the next thing you know preset_hub has become expr and line and tons of other things in one, making it huge, redundant, and unwieldy to maintain. In other words, where do you draw the line? Will the linear interpolation be enough?<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Jonathan Wilkes [mailto:jancsika@yahoo.com] <br><b>Sent:</b> Sunday, September 30, 2012 11:43 PM<br><b>To:</b> Ivica Ico Bukvic; 'flad chester'; pd-list@iem.at<br><b>Subject:</b> Re: [PD] Preset system in pd?<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:10.5pt;background:white'><span style='color:black'>Hi Ivica,<br>&nbsp;&nbsp;&nbsp;&nbsp; I don't understand how [line] could fill in for interpolation between states.<br><br>On the other hand, I don't think you would actually need all the interpolation<br>states that pattrstorage provides.&nbsp; If you just did linear interpolation by allowing<br>to set the preset with a float (like 1.5) that is between two states, then the user<br>could easily build all the interpolation schemes that pattrstorage's interp message<br>provides simply by putting the necessary objects after [recall $1( .&nbsp; For example,<br>if you want a quartic curve you'd just do [expr pow($f1-int($f1), 2)+int($f1)] and<br>then feed that into preset_hub.<br><br>That of course wouldn't work for more complex stuff like cubic interpolation,<br>but that is conspicuously absent in pattrstorage, too.</span><span style='color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:12.0pt;background:white'><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p></div></div></div></body></html>