LMMS
Loading...
Searching...
No Matches
lmms::OpulenzInstrument Class Reference

#include <OpulenZ.h>

Inheritance diagram for lmms::OpulenzInstrument:
lmms::Instrument lmms::Plugin lmms::Model lmms::JournallingObject lmms::SerializingObject

Public Member Functions

 OpulenzInstrument (InstrumentTrack *_instrument_track)
 ~OpulenzInstrument () override
QString nodeName () const override
gui::PluginViewinstantiateView (QWidget *_parent) override
 Create a view for the model.
bool handleMidiEvent (const MidiEvent &event, const TimePos &time, f_cnt_t offset=0) override
void play (SampleFrame *_working_buffer) override
void saveSettings (QDomDocument &_doc, QDomElement &_this) override
void loadSettings (const QDomElement &_this) override
void loadPatch (const unsigned char inst[14])
void tuneEqual (int center, float Hz)
void loadFile (const QString &file) override
Public Member Functions inherited from lmms::Instrument
 Instrument (InstrumentTrack *_instrument_track, const Descriptor *_descriptor, const Descriptor::SubPluginFeatures::Key *key=nullptr, Flags flags=Flag::NoFlags)
 ~Instrument () override=default
virtual bool hasNoteInput () const
virtual void playNote (NotePlayHandle *, SampleFrame *)
virtual void deleteNotePluginData (NotePlayHandle *_note_to_play)
virtual f_cnt_t beatLen (NotePlayHandle *_n) const
virtual float desiredReleaseTimeMs () const
f_cnt_t desiredReleaseFrames () const
sample_rate_t getSampleRate () const
bool isSingleStreamed () const
bool isMidiBased () const
bool isBendable () const
QString fullDisplayName () const override
virtual bool isFromTrack (const Track *_track) const
InstrumentTrackinstrumentTrack () const
Public Member Functions inherited from lmms::Plugin
 Plugin (const Descriptor *descriptor, Model *parent, const Descriptor::SubPluginFeatures::Key *key=nullptr)
 ~Plugin () override=default
QString displayName () const override
 Return display-name out of sub plugin or descriptor.
const PixmapLoaderlogo () const
 Return logo out of sub plugin or descriptor.
Type type () const
 Return plugin type.
const Descriptordescriptor () const
 Return plugin Descriptor.
const Descriptor::SubPluginFeatures::Keykey () const
virtual AutomatableModelchildModel (const QString &modelName)
gui::PluginViewcreateView (QWidget *parent)
 Create a view for the model.
Public Member Functions inherited from lmms::Model
 Model (Model *parent, QString displayName=QString(), bool defaultConstructed=false)
 ~Model () override=default
bool isDefaultConstructed () const
ModelparentModel () const
virtual void setDisplayName (const QString &displayName)
Public Member Functions inherited from lmms::JournallingObject
 JournallingObject ()
 ~JournallingObject () override
jo_id_t id () const
void saveJournallingState (const bool newState)
void restoreJournallingState ()
void addJournalCheckPoint ()
QDomElement saveState (QDomDocument &_doc, QDomElement &_parent) override
void restoreState (const QDomElement &_this) override
bool isJournalling () const
void setJournalling (const bool _sr)
bool testAndSetJournalling (const bool newState)
bool isJournallingStateStackEmpty () const
Public Member Functions inherited from lmms::SerializingObject
 SerializingObject ()
virtual ~SerializingObject ()
void setHook (SerializingObjectHook *_hook)
SerializingObjectHookhook ()

Public Attributes

IntModel m_patchModel
FloatModel op1_a_mdl
FloatModel op1_d_mdl
FloatModel op1_s_mdl
FloatModel op1_r_mdl
FloatModel op1_lvl_mdl
FloatModel op1_scale_mdl
FloatModel op1_mul_mdl
FloatModel feedback_mdl
BoolModel op1_ksr_mdl
BoolModel op1_perc_mdl
BoolModel op1_trem_mdl
BoolModel op1_vib_mdl
BoolModel op1_w0_mdl
BoolModel op1_w1_mdl
BoolModel op1_w2_mdl
BoolModel op1_w3_mdl
IntModel op1_waveform_mdl
FloatModel op2_a_mdl
FloatModel op2_d_mdl
FloatModel op2_s_mdl
FloatModel op2_r_mdl
FloatModel op2_lvl_mdl
FloatModel op2_scale_mdl
FloatModel op2_mul_mdl
BoolModel op2_ksr_mdl
BoolModel op2_perc_mdl
BoolModel op2_trem_mdl
BoolModel op2_vib_mdl
BoolModel op2_w0_mdl
BoolModel op2_w1_mdl
BoolModel op2_w2_mdl
BoolModel op2_w3_mdl
IntModel op2_waveform_mdl
BoolModel fm_mdl
BoolModel vib_depth_mdl
BoolModel trem_depth_mdl

Private Slots

void updatePatch ()
void reloadEmulator ()
void loadGMPatch ()

Private Member Functions

int popVoice ()
int pushVoice (int v)
int Hz2fnum (float Hz)
void setVoiceVelocity (int voice, int vel)

Private Attributes

CopltheEmulator
QString storedname
f_cnt_t frameCount
short * renderbuffer
int voiceNote [OPL2_VOICES]
int voiceLRU [OPL2_VOICES]
int velocities [128]
int fnums [128]
int pitchbend
int pitchBendRange
int RPNcoarse
int RPNfine

Static Private Attributes

static QMutex emulatorMutex

Additional Inherited Members

Public Types inherited from lmms::Instrument
enum class  Flag { NoFlags = 0x00 , IsSingleStreamed = 0x01 , IsMidiBased = 0x02 , IsNotBendable = 0x04 }
using Flags = lmms::Flags<Flag>
Public Types inherited from lmms::Plugin
enum class  Type {
  Instrument , Effect , ImportFilter , ExportFilter ,
  Tool , Library , Other , Undefined = 255
}
using DescriptorList = QList<Descriptor*>
Signals inherited from lmms::Model
void dataChanged ()
void dataUnchanged ()
void propertiesChanged ()
Static Public Member Functions inherited from lmms::Instrument
static Instrumentinstantiate (const QString &_plugin_name, InstrumentTrack *_instrument_track, const Plugin::Descriptor::SubPluginFeatures::Key *key, bool keyFromDnd=false)
Static Public Member Functions inherited from lmms::Plugin
static PlugininstantiateWithKey (const QString &pluginName, Model *parent, const Descriptor::SubPluginFeatures::Key *key, bool keyFromDnd=false)
static Plugininstantiate (const QString &pluginName, Model *parent, void *data)
Protected Member Functions inherited from lmms::Instrument
void applyFadeIn (SampleFrame *buf, NotePlayHandle *n)
void applyRelease (SampleFrame *buf, const NotePlayHandle *_n)
float computeReleaseTimeMsByFrameCount (f_cnt_t frames) const
Protected Member Functions inherited from lmms::Plugin
void collectErrorForUI (QString errMsg)
Protected Member Functions inherited from lmms::JournallingObject
void changeID (jo_id_t _id)

Constructor & Destructor Documentation

◆ OpulenzInstrument()

lmms::OpulenzInstrument::OpulenzInstrument ( InstrumentTrack * _instrument_track)

◆ ~OpulenzInstrument()

lmms::OpulenzInstrument::~OpulenzInstrument ( )
override

Member Function Documentation

◆ handleMidiEvent()

bool lmms::OpulenzInstrument::handleMidiEvent ( const MidiEvent & event,
const TimePos & time,
f_cnt_t offset = 0 )
overridevirtual

Reimplemented from lmms::Instrument.

◆ Hz2fnum()

int lmms::OpulenzInstrument::Hz2fnum ( float Hz)
private

◆ instantiateView()

gui::PluginView * lmms::OpulenzInstrument::instantiateView ( QWidget * )
overridevirtual

Create a view for the model.

Implements lmms::Plugin.

◆ loadFile()

void lmms::OpulenzInstrument::loadFile ( const QString & file)
overridevirtual

Can be called if a file matching supportedFileTypes should be loaded/processed with the help of this plugin

Reimplemented from lmms::Plugin.

◆ loadGMPatch

void lmms::OpulenzInstrument::loadGMPatch ( )
privateslot

◆ loadPatch()

void lmms::OpulenzInstrument::loadPatch ( const unsigned char inst[14])

◆ loadSettings()

void lmms::OpulenzInstrument::loadSettings ( const QDomElement & _this)
overridevirtual

◆ nodeName()

QString lmms::OpulenzInstrument::nodeName ( void ) const
overridevirtual

◆ play()

void lmms::OpulenzInstrument::play ( SampleFrame * _working_buffer)
overridevirtual

Reimplemented from lmms::Instrument.

◆ popVoice()

int lmms::OpulenzInstrument::popVoice ( )
private

◆ pushVoice()

int lmms::OpulenzInstrument::pushVoice ( int v)
private

◆ reloadEmulator

void lmms::OpulenzInstrument::reloadEmulator ( )
privateslot

◆ saveSettings()

void lmms::OpulenzInstrument::saveSettings ( QDomDocument & _doc,
QDomElement & _this )
overridevirtual

◆ setVoiceVelocity()

void lmms::OpulenzInstrument::setVoiceVelocity ( int voice,
int vel )
private

◆ tuneEqual()

void lmms::OpulenzInstrument::tuneEqual ( int center,
float Hz )

◆ updatePatch

void lmms::OpulenzInstrument::updatePatch ( )
privateslot

Member Data Documentation

◆ emulatorMutex

QMutex lmms::OpulenzInstrument::emulatorMutex
staticprivate

◆ feedback_mdl

FloatModel lmms::OpulenzInstrument::feedback_mdl

◆ fm_mdl

BoolModel lmms::OpulenzInstrument::fm_mdl

◆ fnums

int lmms::OpulenzInstrument::fnums[128]
private

◆ frameCount

f_cnt_t lmms::OpulenzInstrument::frameCount
private

◆ m_patchModel

IntModel lmms::OpulenzInstrument::m_patchModel

◆ op1_a_mdl

FloatModel lmms::OpulenzInstrument::op1_a_mdl

◆ op1_d_mdl

FloatModel lmms::OpulenzInstrument::op1_d_mdl

◆ op1_ksr_mdl

BoolModel lmms::OpulenzInstrument::op1_ksr_mdl

◆ op1_lvl_mdl

FloatModel lmms::OpulenzInstrument::op1_lvl_mdl

◆ op1_mul_mdl

FloatModel lmms::OpulenzInstrument::op1_mul_mdl

◆ op1_perc_mdl

BoolModel lmms::OpulenzInstrument::op1_perc_mdl

◆ op1_r_mdl

FloatModel lmms::OpulenzInstrument::op1_r_mdl

◆ op1_s_mdl

FloatModel lmms::OpulenzInstrument::op1_s_mdl

◆ op1_scale_mdl

FloatModel lmms::OpulenzInstrument::op1_scale_mdl

◆ op1_trem_mdl

BoolModel lmms::OpulenzInstrument::op1_trem_mdl

◆ op1_vib_mdl

BoolModel lmms::OpulenzInstrument::op1_vib_mdl

◆ op1_w0_mdl

BoolModel lmms::OpulenzInstrument::op1_w0_mdl

◆ op1_w1_mdl

BoolModel lmms::OpulenzInstrument::op1_w1_mdl

◆ op1_w2_mdl

BoolModel lmms::OpulenzInstrument::op1_w2_mdl

◆ op1_w3_mdl

BoolModel lmms::OpulenzInstrument::op1_w3_mdl

◆ op1_waveform_mdl

IntModel lmms::OpulenzInstrument::op1_waveform_mdl

◆ op2_a_mdl

FloatModel lmms::OpulenzInstrument::op2_a_mdl

◆ op2_d_mdl

FloatModel lmms::OpulenzInstrument::op2_d_mdl

◆ op2_ksr_mdl

BoolModel lmms::OpulenzInstrument::op2_ksr_mdl

◆ op2_lvl_mdl

FloatModel lmms::OpulenzInstrument::op2_lvl_mdl

◆ op2_mul_mdl

FloatModel lmms::OpulenzInstrument::op2_mul_mdl

◆ op2_perc_mdl

BoolModel lmms::OpulenzInstrument::op2_perc_mdl

◆ op2_r_mdl

FloatModel lmms::OpulenzInstrument::op2_r_mdl

◆ op2_s_mdl

FloatModel lmms::OpulenzInstrument::op2_s_mdl

◆ op2_scale_mdl

FloatModel lmms::OpulenzInstrument::op2_scale_mdl

◆ op2_trem_mdl

BoolModel lmms::OpulenzInstrument::op2_trem_mdl

◆ op2_vib_mdl

BoolModel lmms::OpulenzInstrument::op2_vib_mdl

◆ op2_w0_mdl

BoolModel lmms::OpulenzInstrument::op2_w0_mdl

◆ op2_w1_mdl

BoolModel lmms::OpulenzInstrument::op2_w1_mdl

◆ op2_w2_mdl

BoolModel lmms::OpulenzInstrument::op2_w2_mdl

◆ op2_w3_mdl

BoolModel lmms::OpulenzInstrument::op2_w3_mdl

◆ op2_waveform_mdl

IntModel lmms::OpulenzInstrument::op2_waveform_mdl

◆ pitchbend

int lmms::OpulenzInstrument::pitchbend
private

◆ pitchBendRange

int lmms::OpulenzInstrument::pitchBendRange
private

◆ renderbuffer

short* lmms::OpulenzInstrument::renderbuffer
private

◆ RPNcoarse

int lmms::OpulenzInstrument::RPNcoarse
private

◆ RPNfine

int lmms::OpulenzInstrument::RPNfine
private

◆ storedname

QString lmms::OpulenzInstrument::storedname
private

◆ theEmulator

Copl* lmms::OpulenzInstrument::theEmulator
private

◆ trem_depth_mdl

BoolModel lmms::OpulenzInstrument::trem_depth_mdl

◆ velocities

int lmms::OpulenzInstrument::velocities[128]
private

◆ vib_depth_mdl

BoolModel lmms::OpulenzInstrument::vib_depth_mdl

◆ voiceLRU

int lmms::OpulenzInstrument::voiceLRU[OPL2_VOICES]
private

◆ voiceNote

int lmms::OpulenzInstrument::voiceNote[OPL2_VOICES]
private

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