[directmusic] Re: Intro and Containers

  • From: "Todor Fay" <todor@xxxxxxxxxxxxx>
  • To: <directmusic@xxxxxxxxxxxxx>
  • Date: Fri, 8 Nov 2002 07:29:33 -0800

> Someone please correct me if I'm wrong but as I understand it,
> embedded files will always be loaded straight away - they are part of
the
> same file after all...

A little clarification about how containers work that might help explain
the ins and outs...

Technically, the container actually doesn't directly load. Instead, each
of the components within it is handed to the Loader as if it were a
subfile. Then they are loaded as needed by the Loader when requests are
made. So, for example, if there's a container with several Segments and
several Styles, the styles only get loaded once the Segments that
reference them load. And, importantly, DLS instruments and Waves are not
loaded into memory until the Download call is made.

As somebody pointed out, containers are usually used with Scripts and
Segments, in which case pretty much everything is loaded because the
segment or script that references the embedded objects will reference
all of them at load time. 

Todor


-----Original Message-----
From: directmusic-bounce@xxxxxxxxxxxxx
[mailto:directmusic-bounce@xxxxxxxxxxxxx] On Behalf Of Ciaran Walsh
Sent: Friday, November 08, 2002 4:05 AM
To: directmusic@xxxxxxxxxxxxx
Subject: [directmusic] Re: Intro and Containers


Hey Paul,

wilkommen, bienvenue ;)

First of all, reference / embed runtime (this applies to scripts too,
which
are a kind of container in a way and my answers are referring to
scripts. I
believe that the same rules apply to containers in general though):

It's more or less as it sounds - reference runtime points to a separate
runtime file, so you need to include that file along with your script
file.
embed runtime will, erm, embed the file in the runtime version of the
script
(or container) file. Try embedding a DLS collection, exporting the
runtime
and look at the file size - you'll see it's appropriately bigger.

Embedding is useful if you have a single script file, and you want to
deliver all your content as a single runtime file. It just makes
everything
a bit more tidy.

Referencing is useful if you want to share content between different
script
files (for different levels for example), or in my experience if you are
delivering changes incrementally over a remote network and you don't
want to
be checking in unnecessary extra stuff each time.

I have also run into problems where I have a project that uses multiple
cross-referenced scripts. I tried various ways of embedding everything
but
couldn't figure out a way to do it without doubling up on shared
content,
and suffered from loads of bugs.

The other situation where you don't want to embed would be if you are
using
streaming. Someone please correct me if I'm wrong but as I understand
it,
embedded files will always be loaded straight away - they are part of
the
same file after all...

As to how non-script containers should best be used, I'm sure someone
else
can fill you in. I've never used them myself, but as far as I know the
reference / embed stuff works the same.

Cheers,
Ciaran


-----Original Message-----
From: directmusic-bounce@xxxxxxxxxxxxx
[mailto:directmusic-bounce@xxxxxxxxxxxxx]On Behalf Of Paul Stroud
Sent: 08 November 2002 10:13
To: directmusic@xxxxxxxxxxxxx
Subject: [directmusic] Intro and Containers



Hi All,

Newbie to the list and also a little wet behind the ears when it comes
to
DMP.  I will therefore be asking a mixture of stupid questions and
hopefully
not so stupid questions.

So here comes the first stupid Q - Containers? What are they good for?

It seems like they're a good way to organize your components, but what
are
the consequences?

What are the correct ways to use containers?  You see I don't know how
an
application uses the DM API,  how it loads, streams or what ever.

Advantages/Disadvantages of Embedding/Referencing?

Cheers or Thanks (as this is an international forum)

Paul



Other related posts: