Installing PyKaraoke

Contents

Pykaraoke Install

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

Pykaraoke official website: http://www.kibosh.org/pykaraoke/


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.


Dependencies

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


Install

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

From maemo's garage page you should grab the debs and install them on the tablet. The address is: https://garage.maemo.org/frs/?group_id=631&release_id=1602 You need to get 2 debian packages: timidity and timidity-data Once you've downloaded them and transferred to your tablet, install them.


Configuration

Create the directory /etc/timidity, and create a new file called timidity.conf and add to it: source /etc/timidity/freepats.cfg

Create a new file called freepats.conf (also in /etc/timidity) and add to it: dir /usr/share/midi/freepats

  1. Automatically generated on Sun Feb 19 19:22:39 EST 2006
  2. 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 set. 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 pykaraoke zip archive from the official website: http://www.kibosh.org/pykaraoke/downloads.php (current version is pykaraoke-0.6.zip) and unzip it to whatever directory you'd like in your tablet, 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.


Notice, I have tested this with the N810 and using the N810 you need to use the keyboard to navigate through the karaoke files. Navigation is done using the hardware keyboard left menu button (up/down) and choosing to play a karaoke file is done using the middle button of the left menu.



Regards, Liran Tal <liran dot tal at gmail dot com>