# libkmid Library API Documentation

Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Source Files

# MidiMapper Class Reference

A Midi Mapper class which defines the way MIDI events are translated (or "mapped") to different ones. Midi Mapper. More...

`#include <midimapper.h>`

List of all members.

## Public Member Functions

| MidiMapper (const char *name)
| Constructor.
| ~MidiMapper ()
| Destructor.
void | loadFile (const char *name)
| Loads a MIDI Mapper definition file (you don't need to use this if you used a correct filename in constructor).
int | ok (void)
| Returns the status of the object.
uchar | channel (uchar chn)
| Returns the channel which chn should be mapped to.
uchar | patch (uchar chn, uchar pgm)
| Returns the patch which pgm used on channel chn should be mapped to.
uchar | key (uchar chn, uchar pgm, uchar note)
| Returns the key that key note playing a pgm patch on channel chn should be mapped to.
void | pitchBender (uchar chn, uchar &lsb, uchar &msb)
| Returns the value which the pitch bender on channel chn should be mapped to.
void | controller (uchar chn, uchar &ctl, uchar &v)
| Returns the value which a given controller and its value should be mapped to when played on channel chn.
const char * | filename (void)
| Returns the path and name of the file which the object loaded the mapper from.

## Detailed Description

A Midi Mapper class which defines the way MIDI events are translated (or "mapped") to different ones. Midi Mapper.

This way, when two MIDI devices "talk" in a somehow different way, they can still communicate.

When the user has an external keyboard that is not compatible with the General Midi standard, he can use a MIDI mapper file to play files as if the synthesizer was GM compatible.

Please see the KMid documentation ( http://www.arrakis.es/~rlarrosa/kmid.html ) for information on the format of a MIDI mapper definition file, and how they work.

I created this class because I had one of those non-GM keyboards, so it can do everything I needed it to do for my keyboard to work exactly as a GM synth, and a few more things. Currently, it's the most featured MIDI mapper available.

The usage of this class is quite simple, just create an object with a correct filename in the constructor and then use this object as parameter for DeviceManager::setMidiMap().

Version:
  0.9.5 17/01/2000

Author:
  Antonio Larrosa Jimenez <larrosa@kde.org>

Definition at line 58 of file midimapper.h.

## Constructor & Destructor Documentation

MidiMapper::MidiMapper | ( | const char * | name | ) |

Constructor.

Loads a MIDI Mapper definition from a file.

See also:
  filename()

Definition at line 34 of file midimapper.cc.

References loadFile(), and KStdAccel::name().

MidiMapper::~MidiMapper | ( |  | ) |

| Destructor. Definition at line 56 of file midimapper.cc.

## Member Function Documentation

void MidiMapper::loadFile | ( | const char * | name | ) |

| Loads a MIDI Mapper definition file (you don't need to use this if you used a correct filename in constructor). Definition at line 143 of file midimapper.cc. References KStdAccel::name(). Referenced by MidiMapper().

int MidiMapper::ok | ( | void |  | ) | `[inline]`

| Returns the status of the object. Definition at line 171 of file midimapper.h.

uchar MidiMapper::channel | ( | uchar | chn | ) | `[inline]`

Returns the channel which chn should be mapped to.

Definition at line 176 of file midimapper.h.

Referenced by SynthOut::chnController(), MidiOut::chnController(), AlsaOut::chnController(), SynthOut::chnPatchChange(), MidiOut::chnPatchChange(), AlsaOut::chnPatchChange(), SynthOut::chnPitchBender(), MidiOut::chnPitchBender(), AlsaOut::chnPitchBender(), SynthOut::chnPressure(), MidiOut::chnPressure(), AlsaOut::chnPressure(), SynthOut::keyPressure(), MidiOut::keyPressure(), AlsaOut::keyPressure(), SynthOut::noteOff(), MidiOut::noteOff(), AlsaOut::noteOff(), SynthOut::noteOn(), MidiOut::noteOn(), and AlsaOut::noteOn().

uchar MidiMapper::patch | ( | uchar | chn,
|  | uchar | pgm
| ) |

| Returns the patch which pgm used on channel chn should be mapped to. Definition at line 431 of file midimapper.cc. Referenced by SynthOut::chnPatchChange(), MidiOut::chnPatchChange(), GUSOut::chnPatchChange(), FMOut::chnPatchChange(), AlsaOut::chnPatchChange(), GUSOut::noteOn(), and FMOut::noteOn().

uchar MidiMapper::key | ( | uchar | chn,
|  | uchar | pgm,
|  | uchar | note
| ) |

| Returns the key that key note playing a pgm patch on channel chn should be mapped to. Definition at line 423 of file midimapper.cc. Referenced by SynthOut::keyPressure(), MidiOut::keyPressure(), AlsaOut::keyPressure(), SynthOut::noteOff(), MidiOut::noteOff(), AlsaOut::noteOff(), SynthOut::noteOn(), MidiOut::noteOn(), and AlsaOut::noteOn().

void MidiMapper::pitchBender | ( | uchar | chn,
|  | uchar & | lsb,
|  | uchar & | msb
| ) |

| Returns the value which the pitch bender on channel chn should be mapped to. Definition at line 437 of file midimapper.cc. Referenced by MidiOut::chnPitchBender(), and AlsaOut::chnPitchBender().

void MidiMapper::controller | ( | uchar | chn,
|  | uchar & | ctl,
|  | uchar & | v
| ) |

| Returns the value which a given controller and its value should be mapped to when played on channel chn. Definition at line 453 of file midimapper.cc. Referenced by MidiOut::chnController(), and AlsaOut::chnController().

const char * MidiMapper::filename | ( | void |  | ) |

| Returns the path and name of the file which the object loaded the mapper from. Definition at line 418 of file midimapper.cc. Referenced by MidiOut::midiMapFilename().

The documentation for this class was generated from the following files:

- midimapper.h
- midimapper.cc

This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 13:28:38 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001