GithubHelp home page GithubHelp logo

cli-aoke's Introduction

cli-aoke

Command Line Karaoke

How it Works

The first time you run cli-aoke songs since you don't have the song files, they will be scraped from the web and placed in a .cli-aoke/ directory in your home directory. Running cli-aoke sing <song_file_name> finds the song file, searches azlyrics.com for the lyrics based off the filename, scrapes the site for the lyrics, then starts a python thread with the .mid file playing through fluidsynth & the lyrics being displayed line by line in your terminal.

Caveats

  • You must install fluidsynth according to the instructions below.
  • Sometimes the search for lyrics selects the wrong one, whomp whomp.
  • The lines being printed are not synced with the song. (maybe there is a way to parse the lyric metadata from a .mid file?)

Requirements

This assumes you have setup fluidsynth in the following way:

$ brew install fluidsynth
$ wget http://www.schristiancollins.com/soundfonts/GeneralUser_GS_1.44-FluidSynth.zip
$ unzip GeneralUser_GS_1.44-FluidSynth.zip
$ mkdir -p /usr/local/share/fluidsynth
$ mv GeneralUser\ GS\ 1.44\ FluidSynth/GeneralUser\ GS\ FluidSynth\ v1.44.sf2 /usr/local/share/fluidsynth/generaluser.v.1.44.sf2

Installation

$ pip install cli-aoke

Usage

View song choices

NOTE: You must run first cli-aoke songs once before running sing because it scrapes a site for the .mid files to initialize your songs directory

$ cli-aoke songs

Sing a song

$ cli-aoke sing <song_file_name>

Example

$ cli-aoke songs
$ cli-aoke sing Jay-Z_-_Hard_Knock_Life.mid
$ cli-aoke sing Blackstreet_-_No_Diggity.mid
$ cli-aoke sing 2Pac_-_California.mid

Analytics

cli-aoke's People

Watchers

 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.