TactMaster - a mobile application that helps you to improve rhythm and timing skills.


About me

I'm a software engineer with 6+ years experience. Primary skills: Scala/Java, Distributed Systems, Concurrency and Software Design. And sure I play guitar, favorite genre is AnyMetal.

Introduction

Everyone who is playing guitar knows what playing scales with a metronome develops many areas which benefit your playing. It is a very useful technique exercise to develop your picking speed and accuracy while further developing your scale muscle memory and your ear. Nevertheless, there are few obstacles that prevent you from practicing as much as necessary:

  1. It requires a real guitar to practice. Would you like to play with a metronome while you are traveling to work without having a real guitar ?
  2. It's time consuming. People having a busy schedule usually struggle to get free time on routine exercises.
  3. It's hard to get accurate feedback. The only thing you can trust when you playing is your ears, but they can lie to you especially if you are beginner. Thus it's hard to know when your picking skill is accurate enough without accurate feedback. Having a good feedback will help you to analyze an issues with your technique and provide some basic tips on how to eliminate them.
  4. It's hard to track a progress. It's important to know when you are ready to move on and how close you are to success. Such like professional sportsmen are recording theirs workouts in order to increase their efficiency. It will motivate you and inspire you to succeed.
  5. It's often mind-numbingly boring, especially when practicing a simple scales. You have to start from a very simple scales at lower bps, that's a fact. Otherwise you will not be able to correctly perform a complex ones either. Also it can be more creative to practice with a different drum grooves rather than plain metronome.

Idea

To address those issues I'd like to develop a mobile app which will play a role of metronome and exploit Myo armband to get raw EMG data while a user is making pick gestures is if he/she is playing real guitar. You can consider it like a "ear trainer" that will help musicians to improve their picking accuracy and speed.


Features:

  1. You don't need a real guitar to practice. All what you need is a mobile phone with installed app, headphones and Myo armband. You can play while walking, ride the subway, shopping and etc. You can keep your picking arm down which looks natural when playing guitar standing up. However, you can practice at home using a real guitar as well.
  2. At the end of each metronome session you will get a feedback telling you about accuracy of your picking technique. The app will give you tips that you can apply to surpass current level and move forward
  3. The app will continuously accumulate and analyze your progress between metronome sessions, it will let you know if you are ready to move forward or if you need to practice a little bit more
  4. Since you don't need to carry-on your guitar you can play wherever you want, at any place that makes you more cheerful in some sense. If you get bored you can switch between plain metronome to drum grooves so that you can play your favorite breakdowns
  5. The app will provide you a set of predefined tracks which can be played using one open note and one string. You can create your own melodies or edit existing ones using midi format and upload them to the app if you wish

note: It's not an attempt to build a 'virtual' guitar in order to replace a real one. You need to have a real guitar anyway if you want to be a musician.


Implementation

The final product should be a mobile app that runs on iOS and Android mobile platforms. Myo provides sdk for Android and iPhone/iOS. It's well documented and easy to grasp. Also I want to encourage machine learning techniques (exited about TensorFlow) to gain more from raw EMG data. Based on my research it should be possible to differentiate guitar picking techniques: fingerstyle, sweep and such like. However, the first version of app will only support a technique using "guitar pick". Only single note and one string can be used for practice. It's hard or even impossible to support many strings or notes without some extra tools or without a real guitar, it's an interesting topic for research.


Possible challenges and obstacles

  1. Latency - while the latencies involved don't seem huge, the human ear is incredibly sensitive to audio timing. Bluetooth latency is around 100-200ms. It should be possible to use timestamp to tolerate latency.
  2. Armband feedback accuracy - we also have to deal with armband feedback accuracy. The EMG data comes in at 200Hz, and the IMU data (everything else) is at 50Hz. Those speeds can't be changed (at all, not just in the app). It should work perfectly for lower and mid range bps, however the question is would it work for higher bps > 120 . I asked some people who are using Myo armband to play music and they claim that it's very precise, yet it's hard to prove that it's gonna work with highest bps, it's definitely a subject for a deep research.

Requirements

Supported mobile platforms:

  • iOS 7 or later 
  • Android 4.3 or later

see full list here


What next ?

Once I'll collect enough votes and feedbacks it shpould be clear if it makes sense to develop such application, then I'll set a budget, buy a Myo armband and kick off development cycle, easy as that. I'll provide a list of feature that will be available in first release. Although, there are some things that I'd like to discuss first.


Feedback

Could you please find a few seconds and answer the survey or leave your feedback


Powered By Lonelypage