All Projects → amrondonp → Chords.py

amrondonp / Chords.py

Licence: other
Neural networks applied in recognizing guitar chords using python, AutoML.NET with C# and .NET Core

Programming Languages

C#
18002 projects
python
139335 projects - #7 most used programming language
typescript
32286 projects
CSS
56736 projects
HTML
75241 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to Chords.py

Capstone.NET
.NET Core and .NET Framework binding for the Capstone Disassembly Framework
Stars: ✭ 108 (+350%)
Mutual labels:  netcore
Chord-Provider
A Chordpro parser/editor in SwiftUI 4 for macOS and iOS
Stars: ✭ 20 (-16.67%)
Mutual labels:  chords
Hammer
Simple, reliable FHIR validator
Stars: ✭ 27 (+12.5%)
Mutual labels:  netcore
DBUtil
最新版本请移步:https://gitee.com/jackletter/DBUtil
Stars: ✭ 24 (+0%)
Mutual labels:  netcore
Hand-Digits-Recognition
Recognize your own handwritten digits with Tensorflow, embedded in a PyQT5 GUI. The Neural Network was trained on MNIST.
Stars: ✭ 11 (-54.17%)
Mutual labels:  recognition
Korean-OCR-Model-Design-based-on-Keras-CNN
Korean OCR Model Design(한글 OCR 모델 설계)
Stars: ✭ 34 (+41.67%)
Mutual labels:  recognition
hexpress
Modern mobile music instrument
Stars: ✭ 51 (+112.5%)
Mutual labels:  chords
SRLCD
fast loop closure detection (online visual place recognition) via saliency re-identification IROS 2020
Stars: ✭ 78 (+225%)
Mutual labels:  recognition
command-core
The MVC library of CLI development
Stars: ✭ 77 (+220.83%)
Mutual labels:  netcore
Norm.net
High performance micro-ORM modern Dapper replacement for .NET Standard 2.1 and higher
Stars: ✭ 92 (+283.33%)
Mutual labels:  netcore
EcommerceDDD
Experimental full-stack application using Domain-Driven Design, CQRS, and Event Sourcing.
Stars: ✭ 178 (+641.67%)
Mutual labels:  netcore
MudBlazor
Blazor Component Library based on Material design with an emphasis on ease of use. Mainly written in C# with Javascript kept to a bare minimum it empowers .NET developers to easily debug it if needed.
Stars: ✭ 4,539 (+18812.5%)
Mutual labels:  netcore
NetCore8583
NetCore8583 is a library that helps parse/read and generate ISO 8583 messages for .NET Core
Stars: ✭ 24 (+0%)
Mutual labels:  netcore
MQTTnet
MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker). The implementation is based on the documentation from http://mqtt.org/.
Stars: ✭ 3,309 (+13687.5%)
Mutual labels:  netcore
notification-provider
A Mail Notification Library providing additional features on top of existing Email Notification clients like Microsoft Graph, Direct Send, and more!
Stars: ✭ 19 (-20.83%)
Mutual labels:  netcore
dark-sky-core
A .NET Standard Library for using the Dark Sky API.
Stars: ✭ 55 (+129.17%)
Mutual labels:  netcore
facial-expression-recognition
The main purpose of the project - recognition of emotions based on facial expressions. Cohn-Kanade data set (http://www.pitt.edu/~emotion/ck-spread.htm) is used for explorations and training
Stars: ✭ 60 (+150%)
Mutual labels:  recognition
X.Extensions.Logging.Telegram
Telegram logging provider
Stars: ✭ 32 (+33.33%)
Mutual labels:  netcore
NETProvider
Firebird ADO.NET Data Provider
Stars: ✭ 113 (+370.83%)
Mutual labels:  netcore
Dazinator.Extensions.FileProviders
No description or website provided.
Stars: ✭ 34 (+41.67%)
Mutual labels:  netcore

Chord Recognition

Demo application

The demo application is written in C# with .NETCore. As of July 9, 2020, the only version available is for windows 10 64 bits. Versions for Linux are expected to come as a console application.

Installing the application.

The demo app uses AutoML .NET as the default prediction engine and ONNX runtime as the legacy prediction engine to run the exported model created on python and keras and it needs Visual C++ to be installed on the machine that is going to run the app.

Steps.

  1. (Optional, only if you are interested on using ONNX runtime) Install Visual C++ from the Microsoft web site
  2. Download the application from our Releases
  3. Extract the folder and run ChordsDesktop.exe

title

Current Features

  • Load any .WAV or .MP3 file and it will split your file in different chords
  • Play, Pause and Stop audio controls
  • Seek to any chord in particular and resume the reproduction from there.
  • Ability to change the length of the window for analyzing the chords
  • Ability to correct the model prediction
  • Retrain the model based on your corrections

Training

NOTE this was tested using the following setup:

uname -mrs
Linux 5.4.72-microsoft-standard-WSL2 x86_64 # WSL2 Ubuntu 20.04

python --version
Python 3.8.5

This program is a university project on the introductory course to artificial intelligence.

You'll need python 3, pip, and virtualenv(optional but recommended) to run the program

  1. Clone the repository
  2. Go inside the project folder cd Chords.py/Chords.py
  3. Create a virtualenv virtualenv -p python3 my_env
  4. Activate your environment source my_env/bin/activate (linux) my_env/Scripts/activate.bat (windows)
  5. Install the dependencies pip install -r requirements.txt

At this point you have the environment ready to use several entry points.

  • python predict.py or python predict.py path/to/song.wav will give you a prediction of the chord present in that sound file, by default it goes to songs/d.wav which is the D chord. It will show a window similar to this one.

title

  • python split.py songs/guitar/about_a_girl.wav is an example of the split.py entry point that takes a longer song, splits it and runs the prediction for each song piece. The results are saved in a filed called spliter_result.txt

    • Example, if you ran python split.py songs/guitar/about_a_girl.wav, then spliter_result.txt would have the following content: em g em g em em em g em em g g em g g g em g g g em em g em em g g em em g g which are the chords that it was able to identify on the song.
  • In the file paper.pdf you'll find the final report of this university project with some references added. Currently it is only available in Spanish, you could go and try to use a translator, hope it helps

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].