Installing PyKaraoke

Pykaraoke is a Python application to play karaoke files (.kar) which encompass midi background music, lyrics and the actual lyrics progress while the song is playing on the screen.

I have tested it personally on the N810 though I assume it would run just as well on the 770/N800, please update this article if you have verified it works with either/both of them, thanks in advance.

Contents

Dependencies

  • python2.5 python2.5-pygame
  • timidity
  • freepats
  • pykaraoke (obviously)

Installation

Python

Either from the GUI's Application Manager or from a root shell you should install the two packages: python2.5 and python2.5-pygame (from the root shell: apt-get install python2.5 python2.5-pygame)

Timidity

You should grab the timidy and timidity-data debs from the Garage page and install them on your tablet.

Configuration

Create the directory /etc/timidity, create a new file called timidity.conf and add:

source /etc/timidity/freepats.cfg

Create a new file called freepats.conf (also in /etc/timidity) and add:

dir /usr/share/midi/freepats
# Automatically generated on Sun Feb 19 19:22:39 EST 2006
# by http://freepats.opensrc.org/mkcfg.sh.txt

drumset 0
25     Drum_000/025_Snare_Roll.pat
26     Drum_000/026_Snap.pat
27     Drum_000/027_High_Q.pat
31     Drum_000/031_Sticks.pat
32     Drum_000/032_Square_Click.pat
33     Drum_000/033_Metronome_Click.pat
34     Drum_000/034_Metronome_Bell.pat
35     Drum_000/035_Kick_1.pat amp=100
36     Drum_000/036_Kick_2.pat amp=100
37     Drum_000/037_Stick_Rim.pat
38     Drum_000/038_Snare_1.pat
39     Drum_000/039_Clap_Hand.pat amp=100
40     Drum_000/040_Snare_2.pat
41     Drum_000/041_Tom_Low_2.pat amp=100
42     Drum_000/042_Hi-Hat_Closed.pat
43     Drum_000/043_Tom_Low_1.pat amp=100
44     Drum_000/044_Hi-Hat_Pedal.pat
45     Drum_000/045_Tom_Mid_2.pat amp=100
46     Drum_000/046_Hi-Hat_Open.pat
47     Drum_000/047_Tom_Mid_1.pat amp=100
48     Drum_000/048_Tom_High_2.pat amp=100
49     Drum_000/049_Cymbal_Crash_1.pat
50     Drum_000/050_Tom_High_1.pat amp=100
51     Drum_000/051_Cymbal_Ride_1.pat
52     Drum_000/052_Cymbal_Chinese.pat
53     Drum_000/053_Cymbal_Ride_Bell.pat amp=100
54     Drum_000/054_Tombourine.pat
55     Drum_000/055_Cymbal_Splash.pat
56     Drum_000/056_Cow_Bell.pat
57     Drum_000/057_Cymbal_Crash_2.pat
58     Drum_000/058_Vibra-Slap.pat
59     Drum_000/059_Cymbal_Ride_2.pat
60     Drum_000/060_Bongo_High.pat
61     Drum_000/061_Bongo_Low.pat
62     Drum_000/062_Conga_High_1_Mute.pat
63     Drum_000/063_Conga_High_2_Open.pat
64     Drum_000/064_Conga_Low.pat
65     Drum_000/065_Timbale_High.pat
66     Drum_000/066_Timbale_Low.pat
67     Drum_000/067_Agogo_High.pat
68     Drum_000/068_Agogo_Low.pat
69     Drum_000/069_Cabasa.pat amp=100
70     Drum_000/070_Maracas.pat
71     Drum_000/071_Whistle_1_High_Short.pat
72     Drum_000/072_Whistle_2_Low_Long.pat
73     Drum_000/073_Guiro_1_Short.pat
74     Drum_000/074_Guiro_2_Long.pat
75     Drum_000/075_Claves.pat amp=100
76     Drum_000/076_Wood_Block_1_High.pat
77     Drum_000/077_Wood_Block_2_Low.pat
78     Drum_000/078_Cuica_1_Mute.pat amp=100
79     Drum_000/079_Cuica_2_Open.pat amp=100
80     Drum_000/080_Triangle_1_Mute.pat
81     Drum_000/081_Triangle_2_Open.pat
82     Drum_000/082_Shaker.pat
84     Drum_000/084_Belltree.pat
bank 0
0      Tone_000/000_Acoustic_Grand_Piano.pat amp=120 pan=center
1      Tone_000/001_Acoustic_Brite_Piano.pat
2      Tone_000/002_Electric_Grand_Piano.pat
4      Tone_000/004_Electric_Piano_1_Rhodes.pat
5      Tone_000/005_Electric_Piano_2_Chorused_Yamaha_DX.pat
6      Tone_000/006_Harpsichord.pat
7      Tone_000/007_Clavinet.pat
8      Tone_000/008_Celesta.pat
9      Tone_000/009_Glockenspiel.pat
13     Tone_000/013_Xylophone.pat
14     Tone_000/014_Tubular_Bells.pat
15     Tone_000/015_Dulcimer.pat
16     Tone_000/016_Hammond_Organ.pat
19     Tone_000/019_Church_Organ.pat
21     Tone_000/021_Accordion.pat
23     Tone_000/023_Tango_Accordion.pat
24     Tone_000/024_Nylon_Guitar.pat
25     Tone_000/025_Steel_Guitar.pat
26     Tone_000/026_Jazz_Guitar.pat
27     Tone_000/027_Clean_Electric_Guitar.pat
28     Tone_000/028_Muted_Electric_Guitar.pat
29     Tone_000/029_Overdriven_Guitar.pat
30     Tone_000/030_Distortion_Guitar.pat
32     Tone_000/032_Acoustic_Bass.pat
33     Tone_000/033_Finger_Bass.pat
34     Tone_000/034_Pick_Bass.pat
35     Tone_000/035_Fretless_Bass.pat
36     Tone_000/036_Slap_Bass_1.pat
37     Tone_000/037_Slap_Bass_2.pat
38     Tone_000/038_Synth_Bass_1.pat
40     Tone_000/040_Violin.pat
42     Tone_000/042_Cello.pat
44     Tone_000/044_Tremolo_Strings.pat
45     Tone_000/045_Pizzicato_Strings.pat
46     Tone_000/046_Harp.pat
47     Tone_000/047_Timpani.pat
48     Tone_000/048_String_Ensemble_1_Marcato.pat
53     Tone_000/053_Voice_Oohs.pat
56     Tone_000/056_Trumpet.pat
57     Tone_000/057_Trombone.pat
58     Tone_000/058_Tuba.pat
59     Tone_000/059_Muted_Trumpet.pat
60     Tone_000/060_French_Horn.pat
61     Tone_000/061_Brass_Section.pat
64     Tone_000/064_Soprano_Sax.pat
65     Tone_000/065_Alto_Sax.pat
66     Tone_000/066_Tenor_Sax.pat
67     Tone_000/067_Baritone_Sax.pat
68     Tone_000/068_Oboe.pat
69     Tone_000/069_English_Horn.pat
70     Tone_000/070_Bassoon.pat
71     Tone_000/071_Clarinet.pat
72     Tone_000/072_Piccolo.pat
73     Tone_000/073_Flute.pat
74     Tone_000/074_Recorder.pat
75     Tone_000/075_Pan_Flute.pat
76     Tone_000/076_Bottle_Blow.pat
79     Tone_000/079_Ocarina.pat
80     Tone_000/080_Square_Wave.pat
84     Tone_000/084_Charang.pat
88     Tone_000/088_New_Age.pat
94     Tone_000/094_Halo_Pad.pat
95     Tone_000/095_Sweep_Pad.pat
98     Tone_000/098_Crystal.pat
101    Tone_000/101_Goblins--Unicorn.pat
102    Tone_000/102_Echo_Voice.pat
104    Tone_000/104_Sitar.pat
114    Tone_000/114_Steel_Drums.pat
115    Tone_000/115_Wood_Block.pat
120    Tone_000/120_Guitar_Fret_Noise.pat
122    Tone_000/122_Seashore.pat
125    Tone_000/125_Helicopter.pat

