2
0
Fork 0

Merge branch 'master' into master

This commit is contained in:
reales 2019-09-01 21:17:12 +02:00 committed by GitHub
commit 2d882ec6f8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 54 additions and 23 deletions

View file

@ -90,7 +90,8 @@
<MODULEPATH id="juce_audio_utils" path="modules"/> <MODULEPATH id="juce_audio_utils" path="modules"/>
</MODULEPATHS> </MODULEPATHS>
</XCODE_MAC> </XCODE_MAC>
<LINUX_MAKE targetFolder="Builds/LinuxMakefile" smallIcon="nnY63W" bigIcon="nnY63W"> <LINUX_MAKE targetFolder="Builds/LinuxMakefile" smallIcon="nnY63W" bigIcon="nnY63W"
vstLegacyFolder="modules/vstsdk2.4">
<CONFIGURATIONS> <CONFIGURATIONS>
<CONFIGURATION name="Release64" libraryPath="/usr/X11R6/lib/" isDebug="0" optimisation="3" <CONFIGURATION name="Release64" libraryPath="/usr/X11R6/lib/" isDebug="0" optimisation="3"
targetName="Obxd64"/> targetName="Obxd64"/>
@ -139,8 +140,8 @@
<VS2019 targetFolder="Builds/VisualStudio2019" smallIcon="nnY63W" bigIcon="nnY63W"> <VS2019 targetFolder="Builds/VisualStudio2019" smallIcon="nnY63W" bigIcon="nnY63W">
<CONFIGURATIONS> <CONFIGURATIONS>
<CONFIGURATION isDebug="1" name="Debug" useRuntimeLibDLL="0"/> <CONFIGURATION isDebug="1" name="Debug" useRuntimeLibDLL="0"/>
<CONFIGURATION isDebug="0" name="Release32" useRuntimeLibDLL="0"/> <CONFIGURATION isDebug="0" name="Release32" useRuntimeLibDLL="0" winArchitecture="Win32"/>
<CONFIGURATION isDebug="0" name="Release64" useRuntimeLibDLL="0" winArchitecture="Win32"/> <CONFIGURATION isDebug="0" name="Release64" useRuntimeLibDLL="0"/>
</CONFIGURATIONS> </CONFIGURATIONS>
<MODULEPATHS> <MODULEPATHS>
<MODULEPATH id="juce_opengl"/> <MODULEPATH id="juce_opengl"/>

View file

