[Maximize for best view]

                         @@@@         @@@@@    @@@@  @@@@@           
                        @@@@@         @@@@     @@@@  @@@@@@      @@@ 
                        @@@@         @@@@@     @@@    @@@@@@   @@@@  
     @@@@  @@@@                   @@@@@@@              @@@@@@ @@@@   
     @@@@@@@@@@@ @@@   @@@@@   @@@@@@@@@@     @@@@      @@@@@@@@@    
    @@@@@@@@@@@@@@@@@  @@@@@  @@@@@@@@@@@    @@@@@       @@@@@@      
   @@@@@@@@@@@@@@@@@@ @@@@@  @@@@@ @@@@@@   @@@@@         @@@@@      
  @@@@@@@@@@@@@@@@@@  @@@@@  @@@@@  @@@@@   @@@@@        @@@@@@@@    
  @@@@@@@@@@@@ @@@@@  @@@@   @@@@@ @@@@@@@  @@@@      @@@@@@@@@@@@   
  @@@@  @@@@   @@@@@  @@@@   @@@@@@ @@@@@@  @@@@    @@@@@@   @@@@@@@ 
                @@@@@                              @@@@@             
                                                  @@         PLUG-IN


* midiX Karaoke Plug-in *
Netscape/MS Internet Explorer Karaoke MIDI Plug-in
- Version 0.94 - Freeware

(c)2000 m&g Software
Arminio.Grgic@USA.Net
---------------------
Homepage: http://www.geocities.com/SiliconValley/Way/9629/arminio.htm
midiX homepage + plug-in demo page: http://agrgic.tripod.com/midix.htm



MidiX Karaoke Plug-in is a plug-in that can play MIDI Karaoke files
and display Karaoke text during play. Plug-in is written for Netscape
Navigator (version 2.0 or later) or any web browser that support
Netscape plug-in format (Microsoft Internet Explorer 3.02 and higher).

MidiX plug-in plays standard MIDI format files (type 0, 1 and 2). It
requires that file has .KAR extension. Other MIDI files (.MID) will be
played via other plug-ins (or using special MIME type - see description
of MIME types later in text).

Because MidiX plug-in is a made from midiX karaoke player, plug-in has
some interresting features taken from midiX player. So, plug-in can:

- display text from any Karaoke file (it support different format, like
midiX player)

- supports encapsulated settings (this version does not support all
encapsulated settings)

- encapsulated settings can be partially or completely overriden with
settings written in <EMBED> tag in HTML file

- <EMBED> tag can contain lot of parameters (colors, character
conversion tables, text to show during instrumental part of song ...)

- plug-in can be configured to play via different MIDI outputs (not
only via default MIDI output like other plug-ins do)

- text event correction index is also supported (to prevent text delays
wnen use software wavetable synthesizers for MIDI output)

- you can see and save complete song lyrics to a file if you want

... and mouch more ...




 ---------------------------------------
 PLUG-IN INSTALLATION AND DEINSTALLATION
 ---------------------------------------

Before installation or deinstallation, close all instances of browser.

 For Netscape/MSIE users:
 ************************

Use INSTALL.EXE to install plug-in if you use Netscape or MS Internet
Explorer browsers. To uninstall plug-in from Netscape or MSIE, use
UNINSTALL.EXE.
Installation will automatically install plug-in and setup applet in
Control Panel.

 For other browser that support Netscape plug-in format:
 *******************************************************

For other browsers that support Netscape plug-ins (or if installation
with INSTALL.EXE fails), you can install it manually:

- copy NPMIDIX.DLL into a folder where other plugins are (folder
is usually named PLUGINS and, if it is not empty, it can contain other
plug-in files named NP*.DLL files).
- run INSTALL.EXE using /CPL command switch to add setup applet into
Control Panel (INSTALL.EXE /CPL)

To uninstall plug-in manually:

- delete NPMIDIX.DLL from PLUGINS folder
- use UNINSTALL.EXE with /CPL switch to remove setup applet from
Control Panel (UNINSTALL.EXE /CPL)





 ------------------------------------
 PLUG-IN SETTINGS (for Plug-in users)
 ------------------------------------

Use right click on a midiX Plug-in Karaoke panel in your browser to
open popup menu with three basic options (also can be accessed using
triangle button placed at the right side of panel with controls):

- Show complete lyrics: this option shows complete song lyrics and
allow you to save it to a file on your disk.

- Setup: here you can setup:
  * MIDI output for playing Karaoke MIDI files and
  * text envent correction index - neccessary options if you use very
  CPU requiring software wavetable synthesizers (like Wingroove, Yamaha
  XG or Roland GS software synthesizers ...) for MIDI output. In that
  cases, It is usual to have certain delay between displayed text and
  actually played note that corresponds to highlited text. This happens
  because software synthesizers need more time to process and convert
  sound from FM to WAV - so, text is "leaking" during that time.
  Here you can define delay index for displaying text so text from
  Karaoke MIDI file will be always displayed in a right moment even on
  a slow computers. Experiment with values (it can be positive or
  negative, depending on what you want).

- About: contains litle copyright text etc. ...




 ------------------------------
 HOW TO ADD KARAOKE TO WEB PAGE
 ------------------------------

The best method is using <EMBED> tag that can interpret almost every web
browser that exists (Netscape and MSIE definitely support it).

The basic way to add KAR file to your page is:

	<EMBED  src="http//my.web.page/filename.kar"
		type="audio/x-kar"
		width=240
		height=160>
	</EMBED>

Karaoke panel will be shown and song will automatically start playing.
But, you can do more that that. Here is the list of all special
parameters that can be added to <EMBED> tag to control midiX plug-in
(parameters and values are non-case sensitive, values must be written
between " ", between parameter and value must be equal sign '='):


Plugin visibility and playing:
******************************

- AUTOSTART
  Description:
	Automatically start playing Karaoke file when plug-in is loaded
	and Karaoke file is received
  Values:
        "true" or "yes" - automatically start playing Karaoke file
	"false" or "no" - don't play until user press 'play' button
  Default (if parameter not used):
	"true"


- CONTROLS
  Description:
	Make player controls hidden or visible in transparent or
	user-defined colors
  Values:
	"hide" - hide controls
	"transparent" - controls will be visible and in background
	color that will be taken from Karaoke text background color
	"RRGGBB" - visible with defined background color
	  * color must be entered as RGB values in hexadecimal
	  numbers (simmilar like COLOR parameter in <FONT> tag)
  Default:
	"B0B0B0" - gray background


- LOOP
  Description:
	How many times to play file
  Values:
	"infinite" - non-stop play
	"n" - n can be value between -1 and 10000 where -1 is the same
	as "infinite"
  Default:
	"-1" - infinite


- STOP (can be used from file if encapsulated)
  Description:
	Stop playing Karaoke file after defined time duration
	- extremely usefull when you have file that has error in header
	that can produce incorrect length: for example, instad original
	length of 2 minutes, file will be played 10 min. and you have 8
	min. of silence ! Here you can limit duration to 02:00 and
	plug-in will stop playing after 2 minutes.
  Values:
	"MM:SS" - plugin will play file for defined minutes and seconds
	(2 numbers for min. and 2 for sec. with ':' between).
	You can enter values between 00:10 and 60:60
  Default:
	not defined - song will pe played from start to end



Fonts and colors:
*****************
All settings defined here will be used from file if KAR contains
encapsulated settings by midiX standard and OVERRIDE option is not used.

- INTROFONT
  Description:
	Name of font that will be used to display introduction text
	(song title and other info taken from Karaoke file or user
	defined text if internal does not exist - see INTROTEXT)
  Values:
	"fontname" - enter font name
  Default:
	"Tahoma"


- INTROSIZE
  Description:
	Size of intro font (will be used if you turn off AUTOSIZE)
  Values:
	"n" - n is font size
  Default:
	"16"


- INTROCOLOR
  Description:
	Text color of intro font
  Values:
	"RRGGBB" - hexadecimal RGB values
  Default:
	"0000FF" - blue


- INTROSTYLE
  Description:
	Style of intro font
  Values:
	"ibsu" - enter 1 or 0 at appropriate position to turn on or off
	particular style:
		i-italic
		b-bold
		s-strikeout
		u-underline
  Default:
	"0000"


- INTROBACK
  Description:
	Background color for intro text
  Values:
	"RRGGBB" - hexadecimal RGB values
  Default:
	"00FFFF" - cyan


- TEXTFONT
  Description:
	Name of font that will be used to display song lyrics in
	Karaoke panel
  Values:
	"fontname" - enter font name
  Default:
	"Arial"


- TEXTSIZE
  Description:
	Size of lyrics font (will be used if you turn off AUTOSIZE)
  Values:
	"n" - n is font size
  Default:
	"18"


- TEXTCOLOR
  Description:
	Text color of lyrics font
  Values:
	"RRGGBB" - hexadecimal RGB values
  Default:
	"00FFFF" - cyan


- TEXTSTYLE
  Description:
	Style of lyrics font
  Values:
	"ibsu" - enter 1 or 0 at appropriate position to turn on or off
	particular style:
		i-italic
		b-bold
		s-strikeout
		u-underline
  Default:
	"0100"


- TEXTBACK
  Description:
	Background color for lyrics text
  Values:
	"RRGGBB" - hexadecimal RGB values
  Default:
	"0000A6" - deep blue


- HIGHFONT
  Description:
	Name of font that will be used to highlight song lyrics in
	Karaoke panel
  Values:
	"fontname" - enter font name
  Default:
	"Arial"


- HIGHSIZE
  Description:
	Size of highlighted font (will be used if you turn off AUTOSIZE)
  Values:
	"n" - n is font size
  Default:
	"18"


- HIGHCOLOR
  Description:
	Text color of highlighted lyrics font
  Values:
	"RRGGBB" - hexadecimal RGB values
  Default:
	"FF0000" - red


- HIGHSTYLE
  Description:
	Style of highlighted lyrics font
  Values:
	"ibsu" - enter 1 or 0 at appropriate position to turn on or off
	particular style:
		i-italic
		b-bold
		s-strikeout
		u-underline
  Default:
	"0100"



Other parameters related to Karaoke panel text:
***********************************************

- LIMITTEXT (can be used from file if encapsulated)
  Description:
	Limit text to 3-4 rows to fit in Karaoke panel. Use it if you
	have Karaoke file that has non-formatted text that can't fit to
	Karaoke panel. This option is automatically on for non-standard
	Karaoke files that has no formatting characters or CRLF
	delimiters in text. For other files, it is off.
  Values:
        "true" or "yes" - limit text
  Default:
	not used unless file is non-standard KAR or have this setting
	encapsulated


- CHRCONVERT
  Description:
	Define conversion table if necessary - sometimes Karaoke text
	contains various characters entered in some specific font (like
	Croatian letters etc.) that can't be displayed on some machines
	(instead original characters you get empty 'squares' etc.).
	Here you can define that characters and their substitute that
	will be displayed instead original char.
  Values:
	"ab cd ef gh ..." - First charactr we convert to second
	character. You can enter many combination separated with one
	blank. Values defined here will convert a to b, c->d, e->f ...
  Default:
	not used


- MUSICTEXT (can be used from file if encapsulated)
  Description:
	Enter text that will be shown during longer instrumenal part
	of song (when there is no lyrics to sing for about 4-5 seconds)
  Values:
	"text" - enter text to be shown
  Default:
	"- Music -"


- INTROTEXT
  Description:
	Enter text that will be shown as intro text if karaoke file does
	not contain any internal information that can be used
  Values:
	"song name etc. ..." - enter text to be shown
  Default:
	"midiX Karaoke Plug-in"


- AUTOSIZE
  Description:
	Proportionally resize fonts when karaoke panel is resized.
	When this option is on, INTROSIZE, TEXTSIZE and HIGHSIZE will
	be ignored (if exists, font size encapsulated values will be
	ignored too).
  Values:
	"yes" or "true" - turn autosizing on
	"no" or "false" - turn autosizing off
  Default:
	"true"



Using and overriding encapsulated settings:
*******************************************

If Karaoke MIDI file contains encapsulated settings that can setup
various Karaoke panel properties automatically, plug-in will use it and
settings defined with parameters in <EMBED> tag will be used only for
files without encapsulated settings.
All parameters that can be used from file are marked with 
"can be used from file if encapsulated". If you want to override
encapsulate settings and force your own from <EMBED> tag, use this
parameter:

- OVERRIDE
  Description:
	Override encapsulated settings (if they exists in file) with
	defined in <EMBED> tag. If AUTOSIZE is set to "true", font size
	settings are ignored (both - defined using INTROSIZE, TEXTSIZE
	or HIGHSIZE parameters or used from encapsulated settings).
  Values:
	"partial" - if enc. settings exists in a KAR file, plug-in will
	overide only INTROSIZE, TEXTSIZE, HIGHSIZE and LIMITTEX with
	values defined in <EMBED> tag (works only if you set
	AUTOSIZE="false")
	"all" or "full" - enc. setting will be overriden with settings
	defined in <EMBED> tag
  Default:
	not used


NOTE: Use OVERRIDE="partial" when you want to have fixed font size and
to have other settings taken from a KAR file or from <EMBED> tag if KAR
does not have enc. settings.



MIME types and Karaoke file extensions:
***************************************

MidiX plug-in use this MIME types (define one of them in TYPE
parameter - I preffered audio/x-kar):

	audio/x-kar
	audio/kar
	audio/x-midiX-kar

Also, by default, it plays files with .KAR extension but .MID extension
can be used with one of KAR MIME types (use TYPE="audio/x-midiX-kar" or
TYPE="audio/x-kar").



Standard <EMBED> parameters:
****************************

MidiX Plug-in support other standard parameters that can be used in
<EMBED> tag like:

- TYPE="MIME type"
- WIDTH=size or percent
- HEIGHT=size or percent
- ALIGN="absbottom" | "absmiddle" | "baseline" | "bottom" | "left" |
	"middle" | "right" | "texttop" | "top"
- PLUGINSPAGE="http://agrgic.tripod.com/midix.htm" 

.. and try other ...




 -------------------------------------------------
 IMPORTARNT STUFF ABOUT ADDING KARAOKE TO WEB PAGE
 -------------------------------------------------

- Do not add <EMBED> tags with AUTOSTART="true" more that once in a
web page because plug-in can play only one file at a time !

- Always use HEIGHT and WIDTH parameters to define Karaoke panel size. I
reccomend HEIGHT=160 and WIDTH=240. If you use percents (for example:
HEIGHT=50% WIDTH=50%), panel will occupy defined percent of browser
window and it will be resized as you resize browser window.

- I noticed problem with playing fast karaoke MIDIs with lot of text
that need to be "sing fast" on a slower PC when play through software
wavetable synthesizers. If KAR contains large amount of text that need
to be highlited very fast, some delay in highlighting is possible
because very large CPU useage from wavetable synthesizer.
This problem occurs with useage of Wingroove and, in some cases, with
Yamaha's XG (if you setup it to use large CPU useage and set sound to
CD quality but your PC is not fast enough to handle that smooth)

- This release support many midiX encapsulated settings but not all.
See, I must leave something for future versions ;-) ... Also, Plug-in
is tested on Netscape 4.5, MSIE 3.02 and 5.0 on WINNT 4.0, WIN95 OSR2
and on WIN98 and it works fine. If you notice any problems in its
useage, please inform me to solve it.




 ----------
 DISCLAIMER
 ----------

Program is freeware but copyrighted.

YOU MAY NOT SELL OR CHANGE THIS PROGRAM OR ANY OTHER PART OF THIS
PROGRAM OR DOCUMENTATION !

DISTRIBUTION OF THIS PROGRAM MUST BE FREE AND IN ORIGINAL FORM WITH
ALL FILES INCLUDED AND INTACT

The author makes no warranties about it and accepts no responsibility
for any data loss or other system trouble that may occur from the
useage of midiX Plug-in.

Every effort has been made to ensure that no problems occur with its
usage.

Please report any ideas, remarks, bugs etc.




 ------
 AUTHOR
 ------

Arminio Grgic
Istarska 6
34000 Pozega
Croatia

Arminio.Grgic@USA.Net
http://www.geocities.com/SiliconValley/Way/9629/arminio.htm

2000 m&g Software




 -------
 CREDITS
 -------

Plug-in is written using great development tool made by Andrei Kashin

MIDI player engine by Colin Wilson
	<http://www.wilsonc.demon.co.uk/delphi.htm>
