---------------------------------------------------------------------
	HOW TO USE Xaw interface of TiMidity++

Xaw interface of TiMidity prepares a GUI only with Athena Widget sets
and Xt libraries that are standard toolkits of X Window System.


* WHAT'S NEW in 2.14.0

- Support for loading and saving playlists.
- Vastly improved file dialog (Separate file/directory panes, filtering, etc.).
- Scroll wheel support.
- Supports Drag and Drop via the XDND protocol.
- Tooltips for buttons are implemented.
- Can mute individual channels in trace mode.
- Fixed time thumb. Now it can also be used to change the position in the midi.
- Support displaying more than 16 channels.
- Many many bugs fixed and other small improvments.

* INSTALLATION

The xaw interface is compiled by passing either "--enable-interface=xaw"
or "--enable-dynamic=xaw" as parameters for the configure script.
TiMidity++ ordianary install will than contain the xaw interface.

The are several ways to configure the xaw interface before compilation:

A) Some parameters can be passed to GNU configure to modify the xaw
interface. Namely:

--with-xawlib=<comma delimetered list of toolkit names>
--with-xaw-resource-prefix=<prefix to resource dir>
--enable-xdnd, --disable-xdnd
--enable-offix, --disable-offix

--with-xawlib:

TiMidity++ supports multiple Xaw toolkits. By default it searches for them
in this order: xaw3d, xaw. If you wish to force compilation
with a specific toolkit, provide the --with-xawlib=<name> parameter to
configure, e.g.:

  ./configure --enable-interface=xaw --with-xawlib=xaw

or even:

  ./configure --enable-interface=xaw --with-xawlib=neXtaw,xaw3d,XawPlus,xaw

  to force a different search order.

--enable-xdnd, --enable-offix, --disable-xdnd, --disable-offix

Enable/Disable support for XDND/Offix drag and drop protocols. By default
both are disabled.

--with-xaw-resource-prefix=<prefix>

Optional parameter. If passed, timidity will try to install the resource files
to <prefix>/app-defaults/ and <prefix>/ja_JP.EUCJP/app-defaults.

B) The xaw.h and x_trace.h files can be edited as well to change some options:

If you want to use Label Widget for lyrics as in version 1.1,
remove /* */ so that this line is visible:

  #define WIDGET_IS_LABEL_WIDGET

Although $(HOME)/.xtimidity will be regarded as an initial personal
configuration file, you can rename it by changing the line;

  #define INITIAL_CONFIG ".xtimidity"

If you'd like to see more/less than 16 channels in one screen when in
trace mode, change

  #define D_VISIBLE_CHANNELS 16

in x_trace.h.

(There's a way to change that after compilation: changing the traceHeight
resource will change the number of visible channels in one screen.)

!!! NOTE !!!
Don't forget to make clean before build if these files are edited.

* USAGE

Xaw interface shows the following file menu:

  LOAD
    Load a new MIDI file.

  SAVE
    Save the currently shown MIDI file.

  LOAD PLAYLIST
    Loads a playlist.

  SAVE PLAYLIST
    Saves a playlist.

  SAVE CONFIG
    Save the current settings and modes e.g. shuffle,
    repeat, auto-start and auto-exit flags to ~/.xtimidity .

  HIDE/UNHIDE MESSAGES
    Toggles displaying text widget showing messages and lyrics.

  HIDE/UNHIDE TRACE
    Toggles trace canvas.

  SHUFFLE
    Toggles shuffle flag.

  REPEAT
    Toggle repeat flag.

  AUTO-START
    Toggle auto-start flag.

  AUTO-EXIT
    Toggle auto-exit flag to exit or not after all songs are over.

  FILE LIST
    Popup the playing file list window.

  EXTEND MODES
    Popup the extend mode control window.

  ABOUT
    Information about Xaw interface of TiMidity++.

  QUIT
    terminate timidity.

From ver.1.3, File Load and File List menues that enabled to add and/or
delete playing list.  You can append or delete arbitrary files from file
browser.  To play a file, you can select it by either of pull-down menu
on the title bar or File List window.
The shortcut key actions on each window are as follows:

<Main Window>
	[Enter] or [r]	: Start Playing
	[Space]		: Pause / Start Again
	[a]		: Show about window
	[l]		: Show file list
	[s]		: Stop Playing
	[q]		: Quit TiMidity++
	[p] or [Left]	: Previous File
	[n] or [Right]	: Next File
	[v] or [Down]	: Volume Down (10%)
	[V] or [Up]	: Volume Up (10%)
	[<]		: Slower tempo
	[>]		: Faster tempo
	[-]		: Lower pitch
	[+]		: Raise pitch
	[Alt + F], [z]	: Show main menu
	[Alt + N]	: Load Files
	[Ctrl + V]	: Save File
	[Alt + L]	: Load Playlist
	[Alt + P]	: Save Playlist
	[Alt + S]	: Save settings to ~/.xtimidity
	[Ctrl + M]	: Hide/Show Messages
	[Ctrl + T]	: Hide/Show Trace canvas
	[Ctrl + S]	: Toggles Shuffle state
	[Ctrl + R]	: Toggles Repeat state
	[Ctrl + D]	: Toggles Tooltips
	[Ctrl + O]	: Show options window
	[g]		: Turns on/off spectrogram (if timidity was compiled
			  with --enable-spectrogram)

