Fixes... fixes...

pull/1/head
Holger Wirtz 8 years ago
parent 45f7028f4e
commit e432b47f22
  1. 20
      src/Dexed.ttl
  2. 33
      src/dexed.cpp
  3. 8
      src/dexed.h
  4. 8
      src/msfa/controllers.h

@ -1826,6 +1826,26 @@
lv2:minimum 0 ;
lv2:maximum 7 ;
lv2:portProperty lv2:integer ;
] ,
[
a lv2:InputPort, lv2:ControlPort ;
lv2:index 152 ;
lv2:symbol "pitch_bend_range" ;
lv2:name "PITCH BEND RANGE" ;
lv2:default 1 ;
lv2:minimum 0 ;
lv2:maximum 12 ;
lv2:portProperty lv2:integer ;
] ,
[
a lv2:InputPort, lv2:ControlPort ;
lv2:index 153 ;
lv2:symbol "pitch_bend_step" ;
lv2:name "PITCH BEND STEP" ;
lv2:default 0 ;
lv2:minimum 0 ;
lv2:maximum 12 ;
lv2:portProperty lv2:integer ;
] ;
doap:name "Dexed" ;

@ -15,6 +15,8 @@
Dexed::Dexed(double rate) : lvtk::Synth<DexedVoice, Dexed>(p_n_ports, p_midi_in)
{
uint8_t i;
TRACE("Hi");
engineMkI=new EngineMkI;
@ -31,13 +33,16 @@ Dexed::Dexed(double rate) : lvtk::Synth<DexedVoice, Dexed>(p_n_ports, p_midi_in)
Env::init_sr(rate);
fx.init(rate);
for (uint8_t note = 0; note < MAX_ACTIVE_NOTES; ++note) {
voices[note].dx7_note = new Dx7Note;
voices[note].keydown = false;
voices[note].sustained = false;
voices[note].live = false;
for(i=0; i<MAX_ACTIVE_NOTES; ++i) {
voices[i].dx7_note = new Dx7Note;
voices[i].keydown = false;
voices[i].sustained = false;
voices[i].live = false;
}
for(i=0;i<156;++i)
data_float[i]=static_cast<float>(data[i]);
currentNote = 0;
controllers.values_[kControllerPitch] = 0x2000;
controllers.modwheel_cc = 0;
@ -64,7 +69,7 @@ Dexed::Dexed(double rate) : lvtk::Synth<DexedVoice, Dexed>(p_n_ports, p_midi_in)
engineType=0xff;
setEngineType(DEXED_ENGINE_MARKI);
add_voices(new DexedVoice(rate));
//add_voices(new DexedVoice(rate));
add_audio_outputs(p_audio_out);
@ -96,10 +101,9 @@ void Dexed::activate(void)
{
TRACE("Hi");
Plugin::activate();
set_params();
refreshVoice=true;
Plugin::activate();
TRACE("Bye");
}
@ -306,6 +310,10 @@ void Dexed::set_params(void)
// 10 bytes (145-154) are the name of the patch
onParam(155,0x3f); // operator on/off => All OPs on
// Pitch bend
controllers.values_[kControllerPitchRange]=static_cast<int16_t>(*p(p_pitch_bend_range));
controllers.values_[kControllerPitchStep]=static_cast<int16_t>(*p(p_pitch_bend_step));
//TRACE("Bye");
}
@ -318,7 +326,7 @@ void Dexed::run (uint32_t sample_count)
Plugin::run(sample_count);
if(++_param_counter==16)
if(++_param_counter>=16)
{
set_params(); // pre_process: copy actual voice params
_param_counter=0;
@ -506,7 +514,7 @@ void Dexed::ProcessMidiMessage(const uint8_t *buf, uint32_t buf_size) {
}
break;
}
/*
case 0xc0 :
//setCurrentProgram(buf[1]);
break;
@ -520,6 +528,7 @@ void Dexed::ProcessMidiMessage(const uint8_t *buf, uint32_t buf_size) {
TRACE("MIDI pitchbend 0xe0 event: %d %d",buf[1],buf[2]);
controllers.values_[kControllerPitch] = buf[1] | (buf[2] << 7);
break;
*/
default:
TRACE("MIDI event unknown: cmd=%d, val1=%d, val2=%d",buf[0],buf[1],buf[2]);
break;
@ -656,7 +665,6 @@ void Dexed::setEngineType(uint8_t tp) {
if(engineType==tp)
return;
panic();
switch (tp) {
case DEXED_ENGINE_MARKI:
TRACE("DEXED_ENGINE_MARKI:%d",DEXED_ENGINE_MARKI);
@ -675,6 +683,7 @@ void Dexed::setEngineType(uint8_t tp) {
break;
}
engineType = tp;
panic();
}
bool Dexed::isMonoMode(void) {

@ -115,11 +115,11 @@ class Dexed : public lvtk::Synth<DexedVoice, Dexed>
uint32_t extra_buf_size_;
private:
double _rate;
uint8_t _param_counter;
float data_float[156];
uint8_t data[156];
double _rate;
/* uint8_t data[156]={
//uint8_t data[156];
uint8_t data[156]={
95, 29, 20, 50, 99, 95, 00, 00, 41, 00, 19, 00, 00, 03, 00, 06, 79, 00, 01, 00, 14,
95, 20, 20, 50, 99, 95, 00, 00, 00, 00, 00, 00, 00, 03, 00, 00, 99, 00, 01, 00, 00,
95, 29, 20, 50, 99, 95, 00, 00, 00, 00, 00, 00, 00, 03, 00, 06, 89, 00, 01, 00, 07,
@ -131,7 +131,7 @@ class Dexed : public lvtk::Synth<DexedVoice, Dexed>
34, 33, 00, 00, 00, 04,
03, 24,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
63 }; */
63 };
};
#endif // PLUGINPROCESSOR_H_INCLUDED

@ -28,9 +28,9 @@
#endif
// State of MIDI controllers
const int kControllerPitch = 128;
const int kControllerPitchRange = 129;
const int kControllerPitchStep = 130;
const int kControllerPitch = 0;
const int kControllerPitchRange = 1;
const int kControllerPitchStep = 2;
class FmCore;
@ -77,7 +77,7 @@ class Controllers {
}
public:
int values_[131];
int values_[3];
char opSwitch[7];

Loading…
Cancel
Save