35#include <samplerate.h>
41#define makeknob( name, x, y, hint, unit, oname ) \
42 name = new Knob( KnobType::Styled, this ); \
43 name ->move( x, y ); \
44 name ->setHintText( hint, unit ); \
45 name ->setObjectName( oname ); \
46 name ->setFixedSize( 19, 19 );
48#define maketsknob( name, x, y, hint, unit, oname ) \
49 name = new TempoSyncKnob( KnobType::Styled, this ); \
50 name ->move( x, y ); \
51 name ->setHintText( hint, unit ); \
52 name ->setObjectName( oname ); \
53 name ->setFixedSize( 19, 19 );
84class AutomatableButtonGroup;
93 float * _B1wave,
float * _B2wave,
149 QDomElement & _this )
override;
150 void loadSettings(
const QDomElement & _this )
override;
180 inline float leftCh(
float _vol,
float _pan )
182 return ( _pan <= 0 ? 1.0 : 1.0 - ( _pan / 100.0 ) ) * _vol / 100.0;
185 inline float rightCh(
float _vol,
float _pan )
187 return ( _pan >= 0 ? 1.0 : 1.0 + ( _pan / 100.0 ) ) * _vol / 100.0;
191 inline void srccpy(
float* _dst,
float* _src)
206 dstIndex +=
result.outputFramesGenerated;
A utility class for resampling interleaved audio buffers using various resampling algorithms.
Definition AudioResampler.h:41
@ SincFastest
Fastest sinc-based resampling.
Definition AudioResampler.h:51
Definition AutomatableModel.h:463
Definition Instrument.h:52
Instrument(InstrumentTrack *_instrument_track, const Descriptor *_descriptor, const Descriptor::SubPluginFeatures::Key *key=nullptr, Flags flags=Flag::NoFlags)
Definition Instrument.cpp:38
Definition InstrumentTrack.h:62
Definition AutomatableModel.h:481
Definition AudioBufferView.h:291
Definition NotePlayHandle.h:48
Definition SampleFrame.h:41
Definition TempoSyncKnobModel.h:45
graphModel b2_graph
Definition Watsyn.h:271
FloatModel m_abmix
Definition Watsyn.h:273
void updateFreqB2()
Definition Watsyn.cpp:635
FloatModel a1_rtune
Definition Watsyn.h:263
void deleteNotePluginData(NotePlayHandle *_n) override
Definition Watsyn.cpp:466
graphModel a2_graph
Definition Watsyn.h:269
FloatModel b1_mult
Definition Watsyn.h:255
FloatModel a2_mult
Definition Watsyn.h:254
FloatModel b2_mult
Definition Watsyn.h:256
void updateFreqB1()
Definition Watsyn.cpp:627
IntModel m_selectedGraph
Definition Watsyn.h:286
WatsynInstrument(InstrumentTrack *_instrument_track)
Definition Watsyn.cpp:250
TempoSyncKnobModel m_envDec
Definition Watsyn.h:279
void updateVolumes()
Definition Watsyn.cpp:595
float B2_wave[WAVELEN]
Definition Watsyn.h:291
FloatModel a2_vol
Definition Watsyn.h:244
FloatModel a2_ltune
Definition Watsyn.h:259
void srccpy(float *_dst, float *_src)
Definition Watsyn.h:191
FloatModel b1_ltune
Definition Watsyn.h:260
FloatModel b1_vol
Definition Watsyn.h:245
~WatsynInstrument() override=default
float m_rfreq[NUM_OSCS]
Definition Watsyn.h:177
void updateWaveB2()
Definition Watsyn.cpp:664
float desiredReleaseTimeMs() const override
Definition Watsyn.h:154
FloatModel b1_rtune
Definition Watsyn.h:265
gui::PluginView * instantiateView(QWidget *_parent) override
Create a view for the model.
Definition Watsyn.cpp:589
FloatModel a2_pan
Definition Watsyn.h:249
void playNote(NotePlayHandle *_n, SampleFrame *_working_buffer) override
Definition Watsyn.cpp:344
FloatModel a1_vol
Definition Watsyn.h:243
FloatModel b2_pan
Definition Watsyn.h:251
float m_lfreq[NUM_OSCS]
Definition Watsyn.h:176
graphModel a1_graph
Definition Watsyn.h:268
void updateFreqA2()
Definition Watsyn.cpp:619
FloatModel b2_vol
Definition Watsyn.h:246
FloatModel m_envAmt
Definition Watsyn.h:275
void saveSettings(QDomDocument &_doc, QDomElement &_this) override
Definition Watsyn.cpp:472
FloatModel a1_ltune
Definition Watsyn.h:258
FloatModel b1_pan
Definition Watsyn.h:250
graphModel b1_graph
Definition Watsyn.h:270
float m_lvol[NUM_OSCS]
Definition Watsyn.h:173
FloatModel a1_pan
Definition Watsyn.h:248
float rightCh(float _vol, float _pan)
Definition Watsyn.h:185
float leftCh(float _vol, float _pan)
Definition Watsyn.h:180
void updateWaveA2()
Definition Watsyn.cpp:650
float B1_wave[WAVELEN]
Definition Watsyn.h:290
float m_rvol[NUM_OSCS]
Definition Watsyn.h:174
FloatModel b2_rtune
Definition Watsyn.h:266
float A2_wave[WAVELEN]
Definition Watsyn.h:289
FloatModel a1_mult
Definition Watsyn.h:253
void updateWaveB1()
Definition Watsyn.cpp:657
void loadSettings(const QDomElement &_this) override
Definition Watsyn.cpp:526
void updateWaveA1()
Definition Watsyn.cpp:643
IntModel m_amod
Definition Watsyn.h:283
TempoSyncKnobModel m_envHold
Definition Watsyn.h:278
QString nodeName() const override
Definition Watsyn.cpp:583
FloatModel m_xtalk
Definition Watsyn.h:281
FloatModel b2_ltune
Definition Watsyn.h:261
friend class WatsynObject
Definition Watsyn.h:293
FloatModel a2_rtune
Definition Watsyn.h:264
void updateFreqA1()
Definition Watsyn.cpp:611
TempoSyncKnobModel m_envAtt
Definition Watsyn.h:277
float A1_wave[WAVELEN]
Definition Watsyn.h:288
AudioResampler m_resampler
Definition Watsyn.h:241
IntModel m_bmod
Definition Watsyn.h:284
SampleFrame * abuf() const
Definition Watsyn.h:100
float m_B1wave[WAVELEN]
Definition Watsyn.h:132
float m_A1wave[WAVELEN]
Definition Watsyn.h:130
float m_B2wave[WAVELEN]
Definition Watsyn.h:133
f_cnt_t m_fpp
Definition Watsyn.h:120
SampleFrame * bbuf() const
Definition Watsyn.h:104
NotePlayHandle * m_nph
Definition Watsyn.h:118
int m_amod
Definition Watsyn.h:114
int m_bmod
Definition Watsyn.h:115
WatsynObject(float *_A1wave, float *_A2wave, float *_B1wave, float *_B2wave, int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle *_nph, f_cnt_t _frames, WatsynInstrument *_w)
Definition Watsyn.cpp:65
virtual ~WatsynObject()
Definition Watsyn.cpp:99
WatsynInstrument * m_parent
Definition Watsyn.h:122
void renderOutput(f_cnt_t _frames)
Definition Watsyn.cpp:106
SampleFrame * m_abuf
Definition Watsyn.h:124
float m_A2wave[WAVELEN]
Definition Watsyn.h:131
float m_lphase[NUM_OSCS]
Definition Watsyn.h:127
float m_rphase[NUM_OSCS]
Definition Watsyn.h:128
const sample_rate_t m_samplerate
Definition Watsyn.h:117
sample_rate_t samplerate() const
Definition Watsyn.h:108
SampleFrame * m_bbuf
Definition Watsyn.h:125
2 dimensional function plot
Definition Graph.h:134
Instrument view with fixed LMMS-default size.
Definition InstrumentView.h:66
Definition PluginView.h:36
Definition TempoSyncKnob.h:41
Graph * b1_graph
Definition Watsyn.h:370
Knob * m_xtalkKnob
Definition Watsyn.h:362
Knob * b1_rtuneKnob
Definition Watsyn.h:351
AutomatableButtonGroup * m_selectedGraphGroup
Definition Watsyn.h:364
Knob * b1_ltuneKnob
Definition Watsyn.h:346
Knob * b2_multKnob
Definition Watsyn.h:342
Knob * a2_volKnob
Definition Watsyn.h:330
Knob * a1_rtuneKnob
Definition Watsyn.h:349
PixmapButton * m_sawWaveButton
Definition Watsyn.h:375
Knob * m_abmixKnob
Definition Watsyn.h:354
Graph * b2_graph
Definition Watsyn.h:371
void sqrWaveClicked()
Definition Watsyn.cpp:1057
Knob * a1_panKnob
Definition Watsyn.h:334
void sinWaveClicked()
Definition Watsyn.cpp:985
void sawWaveClicked()
Definition Watsyn.cpp:1033
PixmapButton * m_invertButton
Definition Watsyn.h:378
TempoSyncKnob * m_envHoldKnob
Definition Watsyn.h:359
Knob * b1_panKnob
Definition Watsyn.h:336
Graph * a1_graph
Definition Watsyn.h:368
PixmapButton * m_phaseRightButton
Definition Watsyn.h:381
Knob * a1_multKnob
Definition Watsyn.h:339
TempoSyncKnob * m_envDecKnob
Definition Watsyn.h:360
Knob * m_envAmtKnob
Definition Watsyn.h:356
Knob * b2_ltuneKnob
Definition Watsyn.h:347
void normalizeClicked()
Definition Watsyn.cpp:1081
Knob * b1_volKnob
Definition Watsyn.h:331
Knob * a1_volKnob
Definition Watsyn.h:329
AutomatableButtonGroup * m_aModGroup
Definition Watsyn.h:365
PixmapButton * m_loadButton
Definition Watsyn.h:382
void invertClicked()
Definition Watsyn.cpp:1105
PixmapButton * m_triWaveButton
Definition Watsyn.h:374
Knob * a2_ltuneKnob
Definition Watsyn.h:345
void smoothClicked()
Definition Watsyn.cpp:1129
Knob * a1_ltuneKnob
Definition Watsyn.h:344
PixmapButton * m_sinWaveButton
Definition Watsyn.h:373
PixmapButton * m_normalizeButton
Definition Watsyn.h:377
void updateLayout()
Definition Watsyn.cpp:952
void triWaveClicked()
Definition Watsyn.cpp:1009
void modelChanged() override
Definition Watsyn.cpp:1226
Knob * a2_multKnob
Definition Watsyn.h:340
void phaseRightClicked()
Definition Watsyn.cpp:1177
Knob * b1_multKnob
Definition Watsyn.h:341
WatsynView(Instrument *_instrument, QWidget *_parent)
Definition Watsyn.cpp:675
PixmapButton * m_phaseLeftButton
Definition Watsyn.h:380
Knob * a2_panKnob
Definition Watsyn.h:335
PixmapButton * m_sqrWaveButton
Definition Watsyn.h:376
Knob * b2_panKnob
Definition Watsyn.h:337
AutomatableButtonGroup * m_bModGroup
Definition Watsyn.h:366
Knob * b2_volKnob
Definition Watsyn.h:332
void phaseLeftClicked()
Definition Watsyn.cpp:1153
Knob * b2_rtuneKnob
Definition Watsyn.h:352
PixmapButton * m_smoothButton
Definition Watsyn.h:379
~WatsynView() override=default
Knob * a2_rtuneKnob
Definition Watsyn.h:350
Graph * a2_graph
Definition Watsyn.h:369
TempoSyncKnob * m_envAttKnob
Definition Watsyn.h:358
void loadClicked()
Definition Watsyn.cpp:1201
Definition AudioPortAudio.cpp:223
Definition AudioAlsa.cpp:35
const int WAVERATIO
Definition Watsyn.h:63
const int MOD_MIX
Definition Monstro.h:147
const int B2_OSC
Definition Watsyn.h:77
std::uint32_t sample_rate_t
Definition LmmsTypes.h:42
const int B1_OSC
Definition Watsyn.h:76
const int WAVELEN
Definition Watsyn.h:65
const int MOD_RM
Definition Watsyn.h:70
const int GRAPHLEN
Definition Watsyn.h:61
const int PMOD_AMT
Definition Watsyn.h:66
const int NUM_MODS
Definition Monstro.h:151
const int A2_OSC
Definition Watsyn.h:75
std::uint64_t f_cnt_t
Definition LmmsTypes.h:43
const int MOD_AM
Definition Monstro.h:148
const int NUM_OSCS
Definition Watsyn.h:78
const int MOD_PM
Definition Monstro.h:150
const int A1_OSC
Definition Watsyn.h:74
int result
Definition process.c:1455