{"content":[{"text":"and P3. Now identify a new set of k points on the circle (or box) in between these three points, by \n evenly spacing them along the arc that contains P1, P2, and P3. This process can be interated. A \n tradeoﬀ bewteen the number of iterations and the value of k can be tested for speed and eﬃciency. \n Call the best ﬁt line Lbf.","bbox":{"left":0.088235,"top":0.073044,"width":0.823548,"height":0.07082}},{"text":"Once the best ﬁt line is computed, the best ﬁt parabola is based on this line. First ﬁnd the \n perpendicular bisector B which passes through M and is perpendicular to Lbf. Now group the \n input points into two groups which are on either side of the line B. (Leave out points on B.) Call \n these sets of points S1 and S2. Compute the mean points for these two sets, say M1 and M2. Next \n form a family of parabolas by choosing control points Q0 = M1 and Q2 = M2 where Q1 will be any \n point on the line B. Choose a discrete set of such points Q1 which are distributed evenly on the \n segment which extends a maximum distance of 4c where c is the maximum of the two distances d1 \n from M1 to M and d2 from M2 to M. For each such Q1 there is a quadratic Bezier curve deﬁned \n by the control points Q0, Q1, and Q2. Call this curve Ct. For each Ct compute the sum S(Ct) \n of the perpendicular distances between Ct and Pi for each of the input points Pi. Choose the Ct \n with the smallest value of S(Ct). This is the ﬁrst candidate for the best ﬁt parabola Cbf. A similar \n approach to enhance speed and eﬃciency that was used to ﬁnd Lbf can be used here by working \n with subintervals of the line segment to reﬁne the search for the smallest value of S(Ct).","bbox":{"left":0.088235,"top":0.155122,"width":0.8235610000000001,"height":0.234978}},{"text":"Finally, for reasons of symmetry, we repeat all of the above paragraph with the role of B and Lbf \n swapped. This produces another candidate for Cbf, so we can choose the one with smaller value of \n S(Ct), and we call it the best ﬁt parabola.","bbox":{"left":0.088235,"top":0.401358,"width":0.823563,"height":0.05258099999999999}},{"text":"EC III: Audio Signals with Bernstein Polynomials \n This project is an audio enhancement to the ﬁrst project. The interface to the ﬁrst project stays \n the same, but now you would compute an audio buﬀer of data in the background which simulates \n one cycle of a polynomial spline curve. The ﬁrst half-cycle of the curve, say f(t), is exactly the \n one being displayed in the window on the interval [0, 1], and the second half-cycle, say g(t), is f(t) \n inverted and graphed over the interval [1, 2]. By inverted we mean that the curve is evaluated as","bbox":{"left":0.088235,"top":0.492292,"width":0.82362,"height":0.12040999999999996}},{"text":"g(t) = −f(2 − t). \n This gives one complete cycle of the piecewise function over the interval [0, 2]. \n case, with all control coeﬃcients equal to 1, gives one cycle of a square wave.","bbox":{"left":0.088235,"top":0.630549,"width":0.664615,"height":0.06706199999999995}},{"text":"Note:","bbox":{"left":0.764317,"top":0.664261,"width":0.04514499999999999,"height":0.015109999999999957}},{"text":"the default","bbox":{"left":0.819952,"top":0.664261,"width":0.09181299999999992,"height":0.015109999999999957}},{"text":"This function is then scaled to ﬁt into one cycle for an audio buﬀer, which should have the default \n frequency of 441 Hz (cycles per second) with discrete sampling rate of 44100 Hz. This means that \n one cycle ﬁts into 44100/441 = 100 samples along the t axis for audio output. The cycle should also \n be normalized to have maximum value set to 0.85. Such cycles should be continuously fed to the \n audio output buﬀer so that these are played back through the speakers. Then, as the user changes \n the shape of the curve through the interface by moving control points and changing the degree, \n the sound quality, or “timbre”, should change in real-time. In order to maintain consistent output, \n the maximum value of the function should be normalized to 0.85, even as the user is changing the \n shape of the curve. The user should also be able to change the frequency with a slider.","bbox":{"left":0.088235,"top":0.709861,"width":0.8236390000000001,"height":0.161026}},{"text":"For the audio output, one could use FMOD or DirectSound on Windows, or Core Audio on the \n MAC, etc.","bbox":{"left":0.088235,"top":0.883137,"width":0.823639,"height":0.03334999999999999}},{"text":"2","bbox":{"left":0.495219,"top":0.959323,"width":0.00955199999999995,"height":0.015109999999999957}}],"images_bbox":[],"images_bbox_not_text_overlap":[]}