class MidiOut

Sends MIDI events to external MIDI devices. More...

Definition#include <midiout.h>
Inherited byAlsaOut, FMOut, GUSOut, SynthOut
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Methods

Protected Methods

Protected Members


Detailed Description

External MIDI port output class . This class is used to send midi events to external midi devices.

MidiOut is inherited by other MIDI devices classes (like SynthOut or FMOut) to support a common API.

In general, you don't want to use MidiOut directly, but within a DeviceManager object, which is the preferred way to generate music.

If you want to add support for other devices (I don't think there are any) you just have to create a class that inherits from MidiOut and create one object of your new class in DeviceManager::initManager().

int seqfd

seqfd

[protected]

int device

device

[protected]

int devicetype

devicetype

[protected]

int volumepercentage

volumepercentage

[protected]

MidiMapper * map

map

[protected]

uchar chnpatch [16]

chnpatch [16]

[protected]

int chnbender [16]

chnbender [16]

[protected]

uchar chnpressure [16]

chnpressure [16]

[protected]

uchar chncontroller [16][256]

chncontroller [16][256]

[protected]

int chnmute [16]

chnmute [16]

[protected]

int _ok

_ok

[protected]

void  seqbuf_dump (void)

seqbuf_dump

[protected]

This is the /dev/sequencer file handler. Remember _not_to_close_ it on MidiOut, but just on DeviceManager

void  seqbuf_clean (void)

seqbuf_clean

[protected]

 MidiOut (int d=0)

MidiOut

Constructor. After constructing a MidiOut device, you must open it (using openDev() ). Additionally you may want to initialize it (with initDev() ),

 ~MidiOut ()

~MidiOut

[virtual]

Destructor. It doesn't matter if you close the device (closeDev() ) before you destruct the object because in other case, it will be closed here.

void  openDev (int sqfd)

openDev

[virtual]

Opens the device. This is generally called from DeviceManager , so you shouldn't call this yourself (except if you created the MidiOut object yourself.

Parameters:
sqfda file descriptor of /dev/sequencer

See also: closeDev, initDev

void  closeDev ()

closeDev

[virtual]

Closes the device. It basically tells the device (the file descriptor) is going to be closed.

See also: openDev

void  initDev ()

initDev

[virtual]

Initializes the device sending generic standard midi events and controllers, such as changing the patches of each channel to an Acoustic Piano (000), setting the volume to a normal value, etc.

int  deviceType ()

deviceType

[const]

which are defined in midispec.h

Returns: the device type of the object. This is to identify the inherited class that a given object is polymorphed to. The returned value is one of these :

See also: deviceName

const char *  deviceName (void)

deviceName

[const]

Returns the name and type of this MIDI device.

See also: deviceType

void  setMidiMapper ( MidiMapper *map )

setMidiMapper

Sets a MidiMapper object to be used to modify the midi events before sending them.

Parameters:
mapthe MidiMapper to use.

See also: MidiMapper, midiMapFilename

void  noteOn ( uchar chn, uchar note, uchar vel )

noteOn

[virtual]

See DeviceManager::noteOn()

void  noteOff ( uchar chn, uchar note, uchar vel )

noteOff

[virtual]

See DeviceManager::noteOff()

void  keyPressure ( uchar chn, uchar note, uchar vel )

keyPressure

[virtual]

See DeviceManager::keyPressure()

void  chnPatchChange ( uchar chn, uchar patch )

chnPatchChange

[virtual]

See DeviceManager::chnPatchChange()

void  chnPressure ( uchar chn, uchar vel )

chnPressure

[virtual]

See DeviceManager::chnPressure()

void  chnPitchBender ( uchar chn, uchar lsb, uchar msb )

chnPitchBender

[virtual]

See DeviceManager::chnPitchBender()

void  chnController ( uchar chn, uchar ctl , uchar v )

chnController

[virtual]

See DeviceManager::chnController()

void  sysex ( uchar *data,ulong size)

sysex

[virtual]

See DeviceManager::sysex()

void  allNotesOff (void)

allNotesOff

Send a All Notes Off event to every channel

void  channelSilence ( uchar chn )

channelSilence

[virtual]

Mutes all notes being played on a given channel.

void  channelMute ( uchar chn, int a )

channelMute

[virtual]

Mute or "unmute" a given channel .

Parameters:
chnchannel to work on
bif true, the device will ignore subsequent notes played on the chn channel, and mute all notes being played on it. If b is false, the channel is back to work.

void  setVolumePercentage ( int volper )

setVolumePercentage

[virtual]

Change all channel volume events multiplying it by this percentage correction Instead of forcing a channel to a fixed volume, this method allows to music to fade out even when it was being played softly.

Parameters:
volperis an integer value, where 0 is quiet, 100 is used to send an unmodified value, 200 play music twice louder than it should, etc.

int  ok (void)

ok

Returns true if everything's ok and false if there has been any problem

const char * midiMapFilename ()

midiMapFilename

Returns the path to the file where the current used MidiMapper object reads the configuration from, or an empty string if there's no MidiMapper.

void  sync (int i=0)

sync

Sends the buffer to the device and returns when it's played, so you can synchronize XXX: sync should be virtual after next bic release