NiCMidi 1.1.0
A MIDI library derived from J.D.Koftinoff jdksmidi
MIDISequencerTrackProcessor Class Reference

A multipurpose MIDIProcessor implementing muting, soloing, rechannelizing, velocity scaling and transposing. More...

#include <advancedsequencer.h>

Inheritance diagram for MIDISequencerTrackProcessor:
MIDIProcessor

Public Types

enum  { NO_SOLO , SOLOED , NOT_SOLOED }
 

Public Member Functions

 MIDISequencerTrackProcessor ()
 The constructor. Default is no processing (MIDI messages leave the processor unchanged). More...
 
virtual ~MIDISequencerTrackProcessor ()
 The destructor does nothing. More...
 
virtual void Reset ()
 Resets all values to default state (no processing at all). More...
 
void SetExternalProcessor (MIDIProcessor *proc)
 Sets the extra processor for the track. More...
 
virtual bool Process (MIDITimedMessage *msg)
 Processes message msg, changing its parameters according to the state of the processor. More...
 
- Public Member Functions inherited from MIDIProcessor
 MIDIProcessor ()
 The constructor. More...
 
virtual ~MIDIProcessor ()
 The destructor. More...
 

Public Attributes

bool mute
 track is muted More...
 
int solo
 NO_SOLO, SOLOED, NOT_SOLOED. More...
 
unsigned int velocity_scale
 current velocity scale value for note ons, 100=normal More...
 
int rechannel
 rechannelization value, or -1 for none More...
 
int transpose
 amount to transpose note values More...
 
MIDIProcessorextra_proc
 extra midi processing for this track More...
 

Detailed Description

A multipurpose MIDIProcessor implementing muting, soloing, rechannelizing, velocity scaling and transposing.

Moreover, you can set a custom MIDIProcessor pointer which extra-processes messages. The AdvancedSequencer class contains an independent MIDISequencerTrackProcessor for every MIDI Track, and allow you to set muting, transposing etc. by dedicated methods without directly dealing with this: the only useful function for the user is probably the extra processing hook. However, you could subclass this if you want to get new features.

Constructor & Destructor Documentation

◆ MIDISequencerTrackProcessor()

MIDISequencerTrackProcessor::MIDISequencerTrackProcessor ( )

The constructor. Default is no processing (MIDI messages leave the processor unchanged).

◆ ~MIDISequencerTrackProcessor()

virtual MIDISequencerTrackProcessor::~MIDISequencerTrackProcessor ( )
inlinevirtual

The destructor does nothing.

Member Function Documentation

◆ Reset()

virtual void MIDISequencerTrackProcessor::Reset ( )
virtual

Resets all values to default state (no processing at all).

Implements MIDIProcessor.

◆ SetExternalProcessor()

void MIDISequencerTrackProcessor::SetExternalProcessor ( MIDIProcessor proc)
inline

Sets the extra processor for the track.

The user processing is done before all internal processing, and if the user Process() function returns false it is not done at all. If you want to eliminate an already set processor call this with 0 as parameter

◆ Process()

virtual bool MIDISequencerTrackProcessor::Process ( MIDITimedMessage msg)
virtual

Processes message msg, changing its parameters according to the state of the processor.

Implements MIDIProcessor.

Member Data Documentation

◆ mute

bool MIDISequencerTrackProcessor::mute

track is muted

◆ solo

int MIDISequencerTrackProcessor::solo

NO_SOLO, SOLOED, NOT_SOLOED.

◆ velocity_scale

unsigned int MIDISequencerTrackProcessor::velocity_scale

current velocity scale value for note ons, 100=normal

◆ rechannel

int MIDISequencerTrackProcessor::rechannel

rechannelization value, or -1 for none

◆ transpose

int MIDISequencerTrackProcessor::transpose

amount to transpose note values

◆ extra_proc

MIDIProcessor* MIDISequencerTrackProcessor::extra_proc

extra midi processing for this track


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