MCPcopy Create free account
hub / github.com/BespokeSynth/BespokeSynth / LoadVST

Method LoadVST

Source/VSTPlugin.cpp:453–525  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

451}
452
453void VSTPlugin::LoadVST(juce::PluginDescription desc)
454{
455 mPluginReady = false;
456
457 /*auto completionCallback = [this, &callbackDone] (std::unique_ptr<juce::AudioPluginInstance> instance, const String& error)
458 {
459 if (instance == nullptr)
460 {
461 ofLog() << error;
462 }
463 else
464 {
465 mVSTMutex.lock();
466 //instance->enableAllBuses();
467 instance->prepareToPlay(gSampleRate, gBufferSize);
468 instance->setPlayHead(&mPlayhead);
469 mNumInputChannels = CLAMP(instance->getTotalNumInputChannels(), 1, 4);
470 mNumOutputChannels = CLAMP(instance->getTotalNumOutputChannels(), 1, 4);
471 ofLog() << "vst inputs: " << mNumInputChannels << " vst outputs: " << mNumOutputChannels;
472 mPlugin = std::move(instance);
473 mVSTMutex.unlock();
474 }
475 if (mPlugin != nullptr)
476 CreateParameterSliders();
477 callbackDone = true;
478 };
479
480 TheSynth->GetAudioPluginFormatManager().getFormat(i)->createPluginInstanceAsync(desc, gSampleRate, gBufferSize, completionCallback);*/
481
482 mVSTMutex.lock();
483 juce::String errorMessage;
484 mPlugin = TheSynth->GetAudioPluginFormatManager().createPluginInstance(desc, gSampleRate, gBufferSize, errorMessage);
485 if (mPlugin != nullptr)
486 {
487 mPlugin->enableAllBuses();
488 mPlugin->addListener(this);
489
490 /*
491 * For now, since Bespoke is at best stereo in stereo out,
492 * Disable all non-main input and output buses
493 */
494 mNumInputChannels = mPlugin->getTotalNumInputChannels();
495 mNumOutputChannels = mPlugin->getTotalNumOutputChannels();
496 ofLog() << "vst channel - inputs: " << mNumInputChannels << " x outputs: " << mNumOutputChannels;
497
498 auto layouts = mPlugin->getBusesLayout();
499 mNumInBuses = layouts.inputBuses.size();
500 mNumOutBuses = layouts.outputBuses.size();
501 mPlugin->enableAllBuses();
502 ofLog() << "vst layout - inputs: " << layouts.inputBuses.size() << " x outputs: " << layouts.outputBuses.size();
503
504 mPlugin->prepareToPlay(gSampleRate, gBufferSize);
505 mPlugin->setPlayHead(&mPlayhead);
506
507 mPluginName = mPlugin->getName().toStdString();
508 mPluginFormatName = ofToString(desc.pluginFormatName.toLowerCase());
509 mPluginId = GetPluginName() + "_" + ofToString(desc.uniqueId);
510

Callers

nothing calls this directly

Calls 7

ofLogClass · 0.85
ofToStringFunction · 0.85
sizeMethod · 0.80
LogEventMethod · 0.80
HasPropertyMethod · 0.80
lengthMethod · 0.80
GetStringMethod · 0.80

Tested by

no test coverage detected