Hi Christian, Ah ok, that was my issue with the instrument editor not opening after all!
I might be missing something, but once the plugins are closed and that destructor code is run (i.e a RESET is sent), how can linuxsampler open them up again? At that point, sending the LSCP commands to create a new audio interface, load a gig file and open it for editing again gives the 'cannot find instrument editor' message. Thanks, Andrew. On Thu, Dec 30, 2021 at 6:03 PM Christian Schoenebeck < schoeneb...@linuxsampler.org> wrote: > On Dienstag, 28. Dezember 2021 11:21:28 CET Andrew C wrote: > > This is the output when I, shall we say, non-interactively (i.e netcat) > > send a command to Linuxsampler: > > > > Data type is libgig and data version is 4.3.0.svn34 > > Trying to find an available editor. > > Loading instrument editor plugins...Successfully loaded: > > /usr/local/lib/linuxsampler/plugins/libgigeditlinuxsamplerplugin.so > > OK > > InnerFactories.begin. > > Returning available editors result. > > Instrument plugin is > > Searching for matching editors now... > > Trying to find an editor that can support: libgig and 4.3.0.svn34 > > Trying to find an available editor. > > Loading instrument editor plugins...Successfully loaded: > > /usr/local/lib/linuxsampler/plugins/libgigeditlinuxsamplerplugin.so > > OK > > InnerFactories.begin. > > Returning available editors result. > > Registered instrument editors again: > > Searched finished for matching editors... > > vEditors looks empty. What about available editors string?Trying to find > an > > available editor. > > Loading instrument editor plugins...Successfully loaded: > > /usr/local/lib/linuxsampler/plugins/libgigeditlinuxsamplerplugin.so > > OK > > InnerFactories.begin. > > Returning available editors result. > > ERROR: There is not any instrument editor registered to the sampler! > > > > > > It looks like the iterating through the previously registered editors > gets > > "forgotten" or otherwise the 'InnerFactories.begin()' loop is empty in > the > > 'non-interactive' example.. > > Phew.. That's enough wall of text then! > > Are you requesting a sampler reset per LSCP comand via netcat somewhere in > between? Because a sampler reset request will reset really everything, > i.e. > the sampler would also call > > src/Sampler.cpp: > void Sampler::Reset() { > ... > InstrumentEditorFactory::ClosePlugins(); > ... > } > > And ClosePlugin() closes all open plugin DLLs. Once the instrument editor > DLL > is unloaded from memory, the following destructor code is executed > automatically: > > src/plugins/InstrumentEditorFactory.h: > ~InnerFactoryRegistrator() { > InnerFactoryTemplate<PluginClass_T> innerFactory; > InstrumentEditor* pEditor = innerFactory.Create(); > if (InnerFactories.count(pEditor->Name())) { > InnerFactory* pZombie = > InnerFactories[pEditor->Name()]; > InnerFactories.erase(pEditor->Name()); > if (pZombie) delete pZombie; > } > innerFactory.Destroy(pEditor); > } > > CU > Christian > > > > > _______________________________________________ > Linuxsampler-devel mailing list > Linuxsampler-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel >
_______________________________________________ Linuxsampler-devel mailing list Linuxsampler-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel