|
|
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 |
This is the /dev/sequencer file handler. Remember _not_to_close_ it on MidiOut, but just on DeviceManager
| int ndevs |
Total number of devices.
| int nmidiports |
Total number of midi ports
| double convertrate |
A "constant" used to convert from milliseconds to the computer rate
| MidiOut (int d=0) |
Constructor. After constructing a MidiOut device, you must open it (using openDev() ). Additionally you may want to initialize it (with initDev() ),
| ~MidiOut () |
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) |
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:
| sqfd | a file descriptor of /dev/sequencer |
| void closeDev () |
Closes the device. It basically tells the device (the file descriptor) is going to be closed.
See also: openDev
| void initDev () |
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 () |
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) |
Returns the name and type of this MIDI device.
See also: deviceType
| int rate (void) |
| void setMidiMapper ( MidiMapper *map ) |
Sets a MidiMapper object to be used to modify the midi events before sending them.
Parameters:
| map | the MidiMapper to use. |
See also: MidiMapper, midiMapFilename
| void noteOn ( uchar chn, uchar note, uchar vel ) |
See DeviceManager::noteOn()
| void noteOff ( uchar chn, uchar note, uchar vel ) |
See DeviceManager::noteOff()
| void keyPressure ( uchar chn, uchar note, uchar vel ) |
See DeviceManager::keyPressure()
| void chnPatchChange ( uchar chn, uchar patch ) |
See DeviceManager::chnPatchChange()
| void chnPressure ( uchar chn, uchar vel ) |
See DeviceManager::chnPressure()
| void chnPitchBender ( uchar chn, uchar lsb, uchar msb ) |
See DeviceManager::chnPitchBender()
| void chnController ( uchar chn, uchar ctl , uchar v ) |
See DeviceManager::chnController()
| void sysex ( uchar *data,ulong size) |
See DeviceManager::sysex()
| void channelSilence ( uchar chn ) |
Mutes all notes being played on a given channel.
| void channelMute ( uchar chn, int a ) |
Mute or "unmute" a given channel .
Parameters:
| chn | channel to work on |
| b | if 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 ) |
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:
| volper | is 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) |
Returns true if everything's ok and false if there has been any problem
| void sync (int i=0) |
If i==1 syncronizes by cleaning the buffer instead of sending it (in fact, this is what syncronizing really means :-) )
| char * 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.