SPO.svobject © 1994 by Andreas R. Kleinert. FREEWARE. All rights reserved. Version : 2.3 Release Date : 11.12.1994 Description ~~~~~~~~~~~ SPO.svobject is an external Library-Module for the superplay.library V1+. It supports reading and writing of SPO Sample-Files. Requirements ~~~~~~~~~~~~ - OS V2.04+ (V37)+ and its libraries - xpkmaster.library V2+ File Format Information ~~~~~~~~~~~~~~~~~~~~~~~ Sound Samples in the "SPO Sample File Format" consist of two Files : The Header-File (.spo) and the Data-File (). The Header-File contains information about the Raw-Data in the Data-File. For loading and saving the Sample it makes no difference, which FileName - Header-File or Data-File - is given. This is managed by the SPObject. Because recognition of the Types of packed Files is only possible by reading the whole File into a buffer and then check it, we use two different Files for both : Sample Information and Sample- The Data-File CAN be packed, the Header-File MUST NOT be packed. The SPO.object does NOT save packed data, but it is possible, to pack the Data File with ANY XPK-Packer you like, because the SPO.spobject uses the xpk.library for decoding. This allows efficient packing and unpacking with PowerPacker and all other XPK-Packers. Remember, that the original Data written by the SPO.spobject is NOT packed and therefore needs a lot of Diskspace. So pack it immediately after it has been written. The Data saved into the File is written almost in the same way like in an IFF-8SVX. The only difference is : Future versions might contain 12- or 16-Bit Sample Data. Source-Code ~~~~~~~~~~~ The "SPO Sample File Format" is an "Open File Format", which means, that everyone is invented to use and support it and to make suggestions to improve the File Format or the Algorithms to handle it. To allow support of the File Format and to give an example, how to write your own superview.library compatible "spobjects", this distribution contains the full SourceCode of the "SPO.spobject". Feel free to use it for your own, commercial or non-commercial, programs ! Author ~~~~~~ Andreas R. Kleinert Grube Hohe Grethe 23 D-57074 Siegen Germany Features / Handicaps ~~~~~~~~~~~~~~~~~~~~ - once a sample has been loaded, it will be repeated until an explicite stop command arrives - an arriving stop command waits (asynchroneous) until the current repeat loop ends - there's no possibility to continue a once stopped Sample History : ~~~~~~~~~ V2.3 (11.12.1994) : - fixed internal bug V2.2 (21.07.1994) : - added possibility to save all Samples from all multiple-SampleList and to accept NULL parameters for the Source-SPObject with SPO_Write(), so that custom applications may save their self- created SampleLists by simply setting them via SPO_SetSampleList(). The old way behaviour is still supported (as also handling of V1 SPObjects). - will correctly write Samples with more Bits than 8, if it is confronted with them V2.1 (17.07.1994) : - integrated new "SampleList"-Functions for exporting more than one sample V1.4 (30.04.1994) : - fixed (hopefully) "header not located" problems within memory delocation V1.3 (30.03.1994) : - replaced SAS/C's sprintf()-routine with own, RawDoFmt()-based one. This saves about 1800 Bytes. - "utility.library" is not used, because this crashes the Player-Task and no reason for this could be found. V1.2 (27.02.1994) : - fixed small bug in memory management routines V1.1 (16.01.1994) : - first version Copyrights ~~~~~~~~~~ Some of the mentioned names or products above may be copyrighted by companies or trademarks of companies.