How does linuxsampler manage .gig files w/ diff presets?

You name it!
Post Reply
count_fuzzball
User
Posts: 67
Joined: Mon Sep 01, 2008 8:53 am

How does linuxsampler manage .gig files w/ diff presets?

Post by count_fuzzball » Tue Feb 02, 2010 3:55 pm

Hey all,

How does linuxsampler cache samples of instruments into ram? Does it cache all samples used by one particular preset, i.e I have a 400MB piano on preset 1 and another 500mb piano sample.

Do ALL of the samples in the gig file get cached or does just the currently selected preset get loaded?

Thanks,

Andrew.

User avatar
cuse
Developer
Posts: 366
Joined: Wed Jan 23, 2008 10:07 pm
Location: Germany

Re: How does linuxsampler manage .gig files w/ diff presets?

Post by cuse » Fri Feb 05, 2010 12:09 pm

No, only the samples which are currently used, are cached. That is, the samples which are referenced by one of the instruments currently used by a sampler channel (and samples referenced by persistently mapped instruments). As soon as an instrument is not used by any sampler channel anymore (and that is instrument was not explicitly mapped as persistent by the user), all the resources occupied will be freed, including all its referenced samples, as long as the respective sample is not used by another instrument that is still being used of course.

count_fuzzball
User
Posts: 67
Joined: Mon Sep 01, 2008 8:53 am

Re: How does linuxsampler manage .gig files w/ diff presets?

Post by count_fuzzball » Tue Jun 22, 2010 4:14 am

So, why does a 1.4GB file take longer to load one patch compared to loading the same patch as a single patch in a gig file?

User avatar
cuse
Developer
Posts: 366
Joined: Wed Jan 23, 2008 10:07 pm
Location: Germany

Re: How does linuxsampler manage .gig files w/ diff presets?

Post by cuse » Tue Jun 22, 2010 11:05 am

Because libgig still has to read all meta informations of all instruments and samples from that file. The file format is not designed efficient enough for skipping all these steps. It's especially worse when the samples are even stored compressed in the .gig file, since libgig then has to uncompress them to get all mandatory informations like the actual number of sample points.

Post Reply