-
Notifications
You must be signed in to change notification settings - Fork 152
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ESP32 requires float #104
Comments
Interesting! I have not looked into this at all. Did you run into issues related to that? |
The esp32 has a single single-precision FPU (despite its dual core nature). In an application scenario with the ESP32, ideally one core would do Link and another core would do other stuff. In a perfect scenario, Link would use only fixed point (e.g. Q-notation) for all calculations on a single core. Then the other core could use the FPU e.g. for audio processing without interruption from Link calculations. The jitter I measured between 2 ESP32s when synched to a Live instance through Link where in between +/- 1.5 to 2 ms maximum. I have adapted my fork of Link to floats. Ideally the data type used in Link would be configurable through CMake. Cheers, Robert |
I totally understand that doubles are problematic on this platform. |
If it's possible without any negative repercussions, allowing the |
The I pushed a branch that adds |
Thank you @fgo-ableton I will try that branch out! I had created a branch in a fork which has a variant of the host time filter and linear regression that uses floats. For ESP I have found that the filtering is necessary when trying to synchronize I2S real time audio output with Link, because the system uses a DMA buffer "push" style architecture where you have to write samples to DMA buffers as quickly as you can, and due to the RTOS scheduler the timing of when the buffer fill function is executed can vary a bit, which causes jitter in the synchronized output without using host time filtering. I could have that totally wrong, but that seems to be the empirical evidence 😆 |
After some testing, unfortunately it seems that |
@ndonald2 I merged the changed filter to master. |
Hi, it's great to see that ESP32 is supported in link.
However, ESP32 fpu is single precision, thus link would benefit from a configuration option to use float instead of double.
I have tested it and jitter seems almost independent of the data type.
Cheers, Robert
The text was updated successfully, but these errors were encountered: