diff options
Diffstat (limited to 'doc/kmid')
-rw-r--r-- | doc/kmid/Makefile.am | 4 | ||||
-rw-r--r-- | doc/kmid/index.docbook | 1338 |
2 files changed, 1342 insertions, 0 deletions
diff --git a/doc/kmid/Makefile.am b/doc/kmid/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/kmid/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kmid/index.docbook b/doc/kmid/index.docbook new file mode 100644 index 00000000..6670dd54 --- /dev/null +++ b/doc/kmid/index.docbook @@ -0,0 +1,1338 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&kmid;"> + <!ENTITY package "kdemultimedia"> + <!ENTITY % English "INCLUDE" > <!-- change language only here --> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title>The &kmid; Handbook</title> +<authorgroup> +<author> +<firstname>Antonio</firstname> +<surname>Larrosa Jiménez</surname> +<affiliation> +<address><email>larrosa@kde.org</email></address> +</affiliation> +</author> +<!-- TRANS:ROLES_OF_TRANSLATORS --> +</authorgroup> + +<copyright> +<year>1999</year><year>2001</year> +<holder>Antonio Larrosa Jiménez</holder> +</copyright> + +<date>2002-02-05</date> +<releaseinfo>2.00.00</releaseinfo> + +<abstract> +<para> +&kmid; is a midi/karaoke multimedia player +</para> +</abstract> + +<keywordset> +<keyword>KMid</keyword> +<keyword>midi</keyword> +<keyword>karaoke</keyword> +<keyword>multimedia</keyword> +<keyword>mid</keyword> +<keyword>kar</keyword> +<keyword>player</keyword> +<keyword>music</keyword> +<keyword>sound</keyword> +<keyword>fm</keyword> +<keyword>awe</keyword> +<keyword>gus</keyword> +</keywordset> +</bookinfo> + +<chapter id="introduction"> +<title>Introduction</title> + +<para> +&kmid; is &kde;'s midi and karaoke multimedia player. It features some +features not found in any other &UNIX; midi player, such as realtime +graphics and karaoke text highlighting among others. +</para> + +<para> +&kmid; has been reported to run on &Linux; and FreeBSD operating +systems. It uses the <acronym>OSS</acronym> sound driver, so it should +run on every system where &kde; and <acronym>OSS</acronym> +compile. &kmid; also supports the &Linux; Ultrasound Project Driver , +which is required to get sound in <acronym>GUS</acronym> cards. I plan +to support the <acronym>ALSA</acronym> driver as soon as it supports a +sequencer device. +</para> + +<para> +&kmid; shows the lyrics in the screen changing its color at the same +time the music is playing, so it is very easy to follow the tune of the +songs. +</para> + +<para> +Hope you find &kmid; as fun to use as I found developing it. +</para> + +<para> +Antonio Larrosa Jiménez <email>larrosa@kde.org</email> +</para> + +<sect1 id="kmids-features"> +<title>&kmid;'s features</title> + +<para> +These are some of &kmid;'s main features: +</para> + +<itemizedlist> +<listitem> +<para> +It has a very <emphasis>friendly user interface</emphasis> to display karaoke +text with <emphasis>realtime highlighting</emphasis> of lyrics. +</para> +</listitem> +<listitem> +<para> +It features a graphical view of what is being played on each midi channel, by +highlighting the keys pressed in (virtual) keyboards. +</para> +</listitem> +<listitem> +<para> +The most powerful <emphasis>Midi Mapper</emphasis> that you will ever find in +any operating system. +</para> +</listitem> +<listitem> +<para> +<emphasis>Drag & drop</emphasis> so you can drop in &kde; any midi file from a +&konqueror; window. +</para> +</listitem> +<listitem> +<para> +You can <emphasis>change the tempo</emphasis> of songs to play them slower or +faster at your wish. +</para> +</listitem> +<listitem> +<para> +It shows lights to follow the rhythm of the song. +</para> +</listitem> +<listitem> +<para> +<emphasis>Customizable fonts</emphasis> for karaoke text to be displayed. +</para> +</listitem> +<listitem> +<para> +Supports the two standards to introduce lyrics in midi files, that is, lyrics or +text events (and guess which one a song uses automatically). +</para> +</listitem> +<listitem> +<para> +Session Management. If a song is playing while you logout from &kde;, the next +time you login, the same song will start playing. +</para> +</listitem> +<listitem> +<para> +<emphasis>Adjustable volume</emphasis> in realtime. +</para> +</listitem> +<listitem> +<para> +It can play broken midi files which make other players core dump! +</para> +</listitem> +<listitem> +<para> +It can open <emphasis>gzipped midi/karaoke files</emphasis> just as any other +file. +</para> +</listitem> +<listitem> +<para> +Consumes approximately <emphasis>0.1%</emphasis> of my +<acronym>CPU</acronym> (depends on the complexity of the song). +</para> +</listitem> +<listitem> +<para> +Supports external midi synths, <acronym>AWE</acronym>, <acronym>FM</acronym> and +<acronym>GUS</acronym> cards (for the latter you need the <acronym>LUP</acronym> +driver and gusd installed). +</para> +</listitem> +<listitem> +<para> +Runs on &Linux; and FreeBSD (maybe also other unices ...). +</para> +</listitem> +</itemizedlist> + +</sect1> +</chapter> + +<chapter id="general-usage"> +<title>General usage</title> + +<sect1 id="opening-songs"> +<title>Opening songs</title> + +<para> +You can open a song several different ways. +</para> + +<para> +First, you can select <guimenuitem>Open...</guimenuitem> from the +<guimenu>File</guimenu> menu, then you are presented with a standard +open dialog, with which you can select the song you wish to open. +</para> + +<para> +You can drag a file from a &konqueror; window and drop it in the &kmid; window. +You can also Drag & Drop multiple songs at the same time. +</para> + +<para> +If you specify a song in the command line when running &kmid;, it will also be +opened. +</para> + +<para> +And the final way is by selecting the song from the list of songs of the active +collection. +</para> + +</sect1> + +<sect1 id="playing-songs"> +<title>Playing songs</title> + +<para> +To play a song, first open it, and then press on the +<guiicon>Play</guiicon> button of the toolbar, choose the +<guimenuitem>Play</guimenuitem> entry of the <guimenu>Song</guimenu> +menu, or just press the <keycap>Space</keycap> key. +</para> + +<para> +Note that when you open a file using Drag & Drop, &kmid; will start +playing it automatically (if you drop more than one file, they will be +added to a collection and they will be played sequentially). +</para> + +<para> +Once &kmid; is playing a song, you can move the time slider, by pressing +with the &MMB; mouse button, to go to a specified position. +</para> + +<para> +If a song is playing too fast or too slow for you, you can press on the +arrows at both sides of the tempo <acronym>LCD</acronym> and make it +play faster or slower. To get back to the default tempo, just do a +double click on the tempo <acronym>LCD</acronym>. +</para> + +<para> +The <keycap>Space</keycap> key is used for two things, when music is +playing, and you press the <keycap>Space</keycap> key, it will act as +when you press on the <guiicon>pause</guiicon> button or the +<guimenuitem>Pause</guimenuitem> entry of the <guimenu>Song</guimenu> +menu, that is, it will pause music. If you press the +<keycap>Space</keycap> key when no music is being played, &kmid; will +play it. +</para> + +</sect1> + +<sect1 id="displaying-lyrics"> +<title>Displaying lyrics</title> + +<para> +There are two methods to store lyrics in a song, by using +<guimenuitem>Text events</guimenuitem> or <guimenuitem>Lyrics +events</guimenuitem>, some songs use the first, some the second, some +use both of them, and some don't include lyrics :-) +</para> + +<para> +&kmid; lets you choose which events to display, and even better, it has +an option to automatically select the type of events that a song uses, +so that you don't have to change the type manually . That way, if you +activate the <guimenuitem>Automatic Text Chooser</guimenuitem> entry of +the <guimenu>Settings</guimenu> menu, the karaoke text will be +automatically selected, but you can still change them if you prefer to +see the other type. +</para> + +<para> +To select which type to see, you can use the appropriate entries in the +<guimenu>Settings</guimenu> menu, or just press the <keycap>1</keycap> +and <keycap>2</keycap> keys of your keyboard to see the +<guimenuitem>Text events</guimenuitem> or <guimenuitem>Lyrics +events</guimenuitem> respectively. +</para> + +</sect1> + +</chapter> + +<chapter id="collections"> +<title>Collections</title> + +<para> +A collection is a list of midi files that you put in a set, and which +are played one after another. This section will help you to use them, +and will give you some useful tips to make a good use of them. +</para> + +<sect1 id="creating-a-collection"> +<title>Creating a collection</title> + +<para> +To create a collection, first open the <guilabel>Collections +Manager</guilabel> dialog, by selecting the <guimenuitem>Organize +...</guimenuitem> entry of the <guimenu>Collections</guimenu> menu . +Then click on the <guibutton>New</guibutton> button, and enter the name +you want the collection to have. +</para> + +<para> +You can also copy a complete collection by selecting it and then +pressing the <guibutton>Copy</guibutton> button, which will ask you for +the name of the new collection that will have initially the same songs +as the selected collection. +</para> + +<para> +Once you have more than one collection, you can change the active +collection from the <guilabel>Collections Manager</guilabel>, by +selecting it. +</para> + +</sect1> +<sect1 id="the-temporary-collection"> +<title>The Temporary Collection</title> + +<para> +The Temporary Collection is a collection that is used to hold songs you +want to play but that you don't want to add to any collection. +</para> + +<para> +This collection is <emphasis>not saved</emphasis> on exit of the +application, so keep it in mind when you add lots of songs to it. +</para> + +<para> +Keep on reading this section for a better understanding of the Temporary +Collection. +</para> + +</sect1> + +<sect1 id="adding-songs-to-a-collection"> +<title>Adding songs to a collection</title> +<subtitle>How to use <guimenuitem>AutoAdd to a +collection</guimenuitem></subtitle> + +<para> +There are some different ways to add a song to a collection. +</para> + +<para> +First of all in each method, you must have selected the collection you +want to add songs to in the <guilabel>Collections Manager</guilabel>. +Then you can press on the <guibutton>Add</guibutton> button to add a +song, there will appear an open file dialog so that you can choose which +song to add. +</para> + +<para> +The other methods to add a song depend on the state of the +<guimenuitem>AutoAdd to Collection</guimenuitem> option. +</para> + +<para> +If <guimenuitem>AutoAdd to Collection</guimenuitem> is enabled, when +you open a song (using <menuchoice><guimenu>File</guimenu> +<guimenuitem>Open...</guimenuitem></menuchoice> or Drag & Drop) it +(they) will be added to the active collection without user intervention. +</para> + +<para> +If <guimenuitem>AutoAdd to Collection</guimenuitem> is not enabled, +when you open a song the Temporary Collection will be activated and +cleared, and the opened songs will be added to it. +</para> + +</sect1> + +<sect1 id="removing-songs-from-collections"> +<title>Removing songs from collections</title> + +<para> +To delete a song from a collection, just open the <guilabel>Collection +Manager</guilabel>, select the appropriate collection, and the song you +wish to delete, and then click on the <guibutton>Remove</guibutton> +button. +</para> + +</sect1> + +<sect1 id="playing-order"> +<title>Playing in order or at random</title> + +<para> +You can select the order in which songs will be played . When you select +<guimenuitem>In order</guimenuitem> mode from the <guisubmenu>Play +Order</guisubmenu> submenu of the <guimenu>Collections</guimenu> menu, +songs will be played in the same order in which they were added to the +collection. +</para> + +<para> +When you select <guimenuitem>Shuffle</guimenuitem> mode, &kmid; will +generate a random variable with a discrete uniform distribution to +really play randomly the songs in the collection . It will give values +to that random variable while generating the list in which order the +songs will be played (you surely want to play random songs, but don't +want to play twice the same song, and you want to play the last played +song when you press on the <guibutton>Previous Song</guibutton> button, +don't you ? :-) ). +</para> + +<para> +The random list in which the collection will be played will be +regenerated each time you add or remove a file in the active collection, +and when you press on the <guimenuitem>Shuffle mode</guimenuitem> entry +of the menu. +</para> + +</sect1> + +<sect1 id="selecting-from-a-collection"> +<title>Selecting a song from a collection</title> + +<para> +You can select a song to play in the <literal>Collection +Manager</literal>, or by using the combo box over the karaoke text. +</para> + +<para> +You can also change to the next song by using the <literal>Next +Song</literal> entry of the <literal>Song</literal> menu, the +<literal>Next Song</literal> button of the toolbar, or pressing the +<literal>right arrow</literal> key. +</para> + +<para> +To change to the previous song, use the <guimenuitem>Previous +Song</guimenuitem> entry of the <guimenu>Song</guimenu> menu, the +<guimenuitem>Previous Song</guimenuitem> button of the toolbar, or press +the <keycap>left arrow</keycap> key of your keyboard. +</para> + +</sect1> + +<sect1 id="deleting-a-collection"> +<title>Deleting a collection</title> + +<para> +To delete a collection, simply open the <guilabel>Collection +Manager</guilabel>, select the collection you want to delete, and click +on <guibutton>Delete</guibutton>. Easy, it isn't? </para> + +<para> +Please keep in mind that you cannot delete the Temporary Collection, but +it doesn't matter as it is not saved when you quit &kmid;. +</para> + +</sect1> + +</chapter> + +<chapter id="midi-maps"> +<title>Midi Maps</title> + +<sect1 id="what-is-a-midimap"> +<title>What is a midi map ?</title> + +<para> +A Midi Map is something that maps midi events in other midi events. +</para> + +<para> +This is totally needed if a synthesizer doesn't understand the standard +events (that is, if a synthesizer is not General Midi compliant), in +this case, a midi map will translate General Midi events in the events +that that synthesizer understands. +</para> + +<para> +For example you can make a midi map that converts all the +<literal>Change patch to Bright Piano</literal> events, to +<literal>Change patch to Trumpet</literal> events, and so when a song +tries to play a piano, it will play a trumpet instead. +</para> + +<para> +This may sound odd, (why playing a trumpet when the song is made to play +a piano?), but it is very useful. The <acronym>GM</acronym> standard +specifies that when a midi keyboard receives an event to change patch to +<literal>0</literal>, it will change the current patch to <literal>Grand +Piano</literal>, but older synthesizer will change for example to a +<literal>Electric Guitar</literal> when it receives a +<literal>0</literal>. This old keyboard, needed to receive a +<literal>3</literal> (for example) to change to a +<literal>Piano</literal>. And here comes the midi map in action, +changing all <literal>change patch to 0</literal> to <literal>change +patch to 3</literal> and thus really playing the correct instrument when +it has to. +</para> + +</sect1> + +<sect1 id="do-i-need-a-midi-map"> +<title>Do I need a midi map ?</title> + +<para> +In short, if you don't have an external synth, <emphasis>no</emphasis>! +</para> + +<para> +If you only have a sound card, midi maps are not needed because all the +sound cards are <acronym>GM</acronym> compliant (this include AWE cards, +<acronym>GUS</acronym> cards, <acronym>FM</acronym> devices and so on). +</para> + +<para> +If you are playing music through an external synthesizer, and it is not +GM compliant, you will need to make a midi map for your midi keyboard . +Although you will perhaps be a whole afternoon doing your map file and +trying different values for all the options, you will be fully rewarded +when you finish it, because then you will find all the hidden +possibilities of your keyboard. For example, I have a low-cost Yamaha +PSS-790, which is not <acronym>GM</acronym> compatible, and doesn't has +as many instruments as a <acronym>GM</acronym> synthesizer, but with +&kmid;'s midi mapper, it sounds even better than many soundcards +(including AWE :-)), due to the sound quality found in external synths +(even on non <acronym>GM</acronym> compliant ones). +</para> + +</sect1> + +<sect1 id="creating-a-midi-map"> +<title>Creating a midi map</title> + +<para> +There isn't any program to generate midi maps, so you will have to edit a file +by hand (using your favorite text editor). +</para> + +<para> +A Midi map is a text file that keeps all the needed translations there will be +made when playing music. +</para> + +<para> +It consist of four sections: <literal>PATCHMAP</literal>, +<literal>KEYMAP</literal>, <literal>CHANNELMAP</literal> and +<literal>OPTIONS</literal>. +</para> + +<para> +Each section must appear only once, except the <literal>KEYMAP</literal> section +that can appear as many times as needed, provided that each appearance use a +different TextID (continue reading for details). +</para> + +<para> +The general structure of a map file is: +</para> + +<screen>DEFINE PATCHMAP +... +END + +DEFINE KEYMAP "Name of Keymap" +... +END + +DEFINE KEYMAP "Another Keymap" +... +END + +DEFINE CHANNELMAP +... +END + +OPTIONS +... +END +</screen> + +<para> +You can see that the <literal>DEFINE</literal> word is used to specify +which section is going to be started (except for +<literal>OPTIONS</literal>), and <literal>END</literal> is put at the +end of each section. </para> + +<para> +You can put comments by starting the line with a +<literal>#</literal> character. +</para> + +<para> +Please, don't forget to send me your map file by email, so that future +releases of &kmid; will include support for more non General Midi +compliant keyboards. +</para> + +<sect2 id="the-patchmap-section"> +<title>The <literal>PATCHMAP</literal> section</title> + +<para> +This section is used to specify how patches are going to be mapped, from +GM to your keyboard specs . The general usage is: +</para> + +<screen>(Name of GM Patch name)=(<replaceable>N</replaceable>) [AllKeysTo M] +</screen> + +<para> +Where <replaceable>N</replaceable> is the number that you keyboard needs to +receive to change the patch to the same that the GM standard does . +</para> + +<para> +Please note that the left side of the equal sign is ignored, so +<acronym>GM</acronym> patches are supposed to be in order (from 0 to 127) , and +so you are not allowed to change the order of the lines nor to omit any of the +128 instruments. +</para> + +<para> +The optional <literal>AllKeysTo M</literal> is used to map all notes +that use that instrument to the <literal>M</literal> key . For example, +suppose that your midi keyboard doesn't have a Gun Shot sound (GM patch +127) so you want to map it to a percussion drum (i.e. key 60), which +sounds similar to a gun shot, then you can put in the 127th line of the +<literal>PATCHMAP</literal> section: +</para> + +<screen>Gunshot =100 AllKeysTo 60</screen> + + +<para> +So when a midi file tries to play a note with the patch 127 (gun shot), it will +be mapped to the patch 100 (your keyboard's percussion patch) and play the note +60 (independently of the key that was going to be played). +</para> + +<para> +Please note that when I use the expression <quote>Percussion patch</quote>, I +mean the patch in which each key plays a different drum, cymbal, tom, maracas +and so on, and not to a possible sound which some keyboards have and which plays +a different tone of the same drum with each key. +</para> + +</sect2> + +<sect2 id="The-keymap-section"> +<title>The <literal>KEYMAP</literal> section</title> + +<para> +The <literal>KEYMAP</literal> section is used to specify how keys are +going to be mapped, within a given channel or instrument . The usage is: +</para> + +<screen>DEFINE KEYMAP "Name of Keymap" +C 0 =0 +C#0 =1 +D 0 =2 +... +END +</screen> + +<para> +As with the <literal>PATCHMAP</literal> section, it is very important +the order of the lines, and that they are all there (the 128 keys). +</para> + +<para> +As you can define multiple keymaps for different channels and instruments, +you must give a different name to each one in the first line. +</para> + +<para> +Keymaps are mainly used to map keys in the percussion channel . Have a +look at the distributed maps to see some examples. +</para> + +</sect2> + +<sect2 id="the-channelmap-section"> +<title>The <literal>CHANNELMAP</literal> section</title> + +<para> +This section can be used to map some channels to different ones . For +example, if you want to swap the first and second channels, you can +easily do it within the <literal>CHANNELMAP</literal> section. +</para> + +<para> +However it is more useful for keyboards that need the percussion +channel to be in a given channel (the GM standard use the channel 10, +others use the channel 16 and others use channel 9). +</para> + +<para> +Note that midi devices use 16 channels, so the <literal>CHANNELMAP</literal> +section, has 16 lines, from 0 to 15 , as this one: +</para> + +<screen>(N) = (M) [Keymap "Name"] [ForcePatch x] +</screen> + +<para> +Where <literal>N</literal> is the channel which is mapped to the +<literal>M</literal> channel . If the <literal>Keymap</literal> option +is used, the Keymap with name <literal>Name</literal> will be used in +this channel (this Keymap should be defined earlier in the map file !) . +If the <literal>ForcePatch</literal> option is used, all events that try +to change the patch which is used in this channel will be ignored, and +patch <literal>x</literal> will be used instead. +</para> + +<para> +The <literal>ForcePatch</literal> option may be useful for example to +always use the percussion patch on the percussion channel. +</para> + +</sect2> + +<sect2 id="the-options-section"> +<title>The <literal>OPTIONS</literal> section</title> + +<para> +The <literal>OPTIONS</literal> section has some general options that can +be very useful: +</para> + +<screen>OPTIONS +PitchBenderRatio = r +MapExpressionToVolumeEvents +END +</screen> + +<para> +You can specify both options, only one, or none of them. +</para> + +<para> +The <literal>PitchBenderRatio r</literal> value, has the ratio by which +pitch bender events will be multiplied . That is, when a midi file tries +to send a pitch bender event with a <literal>n</literal> value, the real +value that will be sent is <literal>n*(r/4096)</literal> (the +<literal>4096</literal> value is for not having to put decimal points in +the map file). +</para> + +<para> +This is used because the <acronym>GM</acronym> standard says that when a +midi keyboard receives a Pitch Bender event with a 4096 data value, it +should bend the note to a higher one , but some midi keyboards try to +bend the initial note by two or more higher notes (even an octave +higher!) when they receive a 4096 . This can be easily fixed by trying +different values so that instead of sending a 4096, KMid sends the +appropriate value. +</para> + +<para> +When the <literal>MapExpressionToVolumeEvents</literal> option is set in +the map file, and a midi file try to send an expression event, KMid will +send a volume event which is understood by more non-GM keyboards, and +which has a similar effect . There are many midi files which use +expression events to fade out at the end of a song, so if you feel that +music should be heard softer and softer, you can turn on this option and +see if this is what you need, because your midi synthesizer could be +ignoring the expression events because it doesn't understand them. +</para> + +</sect2> + +</sect1> + +<sect1 id="using-midimaps"> +<title>Using midi maps</title> + +<para> +To use a midi map, simply open the <guilabel>Midi Setup</guilabel> +dialog by selecting the <guimenuitem>Midi Setup ...</guimenuitem> entry +of the <guimenu>Settings</guimenu> menu. +</para> + +<para> +Then click on <guilabel>Browse ...</guilabel>, select the map file within the open +file dialog and enjoy the music ! :-) +</para> +</sect1> +</chapter> + +<chapter id="advanced-features"> +<title>Advanced features</title> + +<sect1 id="the-channel-view"> +<title>The Channel View</title> + +<para> +The Channel view is a window where you are shown a heap of keyboards (one for +each midi channel). In these keyboards, the notes that are being played with +each instrument are highlighted so that you can see what is each instrument +playing. +</para> + +<sect2 id="changing-instruments"> +<title>Changing instruments</title> + +<para> +You can use the Channel View to change the instrument that each channel is +playing. In each channel there is a combo box where you can select it. Once you +change it, the green button next to it will change to red to indicate that this +is not the default instrument. +</para> + +<para> +If you want to set again the default instrument, click on the red button, and it +will be automatically set. +</para> + +</sect2> + +<sect2 id="changing-the-look"> +<title>Changing the look mode</title> + +<para> +The Channel View has two different ways (for now) to display the played notes, +you can select them from the <guimenuitem>Channel View Options...</guimenuitem> +item in the <guimenu>Settings</guimenu> menu. +</para> + +<para> +You can choose between a mode in which played keys are pressed, as if it were a +normal piano (<guilabel>3D look</guilabel>), or a mode in which keys are also +filled with red color, so that pressed keys are easily recognized (<guilabel>3D +- filled</guilabel>). If you play the piano, or any other music instrument, you +can use this view to learn to play a song by yourself. I've used this technique +and it (along with a tempo reduction) is great to +learn new compositions. +</para> + +</sect2> + +</sect1> + +<sect1 id="the-tempo-lcd"> +<title>The Tempo <acronym>LCD</acronym></title> + +<para> +This shows the tempo in which a song is played, that is, the velocity of the +song. The higher this number is, the faster the song will play. +</para> + +<para> +You can also change the tempo of the song, so if a song plays too fast for you +to follow the lyrics, you can make it play slower. To change the tempo, you can +use the arrows that appear at each sides of the <acronym>LCD</acronym>. +</para> + +<para> +Once you have changed the tempo, you can get back the default one by doing a +double click on the <acronym>LCD</acronym>. +</para> + +</sect1> + +</chapter> + +<chapter id="key-bindings"> +<title>Key bindings</title> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry>Key</entry> +<entry>Action</entry> +</row> +</thead> +<tbody> +<row> +<entry><keycap>Space</keycap></entry> +<entry>Play the loaded song, if it isn't playing, or pause it, if it's already +playing.</entry> +</row> +<row> +<entry><keycap>Backspace</keycap></entry> +<entry>Stop playing</entry> +</row> +<row> +<entry><keycap>Right Arrow</keycap></entry> +<entry>Next song in current collection</entry> +</row> +<row> +<entry><keycap>Left Arrow</keycap></entry> +<entry>Previous song in current collection</entry> +</row> +<row> +<entry><keycap>Up Arrow</keycap></entry> +<entry>Scroll lyrics one line up</entry> +</row> +<row> +<entry><keycap>Down Arrow</keycap></entry> +<entry>Scroll lyrics one line down</entry> +</row> +<row> +<entry><keycap>Page Up</keycap></entry> +<entry>Scroll lyrics one page up</entry> +</row> +<row> +<entry><keycap>Page Down</keycap></entry> +<entry>Scroll lyrics one page down</entry> +</row> +<row> +<entry><keycap>1</keycap></entry> +<entry>Display text events</entry> +</row> +<row> +<entry><keycap>2</keycap></entry> +<entry>Display lyric events</entry> +</row> +<row> +<entry><keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo></entry> +<entry>Open a song</entry> +</row> +<row> +<entry><keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo></entry> +<entry>Quit &kmid;</entry> +</row> +<row> +<entry><keycap>F1</keycap></entry> +<entry>Open this document</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +</chapter> + +<chapter id="frequently-asked-questions"> +<title>Frequently Asked Questions (FAQ)</title> + +<qandaset> +<qandaentry> +<question> +<para> +What is exactly a midi file? +</para> +</question> + +<answer> +<para>A Midi file is a file that contains the information on how to play +a song, that is, it contains simply the notes, the rhythm, +velocity,&etc; This implies that the same midi file, when played in two +different devices, can produce very different results, as well as a +given staff can be played very differently by two different musicians. +</para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para> +I can get better sound with a mp3/wav player, why should I use &kmid;? +</para> +</question> +<answer> +<para> +Well, I cannot force anyone to use &kmid;, but a typical midi file +occupies 50 Kb. while a typical mp3 file occupies 4 Mb. (and that is a +1:80 compression ratio :-) . And with a good synthesizer device, you can +get a comparable sound quality. Even more, with a midi file, you can +change individual instruments, change the velocity of a song, &etc; so +you have more overall control. +</para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para> +I can't get my AWE card to work with KMid, what can I do? +</para> +</question> +<answer> +<para> +This can happen when you get a binary distribution (rpm, deb) of &kmid;. It +happens because &kmid; was compiled without awe support. If it doesn't +work, then you must download a source code distribution (for example, from +<ulink url="http://www.arrakis.es/~rlarrosa/kmid.html">&kmid;'s homepage</ulink>) +</para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para> +I want to add a whole folder to a collection, but having to add the midi +files one by one is not funny. +</para> +</question> + +<answer> +<para> +I agree, that's why &kmid; supports Drag & Drop. Just open, in &konqueror;, +the folder you want to add, select all the files, drag them and drop them in +&kmid;. +</para> +<para> +Be sure to set the <guimenuitem>AutoAdd to Collection</guimenuitem> option before, so that the +files will be added to the current collection. If you don't do this, files will +be added to the Temporary Collection. +</para> +</answer> +</qandaentry> + +<qandaentry> +<question> +<para> +I can't follow the lyrics, it's playing too fast! +</para> +</question> +<answer> +<para> +You can press the left arrow of the tempo <acronym>LCD</acronym> to make it play +slower. Remember that you can do a double click on the <acronym>LCD</acronym> to +get the default tempo. +</para> +</answer> +</qandaentry> +</qandaset> + +</chapter> + +<chapter id="final-notes"> +<title>Final notes</title> + +<sect1 id="some-tips-and-tricks"> +<title>Some tips and tricks</title> + +<para> +I will include some tips so that you can take fully advantage from all +the features of &kmid;: +</para> + +<variablelist> +<varlistentry> +<term>Opening files</term> +<listitem> +<para>I always keep a &kde; desktop with a &konqueror; window in my root +midi folder, and &kmid; in this desktop (if playing a midi file) or +sticky (if playing a karaoke file :-)). This way, when the active +collection finishes, or I want to play some file, I just go to the +konqueror; window, select the desired files and Drag & Drop to the +&kmid;'s window. +</para> + +<para> +Suppose that you want to play some midi files, but don't want to add +them to any collection, well, just turn off the <guimenuitem>AutoAdd to +Collection</guimenuitem> option in the <guimenu>Collections</guimenu> +menu, and open the files, they will be added to the Temporary +Collection. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term>Another method to create a new Collection</term> +<listitem> +<para> +Suppose that you have midi files <filename>A.mid</filename>, +<filename>B.mid</filename> and <filename>C.mid</filename>. At first you +only want to play the first midi file, so you unselect +<guimenuitem>AutoAdd</guimenuitem> and open +<filename>A.mid</filename>. You get then a Temporary Collection with +only one midi file. +</para> +<para> +Then you decide to play also B and C, and make a collection with all them, what +do you do? +</para> +<para> +Easy, select <guimenuitem>AutoAdd</guimenuitem> and open +<filename>B.mid</filename> and <filename>C.mid</filename> (by any of the +multiple methods), they will be automatically added to the Temporary +Collection, that will then have <filename>A.mid</filename>, +<filename>B.mid</filename> and <filename>C.mid</filename>. At this +point, you can open the <guilabel>Organize Collections</guilabel> +dialog, select the Temporary Collection, and click on the +<literal>Copy</literal> button, enter the name of the new collection, +and you are done . You already have a new collection, which holds the +A,B and C midi files, and that is not deleted when you close &kmid;. +</para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="hall-of-kmids-friends"> +<title>Hall of &kmid;'s friends</title> + +<para> +These are some folks who have sent me midi files or a postcard, thanks +to everyone! Hearing those songs and watching those postcards will keep +me programming more and more on &kmid;. +</para> + +<itemizedlist> +<listitem> +<para>Ola Sigurdson - <literal>Taking Care of Business</literal> (Bachman +Turner Overdrive)</para> +</listitem> +<listitem> +<para>EG Lim - A really very nice postcard from Penang.</para> +</listitem> +<listitem> +<para>Guenther Starnberger - <literal>Amadeus</literal> (Falco) and +<literal>Schrei Nach Liebe</literal> (Die Aerzte)</para> +</listitem> +<listitem> +<para>Leandro Terrés - <literal>All That She Wants</literal> and +<literal>The Sign</literal> (Ace of Base)</para> +</listitem> +<listitem> +<para>Nick Stoic - Two midi files</para> +</listitem> +</itemizedlist> + +</sect1> + +<sect1 id="about-the-author"> +<title>About the author</title> + +<para> +&kmid; has been made by Antonio Larrosa Jiménez, in Málaga +(Spain). I am a student of Mathematics at the University of +Málaga, currently I'm doing the third course, so I don't have +much free time for my hobbies, but I always try to get some :-) . My +hobbies include : Programming, collecting midi files, playing music and +proving theorems ;-). +</para> + +<para> +If you want to know where to download midi/karaoke files, you have any +question, a bug to report, an idea or a feature you'd like to see in +&kmid; or just want to make me happy, feel free to send me an email to: +<email>larrosa@kde.org</email> or <email>antlarr@arrakis.es</email> +</para> + +<para>or write to me by snail-mail at: +</para> + +<literallayout> Antonio Larrosa Jimenez +Rio Arnoya 10 5B +Malaga (Spain) +</literallayout> + +<para> +You will really make me happy if you send me a postcard from where you +live, or a midi/karaoke file from a local music group of your country +. Everyone who sends me a postcard or a midi file will have his/her name +in the Hall of &kmid;'s friends of this file (provided they don't oppose +to this). Please contact me before sending me any midi files because I +may have it already. +</para> + +<para> +I'd like stress that &kmid; has been done completely on free time, +without any monetary support from any company nor particular. So please +keep in mind when you use it, that the only think that keep me working +on this is getting some feedback from its users (a postcard, or just an +email). +</para> + +<para> +I would like to thanks the following persons their help in developing &kmid;: +</para> + +<itemizedlist> +<listitem> +<para> +Paul J. Leonard <email>P.J.Leonard@bath.ac.uk</email> - Support for AWE +cards +</para> +</listitem> +<listitem> +<para> +Sebestyen Zoltan <email>szoli@digo.inf.elte.hu</email>- FreeBSD port and +AWE testing +</para> +</listitem> +<listitem> +<para> +Christian Esken <email>esken@kde.org</email> - For organizing the KDE +multimedia efforts +</para> +</listitem> +<listitem> +<para> +Stephan Kulow <email>coolo@kde.org</email>- Configure scripts and help +with <command>automake</command> and <command>CVS</command> +</para> +</listitem> +<listitem> +<para> +Jaroslav Kysela - Help in doing the &Linux; Ultrasound Project driver +support +</para> +</listitem> +<listitem> +<para> +Takashi Iwai and Joseph H. Buehler - Fix for AWE cards pitch being +too high +</para> +</listitem> +<listitem> +<para> +Adrian Knoth - For giving me good news and many suggestions +</para> +</listitem> +<listitem> +<para> +Kevin Street - Patch to support FreeBSD 3.0 +</para> +</listitem> +<listitem> +<para> +Thanks go also to Jose Luis Sanchez for his testing of GUS support, +Ignacio Garcia for testing the AWE support, Hans Petter Bieker, Ola +Sigurdson, Marc Diefenbruch, Peter Gritsch, Magnus Pfeffer, Urko Lusa, +Peter-Paul Witta, Thorsten Westheider, Ulrich Cordes and everyone that +sent me a patch, bug report or just an email to give me encouragement. +</para> +</listitem> +<listitem> +<para> +And of course to all the fabulous musicians over the net that keep giving +us those wonderful midi and karaoke files. +</para> +</listitem> +</itemizedlist> + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +</sect1> + +<sect1 id="copyright-and-license"> +<title>Copyrights and License</title> + +<para>&kmid; is copyright Antonio Larrosa Jiménez, 1999-2001</para> + +<para>Documentation is copyright Antonio Larrosa Jiménez 1999, +2001</para> + +&underFDL; +&underGPL; + +</sect1> + +</chapter> + +<appendix id="installation"> +<title>Installation</title> + +<sect1 id="how-to-obtain-kmid"> +<title>How to obtain &kmid;</title> + +&install.intro.documentation; + +<para> +Additionally, &kmid; can be found on its homepage, which is at <ulink +url="http://www.arrakis.es/~rlarrosa/kmid.html"> +http://www.arrakis.es/~rlarrosa/kmid.html</ulink>. In the homepage, you can +follow its development, see some information about it, some screenshots, a list +of sites from where you can download more karaoke songs, &etc; +</para> + +</sect1> + +<sect1 id="requirements"> +<title>Requirements</title> + +<para>&kmid; requires to work:</para> + +<itemizedlist> +<listitem> +<para> +&kde;. Well, you probably already have this :-) +</para> +</listitem> +<listitem> +<para> +A sound card. A good soundcard and/or external synthesizer are +recommended, as the sound quality depends greatly in your soundcard, +it's not the same to play the music using an FM device, than using an +AWE card. +</para> + +<para> +If you don't have a soundcard, you can still compile &kmid; with +<literal>MODE_DEMO_ONLYVISUAL</literal> defined and it will run as if +you had one (but you'll get no music, of course :-( ). +</para> +</listitem> +</itemizedlist> + +</sect1> + +<sect1 id="compilation-and-installation"> +<title>Compilation and Installation</title> + +&install.compile.documentation; + +<para> +I've included some examples that are installed in <filename +class="directory">$dollar;<envar>KDEDIR</envar>/share/apps/kmid</filename> +</para> + +<para> +If you run into any problem, don't hesitate to contact any of the &kde; mailing +list, or send a report directly to me. +</para> + +</sect1> + +</appendix> + +</book> +<!-- +Local Variables: +mode: sgml +sgml-omittag: nil +sgml-shorttag: t +End: +--> |