@ -48,9 +48,8 @@ public:
bool vibratoEnabled; bool vibratoEnabled;
float Volume; float Volume;
const static int MAX_VOICES = 32; const static int MAX_VOICES=8;
const static int MAX_PANNINGS = 8; float pannings[MAX_VOICES];
float pannings[MAX_PANNINGS];
ObxdVoice voices[MAX_VOICES]; ObxdVoice voices[MAX_VOICES];
bool uni; bool uni;
bool Oversample; bool Oversample;
@ -80,7 +79,7 @@ public:
// pannings = new float[MAX_VOICES]; // pannings = new float[MAX_VOICES];
totalvc = MAX_VOICES; totalvc = MAX_VOICES;
vq = VoiceQueue(MAX_VOICES,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; pannings[i]= 0.5;
} }
@ -363,12 +362,11 @@ public:
float x1 = processSynthVoice(voices[i],lfovalue,viblfo); float x1 = processSynthVoice(voices[i],lfovalue,viblfo);
if(Oversample) if(Oversample)
{ {
float x2 = processSynthVoice(voices[i],lfovalue2,viblfo2); float x2 = processSynthVoice(voices[i],lfovalue2,viblfo2); vlo+=x2*(1-pannings[i]);
vlo+=x2*(1-pannings[i % MAX_PANNINGS]); vro+=x2*(pannings[i]);
vro+=x2*(pannings[i % MAX_PANNINGS]);
} }
vl+=x1*(1-pannings[i % MAX_PANNINGS]); vl+=x1*(1-pannings[i]);
vr+=x1*(pannings[i % MAX_PANNINGS]); vr+=x1*(pannings[i]);
} }
if(Oversample) if(Oversample)
{ {

View file

@ -166,7 +166,7 @@ public:
} }
void setVoiceCount(float param) void setVoiceCount(float param)
{ {
synth.setVoiceCount(roundToInt((param*(synth.MAX_VOICES-1)) +1)); synth.setVoiceCount(roundToInt((param*7) +1));
} }
void procPitchWheelAmount(float param) void procPitchWheelAmount(float param)
{ {
@ -184,7 +184,7 @@ public:
} }
void processPan(float param,int idx) void processPan(float param,int idx)
{ {
synth.pannings[(idx-1) % synth.MAX_PANNINGS] = param; synth.pannings[idx-1] = param;
} }
void processTune(float param) void processTune(float param)
{ {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -287,8 +287,14 @@ void ObxdAudioProcessorEditor::rebuildComponents()
envelopeDetuneKnob = addTinyKnob(1353,300,ownerFilter,ENVDER,"Env",0.2); 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)); 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("1");
voiceSwitch ->addChoise(String(i)); 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); voiceSwitch ->setValue(ownerFilter->getParameter(VOICE_COUNT),dontSendNotification);
legatoSwitch = addNormalButtonList(25,338,65,ownerFilter,LEGATOMODE,"Legato",ImageCache::getFromMemory(BinaryData::legato_png,BinaryData::legato_pngSize)); 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); bendLfoRateKnob = addNormalKnobClassic(364,345,ownerFilter,BENDLFORATE,"ModRate",0.4);
voiceSwitch = addNormalButtonListClassic(172,321,38,ownerFilter,VOICE_COUNT,"VoiceCount",ImageCache::getFromFile(skinFolder.getChildFile("voices.png"))); voiceSwitch = addNormalButtonListClassic(172,321,38,ownerFilter,VOICE_COUNT,"VoiceCount",ImageCache::getFromFile(skinFolder.getChildFile("voices.png")));
for (int i=1; i <= 32; i++) voiceSwitch ->addChoise("1");
voiceSwitch->addChoise(String(i)); 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); voiceSwitch ->setValue(ownerFilter->getParameter(VOICE_COUNT),dontSendNotification);
legatoSwitch = addNormalButtonListClassic(65,321,95,ownerFilter,LEGATOMODE,"Legato",ImageCache::getFromFile(skinFolder.getChildFile("legato.png"))); legatoSwitch = addNormalButtonListClassic(65,321,95,ownerFilter,LEGATOMODE,"Legato",ImageCache::getFromFile(skinFolder.getChildFile("legato.png")));
@ -499,7 +511,7 @@ void ObxdAudioProcessorEditor::sliderValueChanged (Slider* c)
handleSParam(lfoAmt1Knob,LFO1AMT) handleSParam(lfoAmt1Knob,LFO1AMT)
handleSParam(lfoAmt2Knob,LFO2AMT) handleSParam(lfoAmt2Knob,LFO2AMT)
handleSParam(pan1Knob,PAN1) handleSParam(pan1Knob,PAN1)
handleSParam(pan2Knob,PAN2) handleSParam(pan2Knob,PAN2)
handleSParam(pan3Knob,PAN3) handleSParam(pan3Knob,PAN3)
handleSParam(pan4Knob,PAN4) handleSParam(pan4Knob,PAN4)
@ -659,8 +671,8 @@ void ObxdAudioProcessorEditor::mouseUp(const MouseEvent& e)
int bankStart = 1000; int bankStart = 1000;
{ {
const String currentBank = getFilter()->getCurrentBankFile().getFileName(); const String currentBank = getFilter()->getCurrentBankFile().getFileName();
for (int i = 0; i < banks.size(); ++i) for (int i = 0; i < banks.size(); ++i)
{ {
const File bank = banks.getUnchecked(i); const File bank = banks.getUnchecked(i);

View file

@ -491,7 +491,7 @@ const String ObxdAudioProcessor::getParameterName (int index)
case FREL: case FREL:
return S("FilterRelease"); return S("FilterRelease");
} }
return {}; return {};
} }
const String ObxdAudioProcessor::getParameterText (int index) const String ObxdAudioProcessor::getParameterText (int index)
@ -769,6 +769,7 @@ void ObxdAudioProcessor::getCurrentProgramStateInformation(MemoryBlock& destData
copyXmlToBinary(xmlState, destData); copyXmlToBinary(xmlState, destData);
} }
void ObxdAudioProcessor::setStateInformation (const void* data, int sizeInBytes) void ObxdAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
{ {
if (std::unique_ptr<XmlElement> xmlState = getXmlFromBinary(data,sizeInBytes)) if (std::unique_ptr<XmlElement> xmlState = getXmlFromBinary(data,sizeInBytes))
@ -801,6 +802,8 @@ void ObxdAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
} }
setCurrentProgram(xmlState->getIntAttribute(S("currentProgram"), 0)); setCurrentProgram(xmlState->getIntAttribute(S("currentProgram"), 0));
delete xmlState;
} }
} }
@ -821,9 +824,26 @@ void ObxdAudioProcessor::setCurrentProgramStateInformation(const void* data,int
programs.currentProgramPtr->name = e->getStringAttribute(S("programName"), S("Default")); programs.currentProgramPtr->name = e->getStringAttribute(S("programName"), S("Default"));
setCurrentProgram(programs.currentProgram); setCurrentProgram(programs.currentProgram);
delete e;
} }
} }
void ObxdAudioProcessor::getCurrentProgramStateInformation(MemoryBlock& destData)
{
XmlElement xmlState = XmlElement("Datsounds");
for (int k = 0; k < PARAM_COUNT; ++k)
{
xmlState.setAttribute(String(k), programs.currentProgramPtr->values[k]);
}
xmlState.setAttribute(S("programName"), programs.currentProgramPtr->name);
copyXmlToBinary(xmlState, destData);
}
//============================================================================== //==============================================================================
bool ObxdAudioProcessor::loadFromFXBFile(const File& fxbFile) bool ObxdAudioProcessor::loadFromFXBFile(const File& fxbFile)
{ {
@ -949,7 +969,7 @@ void ObxdAudioProcessor::scanAndUpdateBanks()
DirectoryIterator it(getBanksFolder(), false, "*.fxb", File::findFiles); DirectoryIterator it(getBanksFolder(), false, "*.fxb", File::findFiles);
while (it.next()) while (it.next())
{ {
bankFiles.addUsingDefaultSort(it.getFile()); bankFiles.addUsingDefaultSort(it.getFile());
} }
} }