<File List Window>
	[p] or [Up]	: Move the cursor to the previous file
	[n] or [Down]	: Move the cursor to the next file
	[Right]		: Move the cursor 5 lines backward
	[Left]		: Move the cursor 5 lines forward
	[v]		: Volume Down (10%)
	[V]		: Volume Up (10%)
	[Enter] or [R]	: Start Playing the selected file
	[d]		: Delete the selected file entry
	[A]		: Delete all entries
	[Space]		: Pause / Start Again
	[s]		: Stop Playing
	[q]		: Quit TiMidity++
	[c]		: Close the window
	[ESC]		: Close the window

<Extend Mode Window>
	[c]		: Close the window
	[ESC]		: Close the window
	[q]		: Quit TiMidity++

<Dialog in Load File Window>
	[Tab]			: File or directory completion
	[Enter]			: Select the directory entries
	[Alt-Enter]		: Selects all visible files
	[Escape] or [CTRL]+[g]	: Cancel and close the window
	[Ctrl-a]		: Move the cursor to the top
	[Ctrl-e]		: Move the cursor to the line-end
	[Ctrl-k]		: Delete strings after the cursor
	[Ctrl-`]		: Turn on filter
By entering a string containing a wildcard in the dialog, the filter will
be turned on, only displaying the matching files (case-insensitive). e.g.
*.mid shows all filenames ending in '.mid', '.MID', etc.
[AB]* shows all filenames beginning with 'a','A','b' or 'B'.
[!c]* shows all filenames not starting with 'c'.

* TRACE MODE
Specify the interface option flag 't' in command line like as
'timidity -iat' when you execute TiMidity (see timidity man page).
You can see a funny movements of volume, expression, panning,
pitchbending, reverb, chorus and voices et cetera of each channel on the
trace canvas.  Click left mouse button on the trace screen and you can
toggle trace screen between 'pitchbend and instrument' or 'tonebank,
reverb and chorus'. Click right mouse button and you can (un)mute a channel.
Click middle mouse button, and you can play a channel solo.
Wheel or 'j' key can scroll the trace to see more channels than the usual
16 channels. If the trace is too tall for your resolution, simply set
the traceHeight resource to a lower value.

* RESOURCES

Application class name is 'TiMidity', so specity resources in
.Xdefaults or .Xresources in your home directory as follows for example;

  TiMidity*textbackground: LemonChiffon    
  TiMidity*background: PeachPuff1
  TiMidity*menubutton: goldenrod
  TiMidity*buttonbackground: gold
  TiMidity*labelfont: -adobe-helvetica-bold-o-*-*-14-*-75-75-*-*-*-*

Application specific resources supported by TiMidity are listed below:

Name                Class                   Default
----------------------------------------------------------
arrangeTitle        ArrangeTitle            False
  Show MIDI titles on the title bar of the main window.
background          Background              gray65
  Background color of the main window.
menubutton          MenuButtonBackground    #CCFF33
  Menu button color.
textbackground      TextBackground          gray85
  Background color of Text Widget.
toggleforeground    ToggleForeground        MediumBlue
  Foreground color of toggle buttons.
buttonforeground    ButtonForeground        blue
  Foreground color of command buttons and other transient windows. 
buttonbackground    ButtonBackground        gray76
  Background color of command buttons and other transient windows. 
text2background     Text2Background         gray80
  Background color of labels in file dialogs.

labelfont           FontSet      -adobe-helvetica-bold-r-*-*-14-*-75-75-*-*-*-*
  Label widget font.
volumefont          FontSet      -adobe-helvetica-bold-r-*-*-12-*-75-75-*-*-*-*
  Volume Label font.
textfontset         FontSet      -*-*-medium-r-normal--14-*-*-*-*-*-*-*
  Text font for message box and so on.
ttitlefont          FontSet      -*-fixed-medium-r-normal--14-*-*-*-*-*-*-*
  MIDI title font at the bottom of trace window.
textHeight          TextHeight   120
  Height of the lyric widget (is 30 if WIDGET_IS_LABEL_WIDGET is defined).
menuWidth           MenuWidth    200
  Width of popup menu.
moreString          String       More...
  Label of submenus on the pop-up menu.
fileLabel           String       file...
  Title of main menu.
noPlaying           String       [ No Playing File ]
  String appended to title when no file is being played.
popup_confirm_title String       Dialog
  Title of confirm boxes.

These resources are used only in trace mode:

Name                Class                   Default
----------------------------------------------------------
tracefont           FontSet      -*-*-medium-r-normal--14-*-*-*-*-*-*-*
  Trace window font.
traceWidth          TraceWidth     627
  Width of trace widget.
traceHeight         TraceHeight    332
  Height of trace widget.
tracebackground     TraceBackground         gray90
  Background color of trace canvas.
velforeground       VelForeground           orange
  Color of bar in 'vel' (velocity) column for 'normal' channels.
veldrumforeground   VelDrumForeground       red
  Color of bar in 'vel' column, when the channel is a drum channel.
volforeground       VolForeground           LightPink
  Color of bar in 'vol' column.
expforeground       ExpForeground           aquamarine
  Color of bar in 'expr' column.
panforeground       PanForeground           blue
  Color of triangle in pan column. 
rimcolor            RimColor                gray20
  Color of the border between channel bars.
boxcolor            BoxColor                gray76
  Color of the channel bars.
captioncolor        CaptionColor            DarkSlateGrey
  Color of text in the trace widget.
whitekeycolor       WhiteKeyColor           white
  Color of white keys in keyboard.
blackkeycolor       BlackKeyColor           black
  Color of black keys in keyboard.
playingkeycolor     PlayingKeyColor         maroon1
  Color of played key in keyboard.
sustainedkeycolor   SustainedKeyColor       red4
  Color of sustained key in keyboard.
reverbcolor         ReverbColor             PaleGoldenrod
  Color of bar in reverb column.
choruscolor         ChorusColor             yellow
  Color of bar in chorus column.
untitled            String       <No title>
  String used in foot when no file is being played.

Note that all font resource are of type FontSet.
Also traceWidth setting does not work yet.

!!! NOTE !!!
Some resource files were attached to TiMidity++1.3.6 or later.
If you create a resource file of another locale except English or 
Japanese, please mail it to the timidity mailing list
<timidity-talk@lists.sourceforge.net>.
After building TiMidity++, put TiMidity.ad into the resources directory
such as;
 $(X11R6)/lib/X11/app-defaults
And put TiMidity-uj.ad, which is the Japanese-EUC resource file into;
 $(X11R6)/lib/X11/$(LANG)/app-defaults
For example, those are as follows if the Japanese-EUC locale of your
system is ja_JP.EUC as FreeBSD;
 # cp TiMidity.ad /usr/X11R6/lib/X11/app-defaults/TiMidity 
 # cp TiMidity-uj.ad /usr/X11R6/lib/X11/app-defaults/ja_JP.EUC/TiMidity

* SETTINGS FILE
 ~/.xtimidity contains settings which are used by the xaw interface.
 When "SAVE CONFIG" is selected, timidity will save the current configuration
 to the file.

 The file has a simple format. Each line begins with "set", than an option name,
 followed by the option's value.
 The options are:

Name                Allowed Values          Default
----------------------------------------------------------
RepeatPlay           0/1                    0
  Repeat playing the playlist after the last file was played.
ShufflePlay          0/1                    0
  Play the playlist in a random order.
ExtOptions           0-63                   Depends on compliation options.
  Enable various sequencer extensional modes (see options window for list).
ChorusOption         0/1                    Depends on compliation options.
  Enable chorus.
CurVol               0-800                  70
  Initial volume.
Showdotfiles         0/1                    0
  Show files and directories beginning with '.' in the file dialog.
DefaultDir           a valid dir name.      The user's home directory.
  The directory first displayed in the file dialog.
Disp:trace           0/1                    0
  Always start in trace mode.
Disp:text            0/1                    1
  Display the lyrics/messages widget at startup.
Tooltips             0/1                    1 [1]
  Display tooltips for buttons.
Autostart            0/1                    1
  Start playing immediately when the interface is started.
AutoExit             0/1                    0
  Exit after playing has stopped.
ConfirmExit          0/1                    0
  Confirm exit from interface if user tries to close it.
SaveList             0/1                    1
  Save playlist to ~/.xtimidity when saving configuration. If Autostart is 1,
  it will begin playing immediately when timidity is next started.
SaveConfig           0/1                    1
  Save config at exit.
File                 a valid file name.     None
  This file will be loaded at next start. If SaveList is 1, the previous
  playlist will be saved using this option. This option may occur multiple
  times in ~/.xtimidity.

[1] When timidity is compiled with xaw3d, tooltips are by default off.
    Tooltips can not be enabled when the neXtaw toolkit is used.

* REPORTS

Please send problems concerning Xaw interface, feature requests,
bug reports or comments to the TiMidity mailing list
<timidity-talk@lists.sourceforge.net>.

  Regards,

	Yoshishige Arai	<ryo2@on.rim.or.jp>
