35#define makeknob( name, x, y, hint, unit, oname ) \
36 name = new Knob( KnobType::Styled, this ); \
37 name ->move( x, y ); \
38 name ->setHintText( hint, unit ); \
39 name ->setObjectName( oname ); \
40 name ->setFixedSize( 29, 29 );
42#define makenesled( name, x, y, ttip ) \
43 name = new PixmapButton( this, nullptr ); \
44 name -> setCheckable( true ); \
45 name -> move( x, y ); \
46 name -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "nesled_on" ) ); \
47 name -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "nesled_off" ) ); \
48 name->setToolTip(ttip);
50#define makedcled( name, x, y, ttip, active ) \
51 PixmapButton * name = new PixmapButton( this, nullptr ); \
52 name -> move( x, y ); \
53 name -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( active ) ); \
54 name -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "nesdc_off" ) ); \
55 name->setToolTip(ttip);
63const float NFB = 895000.0f;
65 {
NFB/5,
NFB/9,
NFB/17,
NFB/33,
NFB/65,
NFB/97,
NFB/129,
NFB/161,
NFB/193,
NFB/255,
NFB/381,
NFB/509,
NFB/763,
NFB/1017,
NFB/2035,
NFB/4069 };
70const int TRIANGLE_WAVETABLE[32] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
71 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
87class NesInstrumentView;
106 LFSRx =
m_LFSR & ( 1 << 8 );
111 LFSRx =
m_LFSR & ( 1 << 13 );
118 if(
m_LFSR & ( 1 << 15 ) )
126 if(
m_LFSR & ( 1 << 14 ) )
141 for(
int i = 15;
i >= 0;
i-- )
212 QDomElement & element )
override;
213 void loadSettings(
const QDomElement & element )
override;
Definition AutomatableModel.h:497
Definition AutomatableModel.h:463
Definition Instrument.h:52
InstrumentTrack * instrumentTrack() const
Definition Instrument.h:156
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
BoolModel m_ch4Enabled
Definition Nes.h:272
FloatModel m_ch4Volume
Definition Nes.h:273
NesInstrument(InstrumentTrack *instrumentTrack)
Definition Nes.cpp:482
FloatModel m_ch2SweepAmt
Definition Nes.h:263
BoolModel m_ch4EnvEnabled
Definition Nes.h:275
BoolModel m_ch2EnvLooped
Definition Nes.h:257
FloatModel m_ch1SweepRate
Definition Nes.h:249
IntModel m_ch1DutyCycle
Definition Nes.h:245
float m_freq3
Definition Nes.h:233
BoolModel m_ch4NoiseMode
Definition Nes.h:279
BoolModel m_ch4NoiseQuantize
Definition Nes.h:284
FloatModel m_ch1Crs
Definition Nes.h:238
BoolModel m_ch2SweepEnabled
Definition Nes.h:262
void updateFreq2()
Definition Nes.cpp:705
FloatModel m_ch2Volume
Definition Nes.h:254
FloatModel m_ch4NoiseFreq
Definition Nes.h:281
FloatModel m_ch3Volume
Definition Nes.h:269
FloatModel m_ch2Crs
Definition Nes.h:253
QString nodeName() const override
Definition Nes.cpp:686
float desiredReleaseTimeMs() const override
Definition Nes.h:217
void playNote(NotePlayHandle *n, SampleFrame *workingBuffer) override
Definition Nes.cpp:547
FloatModel m_ch1EnvLen
Definition Nes.h:243
FloatModel m_vibrato
Definition Nes.h:288
~NesInstrument() override=default
BoolModel m_ch2Enabled
Definition Nes.h:252
FloatModel m_ch1Volume
Definition Nes.h:239
void deleteNotePluginData(NotePlayHandle *n) override
Definition Nes.cpp:566
FloatModel m_masterVol
Definition Nes.h:287
FloatModel m_ch2EnvLen
Definition Nes.h:258
FloatModel m_ch4Sweep
Definition Nes.h:283
friend class NesObject
Definition Nes.h:291
BoolModel m_ch1EnvEnabled
Definition Nes.h:241
gui::PluginView * instantiateView(QWidget *parent) override
Create a view for the model.
Definition Nes.cpp:692
BoolModel m_ch4EnvLooped
Definition Nes.h:276
BoolModel m_ch1Enabled
Definition Nes.h:237
BoolModel m_ch1SweepEnabled
Definition Nes.h:247
float m_freq1
Definition Nes.h:231
FloatModel m_ch1SweepAmt
Definition Nes.h:248
void updateFreq3()
Definition Nes.cpp:711
void saveSettings(QDomDocument &doc, QDomElement &element) override
Definition Nes.cpp:572
FloatModel m_ch4EnvLen
Definition Nes.h:277
BoolModel m_ch4NoiseFreqMode
Definition Nes.h:280
void loadSettings(const QDomElement &element) override
Definition Nes.cpp:629
void updateFreq1()
Definition Nes.cpp:699
FloatModel m_ch2SweepRate
Definition Nes.h:264
float m_freq2
Definition Nes.h:232
BoolModel m_ch2EnvEnabled
Definition Nes.h:256
BoolModel m_ch1EnvLooped
Definition Nes.h:242
FloatModel m_ch3Crs
Definition Nes.h:268
IntModel m_ch2DutyCycle
Definition Nes.h:260
BoolModel m_ch3Enabled
Definition Nes.h:267
virtual ~NesObject()=default
const sample_rate_t m_samplerate
Definition Nes.h:153
int m_ch4EnvCounter
Definition Nes.h:166
bool LFSR()
Definition Nes.h:124
int m_pitchUpdateCounter
Definition Nes.h:156
int m_ch1SweepCounter
Definition Nes.h:172
int nearestNoiseFreq(float f)
Definition Nes.h:138
void updateLFSR(bool mode)
Definition Nes.h:101
int m_wlen4
Definition Nes.h:192
NesObject(NesInstrument *nes, const sample_rate_t samplerate, NotePlayHandle *nph)
Definition Nes.cpp:62
int m_wlen1
Definition Nes.h:189
int wavelength(float freq)
Definition Nes.h:133
int m_pitchUpdateFreq
Definition Nes.h:157
int m_ch4EnvValue
Definition Nes.h:170
int m_ch1EnvCounter
Definition Nes.h:164
int m_vibratoPhase
Definition Nes.h:195
int m_ch2EnvCounter
Definition Nes.h:165
int m_ch2Counter
Definition Nes.h:160
float m_lastNoiseFreq
Definition Nes.h:182
int m_ch4Counter
Definition Nes.h:162
float m_12Last
Definition Nes.h:178
void updateVibrato(float *freq)
Definition Nes.cpp:435
uint16_t m_LFSR
Definition Nes.h:176
float m_lastNoteFreq
Definition Nes.h:181
int m_wlen2
Definition Nes.h:190
NotePlayHandle * m_nph
Definition Nes.h:154
int m_ch4SweepCounter
Definition Nes.h:174
int m_ch3Counter
Definition Nes.h:161
float m_nsf
Definition Nes.h:186
int m_ch2EnvValue
Definition Nes.h:169
NesInstrument * m_parent
Definition Nes.h:152
int m_ch1Counter
Definition Nes.h:159
void renderOutput(SampleFrame *buf, f_cnt_t frames)
Definition Nes.cpp:105
void updatePitch()
Definition Nes.cpp:445
float m_34Last
Definition Nes.h:179
int m_maxWlen
Definition Nes.h:184
int m_ch1EnvValue
Definition Nes.h:168
int m_wlen3
Definition Nes.h:191
int m_ch2SweepCounter
Definition Nes.h:173
Definition NotePlayHandle.h:48
Definition SampleFrame.h:41
Instrument view with fixed LMMS-default size.
Definition InstrumentView.h:66
PixmapButton * m_ch2EnvLoopedBtn
Definition Nes.h:332
PixmapButton * m_ch4EnvEnabledBtn
Definition Nes.h:350
Knob * m_masterVolKnob
Definition Nes.h:362
Knob * m_ch1VolumeKnob
Definition Nes.h:314
PixmapButton * m_ch1SweepEnabledBtn
Definition Nes.h:322
PixmapButton * m_ch2SweepEnabledBtn
Definition Nes.h:337
Knob * m_ch2VolumeKnob
Definition Nes.h:329
PixmapButton * m_ch4NoiseQuantizeBtn
Definition Nes.h:359
PixmapButton * m_ch4NoiseModeBtn
Definition Nes.h:354
Knob * m_ch2CrsKnob
Definition Nes.h:328
~NesInstrumentView() override=default
Knob * m_ch4NoiseFreqKnob
Definition Nes.h:356
Knob * m_ch4EnvLenKnob
Definition Nes.h:352
Knob * m_ch3VolumeKnob
Definition Nes.h:344
PixmapButton * m_ch1EnvEnabledBtn
Definition Nes.h:316
AutomatableButtonGroup * m_ch1DutyCycleGrp
Definition Nes.h:320
PixmapButton * m_ch4EnabledBtn
Definition Nes.h:347
void modelChanged() override
Definition Nes.cpp:838
Knob * m_ch2SweepRateKnob
Definition Nes.h:339
NesInstrumentView(Instrument *instrument, QWidget *parent)
Definition Nes.cpp:723
Knob * m_ch1CrsKnob
Definition Nes.h:313
AutomatableButtonGroup * m_ch2DutyCycleGrp
Definition Nes.h:335
Knob * m_ch1EnvLenKnob
Definition Nes.h:318
PixmapButton * m_ch3EnabledBtn
Definition Nes.h:342
Knob * m_ch4SweepKnob
Definition Nes.h:358
PixmapButton * m_ch4EnvLoopedBtn
Definition Nes.h:351
PixmapButton * m_ch2EnvEnabledBtn
Definition Nes.h:331
Knob * m_ch2SweepAmtKnob
Definition Nes.h:338
Knob * m_ch2EnvLenKnob
Definition Nes.h:333
PixmapButton * m_ch1EnvLoopedBtn
Definition Nes.h:317
Knob * m_vibratoKnob
Definition Nes.h:363
PixmapButton * m_ch2EnabledBtn
Definition Nes.h:327
PixmapButton * m_ch1EnabledBtn
Definition Nes.h:312
PixmapButton * m_ch4NoiseFreqModeBtn
Definition Nes.h:355
Knob * m_ch3CrsKnob
Definition Nes.h:343
Knob * m_ch1SweepAmtKnob
Definition Nes.h:323
Knob * m_ch1SweepRateKnob
Definition Nes.h:324
Knob * m_ch4VolumeKnob
Definition Nes.h:348
Definition PluginView.h:36
register unsigned i
Definition inflate.c:1575
unsigned f
Definition inflate.c:1572
static uintptr_t parent
Definition pugl.h:1644
JHUFF_TBL long freq[]
Definition jchuff.h:50
unsigned short uint16_t
Definition mid.cpp:99
Definition AudioPortAudio.cpp:223
Definition AudioAlsa.cpp:35
const float NES_MIXING_12
Definition Nes.h:75
const float NES_MIXING_ALL
Definition Nes.h:77
const float NES_MIXING_34
Definition Nes.h:76
std::uint32_t sample_rate_t
Definition LmmsTypes.h:42
const uint16_t LFSR_INIT
Definition Nes.h:66
const int TRIANGLE_WAVETABLE[32]
Definition Nes.h:70
const float NES_DIST
Definition Nes.h:73
const float DUTY_CYCLE[4]
Definition Nes.h:67
const float DITHER_AMP
Definition Nes.h:68
const float MIN_FREQ
Definition Monstro.h:155
std::uint64_t f_cnt_t
Definition LmmsTypes.h:43
const float NFB
Definition Nes.h:63
const float NES_SIMPLE_FILTER
Definition Nes.h:62
const float NOISE_FREQS[16]
Definition Nes.h:64
const int MIN_WLEN
Definition Nes.h:79
png_structrp int mode
Definition png.h:1139
int n
Definition crypt.c:458