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

#include <Lb302.h>

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

Public Slots

void filterChanged ()
void db24Toggled ()

Public Member Functions

 Lb302Synth (InstrumentTrack *_instrument_track)
 ~Lb302Synth () override
void play (SampleFrame *_working_buffer) override
void playNote (NotePlayHandle *_n, SampleFrame *_working_buffer) override
void deleteNotePluginData (NotePlayHandle *_n) override
void saveSettings (QDomDocument &_doc, QDomElement &_parent) override
void loadSettings (const QDomElement &_this) override
QString nodeName () const override
gui::PluginViewinstantiateView (QWidget *_parent) override
 Create a view for the model.
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 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
virtual bool handleMidiEvent (const MidiEvent &, const TimePos &=TimePos(), f_cnt_t offset=0)
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 void loadFile (const QString &file)
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 ()

Private Types

enum class  VcoShape {
  Sawtooth , Square , Triangle , Moog ,
  RoundSquare , Sine , Exponential , WhiteNoise ,
  BLSawtooth , BLSquare , BLTriangle , BLMoog
}
enum class  VcaMode { Attack = 0 , Decay = 1 , Idle = 2 , NeverPlayed = 3 }

Private Member Functions

void processNote (NotePlayHandle *n)
void initNote (Lb302Note *Note)
void initSlide ()
void recalcFilter ()
int process (SampleFrame *outbuf, const std::size_t size)

Private Attributes

FloatModel vcf_cut_knob
FloatModel vcf_res_knob
FloatModel vcf_mod_knob
FloatModel vcf_dec_knob
FloatModel vco_fine_detune_knob
FloatModel dist_knob
IntModel wave_shape
FloatModel slide_dec_knob
BoolModel slideToggle
BoolModel accentToggle
BoolModel deadToggle
BoolModel db24Toggle
float vco_inc
float vco_k
float vco_c
float vco_slide
float vco_slideinc
float vco_slidebase
VcoShape vco_shape
Lb302Filtervcfs [NUM_FILTERS]
Lb302FilterKnobState fs
QAtomicPointer< Lb302Filtervcf
f_cnt_t release_frame
int vcf_envpos
float vca_attack
float vca_a0
float vca_a
VcaMode vca_mode
int sample_cnt
int last_offset
int catch_frame
int catch_decay
bool new_freq
float true_freq
NotePlayHandlem_playingNote
NotePlayHandleList m_notes
QMutex m_notesMutex

Friends

class gui::Lb302SynthView

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)

Member Enumeration Documentation

◆ VcaMode

enum class lmms::Lb302Synth::VcaMode
strongprivate
Enumerator
Attack 
Decay 
Idle 
NeverPlayed 

◆ VcoShape

enum class lmms::Lb302Synth::VcoShape
strongprivate
Enumerator
Sawtooth 
Square 
Triangle 
Moog 
RoundSquare 
Sine 
Exponential 
WhiteNoise 
BLSawtooth 
BLSquare 
BLTriangle 
BLMoog 

Constructor & Destructor Documentation

◆ Lb302Synth()

lmms::Lb302Synth::Lb302Synth ( InstrumentTrack * _instrument_track)

◆ ~Lb302Synth()

lmms::Lb302Synth::~Lb302Synth ( )
override

Member Function Documentation

◆ db24Toggled

void lmms::Lb302Synth::db24Toggled ( )
slot

◆ deleteNotePluginData()

void lmms::Lb302Synth::deleteNotePluginData ( NotePlayHandle * _n)
overridevirtual

Reimplemented from lmms::Instrument.

◆ filterChanged

void lmms::Lb302Synth::filterChanged ( )
slot

◆ initNote()

void lmms::Lb302Synth::initNote ( Lb302Note * Note)
private

◆ initSlide()

void lmms::Lb302Synth::initSlide ( )
private

◆ instantiateView()

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

Create a view for the model.

Implements lmms::Plugin.

◆ loadSettings()

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

◆ nodeName()

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

◆ play()

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

Reimplemented from lmms::Instrument.

◆ playNote()

void lmms::Lb302Synth::playNote ( NotePlayHandle * _n,
SampleFrame * _working_buffer )
overridevirtual

Reimplemented from lmms::Instrument.

◆ process()

int lmms::Lb302Synth::process ( SampleFrame * outbuf,
const std::size_t size )
private

◆ processNote()

void lmms::Lb302Synth::processNote ( NotePlayHandle * n)
private

Start a new note.

◆ recalcFilter()

void lmms::Lb302Synth::recalcFilter ( )
private

◆ saveSettings()

void lmms::Lb302Synth::saveSettings ( QDomDocument & _doc,
QDomElement & _parent )
overridevirtual

◆ gui::Lb302SynthView

friend class gui::Lb302SynthView
friend

Member Data Documentation

◆ accentToggle

BoolModel lmms::Lb302Synth::accentToggle
private

◆ catch_decay

int lmms::Lb302Synth::catch_decay
private

◆ catch_frame

int lmms::Lb302Synth::catch_frame
private

◆ db24Toggle

BoolModel lmms::Lb302Synth::db24Toggle
private

◆ deadToggle

BoolModel lmms::Lb302Synth::deadToggle
private

◆ dist_knob

FloatModel lmms::Lb302Synth::dist_knob
private

◆ fs

Lb302FilterKnobState lmms::Lb302Synth::fs
private

◆ last_offset

int lmms::Lb302Synth::last_offset
private

◆ m_notes

NotePlayHandleList lmms::Lb302Synth::m_notes
private

◆ m_notesMutex

QMutex lmms::Lb302Synth::m_notesMutex
private

◆ m_playingNote

NotePlayHandle* lmms::Lb302Synth::m_playingNote
private

◆ new_freq

bool lmms::Lb302Synth::new_freq
private

◆ release_frame

f_cnt_t lmms::Lb302Synth::release_frame
private

◆ sample_cnt

int lmms::Lb302Synth::sample_cnt
private

◆ slide_dec_knob

FloatModel lmms::Lb302Synth::slide_dec_knob
private

◆ slideToggle

BoolModel lmms::Lb302Synth::slideToggle
private

◆ true_freq

float lmms::Lb302Synth::true_freq
private

◆ vca_a

float lmms::Lb302Synth::vca_a
private

◆ vca_a0

float lmms::Lb302Synth::vca_a0
private

◆ vca_attack

float lmms::Lb302Synth::vca_attack
private

◆ vca_mode

VcaMode lmms::Lb302Synth::vca_mode
private

◆ vcf

QAtomicPointer<Lb302Filter> lmms::Lb302Synth::vcf
private

◆ vcf_cut_knob

FloatModel lmms::Lb302Synth::vcf_cut_knob
private

◆ vcf_dec_knob

FloatModel lmms::Lb302Synth::vcf_dec_knob
private

◆ vcf_envpos

int lmms::Lb302Synth::vcf_envpos
private

◆ vcf_mod_knob

FloatModel lmms::Lb302Synth::vcf_mod_knob
private

◆ vcf_res_knob

FloatModel lmms::Lb302Synth::vcf_res_knob
private

◆ vcfs

Lb302Filter* lmms::Lb302Synth::vcfs[NUM_FILTERS]
private

◆ vco_c

float lmms::Lb302Synth::vco_c
private

◆ vco_fine_detune_knob

FloatModel lmms::Lb302Synth::vco_fine_detune_knob
private

◆ vco_inc

float lmms::Lb302Synth::vco_inc
private

◆ vco_k

float lmms::Lb302Synth::vco_k
private

◆ vco_shape

VcoShape lmms::Lb302Synth::vco_shape
private

◆ vco_slide

float lmms::Lb302Synth::vco_slide
private

◆ vco_slidebase

float lmms::Lb302Synth::vco_slidebase
private

◆ vco_slideinc

float lmms::Lb302Synth::vco_slideinc
private

◆ wave_shape

IntModel lmms::Lb302Synth::wave_shape
private

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