<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
No problem - just going through and implementing various examples to find all the bugs in my code.&nbsp;<br class="">
<div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<br class="Apple-interchange-newline">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Todd
 Ingalls</span><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Associate
 Director</span><br style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">School
 of Arts, Media and Engineering</span><br class="">
</div>
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class=""><a href="http://ame.asu.edu" class="">ame.asu.edu</a></span></div>
</div>
</div>
<div><br class="">
<blockquote type="cite" class="">
<div class="">On May 19, 2023, at 6:30 AM, <a href="mailto:bil@ccrma.Stanford.EDU" class="">
bil@ccrma.Stanford.EDU</a> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="">Ouch! &nbsp;I optimized formant-bank at some point, and broke<br class="">
that instrument. &nbsp;I think this slower version works:<br class="">
<br class="">
(definstrument (move-formants start file amp radius move-env num-formants)<br class="">
&nbsp;(let* ((frms (make-vector num-formants))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>(beg (seconds-&gt;samples start))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>(dur (mus-sound-framples file))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>(end (+ beg dur))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>(rd (make-readin file))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>(menv (make-env move-env :length dur)))<br class="">
&nbsp;&nbsp;&nbsp;(display dur) (newline)<br class="">
&nbsp;&nbsp;&nbsp;(let ((start-frq (env menv)))<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(do ((i 0 (+ i 1)))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;((= i num-formants))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>(set! (frms i) (make-formant (* (+ i 1) start-frq) radius))))<br class="">
&nbsp;&nbsp;&nbsp;(do ((k beg (+ k 1)))<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((= k end))<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let ((frq (env menv))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;&nbsp;&nbsp;(sum 0.0)<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;&nbsp;&nbsp;(inp (readin rd)))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>(do ((i 0 (+ i 1)))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;&nbsp;&nbsp;((= i num-formants))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;(set! sum (+ sum (formant (frms i) inp))))<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(outa k (* amp sum))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>(do ((i 0 (+ i 1))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;&nbsp;&nbsp;&nbsp;(curfrq frq (+ curfrq frq)))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;&nbsp;&nbsp;((= i num-formants))<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;(if (&lt; (* 2 curfrq) *clm-srate*)<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(set! (mus-frequency (frms i)) curfrq)))))))<br class="">
<br class="">
(with-sound (:srate 22050)<br class="">
&nbsp;(move-formants 0 &quot;oboe.snd&quot; 2.0 0.99 '(0 1200 1.6 2400 2.0 1400) 4))<br class="">
<br class="">
<br class="">
I need to figure out how to handle the original case -- the<br class="">
optimization moved all the filter innards into the some<br class="">
arrays in formant-bank, so setting the original formant fields<br class="">
had no effect on the formant-bank (oops... -- but it's faster!).<br class="">
Thanks very much for pointing this out!<br class="">
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</body>
</html>