## How to install and use OkeOke.Net

### System Requirement

#### Software Requirement

##### Operating System

Windows XP, Vista, Server 2003, 2008，Windows 7.
Microsoft .Net Platform .Net 3.5 sp1
If you are using Windows 7, it's not necessary to install this package. The operating system should have included it already.
Download Link: Click here. The size of the file needs to be downloaded varies based on different systems, usually it's between several MB to about 100MB.
Karaoke Software OkeOke.Net
Download Link: Click here

#### Hardware

The program requires very basic hardware, any machine with P4 and above CPU should be good enough for using this program. A video card support directx 9.0 and above is recommended. The computer does need to have audio output, also a mixer is required for karaoke purpose. To use the recording function, you need to connect the mixer's output to computer's audio input port.

#### Start to use

When the program is started the first time, default settings and an empty database will be created. The default language of user interface is English. If you set the system locale to be Simplified Chinese or Traditional Chinese, the program may also display in those languages. Please contact me if you are interested to port this program to other languages. It'll just take an hour to translate a resource files.

##### Add Songs

Following is a brief procedure to add new KTVs to the database:
Click the upper-left button, in the dropdown menu, select add KTV
Select the folder contains KTV or select individual KTV files. Select import plugins (the plugins are used to import ktvs that are provided by some other vendor, at this point, the program only provides plugins for 4 Chinese karaoke song database). Click Start.
You can pause or wait for the process to finish. After it's finished, you can review/edit newly added KTVs
The procedure to add media files, e.g., home video, movies etc, is very similar. The main menu has an item to add new media files.

##### Search for songs

Enter keywords or acronym of singer's name or song name, in the search box, the list below it will show all the search results. Double click any item will add it to the play list. You can also press Ctrl or Shift key and click to select multiple songs, then click the button next to the search box with a green arrow to add all selected to the play list.
In the search box, if you enter '*', the program will return all results in the database. By default, it will display the first 30 songs. If you click the show all button next to the search box, it will try to show all search results. However, the program may freeze for a while until all items loaded. Thus, it's not recommended to show items more than 100 or so.
In the search result, you can select any item, right click on it, and choose "Details" menu item. A dialog will pop up to show you all the details of the song, and you can edit those information in that dialog.

##### Remote Control

The program supports various remote controls. You can configure the key settings in Configure Application Setting->Remote & Shortcut->Configure Shortcut.

The program also provides a powerful way to remote control through webpage, allow you to do things like searching/selecting ktv or media files, and controling the play list. You don't need to do any configuration, but following hardware requirements are needed:

The computer/cellphone running the webpage must be able to communicate with the machine running okeoke.net.exe directly. The simpliest configuration is that all machines are connected to the same LAN, e.g., home wifi network. If you are using a smart phone to load the webpage, the web browser must be able to talk to the other machine directly. That's why you can NOT use Opera to do remote control through webpage.

Following are some basic steps to do remote control through webpage::

1. In your cellphone web browser, enter http://machine:8080, where machine is the actual name of the machine running okeoke.net.exe. 8080 is the port number, some time the port could be used by other program. In that case, okeoke.net.exe will post a warning, and you can pick a different port in Application Setting->Remove & Shortcut
2. After web page is loaded, you can click each link to add/remove song to playlist, adjust volume, rearrange order in the play list, etc.

The size of the webpage and its font size can also be adjusted in Application Setting->Remove & Shortcut

If the webpage fails to load, first thing to check is the network connection, you can run command line "ping machinename" or "ping IPAddress" from both machines. For some device, e.g., iPad, machine name might not work for loading webpage, you can try IP address.

If the connection is not the problem, it's possible that the port is blocked by antivirus software or Windows Firewall in the machine running OkeOke.net. Following steps can be used to modify firewall setting in a Windows 7 machine:

1. Run Windows Firewall with Advanced Security
2. On the left column, select Inbound Rules
3. On the right column, select New Rules...
4. In the popup window, select Port, click Next
5. Select TCP, specify the port, e.g., 8080, click Next
6. Select the first option, Allow the connection, click Next
7. Check all options, click Next
8. Enter a name, e.g., okeoke, then save the rule.

##### Air Remote

Air Remote is a unique remote function offered by okeoke.net. Compare to remote control through webpage, it offers you more control and better user interface. Using this function, you can remote control okeoke.net application running in one computer by using okeoke.net program in another computer. To setup Air Remote, you need at least 2 computers that can both run okeoke.net program. That is, they both need to be able to install Microsoft .Net Framework 3.5sp1.

Assume you already have one computer A setup running okeoke.net to search and play KTV. First, you need to go to okeoke.net's application setting, select "remote & shortcut", check the checkbox of "Enable Air Remote Server". Take a look at the server name and port. The default server name is the machine name. If your computer has a DNS, you might need to put the FQDN (fully qualified domain name) in that server name box. Most home network does not have DNS, so machine name should be enough. If you have a firewall configured, make sure the selected port is open.

