eozd / libreguitar Goto Github PK
View Code? Open in Web Editor NEWGuitar fretboard teacher app that recognizes notes played on a guitar through the sound interface or microphone.
License: GNU General Public License v3.0
Guitar fretboard teacher app that recognizes notes played on a guitar through the sound interface or microphone.
License: GNU General Public License v3.0
GameLogic sometimes picks DSharp octave 2
note although it is outside the range (just below E2
note). Might be an off-by-one error somewhere.
Currently planned stats:
Need to do some research on how this can be done. It seems that it might be trickier than finding the frequency via FFT. If all else fails, some ML approaches might be worth looking at.
Currently signal reading from audio device and audio processing is done on the same thread. This causes the thread to miss some audio blocks on systems with slow CPUs, as the audio processing is being performed synchronously. We might instead perform the audio processing on a separate thread so that we don't miss any parts of the input signal.
Release pipeline should create flatpak images for linux binaries. Further, we can create multiple binaries for linux, one with GUI and one without. Considering the amount of dependencies the GUI component pulls in, this might result in compact CLI binaries.
Currently sample rate and buffer size are hardcoded into the library. We need to allow users to choose these values
Maybe look for crates that make argument parsing easier.
Similar to Windows build, we need to test the application on MacOS.
Visualization and game logic parts should be made optional. It is enough to make the GUI part optional at this stage.
We need logging capabilities to log errors/missed frames/etc. Writing to STDERR should suffice for the moment.
Frequency detection seems to not work so well on lower frequency ranges. This might be due to the wrong usage of rustfft
library. The main reason for this argument is that the same detection algorithm seems to have almost perfect accuracy with its previous Python implementation.
See https://github.com/BurntSushi/ripgrep/blob/master/.github/workflows/release.yml for inspiration.
The part in GameLogic main loop where the code waits for the target note to be detected sufficiently many times by the analyzer blocks the GameLogic thread. This part might be better done
Find a way to provide the application as a simple-to-run Windows binary.
Currently the detection algorithm hardcodes certain constants. We need to expose them as a simple config file (toml or yml).
#45 enables Windows builds for libreguitar. However, ASIO support is currently disabled for reasons discussed in the MR description. We should enable it once the issues are resolved.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.