Player
******

When OCP is started with a valid filename the file is loaded and the player interface is started. This is the main part of OCP and you have various ways to display all kinds of music information and data.

General
=======

OCP displays general (status) information in the first 4 rows. Some of these entries can be changed by the user, others are static for each module. The following list will explain every entry. (Some special file types modify the appearance of the general field, but only static data is affected.)

vol
The bar display the current playback volume. The default value is
100% or full volume. To change the volume press F2 and F3. This
will change the volume by one dot each time you press a key. The keys +
and - on the numeric keypad will change the volume smoother.
srnd
Toggle this option with F4 to enable a simple surround
effect.
pan
If a voice should be played on the right speaker you can rearrange
the stereo panning with this entry and F5,F6. To get mono sound
adjust the two riders to the middle.
bal
Just like the device on your stereo this option works. Press
F7,F8 to adjust the stereo balance between full left and full
right.
spd
The playback speed can be changed with F9,F10.
 (By default the speed and pitch options are linked (indicated by a
small arrow). To disable linkage press \.
Note that this will not work with all supported file types.)
ptch
The pitch of the file can be altered with F11,F12
row
Most files of the module type are divided into rows and patterns.
The first number shows the currently played row. The second number shows the
total number of rows in the current pattern. All numbers are shown in hexadecimal
format.
ord
Modules are divided into several orders consisting of patterns. The
first number shows the currently played order. The second number shows the
total number of orders. (Not all orders have to be played, as modules
can jump between different orders.) All Numbers are shown in hex.
tempo
the current tempo of the file.
bpm
These are not the physical beats per minute, but rather the speed
at which the file is played (only valid for module types). This option is
often refered by Trackers as BPM.
gvol
Some file formats allow a global volume to be set.
amp
This option lets you adjust an amplification. You can adjust this value with
CTRL+F2, CTRL+F3. (This is not the same
as Volume and F2, F3, because you are able to make the complete
file louder than 100% with this option. Note that setting to values above
100% might harm sound quality.)
filter
You can select different types of interpolation by pressing Backspace:

off - no interpolation

AOI - OCP tries to determine if interpolation is neccessary for each
note and sample indepentantly. This is the default option and should be enabled.

FOI - every sample is always interpolated. This option uses more processor
power as AOI.
module
shows the filename currently played and the title of the file
time
time since starting the current file

Global functions
================

Below the general information is a dark grey line. On the left side of the line the current screen mode is shown. In the middle a list of channels. Each file type has a maximum number of channels played simultaneously. For example simple file formats as .WAV can have one or two channels (responding to a mono or stereo sample). An audio CD always has 2 channels (left and right). Module file types can have many channels typically ranging from 4 to 32 channels.

The currently selected channel is displayed in light grey. To select another channel use Left,Right. You can also use Up,Down which will loop through the channels if the left or right end is reached.

Pressing q will quiet the selected channel. This key is valid in every part of the player. To enable the channel press q a second time. The reverse logic can be accomplished with s. This disables all other channels than the selected, so only one channel plays solo. Another hit on s will unsolo the channel again, so playing all channels. You can use any combination of the above keys. An example: Select channel 1 and press s. Now you will hear only channel 1. Go with the cursor keys to channel 3 and press q. As the channel is currently turned of (quiet) is it now played again. so you hear channels 1 and 3. Now switch to channel 2 and press s. Now only channel 2 will be played, whiche channel 1 and 3 are turned off again. By pressing s again all channels are enabled.

You can directly solo the first 10 channels by pressing keys 1..0. This will act as if you had changed to the appropriate channel and pressed s. Channels 11-20 are accessed through ALT+1..ALT+0.

To pause the file press p.

The current file can be restarted by pressing CTRL+Home. To move a bit forward use CTRL+Right. If a module is played this will skip the current order and start playing the next order. In other file types this command skips a certain amount of time, depending on the estimated playing time. CTRL+Left will rewind the music. This is not possible for all file type (midi or sid files). When playing modules the current order is skipped and the previous order is playing from the beginning. To skip a smaller amount of the file use CTRL+Up and CTRL+Down. This will skip 8 rows when playing modules. If the files support jump or loop command using these functions can lead you to patterns not included in the original play order! Be aware that using these funtions can lead to somewhat crashed files. (This does not mean that OCP itself crashed, but that the order of the music file can be disturbed so heavily, that the player is not able to play the correct music anymore.)

The next file in the playlist can be loaded with Enter. If no more files are left in the playlist the fileselector will be started so you can choose the next files. However the current module will continue playing. By pressing Esc you can switch back to the player again. The fileselector can also be invoked with f. The current playlist is shown and can be edited. When exiting the fileselector with Esc you can load the next module in the playlist with Enter. Leaving the fileselector with Enter will load the currently selected module and switching back to the player.

By default a module is looped after its end was reached. You can change this behaviour by configuring the file selector  (see Advanced usage for details) or with CTRL+l. When looping is disabled the next module in the playlist will be loaded once a module has ended. If no modules are left in the playlist the fileselector is started.

A DOS-Shell will be started when typing d. Note that OCP uses about 200KB so not all programs might start or execute properly. However it should be enough to make simple tasks like copying, deleting etc. When running under Windows95 the free amount of memory should be the usual size.

The screen mode can be changed by pressing z. This will toggle between 25 and 50 rows textmode, while CTRL+z toggle between 30 and 60 row textmode. ALT+z will toggle between 80 and 132 column mode. (80x25 and 80x50 textmode are available on every VGA card. All other modes require a proper VESA bios (at least version 1.2) and may not be available on all cards.)

The current configuration can be ``saved'' with ALT+F2. It is not stored permanently on hard disk, but only valid until OCP is quit. Normally the default configuration is loaded every time a new file is loaded. This function makes the current configuration the new default configuration. A previously saved configuration can be loaded with ALT+F3. The real default values are loaded with ALT+F4. To modify the default values permanently you have to change the ocp.ini file as explained on page see ocp.ini.

An online help is shown by h, ? or F1. Use Pgup and Pgdown to scroll through this screen.

Users of SoundBlasterAWE, Terratex EWS and Gravis Ultrasound PnP can use CTRL+F5 and CTRL+F6 to adjust the onboard reverb effect. The SBAWE can also add a chorus effect which is controlled via CTRL+F7 and CTRL+F8.

Text mode functions
===================

The player has two different operating modes. Text mode and graphics mode. In text mode you can enable various functions at once, while in graphics mode only a single function can be shown.

Because there can be more than one text mode funtion visible at the same time you might have to press the according key more than once to get the wanted effect. Each function can be in one of the following states:

  * invisible - inactive

  * invisible - active

  * visible - inactive

  * visible - active

When pressing a key the according funtion is made active, but left invisible.  By pressing the same key a second time the function will be made visible.  An active function can be recognized by their title string displayed in bright blue, while inactive functions have their title string displayed in dark blue. Keys affecting the funtions are only processed for the currently active mode. So it might be necessary to change to the appropriate mode by pressing its key once to manipulate its behaviour.

In the 132 column mode only one of the instruments* and channels* fields is active and used by the appropriate function. If a function is not visible the space is used by the other visible functions.

Channels
--------

The channel function is invoked with c. The channels appear in two different modes. By default the short mode is enabled. Two channels are shown in one row. A grey number shows the channel number. Left to it a white number shows the currently played instrument / sample on this channel followed by the note. If the note starts to play it is shown in cyan for a short while.  The third number shows the current volume at which the intrument / sample is played. Behind the volume the current effect is shown. (All these informations are only shown when a module or similar type of file is played.  The nature of file like .WAV or .MP3 permits those displays.)  At the rightmost of each entry the current (physical) volume splitted among left and right output channel is displayed in a bar graph.

The currently selected channel is indicated by a small white $>$ to the left side of the channel number. When a channel is muted with s or q it is shown in dark grey. However OCP continues to play this channel, so that the music sounds correctly when turning on this channel again.

When pressing c twice the channel function switches to the long format.  Each channel now uses a single row as more information is beeing displayed.  From left to right this is as follows: channel number, instrument / sample name, current note, instrument / sample volume, pan position, current, volume. (This layout is only valid for module type files. Other file types like .SID have a different layout, but basically showing the same information.)

If the textmode is changed to 132 column mode the channel function can be displayed in short form at the upper right corner of the desktop.

If there are more channels than space inside the screen area OCP will scroll automatically through the channel list when you use the cursor keys. This is indicated by white up and down characters.

     The channel function has no title string which could indicate
     if it is active or inactive. So you might have to press c one
     time more often if the channel function was previously inactive.

Instruments
-----------

If the current file a module (or midi) the used instruments / samples are shown with the instruments function. The instruments are shown with i. Just like channels instruments come in two formats, short and long.

In the short view only the intrument names are shown giving you space for two instruments per row in 80 column mode (4 instruments are shown in 132 column mode). An instrument / sample that is currently played is shown in bright cyan. If the sample is played ont the currently selected channel it is shown in bright green. All inactive intruments are drawn dark grey. If a sample has been played once a rectangular dot is placed left to the intrument number.

When the intruments are switched to long mode various information is displayed.  From left to right this is as follows:

  * a number from 00h to FFh giving the instrument number

  * instrument name

  * sample number (when using multiple samples per instrument)

  * sample name (only in 132 column mode)

  * length of the sample in bytes

  * length of the loop in bytes

  * bits per sample

  * the base note. For modules the default is C-4

  * finetune value

  * standard volume at which the sample is played

  * standard pan position

  * various flags (volume, pan envelopes etc.)

  * fadeout value (only in 132 column mode)

Often a file includes more instruments than can be shown on the screen. Use Pgup,Pgdown to scroll through the instruments. If the instrument function is active CTRL+{Pgup, Pgdown} will scroll for a complete page. When inactive you can scroll single lines by using CTRL+{Pgup,Pgdown}. This is very useful if you have enabled more than one textmode function.

The instrument flags (the rectangular dots left to the instrument number) are cleared with ALT+i. By pressing Tab you can toggle between the color mode and pure grey.

Pattern view
------------

Modules are arranged in patterns. You can view these patterns with the pattern view function envoked with t. When enabling this funtion OCP tries to display all channels at once using the best display possible. For modules using few channels (<8) this default display is normally acceptable, but you might want to change it when playing modules with many channels.

The pattern is shown in different columns. At the leftmost the row number is shown in hex. If the screen mode and pattern view allows the row number is shown again at the right side of the screen. Then follow some fields for global commands the module might contain. The biggest section of the screen use the channel columns, each one displaying on single channel indicated by the number on top of the column. Inside such a channel column various information can be displayed depending on the amount of space available. You can see the format of a channel column in the status line of the pattern view. The format of the column can be changed by pressing Tab. As there are many combinations of screen mode, channels and formats I will not go into detail here.

The number of channel rows displayed at once can be changed by pressing Pgup, Pgdown. Normally the pattern view will follow the music as it progresses. With Space the pattern view will stop. The current play position is now displayed with a white special char. You can now browse through the module with Pgup,Pgdown. Space will enable the follow mode again, bringing the pattern view to the current play position.

The pattern view displays the different effects used in modules with different colors. Green is used for effects affecting the pitch of the sample, while blue command change the volume. Effects drawn in purple change the pan position. Red colors indicate the manipulition of the timeslice effected with this samples. Other effects are drawn white. Please have a look inside the online help h, ? or F1 for a complete reference on the effects shown.

Spectrum Analyzer
-----------------

The spectrum analyzer uses the fast fourier transformation to gather information on the audio spectrum used in sample data. The analyzer is started with a. This function splits the sound data into many bands of pure sine waves. This is called the spectrum of the sample.

The status bar of this function shows you the range each bar covers and the highest frequency processed (the rightmost bar corresbonds to this frequency).  Use Pgup, Pgdown to change the range. Home will set the default value of 2756Hz. (The highest possible frequency is half the output frequency (22KHz when playing at 44Khz).)