An easy test will be running telnet command in another computer. For example, in a dos window, run "telnet machine1 33579", where machine1 is the server name, and 33579 is the port number. If a blanck dos window shows up, this means the port is accepting inbound traffic. Otherwise, you should check your firewall setting. Take a look at the steps to enable a port in Windows firewall in configuring remote through webpage.
Next you can set up the second computer, install okeoke.net program as you did in the first computer. Then go to application setting, select "remote & shortcut", check the checkbox of "Run as Air Remote client". Set the server name and port to be the name and port you configured in Air Remote server. For okeoke.net.exe running as Air Remote Client, during its startup it will first download the database from Air Remote server, then retrieve some settings, after those initial steps, the program will be ready to remote control Air Remote server.

##### What you can do with Air Remote

From Air Remote client, you can do most things as if you are working with the okeoke.net program running as Air Remote server. Those includes:

- Search and order KTVs
- Status control, play, pause, seek, enable/disable recorder, Volume control
- Play list control, add/remove songs, change order in the current play list, load/save play list
- Audio track/channel selection, switch between original and accompaniment audio

##### What you can NOT do with Air Remote

When you are using okeoke.net.exe running as Air Remote client, you can not do follow with current version:

- Import more KTV
- Manage database
- Tag KTV
- Upload recorded songs

Above actions have to be done through okeoke.net.exe running as Air Remote server.

##### Media Playback

The player, OkeOke.ZMPlayer.exe, can also work as a standalone media player. After start OkeOke.ZMPlayer.exe, click the button with folder icon to select the file you want to play.

##### Stream Play

Stream Play offers the capability of play a media file from any computer to the screen of another computer. The setup is easy. Basically, you only need two computers that can communicate with each other, and run okeoke.net, that is, with Windows XP and above for OS, and Microsoft .Net 3.5 SP1 installed.
How to setup Stream Play

First you need to install okeoke.net in the computer where you want to play the file, e.g., the one connecting to your TV or projector. Make sure the computer has Microsoft .Net 3.5 SP1 installed. Start okeoke.StreamPlayServer.exe, and configure the server name (machine name or IP address) and port (make sure the firewall is set up to allow inbound TCP traffic through this port, program will open port automatically, you might see UAC warning dialog). You can also configure the server to be started at machine startup. After you close the configuration window, an icon will be shown in the system tray, from where you can bring up the configuraton window again. To tune the settings of player, e.g., enable deinterlace etc, you still need to to it in the application setting in okeoke.net.exe.
After the Stream Play server is configured, you can then configure the client machine where your media files are stored. Make sure the computer has Microsoft .Net 3.5 SP1 installed, and then start okeoke.net.exe. Go to application setting->Stream Play, enable the player output to be Stream Play (this will stop the media file being played in this computer, program will open port automatically, you might see UAC warning dialog). Fill in the Stream Play Server's name and port (those you configured in the first computer). Then configure the host name and port for your local machine, the host name could be machine name or IP address. Again, make sure the firewall is set up to allow inbound TCP traffic through this port.
With all above properly configured, you can click the test button to test the connection. If the test returns successfully, you can now search/play media files in the second computer, and the video/audio will be in the first computer's screen! One thing you may notice is that, Stream Play does not support Smooth Audio track/channel switch. That is, if you switch between original/accompaniment audio of a KTV file, the video may pause and black out for a second or two.

##### Application Settings

Click the button on upper-left corner, select the menu item "Application Settings". Also, you can click the first shortcut button next to the main menu button to bring up the setting dialog.
Most often used settings include:
Play Mode: Karaoke (by default the player will use accompany sound track as the output audio), Ordered Replay (by default the player will use original sound track as the output audio), Shuffle (random replay)
Folder used to save recording: a folder used to store the recorded songs must be configured before you can use the auto-record function.
Virtual Keyboard: You can enable this if you try to use remote control.
Maximize Player in Display: if you are using multiple displays, e.g., second display is an LCD TV or a projector, you can use this option so the program will automatically maximize the player in selected display.

##### Search

In most cases, you can search by the keywords or acronym of the song name and/or singer name. Search for "*" will return all results.
If you need more search option, you can click the search option bar above the search box. You can search by song type, singer type or tag using those options. The small button on the right side of the search option bar can be used to clear all search options.

