Skip to content

Commit

Permalink
handling more presets differently
Browse files Browse the repository at this point in the history
  • Loading branch information
gregrecco67 committed Jul 13, 2024
1 parent 7a2f829 commit d679803
Show file tree
Hide file tree
Showing 13 changed files with 905 additions and 69 deletions.
8 changes: 4 additions & 4 deletions Source/AuxSynthVoice.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -416,7 +416,7 @@ void AuxSynthVoice::updateParams(int blockSize)
p.sync = (!(mode == 0)); p.repeat = (!(mode == 0));
if (mode == 1) {
p.sync = true;
p.syncduration = gin::NoteDuration::getNoteDurations()[size_t(getValue(proc.env1Params.duration))].toSeconds(proc.playhead);
p.syncduration = gin::NoteDuration::getNoteDurations()[size_t(proc.env1Params.duration->getProcValue())].toSeconds(proc.playhead);
}
if (mode == 2) {
p.sync = true;
Expand All @@ -435,7 +435,7 @@ void AuxSynthVoice::updateParams(int blockSize)
p.sync = (mode != 0); p.repeat = (mode != 0);
if (mode == 1) {
p.sync = true;
p.syncduration = gin::NoteDuration::getNoteDurations()[size_t(getValue(proc.env2Params.duration))].toSeconds(proc.playhead);
p.syncduration = gin::NoteDuration::getNoteDurations()[size_t(proc.env2Params.duration->getProcValue())].toSeconds(proc.playhead);
}
if (mode == 2) {
p.sync = true;
Expand All @@ -454,7 +454,7 @@ void AuxSynthVoice::updateParams(int blockSize)
p.sync = (!(mode == 0)); p.repeat = (!(mode == 0));
if (mode == 1) {
p.sync = true;
p.syncduration = gin::NoteDuration::getNoteDurations()[size_t(getValue(proc.env3Params.duration))].toSeconds(proc.playhead);
p.syncduration = gin::NoteDuration::getNoteDurations()[size_t(proc.env3Params.duration->getProcValue())].toSeconds(proc.playhead);
}
if (mode == 2) {
p.sync = true;
Expand All @@ -472,7 +472,7 @@ void AuxSynthVoice::updateParams(int blockSize)
p.sync = (!(mode == 0)); p.repeat = (!(mode == 0));
if (mode == 1) {
p.sync = true;
p.syncduration = gin::NoteDuration::getNoteDurations()[size_t(getValue(proc.env4Params.duration))].toSeconds(proc.playhead);
p.syncduration = gin::NoteDuration::getNoteDurations()[size_t(proc.env4Params.duration->getProcValue())].toSeconds(proc.playhead);
}
if (mode == 2) {
p.sync = true;
Expand Down
72 changes: 9 additions & 63 deletions Source/PluginProcessor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -668,6 +668,14 @@ APAudioProcessor::APAudioProcessor() : gin::Processor(
getOptions()
), synth(APSynth(*this)), auxSynth(AuxSynth(*this)), sampler(APSampler(*this))
{
{
auto sz = 0;
for (auto i = 0; i < BinaryData::namedResourceListSize; i++)
if (juce::String(BinaryData::originalFilenames[i]).endsWith(".xml"))
if (auto data = BinaryData::getNamedResource(BinaryData::namedResourceList[i], sz))
extractProgram(BinaryData::originalFilenames[i], data, sz);
}

// poly params
osc1Params.setup(*this, juce::String{ "1" });
osc2Params.setup(*this, juce::String{ "2" });
Expand Down Expand Up @@ -732,73 +740,11 @@ APAudioProcessor::APAudioProcessor() : gin::Processor(

setupModMatrix();
init();


addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Brass_Section_xml, BinaryData::Brass_Section_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Caustic_Lead_xml, BinaryData::Caustic_Lead_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Clashing_Strings_xml, BinaryData::Clashing_Strings_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Endurance_Like_the_Liberty_Bell_xml, BinaryData::Endurance_Like_the_Liberty_Bell_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Foreign_Keypad_xml, BinaryData::Foreign_Keypad_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Gentle_Horn_Section_xml, BinaryData::Gentle_Horn_Section_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Metal_Pan_xml, BinaryData::Metal_Pan_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Metallic_Keys_xml, BinaryData::Metallic_Keys_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Muted_Brass_xml, BinaryData::Muted_Brass_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Pulsating_Pad_xml, BinaryData::Pulsating_Pad_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Rando_Buzz_xml, BinaryData::Rando_Buzz_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Spacy_Bell_xml, BinaryData::Spacy_Bell_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Swell_Keys_xml, BinaryData::Swell_Keys_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Swell_Lead_xml, BinaryData::Swell_Lead_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Venus_Dawn_xml, BinaryData::Venus_Dawn_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Wanderer_xml, BinaryData::Wanderer_xmlSize)));
addFactoryPreset(juce::XmlDocument(juce::String(BinaryData::Wet_Snare_xml, BinaryData::Wet_Snare_xmlSize)));



modMatrix.setMonoValue(randSrc1Mono, 0.0f);
modMatrix.setMonoValue(randSrc2Mono, 0.0f);
}

void APAudioProcessor::addFactoryPreset(juce::XmlDocument doc) {
gin::Program* program = new gin::Program();

std::unique_ptr<juce::XmlElement> rootE (doc.getDocumentElement());
if (rootE)
{
program->states.clear();

program->name = rootE->getStringAttribute ("name").trim();
program->author = rootE->getStringAttribute ("author").trim();
program->tags = juce::StringArray::fromTokens (rootE->getStringAttribute ("tags"), " ", "");


if (auto s = rootE->getChildByName ("state"))
{
program->state = juce::ValueTree::fromXml (*s);
}
else
{
auto stateXml = rootE->getStringAttribute ("valueTree");
program->state = juce::ValueTree::fromXml (stateXml);
}

auto paramE = rootE->getChildByName ("param");
while (paramE)
{
juce::String uid = paramE->getStringAttribute ("uid");
float val = (float) paramE->getDoubleAttribute ("val");

gin::Parameter::ParamState s;
s.uid = uid;
s.value = val;
program->states.add (s);

paramE = paramE->getNextElementWithTagName ("param");
}

}
program->fullyLoaded = true;
programs.add(program);
}

APAudioProcessor::~APAudioProcessor()
{
juce::LookAndFeel::setDefaultLookAndFeel(nullptr);
Expand Down
1 change: 0 additions & 1 deletion Source/PluginProcessor.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ class APAudioProcessor : public gin::Processor
void updateState() override;

void updatePitchbend();
void addFactoryPreset(juce::XmlDocument);

//==============================================================================

Expand Down
82 changes: 82 additions & 0 deletions assets/Buzz Pad.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>

<state name="Buzz Pad" author="builtin" tags="pad">
<state sample="">
<instance editorScale="0.9255172610282898" browserOpen="1" selectedAuthors=""
selectedTags=""/>
<MODMATRIX/>
<mseg1 startIndex="0" endIndex="2">
<PT t="0.0" v="0.0" c="5.5"/>
<PT t="0.5" v="1.0" c="5.5"/>
<PT t="1.0" v="0.0" c="5.5"/>
</mseg1>
<mseg2 startIndex="0" endIndex="2">
<PT t="0.0" v="0.0" c="5.5"/>
<PT t="0.5" v="1.0" c="5.5"/>
<PT t="1.0" v="0.0" c="5.5"/>
</mseg2>
<mseg3 startIndex="0" endIndex="2">
<PT t="0.0" v="0.0" c="5.5"/>
<PT t="0.5" v="1.0" c="5.5"/>
<PT t="1.0" v="0.0" c="5.5"/>
</mseg3>
<mseg4 startIndex="0" endIndex="2">
<PT t="0.0" v="0.0" c="5.5"/>
<PT t="0.5" v="1.0" c="5.5"/>
<PT t="1.0" v="0.0" c="5.5"/>
</mseg4>
<sample sampleName=""/>
</state>
<param uid="osc1coarse" val="2.0"/>
<param uid="osc1volume" val="0.7400000095367432"/>
<param uid="osc1phase" val="0.7860000133514404"/>
<param uid="osc1detune" val="0.04399999976158142"/>
<param uid="osc1spread" val="100.0"/>
<param uid="osc2coarse" val="3.0"/>
<param uid="osc2volume" val="0.8799999952316284"/>
<param uid="osc2phase" val="0.2840000092983246"/>
<param uid="osc2detune" val="0.05999999865889549"/>
<param uid="osc2spread" val="100.0"/>
<param uid="osc3volume" val="0.0"/>
<param uid="osc3spread" val="100.0"/>
<param uid="osc4coarse" val="1.0"/>
<param uid="osc4volume" val="1.0"/>
<param uid="osc4phase" val="0.8740000128746033"/>
<param uid="osc4detune" val="0.07199999690055847"/>
<param uid="osc4spread" val="100.0"/>
<param uid="osc4pan" val="0.03999996185302734"/>
<param uid="env1attack" val="0.01000000350177288"/>
<param uid="env1decay" val="0.268838495016098"/>
<param uid="env1sustain" val="29.59999847412109"/>
<param uid="env1release" val="0.09999998658895493"/>
<param uid="env1drcurve" val="0.3440000116825104"/>
<param uid="env1time" val="0.09999998658895493"/>
<param uid="env2attack" val="0.01000000350177288"/>
<param uid="env2decay" val="1.033528804779053"/>
<param uid="env2sustain" val="23.20000076293945"/>
<param uid="env2release" val="0.09999998658895493"/>
<param uid="env2drcurve" val="0.4000000059604645"/>
<param uid="env2time" val="0.09999998658895493"/>
<param uid="env3attack" val="0.01000000350177288"/>
<param uid="env3release" val="0.09999998658895493"/>
<param uid="env3time" val="0.09999998658895493"/>
<param uid="env4attack" val="0.0"/>
<param uid="env4sustain" val="100.0"/>
<param uid="env4release" val="0.09999998658895493"/>
<param uid="env4time" val="0.09999998658895493"/>
<param uid="equant" val="0.5"/>
<param uid="fltfreq" val="89.15031433105469"/>
<param uid="fltres" val="57.59999847412109"/>
<param uid="auxvolume" val="-11.99999809265137"/>
<param uid="fxgain" val="3.814697265625e-6"/>
<param uid="cpattack" val="0.0000199999994947575"/>
<param uid="chrate" val="0.05000001192092896"/>
<param uid="rvsize" val="1.583999991416931"/>
<param uid="rvdecay" val="0.7879999876022339"/>
<param uid="rvwet" val="0.1319999992847443"/>
<param uid="rmmodfreq1" val="39.9999885559082"/>
<param uid="rmmodfreq2" val="39.9999885559082"/>
<param uid="fxa1" val="6.0"/>
<param uid="laneAGain" val="3.814697265625e-6"/>
<param uid="laneBGain" val="3.814697265625e-6"/>
</state>
88 changes: 88 additions & 0 deletions assets/Clarinet Section.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>

<state name="Clarinet Section" author="builtin" tags="woodwind mpe">
<state sample="">
<instance editorScale="0.9255172610282898" browserOpen="1" selectedAuthors=""
selectedTags=""/>
<MODMATRIX>
<MODITEM srcId="mpep" depth="1.0" enabled="1" dstId="osc2volume" function="linear"
biPolarMapping="0"/>
<MODITEM srcId="mpep" depth="1.0" enabled="1" dstId="osc3volume" function="linear"
biPolarMapping="0"/>
<MODITEM srcId="mpep" depth="1.0" enabled="1" dstId="osc4volume" function="linear"
biPolarMapping="0"/>
<MODITEM srcId="mpep" depth="0.239999994635582" enabled="1" dstId="fltfreq"
function="linear" biPolarMapping="0"/>
<MODITEM srcId="mpep" depth="0.3999999761581421" enabled="1" dstId="auxvolume"
function="linear" biPolarMapping="0"/>
<MODITEM srcId="mpep" depth="0.2374667972326279" enabled="1" dstId="auxfiltercutoff"
function="linear" biPolarMapping="0"/>
<MODITEM srcId="mpep" depth="0.07000000029802322" enabled="1" dstId="wsdrive"
function="linear" biPolarMapping="0"/>
</MODMATRIX>
<mseg1 startIndex="0" endIndex="2">
<PT t="0.0" v="0.0" c="5.5"/>
<PT t="0.5" v="1.0" c="5.5"/>
<PT t="1.0" v="0.0" c="5.5"/>
</mseg1>
<mseg2 startIndex="0" endIndex="2">
<PT t="0.0" v="0.0" c="5.5"/>
<PT t="0.5" v="1.0" c="5.5"/>
<PT t="1.0" v="0.0" c="5.5"/>
</mseg2>
<mseg3 startIndex="0" endIndex="2">
<PT t="0.0" v="0.0" c="5.5"/>
<PT t="0.5" v="1.0" c="5.5"/>
<PT t="1.0" v="0.0" c="5.5"/>
</mseg3>
<mseg4 startIndex="0" endIndex="2">
<PT t="0.0" v="0.0" c="5.5"/>
<PT t="0.5" v="1.0" c="5.5"/>
<PT t="1.0" v="0.0" c="5.5"/>
</mseg4>
<sample sampleName=""/>
</state>
<param uid="osc1volume" val="0.5600000023841858"/>
<param uid="osc2volume" val="0.0"/>
<param uid="osc3volume" val="0.0"/>
<param uid="osc4volume" val="0.0"/>
<param uid="env1attack" val="0.01000000350177288"/>
<param uid="env1sustain" val="100.0"/>
<param uid="env1release" val="0.09999998658895493"/>
<param uid="env1time" val="0.09999998658895493"/>
<param uid="env2attack" val="0.01000000350177288"/>
<param uid="env2sustain" val="100.0"/>
<param uid="env2release" val="0.09999998658895493"/>
<param uid="env2time" val="0.09999998658895493"/>
<param uid="env3attack" val="0.01000000350177288"/>
<param uid="env3sustain" val="100.0"/>
<param uid="env3release" val="0.09999998658895493"/>
<param uid="env3time" val="0.09999998658895493"/>
<param uid="env4attack" val="0.01000000350177288"/>
<param uid="env4sustain" val="100.0"/>
<param uid="env4release" val="0.09999998658895493"/>
<param uid="env4time" val="0.09999998658895493"/>
<param uid="fltkey" val="22.75375938415527"/>
<param uid="fltfreq" val="67.74420928955078"/>
<param uid="fltres" val="20.5876350402832"/>
<param uid="auxenable" val="1.0"/>
<param uid="auxwave" val="2.0"/>
<param uid="auxvolume" val="-11.99999809265137"/>
<param uid="auxfiltercutoff" val="62.20307922363281"/>
<param uid="auxres" val="24.81396865844727"/>
<param uid="velSens" val="22.0552864074707"/>
<param uid="gRate" val="0.5343131422996521"/>
<param uid="mpe" val="1.0"/>
<param uid="pbrange" val="0.0"/>
<param uid="fxgain" val="3.814697265625e-6"/>
<param uid="wsdrive" val="6.443730354309082"/>
<param uid="cpattack" val="0.0000199999994947575"/>
<param uid="chrate" val="0.05500001460313797"/>
<param uid="rvwet" val="0.2120781242847443"/>
<param uid="rmmodfreq1" val="39.9999885559082"/>
<param uid="rmmodfreq2" val="39.9999885559082"/>
<param uid="fxa2" val="1.0"/>
<param uid="fxa3" val="6.0"/>
<param uid="laneAGain" val="-13.28627490997314"/>
<param uid="laneBGain" val="3.814697265625e-6"/>
</state>
Loading

0 comments on commit d679803

Please sign in to comment.