With ALT+a the mode of the spectrum function can be toggled.  Stereo using two analyzers, mono using only one and a single mode are available.  In the single mode the currently selected channel is used as sound source for the analyzer.

Tab changes the color used for the analyzer.

     To get a smooth view the default charset of the graphics
     adapter is modified. This is working fine with every graphics card
     under MS-DOS. However Windows95 does not allow the manipulition of
     characters, so the spectrum analyzer function is not shown properly
     when running under Windows95 (window-mode only). If you see a
     distorted screen while using the spectrum analyzer function this is
     normal.

peak power levels
-----------------

This function shows the current physical volume of the output channels in a bar graph. You can use v to make this function visible - invisible.  In the 132 column mode the levels can also be shown at the right side of the screen.

Volume control
--------------

You can browse through the different items with Up and Down. If you want to change a value, try Left and Right. You can also toggle between a short mode, a long mode (only in 132 column modes) and invisible mode with m (Volume control is disabled in 80 column modes and enabled in 132 column modes by default).

Module message
--------------

Some file types store messages which can be viewed with ALT+F9 like in Multi Tracker. If the message is long use Pgup, Pgdown to scroll.

eXtended mode
-------------

All four text mode functions can be displayed simultaneously. This function enables channel, instrument, spectrum analyzer, pattern view and volume control function with a good preset in text mode. x will enable 132 column mode. ALT+x will switch to the default 80x25 mode with channel and instrument functions enabled. (If your VESA bios does not support 132 columns a 80x50 mode is used.)

Graphic mode functions
======================

The default graphics mode is 640x480x256. Only one graphics mode function can be shown at once. The screen therefore splits into the general window at the top side showing the usual informatin and the function window covering the rest of the screen.

If you have included a background picture in the ocp.ini it will be shown in the graphics modes (expect the graphical spectrum analyzer).

Oscilloscopes
-------------

The oscilloscopes are started with o and come in 4 different modes: logical (the channels are sorted with the default panning position), physical (channels 1 to n from top to bottom), master (the mixed output channel(s)) and single (the currently selected channel is shown).

By pressing Tab you can enable/disable triggering of the scopes. If the output is triggered a wave on the screen always starts with the upper halvwave. If triggering is turned off the wave will be drawn from the current position.

The scale of the scopes can be altered with Pgup, Pgdown.

Note dots
---------

n starts the note dots function. Each channel is displayed on a horizontal row. The current note is represented by a dot or bar. Low notes are placed on the left side. High notes appear on the right side of the screen. By pressing Pgup, Pgdown the scale of the rows can be changed. However the default scale fits the usual note scale of modules exactly, so there should be no need to change.

By pressing n you can alter the output appearance of the dots. In the modes stereo note cones and stereo note dots the current pan position is indicated by the left / right half of the icon.

Graphical Spectrum Analyzer
---------------------------

The graphical spectrum function works in two video modes. By pressing g you will see the standard 640x480 mode. SHIFT+g will start the spectrum in 1024x768 mode. Apart from this difference the two video modes are equal.

Pressing g more than once toggles between the usual stereo, mono and single channel mode for calculating and showing the spectrum. Pgup and Pgdown adjust the frequency range. Home will set the frequency to 2756Hz. To half the resolution (and yet speed up the calculation) press ALT+g.

Tab change the palette of the graphical spectrum. SHIFT+Tab do the same for the standard spectrum analyzer at the bottom.

     If you have difficulties interpreting this function here is a
     short explanation.  The standard spectrum analyzer at the bottom shows
     you the frequency spectrum at the current moment. The higher a single
     bar, the louder the frequency. Now imagine looking at this spectrum
     from top, now every bar becomes a single dot.  The height of the bar
     is now coded into different colors (from black leftrightarrow low
     to yellow leftrightarrow high). Now we can draw these point along
     the screen and see the spectrum as is progresses over time. This is
     somewhat a ``3D'' view of the spectrum, with the frequency coded along
     the y-axis, intensity coded in different colors and the time along the
     x-axis.

Phase graphs
------------

