> Instead of DisconnectAudioOutputDevice() and Connect() like you stated above,
> I would try this:
>
> try {
> // instruct to load nothing
> engineChannel->PrepareLoadInstrument("", 0);
> // will unload the current instrument and then throw an
> exception
> engineChannel->LoadInstrument();
> } catch (...) { // catch all ...
> // ... and ignore all ;-)
> }
>
Hehe, yeah, I tried that one too, in fact it was my first approach.
Unfortunately the side-effects turned out a bit difficult to ignore
;-) :
Loading gig file '/extra/kompoza/gig/Yamaha C7.gig'...OK
Loading gig instrument ('/extra/kompoza/gig/Yamaha C7.gig',0)...OK
Caching initial samples...OK
[Thread 0xad153b70 (LWP 9909) exited]
[New Thread 0xad153b70 (LWP 9982)]
Freeing gig file from memory...
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xabd51b70 (LWP 9912)]
0x0021bc6e in LinuxSampler::EngineBase<LinuxSampler::gig::Voice,
gig::Region, gig::DimensionRegion, LinuxSampler::gig::DiskThread,
LinuxSampler::gig::InstrumentResourceManager,
gig::Instrument>::RenderAudio(unsigned int) ()
from /usr/lib/linuxsampler/liblinuxsampler.so.3
(gdb) bt
#0 0x0021bc6e in LinuxSampler::EngineBase<LinuxSampler::gig::Voice,
gig::Region, gig::DimensionRegion, LinuxSampler::gig::DiskThread,
LinuxSampler::gig::InstrumentResourceManager,
gig::Instrument>::RenderAudio(unsigned int) ()
from /usr/lib/linuxsampler/liblinuxsampler.so.3
#1 0x002d0ae2 in LinuxSampler::AudioOutputDevice::RenderAudio(unsigned int) ()
from /usr/lib/linuxsampler/liblinuxsampler.so.3
#2 0x0081cb98 in
__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string
const, LinuxSampler::DeviceCreationParameter*> > >::deallocate ()
from /usr/lib/dssi/ls16.so
#3 0x0081e31a in
__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string
const, LinuxSampler::DeviceCreationParameter*> > >::deallocate ()
from /usr/lib/dssi/ls16.so
#4 0x0081e477 in
__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string
const, LinuxSampler::DeviceCreationParameter*> > >::deallocate ()
from /usr/lib/dssi/ls16.so
#5 0x0804bfae in lo_server_thread_get_url ()
#6 0x41ce587d in Jack::JackClient::Execute() () from /usr/lib/libjack.so.0
#7 0x41cfbab5 in Jack::JackPosixThread::ThreadHandler(void*) ()
from /usr/lib/libjack.so.0
#8 0x4e5de8f5 in start_thread (arg=0xabd51b70) at pthread_create.c:297
#9 0x4e513fce in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
I guess it is no cookie, for now, unless I implement some workaround
to skip the rendering call until the file is unloaded.
L
------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit. See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Linuxsampler-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel