Klang C++
Language Reference (draft)
Loading...
Searching...
No Matches
klang::Synth

Synthesiser object (mono) More...

#include <klang.h>

+ Inheritance diagram for klang::Synth:

Public Types

typedef Note Note
 

Public Member Functions

 Synth ()
 
virtual ~Synth ()
 
int indexOf (Note *note) const
 
virtual event onControl (int index, float value) override
 
virtual event onPreset (int index) override
 
virtual void prepare ()
 
virtual void process ()
 
virtual void process (buffer buffer)
 
virtual void onMIDI (int status, int byte1, int byte2)
 
 operator const signal & () override
 
 operator const signal & () const override
 
Modifier< signal > & operator() (params... p)
 
virtual const signalinput () const
 
virtual void input (const signal &source)
 
virtual void operator<< (const signal &source)
 
virtual const signaloutput () const
 
TYPE & operator>> (TYPE &destination)
 
signal operator+ (TYPE &other)
 
signal operator* (TYPE &other)
 
signal operator- (TYPE &other)
 
signal operator/ (TYPE &other)
 

Public Attributes

Notes< Synth, Notenotes
 
Controls controls
 
Presets presets
 
signal in
 
signal out
 

Detailed Description

Definition at line 3256 of file klang.h.

Member Typedef Documentation

◆ Note

Definition at line 3257 of file klang.h.

Constructor & Destructor Documentation

◆ Synth()

klang::Synth::Synth ( )
inline

Definition at line 3261 of file klang.h.

3261: notes(this) { }
Notes< Synth, Note > notes
Definition klang.h:3259

References klang::Notes< SYNTH, NOTE >::Notes(), and notes.

◆ ~Synth()

virtual klang::Synth::~Synth ( )
inlinevirtual

Definition at line 3262 of file klang.h.

3262{ }

Member Function Documentation

◆ control()

virtual event klang::Controller::control ( int index,
float value )
inlineprotectedvirtualinherited

Definition at line 3068 of file klang.h.

3068{ };

Referenced by klang::Controller::onControl(), and onControl().

◆ indexOf()

int klang::Synth::indexOf ( Note * note) const
inline

Definition at line 3268 of file klang.h.

3268 {
3269 int index = 0;
3270 for (const auto* n : notes.items) {
3271 if (note == n)
3272 return index;
3273 index++;
3274 }
3275 return -1; // not found
3276 }
TYPE items[CAPACITY]
Definition klang.h:239

References notes.

◆ input() [1/3]

virtual void klang::Generic::Input< signal >::input ( )
inlineprotectedvirtualinherited

◆ input() [2/3]

virtual const signal & klang::Generic::Input< signal >::input ( ) const
inlinevirtualinherited

Reimplemented in klang::Generic::Graph< SIZE >::Series.

Definition at line 1343 of file klang.h.

1343{ return in; }

◆ input() [3/3]

virtual void klang::Generic::Input< signal >::input ( const signal & source)
inlinevirtualinherited

Definition at line 1347 of file klang.h.

1347{ in = source; input(); }
virtual const signal & input() const
Definition klang.h:1343

◆ midi()

virtual event klang::Controller::midi ( int status,
int byte1,
int byte2 )
inlineprotectedvirtualinherited

Definition at line 3070 of file klang.h.

3070{ };

Referenced by klang::NoteBase< SYNTH >::controlChange(), and klang::Controller::onMIDI().

◆ onControl()

virtual event klang::Synth::onControl ( int index,
float value )
inlineoverridevirtual

Reimplemented from klang::Controller.

Definition at line 3279 of file klang.h.

3279 {
3280 control(index, value);
3281 for (unsigned int n = 0; n < notes.count; n++)
3282 notes[n]->onControl(index, value);
3283 };
unsigned int count
Definition klang.h:240
virtual event control(int index, float value)
Definition klang.h:3068
virtual event onControl(int index, float value) override
Definition klang.h:3279

References klang::Controller::control(), notes, klang::Controller::onControl(), and klang::Array< TYPE, CAPACITY >::operator[]().

◆ onMIDI()

virtual void klang::Controller::onMIDI ( int status,
int byte1,
int byte2 )
inlinevirtualinherited

Definition at line 3074 of file klang.h.

3074{ midi(status, byte1, byte2); }
virtual event midi(int status, int byte1, int byte2)
Definition klang.h:3070

References klang::Controller::midi().

◆ onPreset()

virtual event klang::Synth::onPreset ( int index)
inlineoverridevirtual

Reimplemented from klang::Controller.

Definition at line 3286 of file klang.h.

3286 {
3287 preset(index);
3288 for (unsigned int n = 0; n < notes.count; n++)
3289 notes[n]->onPreset(index);
3290 };
virtual event preset(int index)
Definition klang.h:3069
virtual event onPreset(int index) override
Definition klang.h:3286

References notes, klang::Controller::onPreset(), klang::Array< TYPE, CAPACITY >::operator[](), and klang::Controller::preset().

◆ operator const signal &() [1/2]

klang::Generic::Modifier< signal >::operator const signal & ( ) const
inlineoverridevirtualinherited

Reimplemented from klang::Generic::Output< signal >.

Definition at line 1450 of file klang.h.

1450{ return out; } // return last output

◆ operator const signal &() [2/2]

klang::Generic::Modifier< signal >::operator const signal & ( )
inlineoverridevirtualinherited

Reimplemented from klang::Generic::Output< signal >.

Definition at line 1449 of file klang.h.

1449{ process(); return out; } // return processed output
virtual void process() override
Definition klang.h:1453

◆ operator()()

Modifier< signal > & klang::Generic::Modifier< signal >::operator() ( params... p)
inlineinherited

Definition at line 1457 of file klang.h.

1457 {
1458 set(p...); return *this;
1459 }

◆ operator*()

signal klang::Generic::Output< signal >::operator* ( TYPE & other)
inlineinherited

Definition at line 1372 of file klang.h.

1372{ process(); return out * (other); }

◆ operator+()

signal klang::Generic::Output< signal >::operator+ ( TYPE & other)
inlineinherited

Definition at line 1371 of file klang.h.

1371{ process(); return out + (other); }

◆ operator-()

signal klang::Generic::Output< signal >::operator- ( TYPE & other)
inlineinherited

Definition at line 1373 of file klang.h.

1373{ process(); return out - (other); }

◆ operator/()

signal klang::Generic::Output< signal >::operator/ ( TYPE & other)
inlineinherited

Definition at line 1374 of file klang.h.

1374{ process(); return out / (other); }

◆ operator<<()

virtual void klang::Generic::Input< signal >::operator<< ( const signal & source)
inlinevirtualinherited

Definition at line 1346 of file klang.h.

1346{ in = source; input(); }

◆ operator>>()

TYPE & klang::Generic::Output< signal >::operator>> ( TYPE & destination)
inlineinherited

Definition at line 1364 of file klang.h.

1364{ process(); return destination = out; }

◆ output()

virtual const signal & klang::Generic::Output< signal >::output ( ) const
inlinevirtualinherited

Definition at line 1360 of file klang.h.

1360{ return out; }

◆ prepare()

virtual void klang::Effect::prepare ( )
inlinevirtualinherited

Definition at line 3089 of file klang.h.

3089{ };

Referenced by klang::Effect::process().

◆ preset()

virtual event klang::Controller::preset ( int index)
inlineprotectedvirtualinherited

Definition at line 3069 of file klang.h.

3069{ };

Referenced by klang::Controller::onPreset(), and onPreset().

◆ process() [1/2]

virtual void klang::Effect::process ( )
inlinevirtualinherited

Reimplemented from klang::Generic::Modifier< signal >.

Definition at line 3090 of file klang.h.

3090{ out = in; }

Referenced by klang::Effect::process().

◆ process() [2/2]

virtual void klang::Effect::process ( buffer buffer)
inlinevirtualinherited

Definition at line 3091 of file klang.h.

3091 {
3092 prepare();
3093 while (!buffer.finished()) {
3094 input(buffer);
3095 process();
3096 buffer++ = out;
3097 debug.buffer++;
3098 }
3099 }
static Debug debug
Definition klang.h:2397
static THREAD_LOCAL Buffer buffer
Definition klang.h:2294
virtual void prepare()
Definition klang.h:3089
virtual void process()
Definition klang.h:3090

References klang::Debug::buffer, klang::debug, klang::buffer::finished(), klang::Generic::Input< SIGNAL >::input(), klang::buffer::operator++(), klang::Effect::prepare(), and klang::Effect::process().

Member Data Documentation

◆ controls

Controls klang::Plugin::controls
inherited

Definition at line 3081 of file klang.h.

◆ in

Definition at line 1340 of file klang.h.

1340{ 0.f };

◆ notes

Notes<Synth, Note> klang::Synth::notes

Definition at line 3259 of file klang.h.

Referenced by Synth(), indexOf(), onControl(), and onPreset().

◆ out

Definition at line 1357 of file klang.h.

1357{ 0.f };

◆ presets

Presets klang::Plugin::presets
inherited

Definition at line 3082 of file klang.h.