libopenmpt  0.6.0-pre.15+r16050
cross-platform C++ and C library to decode tracked music files
openmpt::ext::interactive Class Referenceabstract

#include <libopenmpt/libopenmpt_ext.hpp>

Public Member Functions

virtual void set_current_speed (std::int32_t speed)=0
 Set the current ticks per row (speed) More...
 
virtual void set_current_tempo (std::int32_t tempo)=0
 Set the current module tempo. More...
 
virtual void set_tempo_factor (double factor)=0
 Set the current module tempo factor without affecting playback pitch. More...
 
virtual double get_tempo_factor () const =0
 Gets the current module tempo factor. More...
 
virtual void set_pitch_factor (double factor)=0
 Set the current module pitch factor without affecting playback speed. More...
 
virtual double get_pitch_factor () const =0
 Gets the current module pitch factor. More...
 
virtual void set_global_volume (double volume)=0
 Set the current global volume. More...
 
virtual double get_global_volume () const =0
 Get the current global volume. More...
 
virtual void set_channel_volume (std::int32_t channel, double volume)=0
 Set the current channel volume for a channel. More...
 
virtual double get_channel_volume (std::int32_t channel) const =0
 Get the current channel volume for a channel. More...
 
virtual void set_channel_mute_status (std::int32_t channel, bool mute)=0
 Set the current mute status for a channel. More...
 
virtual bool get_channel_mute_status (std::int32_t channel) const =0
 Get the current mute status for a channel. More...
 
virtual void set_instrument_mute_status (std::int32_t instrument, bool mute)=0
 Set the current mute status for an instrument. More...
 
virtual bool get_instrument_mute_status (std::int32_t instrument) const =0
 Get the current mute status for an instrument. More...
 
virtual std::int32_t play_note (std::int32_t instrument, std::int32_t note, double volume, double panning)=0
 Play a note using the specified instrument. More...
 
virtual void stop_note (std::int32_t channel)=0
 Stop the note playing on the specified channel. More...
 
virtual void note_off (int32_t channel)=0
 Sends a key-off command for the note playing on the specified channel. More...
 
virtual void note_fade (int32_t channel)=0
 Sends a note fade command for the note playing on the specified channel. More...
 
virtual void set_channel_panning (int32_t channel, double panning)=0
 Set the current panning for a channel. More...
 
virtual double get_channel_panning (int32_t channel)=0
 Get the current panning position for a channel. More...
 

Protected Member Functions

 interactive ()
 
virtual ~ interactive ()
 

Constructor & Destructor Documentation

◆ interactive()

openmpt::ext::interactive::interactive ( )
inlineprotected

◆ ~ interactive()

virtual openmpt::ext::interactive::~ interactive ( )
inlineprotectedvirtual

Member Function Documentation

◆ get_channel_mute_status()

virtual bool openmpt::ext::interactive::get_channel_mute_status ( std::int32_t  channel) const
pure virtual

Get the current mute status for a channel.

Parameters
channelThe channel whose mute status should be retrieved, in range [0, openmpt::module::get_num_channels()[
Returns
The current channel mute status. true is muted, false is unmuted.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the channel is outside the specified range.
See also
openmpt::ext::interactive::set_channel_mute_status

◆ get_channel_panning()

virtual double openmpt::ext::interactive::get_channel_panning ( int32_t  channel)
pure virtual

Get the current panning position for a channel.

Parameters
channelThe channel whose panning should be retrieved, in range [0, openmpt::module::get_num_channels()[
Returns
The current channel panning, in range [-1.0, 1.0], 0.0 is center.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the channel is outside the specified range.
See also
openmpt::ext::interactive::set_channel_panning

◆ get_channel_volume()

virtual double openmpt::ext::interactive::get_channel_volume ( std::int32_t  channel) const
pure virtual

Get the current channel volume for a channel.

Parameters
channelThe channel whose volume should be retrieved, in range [0, openmpt::module::get_num_channels()[
Returns
The current channel volume in range [0.0, 1.0]
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the channel is outside the specified range.
See also
openmpt::ext::interactive::set_channel_volume

◆ get_global_volume()

virtual double openmpt::ext::interactive::get_global_volume ( ) const
pure virtual

Get the current global volume.

Returns
The current global volume in range [0.0, 1.0]
See also
openmpt::ext::interactive::set_global_volume

◆ get_instrument_mute_status()

virtual bool openmpt::ext::interactive::get_instrument_mute_status ( std::int32_t  instrument) const
pure virtual

Get the current mute status for an instrument.

Parameters
instrumentThe instrument whose mute status should be retrieved, in range [0, openmpt::module::get_num_instruments()[ if openmpt::module::get_num_instruments is not 0, otherwise in [0, openmpt::module::get_num_samples()[
Returns
The current instrument mute status. true is muted, false is unmuted.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the instrument is outside the specified range.
See also
openmpt::ext::interactive::set_instrument_mute_status

◆ get_pitch_factor()

virtual double openmpt::ext::interactive::get_pitch_factor ( ) const
pure virtual

Gets the current module pitch factor.

Returns
The current pitch factor.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the pitch is outside the specified range.
See also
openmpt::ext::interactive::set_pitch_factor

◆ get_tempo_factor()

virtual double openmpt::ext::interactive::get_tempo_factor ( ) const
pure virtual

Gets the current module tempo factor.

Returns
The current tempo factor.
See also
openmpt::ext::interactive::set_tempo_factor

◆ note_fade()

virtual void openmpt::ext::interactive::note_fade ( int32_t  channel)
pure virtual

Sends a note fade command for the note playing on the specified channel.

Parameters
channelThe channel on which the note should be faded. This is the value returned by a previous play_note call.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the channel index is invalid.
Remarks
This method uses the instrument's fade-out value. If the module does not use instruments, or the instrument's fade-out value is 0, it does nothing.
See also
openmpt::ext::interactive::play_note
openmpt::ext::interactive::stop_note
openmpt::ext::interactive::note_off

◆ note_off()

virtual void openmpt::ext::interactive::note_off ( int32_t  channel)
pure virtual

Sends a key-off command for the note playing on the specified channel.

Parameters
channelThe channel on which the key-off event should be triggered. This is the value returned by a previous play_note call.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the channel index is invalid.
Remarks
This method releases envelopes and sample sustain loops. If the sample has no sustain loop, or if the module does not use instruments, it does nothing.
See also
openmpt::ext::interactive::play_note
openmpt::ext::interactive::stop_note
openmpt::ext::interactive::note_fade

◆ play_note()

virtual std::int32_t openmpt::ext::interactive::play_note ( std::int32_t  instrument,
std::int32_t  note,
double  volume,
double  panning 
)
pure virtual

Play a note using the specified instrument.

Parameters
instrumentThe instrument that should be played, in range [0, openmpt::module::get_num_instruments()[ if openmpt::module::get_num_instruments is not 0, otherwise in [0, openmpt::module::get_num_samples()[
noteThe note to play, in rage [0, 119]. 60 is the middle C.
volumeThe volume at which the note should be triggered, in range [0.0, 1.0]
panningThe panning position at which the note should be triggered, in range [-1.0, 1.0], 0.0 is center.
Returns
The channel on which the note is played. This can pe be passed to openmpt::ext::interactive::stop_note to stop the note.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the instrument or note is outside the specified range.
See also
openmpt::ext::interactive::stop_note
openmpt::ext::interactive::note_off
openmpt::ext::interactive::note_fade

◆ set_channel_mute_status()

virtual void openmpt::ext::interactive::set_channel_mute_status ( std::int32_t  channel,
bool  mute 
)
pure virtual

Set the current mute status for a channel.

Parameters
channelThe channel whose mute status should be set, in range [0, openmpt::module::get_num_channels()[
muteThe new mute status. true is muted, false is unmuted.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the channel is outside the specified range.
See also
openmpt::ext::interactive::get_channel_mute_status

◆ set_channel_panning()

virtual void openmpt::ext::interactive::set_channel_panning ( int32_t  channel,
double  panning 
)
pure virtual

Set the current panning for a channel.

Parameters
channelThe channel whose panning will be changed, in range [0, openmpt::module::get_num_channels()[
panningThe panning position to set on the channel, in range [-1.0, 1.0], 0.0 is center.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the channel index is invalid.
Remarks
This command affects subsequent notes played on the same channel, and may itself be overridden by subsequent panning commands encountered in the module itself.
See also
openmpt::ext::interactive::get_channel_panning

◆ set_channel_volume()

virtual void openmpt::ext::interactive::set_channel_volume ( std::int32_t  channel,
double  volume 
)
pure virtual

Set the current channel volume for a channel.

Parameters
channelThe channel whose volume should be set, in range [0, openmpt::module::get_num_channels()[
volumeThe new channel volume in range [0.0, 1.0]
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the channel or volume is outside the specified range.
Remarks
The channel volume may be reset by pattern commands at any time.
See also
openmpt::ext::interactive::get_channel_volume

◆ set_current_speed()

virtual void openmpt::ext::interactive::set_current_speed ( std::int32_t  speed)
pure virtual

Set the current ticks per row (speed)

Parameters
speedThe new tick count in range [1, 65535].
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the speed is outside the specified range.
Remarks
The tick count may be reset by pattern commands at any time.
See also
openmpt::module::get_current_speed

◆ set_current_tempo()

virtual void openmpt::ext::interactive::set_current_tempo ( std::int32_t  tempo)
pure virtual

Set the current module tempo.

Parameters
tempoThe new tempo in range [32, 512]. The exact meaning of the value depends on the tempo mode used by the module.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the tempo is outside the specified range.
Remarks
The tempo may be reset by pattern commands at any time. Use openmpt::ext:interactive::set_tempo_factor to apply a tempo factor that is independent of pattern commands.
See also
openmpt::module::get_current_tempo

◆ set_global_volume()

virtual void openmpt::ext::interactive::set_global_volume ( double  volume)
pure virtual

Set the current global volume.

Parameters
volumeThe new global volume in range [0.0, 1.0]
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the volume is outside the specified range.
Remarks
The global volume may be reset by pattern commands at any time. Use openmpt::module::set_render_param to apply a global overall volume factor that is independent of pattern commands.
See also
openmpt::ext::interactive::get_global_volume

◆ set_instrument_mute_status()

virtual void openmpt::ext::interactive::set_instrument_mute_status ( std::int32_t  instrument,
bool  mute 
)
pure virtual

Set the current mute status for an instrument.

Parameters
instrumentThe instrument whose mute status should be set, in range [0, openmpt::module::get_num_instruments()[ if openmpt::module::get_num_instruments is not 0, otherwise in [0, openmpt::module::get_num_samples()[
muteThe new mute status. true is muted, false is unmuted.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the instrument is outside the specified range.
See also
openmpt::ext::interactive::get_instrument_mute_status

◆ set_pitch_factor()

virtual void openmpt::ext::interactive::set_pitch_factor ( double  factor)
pure virtual

Set the current module pitch factor without affecting playback speed.

Parameters
factorThe new pitch factor in range ]0.0, 4.0] - 1.0 means unmodified pitch.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the factor is outside the specified range.
Remarks
Modifying the pitch without applying the the same tempo factor using openmpt::ext::interactive::set_tempo_factor may cause rhythmic samples (e.g. drum loops) to go out of sync.
To shift the pich by n semitones, the parameter can be calculated as follows: pow( 2.0, n / 12.0 )
See also
openmpt::ext::interactive::get_pitch_factor

◆ set_tempo_factor()

virtual void openmpt::ext::interactive::set_tempo_factor ( double  factor)
pure virtual

Set the current module tempo factor without affecting playback pitch.

Parameters
factorThe new tempo factor in range ]0.0, 4.0] - 1.0 means unmodified tempo.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the factor is outside the specified range.
Remarks
Modifying the tempo without applying the same pitch factor using openmpt::ext::interactive::set_pitch_factor may cause rhythmic samples (e.g. drum loops) to go out of sync.
See also
openmpt::ext::interactive::get_tempo_factor

◆ stop_note()

virtual void openmpt::ext::interactive::stop_note ( std::int32_t  channel)
pure virtual

Stop the note playing on the specified channel.

Parameters
channelThe channel on which the note should be stopped. This is the value returned by a previous play_note call.
Exceptions
openmpt::exceptionThrows an exception derived from openmpt::exception if the channel index is invalid.
See also
openmpt::ext::interactive::play_note
openmpt::ext::interactive::note_off
openmpt::ext::interactive::note_fade

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