Am 27.01.2014 02:02, schrieb Dennis Schulmeister:
> Hi Florian,
> 
> That sounds like a very reasonable approach. Though I'd try to avoid
> mutex locks between GUI and prefetch thread, if possible. For me the
> prefetch thread is not as time critical as "audio" but it has hard
> deadlines, too in order to avoid buffer underruns.
> 
> So here is a slightly modified idea in pseudo-code as it's too late for
> me to describe it in words. :-)

[you meant having one model in usage and one copy for editing, and
swapping their pointers after editing since swapping is a 'fast' operation]


Thanks for your feedback :)!

Hm, yeah, that would be an option. Though duplicating the whole model is
a bit much, I think. Note that we would need to copy all sorts of audio
structures as well, which can be quite some amount of data.

I've thought about (and ardour does it :)) using a Diff system:

When the GUI wants to edit stuff, it creates a Diff (which is not
applied yet), which is ready to apply, with everything prepared.

At the end:

mutex.lock();
mydiff.apply(); // should work reasonably fast
mutex.unlock();

Since the audio prefetch prefetches at least 0.5 seconds (doesn't it?),
and human UI latency perception is definitely too high at 0.5 seconds, I
guess that we will be fine with this: Because the operating system will
give the GUI thread enough CPU time to complete and unlock the mutex
within, say, 0.4 seconds, which is enough to not buffer-underrun.

Cheers,
Florian

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Lmuse-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lmuse-developer

Reply via email to