Coder Social home page Coder Social logo

agkaraoke's Introduction

Karaoke for Android and Google Glass

This is (yet and likely forever) minimalistic Karaoke pet project for Android and Google Glass devices. Uses Ultrastar Delux song format.

Building

Just clone and build in Android Studio. You most likely will be required to install Glass Development Kit add-on. Project consist of 3 modules:

  • karaoke.core, a shared module where all the logic and custom views are located
  • app - version for phones/tablets
  • glass - version Google Glass

Running

  • you'll need to obtain some songs in Ultrastar Delux format first. A few free ones could be downloaded here.
  • put (unpacked) songs directories to the Music directory on the device. You can omit video files, since they are not supported anyway.
  • launch the application:
    • on Google Glass, say "Show lyrics", or start the application from Home card menu.
    • on usual Android device just start the app.

On phones and tablets, usage of headphones is strongly recommended since the mic pick ups music playing, and messes up the tone detection.

On Google glass, earbud is a good idea since it provides much better audio quality, and much lower battery consumption.

Notes

Application has two algorithms to detect pitch of the sound: autocorrelation, taken from Ultrastar Delux and optimized for integer math, and Goertzel algorithm, as described in Wikipedia. Toggle is only available from source code for now.

Code quality is far from production: Weak error checking, using string hashes as unique ids, and so on.

Future plans

  • Both algorithms have huge performance problems on the Google Glass (which is strange, actually) leading to lags and overheating. So, JNI implementation should be added.
  • Since I am an awful singer, and can't match the pitch of any song to check the pitch detection, some test audio files with real performances are required. Adding a couple unit tests based on these would be nice.
  • The way lyrics and pitch are displayed is different from other Karaoke software:
    • next line is not displayed until it played
    • there is no visual timing cue on long pauses
    • pitch plot width is matched to text width, which is unnecessary
  • There is no scoring.
  • Some songs are not loaded properly due to deviations in formating.
  • A lot of UI work needed, especially on the phones.
  • Since Google Glass seems to render UI in the software mode, there is a chance that using OpenGL for rendering can make things a bit faster. Or just optimize the plot/lyrics rendering by avoiding unnecessary invalidations.

agkaraoke's People

Contributors

inckie avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.