Replies: 4 comments 68 replies
-
I'd use the Dynamic Smoother with a very low cutoff. I'd even try to go as low as 0.1Hz, then slowly increase for faster response. |
Beta Was this translation helpful? Give feedback.
-
Unrelated question: Why hold the filter(s) by pointer? These objects are very small and efficient and it is quite optimal to hold them by value. |
Beta Was this translation helpful? Give feedback.
-
Now that I have some of those details sorted out, the only minor quirk I notice is when switching between the low E and high e string, the frequency detector seems to be a bit sticky towards the lower frequency, potentially some sort of harmonic? If I move through the strings in series tuning E A D G B e, it seems to be a bit more reliable/quick to detect each specific string vs if I tune E and then e back to back. I need to pluck the high e string a bit louder or with more intention to have it register in the ~329 hz range instead of the 83 hz range of the low e string Could also be sympathetic resonance |
Beta Was this translation helpful? Give feedback.
-
@xconverge this is a very interesting discussion. I started a similar project using ESP32 and an external screen a few months back. It’d be interesting to pick your brain and swap ideas if you’re up to it. I’m planning to convert it over to a larger sceeen this weekend but am not fully satisfied with the smoothing yet. I’m using ESP-IDF. I believe I’m also using a 1EU filter. I found it to perform the best. But, I’ve never coded with LVGL before so the screen graphics are poor and I haven’t spent too much time on it once I saw Joel would be releasing a Hz lib. My project is here: https://github.com/joulupukki/esp32-chromatic-tuner Are you planning to publish your code? |
Beta Was this translation helpful? Give feedback.
-
Thanks a lot for providing the library! I am using this on a stm32 (daisy seed) as a guitar tuner.
I have everything running great, but wanted to float some ideas on how to stabilize the readings a bit
I have a small frequency detection class (I wrapped the pitch detector with this because I was exploring some other pitch detection algorithms at the same time. It looks something like this:
It seems to work very well, is very responsive and accurate. The next thing I wanted to approach is how to stabilize it a bit to make it a bit easier to tune accurately. I tried both a moving average(and exp moving average) along with a LPF with a cutoff of 4 hz and they each seemed to minorly improve the ease of tuning. I applied these filters to the m_cachedFrequency essentially, the OUTPUT of the pitch detector.
Do you have any advice on algorithms to look into, where in the chain I should be looking (at the input signal/the preprocessor parameteres/the output final frequency)?
Also I am eagerly waiting to check out Hz when you release it after reading your blog entries, thanks again!
Beta Was this translation helpful? Give feedback.
All reactions