diff --git a/OB-Xd.jucer b/OB-Xd.jucer
index ea27bba..c8892e9 100644
--- a/OB-Xd.jucer
+++ b/OB-Xd.jucer
@@ -90,7 +90,8 @@
-
+
@@ -140,8 +141,8 @@
vst3Folder="modules/vstsdk3">
-
-
+
+
diff --git a/Source/Engine/Motherboard.h b/Source/Engine/Motherboard.h
index 21d9201..12477f0 100755
--- a/Source/Engine/Motherboard.h
+++ b/Source/Engine/Motherboard.h
@@ -48,9 +48,8 @@ public:
bool vibratoEnabled;
float Volume;
- const static int MAX_VOICES = 32;
- const static int MAX_PANNINGS = 8;
- float pannings[MAX_PANNINGS];
+ const static int MAX_VOICES=8;
+ float pannings[MAX_VOICES];
ObxdVoice voices[MAX_VOICES];
bool uni;
bool Oversample;
@@ -80,7 +79,7 @@ public:
// pannings = new float[MAX_VOICES];
totalvc = MAX_VOICES;
vq = VoiceQueue(MAX_VOICES,voices);
- for(int i = 0 ; i < MAX_PANNINGS;++i)
+ for(int i = 0 ; i < MAX_VOICES;++i)
{
pannings[i]= 0.5;
}
@@ -363,12 +362,11 @@ public:
float x1 = processSynthVoice(voices[i],lfovalue,viblfo);
if(Oversample)
{
- float x2 = processSynthVoice(voices[i],lfovalue2,viblfo2);
- vlo+=x2*(1-pannings[i % MAX_PANNINGS]);
- vro+=x2*(pannings[i % MAX_PANNINGS]);
+ float x2 = processSynthVoice(voices[i],lfovalue2,viblfo2); vlo+=x2*(1-pannings[i]);
+ vro+=x2*(pannings[i]);
}
- vl+=x1*(1-pannings[i % MAX_PANNINGS]);
- vr+=x1*(pannings[i % MAX_PANNINGS]);
+ vl+=x1*(1-pannings[i]);
+ vr+=x1*(pannings[i]);
}
if(Oversample)
{
diff --git a/Source/Engine/SynthEngine.h b/Source/Engine/SynthEngine.h
index c916590..7e74550 100755
--- a/Source/Engine/SynthEngine.h
+++ b/Source/Engine/SynthEngine.h
@@ -166,7 +166,7 @@ public:
}
void setVoiceCount(float param)
{
- synth.setVoiceCount(roundToInt((param*(synth.MAX_VOICES-1)) +1));
+ synth.setVoiceCount(roundToInt((param*7) +1));
}
void procPitchWheelAmount(float param)
{
@@ -184,7 +184,7 @@ public:
}
void processPan(float param,int idx)
{
- synth.pannings[(idx-1) % synth.MAX_PANNINGS] = param;
+ synth.pannings[idx-1] = param;
}
void processTune(float param)
{
diff --git a/Source/Images/voices.png b/Source/Images/voices.png
index fdaa2a3..c8af407 100644
Binary files a/Source/Images/voices.png and b/Source/Images/voices.png differ
diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp
index d20331b..c50300f 100755
--- a/Source/PluginEditor.cpp
+++ b/Source/PluginEditor.cpp
@@ -287,8 +287,14 @@ void ObxdAudioProcessorEditor::rebuildComponents()
envelopeDetuneKnob = addTinyKnob(1353,300,ownerFilter,ENVDER,"Env",0.2);
voiceSwitch = addNormalButtonList(124,338,17,ownerFilter,VOICE_COUNT,"VoiceCount",ImageCache::getFromMemory(BinaryData::voices_png,BinaryData::voices_pngSize));
- for (int i=1; i <= 32; i++)
- voiceSwitch ->addChoise(String(i));
+ voiceSwitch ->addChoise("1");
+ voiceSwitch ->addChoise("2");
+ voiceSwitch ->addChoise("3");
+ voiceSwitch ->addChoise("4");
+ voiceSwitch ->addChoise("5");
+ voiceSwitch ->addChoise("6");
+ voiceSwitch ->addChoise("7");
+ voiceSwitch ->addChoise("8");
voiceSwitch ->setValue(ownerFilter->getParameter(VOICE_COUNT),dontSendNotification);
legatoSwitch = addNormalButtonList(25,338,65,ownerFilter,LEGATOMODE,"Legato",ImageCache::getFromMemory(BinaryData::legato_png,BinaryData::legato_pngSize));
@@ -394,8 +400,14 @@ void ObxdAudioProcessorEditor::rebuildComponents()
bendLfoRateKnob = addNormalKnobClassic(364,345,ownerFilter,BENDLFORATE,"ModRate",0.4);
voiceSwitch = addNormalButtonListClassic(172,321,38,ownerFilter,VOICE_COUNT,"VoiceCount",ImageCache::getFromFile(skinFolder.getChildFile("voices.png")));
- for (int i=1; i <= 32; i++)
- voiceSwitch->addChoise(String(i));
+ voiceSwitch ->addChoise("1");
+ voiceSwitch ->addChoise("2");
+ voiceSwitch ->addChoise("3");
+ voiceSwitch ->addChoise("4");
+ voiceSwitch ->addChoise("5");
+ voiceSwitch ->addChoise("6");
+ voiceSwitch ->addChoise("7");
+ voiceSwitch ->addChoise("8");
voiceSwitch ->setValue(ownerFilter->getParameter(VOICE_COUNT),dontSendNotification);
legatoSwitch = addNormalButtonListClassic(65,321,95,ownerFilter,LEGATOMODE,"Legato",ImageCache::getFromFile(skinFolder.getChildFile("legato.png")));