If the ExtFileMode property is true, the ChoonML file is "detached" - all the samples are in separate "WAV" files. Otherwise, samples are included inline.
This is controlled by the converter.
Access the collection of Part elements as a PartCollection
This allows the contents of "choon.parts" (the instrumental parts or mixer channels) to be processed
Access the collection of Section elements as a SectionCollection This allows the contents of "choon.sections" (the sections of the mix) to be processed.
This extracts the specified sample to the named file. This is used when converting to a format that uses separate WAV files.
If the choonML file is "detached", the existing WAV file is copied (if a new folder or name is specified) or left in place.
If inline, the WAV data is extracted into the named file.
This imports the specifed sample from a WAV file to either binary data or another file.
This is used when converting from a format that uses separate WAV files.
If the choonML file is "detached", the existing WAV file is copied (if a new folder or name is specified) or left in place.
If inline, the WAV data is read from the file and output
Load choonML metadata from the path specified in the constructor
This also loads the SFT (if ExtFileMode is true) but does not load any actual samples as the converter app should best be able to manage when sample data is needed.
This saves choonML metadata to the file specified in the constructor.
It should be called when all data has been read from the source and is "complete", including sample metadata (but usually not the actual samples). This does not write the SFT - this should be done after this to write a "placeholder" SFT
Write a sample out. If writing a detached file (ExtFileMode=true) this writes the sample as an external file named "sample.ExtFileName".
If inline, this stores binary data. Note that this needs to be called *after* both SaveMeta and WriteSFT (first time)
Write the Sample File Table out.
This is only relevant for an inline file. With a detached file, this can be called but does nothing. The first time this is called (on a Choon instance) this writes a placeholder SFT (with the correct number of samples) and marks the position.
Subsequent calls write current SFT data at this position.
A typical converter calls this once after saving Meta and then calls End to finish up.