What's that freepats thing you ask? Well it's a bunch of MIDI patch sets. It is available as a debian package to get on an i386 under the name 'freepats' although it hasn't been packaged to the tablets so 2 things you can do (one or the other):

  1. Get the .pat files from the original website: http://freepats.opensrc.org/freepats/ if you do that, you need to create a directory called /usr/share/midi/freepats on the tablet and download from that website address the 2 directories Drum_000 and Tone_000 into /usr/share/midi
  2. Get the freepats debian package and unpack it to get the directories Drum_000 and Tone_000 and make sure both of them are in /usr/share/midi/freepats

PyKaraoke

Get the PyVaraoke zip archive (current version is pykaraoke-0.6.zip) and unzip it to whatever directory you'd like in your tablet, then inside the pykaraoke directory create the link:

ln -s /etc/timidity/timidity.cfg timidity.cfg

Usage

We will be using the pykaraoke_mini.py program. It is a .kar player which stores your kar files entries in a database of it's own so the first time we start it we need to tell it to scan the directory where you keep your .kar files so:

./pykaraoke_mini.py --scan --add-scan-dir=/whereever/you/keep/your/kar/files

It will then start and scan that directory for available .kar files and display them in a list. In the next time you can start the pykaraoke_mini.py program by itself without appending any arguments.