# Seamless frequency circle (FFT)

**URL:** <https://discourse.processing.org/t/seamless-frequency-circle-fft/20494>\
**Category:** Libraries\
**Created:** [May 5, 2020, 6:25am UTC](https://discourse.processing.org/t/seamless-frequency-circle-fft/20494 "2020-05-05T06:25:34Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![poboyd](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/poboyd/32/8908_2.png) [@poboyd](https://discourse.processing.org/u/poboyd)\
**Post date:** [May 5, 2020, 8:17am UTC](https://discourse.processing.org/t/seamless-frequency-circle-fft/20494/3 "2020-05-05T08:17:52Z")

</div>

not sure if this is of any use but maybe you could try a different way to update the circle points? I did a similar thing on my app but mapped the x/y values manually and held them in an array of objects Id created (my points object), it looked a bit like this (i have removed a lot of the code to try to just show bits that might be relevant)…

Update code…

```auto
for (int i = 0; i < waveBuffer.length; i++) {

   offset = PApplet.map(waveBuffer[i], -1, 1, -workingWidth / localHeight, workingWidth / localHeight);
   angle = PApplet.map(i, 0, waveBuffer.length * 2, 0, PConstants.TWO_PI);

   points.get(i).location.x = (float) (((workingWidth - workingWidth * 0.1) + offset) * PApplet.cos(angle));
   points.get(i).location.y = (float) (((workingWidth - workingWidth * 0.1) + offset) * PApplet.sin(angle));  						
}

```

draw code…

```auto
beginShape();		
for (int i = 0; i < points.size() - 1; i++) {
  vertex(points.get(i).location.x, points.get(i).location.y);
}
endShape(PConstants.CLOSE);

```

---

_[View the full topic](https://discourse.processing.org/t/seamless-frequency-circle-fft/20494)._
