Some improvements to the FM Wavetable editor (More waveforms, full modulation matrix) (Take 495, I hope SDL is fine now) (#935)

* Added more waveforms to the FM wavetable editor (Finally Sine isn't the only option anymore!)

* fixed quarter waveforms

* Complete modulation matrix with cross modulation. Also, now X axis modulates Y axis (it was Y modulating X before)

* I really hope it will work this time bruh

* Update gui.cpp

Fixed a programming error that can potentially lead to a SEGFAULT (Core dumped) because I was writing out of bounds of an array

---------

Co-authored-by: System64MC <nicolas1811.jans@gmail.com>
This commit is contained in:
System64 2023-02-06 07:29:01 +01:00 committed by GitHub
parent cdc472dace
commit 056c895c69
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 499 additions and 82 deletions

View file

@ -6226,19 +6226,32 @@ FurnaceGUI::FurnaceGUI():
waveGenTL[1]=0.0f;
waveGenTL[2]=0.0f;
waveGenTL[3]=1.0f;
fmWaveform[0]=0;
fmWaveform[1]=0;
fmWaveform[2]=0;
fmWaveform[3]=0;
waveGenMult[0]=1;
waveGenMult[1]=1;
waveGenMult[2]=1;
waveGenMult[3]=1;
memset(waveGenFB,0,sizeof(int)*4);
memset(waveGenFMCon1,0,sizeof(bool)*4);
memset(waveGenFMCon2,0,sizeof(bool)*3);
memset(waveGenFMCon3,0,sizeof(bool)*2);
memset(waveGenFMCon0,0,sizeof(bool)*5);
memset(waveGenFMCon1,0,sizeof(bool)*5);
memset(waveGenFMCon2,0,sizeof(bool)*5);
memset(waveGenFMCon3, 0, sizeof(bool) * 5);
memset(waveGenFMCon4,0,sizeof(bool)*5);
waveGenAmp[0]=1.0f;
waveGenFMCon1[0]=true;
waveGenFMCon2[0]=true;
waveGenFMCon3[0]=true;
waveGenFMCon0[0]=false;
waveGenFMCon1[0]= true;
waveGenFMCon2[1]= true;
waveGenFMCon3[2] = true;
waveGenFMCon4[0]= false;
waveGenFMCon0[4] = false;
waveGenFMCon1[4] = false;
waveGenFMCon2[4] = false;
waveGenFMCon3[4] = true;
memset(keyHit,0,sizeof(float)*DIV_MAX_CHANS);
memset(keyHit1,0,sizeof(float)*DIV_MAX_CHANS);