diff --git a/src/dexed.cpp b/src/dexed.cpp index 1d13b42..f14c317 100644 --- a/src/dexed.cpp +++ b/src/dexed.cpp @@ -467,12 +467,15 @@ void Dexed::GetSamples(uint32_t n_samples, float* buffer) TRACE("Voice[%2d] OP [%d] amp=%ld,amp_step=%d,pitch_step=%d",i,op,voiceStatus.amp[op],voiceStatus.ampStep[op],voiceStatus.pitchStep); - if(voiceStatus.amp[op]<=1069) // this voice produces no audio output + if(voiceStatus.amp[op]<=1069 && voiceStatus.ampStep[op]==4) // this voice produces no audio output op_amp++; } } if(op_amp==op_carrier_num) + { voices[i].live=false; // every carrier produces no audio anymore + TRACE("Shutting down Voice[%2d]",i); + } } // TRACE("Voice[%2d] live=%d keydown=%d",i,voices[i].live,voices[i].keydown); } diff --git a/src/manifest.ttl b/src/manifest.ttl index 5fc39fa..1a0f626 100644 --- a/src/manifest.ttl +++ b/src/manifest.ttl @@ -9,7 +9,7 @@ a lv2:Plugin ; - doap:name "Dexed is a LV2 port of the famous DX-7 simulation which is based on MSFA." ; + doap:name "Dexed" ; doap:description "Synth" ; doap:shortdesc "Dexed" ; lv2:minorVersion 1; lv2:microVersion 0; diff --git a/src/msfa/dx7note.cc b/src/msfa/dx7note.cc index 5e32eb1..ed6bb27 100644 --- a/src/msfa/dx7note.cc +++ b/src/msfa/dx7note.cc @@ -204,6 +204,7 @@ void Dx7Note::compute(int32_t *buf, int32_t lfo_val, int32_t lfo_delay, const Co params_[op].freq = Freqlut::lookup(basepitch_[op] + pitch_mod); params_[op].gain_out = gain; } +#endif /* int pitchbend = ctrls->values_[kControllerPitch]; int32_t pb = (pitchbend - 0x2000); @@ -219,7 +220,6 @@ void Dx7Note::compute(int32_t *buf, int32_t lfo_val, int32_t lfo_delay, const Co pitch_mod += pb; pitch_mod += ctrls->masterTune; */ TRACE("pitch_mod=%d pb=%d"); -#endif // ==== AMP MOD ==== uint32_t amod_1 = ((int64_t) ampmoddepth_ * (int64_t) lfo_delay) >> 8; // Q24 :D diff --git a/src/msfa/fm_core.cc b/src/msfa/fm_core.cc index 6001175..0d26941 100644 --- a/src/msfa/fm_core.cc +++ b/src/msfa/fm_core.cc @@ -77,8 +77,8 @@ uint8_t FmCore::op_out(uint8_t algorithm) { if((alg.ops[i]&OUT_BUS_ADD)==OUT_BUS_ADD) op_out|=1<