summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-02-03Renamed wasm interface file to reflect that it isn't just emscripten anymoreJustin Worthe
2018-02-02Fixed weird isizes that should have been usizesJustin Worthe
Really, why were those there? I seem to remember them breaking an example at some point, but it doesn't seem to anymore. Maybe it was an emscripten thing?
2017-12-28Updated WASM build to use the new wasm32-unknown-unknown targetJustin Worthe
It's only in the nightly compiler at the moment.
2017-12-26Refactored to use more extensive typingJustin Worthe
2017-12-26Updated GTK version and fixed linting issues from ClippyJustin Worthe
2017-12-26Moved overall model updating logic out of the GUI layerJustin Worthe
This will be useful eventually for sharing a bit more overall application logic with the wasm build.
2017-11-05Set up web interface to mimic GTK interfaceJustin Worthe
2017-11-03Added a connection to the microphone through the web, calling into RustJustin Worthe
2017-10-16Added correlation function which updated array in placeJustin Worthe
2017-10-15Added emscripten calls for hz interpretationJustin Worthe
This also uncovered a weird compilation issue. Emscripten did NOT like me using the remainder operator with a floating point number.
2017-10-15Moved emscripten APIs to their own module and added stubs for other methodsJustin Worthe
2017-09-24Emscripten endpoint for finding fundamental frequencyJustin Worthe
IT'S ALIVE!
2017-09-24Cleaned up transforms apiJustin Worthe
- made things that didn't need to be public hidden - renamed find fundamental function to remove correlation (there isn't an alternative anymore)
2017-09-10Merge branch 'master' of github.com:JWorthe/rusty_microphoneJustin Worthe
2017-09-10Removed unnecessary rounding of errorJustin Worthe
2017-09-10Added compile flags to disable anything that shouldn't end in a wasm buildJustin Worthe
- No GTK - No Portaudio
2017-08-12Fixed potential index out of bounds errorJustin Worthe
2017-08-02Readded frame skippingJustin Worthe
This was becoming an issue on debug builds on the laptop. Really, it's for the best to skip frames rather than getting stuck in a perpetual time delay.
2017-08-02Updated sharp/flat characters to use correct unicodeJustin Worthe
2017-08-02Removed unnecessary commentJustin Worthe
2017-07-22Fixed incorrect type inferrence to a vector rather than a sliceJustin Worthe
2017-07-21Made changes suggested by ClippyJustin Worthe
2017-07-15Decreased window size and increased framerateJustin Worthe
The samller windows size has a few effects: 1. the frequency calculation will be less accurate, because less iterations of the binary search will be effective. 2. 'mixed signals', measures at the start or end of a note where half the signal is one thing and the other half is something else will have less impact, since they will be on the screen for less time. The higher frame rate also looks really nice.
2017-07-12Simplified loop for doing calculations from microphone samplesJustin Worthe
In the benchmarks, the correlation can be done in 0.5ms. I'm only expecting new samples from the microphone every 23ms at best. I don't need to worry about dropping frames at this point.
2017-07-11Updated silence level and made no pitch's error show a 'perfect' pitch ↵Justin Worthe
background
2017-07-08Ignored audio device unit tests because Travis doesn't have audio devicesJustin Worthe
2017-07-08Refactoring of code to be more functionalJustin Worthe
If tests break on travis after this, it's because I reenabled some portaudio tests. I'm not sure if travis actually has sound available on their build servers.
2017-07-05Started listening on default microphone on startupJustin Worthe
2017-07-04Removed bad unwrapsJustin Worthe
2017-07-03Hid correlation chart by defaultJustin Worthe
2017-07-03Updated tests to match new label formatJustin Worthe
2017-07-03Removed FFT chartJustin Worthe
I was only using the correlation anyway, so this simplifies a bit
2017-07-03Added silence and noise detectionJustin Worthe
Also updated GUI to present note and error in a friendlier way
2017-06-27Added binary search to refine fundamental frequency search on the correlationJustin Worthe
It first finds the max peak. Then, to increase the resolution, it works out how that peak lines up with the other peaks and nudges it a bit up or down.
2017-06-26Added function for linear interpolationJustin Worthe
2017-06-26Increased number of samplesJustin Worthe
2017-06-25Added fundamental frequency to correlation graph and fixed zeroing of itJustin Worthe
2017-04-19Added basic buttons to toggle chart visibilityJustin Worthe
The main idea here is to be able to bring focus to specific charts. Also, I learned how to make one chart expand more.
2017-04-18Added basic oscilloscope functionality to watch the waveformJustin Worthe
The triggering algorithm isn't great at the moment. Seems the interesting signals end up crossing zero a few times. I need to take things like maxima into account as well. I'm also running out of vertical space. I need to start making the GUI a bit smarter, and allow turning some of these graphs on/off at runtime.
2017-03-25Added a graphical indication of the pith's sharpness or flatnessJustin Worthe
I'm not 100% happy with the precision of the correlation function at this point. I'm hoping that with a bit more work, I can get it to be more precise, and then the indicator will be more meaningful.
2017-02-16Worked to improve performance of debug graphsJustin Worthe
- Moved from channels to shared state - Allowed audio frame skipping
2017-01-17Added drawing area for correlation, but hid all graphsJustin Worthe
The current method of sending all that data with channels turns out to be terrible for performance. On the other hand, I need to get the data to the GTK main thread if I want to do anything with it. So I have a conundrum.
2017-01-17It's alive!Justin Worthe
Implemented passable frequency detection using auto-correlation. It's still a bit finicky, and not super accurate. It could probably be made more accurate by doing interpolation after choosing an appropriate peak to find the maximum point more accurately. The correlation itself does also oscillates uniformly after all.
2017-01-14Added graph drawing of FFTJustin Worthe
2017-01-12Simplified failing test so it would passJustin Worthe
It wasn't failing because of some small error, the whole way I find the fundamental needs to be rethought, probably to use correlation instead of an FFT.
2017-01-12Started refactoring gui creation to include drawing areaJustin Worthe
The drawing area will eventually be used for a debugging graph of the frequency spectrum.
2016-11-26Updated name of crate everywhereJustin Worthe
2016-11-12Better pitch formattingJustin Worthe
2016-11-06Hooked up printing FFT result to screenJustin Worthe
It's wrong, but it's showing it on the GUI. I'm calling it a win.
2016-11-05Reordered passing in channelsJustin Worthe