In the search box, you can enter multiple keywords separated by empty space to match the name/acronym or a song/singer. Keyword is case-insensitive. The search function is provided in three modes, Match Whole String, Match From Start, and Match Any Substring. The default mode is Match From Start. Following are the details about each mode.
Match Whole String: The target string must match the whole keyword to qualify a match. For example, "apple" matches keyword "apple", but not "app".
Match From Start: The start part of the target string must match the keyword to qualify a match. For example, "apple" matches keyword "app", but not "pple".
Match Any Substring: The target string should contains the keyword starting any position. For example, "apple" matches both keywords "app", and "pple".
You can also use special characters, including ?, * and ", to define a keyword. ? matches any single character, * matches any string, and " defines the start or end of a string. For example, for search running in mode of "Match Whole String", "Apple" matches keywords: ""app*", "?????", "?pp*" and "*p*""

##### Tag

Tag is used to mark the song, singer and media files you are interested. To apply a tag, you can right click on a song, singer or media file, and select Tags menu item, then select the tag you want to apply, or create a new tag for selected items. Please note that each tag belongs to a user, a user can not see or apply tags created by other users.

##### Play List

The program uses its own format to save current items in the queue to a play list file, which is stored in data\playlist folder. When a program exits, it will create a temporary play list if there is any item in the queue. When the program is started the next time, the last item was playing will be automatically started from the last stopped position.

##### Recording Function

Recording function can be turned on and off at any time, given that the Recording Folder has been configured in the application setting. You can find a button with red dot on top of the play list. Click this button will turn on/off the recording function. If the function is turned on, the program will automatically start recording when the next song starts playing. After the song is finished playing, a recorded mp3 file will be saved to the preconfigured Recording Folder, and a new item of My Performance will be saved to the database.

If you are using a computer microphone to record, after a song is recorded, you can use the mixer function to mix the recording to the accompaniment audio. Go to My Performance tab, select the recording, right click, select Action, and then Mix with accompaniment audio. In the popup dialog, you can apply various settings/effects, then click save button the save the mixed file. Note that your original recording will stay untouched, and renamed to [oroginal name]_0.mp3.

##### Database Management

Click on the button on the upper-left corner, and select menu item Manage Database, this will bring up the dialog to manage database stored in data\MyOkeDB.sdf. There is also a shortcut button next to the main menu button to bring up this dialog. The function is rather simplified at this point, you can only search/edit KTV, singer and media files. This is a SQLce database, and not encrypted.

##### Online Account

An online account is used to upload recorded song to the website. You will be able to share your recording using link like following: http://songs.okeoke.net/107/bbmbewat.mp3

How to create online account

Click Add User button o the top toolbar, and a dialog will pop up. Enter required information, click Next and wait for a confirmation email. The mail server might be a little slow. Copy the code in the body of the confirmation email, and paste it to the Add User dialog. Click Next again, and an online account is created in the website. When creating an online account, you can choose to keep your account logged in the computer. Otherwise, you will need to enter password everytime you want to upload a song or delete a song already uploaded.

How to upload a song

Go to the tab of My Performance, find the song you want to upload, right click, select Action, and Upload Selected Songs. A dialog will pop up and show you the uploading status. After a song is uploaded, and you can right click on the song, select Action menu, and you will see more options, including copy the Url of the song and stop the song from being shared in the website. There is a plan to show all your uploaded song in a webpage.

Security

As the database is not encrypted, only your user name and email address will be stored on the database. Your encrypted password and machine code is only stored in the website.

#### How to enable handwriting recognition function

The handwriting recognition function requires support from operating system. For different Windows operating system, the steps are different.
For Windows XP, Windows Server 2003, following two packages are required, note that you need to instakk the first one before trying installing the second one:
Tablet PC Platform SDK
http://www.microsoft.com/downloads/en/details.aspx?familyid=b46d4b83-a821-40bc-aa85-c9ee3d6e9699&displaylang=en
Microsoft Windows XP Tablet PC Edition 2005 Recognizer Pack
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=080184dd-5e92-4464-b907-10762e9f918b
For Windows Vista, Windows 7, and Windows Server 2008, the process could be easier, but still requires some manual steps
Windows Server 2008 is the easiest one to configure, you just need to install Ink and Handwriting services. To do that, open the server manager by clicking the server manager icon from the Quick Launch tray. From the Features menu, click Add Features. Make sure that you select the Ink and Handwriting Services check box.
For Windows Vista and Windows 7, if you don't need to support language other than the operating system's language, you don't need to configure anything. If you want to support other language, e.g., recognize Korea in English OS, you need to following these steps.
Different version of Windows 7 requires different steps. For Ultimate and Enterprise, you need to enable it through Windows Updates.
Open Windows Update, click check updates, you will see a link like "35 optional updates are available", click that link, select the language packs you want to support, and finish installing updates.
If you are not running Windows 7 Ultimate or Enterprise, Windows Update may not allow you to download language pack. You can try to follow the steps described in following blog:
http://c-sharp-snippets.blogspot.com/2009/09/getting-chinese-handwriting-recognition.html
There is also a tool called Vistalizator, goole it to find more reference.