The last graphical function is started with b. You can toggle between four modes which correspond exactly to those in the oscilloscope mode. This function displays the currently played samples in a phase graph. One full wave of the sample is drawn over the complete angle of a circle. The louder the sample the greater the radius of the circle. A sine sample would respond to a normal circle.

Wurfel mode
-----------

With w the wurfel mode is enabled. It's only purpose is to display an animation located in the home directory of OCP. The Tab key will change the play direction.

     To save
     diskspace no animations are included in the distribution of OCP.  They
     can be found on the OCP homepage (page http://www.cubic.org/player).
     Animations can be generated with the wap program from bitmap
     files. (See appendix see wap.)

Using the diskwriter
====================

OCP can write all sound output directly to hard disk. Data is written in standard .wav format. You can use this feature to burn audio cds from any sound format supported by OCP.

Although you can write .wav files in every possible sample format you should not alter the default of 44100KHz, 16bit, stereo. You should disable module looping so each module is written once onto harddisk. You can disable looping in the ocp.ini with the directive loop=on in the see fileselector section. You can also change looping temporarily with the fileselector configuration while OCP is running. See the fileselector advance usage see Advanced usage for details.

To enable the diskwriter device you can change the ocp.ini file and select the devpDisk as default device by moving it to the start of the see playerdevices directive in the see [sound] section. You can also select the devpDisk device temporarily by selecting the setup:/DEVICES/DEVPDISK.DEV device.

Now simply start OCP and select a module to play. You will hear no output and notice that the module is played with maximum speed (depending on your cpu power). In the directory where you have started OCP (not necessaryly the directory where the module is located) subsequent .wav files named CPOUT000.WAV, CPOUT001.WAV will be created.

Using the Compo mode
====================

If you enable the Compo mode in the ocp.ini file all title and instrument string from modules will not be displayed.

MIDI files
==========

OCP is able to play MIDI files. However there is a certain problem. Unlike the other file formats MIDI does not store the sample information needed to produce a sound output. The midi file only contains which instrument out of a set of 127 (a set of drums is defined aswell) should play which note at a given time. This is the reason why .MID files are much smaller than other file types.

This has of course some disadvantages. To hear a MIDI file you need to have some information how to play the used instruments. Back in the old days the OPL2 sound chip which was present on the SoundBlaster cards was used to play the midi instruments. Most people find the sound capabilites of the OPL series rather limited and midi files were no big deal back then.

Things changed when so called wavetable cards became popular. Those card have sample data stored onboard in a ROM plus a hardware mixer capable of mixing several midi channels. The MPU-401 interface from Roland is the de facto standard for accessing those cards, but this feature is not supported by OCP yet. (however this might change in the near future) A disadvantage is that those wavetable cards only have a very limited memory for sample data typically 4MB. If you imagine 127 instruments and 64 drums fitting into just 4MB you can guess what sound quality these cards have. Modern cards have normally much more onboard ROM/RAM, but in our opinion even 32MB are far too less for a good sound quality.

OCP goes a different way. Instead of using the onboard ROM samples, the samples needed for a specific .MID file are loaded on demand from the harddisk into main memory and then processed by either the hardware mixer (if you have such a card and the samples fit into its memory) or by the software mixers. This has the advantage that you can easily change a single instrument, if you don't like the default sound.

The instruments are stored in so called GUS-patches, a file format introduced by Gravis with their UltraSound cards. At first you have to get a complete patch set. If you own a GUS classic or GUS max you will probably have those files already on your harddisk. All instruments are stored in files ending with .PAT.

The original GUS patches are found on Advanced Gravis ftp server: ftp://ftp.gravis.com/Public/Sound/Patches

However I recommend looking at the following patch set: http://www.stardate.bc.ca/eawpatches/html/default.htm

If you unpack any of those archives to a folder on your harddrive, you have to adjust the path in the ocp.ini file. The configuratoin directive

     ultradir=/usr/share/ultradir  ; path to ULTRASND.INI

should be set to the folder where you extracted the patch files. Please check that a file called ULTRASND.INI is located in this folder, as OCP needs this file, to load the patch files.

Mixer
-----

If your computer is too slow to play with proper speed remember that the new Float Mixer is the default device used by OCP when dealing with software mixing. If you enable the Normal Mixer you will gain a good speed up of your system.

Look in the see [sound] section of your ocp.ini file for the following line:

     wavetabledevices=devwMixF devwMixQ (...) devwMix devwNone

The leftmost device is used as default. So change the line to the following to enable the Normal Mixer:

     wavetabledevices=devwMix devwMixF (...) devwNone

If you don't understand all this right now, read chapter see ocp.ini on how to configure OCP.

Interpolation
-------------

If the player still runs to slow you can disable the use of interpolation with software mixing. Look for the following line in the see [sound] section of the configuration file:

     filter=1

and change it to:

     filter=0

Now the use of interpolation is disabled. You can enable the filters again in the player with backspace.

still to slow?
--------------

If you applied the above 4 tips and OCP is still running too slow, there's hardly anything left to tune. Remember that graphic modes are generally slower than text modes. And in text mode the analyzer uses most ressources. If you only display channels, instruments and track list there's almost no cpu consumption by visuals.

If the player is still too slow your last chance is to lower the mixing / playing rate of the player. Locate the following line in the see [sound] section of ocp.ini:

     mixrate=44100

Use the table mixingrate as a guideline to set this value.

mixingrate
----------

44100   CD Quality
33000   very close to CD
22050   Radio Quality
11025   Telefon Quality
8000
.au Quality

While applying those patches please remember that modules with more channels will always need more cpu power than those with few. If your Impulse Tracker modules (.it) always click and pop while old Amiga modules (.mod) play fine that's normal, because the modern trackers allow more than 4 channels.

Key Reference
=============

ESC

quit the player

F1

help

F2, F3

volume up/down

CTRL+{F2, F3}

change amplification

ALT+F2

save current configuration

ALT+F3

load previously saved configuration

F4

surround on/off

ALT+F4

load default configuration

F5, F6

change panning

CTRL+{F5, F6}

adjust reverb

F7, F8

change balance

CTRL+{F7, F8}

adjust chorus

F9, F10

change speed

ALT+F9

song message

F11, F12

change pitch

F11

toggle between 6581 and 8580 (sidplayer only)

F12

toggle between PAL and NTSC (sidplayer only)

CTRL+F12

(un)lock speed and pitch

1..0

solo channel 1..10

ALT+1..0

solo channel 11..20

CTRL+1..0

solo channel 21..30

a

textmode spectrum analyzer

ALT+a

toggle analyzer mode

b

phase graphs

c

channel mode

d

goto DOS

f

goto fileselector

g

graphic spectrum analyzer

SHIFT+g

graphic spectrum analyzer in 1024x768

ALT+g

toggle fast/fine algorithm

h

help

i

instrument mode

CTRL+i

instrument mode colors on/off

ALT+i

remove played dots

CTRL+j

same as Enter

CTRL+l

song looping on/off

ALT+l

pattern looping on/off

m

volume control

CTRL+m

same as Enter

n

note dots

o

oscilloscopes mode

ALT+o

behaves like Tab in this mode

p

pause

ALT+p

pause screen

q

quiet current channel

s

solo current channel

t

track/pattern mode

v

peak power level mode

w

wurfel mode

x

eXtended mode

ALT+x

normal mode

z

toggle between 25/50 or 30/60 rows

CTRL+z

change between 25/50 and 30/60 rows

ALT+z

change between 80 and 132 column mode

Enter

play next song in playlist

Space

stop pattern mode flow

Pause

pause screen output

Backspace

toggle filter

Tab

change option of the activated mode

'

link view

,, .

fine panning

+, -

fine volume

*, /

fine balance

Right, Left, Up, Down

change current channel

CTRL+Right

skip the current pattern

CTRL+Left

restart current pattern / goto previous pattern

CTRL+Down

skip 8 rows

CTRL+Up

skip -8 rows

Ins

goto fileselector

Pgup, Pgdown

scroll in current window

CTRL+{Pgup, Pgdown}

scroll in instruments window (eXtended mode)

Home, End

goto top/bottom of current window

CTRL+Home

restart song