%!PS-Adobe-2.0
%%Creator: dvips 5.58 Copyright 1986, 1994 Radical Eye Software
%%Title: apiref.dvi
%%CreationDate: Mon Jan 27 00:34:48 1997
%%Pages: 73
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%EndComments
%DVIPSCommandLine: dvips apiref.dvi
%DVIPSParameters: dpi=300, compressed, comments removed
%DVIPSSource: TeX output 1997.01.27:0020
%%BeginProcSet: texc.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
a}B /bos{/SS save N}B /eos{SS restore}B end
%%EndProcSet
TeXDict begin 39158280 55380996 1000 300 300
(D:\midas\doc\ps/apiref.dvi) @start /Fa 40 122 df<91380FC0F8913830718E91
3860F31EECC0F70101EB660C9138800E001303A35DEB0700A490B612C090390E003800A4
5D5BA45D5BA44A5A1370A44A5A13E0A292C7FC495AA238718E0638F19E0CEB1E1838620C
30383C07C0272D82A21E>11 D<EAFFF0A213E00C037C8B11>45 D<1403A25CA25CA25C14
2FA2EC4F80A21487A2EB01071302A21304A21308131813101320A290387FFFC0EB400313
80EA0100A21202A25AA2120C003CEB07E0B4EB3FFC1E237DA224>65
D<90B512E090380F0038151C151E011E130E150FA349130E151EA2153C4913781570EC01
E0EC078090B5FC9038F001E0EC00F01578485A1538153CA248481378A315F0485AEC01E0
EC03C0EC0700380F001EB512F020227DA122>I<027F138090390380810090380E006301
38132749131F49130E485A485A48C7FC481404120E121E5A5D4891C7FCA35AA55A1520A2
5DA26C5C12704AC7FC6C130200185B001C5B00061330380381C0D800FEC8FC212479A223
>I<90B512F090380F003C150E81011EEB0380A2ED01C0A25B16E0A35BA449EB03C0A448
48EB0780A216005D4848130E5D153C153848485B5DEC03804AC7FC000F131CB512F02322
7DA125>I<90B6128090380F00071501A2131EA21600A25BA2140192C7FCEB7802A21406
140EEBFFFCEBF00CA33801E008A21504EC0008485AA25DA248485B15605D1401380F0007
B65A21227DA121>I<90B6FC90380F000F1503A2131EA21502A25BA214011500EB7802A2
1406140EEBFFFCEBF00CA33801E008A391C7FC485AA4485AA4120FEAFFF820227DA120>
I<9039FFF87FFC90390F000780A3011EEB0F00A449131EA4495BA490B512F89038F00078
A348485BA44848485AA44848485AA4000F130739FFF07FF826227DA124>72
D<EBFFF8EB0F00A3131EA45BA45BA45BA4485AA4485AA4485AA4120FEAFFF015227DA113
>I<EBFFFCEB0F8091C7FCA2131EA45BA45BA45BA4485AA21520A248481340A21580A238
07800115005C140F000F133EB512FE1B227DA11F>76 D<D9FF80EB07FC010FEC0F801617
A20117EC2F00EB13C0164F168F0123149EED011EA215020143495AA21508EB41E0018149
5A1520A21540D801015C1580ECE100A23A0200F201E0A214F414F8484A5A14F0A2000C13
E0001EEBC007D8FF80EB7FF82E227DA12C>I<01FFEB0FFC90390F8001E01680ECC00001
13EB0100A2EB11E0A201211302EB20F0A39038407804A3143C01805B143E141EA2390100
1F10140FA2EC0790000214A0A2EC03E0A2485C1401A2120C001E6D5AB47E26227DA124>
I<14FE903807838090380C00E0013813704913385B4848131C485A48C7FC48141E121E12
1C123CA25AA348143CA31578A25A15F0A2EC01E015C06C1303EC0780007014000078130E
00385B6C5B6C13E038070380D801FCC7FC1F2479A225>I<90B512E090380F0038151E15
0E011E1307A449130FA3151E5B153C157815E09038F003C09038FFFE0001F0C7FCA2485A
A4485AA4485AA4120FEAFFF020227DA121>I<90B512C090380F0070153C151C011E130E
A2150FA249131EA3153C4913381570EC01E0EC07809038FFFC00EBF00E80EC0380D801E0
13C0A43903C00780A43907800F001501A2EC0702120F39FFF0038CC812F020237DA124>
82 D<903801F02090380E0C4090381802C0EB3001136001E0138013C01201A200031400
A291C7FCA27FEA01F813FF6C13E06D7EEB1FF8EB03FCEB007C143C80A30020131CA31418
00601338143000705B5C38C80180D8C607C7FCEA81FC1B247DA21B>I<001FB512F8391E
03C03800181418123038200780A200401410A2EB0F001280A200001400131EA45BA45BA4
5BA4485AA41203B5FC1D2277A123>I<393FFE03FF3903C000781560152048481340A448
C71280A4001EEB0100A4481302A4485BA400705B12F05C12705C5C123038380180D81802
C7FCEA0E0CEA03F0202377A124>I<39FFF001FF001FC7127815306C146015401580A2EC
0100A214025C13805C12075C5CA25CA25C0181C7FCA213C2120313C413C8A213D0A213E0
5BA25B120190C8FC202376A124>I<EBF8C0EA0185EA0705380E0380A2121C123C383807
001278A3EAF00EA31410EB1C201270133C38305C40138C380F078014157B9419>97
D<137EEA01C138030180EA0703EA0E07121C003CC7FC12381278A35AA45B12701302EA30
0CEA1830EA0FC011157B9416>99 D<143CEB03F8EB0038A31470A414E0A4EB01C013F9EA
0185EA0705380E0380A2121C123C383807001278A3EAF00EA31410EB1C201270133C3830
5C40138C380F078016237BA219>I<13F8EA0384EA0E02121C123C1238EA7804EAF018EA
FFE0EAF000A25AA41302A2EA6004EA7018EA3060EA0F800F157A9416>I<143E144714CF
EB018F1486EB0380A3EB0700A5130EEBFFF0EB0E00A35BA55BA55BA55BA45B1201A2EA71
8012F100F3C7FC1262123C182D82A20F>I<EB1F18EB30B813E03801C070A2EA03801207
EB00E05AA3381E01C0A4EB0380120E1307EA060BEB1700EA01E7EA0007A2130EA3EA701C
EAF0185BEA60E0EA3F80151F7E9416>I<13F0EA0FE01200A3485AA4485AA448C7FC131F
EB2180EBC0C0380F00E0A2120EA2381C01C0A438380380A3EB070400701308130E141013
0600E01320386003C016237DA219>I<13C0EA01E013C0A2C7FCA8121E12231243A25AA3
120EA25AA35AA21340EA7080A3EA71001232121C0B217BA00F>I<13F0EA07E01200A348
5AA4485AA448C7FCEB01E0EB0210EB0470380E08F01310EB2060EB4000EA1D80001EC7FC
EA1FC0EA1C70487EA27F142038703840A3EB188012E038600F0014237DA216>107
D<EA01E0EA0FC01201A3EA0380A4EA0700A4120EA45AA45AA45AA3127112E2A412641238
0B237CA20C>I<391C0F80F8392610C10C39476066063987807807A2EB0070A2000EEBE0
0EA44848485AA3ED38202638038013401570168015303A7007003100D83003131E23157B
9428>I<38380F80384C30C0384E4060388E8070EA8F00128EA24813E0A4383801C0A3EB
03840070138814081307EB031012E0386001E016157B941B>I<137EEA01C33803818038
0701C0120E001C13E0123C12381278A338F003C0A21480130700701300130E130CEA3018
EA1870EA07C013157B9419>I<3801C1F0380262183804741C3808780CEB700EA2141EEA
00E0A43801C03CA3147838038070A2EBC0E0EBC1C038072380EB1E0090C7FCA2120EA45A
A3EAFFC0171F7F9419>I<EA1C1F38262080384741C0EA87831303EB018090C7FC120EA4
5AA45AA45A123012157B9415>114 D<13FCEA018338020080EA0401EA0C03140090C7FC
120F13F0EA07FC6C7EEA003E130F7F1270EAF006A2EAE004EA4008EA2030EA1FC011157D
9414>I<13C01201A4EA0380A4EA0700EAFFF8EA0700A2120EA45AA45AA31310EA7020A2
13401380EA3100121E0D1F7C9E10>I<001E1360002313E0EA4380EB81C01283EA8701A2
38070380120EA3381C0700A31408EB0E101218121CEB1E20EA0C263807C3C015157B941A
>I<001EEB60E00023EBE0F0384380E1EB81C000831470D887011330A23907038020120E
A3391C070040A31580A2EC0100130F380C0B02380613843803E0F81C157B9420>119
D<001E133000231370EA438014E01283EA8700A2380701C0120EA3381C0380A4EB0700A3
5BEA0C3EEA03CEEA000EA25B1260EAF0381330485AEA80C0EA4380003EC7FC141F7B9418
>121 D E /Fb 48 122 df<903901FF81FE010FEBEFFF903A7F81FF8F80D9FE01EB1FC0
3901F803FE000314FCEA07F0EE0F80020190C7FCA7B712F0A32707F001FCC7FCB3A33A7F
FF1FFFE0A32A2A7FA927>11 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
D<EB3F803801FFF03807E0FC380FC07E48487E497E481480003E130F007E14C0A400FE14
E0AF007E14C0A46CEB1F80A26C14006D5A380FC07E6C6C5A3801FFF038003F801B277DA6
22>48 D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>I<EBFF80
000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2127E003C
131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013705B3901
C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803FFF04813
FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07F0EBFFC0
A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F481480007CEB7F00
383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03BFEB073F
130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8A3C7EA7F
00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091C7FC001C
C8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218127C12FE
A315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA622>I<EB
07F8EB3FFE90B5FC3901FC07803903F00FC03807C01FEA0F80121F130048EB0F8091C7FC
127EA3EAFE02EB1FF0EB3FFCEB603EEB801F00FF14809038000FC0A24814E0A4127EA412
3E003F14C07EEC1F80D80F8013003807E07E6CB45A6C5B38003FC01B277DA622>I<1238
123E003FB512F0A34814E015C0158015003870000EA25C485B5C5CC6485AA2495A130791
C7FC5B5B131E133EA2137E137CA213FCA41201A76C5A13701C297CA822>I<EB3FC03801
FFF04813FC3807C07E48C67E001E7FEC0F80123EA2123F138001C01300EBF01F381FFC1E
6D5A380FFFF86C13E06C7F6C13FC8000077FD80F0F1380D81E0713C0EA3E01397C007FE0
141F48130F14071403A315C0127C007EEB07806CEB0F00381FC03F380FFFFC00035B3800
7FC01B277DA622>I<EB7F803801FFF000077F380FC0FC381F803E48487E007E1480A214
0F00FE14C0A315E0A5007E131FA26C133F6C132F380F80CF3807FF8F0001130FEA000801
0013C0A3EC1F80123E127FEC3F00143E147E007E5B383E03F8381FFFE06C1380D801FEC7
FC1B277DA622>I<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FE
A201037F1480A249486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201
F080491303000181491301A2000381D8FFFE013F13FCA32E297EA833>65
D<B612F815FF16C03A03F8001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED07F0
150FED1FC0EDFF8090B5EAFE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216FFA6
16FE1501ED03FC1507ED1FF8B712E016C0EDFE0028297DA830>I<91387FE003903907FF
FC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F4848147F4848143F4848141F48
5A160F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C
6C6C14786CB4EB01F090397FF007C0011FB512800107EBFE009038007FF028297CA831>
I<B612FCEDFF8016E03A03FC001FF8ED03FCED00FE167FEE3F80EE1FC0A2EE0FE0A2EE07
F0A417F8AA17F0A3EE0FE0A217C0161FEE3F80EE7F005EED03FCED1FF8B75A168003FCC7
FC2D297EA834>I<B712E0A33903FC001FED07F01501A215001670A3913801C0781638A3
02031300A2140F90B5FCA3EBFC0F1403A20201130EA3161C91C7FCA3163C1638167816F8
15011503151FB712F0A327297EA82C>I<B712C0A33903FC003FED0FE015031501A21500
A316F0913801C070A316001403A2140F90B5FCA3EBFC0F1403A21401A491C8FCA9B512FC
A324297EA82A>I<B5D8F00FB5FCA3D803FCC7EA3FC0AF90B7FCA301FCC7123FB1B5D8F0
0FB5FCA330297EA835>72 D<B512F0A33803FC00B3B1B512F0A314297EA819>I<B512FC
A3D803FCC8FCB3A3ED01C0A415031680A21507A2150FA2151F157F913801FF00B7FCA322
297EA828>76 D<D8FFFE92383FFF80A26D5D0003EFE000A2D9BF8014EFA2D99FC0EB01CF
A2D98FE0EB038FA3D987F0EB070FA2D983F8130EA2D981FC131CA3D980FE1338A2027F13
70A291383F80E0A391381FC1C0A291380FE380A2913807F700A3EC03FEA26E5AA26E5AD8
FFFE0203B51280A2157039297DA840>I<ECFFC0010F13FC90383F807F9039FE001FC0D8
01F8EB07E048486D7E48486D7E000F8148486D7EA24848147FA2007F168090C8123FA348
16C0AA6C16806D147FA2003F1600A26C6C14FEA26C6C495A6C6C495A6C6C495A6C6C495A
6C6C495A90263FC0FFC7FC90380FFFFC010013C02A297CA833>79
D<B612F815FF16C03A03FC003FE0ED07F0ED03F816FC150116FEA716FC150316F8ED07F0
ED3FE090B61280EDFE0001FCC8FCB0B512F0A327297EA82E>I<B612E015FE6F7E3A03FC
003FE0ED0FF06F7E6F7E150182A65E4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00
FF80ED3FC06F7E6F7E6F7EA9170EA21503923801FC1CB538F000FEEE7FF8EE0FE02F297E
A832>82 D<9038FF80600003EBF0E0000F13F8381F80FD383F001F003E1307481303A200
FC1301A214007EA26C140013C0EA7FFCEBFFE06C13F86C13FE80000714806C14C0C6FC01
0F13E0EB007FEC1FF0140F140700E01303A46C14E0A26C13076C14C0B4EB0F80EBE03F39
E3FFFE0000E15B38C01FF01C297CA825>I<007FB71280A39039807F807FD87C00140F00
781507A20070150300F016C0A2481501A5C791C7FCB3A490B612C0A32A287EA72F>I<B5
00F0EB7FFFA3D803FEC7EA01C00001ED0380A26D14076C16006E5B017F140E80013F5CA2
6E133C011F14386E1378010F14708001075CA26D6C485AA2ECFE0301015CECFF076D91C7
FC1587EC7F8EA215DEEC3FDC15FC6E5AA26E5AA36E5AA26E5AA230297FA833>86
D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA
0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B7E9A21
>97 D<EB3FF03801FFFC3803F03E380FC07FEA1F80EA3F00A248133E007E90C7FCA212FE
A7127EA2127F6CEB03801380001FEB0700380FE00E3803F83C3801FFF838003FC0191B7E
9A1E>99 D<EC7FF0A31407ACEB3F873801FFF73807F03F380FC00F381F8007EA3F00A212
7EA312FEA8127EA27EA2381F800F380FC01F3907E07FFF3801FFE738007F87202A7EA925
>I<EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80127E15C0A200FE1307A2
B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003803907C007003803F01E3800FFFCEB
3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC7FEA03F813F01207143E1400A7B512
C0A33807F000B3A3387FFF80A3182A7EA915>I<9038FF80F00003EBE3F8390FC1FE1C39
1F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E6C137C380FC1F8380BFF
E00018138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C14F0121F383C0007007C
EB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB5120038007FF01E287E9A22
>I<EAFFE0A3120FAC147E9038E1FF809038E30FC001E413E0EBE80701F813F013F0A213
E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA3FE0A3EA1FC0EA0F80EA0700
C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I<EAFFE0A3120FACEC1FFCA3EC0780
EC0F00141E5C5C14E0EBE3C013E7EBEFE0EBFFF08013F3EBE1FCEBC0FE147FA2EC3F80EC
1FC0EC0FE0A2EC07F039FFFC1FFFA3202A7FA923>107 D<EAFFE0A3120FB3B2EAFFFEA3
0F2A7EA912>I<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D80FC49038F101FC
9039C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A3331B7D9A38>I<38
FFC07E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213E0B039FFFE3FFF
A3201B7D9A25>I<EB3FE03801FFFC3803F07E390FC01F80391F800FC0393F0007E0A200
7EEB03F0A300FE14F8A8007E14F0A26CEB07E0A2391F800FC0390FC01F803907F07F0038
01FFFC38003FE01D1B7E9A22>I<38FFE1FE9038EFFF809038FE0FE0390FF803F09038F0
01F801E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038F807F09038FC0F
E09038EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FFC1F0EBC7FCEBC6
3E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114
D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C
13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FF
C000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000
AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F13
07B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<3BFFFC7FFC1FFC
A33B0FE00FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC
1FFC2600FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D
486C5AA2EC800701075CA22E1B7F9A31>119 D<39FFFC03FFA3390FF000F0000714E07F
0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB3F9C14FC6D5AA2
6D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5BEA74F0EA3FE0EA
0F8020277F9A23>121 D E /Fc 54 126 df<1338137813F0EA01E0EA03C0EA0780EA0F
00120E5AA25AA25AA35AAA1270A37EA27EA27E120FEA0780EA03C0EA01E0EA00F8137813
380D2878A21A>40 D<126012F012787E7E7EEA07801203EA01C0A2EA00E0A21370A31338
AA1370A313E0A2EA01C0A2EA03801207EA0F00121E5A5A5A12600D287CA21A>I<13E0A5
38F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA07FCEA1FFF387EEFC038FCE7E0EA
F0E13800E000A513157D991A>I<1218123E127E127F123F121F1207120EA2121C12FC12
F81260080D77851A>44 D<387FFFC0B512E0A26C13C013047D901A>I<1230127812FCA2
12781230060676851A>I<EA03F8EA0FFE381FFF80383C07C0387801E0EA70004813707E
A21260C7FCA214E0A2EB01C01303EB0780EB0F00131E5B5B5BEA03E0485A48C7FC001E13
705A387FFFF0B5FC7E141E7D9D1A>50 D<EA03FCEA0FFF003F13C0383C03E0EA78001470
A2C7FCA214E01301EB07C03803FF80140014C0380003E01300147014781438A2126012F0
1478481370007013E0EA7E03383FFFC0000F1300EA01FC151E7E9D1A>I<1218123C127E
A2123C12181200A91218123C127EA2123E121E120EA2121C123C12F812F01260071C7794
1A>59 D<1338137CA2136C13EEA313C6A2EA01C7A3138300031380A4380701C0A213FFA2
4813E0EA0E00A3001E13F0001C1370387F01FC38FF83FE387F01FC171E7F9D1A>65
D<EAFFFEEBFF8014C0381C03E0130014F01470A414E01301EB07C0381FFF80A214C0381C
01E0EB00F014701438A5147814F01301B512E014C01400151E7E9D1A>I<EB7C38EA01FF
000713F8EA0F83EA1E00001C13785A14385AA214005AA812701438A27EA26C1370001E13
F0380F83E03807FFC00001138038007C00151E7E9D1A>I<EA7FFEB5FC6C1380381C07C0
EB01E0EB00F0147014781438A2143C141CA8143C1438A21478147014F0EB01E0EB07C0EA
7FFFB512006C5A161E7F9D1A>I<B512F8A3381C0038A41400A3130EA3EA1FFEA3EA1C0E
A390C7FCA3141CA5B512FCA3161E7E9D1A>I<B512F8A3381C0038A41400A31307A3EA1F
FFA3EA1C07A390C7FCA8EAFFC0A3151E7E9D1A>I<38FF83FEA3381C0070AA381FFFF0A3
381C0070AB38FF83FEA3171E7F9D1A>72 D<EA7FFFB512806C1300EA01C0B3A6EA7FFFB5
12806C1300111E7C9D1A>I<EA7FE012FF127F000EC7FCB3141CA5387FFFFCB5FC7E161E
7F9D1A>76 D<00FC137E6C13FEA2383B01B8A31383A200391338A213C7A2EA38C613EEA2
136CA2137C1338A21300A700FE13FEA3171E7F9D1A>I<38FE03FE12FFA2381D8070A213
C0121CA213E0A213601370A213301338A21318131CA2130C130EA21306A213071303A238
FF81F0A21380171E7F9D1A>I<EA0FFE383FFF804813C0EA7C07EA700100F013E0EAE000
B1EAF001A2007013C0EA7C07EA7FFF6C1380380FFE00131E7D9D1A>I<EAFFFEEBFF8014
C0381C03E0EB00F0147014781438A41478147014F0EB03E0381FFFC01480EBFE00001CC7
FCA9B47EA3151E7E9D1A>I<EAFFFC13FF1480381C07C0EB01E0EB00F01470A414F0EB01
E0EB07C0381FFF8014001480381C07C01301EB00E0A514E214E7A338FF807EA21438181E
7F9D1A>82 D<3803F8E0EA0FFEEA1FFFEA3C07EA780112F0EAE000A3140012701278EA3F
80EA1FF8EA07FF38007FC0EB07E0EB00F014701438A2126012E0A214706C13F038FE01E0
B512C000EF138038E1FE00151E7E9D1A>I<387FFFFEB5FCA238E0380EA400001300B3A2
3803FF80A3171E7F9D1A>I<38FF01FEA3381C0070A3001E13F0000E13E0A3EA0F010007
13C0A338038380A40001130013C7A3EA00C613EEA3136C137CA21338171E7F9D1A>86
D<00FE13FEA30070131CA26C1338A7137C00181330381CEE70A513C6A2380DC760A31383
A3000F13E0A2380701C0171E7F9D1A>I<EAFFFCA3EAE000B3AFEAFFFCA30E2776A21A>
91 D<EAFFFCA3EA001CB3AFEAFFFCA30E277FA21A>93 D<EA1FF0EA3FFC487EEA780FEA
300738000380A2137FEA07FF121FEA3F83EA7803127012E0A3EA7007EA780F383FFFFCEA
1FFDEA07F016157D941A>97 D<127E12FE127E120EA6133EEBFF80000F13E0EBC1F0EB80
70EB0038120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D
1A>I<EBFF80000313C0000F13E0EA1F01383C00C04813001270A25AA51270A200781370
7E381F01F0380FFFE0000313C03800FE0014157D941A>I<EB0FC0131F130F1301A6EA01
F1EA07FDEA0FFFEA1E0FEA3C07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFF8
3807FDFC3801F1F8161E7E9D1A>I<EA01F8EA07FF481380381E07C0EA3C01387800E012
70481370A2B512F0A300E0C7FC1270A2007813707E381F01F0380FFFE0000313803800FE
0014157D941A>I<EB07E0EB1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0B5FCA23800
E000AF383FFF804813C06C1380151E7F9D1A>I<3801F87C3807FFFE5A381E078C381C03
80383801C0A5381C0380EA1E07381FFF005BEA39F80038C7FCA27E381FFF8014E04813F8
3878007C0070131C48130EA40070131C0078133C003E13F8381FFFF0000713C000011300
17217F941A>I<127E12FE127E120EA6133EEBFF80000F13C013C1EB80E01300120EAC38
7FC3FC38FFE7FE387FC3FC171E7F9D1A>I<13C0487EA26C5A90C7FCA6EA7FE0A31200AF
387FFF80B512C06C1380121F7C9E1A>I<12FEA3120EA6EB0FFC131F130FEB03C0EB0780
EB0F00131E5B5B13FC120F13DE138F380E07801303EB01C014E0EB00F038FFE3FEA3171E
7F9D1A>107 D<EA7FE012FF127F1200B3A6387FFFC0B512E06C13C0131E7D9D1A>I<387C
E0E038FFFBF8EA7FFF381F1F1CEA1E1EA2EA1C1CAC387F1F1F39FFBFBF80397F1F1F0019
1580941A>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAC387FC3FC38FFE7FE
387FC3FC17157F941A>I<EA01F0EA07FCEA1FFF383E0F80EA3C07387803C0EA700138E0
00E0A6EAF001007013C0EA7803383C0780EA3E0F381FFF00EA07FCEA01F013157D941A>
I<EA7E3E38FEFF80007F13E0380FC1F0EB8070EB0038120E141CA7000F13381478EB80F0
EBC1E0EBFFC0000E1380EB3E0090C7FCA8EA7FC0487E6C5A16207F941A>I<387F81F838
FF8FFC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC7E17157F941A>114
D<3807FB80EA1FFF127FEA7807EAE003A30078C7FCEA7FC0EA1FFCEA07FE38003F801307
386001C012E0A2EAF00338FC0780B51200EAEFFEEAE3F812157C941A>I<487E1203A638
7FFFE0B5FCA238038000AA1470A43801C1E013FF6C1380EB3F00141C7F9B1A>I<387E07
E0EAFE0FEA7E07EA0E00AD1301EA0F033807FFFC6C13FE3800FCFC17157F941A>I<387F
83FC38FFC7FE387F83FC380E00E0A3380701C0A338038380A33801C700A3EA00EEA3137C
A2133817157F941A>I<38FF83FEA338380038A26C1370A31338137CA2380C6C60380EEE
E0A413C6000613C0EA07C71383A217157F941A>I<387FC7F8EBCFFCEBC7F8380703C038
038380EBC700EA01EFEA00FE137C13781338137C13EE120113C738038380000713C0EA0F
01387FC7FC00FF13FE007F13FC17157F941A>I<387F83FC38FFC7FE387F83FC380E00E0
A27EEB01C0A2EA0381EB838013C31201EBC700EA00E7A213E61366136E133CA31338A35B
A2EA30F0EA78E01271EA7FC06C5A001EC7FC17207F941A>I<EB07E0131F133FEB78005B
5BAB1201485AB45A90C7FC7FEA03C06C7E1200AB7F1378EB3FE0131F130713277DA21A>
123 D<127CB4FC7FEA03C06C7E1200AB7F1378EB3FE0131F133FEB78005B5BAB1201485A
B45A90C7FC127C13277DA21A>125 D E /Fd 28 123 df<121E123FEA7F80EAFFC0A4EA
7F80EA3F00121E0A0A7A8916>46 D<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200
B3B1007FB512F0A31C2E7AAD28>49 D<EB3FE03801FFFE0007EBFF80D80F8013C0391E00
3FE00038EB1FF0007CEB0FF8007EEB07FCB4FC018013FEA21403A2EA7F00003E1307C7FC
15FCA2EC0FF8A215F0EC1FE015C0EC3F80EC7F00147E14F8495A495A495A49C7FC011E13
0E5B133849131E49131C485A48C7123C48B512FC5A5A5A4814F8B6FCA31F2E7CAD28>I<
EB1FF890B5FC000314C03907E01FF0390F0007F8D81F807FEA3FC06E7EA4EA1F80380F00
07C75BA25D4A5A4A5AEC3F8002FFC7FCEB3FF8ECFF809038001FE06E7E6E7E6E7E816E7E
A21680A3121C123E127FEAFF801600A24A5AEA7F00007E495A003C5C391FC01FF06CB512
C0000391C7FC38003FF8212E7DAD28>I<157015F0140114031407140FA2141F143F1477
14F714E7EB01C7EB0387EB0707130F130E131C1338137013F013E0EA01C0EA0380EA0700
5A120E5A5A5A5AB712E0A3C7380FF000A9010FB512E0A3232E7EAD28>I<000C1430390F
C007F090B512E015C0158015005C14F85C1480000EC8FCA8EB1FF0EBFFFE390FE03F8090
38000FC0000EEB07E0000C14F0C713F8140315FCA215FEA21218123E127F5AA215FCA25A
0078EB07F815F06CEB0FE06CEB1FC0390FC07F806CB51200000113FC38003FE01F2E7CAD
28>I<1578A215FCA34A7EA24A7EA24A7FA34A7FEC0E7F021E7FEC1C3FA202387F151F02
787FEC700FA202E07F1507010180ECC003A249486C7EA201078191C7FC498191B6FCA249
81011CC7123F013C810138141FA24981160F01F081491407A2484881486C1403B549B512
FCA336317DB03D>65 D<913A03FF800180023FEBF00349B5EAFC0701079038003F0FD91F
F8EB079FD93FC0EB01FFD9FF807F4848C8127F4848153F0007161F49150F485A001F1607
A2485A1703127FA24992C7FCA212FFA9127FA27FEF0380123FA26C7E1707000F17006C7E
6D150E0003161E6C6C151C6C6C6C1478D93FC05CD91FF8EB03E0D907FFEB3F800101D9FF
FEC7FCD9003F13F80203138031317CB03A>67 D<B712F016FF17C0C6D9800013F0EE0FF8
EE03FE707E701380EF7FC0173FEF1FE018F0170F18F8A2EF07FCA418FEAB18FCA4EF0FF8
A218F0171F18E0173FEF7FC01880933801FF004C5AEE0FFCEE7FF0B812C094C7FC16F037
317EB03E>I<B812E0A3C6903880007FEE0FF016031601A21600A21770A31738A21507A2
1700A35D5D5D91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB033>70
D<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC07FEA0780C7FCA414
FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407A2387F800D393FC0
1DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>97 D<EA01F812FFA3120F1207AD
EC3FE0ECFFFC9038FBE07F9039FF001F8049EB0FC04914E049EB07F016F8A2ED03FCA316
FEA816FCA3ED07F8A216F06DEB0FE06D14C001E7EB3F809039C3C0FE00903880FFF89038
003FC027327EB12D>I<EB0FFF017F13C03901FC01F03803F0033907E007F8120FEA1FC0
003FEB03F0EC01E04848C7FCA312FFA8127FA36C6C131CA2001F14386C7E000714703903
F001E03901FC07C039007FFF00EB0FF81E207D9F24>I<ED0FC0EC07FFA3EC007F153FAD
EB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F4848133F123FA2485AA312FFA8
127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01FC0F3FFE38007FFEEB0FF027
327DB12D>I<EB0FFC90387FFF803901FC0FC03903F003E03907E001F0000F14F8391FC0
00FC003F14FEA24848137E157FA212FFA290B6FCA20180C7FCA4127FA36C6C1307121F15
0E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807FE0020207E9F25>I<90391F
F007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF000A2
003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC121E
A2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C140F
00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0D800
1F90C7FC242F7E9F28>103 D<EA01F812FFA3120F1207ADEC07F8EC3FFEEC783F02C013
809039F9801FC0EBFB0001FE14E05BA35BB3B500C3B5FCA328327DB12D>I<EA03C0487E
487E487EA46C5A6C5A6C5AC8FCA9EA01F8127FA31207B3A7B51280A311337DB217>I<27
03F007F8EB1FE000FFD93FFEEBFFF8913A783F01E0FC02C090388300FE280FF1801FC613
7F2607F30013CC01F602F8148001FC5CA3495CB3B500C3B5380FFFFCA33E207D9F43>
109 D<3903F007F800FFEB3FFEEC783F02C013803A0FF1801FC03807F30001F614E013FC
A35BB3B500C3B5FCA328207D9F2D>I<EB07FC90387FFFC03901FC07F03903F001F84848
6C7E4848137E001F147F003F158049133F007F15C0A300FF15E0A8007F15C0A36C6CEB7F
80A2001F15006C6C13FE00075C3903F803F83901FE0FF039007FFFC0D907FCC7FC23207E
9F28>I<3901F83FE000FFEBFFFC9038FBE07F9039FF003F80D807FEEB1FC049EB0FE049
14F0ED07F8A216FC1503A216FEA816FC1507A216F8A2ED0FF06D14E06DEB1FC06DEB3F80
9039FBC0FE009038F8FFF8EC3FC091C8FCABB512C0A3272E7E9F2D>I<3803F03F00FFEB
7FC09038F1C3E01487390FF30FF0EA07F6A29038FC07E0EC03C091C7FCA25BB2B512E0A3
1C207E9F21>114 D<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90C7FC
B47E13FC387FFFC06C13F0806C7F00077F00017FEA003F01001380143F0060131F00E013
0FA27E15007E6C131E6C131C38FF807838F3FFF038C07F8019207D9F20>I<131CA5133C
A3137CA213FC120112031207381FFFFEB5FCA2D803FCC7FCB0EC0380A71201EC0700EA00
FEEB7F0EEB3FFCEB07F0192E7FAD1F>I<D801F8EB07E000FFEB03FFA3000FEB003F0007
141FB3153FA20003147FA26C6CEBDFF03A00FE039FFF90387FFF1FEB0FFC28207D9F2D>
I<B5EB1FFCA3D80FF8EB03C0000715806D1307000315007F0001140E7F6C5CA2EC803C01
7F1338ECC078013F1370ECE0F0011F5B14F1010F5B14F9903807FB80A214FF6D90C7FCA2
6D5AA26D5AA21478A21470A214F05C1301007C5BEAFE035C49C8FC5BEAFC1EEA787CEA3F
F0EA0FC0262E7E9F2B>121 D<003FB512F8A29038800FF0393E001FE0003C133F003814
C00078EB7F8014FFD8700113005C1303495A00005B130F495A5C495A137F9038FF801C14
005A485A5B0007143C485A49133848481378003F14F8EBC001387F8007B6FCA21E207E9F
24>I E /Fe 27 91 df<121C123E127EA2123A1202A21204A21208A21210122012401280
070F7D840E>44 D<1230127812F81278127005057C840E>46 D<EB1FC0EB6070EB803838
01003C0002131C48131EA2120F1380A2EB003E0006133CC7FC1478A214F0EB01E014C0EB
0380EB0700130E13185B5B5B38018010EA030012044813205A383FFFE04813C0B5FC1721
7EA018>50 D<EB3F80EBC0E038010070000213785AEA0780120FA2380700F8C712F0A2EB
01E014C0EB0380EB0E0013FC1307EB038014C0EB01E0A314F01230387803E012F8A200F0
13C0EA800700401380EB0F00EA201EEA1838EA07E015227DA018>I<1420146014E01301
A21302EB05C013091319131113211341EB83801201130312021204120838180700121012
2012401280B512F838000E00A65B131E3801FFE015217DA018>I<38018008EBE078EBFF
F014E0148038027E0090C7FCA55A133EEBC380380701C0EA040014E0C7FC14F0A5127038
F801E012F012E0008013C038400380EB0700A2EA200CEA1838EA07E015227DA018>I<14
041406140E141EA2143E143F144FA2148FA29038010F8014071302A2130481EB0803A213
10A2132090383FFFE0EB400113C01380EA01008100021300A25AA2000C80003E13013AFF
800FFF8021237EA225>65 D<0003B512E039003E0078013C133C151E151F150FA25B151F
A3153E153C491378EC01F0EC07C090B5FC9038F001F0EC00F848481378157C153C153EA3
4848133C157CA215F815F0EC01E039078003C09038C00F80B5EAFC0020227EA123>I<90
3801FC0290380F030690383C008C0170135C49133C485A4848131C48C7FC481418121E15
08123E123C127C15005AA55AA31520A215407E127815800038EB0100123C001C13026C13
0C6C13103801C0E0D8003FC7FC1F247AA223>I<0007B57E39007C01E090387800788115
1C151E815BA216801507A2150F485AA64848EB1F00A3151E153E153C485A5D5D5D4A5A4A
5A260F000FC7FCEB803CB512F021227DA125>I<0007B512FE39007C003E0178131C150C
1504A35BA314041500140C3801E008A21438EBFFF8EBE03814183803C010A31504EC0008
A2485A1510A2153015201560390F0001E090388007C0B6FC1F227DA121>I<0007B512FE
39007C003E0178131C150C1504A35BA314041500140C3801E008A21438EBFFF8EBE03814
183803C010A491C7FCA2485AA6120FA2EAFFFC1F227DA120>I<ECFE0190380701839038
1C00460170132E49131E485A4848130E120748C7120C121E1504123E123C127C15005AA5
5AEC3FFFEC01F01400A36CEB01E01278A212387E6C13030006EB04C0380380083901E070
4039003F800020247AA226>I<3A07FFC1FFF03A007C001F000178131EA5495BA648485B
A390B512F89038E00078A248485BA64848485AA64848485A01807F39FFF83FFE24227DA1
25>I<3807FFC038007C001378A55BA6485AA6485AA6485AA648C7FC7FEAFFF812227DA1
12>I<3A07FFC00FF83A007C0003E001781480ED02005D5D15304913405D4AC7FC14025C
14103801E030147014F8EBE178EBE67CEBE83C3803D03EEBE01E13C080A26E7EEA07806E
7EA26E7EA281EA0F0001807F39FFF80FFF25227DA126>75 D<3807FFE0D8007CC7FC1378
A55BA6485AA6485AA31540A21580485AA2140115005C5C48485AEB803EB512FE1A227DA1
1E>I<D807FCEC1FF0D8007CEC3F00015E143E165EA2169EA2018F495AA21502A2150490
38878008D801075C1510A21520EB03C0154000025D1580A2903801E100A214E200044A5A
14E4EB00F8A214F0120C4A485A003E01607F3AFFC0403FFE2C227DA12D>I<D807FCEB3F
F0D8007CEB0780017EEB0300015E1302135F134F148001875BA2EB83C0A2EB81E0A248C6
6C5AA21478A2143CA200026D5AA2141F140F159014074814A0EC03E0A21401A2000C1300
5D003E1440EAFFC024227DA125>I<EB01FCEB0E0790383801C090387000E0484813F048
481378485A90C7123C5A121E153E5AA2127CA25AA5157C5AA215F8A26C14F01401007814
E0EC03C0EC07806C1400001C130E6C5B6C13783803C1E0D8007FC7FC1F247AA226>I<00
07B5128039007C01E090387800F01578A2157CA25BA4157815F8484813F0EC01E0EC03C0
EC0F00EBFFFC01E0C7FC485AA6485AA648C8FC7FEAFFF81E227DA121>I<0007B5FC3900
7C03C090387800F01578A2157CA25BA45D5D4848485A4A5A020FC7FCEBFFF8EBE018140E
EA03C080A281A33807800FA41680ED8100EA0F0090388007C239FFF803C6C812F821237D
A124>82 D<90380FC080EB30319038C00B00380180071203497E5AA2000E1302A2120F91
C7FCA27FEA07E013FE3803FFC06C7F6C6C7EEB0FF81300147880A31220481338A3006013
301470146000F05B38E80180D8C607C7FCEA81FC19247DA21B>I<001FB512FE393C03E0
3E0038EBC00C00301404122012601240EB078012C01280A200001400A249C7FCA6131EA6
5BA6137C13FC381FFFF01F227AA123>I<39FFF807FE390F8000F090C712601540A4001E
1480A648EB0100A6481302A55CA35CA200385B5C6C5B6C5BD80703C7FCEA00FC1F2378A1
25>I<D8FFF0EB3FE0D80FC0EB0F0049130E000714086D1318000314106D5B00015C6D5B
A2000049C7FCEBF802EB7804EB7C0CEB3C08EB3E10EB1E20EB1F4014C06D5A91C8FCA413
0E131EA5131C133C133E3803FFE023227AA125>89 D<48B512F83903F000F09038C001E0
90388003C013000006EB07800004EB0F00141E120C00085B5CC75AA2495A495A13075C49
C7FC131E133E133C4913405B1201491380485A485A000F130101001300001E5B485B007C
131F0078137EB512FE1D227DA11E>I E /Ff 73 125 df<90381FC1F090387037189038
C03E3C3801807C000313783907003800A9B612C03907003800B2143C397FE1FFC01E2380
A21C>11 D<EB1FC0EB7020EBC0103801803800031378EA0700143091C7FCA7B512F83807
00781438B2397FE1FF80192380A21B>I<90380FC07F90397031C0809039E00B00402601
801E13E00003EB3E013807003C91381C00C01600A7B712E03907001C011500B23A7FF1FF
CFFE272380A229>14 D<EA7038EAF87CEAFC7EA2EA743AEA0402A4EA0804A2EA1008A2EA
2010EA40200F0F7EA218>34 D<127012F812FCA212741204A41208A21210A21220124006
0F7CA20E>39 D<132013401380EA01005A12061204120CA25AA25AA312701260A312E0AE
1260A312701230A37EA27EA2120412067E7EEA0080134013200B327CA413>I<7E12407E
7E12187E12041206A27EA2EA0180A313C01200A313E0AE13C0A312011380A3EA0300A212
06A21204120C5A12105A5A5A0B327DA413>I<127012F812FCA212741204A41208A21210
A212201240060F7C840E>44 D<EAFFF8A20D02808B10>I<127012F8A3127005057C840E>
I<EA01F0EA071CEA0C06487E00381380A2387001C0A400F013E0AE007013C0A3EA780300
381380A2381C0700EA0C06EA071CEA01F013227EA018>48 D<13801203120F12F31203B3
A9EA07C0EAFFFE0F217CA018>I<EA03F0EA0C1CEA100700201380384003C0A2008013E0
12F0EAF801A3EA2003120014C0A2EB07801400130E5B13185B5B5B485A90C7FC00021320
5A5A00181360481340383FFFC05AB5FC13217EA018>I<EA03F8EA0C1EEA100F38200780
004013C0127813031307123800001380A214005B130C1338EA03F0EA001C130FEB0780A2
EB03C0A214E01220127012F8A200F013C01240EB0780122038100F00EA0C1CEA03F01322
7EA018>I<1303A25BA25B1317A21327136713471387120113071202120612041208A212
101220A2124012C0B512F838000700A7EB0F80EB7FF015217FA018>I<00101380381E07
00EA1FFF5B13F8EA17E00010C7FCA6EA11F8EA120CEA1C07381803801210380001C0A214
E0A4127012F0A200E013C01280EA4003148038200700EA1006EA0C1CEA03F013227EA018
>I<137EEA01C138030080380601C0EA0C03121C381801800038C7FCA212781270A2EAF0
F8EAF30CEAF4067F00F81380EB01C012F014E0A51270A3003813C0A238180380001C1300
EA0C06EA070CEA01F013227EA018>I<12401260387FFFE014C0A23840008038C0010012
801302A2485A5BA25B5BA21360134013C0A21201A25B1203A41207A76CC7FC13237DA118
>I<EA01F8EA060EEA0803381001801220386000C0A31270A238780180003E1300EA3F02
EA1FC4EA0FF812036C7EEA067EEA083F38100F80383007C0EA6003EB00E05A1460A40060
134014C06C138038180300EA0E0EEA03F013227EA018>I<EA01F0EA060C487EEA180738
3803801270A238F001C0A314E0A5127013031238EA1805120CEA0619EA03E1380001C0A3
EB0380A21230387807001306EA700CEA20186C5AEA0FC013227EA018>I<127012F8A312
701200AB127012F8A3127005157C940E>I<497EA3497EA3EB05E0A2EB09F01308A2EB10
78A3497EA3497EA2EBC01F497EA248B51280EB0007A20002EB03C0A348EB01E0A348EB00
F0121C003EEB01F839FF800FFF20237EA225>65 D<B512F8380F800E0007EB0780EC03C0
15E0140115F0A515E01403EC07C0EC0F80EC3E00EBFFFE9038800780EC03C0EC01E015F0
140015F8A6EC01F0A2EC03E0EC07C0000FEB0F00B512FC1D227EA123>I<903807E01090
38381830EBE0063901C0017039038000F048C7FC000E1470121E001C1430123CA2007C14
101278A200F81400A812781510127C123CA2001C1420121E000E14407E6C6C13803901C0
01003800E002EB381CEB07E01C247DA223>I<B512F0380F801E00071307EC0380EC01C0
EC00E015F01578A2157C153CA3153EA9153CA2157C1578A215F015E01401EC03C0EC0700
000F131EB512F01F227EA125>I<B612C0380F80070007130114001540A215601520A314
201500A3146014E013FF138014601420A315081400A21510A31530A2157015E0000F1303
B6FC1D227EA121>I<B612C0380F80070007130114001540A215601520A314201500A314
6014E013FF138014601420A491C7FCA9487EEAFFFE1B227EA120>I<903807F00890383C
0C18EBE0023901C001B839038000F848C71278481438121E15185AA2007C14081278A200
F81400A7EC1FFF0078EB00F81578127C123CA27EA27E7E6C6C13B86C7E3900E003189038
3C0C08903807F00020247DA226>I<39FFFC3FFF390FC003F039078001E0AE90B5FCEB80
01AF390FC003F039FFFC3FFF20227EA125>I<EAFFFCEA0FC0EA0780B3ACEA0FC0EAFFFC
0E227EA112>I<EAFFFCEA1F806CC7FCB3A21401A41403A214021406A2141E48137EB512
FE18227DA11E>76 D<D8FFC0EB03FF000F15F0000715E0D805E01305A2D804F01309A301
781311A36D1321A36D1341A26D1381A39038078101A3EB03C2A2EB01E4A3EB00F8A31470
120E001FEC03F03AFFE0203FFF28227EA12D>I<39FF8007FF3907C000F81570D805E013
20EA04F0A21378137C133C7F131F7FEB0780A2EB03C0EB01E0A2EB00F014F81478143C14
3E141E140FA2EC07A0EC03E0A21401A21400000E1460121FD8FFE0132020227EA125>I<
EB0FE0EB783CEBE00E3903C0078039078003C0390F0001E0000E1300001E14F0481478A2
007C147CA20078143CA200F8143EA90078143C007C147CA2003C1478003E14F8001E14F0
6CEB01E0A239078003C03903C007803900E00E00EB783CEB0FE01F247DA226>I<B512F0
380F803C0007130FEC078015C0140315E0A615C014071580EC0F00143CEBFFF00180C7FC
AE487EEAFFFC1B227EA121>I<EB0FE0EB783CEBE00E3903C0078039078003C0390F0001
E0000E1300001E14F0003E14F8003C1478007C147CA20078143CA200F8143EA90078143C
007C147CA2003C1478A2391E0380F0390E0420E0380F080139078813C03903C817803900
E80E0090387C3C02EB0FECEB000CA2EC0E06EC0F0EEC07FCA215F81403EC01E01F2D7DA2
26>I<B512E0380F803C0007130E6E7E81140381A55D14075D020EC7FC143CEBFFE0EB80
708080141E140E140FA481A3168015C014073A0FC003C10039FFFC01E2C8127C21237EA1
24>I<3803F020380C0C60EA1802383001E0EA70000060136012E0A21420A36C1300A212
78127FEA3FF0EA1FFE6C7E0003138038003FC0EB07E01301EB00F0A214707EA46C1360A2
6C13C07E38C8018038C60700EA81FC14247DA21B>I<007FB512F8397807807800601418
00401408A300C0140C00801404A400001400B3A3497E3801FFFE1E227EA123>I<39FFFC
07FF390FC000F86C4813701520B3A5000314407FA2000114806C7E9038600100EB3006EB
1C08EB03F020237EA125>I<D8FFF0EB7FC0D81F80EB1F006CC7120C7F00071408A26C6C
5BA36C6C5BA26D136000001440A201785BA2137CD93C01C7FCA2EB1E02A36D5AA2148CEB
0788A2EB03D0A214F06D5AA26D5AA322237FA125>I<3BFFF03FFC03FE3B1F8007E000F8
6C486C48137017206E7ED807801540A24A7E2603C0021480A39039E004780100011600A2
EC083CD800F01402A2EC101E01785CA2EC200F013C5CA20260138890391E400790A216D0
90391F8003F0010F5CA2EC00016D5CA20106130001025C2F237FA132>I<D8FFF0EB7FC0
D81F80EB1F00000F140C000714087F00035C6C6C5B7F00005C6D13C0017C5BD93C01C7FC
133EEB1E02EB1F06EB0F84EB078814D8EB03D014E01301AC1303EB3FFE22227FA125>89
D<387FFFFE387E003E0078133C007013781260004013F012C0EB01E0388003C0A2EB0780
1200EB0F005B131E5BA25BA25B1201EBE001EA03C0A2EA07801403EA0F00001E1302A248
1306140E48131E00F8137EB512FE18227DA11E>I<EA0804EA1008EA2010A2EA4020A2EA
8040A4EAB85CEAFC7EA2EA7C3EEA381C0F0F7AA218>92 D<EA1FE0EA3038EA780C130EEA
30071200A313FFEA07C7EA1E07123C1278127000F01308A3130FEA7817383C2390380FC1
E015157E9418>97 D<120E12FE121E120EAB131FEB61C0EB8060380F0030000E1338143C
141C141EA7141C143C1438000F1370380C8060EB41C038083F0017237FA21B>I<EA01FE
EA0703380C0780121C383803000078C7FC127012F0A712700078134012386C1380380C01
00EA0706EA01F812157E9416>I<14E0130F13011300ABEA01F8EA0704EA0C02EA1C01EA
38001278127012F0A7127012781238EA1801EA0C0238070CF03801F0FE17237EA21B>I<
EA01FCEA0707380C0380381C01C01238007813E0EA700012F0B5FC00F0C7FCA512700078
132012386C13406C138038070300EA00FC13157F9416>I<133E13E33801C780EA038713
0748C7FCA9EAFFF80007C7FCB27FEA7FF0112380A20F>I<14703803F198380E1E18EA1C
0E38380700A200781380A400381300A2EA1C0EEA1E1CEA33F00020C7FCA212301238EA3F
FE381FFFC06C13E0383000F0481330481318A400601330A2003813E0380E03803803FE00
15217F9518>I<120E12FE121E120EABEB1F80EB60C0EB80E0380F0070A2120EAF38FFE7
FF18237FA21B>I<121C123EA3121CC7FCA8120E127E121E120EB1EAFFC00A227FA10E>I<
13E0EA01F0A3EA00E01300A81370EA07F012001370B3A51260EAF0E013C0EA6180EA3F00
0C2C83A10F>I<120E12FE121E120EABEB03FCEB01F014C01480EB02005B5B5B133813F8
EA0F1CEA0E1E130E7F1480EB03C0130114E0EB00F014F838FFE3FE17237FA21A>I<120E
12FE121E120EB3ADEAFFE00B237FA20E>I<390E1FC07F3AFE60E183803A1E807201C03A
0F003C00E0A2000E1338AF3AFFE3FF8FFE27157F942A>I<380E1F8038FE60C0381E80E0
380F0070A2120EAF38FFE7FF18157F941B>I<EA01FCEA0707380C0180381800C0003813
E0481370A200F01378A700701370007813F0003813E0381C01C0380E038038070700EA01
FC15157F9418>I<EA0E1F38FE61C0380E8060380F0070000E1338143CA2141EA7143CA2
1438000F1370380E80E0EB41C0EB3F0090C7FCA9EAFFE0171F7F941B>I<3801F8203807
0460EA0E02EA1C01003813E0EA7800A25AA71278A2EA3801121CEA0C02EA070CEA01F0C7
FCA9EB0FFE171F7E941A>I<EA0E3CEAFE46EA1E8FEA0F0F13061300120EAD120FEAFFF0
10157F9413>I<EA0F88EA3078EA601812C01308A212E0EAF000127FEA3FE0EA0FF0EA01
F8EA003CEA801C130CA212C01308EAE018EAD030EA8FC00E157E9413>I<1202A41206A3
120E121E123EEAFFFCEA0E00AB1304A6EA07081203EA01F00E1F7F9E13>I<000E137038
FE07F0EA1E00000E1370AD14F0A238060170380382783800FC7F18157F941B>I<38FF80
FE381E00781430000E1320A26C1340A2EB80C000031380A23801C100A2EA00E2A31374A2
1338A3131017157F941A>I<39FF8FF87F393E01E03C001CEBC01814E0000E1410EB0260
147000071420EB04301438D803841340EB8818141CD801C81380EBD00C140E3900F00F00
497EA2EB6006EB400220157F9423>I<38FF83FE381F00F0000E13C06C1380EB8100EA03
83EA01C2EA00E41378A21338133C134E138FEA0187EB0380380201C0000413E0EA0C0038
3E01F038FF03FE17157F941A>I<38FF80FE381E00781430000E1320A26C1340A2EB80C0
00031380A23801C100A2EA00E2A31374A21338A31310A25BA35B12F05B12F10043C7FC12
3C171F7F941A>I<383FFFC038380380EA300700201300EA600EEA401C133C1338C65A5B
12015B38038040EA07005A000E13C04813805AEA7801EA7007B5FC12157F9416>I<B512
FE1701808C18>I<B9FC3001808C31>I E /Fg 61 123 df<90380FF83F90397FFDFFC03A
01F81FE3E03903E03F87EA07C0D80F801307ED03C06EC7FCA6B612FCA2260F801FC7FCB2
397FF0FFF0A223237FA221>11 D<EB0FF0EB7FFC3801F80E3803E01F48485AEA0F80A214
1E140C91C7FCA4B6FCA2380F801FB2397FF0FFE0A21B237FA21F>I<1238127C12FEA512
7CA81238A81200A51238127C12FEA3127C123807237BA211>33 D<137013F81370A20020
13200070137038FC71F8387E73F0383F27E03807AF00EA00F8A2EA07AF383F27E0387E73
F038FC71F8387070700020132000001300A213F8137015167DA41C>42
D<1238127C12FE12FFA2127F123B1203A31206A2120C121C12181270122008117C8610>
44 D<EAFFFCA40E047F8C13>I<1238127C12FEA3127C123807077C8610>I<13FE3807FF
C0380F83E0381F01F0383E00F8A248137CA312FC147EAD007C137CA36C13F8A2381F01F0
380F83E03807FFC03800FE0017207E9F1C>48 D<13181378EA01F812FFA21201B3A7387F
FFE0A213207C9F1C>I<EA03FCEA0FFF383C1FC0387007E0007C13F0EAFE0314F8A21301
127CEA3803120014F0A2EB07E014C0EB0F80EB1F00133E13385BEBE018EA01C0EA0380EA
0700000E1338380FFFF05A5A5AB5FCA215207D9F1C>I<13FE3807FFC0380F07E0381E03
F0123FEB81F8A3EA1F0314F0120014E0EB07C0EB1F803801FE007F380007C0EB01F014F8
EB00FCA2003C13FE127EB4FCA314FCEA7E01007813F8381E07F0380FFFC03801FE001720
7E9F1C>I<14E013011303A21307130F131FA21337137713E7EA01C71387EA0307120712
0E120C12181238127012E0B6FCA2380007E0A790B5FCA218207E9F1C>I<00301320383E
01E0383FFFC0148014005B13F8EA33C00030C7FCA4EA31FCEA37FF383E0FC0383807E0EA
3003000013F0A214F8A21238127C12FEA200FC13F0A2387007E0003013C0383C1F80380F
FF00EA03F815207D9F1C>I<EB1F80EBFFE03803E0703807C0F0380F01F8121F123EA238
7E00F0007C1300A2EAFC08EB7FC0EBFFE038FD80F038FF00F848137CA248137EA4127CA3
003C137C123E001E13F86C13F0380783E03803FFC0C6130017207E9F1C>I<1260127838
7FFFFEA214FC14F8A214F038E0006014C038C00180EB0300A2EA00065B131C1318133813
78A25BA31201A31203A76C5A17227DA11C>I<13FE3803FFC0380703E0380E00F05A1478
123C123E123F1380EBE0F0381FF9E0EBFFC06C13806C13C06C13E04813F0381E7FF8383C
1FFCEA7807EB01FEEAF000143E141EA36C131C007813387E001F13F0380FFFC000011300
17207E9F1C>I<1470A214F8A3497EA2497EA3EB067FA2010C7F143FA2496C7EA201307F
140F01707FEB6007A201C07F90B5FC4880EB8001A2D803007F14004880000680A23AFFE0
07FFF8A225227EA12A>65 D<B67E15F03907F001F86E7E157EA2157FA5157E15FE5DEC03
F890B55AA29038F001FCEC007E811680151F16C0A6ED3F80A2ED7F00EC01FEB612F815C0
22227EA128>I<D903FE138090381FFF819038FF01E33901F8003FD803E0131F4848130F
48481307121F48C71203A2481401127EA200FE91C7FCA8127EED0180127F7E15036C6C14
00120F6C6C1306D803F05B6C6C13386CB413F090381FFFC0D903FEC7FC21227DA128>I<
B67E15F03907F003FCEC007E81ED1F80ED0FC0ED07E0A216F01503A316F8A916F0A3ED07
E0A2ED0FC0ED1F80ED3F00157EEC03FCB612F0158025227EA12B>I<B612FCA23807F000
153C151C150C150EA21506140CA31500141C143CEBFFFCA2EBF03C141C140CA21503A214
001506A3150EA2151E153EEC01FCB6FCA220227EA125>I<B612F8A23807F001EC007815
381518151CA2150CA21418A21500A214381478EBFFF8A2EBF07814381418A491C7FCA8B5
12C0A21E227EA123>I<D903FE134090391FFFC0C090387F00F1D801F8133F4848130FD8
07C01307000F1403485A48C71201A2481400127EA200FE1500A791380FFFFC127E007F90
38001FC0A27EA26C7E6C7E6C7E6C7ED801FC133F39007F80E790381FFFC3010313002622
7DA12C>I<B53883FFFEA23A07F0001FC0AD90B6FCA29038F0001FAFB53883FFFEA22722
7EA12C>I<B51280A23807F000B3ACB51280A211227EA115>I<B538803FFCA23A07F00003
80ED0700150E15185D15E04A5A4A5A4AC7FC140E1418143C14FCEBF1FEEBF3FFEBF77F90
38FE3F8001F87F496C7E140F6E7E816E7E1401816E7E81ED3F8016C0ED1FE0B53881FFFE
A227227EA12C>75 D<B512C0A2D807F0C7FCB31518A41538A21570A215F014011407B6FC
A21D227EA122>I<D8FFF0EC0FFF6D5C000716E0D806FC1437A3017E1467A26D14C7A290
391F800187A290390FC00307A3903807E006A2903803F00CA2903801F818A3903800FC30
A2EC7E60A2EC3FC0A2EC1F80A3EC0F00D8FFF091B5FC140630227EA135>I<D8FFF8EB1F
FE7F0007EC00C07FEA06FF6D7E6D7E6D7E130F806D7E6D7E6D7E130080EC7F80EC3FC0EC
1FE0EC0FF0140715F8EC03FCEC01FEEC00FF157FA2153F151F150F15071503A2D8FFF013
01150027227EA12C>I<EB07FC90383FFF809038FC07E03903F001F848486C7E4848137E
48487FA248C7EA1F80A24815C0007E140FA200FE15E0A9007E15C0007F141FA26C15806D
133F001F15006C6C137E6C6C5B6C6C485A3900FC07E090383FFF80D907FCC7FC23227DA1
2A>I<B6FC15E03907F007F0EC01FC1400157EA2157FA5157EA215FC1401EC07F090B512
E0150001F0C7FCADB57EA220227EA126>I<B512FEECFFC03907F007F0EC01F86E7E157E
157FA6157E5D4A5AEC07F090B512C05D9038F00FE06E7E6E7E6E7EA81606EC00FEEDFF0C
B538803FF8ED0FF027227EA12A>82 D<3801FE023807FF86381F01FE383C007E007C131E
0078130EA200F81306A27E1400B4FC13E06CB4FC14C06C13F06C13F86C13FC000313FEEA
003F1303EB007F143FA200C0131FA36C131EA26C133C12FCB413F838C7FFE00080138018
227DA11F>I<007FB61280A2397E03F80F00781407007014030060140100E015C0A200C0
1400A400001500B3A248B512F0A222227EA127>I<B538803FFCA23A07F0000180B3A600
03EC03007F000114066C6C130E017E5B90383F80F890380FFFE0010190C7FC26227EA12B
>I<B5EB0FFEA2D807F0EB00C0A26C6CEB0180A26D1303000115007F000014067F6D5BA2
EC801C013F1318ECC038011F133014E0010F5BA26D6C5AA214F901035B14FD6DB4C7FCA2
6D5AA3147CA21438A227227FA12A>I<3A7FFFC1FFF8A23A03FC000C006C6C5B15386C6C
13306D6C5A15E090383FC1C090381FE18002E3C7FCEB0FF7EB07FE6D5AA26D7E13008081
497F14BF9038031FE0496C7E130E90380C07F8496C7E1338496C7E90386000FF5B0001EC
7F8049EB3FC03AFFFC03FFFEA227227FA12A>88 D<B5EB0FFEA2D807F8EB00C015016C6C
14806DEB030000015C6C6C13065D90387F801C90383FC018153890381FE0306D6C5A15E0
6D6C5A903803FD8014FF6D90C7FC5C1300AC90381FFFF0A227227FA12A>I<EA0FFC383F
FF80387E07C0EB03E0130114F0123C1200A2133FEA03FDEA1FC1EA3F01127E12FCA4EA7E
02EB0CF8381FF87F3807E03F18167E951B>97 D<B4FCA2121FABEB0FE0EB3FF8EBE07CEB
803E497EEC0F80A215C0A81580141F01801300EBC03E381EE07C381C3FF838180FC01A23
7EA21F>I<EBFF80000713E0380F83F0EA1F03123E127E387C01E090C7FC12FCA6127C12
7EA2003E13186C1330380FC0603807FFC0C6130015167E9519>I<EB01FEA2EB003EABEA
01FC3807FFBE380F81FE381F007E003E133E127E127C12FCA8127CA26C137E6C13FE380F
83BE3907FF3FC0EA01FC1A237EA21F>I<13FE3807FF80380F87C0381E01E0003E13F0EA
7C0014F812FCA2B5FCA200FCC7FCA3127CA2127E003E13186C1330380FC0703803FFC0C6
130015167E951A>I<EB1FC0EB7FE0EBF1F0EA01E31203EA07C3EBC1E0EBC000A6EAFFFE
A2EA07C0B2EA3FFCA2142380A211>I<3801FE0F3907FFBF80380F87C7381F03E7391E01
E000003E7FA5001E5BEA1F03380F87C0EBFF80D809FEC7FC0018C8FCA2121C381FFFE06C
13F86C13FE001F7F383C003F48EB0F80481307A40078EB0F006C131E001F137C6CB45A00
0113C019217F951C>I<B4FCA2121FABEB07E0EB1FF8EB307CEB403CEB803EA21300AE39
FFE1FFC0A21A237EA21F>I<121C123E127FA3123E121CC7FCA7B4FCA2121FB2EAFFE0A2
0B247EA310>I<B4FCA2121FABECFF80A2EC38001460495A495A49C7FC130E5B137E13FF
13CFEB0F806D7E6D7E1301806D7E147C143C39FFE0FFC0A21A237EA21E>107
D<B4FCA2121FB3ADEAFFE0A20B237EA210>I<3AFF07F007F090391FFC1FFC3A1F303E30
3E01401340496C487EA201001300AE3BFFE0FFE0FFE0A22B167E9530>I<38FF07E0EB1F
F8381F307CEB403CEB803EA21300AE39FFE1FFC0A21A167E951F>I<13FE3807FFC0380F
83E0381E00F0003E13F848137CA300FC137EA7007C137CA26C13F8381F01F0380F83E038
07FFC03800FE0017167E951C>I<38FF0FE0EB3FF8381FE07CEB803E497E1580A2EC0FC0
A8EC1F80A29038803F00EBC03EEBE0FCEB3FF8EB0FC090C8FCA8EAFFE0A21A207E951F>
I<EAFE1FEB3FC0381E67E013C71387A2381F83C090C7FCADEAFFF0A213167E9517>114
D<EA0FF3EA3FFFEA781FEA6007EAE003A212F000FCC7FCEA7FE013F8EA3FFEEA0FFF1201
38000F80EAC007130312E0A238F00700EAFC0EEAEFFCEAC7F011167E9516>I<487EA412
03A21207A2120F123FB5FCA2EA0F80ABEB8180A5EB8300EA07C3EA03FEEA00F811207F9F
16>I<38FF01FEA2381F003EAF147E14FE380F81BE3907FF3FC0EA01FC1A167E951F>I<39
FFE01FE0A2391F800700000F1306EBC00E0007130C13E000035BA26C6C5AA26C6C5AA2EB
7CC0A2137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFE3FF07F8A23A1F007800C090
38807C01000F1580A23A07C07E030014DE5D3903E1DF06148FD801F1138CEBF307A2D800
FF13D8EBFE0315F890387C01F0A2013C5BEB3800A225167F9528>I<39FFE01FE0A2391F
800700000F1306EBC00E0007130C13E000035BA26C6C5AA26C6C5AA2EB7CC0A2137F6D5A
A26DC7FCA2130EA2130CA25B1278EAFC3813305BEA69C0EA7F80001FC8FC1B207F951E>
121 D<387FFFF0A2387C03E0387007C0EA600F38E01F8000C01300133E137EC65A5B485A
00031330EA07E013C0380F8070121F383F0060003E13E0EA7C03B5FCA214167E9519>I
E /Fh 31 123 df<92380FFF804AB512E0020F14F891393FFC01FC9139FFE0003E010301
80133F4948C7B47E4948497F011F5C5C133F5C137FA3705B7090C7FC177E94C8FCA79338
7FFFE0B9FCA43A007FF0000182B3B3003FB5D8E07FEBFFC0A43A487EC741>12
D<EA07C0EA1FE0EA3FF8127F13FCEAFFFEA313FFA27EA27EEA1FF7EA07C7EA0007A2130F
130EA3131CA31338A2137013F013E0EA01C0EA0380EA0700120E5A12081023788E20>44
D<EC01E01403140F143F14FF130F0003B5FCB6FCA213F1EAFC011200B3B3B1003FB71280
A4294478C33A>49 D<ECFFE0010F13FE013F6D7E90B612E02601FE0113F83A07F0007FFC
D80FC0EB1FFE48486D7E90C76C13804816C0D87FE06D13E07F6D6D13F012FF7F17F881A3
6C5A6C5A6C5A6C5AC84813F0A317E05D17C05D17804B13005E4B5A5E4B5A4B5A5E4B5A4A
48C7FC4A5A4A5AEC0FE05D4A5A4AC8FC027E147814F8495A494814F8494814F0495A49C8
FC133E0138140149140390B7FC4816E05A5A5A5A5A5AB812C0A42D447AC33A>I<EC7FF8
0103B57E011F14F090393F807FF89039FC000FFED801F06D7E4848158048486D13C013F8
486C15E06D7F486C15F0A314801400A26C4A13E06C5A6C5A6C4815C0C85A178017004B5A
5E4B5A4B5AEDFFC0020790C7FC903803FFFC5DEDFF8090C7EA7FF0ED1FFCED07FE923803
FF8017C06F13E017F0A217F88117FCA217FEEA0380EA0FE0EA3FF8487EA2487EA217FCA3
17F86C485B4915F06C5A494913E0D81F8015C0D80FE0491380D807F8011F13003A03FF80
7FFEC690B512F8013F14E0010F91C7FC010013F02F457BC33A>I<EE0F80A2161F163F16
7F16FFA25D5D5D5DA25D5D5D157B15F3EC01E31403EC07C31583EC0F03141E143E143C14
7814F01301EB03E014C0EB0780EB0F005B131E5B5B13F8485A5B485A485A120F90C7FC12
1E5A5A12F8B912E0A4C80007EB8000AD023FB612E0A433447DC33A>I<0006ED0180D807
E0141F01FFEB03FF91B612005E5E5E5E5E5E93C7FC5D15F815C0D9DFFCC8FC01C0C9FCAB
EC7FF001C3B5FC01DF14C09039FF807FF09039FC001FF801F0EB07FC01C080496D7E90C7
1480C814C0A26F13E0A217F0A317F8A21207EA1FC0487E487E487EA417F05BA26C4815E0
01805B007CC714C0123C003E4A13806C16006C6C495A6C6C495AD803F0495A3A01FE01FF
F06CB612C0013F91C7FC010F13FC010113802D457AC33A>I<DC7FFE1406030FB500C013
1E037F02F8133E0203B600FE137E020F903AF800FF80FE023F0180EB1FC1DAFFFCC7EA07
F34901F0EC01FF010701C0EC007F4990C9123F4948161F4948160F49481607495A481803
4A16015A48491600A2485B1A7E5A91CBFC48193EA35A491800A312FFAD127FA37F6C191E
A37E806C193E1A3C6C7FA26C6D17787E6E17F06C18016D6C17E06D6CEE03C06D6CEE0780
6D6C6CED0F006D6D153E010101F05D6D01FC4A5A91263FFF80EB0FF0020F01F8EB7FC002
0390B6C7FCDA007F14FC030F14E09226007FFEC8FC47497AC754>67
D<B712F0A4D8001FEB8000B3B3B3A9B712F0A424477DC62B>73 D<B66C051FB512F86F5F
A26F5FD8001FF3C000A2011E6D17F7A26E6CEE01E7A26E6CEE03C7A36E6CEE0787A26E6C
EE0F07A26E6D151EA26E6D153CA36E6D1578A26E6D15F0A26F6CEC01E0A36F6CEC03C0A2
6F6CEC0780A26F6CEC0F00A26F6D131EA36F6D5BA26F6D5BA26F6D5BA3706C485AA2706C
485AA2706C485AA3706C48C7FCA270139EA27013FCA2705BA3705BA2715AA2715AEB7F80
B600C0043FB612F8715AA271C7FC65477CC66E>77 D<DA7FF013030107B55B011FECE00F
017F6E5A903AFFC00FFC3F4848C76C5AD803F8EC3FFF4848140F48488048488082003F81
4981127F83A200FF82A27FA2837F7F7F01FE92C7FC6C6C7E14F8ECFF806C14FCEDFFC06C
15F86C15FF6C8217E06C826C826C6C816D81010F811303D9007F1580020315C0EC003F03
0114E0ED001F16077013F01600A20070167F00F0163FA3171FA27E18E0A27E18C06C163F
7E188001C0ED7F007F01F815FE01FEEC03FC26FE7FC0495A26FC3FFCEB3FF0D8F80FB612
C0D8F00392C7FC48C66C13FC48010313E034497AC741>83 D<90380FFFF090B6FC000315
C03A07F8007FF0486CEB1FFCED07FE486C6D7E838183816C48816C5A6C5AC9FCA5157F02
3FB5FC0103B6FC011F13F090387FFE003801FFE0481380D80FFEC7FC485A5B123F485AA2
485AA45DA26C6C5BED077F6C6C130F6C6C013E13F83C0FFF80F83FFFE000039038FFF01F
C6ECC00F90390FFE0003332E7CAD38>97 D<EB7FC0B5FCA412037EB3A2ED1FFC92B57E02
C314F09139CFE01FFC9139DF0003FE02FC6D7E4A6D13804AEC7FC04AEC3FE04A15F0EF1F
F8A218FCA2EF0FFEA418FFAA18FEA318FC171FA218F8EF3FF0A26EEC7FE06E15C06EECFF
80023C491300D9FE1FEB07FE903AFC0FC03FF8D9F803B512E049C6148049D91FF8C7FC38
487CC741>I<91381FFFC049B512FC010714FF903A1FF8007F80D97FE0EBFFC0EBFF8048
494813E0485A1207485AA248486D13C0003FED7F80EE3F00007F92C7FC5BA312FFAA127F
A27FA2123FA26C6C15F0120F6DEC01E012076C6CEC03C06C6DEB07806C6DEB0F00D97FF0
133E90391FFC01FC0107B512F0010114C09026001FFCC7FC2C2E7CAD34>I<EFFF804BB5
FCA4ED000782B3A2EC1FFC49B51283010714E390391FFC03F390397FE0007FD9FF807F48
90C7120F484880000781485AA2485A123FA25B127FA312FFAA127FA46C7EA2121FA26C7E
00075D6C6C5C6C6C5C6C6D137F6D6C01FB13C090273FF807E313FF010FB512C301011403
9038003FF038487CC741>I<EC1FFC49B512C0010714F090391FF80FFC90397FC001FE49
486C7E4890C7EA7F804848EC3FC04848EC1FE0120F484815F0160F003F16F8A25B007F15
0717FCA212FFA290B7FCA301F0C9FCA5127FA36C7EA2001F163CA26C7E17786C6C15F86C
6CEC01F06C6DEB03E06C6DEB07C0D93FE0EB1F80903A1FFC01FF000107B512FC010014E0
020F90C7FC2E2E7DAD35>I<171FDA7FF0EBFFC00107B5000313E0011FECC7E7903B7FE0
3FFF0FF09039FF800FFC48EB00074848EB03FE00079238FF07E0496DEB03C0000FEE8000
A2001F82A8000F5EA2000793C7FC6D5B00035D6C6C495A6C6D485A9138E03FF0D801DFB5
12C0D803C791C8FC9038C07FF04848CAFCA37FA27FA213F890B612F06C15FF17E06C8217
FC6C826D8148B812801207D80FF0C7001F13C0D81FC014014848EC007F007FEE3FE048C9
FC171FA56C6CED3FC0A26C6CED7F806C6CEDFF00D80FF8EC03FED803FEEC0FF82601FFE0
EBFFF06C6CB612C0010F4AC7FCD9007F13C034447DAE3A>103 D<EB7FC0B5FCA412037E
B3A2ED07FE92383FFFC04B13F09139C1F81FF89139C3C00FFC9139C70007FE14CE02DC80
02F87F18805CA25CA35CB3A9B60081B6FCA438487BC741>I<137C48B4FC4813804813C0
A24813E0A56C13C0A26C13806C1300EA007C90C7FCACEB7FC0B5FCA412037EB3B2B6FCA4
18497CC820>I<EB7FC0B5FCA412037EB3A293383FFFF0A4933807FE00EE03F04C5AEE1F
804CC7FC167E5E4B5AED07E04B5A4B5A4BC8FC157EECC1FEECC3FF14C702CF7F91B57E82
14FD02F87F4A6C7E02C07FEC803F6F7E6F7E83816F7F6F7F8381707E707E83161F707E18
C0B690B512FEA437487DC73D>107 D<EB7FC0B5FCA412037EB3B3B3A8B61280A419487C
C720>I<9027FF8003FFEC03FFB5011F01E0011F13E0037F01F8017F13F8913D81F80FFC
01F80FFC913D83C007FE03C007FE0003903D878003FF078003FF6CD98E00EC0E00029C03
9C8102B86D01B87F06F88102F05DA24A5DA34A5DB3A9B66CB66CB61280A4592E7BAD62>
I<9039FF8007FEB590383FFFC04B13F0913981F81FF8913983C00FFC00039039870007FE
6C138E029C8002B87F188014F0A25CA35CB3A9B60081B6FCA4382E7BAD41>I<EC0FFE49
B512F0010714FC90391FF803FF90267FE00013C0D9FF80EB3FE04890C76C7E48486E7E48
486E7E000F82491403001F82003F17804980A2007F17C0A300FF17E0AA007F17C0A46C6C
4A1380A2001F17006D5C000F5E6C6C4A5A00035E6C6C4A5A6C6D495AD97FE0EBFFC09026
1FFC0790C7FC0107B512FC010114F0D9001F90C8FC332E7DAD3A>I<90397FC01FFCB590
B57E02C314F09139CFE03FFC9139DF0007FE000301FC6D7E6C496D13804A6D13C04AEC7F
E04A15F0EF3FF8A2EF1FFCA218FEA2170FA218FFAA18FE171FA218FCA2173F18F818F017
7F6EECFFE06E15C06E4913806E49130002DFEB0FFE9139CFC03FF802C3B512E002C01480
DB1FF8C7FC92C9FCB0B67EA438427CAD41>I<90397F803F80B5EBFFE0028113F8913883
C3FC91388707FE0003138E6C90389C0FFF14B8A214F0A2ED07FE9138E003FCED01F892C7
FCA25CB3A8B612E0A4282E7DAD2F>114 D<90390FFE01C090B512C7000314FF3807F801
390FC0007F48C7121F48140F007E1407A2150312FEA27E7F01E090C7FC13F8387FFFC014
FF6C14E015F86C806C14FF6C1580000115C06C6C14E0131F010014F014039138007FF800
70141F00F0140F15077E1503A26C15F0A27E6CEC07E07F6DEB0FC001F0EB1F80D8FEFCEB
FF0039F87FFFFCD8F01F13F0D8E0031380252E7CAD2E>I<EB01E0A61303A31307A3130F
A2131F133FA2137FEA01FF5A000F90B512C0B7FCA3C601E0C7FCB3A616F0A9017F14E0EC
F001133FED03C0D91FF8138090390FFE0F00903807FFFE01015B9038001FF024427EC12D
>I<D97FC0ECFF80B549B5FCA40003EC00076C81B3AA5EA36C5D5EA26D6C133B013F02F3
13C090271FF803E313FF6DB51283010314039038003FF8382E7BAD41>I<B649B5FCA400
0101C09038001FC06EEC0F806C17006E5C017F151E6E143E013F153C80011F5D8017F801
0F5D6E13016D5DED80036D5DEDC0076D5D15E06D4AC7FC15F05E027F131EEDF83E023F13
3CEDFC7C021F1378EDFEF8020F5B15FF6E5BA36E5BA26E5BA26E90C8FCA2157EA2153CA2
157C157815F85D1401001F5C383F8003D87FC05B38FFE0075D140F4AC9FC141E387FC07C
495A383F03F06CB45A00071380D801FCCAFC38427EAD3D>121 D<001FB712E0A39026FE
000313C001F049138001C05B4949130090C75B4B5A003E147F5E4B5A003C495B5C5E4A5B
5CC74890C7FC5D4A5A147F4A5A5D495B5B495B92388001E04913005B495A4A1303494814
C013FF5C485B484913075A4A130F4890C7FC48151F4848147F49ECFF804848130FB8FCA3
2B2E7DAD34>I E /Fi 21 122 df<127812FCA212FEA2127A1202A41204A31208A21210
1220124007127B8510>44 D<132013E01201120F12FF12F11201B3AD487EB512C0A21228
7BA71D>49 D<EA01FCEA07FF380C0FC0381803E0382001F01260384000F8A200F813FC7E
147CA3007813FCC7FC14F8A2EB01F0A2EB03E014C0EB07801400130E5B5B13305B5B485A
3803000412024813085A5A481318383FFFF84813F0B5FCA216287DA71D>I<1220123800
3FB5FCA214FE5A3860000400401308A21410481320A2C712401480A2EB01001302A25BA2
130C5BA31338A213781370A213F0A51201A76C5A182A7DA81D>55
D<137E3801FF80380781C0380F00E0001E1370481338A248133CA200F8131EA4141FA412
78143FA27E001C135F7E6C139F3803831FEA00FCEB001EA3143E143CA21438001C137800
3E137014E0383C01C038180380381C0F00EA0FFEEA03F818297EA71D>57
D<3801FFFEA2380007E01303B3AA1230127812FCA214C0EAF8070040138038200F00EA30
0EEA0C3CEA03F0172A7DA81E>74 D<B538800FFEA23A07F00003F06C48EB01C016001502
5D5D5D5D5D5D4AC7FC14025C5C1418143C147E14BEEBE11F01E27FEBE40F9038E807C001
F07FEBE0036E7E811400157C157E153E81A2ED0F8016C0150716E0486C14F8B538803FFF
A228297EA82E>I<B6FC15E03907E001F80003EB007C81811680150F16C0A61680151F16
00153E5DEC01F090B512C001E0C8FCB1487EB57EA222297EA828>80
D<EA03FCEA0C0738100380383C01C0003E7F6D7E121C1208C7FCA3137FEA03E0EA0F80EA
1E005A127C0078144012F8A31301127C393C027880381E0C7F3907F01E001A1A7E991D>
97 D<13FC38038780380701C0000E13E0EA1C00003C13F0A2481378A212F8A2B512F800
F8C7FCA51278A26C1308A26C1310000E13206C13403801C18038007E00151A7E991A>
101 D<140F3901FC308038070743380E03C3001EEBC100486C7EA2007C7FA5003C5BA26C
485A000E5BD81707C7FCEA11FC0030C8FCA47E381FFF806C13F06C7F3818007C48131E00
70130E00607F12E0A40070130EA26C5B6C5B380781E0C6B4C7FC19287E9A1D>103
D<121E123FA4121EC7FCA9120FB4FCA2121F7EB3A2EAFFF0A20C297EA811>105
D<120FB4FCA2121F7EB3B2EAFFF0A20C2A7EA911>108 D<3A0F07F007F03AFF18381838
9039201C201C3A1F400E400E000F010F130F01801380A201001300B13BFFF0FFF0FFF0A2
2C1A7E9931>I<380F07F038FF1838EB201C381F400E000F130F1380A21300B139FFF0FF
F0A21C1A7E9921>I<380F07E038FF1838EB601E380F800FEC0780010013C0140315E0A2
EC01F0A715E01403A215C0EC07801380EC0F00EB401CEB3078EB0FC090C8FCAAEAFFF0A2
1C267E9921>112 D<380F0F8038FF11C0EB23E0EA1F43EA0F83EB81C0EB800090C7FCB0
7FEAFFFCA2131A7E9917>114 D<3807F080EA1C0DEA3003EA600112E01300A27E6C1300
127EEA7FE0EA3FFC6C7EEA07FF38003F801307388003C0A2130112C0A200E01380130300
F01300EACC0EEA83F8121A7E9917>I<7FA41201A31203A21207120F381FFF80B5FC3807
8000AD1440A73803C08012013800E100133E12257FA417>I<000F130FB413FFA2001F13
1F6C7FB05CA26C132F3903804F803901C08FF038007F0F1C1A7E9921>I<39FFF01FF0A2
390F8007800007EB03001402A26C6C5AA2EBE00C00011308A26C6C5AA2EBF830EB7820A2
6D5AA2EB3EC0EB1E80A26DC7FCA31306A21304A2130C1308A2EA701012F85BA2485AEA61
80001FC8FC1C267F991F>121 D E /Fj 19 122 df<1518153CA3157EA315FFA3913801
9F80A39138030FC0A202077FEC0607A2020E7FEC0C03A202187F1501A24A6C7EA34A137E
A34A7FA20101814A131FA201038191C7120FA249B67EA20106C71207496E7EA3496E7EA2
01388101301400A20170810160157EA249157F8312016D16801203D80FF0ED7FC0D8FFFE
0207B5FCA2383C7EBB3C>65 D<B77E16F03A03FC0003FC6C48EB007FEE1F80EE07C0EE03
F0707E1600177C83173F831880170F18C0A2EF07E0A318F01703A318F8AC18F0A3170718
E0A3EF0FC0A2EF1F80A2EF3F00173E177E5F4C5A4C5A4C5AEE0F80043FC7FC486CEB01FC
B712F01680353B7CBA3D>68 D<B512F0A23803FC006C5AB3B3B1487EB512F0A2143B7CBA
1C>73 D<D8FFF893381FFF806D5E0003F0E00000016001BE166FA3019F16CFA3D98F80EC
018FA2D987C0EC030FA3D983E01406A3D981F0140CA3D980F81418A2027C1430A36E1460
A36E14C0A391390F800180A2913907C00300A3913803E006A36E6C5AA36E6C5AA2ED7C30
A36F5AA36F5AA3486C6D5A487E486C6DC7487EB50307B51280A2413B7CBA49>77
D<B7FC16E03A03FC0003F86C48EB007E82EE0F80EE07C017E0EE03F0A217F8160117FCA7
17F8160317F0A2EE07E0EE0FC01780EE3F0016FCED03F090B612C001F8C9FCB3A8487EB5
12F0A22E3B7CBA36>80 D<B612F8EDFF803A03FC000FE06C48EB01F8ED007E82707E707E
707EA283160383A75F16075F5F4C5A4CC7FC163E5EED01F0ED0F8090B500F8C8FC9038F8
001FED03C0ED01F06F7E167C82A2163F8283A683A61806EE0FE0A218040407130C486CEC
03F0B500F0010113189338007C30CAEA0FC0373C7CBA3B>82 D<D90FF0138090387FFE01
3901F00F813903C001C348C712E3000E143748143F003C141F0038140F127800701407A2
00F01403A415017EA27E007C91C7FC127E7E13C0EA1FF06CB4FC6C13F06C13FE6CEBFFC0
6C14F0011F7F010313FE9038003FFF14039138007F80ED1FC0150FED07E01503A2ED01F0
12C0A21500A37EA216E07E15016C15C0A26CEC03806C140700F71500D8E1C0131ED8E0F0
5BD8C07E13F090380FFFE0D8800190C7FC243D7CBB2C>I<EB07F8EB3C0E9038F0018039
01E000C0484813604848133048C712704814F81401123EA2007EEB00F0007C1400A212FC
A9127CA2127E123E150C7E15186C7E000714306C6C13606C6C13C03900F0018090383C0E
00EB07F81E257DA423>99 D<ED0F80EC03FFA2EC001F150FB3EB03F8EB1E07903870018F
9038E0004FD803C0132F4848131F120F90C7120F5A123EA2127E127CA212FCA9127CA212
7E123EA2121E121F6C141F6C6C133F6C6C136F6C6C13CF3A0070018FC090393C0E0FFEEB
07F0273C7DBB2C>I<EB07F8EB3C1E9038F007803901C003C00003EB01E039078000F048
C712F8481478001E147C123EA2007E143E127CA212FCA2B612FE00FCC8FCA6127CA2127E
123E15067E6C140C7F000714186C6C1330C66C1360017013C090381E0700EB03FC1F257E
A423>I<14FCEB078390380E038090381C07C0EB3C0F137813F8EC078049C7FC1201AEB5
12FCA2D801F0C7FCB3AE487E387FFFE0A21A3C7FBB18>I<2703E01FE0EB3FC000FFD960
7CEBC0F8913A801E01003C2807E3000F067FD803E40288131FA201E8D907907F04D01480
01F014E0A2495CB3A6486C496CEB1FC0B50081B53803FFFEA23F257EA443>109
D<3903E01FE000FFEB607CEC801E3907E3000FD803E41480A201E8130716C013F0A25BB3
A6486CEB0FE0B50081B5FCA228257EA42C>I<EB07FCEB1C0790387001C03901E000F048
48137848487F48C77E48141F001E80003E1580A248EC07C0A300FC15E0A9007C15C0A200
7E140F003E1580A2001E1500001F5C6C141E6C6C5B6C6C5B6C6C5B39007001C0D91C07C7
FCEB07FC23257EA427>I<3803E03E00FF13C39038E107803907E20FC0EA03E413E8EC07
80EC030001F0C7FCA35BB3A5487EB512C0A21A257EA41E>114 D<EBFF02380700C6000C
132E0010131E123048130EA200E01306A37E7E6C90C7FC127FEA3FF0EBFF80000F13E06C
7F000113FC38003FFE1301EB003F00C07FEC0F8014076C1303A46C1400A26C5B140600E4
5B00E25B38C1807038807F8019257DA41F>I<1330A61370A413F0A21201A21203120738
1FFFFEB5FCD801F0C7FCB3EC0180A9000014006D5AA2EB78026D5AEB0E08EB03F019357F
B41E>I<D803E0EB07C000FFEB01FFA20007EB000F00031407B3A5150FA300011417A26C
6C132715470178EB87E090391E0307FFEB03FC28257EA42C>I<D8FFFEEB0FFFA2D807F0
EB07F86C48EB03E0ED01C06C7E16807F0000EC0300A2017C1306A2137E013E5BA2013F13
1C6D1318A26D6C5AA2ECC07001071360A26D6C5AA214F101015BA2D900FBC7FCA214FF14
7EA2143CA31418A25CA35CA214E05C1218383C0180127E49C8FCA2EA7C06EA300CEA1C38
EA07E028367FA42A>121 D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin
%%PaperSize: A4
%%EndSetup
%%Page: 1 1
1 0 bop 548 1057 a Fj(MID)n(AS)26 b(Sound)g(System)688
1265 y(API)g(Reference)675 1528 y Fi(P)n(etteri)18 b(Kangaslampi)720
1717 y(Jan)n(uary)h(27,)h(1997)p eop
%%Page: 1 2
1 1 bop 129 651 a Fh(Con)m(ten)m(ts)129 968 y Fg(1)45
b(In)n(tro)r(duction)1209 b(1)202 1069 y Ff(1.1)50 b(Ab)q(out)17
b(this)f(do)q(cumen)o(t)24 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)
h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)68 b(1)202
1171 y(1.2)50 b(Do)q(cumen)o(t)15 b(organization)22 b(.)j(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
68 b(1)129 1322 y Fg(2)45 b(Con\014guration,)19 b(initialization)d(and)
j(con)n(trol)543 b(2)202 1423 y Ff(2.1)50 b(Constan)o(ts)38
b(.)25 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)
h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)68 b(2)314
1525 y(2.1.1)56 b(MID)o(ASoptions)46 b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)68
b(3)314 1627 y(2.1.2)56 b(MID)o(ASmo)q(des)27 b(.)d(.)h(.)f(.)h(.)f(.)h
(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)68
b(4)202 1728 y(2.2)50 b(Data)17 b(t)o(yp)q(es)f(.)25
b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)68 b(5)202
1830 y(2.3)50 b(F)l(unctions)43 b(.)25 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
(.)g(.)h(.)68 b(6)314 1932 y(2.3.1)56 b(MID)o(ASstartup)46
b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
f(.)h(.)f(.)g(.)h(.)68 b(7)314 2034 y(2.3.2)56 b(MID)o(ASgetLastError)
45 b(.)24 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
(.)g(.)h(.)68 b(8)314 2135 y(2.3.3)56 b(MID)o(ASgetErrorMessage)39
b(.)24 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
68 b(9)314 2237 y(2.3.4)56 b(MID)o(ASinit)11 b(.)24 b(.)h(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
g(.)h(.)44 b(10)314 2339 y(2.3.5)56 b(MID)o(ASclose)22
b(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(11)314 2440 y(2.3.6)56
b(MID)o(ASdetectSD)44 b(.)24 b(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h
(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(12)314 2542
y(2.3.7)56 b(MID)o(ASsetOption)30 b(.)24 b(.)h(.)f(.)h(.)f(.)h(.)f(.)g
(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(13)314 2644 y(2.3.8)56 b(MID)o(ASop)q(enChannels)20
b(.)k(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g
(.)h(.)44 b(14)931 2810 y(i)p eop
%%Page: 2 3
2 2 bop 129 145 a Fe(CONTENTS)1315 b Ff(ii)314 278 y(2.3.9)56
b(MID)o(AScloseChannels)20 b(.)k(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)
h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(15)314 378 y(2.3.10)32
b(MID)o(ASstartBac)o(kgroundPla)o(y)20 b(.)k(.)g(.)h(.)f(.)h(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(16)314 478 y(2.3.11)32
b(MID)o(ASstopBac)o(kgroundPla)o(y)f(.)24 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(17)314 579 y(2.3.12)32
b(MID)o(ASp)q(oll)43 b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g
(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(18)314 679 y(2.3.13)32 b(MID)o(ASgetV)l(ersionString)40
b(.)24 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
44 b(19)129 829 y Fg(3)h(Mo)r(dule)18 b(pla)n(ybac)n(k)1072
b(20)202 929 y Ff(3.1)50 b(Constan)o(ts)38 b(.)25 b(.)f(.)h(.)f(.)g(.)h
(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
f(.)h(.)f(.)g(.)h(.)44 b(20)202 1029 y(3.2)50 b(Data)17
b(t)o(yp)q(es)f(.)25 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(21)314 1130 y(3.2.1)56 b(MID)o(ASmo)q(duleInfo)36 b(.)25
b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g
(.)h(.)44 b(22)314 1230 y(3.2.2)56 b(MID)o(ASinstrumen)o(tInfo)36
b(.)25 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)
h(.)44 b(23)314 1331 y(3.2.3)56 b(MID)o(ASpla)o(yStatus)14
b(.)24 b(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
h(.)f(.)g(.)h(.)44 b(24)314 1431 y(3.2.4)56 b(MID)o(ASmo)q(dule)43
b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
f(.)h(.)f(.)g(.)h(.)44 b(25)202 1532 y(3.3)50 b(F)l(unctions)43
b(.)25 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)
h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(26)314
1632 y(3.3.1)56 b(MID)o(ASloadMo)q(dule)28 b(.)d(.)f(.)h(.)f(.)h(.)f(.)
g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(27)314 1733 y(3.3.2)56 b(MID)o(ASpla)o(yMo)q(dule)27
b(.)e(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
(.)g(.)h(.)44 b(28)314 1833 y(3.3.3)56 b(MID)o(ASfreeMo)q(dule)39
b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
f(.)g(.)h(.)44 b(30)314 1933 y(3.3.4)56 b(MID)o(ASgetPla)o(yStatus)20
b(.)k(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g
(.)h(.)44 b(31)314 2034 y(3.3.5)56 b(MID)o(ASsetP)o(osition)44
b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
f(.)g(.)h(.)44 b(32)314 2134 y(3.3.6)56 b(MID)o(ASsetMusicV)l(olum)o(e)
45 b(.)24 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
(.)44 b(33)314 2235 y(3.3.7)56 b(MID)o(ASgetMo)q(duleInfo)45
b(.)25 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)
h(.)44 b(34)314 2335 y(3.3.8)56 b(MID)o(ASgetInstrumen)o(tInfo)44
b(.)25 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(35)129 2484 y Fg(4)h(Sample)17 b(pla)n(ybac)n(k)1081
b(37)202 2585 y Ff(4.1)50 b(Constan)o(ts)38 b(.)25 b(.)f(.)h(.)f(.)g(.)
h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)h(.)f(.)g(.)h(.)44 b(37)314 2685 y(4.1.1)56 b(MID)o(ASsampleT)o
(yp)q(es)39 b(.)24 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
f(.)h(.)f(.)g(.)h(.)44 b(38)p eop
%%Page: 3 4
3 3 bop 129 145 a Fe(CONTENTS)1301 b Ff(iii)314 278 y(4.1.2)56
b(MID)o(ASlo)q(op)33 b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g
(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(39)314 379 y(4.1.3)56 b(MID)o(ASpanning)30 b(.)25 b(.)f(.)h(.)f(.)h
(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(40)314 481 y(4.1.4)56 b(MID)o(ASc)o(hannels)19 b(.)25
b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)g(.)h(.)44 b(41)202 583 y(4.2)50 b(Data)17 b(t)o(yp)q(es)f(.)25
b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f
(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(42)314
684 y(4.2.1)56 b(MID)o(ASsample)14 b(.)24 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(43)314 786 y(4.2.2)56 b(MID)o(ASsamplePla)o(yHandle)36
b(.)25 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(44)202 888 y(4.3)50 b(F)l(unctions)43 b(.)25 b(.)f(.)h(.)f(.)g(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
(.)h(.)f(.)g(.)h(.)44 b(45)314 990 y(4.3.1)56 b(MID)o(ASloadRa)o
(wSample)15 b(.)25 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
h(.)f(.)g(.)h(.)44 b(46)314 1091 y(4.3.2)56 b(MID)o(ASfreeSample)43
b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
f(.)g(.)h(.)44 b(47)314 1193 y(4.3.3)56 b(MID)o
(ASsetAutoE\013ectChannels)22 b(.)i(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)g(.)h(.)44 b(48)314 1295 y(4.3.4)56 b(MID)o(ASpla)o(ySample)31
b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
f(.)g(.)h(.)44 b(49)314 1396 y(4.3.5)56 b(MID)o(ASstopSample)32
b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
f(.)g(.)h(.)44 b(51)314 1498 y(4.3.6)56 b(MID)o(ASsetSampleRate)37
b(.)25 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)
h(.)44 b(52)314 1600 y(4.3.7)56 b(MID)o(ASsetSampleV)l(olum)n(e)17
b(.)24 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
44 b(53)314 1701 y(4.3.8)56 b(MID)o(ASsetSampleP)o(anning)40
b(.)25 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(54)314 1803 y(4.3.9)56 b(MID)o(ASsetSamplePriorit)o(y)10
b(.)24 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)
44 b(55)129 1954 y Fg(5)h(Stream)17 b(pla)n(ybac)n(k)1083
b(56)202 2055 y Ff(5.1)50 b(Constan)o(ts)38 b(.)25 b(.)f(.)h(.)f(.)g(.)
h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)h(.)f(.)g(.)h(.)44 b(56)202 2157 y(5.2)50 b(Data)17
b(t)o(yp)q(es)f(.)25 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(57)314 2259 y(5.2.1)56 b(MID)o(ASstreamHandle)20 b(.)k(.)h(.)f(.)h(.)
f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44
b(58)202 2360 y(5.3)50 b(F)l(unctions)43 b(.)25 b(.)f(.)h(.)f(.)g(.)h
(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
f(.)h(.)f(.)g(.)h(.)44 b(59)314 2462 y(5.3.1)56 b(MID)o(ASpla)o
(yStreamFi)o(le)30 b(.)25 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)h(.)f(.)g(.)h(.)44 b(60)314 2564 y(5.3.2)56 b(MID)o
(ASstopStream)35 b(.)25 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h
(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(62)314 2666 y(5.3.3)56
b(MID)o(ASpla)o(yStreamP)o(oll)o(ing)40 b(.)25 b(.)f(.)g(.)h(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(63)p eop
%%Page: 4 5
4 4 bop 129 145 a Fe(CONTENTS)1302 b Ff(iv)314 278 y(5.3.4)56
b(MID)o(ASfeedStreamData)11 b(.)25 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)
h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(65)314 379 y(5.3.5)56
b(MID)o(ASsetStreamRate)40 b(.)25 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h
(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(66)314 481 y(5.3.6)56
b(MID)o(ASsetStreamV)l(olum)o(e)19 b(.)24 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(67)314 583 y(5.3.7)56
b(MID)o(ASsetStreamP)o(anning)43 b(.)25 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h
(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)44 b(68)p eop
%%Page: 1 6
1 5 bop 129 651 a Fh(Chapter)39 b(1)129 900 y(In)m(tro)s(duction)46
1199 y Fd(1.1)81 b(Ab)r(out)28 b(this)e(do)r(cumen)n(t)129
1350 y Ff(This)20 b(do)q(cumen)o(t)e(con)o(tains)i(a)g(full)f
(programmer's)e(reference)i(for)h(the)f(MID)o(AS)g(Ap-)129
1410 y(plication)j(Programming)h(in)o(terface.)41 b(It)23
b(includes)g(complete)e(descriptions)i(of)h(all)129 1471
y(constan)o(ts,)17 b(data)h(structure)f(and)h(functions)f(a)o(v)m
(ailable)f(in)h(the)g(API,)f(plus)h(examples)129 1531
y(on)g(ho)o(w)g(to)g(use)g(them.)k(It)16 b(is)h(not)g(in)o(tended)f(to)
h(b)q(e)g(a)g(tutorial)g(on)g(using)g(MID)o(AS)f(|)129
1591 y(for)g(that)h(kind)f(of)g(information)f(see)h(MID)o(AS)f
(Programmer's)g(Guide.)46 1799 y Fd(1.2)81 b(Do)r(cumen)n(t)28
b(organization)129 1950 y Ff(The)17 b(do)q(cumen)o(t)g(itself)f(is)h
(divided)g(in)o(to)g(\014v)o(e)g(di\013eren)o(t)g(c)o(hapters,)g
(according)h(to)g(dif-)129 2010 y(feren)o(t)13 b(functional)i(groups.)
22 b(In)14 b(addition)h(to)h(this)e(in)o(tro)q(duction,)h(the)f(c)o
(hapters)h(co)o(v)o(er)129 2070 y(con\014guration,)27
b(initialization)c(and)i(o)o(v)o(erall)e(system)h(con)o(trol,)i(mo)q
(dule)d(pla)o(ybac)o(k,)129 2130 y(sample)16 b(pla)o(ybac)o(k)g(and)i
(stream)e(pla)o(ybac)o(k.)23 b(Eac)o(h)17 b(c)o(hapter)g(is)g(further)g
(divided)f(in)o(to)129 2191 y(three)f(sections:)21 b(constan)o(ts,)c
(data)g(t)o(yp)q(es)f(and)h(functions.)926 2810 y(1)p
eop
%%Page: 2 7
2 6 bop 129 651 a Fh(Chapter)39 b(2)129 900 y(Con\014guration,)f
(initialization)129 1025 y(and)g(con)m(trol)46 1324 y
Fd(2.1)81 b(Constan)n(ts)129 1475 y Ff(This)15 b(section)f(describ)q
(es)h(all)f(constan)o(ts)i(used)f(in)f(MID)o(AS)g(initialization)f(and)
j(con\014g-)129 1535 y(uration.)21 b(They)16 b(are)h(group)q(ed)g
(according)f(to)h(the)f Fc(enum)f Ff(used)h(to)h(de\014ne)f(them.)926
2810 y(2)p eop
%%Page: 3 8
3 7 bop 129 145 a Fe(CHAPTER)16 b(2.)38 b(CONFIGURA)l(TION,)13
b(INITIALIZA)l(TION)g(AND)j(CONTR)o(OL)7 b Ff(3)46 278
y Fb(2.1.1)65 b(MID)n(ASoptions)129 411 y Fc(enum)24
b(MIDASoptio)o(ns)46 583 y Fg(Description)129 717 y Ff(These)17
b(constan)o(ts)g(are)h(used)f(with)g(the)g(function)f
Fa(MID)o(ASsetOption)i Ff(to)g(c)o(hange)f(dif-)129 777
y(feren)o(t)e(MID)o(AS)g(con\014guration)i(options.)46
948 y Fg(V)-5 b(alues)129 1061 y(MID)n(AS)p 320 1061
17 2 v 21 w(OPTION)p 567 1061 V 20 w(MIXRA)g(TE)25 b
Ff(Output)16 b(mixing)f(rate)129 1163 y Fg(MID)n(AS)p
320 1163 V 21 w(OPTION)p 567 1163 V 20 w(OUTPUTMODE)25
b Ff(Output)d(mo)q(de,)g(see)g Fc(enum)f Fa(MID)o(AS-)251
1223 y(mo)n(des)129 1325 y Fg(MID)n(AS)p 320 1325 V 21
w(OPTION)p 567 1325 V 20 w(MIXBUFLEN)j Ff(Mixing)15 b(bu\013er)i
(length,)f(in)f(milliseconds)129 1427 y Fg(MID)n(AS)p
320 1427 V 21 w(OPTION)p 567 1427 V 20 w(MIXBUFBLOCKS)25
b Ff(The)13 b(n)o(um)o(b)q(er)f(of)h(blo)q(c)o(ks)g(the)g(bu\013er)251
1487 y(should)j(b)q(e)h(divided)e(in)o(to)p eop
%%Page: 4 9
4 8 bop 129 145 a Fe(CHAPTER)16 b(2.)38 b(CONFIGURA)l(TION,)13
b(INITIALIZA)l(TION)g(AND)j(CONTR)o(OL)7 b Ff(4)46 278
y Fb(2.1.2)65 b(MID)n(ASmo)r(des)129 411 y Fc(enum)24
b(MIDASmodes)46 583 y Fg(Description)129 717 y Ff(These)17
b(constan)o(ts)h(are)f(used)g(to)h(describ)q(e)e(di\013eren)o(t)h(MID)o
(AS)f(output)h(mo)q(des.)24 b(They)129 777 y(are)15 b(used)g(with)g
(the)g(function)g Fa(MID)o(ASsetOption)p Ff(,)g(when)h(c)o(hanging)f
(the)g(setting)g Fa(MI-)129 837 y(D)o(AS)p 231 837 15
2 v 18 w(OPTION)p 446 837 V 18 w(OUTPUTMODE)p Ff(.)46
1009 y Fg(V)-5 b(alues)129 1122 y(MID)n(AS)p 320 1122
17 2 v 21 w(MODE)p 516 1122 V 20 w(8BIT)p 664 1122 V
20 w(MONO)24 b Ff(8-bit)17 b(mono)f(output)129 1223 y
Fg(MID)n(AS)p 320 1223 V 21 w(MODE)p 516 1223 V 20 w(16BIT)p
692 1223 V 20 w(MONO)24 b Ff(16-bit)17 b(mono)f(output)129
1325 y Fg(MID)n(AS)p 320 1325 V 21 w(MODE)p 516 1325
V 20 w(8BIT)p 664 1325 V 20 w(STEREO)24 b Ff(8-bit)16
b(stereo)g(output)129 1427 y Fg(MID)n(AS)p 320 1427 V
21 w(MODE)p 516 1427 V 20 w(16BIT)p 692 1427 V 20 w(STEREO)24
b Ff(16-bit)17 b(stereo)f(output)p eop
%%Page: 5 10
5 9 bop 129 145 a Fe(CHAPTER)16 b(2.)38 b(CONFIGURA)l(TION,)13
b(INITIALIZA)l(TION)g(AND)j(CONTR)o(OL)7 b Ff(5)46 278
y Fd(2.2)81 b(Data)28 b(t)n(yp)r(es)129 429 y Ff(This)17
b(section)g(describ)q(es)h(all)f(data)h(t)o(yp)q(es)f(used)h(in)f(MID)o
(AS)f(initialization)g(and)i(con-)129 489 y(\014guration.)p
eop
%%Page: 6 11
6 10 bop 129 145 a Fe(CHAPTER)16 b(2.)38 b(CONFIGURA)l(TION,)13
b(INITIALIZA)l(TION)g(AND)j(CONTR)o(OL)7 b Ff(6)46 278
y Fd(2.3)81 b(F)-7 b(unctions)129 429 y Ff(This)18 b(section)g(describ)
q(es)g(all)f(functions)i(a)o(v)m(ailable)e(for)i(MID)o(AS)e
(initialization,)f(con-)129 489 y(\014guration)h(and)g(system)d(con)o
(trol.)21 b(This)c(includes)e(error)h(handling.)p eop
%%Page: 7 12
7 11 bop 129 145 a Fe(CHAPTER)16 b(2.)38 b(CONFIGURA)l(TION,)13
b(INITIALIZA)l(TION)g(AND)j(CONTR)o(OL)7 b Ff(7)46 278
y Fb(2.3.1)65 b(MID)n(ASstartup)129 411 y Fc(BOOL)24
b(MIDASstart)o(up)o(\(vo)o(id\))129 567 y Ff(Prepares)16
b(MID)o(AS)f(Sound)i(System)e(for)h(initialization)f(and)i(use.)46
739 y Fg(Input)129 872 y Ff(None.)46 1044 y Fg(Description)129
1178 y Ff(This)i(function)g(sets)h(all)e(MID)o(AS)h(con\014guration)h
(v)m(ariables)f(to)h(default)f(v)m(alues)g(and)129 1238
y(prepares)12 b(MID)o(AS)g(for)g(use.)20 b(It)12 b(m)o(ust)f(b)q(e)i
(called)e(b)q(efore)i(an)o(y)f(other)h(MID)o(AS)e(function,)129
1298 y(including)h Fa(MID)o(ASinit)h Ff(and)h Fa(MID)o(ASsetOption)p
Ff(,)g(is)f(called.)19 b(After)13 b(this)g(function)g(has)129
1358 y(b)q(een)g(called,)f Fa(MID)o(ASclose)i Ff(can)f(b)q(e)g(safely)g
(called)f(at)h(an)o(y)g(p)q(oin)o(t)g(and)h(an)o(y)f(n)o(um)o(b)q(er)e
(of)129 1418 y(times,)g(regardless)j(of)g(whether)f(MID)o(AS)f(has)i(b)
q(een)f(initialized)e(or)j(not.)21 b(After)12 b(calling)129
1479 y(this)j(function,)g(y)o(ou)g(can)h(use)g Fa(MID)o(ASsetOption)g
Ff(to)g(c)o(hange)f(MID)o(AS)g(con\014guration)129 1539
y(b)q(efore)h(initializing)e(MID)o(AS)h(with)h Fa(MID)o(ASinit)p
Ff(.)46 1710 y Fg(Return)i(v)m(alue)129 1844 y Ff(TR)o(UE)d(if)h
(successful,)f(F)-5 b(ALSE)16 b(if)g(not.)46 2016 y Fg(Op)r(erating)h
(systems)129 2149 y Ff(All)46 2321 y Fg(See)h(also)129
2455 y Fa(MID)o(ASsetOption)p Ff(,)e Fa(MID)o(ASinit)p
Ff(,)g Fa(MID)o(ASclose)p eop
%%Page: 8 13
8 12 bop 129 145 a Fe(CHAPTER)16 b(2.)38 b(CONFIGURA)l(TION,)13
b(INITIALIZA)l(TION)g(AND)j(CONTR)o(OL)7 b Ff(8)46 278
y Fb(2.3.2)65 b(MID)n(ASgetLastError)129 411 y Fc(int)24
b(MIDASgetLas)o(tE)o(rro)o(r\(v)o(oid)o(\))129 567 y
Ff(Gets)16 b(the)g(MID)o(AS)f(error)h(co)q(de)h(for)f(last)h(error.)46
739 y Fg(Input)129 872 y Ff(None.)46 1044 y Fg(Description)129
1178 y Ff(This)22 b(function)g(can)h(b)q(e)f(used)h(to)f(read)h(the)f
(error)g(co)q(de)h(for)f(most)g(recen)o(t)f(failure.)129
1238 y(When)d(a)g(MID)o(AS)f(API)h(function)g(returns)g(an)g(error)h
(condition,)f(this)g(function)f(can)129 1298 y(b)q(e)c(used)h(to)g
(determine)d(the)j(actual)f(cause)h(of)g(the)f(error,)h(and)g(this)g
(error)f(can)h(then)f(b)q(e)129 1358 y(rep)q(orted)18
b(to)g(the)g(user)g(or)g(ignored,)g(dep)q(ending)g(on)h(the)e(kind)h
(of)g(resp)q(onse)h(needed.)129 1418 y(Use)g Fa(MID)o(ASgetErr)n
(orMessage)h Ff(to)g(get)g(a)g(textual)g(message)f(corresp)q(onding)i
(to)f(an)129 1479 y(error)c(co)q(de.)129 1580 y(This)d(function)g(can)g
(b)q(e)h(called)e(at)i(an)o(y)f(p)q(oin)o(t)g(after)g
Fa(MID)o(ASstartup)g Ff(has)h(b)q(een)f(called.)46 1752
y Fg(Return)18 b(v)m(alue)129 1886 y Ff(MID)o(AS)d(error)h(co)q(de)g
(for)h(the)f(most)f(recen)o(t)g(error.)46 2057 y Fg(Op)r(erating)i
(systems)129 2191 y Ff(All)46 2362 y Fg(See)h(also)129
2496 y Fa(MID)o(ASgetErr)n(orMessage)p eop
%%Page: 9 14
9 13 bop 129 145 a Fe(CHAPTER)16 b(2.)38 b(CONFIGURA)l(TION,)13
b(INITIALIZA)l(TION)g(AND)j(CONTR)o(OL)7 b Ff(9)46 278
y Fb(2.3.3)65 b(MID)n(ASgetErrorMessage)129 411 y Fc(char)24
b(*MIDASgetE)o(rr)o(orM)o(ess)o(age)o(\(i)o(nt)e(errorCode\))129
567 y Ff(Gets)16 b(an)h(error)f(message)g(corresp)q(onding)h(to)f(an)h
(error)f(co)q(de.)46 739 y Fg(Input)129 852 y(errorCo)r(de)23
b Ff(The)16 b(error)h(co)q(de)f(from)f Fa(MID)o(ASgetL)n(astErr)n(or)46
1023 y Fg(Description)129 1157 y Ff(This)22 b(function)g(returns)g(a)h
(textual)e(error)h(message)g(corresp)q(onding)h(to)f(a)h(MID)o(AS)129
1217 y(error)17 b(co)q(de.)26 b(It)17 b(can)h(b)q(e)g(used)g(for)g
(displa)o(ying)f(an)h(error)f(message)g(to)h(the)g(user.)25
b(Use)129 1277 y Fa(MID)o(ASgetL)n(astErr)n(or)14 b Ff(to)i(determine)e
(the)i(error)g(co)q(de.)129 1379 y(This)d(function)g(can)g(b)q(e)h
(called)e(at)i(an)o(y)f(p)q(oin)o(t)g(after)g Fa(MID)o(ASstartup)g
Ff(has)h(b)q(een)f(called.)46 1550 y Fg(Return)18 b(v)m(alue)129
1684 y Ff(Error)e(message)g(string)g(corresp)q(onding)i(to)e(the)g
(error)g(co)q(de.)46 1856 y Fg(Op)r(erating)h(systems)129
1990 y Ff(All)46 2161 y Fg(See)h(also)129 2295 y Fa(MID)o(ASgetL)n
(astErr)n(or)p eop
%%Page: 10 15
10 14 bop 129 145 a Fe(CHAPTER)13 b(2.)33 b(CONFIGURA)l(TION,)11
b(INITIALIZA)l(TION)e(AND)k(CONTR)o(OL)p Ff(10)46 278
y Fb(2.3.4)65 b(MID)n(ASinit)129 411 y Fc(BOOL)24 b(MIDASinit\()o(vo)o
(id\))129 567 y Ff(Initializes)14 b(MID)o(AS)h(Sound)i(System.)46
739 y Fg(Input)129 872 y Ff(None.)46 1044 y Fg(Description)129
1178 y Ff(This)g(function)g(initializes)e(all)h(MID)o(AS)g(Sound)i
(System)d(comp)q(onen)o(ts,)i(and)g(sets)g(up)129 1238
y(the)j(API.)g(Apart)h(from)e(con\014guration)j(functions,)f(this)g
(function)f(m)o(ust)g(b)q(e)h(called)129 1298 y(b)q(efore)16
b(an)o(y)g(other)g(MID)o(AS)g(functions)g(are)g(used.)46
1469 y Fg(Return)i(v)m(alue)129 1603 y Ff(TR)o(UE)d(if)h(successful,)f
(F)-5 b(ALSE)16 b(if)g(not.)46 1775 y Fg(Op)r(erating)h(systems)129
1909 y Ff(All)46 2080 y Fg(See)h(also)129 2214 y Fa(MID)o(ASsetOption)p
Ff(,)e Fa(MID)o(ASclose)p eop
%%Page: 11 16
11 15 bop 129 145 a Fe(CHAPTER)13 b(2.)33 b(CONFIGURA)l(TION,)11
b(INITIALIZA)l(TION)e(AND)k(CONTR)o(OL)p Ff(11)46 278
y Fb(2.3.5)65 b(MID)n(ASclose)129 411 y Fc(BOOL)24 b(MIDASclose)o(\(v)o
(oid)o(\))129 567 y Ff(Uninitializes)13 b(MID)o(AS)i(Sound)j(System.)46
739 y Fg(Input)129 872 y Ff(None.)46 1044 y Fg(Description)129
1178 y Ff(This)12 b(function)g(uninitializes)e(all)h(MID)o(AS)g(Sound)i
(System)d(comp)q(onen)o(ts,)i(deallo)q(cates)129 1238
y(all)i(resources)g(allo)q(cated,)h(and)g(sh)o(uts)g(do)o(wn)g(all)f
(MID)o(AS)g(pro)q(cessing.)21 b(This)15 b(function)129
1298 y(m)o(ust)21 b(alw)o(a)o(ys)i(b)q(e)f(called)g(b)q(efore)h
(exiting)f(under)g(MS-DOS)h(and)g(is)g(also)g(strongly)129
1358 y(recomme)o(nded)16 b(under)j(other)g(op)q(erating)g(systems.)27
b(After)18 b(this)h(function)f(has)i(b)q(een)129 1418
y(called,)14 b(no)j(MID)o(AS)d(function)i(ma)o(y)e(b)q(e)i(called)f
(unless)h(MID)o(AS)f(is)h(initialized)d(again.)46 1590
y Fg(Return)18 b(v)m(alue)129 1724 y Ff(TR)o(UE)d(if)h(successful,)f(F)
-5 b(ALSE)16 b(if)g(not.)46 1895 y Fg(Op)r(erating)h(systems)129
2029 y Ff(All)46 2200 y Fg(See)h(also)129 2334 y Fa(MID)o(ASinit)p
eop
%%Page: 12 17
12 16 bop 129 145 a Fe(CHAPTER)13 b(2.)33 b(CONFIGURA)l(TION,)11
b(INITIALIZA)l(TION)e(AND)k(CONTR)o(OL)p Ff(12)46 278
y Fb(2.3.6)65 b(MID)n(ASdetectSD)129 411 y Fc(BOOL)24
b(MIDASdetec)o(tS)o(D\(v)o(oid)o(\))129 567 y Ff(A)o(ttempts)14
b(to)i(detect)g(the)g(Sound)h(Device)e(to)h(use.)46 739
y Fg(Input)129 872 y Ff(None.)46 1044 y Fg(Description)129
1178 y Ff(This)h(function)h(attempts)f(to)h(detect)e(the)i(Sound)g
(Device)e(that)j(should)f(b)q(e)f(used.)26 b(It)129 1238
y(is)14 b(called)f(in)o(ternally)g(b)o(y)h Fa(MID)o(ASinit)p
Ff(,)h(and)g(should)g(not)g(normally)e(b)q(e)h(called)g(b)o(y)g(user)
129 1298 y(programs.)26 b(Note)18 b(that)g(the)g(function)g(returns)g
(TR)o(UE)f(ev)o(en)g(if)h(it)f(fails)h(to)g(detect)f(a)129
1358 y(Sound)g(Device.)46 1530 y Fg(Return)h(v)m(alue)129
1664 y Ff(TR)o(UE)d(if)h(successful,)f(F)-5 b(ALSE)16
b(if)g(not.)46 1835 y Fg(Op)r(erating)h(systems)129 1969
y Ff(All)46 2140 y Fg(See)h(also)129 2274 y Fa(MID)o(ASinit)p
eop
%%Page: 13 18
13 17 bop 129 145 a Fe(CHAPTER)13 b(2.)33 b(CONFIGURA)l(TION,)11
b(INITIALIZA)l(TION)e(AND)k(CONTR)o(OL)p Ff(13)46 278
y Fb(2.3.7)65 b(MID)n(ASsetOption)129 411 y Fc(BOOL)24
b(MIDASsetOp)o(ti)o(on\()o(int)e(option,)h(int)h(value\))129
567 y Ff(Sets)16 b(a)h(MID)o(AS)e(option.)46 739 y Fg(Input)129
852 y(option)24 b Ff(Option)16 b(n)o(um)o(b)q(er)f(\(see)g
Fc(enum)g Fa(MID)o(ASoptions)h Ff(ab)q(o)o(v)o(e\))129
953 y Fg(v)m(alue)23 b Ff(New)16 b(v)m(alue)g(for)g(option)46
1125 y Fg(Description)129 1259 y Ff(This)h(function)h(sets)g(a)g(v)m
(alue)f(to)h(a)g(MID)o(AS)f(option.)26 b(The)17 b(di\013eren)o(t)g(n)o
(um)o(b)q(er)f(co)q(des)129 1319 y(for)i(di\013eren)o(t)f(options)i
(are)f(describ)q(ed)f(ab)q(o)o(v)o(e.)26 b(All)17 b(MID)o(AS)g
(con\014guration)i(options)129 1379 y(m)o(ust)c(b)q(e)h(set)g(with)g
(this)g(function)g Fg(b)r(efore)f Fa(MID)o(ASinit)i Ff(is)f(called.)46
1550 y Fg(Return)i(v)m(alue)129 1684 y Ff(TR)o(UE)d(if)h(successful,)f
(F)-5 b(ALSE)16 b(if)g(not.)46 1856 y Fg(Op)r(erating)h(systems)129
1990 y Ff(All)46 2161 y Fg(See)h(also)129 2295 y Fa(MID)o(ASinit)p
eop
%%Page: 14 19
14 18 bop 129 145 a Fe(CHAPTER)13 b(2.)33 b(CONFIGURA)l(TION,)11
b(INITIALIZA)l(TION)e(AND)k(CONTR)o(OL)p Ff(14)46 278
y Fb(2.3.8)65 b(MID)n(ASop)r(enChannels)129 410 y Fc(BOOL)24
b(MIDASopenC)o(ha)o(nne)o(ls\()o(int)e(numChans\))129
552 y Ff(Op)q(ens)16 b(Sound)h(Device)e(c)o(hannels)h(for)g(sound)i
(and)e(m)o(usic)f(output.)46 720 y Fg(Input)129 831 y(n)n(umChans)25
b Ff(Num)o(b)q(er)14 b(of)i(c)o(hannels)g(to)h(op)q(en)46
1000 y Fg(Description)129 1132 y Ff(This)22 b(function)g(op)q(ens)h(a)g
(sp)q(eci\014ed)f(n)o(um)o(b)q(er)e(of)j(c)o(hannels)f(for)g(digital)g
(sound)h(and)129 1192 y(m)o(usic)16 b(output.)30 b(The)19
b(c)o(hannels)f(op)q(ened)h(can)g(b)q(e)g(used)g(for)g(pla)o(ying)f
(streams,)g(sam-)129 1252 y(ples)e(and)h(mo)q(dules.)k(When)16
b Fa(MID)o(ASplayMo)n(dule)g Ff(is)g(used)h(to)g(pla)o(y)f(mo)q(dules,)
f(it)h(will)129 1313 y(use)k(the)h(last)f(p)q(ossible)h(c)o(hannels)f
(for)h(the)f(mo)q(dule,)g(so)i(that)f(the)f(\014rst)h
Fc(\(numChans)129 1373 y(-)k(number-of-)o(cha)o(nn)o(els)o(-in)o(-mo)o
(du)o(le\))17 b Ff(c)o(hannels)k(are)g(a)o(v)m(ailable)f(for)h
(e\013ects)g(and)129 1433 y(streams.)129 1533 y(If)c(this)g(function)g
(has)i(not)f(b)q(een)f(called)f(b)q(efore)i Fa(MID)o(ASplayMo)n(dule)f
Ff(is)g(called,)g Fa(MI-)129 1593 y(D)o(ASplayMo)n(dule)g
Ff(will)f(op)q(en)i(the)f(c)o(hannels)g(it)g(needs)g(for)h(mo)q(dule)e
(pla)o(ybac)o(k.)24 b(Ho)o(w-)129 1653 y(ev)o(er,)16
b(if)g(this)i(function)f(has)h(b)q(een)f(called,)f(but)i(the)f(n)o(um)o
(b)q(er)f(of)h(c)o(hannels)g(op)q(ened)h(is)129 1714
y(inadequate)12 b(for)h(the)f(mo)q(dule,)g Fa(MID)o(ASplayMo)n(dule)g
Ff(will)g(return)g(an)h(error)g(and)g(refuse)129 1774
y(to)j(pla)o(y)g(the)g(mo)q(dule.)46 1942 y Fg(Return)i(v)m(alue)129
2074 y Ff(TR)o(UE)d(if)h(successful,)f(F)-5 b(ALSE)16
b(if)g(not.)46 2243 y Fg(Op)r(erating)h(systems)129 2375
y Ff(All)46 2543 y Fg(See)h(also)129 2676 y Fa(MID)o(AScloseChannels)p
Ff(,)f Fa(MID)o(ASplayMo)n(dule)p eop
%%Page: 15 20
15 19 bop 129 145 a Fe(CHAPTER)13 b(2.)33 b(CONFIGURA)l(TION,)11
b(INITIALIZA)l(TION)e(AND)k(CONTR)o(OL)p Ff(15)46 278
y Fb(2.3.9)65 b(MID)n(AScloseChannels)129 411 y Fc(BOOL)24
b(MIDASclose)o(Ch)o(ann)o(els)o(\(vo)o(id)o(\))129 567
y Ff(Closes)16 b(Sound)h(Device)e(c)o(hannels)h(op)q(ened)h(with)f
Fa(MID)o(ASop)n(enChannels)p Ff(.)46 739 y Fg(Input)129
872 y Ff(None.)46 1044 y Fg(Description)129 1178 y Ff(This)j(function)g
(closes)g(Sound)h(Device)e(c)o(hannels)g(that)i(w)o(ere)e(op)q(ened)i
(with)f Fa(MID)o(A-)129 1238 y(Sop)n(enChannels)p Ff(.)27
b(Note)17 b(that)i(y)o(ou)e(ma)o(y)f Fg(not)i Ff(use)g(this)f(function)
h(to)g(close)f(c)o(hannels)129 1298 y(that)i(w)o(ere)e(op)q(ened)i(b)o
(y)f Fa(MID)o(ASplayMo)n(dule)g Ff(|)h Fa(MID)o(ASstopMo)n(dule)f
Ff(will)f(do)i(that)129 1358 y(automatically)l(.)46 1530
y Fg(Return)f(v)m(alue)129 1664 y Ff(TR)o(UE)d(if)h(successful,)f(F)-5
b(ALSE)16 b(if)g(not.)46 1835 y Fg(Op)r(erating)h(systems)129
1969 y Ff(All)46 2140 y Fg(See)h(also)129 2274 y Fa(MID)o(ASop)n
(enChannels)p Ff(,)e Fa(MID)o(ASplayMo)n(dule)p Ff(,)g
Fa(MID)o(ASstopMo)n(dule)p eop
%%Page: 16 21
16 20 bop 129 145 a Fe(CHAPTER)13 b(2.)33 b(CONFIGURA)l(TION,)11
b(INITIALIZA)l(TION)e(AND)k(CONTR)o(OL)p Ff(16)46 278
y Fb(2.3.10)65 b(MID)n(ASstartBac)n(kgroundPla)n(y)129
411 y Fc(BOOL)24 b(MIDASstart)o(Ba)o(ckg)o(rou)o(ndP)o(la)o(y\(D)o(WOR)
o(D)e(pollRate\))129 567 y Ff(Starts)17 b(pla)o(ying)e(m)o(usic)f(and)j
(sound)g(in)f(the)g(bac)o(kground.)46 739 y Fg(Input)129
852 y(p)r(ollRate)22 b Ff(P)o(olling)16 b(rate)g(\(n)o(um)o(b)q(er)f
(of)h(p)q(olls)h(p)q(er)f(second\),)g(0)h(for)f(default)46
1023 y Fg(Description)129 1157 y Ff(This)h(function)f(starts)i(pla)o
(ying)e(sound)h(and)h(m)o(usic)c(in)j(the)f(bac)o(kground.)23
b Fg(p)r(ollRate)129 1217 y Ff(con)o(trols)14 b(the)h(target)g(p)q
(olling)g(rate)g(|)f(n)o(um)o(b)q(er)f(of)i(p)q(olls)g(p)q(er)g
(second.)21 b(P)o(olling)14 b(migh)o(t)129 1277 y(not)g(b)q(e)g(done)g
(at)g(actually)f(the)h(set)g(rate,)f(although)i(usually)f(it)f(will)g
(b)q(e)h(faster.)20 b(Under)129 1338 y(Win32)g(and)g(Lin)o(ux,)g(a)h
(new)e(thread)i(will)d(b)q(e)i(created)g(for)g(pla)o(ying.)31
b Fg(Under)23 b(MS-)129 1398 y(DOS)d(this)h(function)f(is)g(curren)n
(tly)g(ignored,)g(and)h(bac)n(kground)g(pla)n(ybac)n(k)129
1458 y(starts)d(immediate)o(ly)d(when)k(MID)n(AS)g(is)g(initialized.)46
1629 y(Return)f(v)m(alue)129 1763 y Ff(TR)o(UE)d(if)h(successful,)f(F)
-5 b(ALSE)16 b(if)g(not.)46 1935 y Fg(Op)r(erating)h(systems)129
2068 y Ff(All,)d(but)j(see)e(MS-DOS)i(note)f(ab)q(o)o(v)o(e.)46
2240 y Fg(See)i(also)129 2374 y Fa(MID)o(ASstopBackgr)n(oundPlay)p
Ff(,)e Fa(MID)o(ASp)n(ol)r(l)p eop
%%Page: 17 22
17 21 bop 129 145 a Fe(CHAPTER)13 b(2.)33 b(CONFIGURA)l(TION,)11
b(INITIALIZA)l(TION)e(AND)k(CONTR)o(OL)p Ff(17)46 278
y Fb(2.3.11)65 b(MID)n(ASstopBac)n(kgroundPla)n(y)129
411 y Fc(BOOL)24 b(MIDASstopB)o(ac)o(kgr)o(oun)o(dPl)o(ay)o(\(vo)o
(id\))129 567 y Ff(Stops)17 b(pla)o(ying)e(sound)j(and)e(m)o(usic)f(in)
g(the)h(bac)o(kground.)46 739 y Fg(Input)129 872 y Ff(None.)46
1044 y Fg(Description)129 1178 y Ff(This)22 b(function)g(stops)h(m)o
(usic)e(and)i(sound)g(bac)o(kground)g(pla)o(ybac)o(k)e(that)i(has)g(b)q
(een)129 1238 y(started)h(with)h Fa(MID)o(ASstartBackgr)n(oundPlay)p
Ff(.)46 b(Under)24 b(Win32)h(and)g(Lin)o(ux,)h(this)129
1298 y(function)20 b(also)g(destro)o(ys)g(the)g(thread)g(created)g(for)
g(pla)o(ybac)o(k.)32 b Fg(Under)22 b(MS-DOS)129 1358
y(this)17 b(function)h(is)g(curren)n(tly)e(ignored,)h(and)i(bac)n
(kground)f(pla)n(ybac)n(k)h(starts)129 1418 y(imme)o(diatel)o(y)c(when)
k(MID)n(AS)h(is)e(initialized.)129 1520 y Ff(If)f(bac)o(kground)h(pla)o
(ybac)o(k)f(has)h(b)q(een)g(started)g(with)g Fa(MID)o(ASstartBackgr)n
(oundPlay)p Ff(,)129 1580 y(this)e(function)g(bf)g(m)o(ust)f(b)q(e)h
(called)g(b)q(efore)g(the)g(program)g(exits.)46 1752
y Fg(Return)i(v)m(alue)129 1886 y Ff(TR)o(UE)d(if)h(successful,)f(F)-5
b(ALSE)16 b(if)g(not.)46 2057 y Fg(Op)r(erating)h(systems)129
2191 y Ff(All,)d(but)j(see)e(MS-DOS)i(note)f(ab)q(o)o(v)o(e.)46
2362 y Fg(See)i(also)129 2496 y Fa(MID)o(ASstartBackgr)n(oundPlay)p
Ff(,)e Fa(MID)o(ASp)n(ol)r(l)p eop
%%Page: 18 23
18 22 bop 129 145 a Fe(CHAPTER)13 b(2.)33 b(CONFIGURA)l(TION,)11
b(INITIALIZA)l(TION)e(AND)k(CONTR)o(OL)p Ff(18)46 278
y Fb(2.3.12)65 b(MID)n(ASp)r(oll)129 411 y Fc(BOOL)24
b(MIDASpoll\()o(vo)o(id\))129 567 y Ff(P)o(olls)15 b(the)h(MID)o(AS)g
(sound)h(and)g(m)o(usic)d(pla)o(y)o(er.)46 738 y Fg(Input)129
872 y Ff(None.)46 1043 y Fg(Description)129 1177 y Ff(This)h(function)h
(can)g(b)q(e)f(used)h(to)g(p)q(oll)g(MID)o(AS)e(sound)j(and)f(m)o(usic)
e(pla)o(y)o(er)g(man)o(ually)l(.)129 1237 y(It)20 b(pla)o(ys)h(m)o
(usic)e(forw)o(ard,)j(mixes)d(sound)j(data,)h(and)f(sends)f(it)g(to)g
(output.)37 b(When)129 1297 y(using)18 b(man)o(ual)f(p)q(olling,)g(mak)
o(e)f(sure)i(y)o(ou)g(call)f Fa(MID)o(ASp)n(ol)r(l)h
Ff(often)g(enough)g(to)h(mak)o(e)129 1358 y(sure)c(there)g(are)h(no)g
(breaks)g(in)f(sound)i(output)f(|)g(at)g(least)f(t)o(w)o(o)h(times)d
(during)j(bu\013er)129 1418 y(length,)d(preferably)g(four)i(times)d(or)
i(more.)19 b(Under)13 b(m)o(ultitasking)f(op)q(erating)j(systems)129
1478 y(suc)o(h)20 b(as)h(Win32)h(and)f(Lin)o(ux,)g(this)f(ma)o(y)f(b)q
(e)i(di\016cult,)f(so)h(v)o(ery)f(short)h(bu\013er)g(sizes)129
1538 y(can't)16 b(b)q(e)g(used)g(reliably)l(.)129 1640
y(Also)23 b(note)g(that)g Fg(curren)n(tly)j(this)g(function)g(is)g(not)
h(a)n(v)m(ailable)e(under)i(MS-)129 1700 y(DOS.)22 b
Ff(Under)g(MS-DOS,)g(pla)o(ybac)o(k)g(is)g(alw)o(a)o(ys)h(done)g(in)f
(bac)o(kground)h(using)g(the)129 1760 y(system)14 b(timer)h(\(IR)o(Q)g
(0\).)46 1931 y Fg(Return)j(v)m(alue)129 2065 y Ff(TR)o(UE)d(if)h
(successful,)f(F)-5 b(ALSE)16 b(if)g(not.)46 2237 y Fg(Op)r(erating)h
(systems)129 2370 y Ff(Win32,)f(Lin)o(ux)46 2542 y Fg(See)i(also)129
2676 y Fa(MID)o(ASstartBackgr)n(oundPlay)p Ff(,)e Fa(MID)o
(ASstopBackgr)n(oundPlay)p eop
%%Page: 19 24
19 23 bop 129 145 a Fe(CHAPTER)13 b(2.)33 b(CONFIGURA)l(TION,)11
b(INITIALIZA)l(TION)e(AND)k(CONTR)o(OL)p Ff(19)46 278
y Fb(2.3.13)65 b(MID)n(ASgetV)-6 b(ersionString)129 411
y Fc(char)24 b(*MIDASgetV)o(er)o(sio)o(nSt)o(rin)o(g\()o(voi)o(d\))129
567 y Ff(Gets)16 b(the)g(curren)o(t)f(MID)o(AS)h(v)o(ersion)f(as)i(a)g
(string.)46 739 y Fg(Input)129 872 y Ff(None.)46 1044
y Fg(Description)129 1178 y Ff(This)e(function)h(can)g(b)q(e)f(used)h
(to)g(determine)d(the)j(MID)o(AS)e(v)o(ersion)h(b)q(eing)h(loaded.)21
b(It)129 1238 y(returns)15 b(a)h(text)f(string)h(description)f(of)h
(the)g(v)o(ersion.)k(V)l(ersion)15 b(n)o(um)o(b)q(ers)f(are)i(usually)
129 1298 y(of)j(form)e(\\x.y)l(.z",)h(where)g(\\x")h(is)f(the)h(ma)s
(jor)e(v)o(ersion)h(n)o(um)o(b)q(er,)f(\\y")i(minor)e(v)o(ersion)129
1358 y(n)o(um)o(b)q(er)e(and)j(\\z")g(patc)o(h)f(lev)o(el.)22
b(In)17 b(some)f(o)q(ccasions,)i(\\z")g(can)f(b)q(e)h(replaced)e(with)h
(a)129 1418 y(textual)e(message)g(suc)o(h)g(as)h(\\rc1")h(for)f
(Release)f(Candidate)h(1.)21 b(All)15 b(MID)o(AS)f(v)o(ersions)129
1479 y(with)21 b(the)g(ma)s(jor)f(and)i(minor)d(v)o(ersion)i(n)o(um)o
(b)q(ers)f(equal)g(ha)o(v)o(e)h(a)g(compatible)e(DLL)129
1539 y(API,)c(and)i(can)f(b)q(e)g(used)h(in)o(terc)o(hangeably)l(.)46
1710 y Fg(Return)h(v)m(alue)129 1844 y Ff(MID)o(AS)d(Sound)i(System)d
(v)o(ersion)i(n)o(um)o(b)q(er)f(as)h(a)h(string.)46 2016
y Fg(Op)r(erating)g(systems)129 2149 y Ff(Win32,)f(Lin)o(ux)46
2321 y Fg(See)i(also)p eop
%%Page: 20 25
20 24 bop 129 651 a Fh(Chapter)39 b(3)129 900 y(Mo)s(dule)f(pla)m(ybac)
m(k)46 1199 y Fd(3.1)81 b(Constan)n(ts)129 1350 y Ff(This)16
b(section)g(describ)q(es)g(all)g(constan)o(ts)i(used)e(in)g(MID)o(AS)g
(mo)q(dule)f(pla)o(ybac)o(k.)21 b(They)129 1410 y(are)16
b(group)q(ed)h(according)g(to)f(the)g Fc(enum)f Ff(used)i(to)f
(de\014ne)g(them.)914 2810 y(20)p eop
%%Page: 21 26
21 25 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(21)46 278 y Fd(3.2)81 b(Data)28
b(t)n(yp)r(es)129 429 y Ff(This)16 b(section)g(describ)q(es)g(all)f
(data)j(t)o(yp)q(es)e(used)g(in)g(MID)o(AS)f(mo)q(dule)g(pla)o(ybac)o
(k.)p eop
%%Page: 22 27
22 26 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(22)46 278 y Fb(3.2.1)65 b(MID)n(ASmo)r
(duleInfo)129 411 y Fc(typedef)23 b(struct)129 472 y({)231
532 y(char)204 b(songName[3)o(2])o(;)231 592 y(unsigned)100
b(songLength)o(;)231 652 y(unsigned)g(numPattern)o(s;)231
712 y(unsigned)g(numInstrum)o(en)o(ts;)231 773 y(unsigned)g(numChannel)
o(s;)129 833 y(})25 b(MIDASmodul)o(eIn)o(fo)o(;)129 988
y Ff(Mo)q(dule)16 b(information)f(structure.)46 1160
y Fg(Mem)n(b)r(ers)129 1273 y(songName)23 b Ff(Mo)q(dule)16
b(song)h(name,)e(an)i(ASCI)q(IZ)e(string)129 1375 y Fg(songLength)24
b Ff(Mo)q(dule)16 b(song)h(length)f(in)g(n)o(um)o(b)q(er)f(of)h(p)q
(ositions)129 1476 y Fg(n)n(umP)n(atterns)24 b Ff(Num)o(b)q(er)14
b(of)j(patterns)f(in)g(mo)q(dule)129 1578 y Fg(n)n(umInstrumen)n(ts)22
b Ff(Num)o(b)q(er)14 b(of)j(instrumen)o(ts)d(in)i(mo)q(dule)129
1680 y Fg(n)n(umChannels)24 b Ff(The)16 b(n)o(um)o(b)q(er)f(of)h(c)o
(hannels)g(the)g(mo)q(dule)f(uses)46 1851 y Fg(Description)129
1985 y Ff(This)j(structure)h(is)f(used)h(with)f(the)g(function)h
Fa(MID)o(ASgetMo)n(duleInfo)g Ff(to)g(query)f(in-)129
2045 y(formation)c(ab)q(out)j(an)f(mo)q(dule.)j Fa(MID)o(ASgetMo)n
(duleInfo)d Ff(\014lls)f(a)h Fa(MID)o(ASmo)n(duleInfo)129
2105 y Ff(structure)g(with)g(the)g(information.)p eop
%%Page: 23 28
23 27 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(23)46 278 y Fb(3.2.2)65 b(MID)n(ASinstrumen)n
(tInfo)129 411 y Fc(typedef)23 b(struct)129 472 y({)231
532 y(char)204 b(instName[3)o(2])o(;)129 592 y(})25 b(MIDASinstr)o(ume)
o(nt)o(Inf)o(o;)129 748 y Ff(Instrumen)o(t)14 b(information)h
(structure.)46 919 y Fg(Mem)n(b)r(ers)129 1032 y(instName)22
b Ff(Instrumen)o(t)14 b(name,)h(an)i(ASCI)q(IZ)e(string)46
1204 y Fg(Description)129 1338 y Ff(This)j(structure)f(is)h(used)f
(with)h(the)f(function)h Fa(MID)o(ASgetInstrumentInfo)h
Ff(to)f(query)129 1398 y(information)12 b(ab)q(out)i(an)g(instrumen)o
(t)d(in)i(a)h(mo)q(dule.)19 b Fa(MID)o(ASgetInstrumentInfo)14
b Ff(\014lls)129 1458 y(a)i Fa(MID)o(ASinstrumentInfo)h
Ff(structure)f(with)g(the)g(information.)p eop
%%Page: 24 29
24 28 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(24)46 278 y Fb(3.2.3)65 b(MID)n(ASpla)n
(yStatus)129 411 y Fc(typedef)23 b(struct)129 472 y({)231
532 y(unsigned)100 b(position;)231 592 y(unsigned)g(pattern;)231
652 y(unsigned)g(row;)231 712 y(int)230 b(syncInfo;)129
773 y(})25 b(MIDASplayS)o(tat)o(us)o(;)129 928 y Ff(Mo)q(dule)16
b(status)h(information)e(structure.)46 1100 y Fg(Mem)n(b)r(ers)129
1213 y(p)r(osition)23 b Ff(Curren)o(t)16 b(pla)o(ybac)o(k)f(p)q
(osition)i(n)o(um)o(b)q(er)129 1315 y Fg(pattern)24 b
Ff(Curren)o(t)16 b(pla)o(ybac)o(k)f(pattern)h(n)o(um)o(b)q(er)129
1416 y Fg(ro)n(w)25 b Ff(Curren)o(t)16 b(pla)o(ybac)o(k)f(ro)o(w)i(n)o
(um)o(b)q(er)129 1518 y Fg(syncInfo)24 b Ff(Latest)d(sync)o
(hronization)f(command)f(infob)o(yte,)h(-1)h(if)f(no)h(sync)o(hroniza-)
251 1578 y(tion)16 b(command)e(has)j(b)q(een)f(encoun)o(tered)g(y)o
(et.)46 1750 y Fg(Description)129 1883 y Ff(This)j(structure)f(is)h
(used)g(with)f(the)h(function)f Fa(MID)o(ASgetPlayStatus)j
Ff(to)e(query)f(the)129 1944 y(curren)o(t)12 b(mo)q(dule)h(pla)o(ybac)o
(k)g(status.)21 b Fa(MID)o(ASgetPlayStatus)15 b Ff(\014lls)e(a)h
Fa(MID)o(ASplaySta-)129 2004 y(tus)i Ff(structure)g(with)g(the)g
(information.)129 2105 y(Some)d(more)h(information)g(ab)q(out)i(the)f
(sync)o(hronization)f(commands:)19 b(In)14 b(protrac)o(k)o(er)129
2166 y(and)f(Scream)e(T)l(rac)o(k)o(er)h(3)h(mo)q(dules,)f(the)h
(command)d Fc(Wxx)i Ff(is)g(used)h(as)h(a)f(m)o(usic)e(sync)o(hro-)129
2226 y(nization)17 b(command.)22 b(The)c(infob)o(yte)e(of)i(this)f
(command)f(is)h(a)o(v)m(ailable)g(as)h(the)f(m)o(usic)129
2286 y(sync)o(hronization)f(command)e(infob)o(yte)h(ab)q(o)o(v)o(e.)p
eop
%%Page: 25 30
25 29 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(25)46 278 y Fb(3.2.4)65 b(MID)n(ASmo)r(dule)
129 411 y Fc(typedef)23 b(...)h(MIDASmodule)o(;)46 583
y Fg(Description)129 717 y Fa(MID)o(ASmo)n(dule)12 b
Ff(is)f(a)i(mo)q(dule)e(handle)h(that)g(de\014nes)g(a)g(mo)q(dule)f
(that)i(has)f(b)q(een)g(loaded)129 777 y(in)o(to)k(memory)l(.)p
eop
%%Page: 26 31
26 30 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(26)46 278 y Fd(3.3)81 b(F)-7
b(unctions)129 429 y Ff(This)16 b(section)g(describ)q(es)g(all)f
(functions)i(a)o(v)m(ailable)e(for)i(MID)o(AS)e(mo)q(dule)g(pla)o(ybac)
o(k.)p eop
%%Page: 27 32
27 31 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(27)46 278 y Fb(3.3.1)65 b(MID)n(ASloadMo)r
(dule)129 411 y Fc(MIDASmodu)o(le)22 b(MIDASloadMo)o(dul)o(e\()o(cha)o
(r)h(*fileName)o(\))129 567 y Ff(Loads)18 b(a)e(mo)q(dule)f(\014le)h
(in)o(to)g(memory)l(.)46 739 y Fg(Input)129 852 y(\014leName)22
b Ff(Mo)q(dule)16 b(\014le)f(name)46 1023 y Fg(Description)129
1157 y Ff(This)21 b(function)f(loads)i(a)f(mo)q(dule)f(\014le)g(in)o
(to)g(memory)l(.)32 b(It)21 b(c)o(hec)o(ks)e(the)h(mo)q(dule)g(for-)129
1217 y(mat)15 b(based)i(on)g(the)f(mo)q(dule)g(\014le)g(header,)g(and)h
(in)o(v)o(ok)o(es)e(the)h(correct)g(loader)g(to)h(load)129
1277 y(the)22 b(mo)q(dule)g(in)o(to)h(memory)d(in)j(GMPla)o(y)o(er)f
(in)o(ternal)g(format.)41 b(The)23 b(mo)q(dule)e(can)129
1338 y(then)14 b(b)q(e)g(pla)o(y)o(ed)f(using)i Fa(MID)o(ASplayMo)n
(dule)p Ff(,)f(and)g(deallo)q(cated)g(from)f(memory)f(with)129
1398 y Fa(MID)o(ASfr)n(e)n(eMo)n(dule)p Ff(.)46 1569
y Fg(Return)18 b(v)m(alue)129 1703 y Ff(Mo)q(dule)e(handle)g(if)g
(successful,)f(NULL)h(if)g(not.)46 1874 y Fg(Op)r(erating)h(systems)129
2008 y Ff(All)46 2180 y Fg(See)h(also)129 2314 y Fa(MID)o(ASplayMo)n
(dule)p Ff(,)d Fa(MID)o(ASfr)n(e)n(eMo)n(dule)p eop
%%Page: 28 33
28 32 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(28)46 278 y Fb(3.3.2)65 b(MID)n(ASpla)n(yMo)r
(dule)129 411 y Fc(BOOL)24 b(MIDASplayM)o(od)o(ule)o(\(MI)o(DAS)o(mo)o
(dul)o(e)f(module,)g(int)h(numEffectCh)o(an)o(nel)o(s\))129
567 y Ff(Starts)17 b(pla)o(ying)e(a)i(mo)q(dule.)46 739
y Fg(Input)129 852 y(mo)r(dule)22 b Ff(Mo)q(dule)16 b(to)g(b)q(e)h(pla)
o(y)o(ed)129 953 y Fg(n)n(umE\013ectChannels)23 b Ff(Num)o(b)q(er)14
b(of)i(sound)i(c)o(hannels)d(to)i(lea)o(v)o(e)e(op)q(en)h(for)h
(e\013ects)46 1125 y Fg(Description)129 1259 y Ff(This)e(functions)g
(starts)h(pla)o(ying)e(a)i(mo)q(dule)e(that)h(has)h(b)q(een)f
(previously)f(loaded)i(with)129 1319 y Fa(MID)o(ASlo)n(adMo)n(dule)p
Ff(.)25 b(If)18 b(c)o(hannels)f(ha)o(v)o(e)g(not)h(b)q(een)g
(previously)f(op)q(ened)h(using)h Fa(MI-)129 1379 y(D)o(ASop)n
(enChannels)p Ff(,)k(this)e(function)g(op)q(ens)h(the)f(c)o(hannels)g
(necessary)g(to)g(pla)o(y)g(the)129 1439 y(mo)q(dule,)11
b(and)h(if)g Fg(n)n(umE\013ectChannels)e Ff(is)i(nonzero,)h(it)e(op)q
(ens)i(additional)f(c)o(hannels)129 1499 y(for)j(sound)h(e\013ects.)k
(The)15 b(mo)q(dule)f(is)g(alw)o(a)o(ys)h(pla)o(y)o(ed)f(on)h(the)g
(last)g(p)q(ossible)g(c)o(hannels,)129 1560 y(so)i(the)f(\014rst)g
Fg(n)n(umE\013ectChannels)f Ff(are)h(a)o(v)m(ailable)g(for)g(e\013ects)
g(and)h(streams.)129 1661 y Fg(Note!)k Ff(Curren)o(tly)15
b(only)h(one)g(mo)q(dule)f(can)i(b)q(e)f(pla)o(y)o(ed)f(at)i(a)g(time.)
46 1833 y Fg(Return)h(v)m(alue)129 1967 y Ff(TR)o(UE)d(if)h
(successful,)f(F)-5 b(ALSE)16 b(if)g(not.)46 2138 y Fg(Op)r(erating)h
(systems)129 2272 y Ff(All)46 2443 y Fg(See)h(also)129
2577 y Fa(MID)o(ASlo)n(adMo)n(dule)p Ff(,)d Fa(MID)o(ASstopMo)n(dule)p
Ff(,)g Fa(MID)o(ASop)n(enChannels)129 2679 y(MID)o(ASstopMo)n(dule)p
eop
%%Page: 29 34
29 33 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(29)129 278 y Fc(BOOL)24 b(MIDASstopM)o(od)o
(ule)o(\(MI)o(DAS)o(mo)o(dul)o(e)f(module\))129 433 y
Ff(Stops)17 b(pla)o(ying)e(a)i(mo)q(dule.)46 605 y Fg(Input)129
718 y(mo)r(dule)22 b Ff(Mo)q(dule)16 b(that)h(is)f(b)q(eing)g(pla)o(y)o
(ed)46 889 y Fg(Description)129 1023 y Ff(This)d(function)h(stops)g
(pla)o(ying)f(a)h(mo)q(dule)f(that)h(has)g(b)q(een)g(pla)o(y)o(ed)e
(with)i Fa(MID)o(ASplay-)129 1083 y(Mo)n(dyle)p Ff(.)32
b(If)19 b(the)h(c)o(hannels)f(w)o(ere)g(op)q(ened)i(automatically)d(b)o
(y)i Fa(MID)o(ASplayMo)n(dule)p Ff(,)129 1143 y(this)15
b(function)g(will)f(close)h(them,)e(but)j(if)f(they)f(w)o(ere)h(op)q
(ened)g(man)o(ually)f(with)h Fa(MID)o(A-)129 1204 y(Sop)n(enChannels)p
Ff(,)i(they)f(will)f(b)q(e)i(left)e(op)q(en.)46 1375
y Fg(Return)j(v)m(alue)129 1509 y Ff(TR)o(UE)d(if)h(successful,)f(F)-5
b(ALSE)16 b(if)g(not.)46 1680 y Fg(Op)r(erating)h(systems)129
1814 y Ff(All)46 1986 y Fg(See)h(also)129 2119 y Fa(MID)o(ASplayMo)n
(dule)p Ff(,)d Fa(MID)o(ASop)n(enChannels)p eop
%%Page: 30 35
30 34 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(30)46 278 y Fb(3.3.3)65 b(MID)n(ASfreeMo)r
(dule)129 411 y Fc(BOOL)24 b(MIDASfreeM)o(od)o(ule)o(\(MI)o(DAS)o(mo)o
(dul)o(e)f(module\))129 567 y Ff(Deallo)q(cates)16 b(a)h(mo)q(dule.)46
739 y Fg(Input)129 852 y(mo)r(dule)22 b Ff(Mo)q(dule)16
b(that)h(should)f(b)q(e)h(deallo)q(cated)46 1023 y Fg(Description)129
1157 y Ff(This)12 b(function)g(deallo)q(cates)g(a)g(mo)q(dule)f(loaded)
h(with)g Fa(MID)o(ASlo)n(adMo)n(dule)p Ff(.)19 b(It)12
b(should)129 1217 y(b)q(e)h(called)f(to)h(free)f(un)o(used)h(mo)q
(dules)f(from)g(memory)l(,)e(after)j(they)f(are)h(no)g(longer)g(b)q
(eing)129 1277 y(pla)o(y)o(ed,)h(to)j(a)o(v)o(oid)f(memory)d(leaks.)46
1449 y Fg(Return)18 b(v)m(alue)129 1583 y Ff(TR)o(UE)d(if)h
(successful,)f(F)-5 b(ALSE)16 b(if)g(not.)46 1754 y Fg(Op)r(erating)h
(systems)129 1888 y Ff(All)46 2059 y Fg(See)h(also)129
2193 y Fa(MID)o(ASlo)n(adMo)n(dule)p eop
%%Page: 31 36
31 35 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(31)46 278 y Fb(3.3.4)65 b(MID)n(ASgetPla)n
(yStatus)129 411 y Fc(BOOL)24 b(MIDASgetPl)o(ay)o(Sta)o(tus)o(\(MI)o
(DA)o(Spl)o(ayS)o(ta)o(tus)e(*status\))129 567 y Ff(Gets)16
b(mo)q(dule)f(pla)o(ybac)o(k)g(status.)46 739 y Fg(Input)129
852 y(status)24 b Ff(P)o(oin)o(ter)12 b(to)h(pla)o(ybac)o(k)f(status)i
(structure)e(where)h(the)f(status)i(will)e(b)q(e)h(written.)46
1023 y Fg(Description)129 1157 y Ff(This)22 b(function)h(reads)g(the)f
(curren)o(t)g(mo)q(dule)f(pla)o(ybac)o(k)h(status,)j(and)e(writes)f(it)
g(to)129 1217 y Fg(*status)p Ff(.)33 b(The)20 b(user)g(needs)f(to)i
(pass)g(it)f(a)g(v)m(alid)g(p)q(oin)o(ter)f(to)i(a)f
Fa(MID)o(ASplayStatus)129 1277 y Ff(structure,)15 b(whic)o(h)h(will)f
(b)q(e)h(up)q(dated.)46 1449 y Fg(Return)i(v)m(alue)129
1583 y Ff(TR)o(UE)c(if)g(successful,)g(F)-5 b(ALSE)14
b(if)h(not.)21 b(The)15 b(curren)o(t)e(pla)o(ybac)o(k)h(status)i(is)e
(written)g(to)129 1643 y Fg(*status)p Ff(.)46 1814 y
Fg(Op)r(erating)j(systems)129 1948 y Ff(All)46 2119 y
Fg(See)h(also)129 2253 y Fa(MID)o(ASplayMo)n(dule)p Ff(,)d
Fa(MID)o(ASplayStatus)p eop
%%Page: 32 37
32 36 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(32)46 278 y Fb(3.3.5)65 b(MID)n(ASsetP)n
(osition)129 411 y Fc(BOOL)24 b(MIDASsetPo)o(si)o(tio)o(n\(i)o(nt)e
(newPositio)o(n\))129 567 y Ff(Changes)17 b(mo)q(dule)e(pla)o(ybac)o(k)
g(p)q(osition.)46 739 y Fg(Input)129 852 y(newP)n(osition)24
b Ff(New)16 b(pla)o(ybac)o(k)f(p)q(osition)46 1023 y
Fg(Description)129 1157 y Ff(This)e(function)g(c)o(hanges)g(the)g
(curren)o(t)f(mo)q(dule)g(pla)o(ybac)o(k)h(p)q(osition.)20
b(The)14 b(song)g(starts)129 1217 y(at)22 b(p)q(osition)h(0,)h(and)e
(the)g(length)g(is)g(a)o(v)m(ailable)g(in)f(the)h Fa(MID)o(ASmo)n
(duleInfo)g Ff(struc-)129 1277 y(ture.)27 b(Y)l(ou)18
b(should)h(mak)o(e)d(sure)i(that)h Fg(p)r(osition)e Ff(lies)g(inside)h
(those)g(limits.)25 b(T)l(o)19 b(skip)129 1338 y(bac)o(kw)o(ard)h(or)g
(forw)o(ard)h(a)f(single)g(p)q(osition,)h(\014rst)g(read)f(the)g
(curren)o(t)f(p)q(osition)i(with)129 1398 y Fa(MID)o(ASgetPlayStatus)p
Ff(,)c(and)g(substract)g(or)f(add)h(one)g(to)f(the)g(curren)o(t)g(p)q
(osition.)46 1569 y Fg(Return)i(v)m(alue)129 1703 y Ff(TR)o(UE)d(if)h
(successful,)f(F)-5 b(ALSE)16 b(if)g(not.)46 1874 y Fg(Op)r(erating)h
(systems)129 2008 y Ff(All)46 2180 y Fg(See)h(also)129
2314 y Fa(MID)o(ASplayMo)n(dule)p Ff(,)d Fa(MID)o(ASgetPlayStatus)p
Ff(,)i Fa(MID)o(ASgetMo)n(duleInfo)p eop
%%Page: 33 38
33 37 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(33)46 278 y Fb(3.3.6)65 b(MID)n(ASsetMusicV)
-6 b(olume)129 411 y Fc(BOOL)24 b(MIDASsetMu)o(si)o(cVo)o(lum)o(e\(u)o
(ns)o(ign)o(ed)e(volume\))129 567 y Ff(Changes)17 b(m)o(usic)d(pla)o
(ybac)o(k)h(v)o(olume.)46 739 y Fg(Input)129 852 y(v)n(olume)22
b Ff(New)16 b(m)o(usic)e(pla)o(ybac)o(k)h(v)o(olume)f(\(0{64\))46
1023 y Fg(Description)129 1157 y Ff(This)20 b(function)f(c)o(hanges)h
(the)g(m)o(usic)e(pla)o(ybac)o(k)h(master)g(v)o(olume.)29
b(It)20 b(can)g(b)q(e)g(used,)129 1217 y(for)d(example,)c(for)k(fading)
g(m)o(usic)e(in)h(or)h(out)g(smo)q(othly)l(,)e(or)i(for)g(adjusting)g
(the)g(m)o(usic)129 1277 y(v)o(olume)g(relativ)o(e)h(to)i(sound)g
(e\013ects.)31 b(The)20 b(v)o(olume)d(c)o(hange)j(only)f(a\013ects)h
(the)g(song)129 1338 y(that)14 b(is)g(curren)o(tly)e(b)q(eing)i(pla)o
(y)o(ed)f(|)h(if)f(a)h(new)g(song)h(is)f(started,)g(the)g(v)o(olume)e
(is)i(reset.)129 1398 y(The)i(default)g(m)o(usic)e(v)o(olume)g(is)i(64)
h(\(the)f(maxim)o(um)n(\).)46 1569 y Fg(Return)i(v)m(alue)129
1703 y Ff(TR)o(UE)d(if)h(successful,)f(F)-5 b(ALSE)16
b(if)g(not.)46 1874 y Fg(Op)r(erating)h(systems)129 2008
y Ff(All)46 2180 y Fg(See)h(also)p eop
%%Page: 34 39
34 38 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(34)46 278 y Fb(3.3.7)65 b(MID)n(ASgetMo)r
(duleInfo)129 411 y Fc(BOOL)24 b(MIDASgetMo)o(du)o(leI)o(nfo)o(\(MI)o
(DA)o(Smo)o(dul)o(e)e(module,)231 472 y(MIDASmodule)o(In)o(fo)g
(*info\))129 627 y Ff(Gets)16 b(information)f(ab)q(out)j(a)e(mo)q
(dule.)46 799 y Fg(Input)129 912 y(mo)r(dule)22 b Ff(Mo)q(dule)16
b(handle)g(for)h(the)f(mo)q(dule)129 1014 y Fg(info)24
b Ff(P)o(oin)o(ter)14 b(to)i(a)g(mo)q(dule)e(info)h(structure)g(where)g
(the)g(information)f(willl)g(b)q(e)i(writ-)251 1074 y(ten)46
1245 y Fg(Description)129 1379 y Ff(This)23 b(function)h(returns)f
(information)g(ab)q(out)h(a)g(mo)q(dule,)g(including)f(the)g(mo)q(dule)
129 1439 y(name)18 b(and)j(the)e(n)o(um)o(b)q(er)f(of)i(c)o(hannels)g
(used.)31 b(The)20 b(user)g(needs)g(to)g(pass)h(it)e(a)h(v)m(alid)129
1499 y(p)q(oin)o(ter)13 b(to)h(a)g Fa(MID)o(ASmo)n(duleInfo)g
Ff(structure)f(\()p Fg(*info)p Ff(\),)g(where)h(the)f(information)g
(will)129 1560 y(b)q(e)j(written.)46 1731 y Fg(Return)i(v)m(alue)129
1865 y Ff(TR)o(UE)i(if)h(successful,)g(F)-5 b(ALSE)21
b(if)f(not.)36 b(The)21 b(mo)q(dule)f(information)g(is)h(written)f(to)
129 1925 y Fg(*info)p Ff(.)46 2096 y Fg(Op)r(erating)d(systems)129
2230 y Ff(All)46 2402 y Fg(See)h(also)129 2536 y Fa(MID)o(ASplayMo)n
(dule)p Ff(,)d Fa(MID)o(ASmo)n(duleInfo)p eop
%%Page: 35 40
35 39 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(35)46 278 y Fb(3.3.8)65 b(MID)n
(ASgetInstrumen)n(tInfo)129 411 y Fc(BOOL)24 b(MIDASgetIn)o(st)o(rum)o
(ent)o(Inf)o(o\()o(MID)o(ASm)o(od)o(ule)e(module,)231
472 y(int)j(instNum,)d(MIDASinstru)o(men)o(tIn)o(fo)g(*info\))129
627 y Ff(Gets)16 b(information)f(ab)q(out)j(an)f(instrumen)o(t)d(in)i
(a)g(mo)q(dule.)46 799 y Fg(Input)129 912 y(mo)r(dule)22
b Ff(Mo)q(dule)16 b(handle)g(for)h(the)f(mo)q(dule)129
1014 y Fg(instNum)22 b Ff(Instrumen)o(t)15 b(n)o(um)o(b)q(er)129
1115 y Fg(info)24 b Ff(P)o(oin)o(ter)16 b(to)h(an)g(instrumen)o(t)e
(info)i(structure)f(where)h(the)f(information)g(willl)f(b)q(e)251
1175 y(written)46 1347 y Fg(Description)129 1481 y Ff(This)c(function)g
(returns)g(information)f(ab)q(out)j(an)e(instrumen)o(t)f(in)g(a)i(mo)q
(dule,)f(including)129 1541 y(the)g(instrumen)o(t)f(name.)18
b(The)12 b(user)f(needs)h(to)g(pass)g(it)g(a)g(v)m(alid)f(p)q(oin)o
(ter)g(to)h(a)g Fa(MID)o(ASin-)129 1601 y(strumentInfo)18
b Ff(structure)e(\()p Fg(*info)p Ff(\),)h(where)g(the)g(information)f
(will)g(b)q(e)h(written.)24 b(Y)l(ou)129 1661 y(should)13
b(ensure)f(that)g Fg(instNum)f Ff(is)h(a)h(v)m(alid)f(instrumen)o(t)e
(n)o(um)o(b)q(er.)18 b(Instrumen)o(t)11 b(n)o(um-)129
1721 y(b)q(ers)17 b(start)h(from)e(0,)i(although)g(trac)o(k)o(ers)e
(traditionally)g(n)o(um)o(b)q(er)g(them)f(from)i(1,)g(and)129
1782 y(y)o(ou)d(can)g(use)p Fa(MID)o(ASgetMo)n(duleInfo)h
Ff(to)g(get)g(the)f(n)o(um)o(b)q(er)e(of)j(instrumen)o(ts)d(a)o(v)m
(ailable)129 1842 y(in)k(a)g(mo)q(dule.)46 2013 y Fg(Return)i(v)m(alue)
129 2147 y Ff(TR)o(UE)c(if)h(successful,)f(F)-5 b(ALSE)15
b(if)f(not.)21 b(The)15 b(instrumen)o(t)e(information)h(is)h(written)f
(to)129 2207 y Fg(*info)p Ff(.)46 2379 y Fg(Op)r(erating)j(systems)129
2513 y Ff(All)p eop
%%Page: 36 41
36 40 bop 129 145 a Fe(CHAPTER)16 b(3.)38 b(MODULE)16
b(PLA)l(YBA)o(CK)719 b Ff(36)46 278 y Fg(See)18 b(also)129
411 y Fa(MID)o(ASplayMo)n(dule)p Ff(,)d Fa(MID)o(ASgetMo)n(duleInfo)p
Ff(,)i Fa(MID)o(ASmo)n(duleInfo)p eop
%%Page: 37 42
37 41 bop 129 651 a Fh(Chapter)39 b(4)129 900 y(Sample)e(pla)m(ybac)m
(k)46 1199 y Fd(4.1)81 b(Constan)n(ts)129 1350 y Ff(This)17
b(section)g(describ)q(es)g(all)f(constan)o(ts)i(used)g(in)f(MID)o(AS)f
(sample)g(pla)o(ybac)o(k.)23 b(They)129 1410 y(are)16
b(group)q(ed)h(according)g(to)f(the)g Fc(enum)f Ff(used)i(to)f
(de\014ne)g(them.)914 2810 y(37)p eop
%%Page: 38 43
38 42 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(38)46 278 y Fb(4.1.1)65 b(MID)n(ASsampleT)n
(yp)r(es)129 411 y Fc(enum)24 b(MIDASsampl)o(eT)o(ype)o(s)46
583 y Fg(Description)129 717 y Ff(These)12 b(constan)o(ts)h(iden)o
(tify)e(di\013eren)o(t)g(sample)g(t)o(yp)q(es.)20 b(They)12
b(are)h(used)f(with)g(the)h(func-)129 777 y(tions)f Fa(MID)o(ASlo)n
(adR)n(awSample)p Ff(,)g Fa(MID)o(ASplayStr)n(e)n(amFile)f
Ff(and)h Fa(MID)o(ASplayStr)n(e)n(am-)129 837 y(Pol)r(ling)23
b Ff(to)f(indicate)e(the)h(format)f(of)i(the)f(sample)f(data.)36
b(The)22 b(b)o(yte)e(order)h(of)h(the)129 897 y(sample)e(data)i(is)g
(alw)o(a)o(ys)f(the)h(system)e(nativ)o(e)h(order)g(\(little)f(endian)i
(for)g(In)o(tel)e(x86)129 958 y(systems\).)46 1129 y
Fg(V)-5 b(alues)129 1242 y(MID)n(AS)p 320 1242 17 2 v
21 w(SAMPLE)p 576 1242 V 20 w(8BIT)p 724 1242 V 20 w(MONO)25
b Ff(8-bit)16 b(mono)g(sample,)e(unsigned)129 1344 y
Fg(MID)n(AS)p 320 1344 V 21 w(SAMPLE)p 576 1344 V 20
w(8BIT)p 724 1344 V 20 w(STEREO)24 b Ff(8-bit)17 b(stereo)f(sample,)e
(unsigned)129 1445 y Fg(MID)n(AS)p 320 1445 V 21 w(SAMPLE)p
576 1445 V 20 w(16BIT)p 752 1445 V 20 w(MONO)25 b Ff(16-bit)17
b(mono)e(sample,)g(signed)129 1547 y Fg(MID)n(AS)p 320
1547 V 21 w(SAMPLE)p 576 1547 V 20 w(16BIT)p 752 1547
V 20 w(STEREO)24 b Ff(16-bit)17 b(stereo)f(sample,)f(signed)p
eop
%%Page: 39 44
39 43 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(39)46 278 y Fb(4.1.2)65 b(MID)n(ASlo)r(op)129
411 y Fc(enum)24 b(MIDASloop)46 583 y Fg(Description)129
717 y Ff(These)16 b(constan)o(ts)h(are)f(used)g(to)h(indicate)e(the)h
(lo)q(op)h(t)o(yp)q(e)f(of)h(a)f(sample)f(or)i(stream.)46
888 y Fg(V)-5 b(alues)129 1001 y(MID)n(AS)p 320 1001
17 2 v 21 w(LOOP)p 497 1001 V 20 w(NO)24 b Ff(Sample)15
b(or)i(stream)e(do)q(es)i(not)g(lo)q(op)129 1103 y Fg(MID)n(AS)p
320 1103 V 21 w(LOOP)p 497 1103 V 20 w(YES)25 b Ff(Sample)14
b(or)j(stream)e(lo)q(ops)p eop
%%Page: 40 45
40 44 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(40)46 278 y Fb(4.1.3)65 b(MID)n(ASpanning)129
411 y Fc(enum)24 b(MIDASpanni)o(ng)46 583 y Fg(Description)129
717 y Ff(These)19 b(constan)o(ts)g(are)h(used)f(to)g(describ)q(e)g(the)
f(panning)i(p)q(osition)g(of)f(a)h(sound.)30 b(Le-)129
777 y(gal)21 b(panning)g(p)q(ositions)g(range)g(from)f(-64)h(\(extreme)
d(left\))i(to)g(64)i(\(extreme)17 b(righ)o(t\),)129 837
y(inclusiv)o(e,)c(plus)k(MID)o(AS)p 610 837 15 2 v 16
w(P)l(AN)p 729 837 V 17 w(SURR)o(OUND)d(for)j(surround)g(sound.)46
1009 y Fg(V)-5 b(alues)129 1122 y(MID)n(AS)p 320 1122
17 2 v 21 w(P)g(AN)p 460 1122 V 21 w(LEFT)24 b Ff(P)o(anning)16
b(p)q(osition)h(full)f(left)129 1223 y Fg(MID)n(AS)p
320 1223 V 21 w(P)-5 b(AN)p 460 1223 V 21 w(MIDDLE)23
b Ff(P)o(anning)17 b(p)q(osition)g(middle)129 1325 y
Fg(MID)n(AS)p 320 1325 V 21 w(P)-5 b(AN)p 460 1325 V
21 w(RIGHT)24 b Ff(P)o(anning)16 b(p)q(osition)h(full)e(righ)o(t)129
1427 y Fg(MID)n(AS)p 320 1427 V 21 w(P)-5 b(AN)p 460
1427 V 21 w(SURR)n(OUND)24 b Ff(Surround)17 b(sound)p
eop
%%Page: 41 46
41 45 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(41)46 278 y Fb(4.1.4)65 b(MID)n(ASc)n
(hannels)129 411 y Fc(enum)24 b(MIDASchann)o(el)o(s)46
583 y Fg(Description)129 717 y Ff(These)16 b(constan)o(ts)h(are)f(used)
g(to)h(indicate)e(the)h(c)o(hannel)g(n)o(um)o(b)q(er)e(a)j(sound)g
(should)f(b)q(e)129 777 y(pla)o(y)o(ed)g(on.)23 b(Legal)18
b(c)o(hannel)e(n)o(um)o(b)q(ers)f(range)j(from)e(0)h(up)o(w)o(ards,)g
(dep)q(ending)g(on)h(the)129 837 y(n)o(um)o(b)q(er)g(of)j(op)q(en)g(c)o
(hannels.)33 b(In)20 b(addition,)h(MID)o(AS)p 1162 837
15 2 v 17 w(CHANNEL)p 1425 837 V 17 w(A)o(UTO)e(can)h(b)q(e)129
897 y(used)c(with)g Fa(MID)o(ASplaySample)p Ff(.)46 1069
y Fg(V)-5 b(alues)129 1182 y(MID)n(AS)p 320 1182 17 2
v 21 w(CHANNEL)p 626 1182 V 20 w(A)n(UTO)25 b Ff(Select)10
b(c)o(hannel)h(automatically)l(,)f(used)i(with)g Fa(MI-)251
1242 y(D)o(ASplaySample)p eop
%%Page: 42 47
42 46 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(42)46 278 y Fd(4.2)81 b(Data)28
b(t)n(yp)r(es)129 429 y Ff(This)16 b(section)g(describ)q(es)g(all)f
(data)j(t)o(yp)q(es)e(used)g(in)g(MID)o(AS)f(sample)g(pla)o(ybac)o(k.)p
eop
%%Page: 43 48
43 47 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(43)46 278 y Fb(4.2.1)65 b(MID)n(ASsample)129
411 y Fc(typedef)23 b(...)h(MIDASsample)o(;)46 583 y
Fg(Description)129 717 y Fa(MID)o(ASsample)14 b Ff(is)f(a)i(sample)d
(handle)i(that)g(de\014nes)g(a)g(sample)f(that)h(has)h(b)q(een)e
(loaded)129 777 y(in)o(to)20 b(memory)l(.)33 b(The)21
b(sample)e(handle)i(is)g(used)g(for)g(iden)o(tifying)e(the)i(sample)f
(when)129 837 y(pla)o(ying)15 b(or)i(deallo)q(cating)f(it.)p
eop
%%Page: 44 49
44 48 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(44)46 278 y Fb(4.2.2)65 b(MID)n(ASsamplePla)n
(yHandle)129 411 y Fc(typedef)23 b(...)h(MIDASsample)o(Pla)o(yH)o(and)o
(le;)46 583 y Fg(Description)129 717 y Fa(MID)o(ASsamplePlayHand)r(le)
18 b Ff(is)f(a)g(sample)e(pla)o(ying)h(handle.)22 b(It)17
b(describ)q(es)f(a)h(sample)129 777 y(sound)d(that)g(is)f(b)q(eing)g
(pla)o(y)o(ed.)20 b(The)13 b(sample)f(pla)o(ying)h(handle)g(is)g(used)h
(for)f(con)o(trolling)129 837 y(the)h(attributes)h(of)g(the)g(sound,)g
(suc)o(h)g(as)g(panning)h(or)f(v)o(olume,)e(and)i(for)g(stopping)h(the)
129 897 y(sound.)p eop
%%Page: 45 50
45 49 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(45)46 278 y Fd(4.3)81 b(F)-7
b(unctions)129 429 y Ff(This)16 b(section)g(describ)q(es)g(all)f
(functions)i(a)o(v)m(ailable)e(for)i(MID)o(AS)e(sample)g(pla)o(ybac)o
(k.)p eop
%%Page: 46 51
46 50 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(46)46 278 y Fb(4.3.1)65 b(MID)n(ASloadRa)n
(wSample)129 411 y Fc(MIDASsamp)o(le)22 b(MIDASloadRa)o(wSa)o(mp)o
(le\()o(cha)o(r)g(*filename,)g(int)j(sampleType)o(,)231
472 y(int)g(loopSampl)o(e\))129 627 y Ff(Loads)18 b(a)e(ra)o(w)h(sound)
g(e\013ect)f(sample.)46 799 y Fg(Input)129 912 y(\014lename)22
b Ff(Sample)15 b(\014le)g(name)129 1014 y Fg(sampleT)n(yp)r(e)22
b Ff(Sample)14 b(t)o(yp)q(e,)i(see)f Fc(enum)g Fa(MID)o(ASsampleT)l(yp)
n(es)129 1115 y Fg(lo)r(opSample)22 b Ff(Sample)14 b(lo)q(op)j(t)o(yp)q
(e,)f(see)g Fc(enum)e Fa(MID)o(ASlo)n(op)46 1287 y Fg(Description)129
1421 y Ff(This)20 b(function)f(loads)i(a)f(sound)g(e\013ect)g(sample)e
(in)o(to)i(memory)c(and)21 b(adds)f(it)g(to)g(the)129
1481 y(Sound)e(Device.)24 b(The)17 b(sample)f(\014le)h(m)o(ust)f(con)o
(tain)i(just)g(the)f(ra)o(w)h(sample)e(data,)i(and)129
1541 y(all)c(of)i(it)f(will)f(b)q(e)h(loaded)g(in)o(to)g(memory)l(.)j
(If)d Fg(lo)r(opSample)e Ff(is)i(MID)o(AS)p 1467 1541
15 2 v 16 w(LOOP)p 1622 1541 V 18 w(YES,)129 1601 y(the)j(whole)g
(sample)f(will)h(b)q(e)g(lo)q(op)q(ed.)29 b(After)17
b(the)h(sample)f(has)i(b)q(een)g(loaded,)g(it)e(can)129
1661 y(b)q(e)i(pla)o(y)o(ed)f(using)i Fa(MID)o(ASplaySample)p
Ff(,)g(and)g(it)e(should)i(b)q(e)g(deallo)q(cated)f(with)g
Fa(MI-)129 1721 y(D)o(ASfr)n(e)n(eSample)d Ff(after)h(it)e(is)h(no)h
(longer)f(used.)46 1893 y Fg(Return)i(v)m(alue)129 2027
y Ff(Sample)c(handle)j(if)e(successful,)g(NULL)i(if)f(failed.)46
2198 y Fg(Op)r(erating)h(systems)129 2332 y Ff(All)46
2503 y Fg(See)h(also)129 2637 y Fa(MID)o(ASplaySample)p
Ff(,)e Fa(MID)o(ASfr)n(e)n(eSample)p eop
%%Page: 47 52
47 51 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(47)46 278 y Fb(4.3.2)65 b(MID)n(ASfreeSample)
129 411 y Fc(BOOL)24 b(MIDASfreeS)o(am)o(ple)o(\(MI)o(DAS)o(sa)o(mpl)o
(e)f(sample\))129 567 y Ff(Deallo)q(cates)16 b(a)h(sound)g(e\013ect)f
(sample.)46 739 y Fg(Input)129 852 y(sample)22 b Ff(Sample)15
b(to)i(b)q(e)f(deallo)q(cated)46 1023 y Fg(Description)129
1157 y Ff(This)23 b(function)g(deallo)q(cates)g(a)h(sound)g(e\013ect)f
(sample)f(that)h(has)h(b)q(een)g(previously)129 1217
y(loaded)17 b(with)g Fa(MID)o(ASlo)n(adR)n(awSample)p
Ff(.)25 b(It)16 b(remo)o(v)o(es)f(the)j(sample)d(from)i(the)g(Sound)129
1277 y(Device)c(and)j(deallo)q(cates)f(the)g(memory)d(used.)21
b(This)16 b(function)f(ma)o(y)e(not)j(b)q(e)f(called)f(if)129
1338 y(the)i(sample)f(is)h(still)f(b)q(eing)h(pla)o(y)o(ed.)46
1509 y Fg(Return)i(v)m(alue)129 1643 y Ff(TR)o(UE)d(if)h(successful,)f
(F)-5 b(ALSE)16 b(if)g(not.)46 1814 y Fg(Op)r(erating)h(systems)129
1948 y Ff(All)46 2119 y Fg(See)h(also)129 2253 y Fa(MID)o(ASlo)n(adR)n
(awSample)p eop
%%Page: 48 53
48 52 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(48)46 278 y Fb(4.3.3)65 b(MID)n
(ASsetAutoE\013ectChannels)129 411 y Fc(BOOL)24 b(MIDASsetAu)o(to)o
(Eff)o(ect)o(Cha)o(nn)o(els)o(\(un)o(si)o(gne)o(d)f(firstChan)o(nel)o
(,)231 472 y(unsigned)g(numChannel)o(s\))129 627 y Ff(Sets)16
b(the)g(range)h(of)f(c)o(hannels)g(that)h(can)f(b)q(e)g(used)h(as)g
(automatic)e(e\013ect)h(c)o(hannels.)46 799 y Fg(Input)129
912 y(\014rstChannel)24 b Ff(First)16 b(c)o(hannel)g(that)g(can)h(b)q
(e)f(used)129 1014 y Fg(n)n(umChannels)24 b Ff(Num)o(b)q(er)14
b(of)j(c)o(hannels)e(that)i(can)g(b)q(e)f(used)46 1185
y Fg(Description)129 1319 y Ff(This)j(function)h(is)f(used)h(to)g(set)g
(the)f(range)h(of)g(c)o(hannels)f(that)h(can)g(b)q(e)g(used)g(as)g(au-)
129 1379 y(tomatic)d(e\013ect)h(c)o(hannels)g(b)o(y)g
Fa(MID)o(ASplaySample)p Ff(.)29 b(When)19 b Fa(MID)o(ASplaySample)g
Ff(is)129 1439 y(passed)d(MID)o(AS)p 449 1439 15 2 v
17 w(CHANNEL)p 712 1439 V 16 w(A)o(UTO)f(as)h(the)g(c)o(hannel)e(n)o
(um)o(b)q(er,)g(it)h(will)g(use)g(one)h(of)129 1499 y(these)g
(automatic)f(c)o(hannels)h(to)g(pla)o(y)g(the)g(sound.)46
1671 y Fg(Return)i(v)m(alue)129 1805 y Ff(TR)o(UE)d(if)h(successful,)f
(F)-5 b(ALSE)16 b(if)g(not.)46 1976 y Fg(Op)r(erating)h(systems)129
2110 y Ff(All)46 2281 y Fg(See)h(also)129 2415 y Fa(MID)o(ASplaySample)
p eop
%%Page: 49 54
49 53 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(49)46 278 y Fb(4.3.4)65 b(MID)n(ASpla)n
(ySample)129 410 y Fc(MIDASsamp)o(leP)o(lay)o(Ha)o(ndl)o(e)23
b(MIDASplay)o(Sam)o(pl)o(e\(M)o(IDA)o(Ssa)o(mp)o(le)f(sample,)231
470 y(unsigned)h(channel,)g(int)h(priority,)e(unsigned)h(rate,)231
530 y(unsigned)g(volume,)g(int)i(panning\))129 671 y
Ff(Pla)o(ys)16 b(a)g(sound)i(e\013ect)d(sample.)46 839
y Fg(Input)129 951 y(sample)22 b Ff(The)17 b(sample)e(that)h(will)f(b)q
(e)i(pla)o(y)o(ed)129 1049 y Fg(c)n(hannel)24 b Ff(The)f(c)o(hannel)f
(n)o(um)o(b)q(er)f(that)i(is)g(used)g(to)g(pla)o(y)f(the)g(sample.)40
b(Use)22 b(MI-)251 1109 y(D)o(AS)p 354 1109 15 2 v 17
w(CHANNEL)p 617 1109 V 16 w(A)o(UTO)f(to)h(let)f Fa(MID)o(ASplaySample)
h Ff(select)e(the)h(c)o(hannel)251 1170 y(automatically)l(.)e(See)d
Fc(enum)f Fa(MID)o(ASchannels)p Ff(.)129 1268 y Fg(priorit)n(y)23
b Ff(Sample)14 b(pla)o(ying)i(priorit)o(y)l(.)k(The)15
b(higher)h(the)g(v)m(alue)f(the)h(more)f(imp)q(ortan)o(t)251
1328 y(the)h(sample)e(is)j(considered.)129 1427 y Fg(rate)24
b Ff(Initial)15 b(sample)f(rate)j(for)f(the)g(sample)129
1525 y Fg(v)n(olume)22 b Ff(Initial)15 b(v)o(olume)f(for)j(the)f
(sample)129 1623 y Fg(panning)24 b Ff(Initial)15 b(panning)h(p)q
(osition)g(for)f(the)g(sample.)20 b(See)15 b Fc(enum)f
Fa(MID)o(ASp)n(anning)p Ff(.)46 1791 y Fg(Description)129
1924 y Ff(This)i(function)g(is)g(used)h(to)g(pla)o(y)e(a)i(sound)g
(e\013ect)f(sample)f(on)i(a)f(giv)o(en)g(c)o(hannel.)21
b(The)129 1984 y(sample)12 b(will)h(receiv)o(e)f(as)j(initial)e
(parameters)g(the)h(v)m(alues)g(passed)h(as)g(argumen)o(ts,)e(and)129
2044 y(pla)o(ying)d(the)h(sample)f(will)g(b)q(e)i(started.)20
b(If)11 b Fg(c)n(hannel)g Ff(is)g(MID)o(AS)p 1313 2044
V 16 w(CHANNEL)p 1575 2044 V 17 w(A)o(UTO,)129 2104 y(the)20
b(c)o(hannel)g(will)f(b)q(e)i(selected)e(automatically)l(.)33
b(The)20 b(sample)f(pla)o(ying)h(priorit)o(y)g(is)129
2164 y(used)c(to)h(c)o(ho)q(ose)f(the)g(c)o(hannel)g(the)g(sample)f
(will)g(b)q(e)h(pla)o(y)o(ed)f(on)i(in)f(this)g(case.)129
2265 y(This)22 b(function)g(returns)g(a)h(sample)e(pla)o(ying)g
(handle,)j(that)e(can)h(later)f(b)q(e)g(used)g(to)129
2325 y(stop)17 b(the)f(sample)f(or)h(c)o(hange)g(its)h(parameters.)j
(This)c(mak)o(es)f(it)h(p)q(ossible)g(to)h(refer)e(to)129
2385 y(samples)g(without)h(kno)o(wing)h(the)f(exact)f(c)o(hannel)h
(they)g(are)g(pla)o(y)o(ed)f(on.)46 2553 y Fg(Return)j(v)m(alue)129
2685 y Ff(Sample)c(pla)o(ying)i(handle)g(if)g(successful,)f(NULL)i(if)e
(failed.)p eop
%%Page: 50 55
50 54 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(50)46 278 y Fg(Op)r(erating)17
b(systems)129 411 y Ff(All)46 583 y Fg(See)h(also)129
717 y Fa(MID)o(ASstopSample)p Ff(,)e Fa(MID)o(ASsetA)o(utoE\013e)n
(ctChannels)p eop
%%Page: 51 56
51 55 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(51)46 278 y Fb(4.3.5)65 b(MID)n(ASstopSample)
129 411 y Fc(BOOL)24 b(MIDASstopS)o(am)o(ple)o(\(MI)o(DAS)o(sa)o(mpl)o
(ePl)o(ay)o(Han)o(dle)e(sample\))129 567 y Ff(Stops)17
b(pla)o(ying)e(a)i(sample.)46 739 y Fg(Input)129 852
y(sample)22 b Ff(Sample)15 b(to)i(b)q(e)f(stopp)q(ed)46
1023 y Fg(Description)129 1157 y Ff(This)25 b(function)g(stops)i(pla)o
(ying)e(a)g(sound)i(e\013ect)e(sample)f(started)h(with)h
Fa(MID)o(AS-)129 1217 y(playSample)p Ff(.)g(Pla)o(ying)17
b(the)h(sound)g(will)f(stop,)h(and)h(the)e(c)o(hannel)g(is)h(freed)f
(for)h(other)129 1277 y(samples)c(to)i(use.)21 b(Note)15
b(that)h Fg(sample)e Ff(is)i(the)f(sample)f(pla)o(ying)h(handle)h
(returned)f(b)o(y)129 1338 y Fa(MID)o(ASplaySample)p
Ff(.)46 1509 y Fg(Return)j(v)m(alue)129 1643 y Ff(TR)o(UE)d(if)h
(successful,)f(F)-5 b(ALSE)16 b(if)g(not.)46 1814 y Fg(Op)r(erating)h
(systems)129 1948 y Ff(All)46 2119 y Fg(See)h(also)129
2253 y Fa(MID)o(ASplaySample)p eop
%%Page: 52 57
52 56 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(52)46 278 y Fb(4.3.6)65 b(MID)n
(ASsetSampleRate)129 411 y Fc(BOOL)24 b(MIDASsetSa)o(mp)o(leR)o(ate)o
(\(MI)o(DA)o(Ssa)o(mpl)o(eP)o(lay)o(Han)o(dle)e(sample,)231
472 y(unsigned)h(rate\))129 627 y Ff(Changes)17 b(the)f(sample)f(rate)h
(for)h(a)f(sound)i(e\013ect)d(sample.)46 799 y Fg(Input)129
912 y(sample)22 b Ff(Sample)15 b(to)i(b)q(e)f(c)o(hanged)129
1014 y Fg(rate)24 b Ff(New)15 b(sample)g(rate)h(for)h(the)f(sample)46
1185 y Fg(Description)129 1319 y Ff(This)e(function)g(c)o(hanges)g(the)
g(sample)e(rate)i(for)h(a)f(sound)h(e\013ect)f(sample)e(that)j(is)e(b)q
(eing)129 1379 y(pla)o(y)o(ed.)46 1550 y Fg(Return)18
b(v)m(alue)129 1684 y Ff(TR)o(UE)d(if)h(successful,)f(F)-5
b(ALSE)16 b(if)g(not.)46 1856 y Fg(Op)r(erating)h(systems)129
1990 y Ff(All)46 2161 y Fg(See)h(also)129 2295 y Fa(MID)o(ASplaySample)
p eop
%%Page: 53 58
53 57 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(53)46 278 y Fb(4.3.7)65 b(MID)n(ASsetSampleV)
-6 b(olume)129 411 y Fc(BOOL)24 b(MIDASsetSa)o(mp)o(leV)o(olu)o(me\()o
(MI)o(DAS)o(sam)o(pl)o(ePl)o(ayH)o(and)o(le)e(sample,)231
472 y(unsigned)h(volume\))129 627 y Ff(Changes)17 b(the)f(v)o(olume)e
(for)j(a)f(sound)h(e\013ect)f(sample.)46 799 y Fg(Input)129
912 y(sample)22 b Ff(Sample)15 b(to)i(b)q(e)f(c)o(hanged)129
1014 y Fg(rate)24 b Ff(New)15 b(v)o(olume)f(for)j(the)f(sample)f
(\(0{64\))46 1185 y Fg(Description)129 1319 y Ff(This)22
b(function)f(c)o(hanges)h(the)g(v)o(olume)d(for)j(a)g(sound)h(e\013ect)
e(sample)g(that)h(is)f(b)q(eing)129 1379 y(pla)o(y)o(ed.)46
1550 y Fg(Return)d(v)m(alue)129 1684 y Ff(TR)o(UE)d(if)h(successful,)f
(F)-5 b(ALSE)16 b(if)g(not.)46 1856 y Fg(Op)r(erating)h(systems)129
1990 y Ff(All)46 2161 y Fg(See)h(also)129 2295 y Fa(MID)o(ASplaySample)
p eop
%%Page: 54 59
54 58 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(54)46 278 y Fb(4.3.8)65 b(MID)n(ASsetSampleP)
n(anning)129 411 y Fc(BOOL)24 b(MIDASsetSa)o(mp)o(leP)o(ann)o(ing)o
(\(M)o(IDA)o(Ssa)o(mp)o(leP)o(lay)o(Han)o(dl)o(e)f(sample,)231
472 y(int)i(panning\))129 627 y Ff(Changes)17 b(the)f(panning)h(p)q
(osition)g(of)f(a)h(sound)g(e\013ect)f(sample.)46 799
y Fg(Input)129 912 y(sample)22 b Ff(Sample)15 b(to)i(b)q(e)f(c)o
(hanged)129 1014 y Fg(panning)24 b Ff(New)16 b(panning)h(p)q(osition)g
(for)g(the)f(sample)e(\(see)i Fc(enum)f Fa(MID)o(ASp)n(anning)p
Ff(\))46 1185 y Fg(Description)129 1319 y Ff(This)i(function)g(c)o
(hanges)h(the)e(panning)i(p)q(osition)g(of)g(a)f(sound)i(e\013ect)d
(sample)g(that)i(is)129 1379 y(b)q(eing)e(pla)o(y)o(ed.)k(See)15
b(description)h(of)g Fc(enum)f Fa(MID)o(ASp)n(anning)h
Ff(for)g(information)f(ab)q(out)129 1439 y(the)h(panning)h(p)q(osition)
g(v)m(alues.)46 1611 y Fg(Return)h(v)m(alue)129 1744
y Ff(TR)o(UE)d(if)h(successful,)f(F)-5 b(ALSE)16 b(if)g(not.)46
1916 y Fg(Op)r(erating)h(systems)129 2050 y Ff(All)46
2221 y Fg(See)h(also)129 2355 y Fa(MID)o(ASplaySample)p
eop
%%Page: 55 60
55 59 bop 129 145 a Fe(CHAPTER)16 b(4.)38 b(SAMPLE)16
b(PLA)l(YBA)o(CK)734 b Ff(55)46 278 y Fb(4.3.9)65 b(MID)n
(ASsetSamplePriorit)n(y)129 411 y Fc(BOOL)24 b(MIDASsetSa)o(mp)o(leP)o
(rio)o(rit)o(y\()o(MID)o(ASs)o(am)o(ple)o(Pla)o(yHa)o(nd)o(le)e
(sample,)231 472 y(int)j(priority\))129 627 y Ff(Changes)17
b(the)f(pla)o(ying)g(priorit)o(y)f(of)h(a)h(sound)g(e\013ect)f(sample.)
46 799 y Fg(Input)129 912 y(sample)22 b Ff(Sample)15
b(to)i(b)q(e)f(c)o(hanged)129 1014 y Fg(priorit)n(y)23
b Ff(New)16 b(pla)o(ying)f(priorit)o(y)h(for)g(the)g(sample)46
1185 y Fg(Description)129 1319 y Ff(This)d(function)g(c)o(hanges)g(the)
g(pla)o(ying)f(priorit)o(y)g(a)i(sound)g(e\013ect)e(sample)g(that)i(is)
e(b)q(eing)129 1379 y(pla)o(y)o(ed.)46 1550 y Fg(Return)18
b(v)m(alue)129 1684 y Ff(TR)o(UE)d(if)h(successful,)f(F)-5
b(ALSE)16 b(if)g(not.)46 1856 y Fg(Op)r(erating)h(systems)129
1990 y Ff(All)46 2161 y Fg(See)h(also)129 2295 y Fa(MID)o(ASplaySample)
p eop
%%Page: 56 61
56 60 bop 129 651 a Fh(Chapter)39 b(5)129 900 y(Stream)f(pla)m(ybac)m
(k)46 1199 y Fd(5.1)81 b(Constan)n(ts)129 1350 y Ff(This)17
b(section)g(describ)q(es)g(all)g(constan)o(ts)i(used)e(in)g(MID)o(AS)g
(stream)f(pla)o(ybac)o(k.)24 b(They)129 1410 y(are)19
b(group)q(ed)i(according)e(to)h(the)f Fc(enum)f Ff(used)i(to)g
(de\014ne)f(them.)29 b(Note)19 b(that)h(stream)129 1471
y(pla)o(ybac)o(k)f(prop)q(erties,)h(suc)o(h)g(as)g(v)o(olume)e(and)j
(panning,)g(are)f(con)o(trolled)f(similarily)129 1531
y(those)d(of)h(samples.)914 2810 y(56)p eop
%%Page: 57 62
57 61 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(STREAM)16
b(PLA)l(YBA)o(CK)726 b Ff(57)46 278 y Fd(5.2)81 b(Data)28
b(t)n(yp)r(es)129 429 y Ff(This)16 b(section)g(describ)q(es)g(all)f
(data)j(t)o(yp)q(es)e(used)g(in)g(MID)o(AS)f(stream)g(pla)o(ybac)o(k.)p
eop
%%Page: 58 63
58 62 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(STREAM)16
b(PLA)l(YBA)o(CK)726 b Ff(58)46 278 y Fb(5.2.1)65 b(MID)n
(ASstreamHandle)129 411 y Fc(typedef)23 b(...)h(MIDASstream)o(Han)o(dl)
o(e;)46 583 y Fg(Description)129 717 y Fa(MID)o(ASstr)n(e)n(amHand)r
(le)17 b Ff(is)g(a)h(stream)e(handle)h(that)h(de\014nes)f(a)g(digital)g
(audio)h(stream)129 777 y(that)f(is)g(b)q(eing)h(pla)o(y)o(ed.)23
b(Streams)16 b(only)h(exist)f(in)h(the)g(system)f(when)h(they)g(are)g
(b)q(eing)129 837 y(pla)o(y)o(ed,)d(so)j(there)f(is)g(no)h(separate)f
(\\pla)o(ying)g(handle")h(data)g(t)o(yp)q(e.)p eop
%%Page: 59 64
59 63 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(STREAM)16
b(PLA)l(YBA)o(CK)726 b Ff(59)46 278 y Fd(5.3)81 b(F)-7
b(unctions)129 429 y Ff(This)16 b(section)g(describ)q(es)g(all)f
(functions)i(a)o(v)m(ailable)e(for)i(MID)o(AS)e(stream)g(pla)o(ybac)o
(k.)p eop
%%Page: 60 65
60 64 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(STREAM)16
b(PLA)l(YBA)o(CK)726 b Ff(60)46 278 y Fb(5.3.1)65 b(MID)n(ASpla)n
(yStreamFile)129 411 y Fc(MIDASstre)o(amH)o(and)o(le)22
b(MIDASplayS)o(tre)o(amF)o(il)o(e\(u)o(nsi)o(gne)o(d)g(channel,)231
472 y(char)i(*fileName,)e(unsigned)h(sampleType)o(,)g(unsigned)f
(sampleRate,)231 532 y(unsigned)h(bufferLeng)o(th,)f(int)i
(loopStream\))129 688 y Ff(Starts)17 b(pla)o(ying)e(a)i(digital)f
(audio)g(stream)g(from)f(a)h(\014le.)46 859 y Fg(Input)129
972 y(c)n(hannel)24 b Ff(The)16 b(c)o(hannel)g(n)o(um)o(b)q(er)e(the)i
(stream)g(will)f(b)q(e)h(pla)o(y)o(ed)f(on)129 1074 y
Fg(\014leName)22 b Ff(Stream)15 b(\014le)g(name)129 1175
y Fg(sampleT)n(yp)r(e)22 b Ff(Stream)15 b(sample)f(t)o(yp)q(e,)i(see)g
Fc(enum)e Fa(MID)o(ASsampleT)l(yp)n(es)129 1277 y Fg(sampleRate)22
b Ff(Stream)15 b(sample)g(rate)129 1379 y Fg(bu\013erLength)23
b Ff(Stream)15 b(pla)o(ybac)o(k)g(bu\013er)i(length)f(in)g(milli)o
(seconds)129 1481 y Fg(lo)r(opStream)22 b Ff(1)16 b(if)g(the)g(stream)f
(should)i(b)q(e)f(lo)q(op)q(ed,)h(0)g(if)e(not)46 1652
y Fg(Description)129 1786 y Ff(This)k(function)f(starts)i(pla)o(ying)e
(a)h(digital)f(audio)i(stream)d(from)h(a)h(\014le.)28
b(It)18 b(allo)q(cates)129 1846 y(the)e(stream)f(bu\013er,)h(creates)g
(a)h(new)f(thread)g(that)h(will)e(read)i(sample)e(data)i(from)e(the)129
1906 y(\014le)k(to)i(the)f(stream)g(bu\013er,)h(and)g(starts)g(the)f
(Sound)h(Device)e(to)i(pla)o(y)f(the)g(stream.)129 1966
y(The)15 b(stream)e(will)h(con)o(tin)o(ue)g(pla)o(ying)g(un)o(til)g(it)
g(is)h(stopp)q(ed)h(with)e Fa(MID)o(ASstopStr)n(e)n(am)p
Ff(.)129 2027 y(When)i(a)h(stream)f(is)g(b)q(eing)h(pla)o(y)o(ed)f(on)h
(a)g(c)o(hannel,)f(that)h(c)o(hannel)e(ma)o(y)h(not)h(b)q(e)g(used)129
2087 y(for)f(other)h(purp)q(oses.)129 2188 y(The)g(stream)f(bu\013er)h
(length)g(should)g(b)q(e)g(at)g(least)g(around)h(500ms)f(if)g(the)f
(stream)g(\014le)129 2249 y(is)g(b)q(eing)g(read)h(from)e(a)h(disc,)g
(to)g(a)o(v)o(oid)g(breaks)g(in)g(stream)f(pla)o(ybac)o(k)46
2420 y Fg(Return)j(v)m(alue)129 2554 y Ff(MID)o(AS)d(stream)g(handle)h
(if)g(successful,)f(NULL)h(if)g(failed.)p eop
%%Page: 61 66
61 65 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(STREAM)16
b(PLA)l(YBA)o(CK)726 b Ff(61)46 278 y Fg(Op)r(erating)17
b(systems)129 411 y Ff(Win32,)f(Lin)o(ux)46 583 y Fg(See)i(also)129
717 y Fa(MID)o(ASstopStr)n(e)n(am)p eop
%%Page: 62 67
62 66 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(STREAM)16
b(PLA)l(YBA)o(CK)726 b Ff(62)46 278 y Fb(5.3.2)65 b(MID)n(ASstopStream)
129 411 y Fc(BOOL)24 b(MIDASstopS)o(tr)o(eam)o(\(MI)o(DAS)o(st)o(rea)o
(mHa)o(nd)o(le)e(stream\))129 567 y Ff(Stops)17 b(pla)o(ying)e(a)i
(digital)f(audio)h(stream.)46 739 y Fg(Input)129 852
y(stream)22 b Ff(The)17 b(stream)e(that)h(will)g(b)q(e)g(stopp)q(ed)46
1023 y Fg(Description)129 1157 y Ff(This)d(function)g(stops)h(pla)o
(ying)f(a)g(digital)g(audio)h(stream.)19 b(It)13 b(stops)h(the)f
(stream)f(pla)o(y)o(er)129 1217 y(thread,)k(deallo)q(cates)g(the)g
(stream)g(bu\013er)h(and)g(closes)f(the)g(stream)f(\014le.)21
b(The)c(stream)129 1277 y(pla)o(ybac)o(k)e(c)o(hannel)g(can)i(then)f(b)
q(e)g(used)h(for)f(other)h(purp)q(oses.)46 1449 y Fg(Return)h(v)m(alue)
129 1583 y Ff(TR)o(UE)d(if)h(successful,)f(F)-5 b(ALSE)16
b(if)g(not.)46 1754 y Fg(Op)r(erating)h(systems)129 1888
y Ff(Win32,)f(Lin)o(ux)46 2059 y Fg(See)i(also)129 2193
y Fa(MID)o(ASplayStr)n(e)n(am)p eop
%%Page: 63 68
63 67 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(STREAM)16
b(PLA)l(YBA)o(CK)726 b Ff(63)46 278 y Fb(5.3.3)65 b(MID)n(ASpla)n
(yStreamP)n(ollin)q(g)129 410 y Fc(MIDASstre)o(amH)o(and)o(le)22
b(MIDASplayS)o(tre)o(amP)o(ol)o(lin)o(g\(u)o(nsi)o(gn)o(ed)g(channel,)
231 471 y(unsigned)h(sampleType)o(,)g(unsigned)f(sampleRate,)231
531 y(unsigned)h(bufferLeng)o(th\))129 677 y Ff(Starts)17
b(pla)o(ying)e(a)i(digital)f(audio)g(stream)g(in)f(p)q(olling)i(mo)q
(de.)46 846 y Fg(Input)129 958 y(c)n(hannel)24 b Ff(The)16
b(c)o(hannel)g(n)o(um)o(b)q(er)e(the)i(stream)g(will)f(b)q(e)h(pla)o(y)
o(ed)f(on)129 1058 y Fg(sampleT)n(yp)r(e)22 b Ff(Stream)15
b(sample)f(t)o(yp)q(e,)i(see)g Fc(enum)e Fa(MID)o(ASsampleT)l(yp)n(es)
129 1157 y Fg(sampleRate)22 b Ff(Stream)15 b(sample)g(rate)129
1257 y Fg(bu\013erLength)23 b Ff(Stream)15 b(pla)o(ybac)o(k)g(bu\013er)
i(length)f(in)g(milli)o(seconds)46 1426 y Fg(Description)129
1559 y Ff(This)k(function)f(starts)i(pla)o(ying)e(a)h(digital)f(audio)h
(stream)f(in)h(p)q(olling)f(mo)q(de.)31 b(It)19 b(al-)129
1619 y(lo)q(cates)h(and)g(empt)o(y)e(stream)h(bu\013er,)i(and)f(starts)
h(the)f(Sound)h(Device)d(to)i(pla)o(y)g(the)129 1679
y(stream.)f(Sample)10 b(data)k(can)e(b)q(e)h(fed)f(to)h(the)f(stream)f
(bu\013er)i(with)f Fa(MID)o(ASfe)n(e)n(dSter)n(am-)129
1740 y(Data)p Ff(.)20 b(The)c(stream)e(will)g(con)o(tin)o(ue)g(pla)o
(ying)h(un)o(til)f(it)h(is)g(stopp)q(ed)h(with)g Fa(MID)o(ASstop-)129
1800 y(Str)n(e)n(am)p Ff(.)21 b(When)16 b(a)h(stream)e(is)h(b)q(eing)h
(pla)o(y)o(ed)e(on)i(a)g(c)o(hannel,)e(that)i(c)o(hannel)e(ma)o(y)g
(not)129 1860 y(b)q(e)h(used)g(for)h(other)f(purp)q(oses.)129
1961 y(T)l(o)h(a)o(v)o(oid)g(breaks)g(in)g(pla)o(ybac)o(k,)e(the)i
(stream)f(bu\013er)i(size)e(should)h(b)q(e)h(at)f(least)g(t)o(wice)129
2021 y(the)f(exp)q(ected)f(p)q(olling)i(p)q(erio)q(d.)22
b(That)17 b(is,)e(if)h(y)o(ou)h(will)e(b)q(e)h(feeding)g(data)h(5)g
(times)e(p)q(er)129 2081 y(second)h(\(ev)o(ery)f(200ms\),)h(the)g
(bu\013er)g(should)h(b)q(e)f(at)h(least)f(400ms)g(long.)46
2250 y Fg(Return)i(v)m(alue)129 2383 y Ff(MID)o(AS)d(stream)g(handle)h
(if)g(successful,)f(NULL)h(if)g(failed.)46 2552 y Fg(Op)r(erating)h
(systems)129 2685 y Ff(Win32,)f(Lin)o(ux)p eop
%%Page: 64 69
64 68 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(STREAM)16
b(PLA)l(YBA)o(CK)726 b Ff(64)46 278 y Fg(See)18 b(also)129
411 y Fa(MID)o(ASstopStr)n(e)n(am)p Ff(,)c Fa(MID)o(ASfe)n(e)n(dStr)n
(e)n(amData)p eop
%%Page: 65 70
65 69 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(STREAM)16
b(PLA)l(YBA)o(CK)726 b Ff(65)46 278 y Fb(5.3.4)65 b(MID)n
(ASfeedStreamData)129 409 y Fc(unsigned)22 b(MIDASfeedSt)o(rea)o(mDa)o
(ta)o(\(MI)o(DAS)o(st)o(rea)o(mHa)o(ndl)o(e)g(stream,)231
470 y(unsigned)h(char)h(*data,)g(unsigned)e(numBytes,)h(BOOL)h
(feedAll\);)129 607 y Ff(F)l(eeds)15 b(sound)j(data)f(to)f(a)h(digital)
f(audio)g(stream)g(bu\013er.)46 774 y Fg(Input)129 885
y(stream)22 b Ff(The)17 b(stream)e(that)h(will)g(pla)o(y)f(the)h(data)
129 983 y Fg(data)24 b Ff(P)o(oin)o(ter)16 b(to)g(sound)i(data)129
1081 y Fg(n)n(umBytes)k Ff(Num)o(b)q(er)15 b(of)h(b)o(ytes)g(of)g
(sound)i(data)f(a)o(v)m(ailable)129 1178 y Fg(feedAll)23
b Ff(TR)o(UE)16 b(if)f(the)h(function)g(should)h(blo)q(c)o(k)f(un)o
(til)f(all)h(sound)h(data)g(can)f(b)q(e)h(fed)46 1345
y Fg(Description)129 1477 y Ff(This)f(function)h(is)f(used)g(to)h(feed)
f(sample)f(data)j(to)e(a)h(stream)f(that)h(has)g(b)q(een)f(started)129
1537 y(with)e Fa(MID)o(ASplayStr)n(e)n(amPol)r(ling)p
Ff(.)22 b(Up)14 b(to)h Fg(n)n(umBytes)d Ff(b)o(ytes)i(of)h(new)g
(sample)e(data)129 1598 y(from)i Fg(*data)h Ff(will)f(b)q(e)h(copied)g
(to)g(the)g(stream)f(bu\013er,)h(and)h(the)f(stream)f(bu\013er)h(write)
129 1658 y(p)q(osition)j(is)g(up)q(dated)g(accordingly)l(.)29
b(The)19 b(function)f(returns)h(the)g(n)o(um)o(b)q(er)e(of)i(b)o(ytes)
129 1718 y(of)14 b(sound)h(data)g(actually)f(used.)21
b(If)14 b Fg(feedAll)f Ff(is)h(TR)o(UE,)f(the)h(function)g(will)f(blo)q
(c)o(k)h(the)129 1778 y(curren)o(t)h(thread)h(of)h(execution)e(un)o
(til)g(all)h(sound)h(data)g(is)f(used.)46 1946 y Fg(Return)i(v)m(alue)
129 2077 y Ff(The)e(n)o(um)o(b)q(er)e(of)j(b)o(ytes)f(of)g(sound)h
(data)g(actually)f(used.)46 2245 y Fg(Op)r(erating)h(systems)129
2376 y Ff(Win32,)f(Lin)o(ux)46 2544 y Fg(See)i(also)129
2676 y Fa(MID)o(ASplayStr)n(e)n(amPol)r(ling)p eop
%%Page: 66 71
66 70 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(STREAM)16
b(PLA)l(YBA)o(CK)726 b Ff(66)46 278 y Fb(5.3.5)65 b(MID)n
(ASsetStreamRate)129 411 y Fc(BOOL)24 b(MIDASsetSt)o(re)o(amR)o(ate)o
(\(MI)o(DA)o(Sst)o(rea)o(mH)o(and)o(le)e(stream,)231
471 y(unsigned)h(rate\);)129 620 y Ff(Changes)17 b(stream)e(pla)o(ybac)
o(k)g(sample)g(rate.)46 789 y Fg(Input)129 902 y(stream)22
b Ff(Stream)15 b(handle)i(for)f(the)g(stream)129 1002
y Fg(rate)24 b Ff(New)15 b(pla)o(ybac)o(k)h(sample)e(rate)j(for)f(the)g
(stream,)f(in)h(Hertz.)46 1172 y Fg(Description)129 1305
y Ff(This)j(function)h(c)o(hanges)g(the)f(pla)o(ybac)o(k)g(sample)f
(rate)i(for)f(a)h(stream)f(that)h(is)f(b)q(eing)129 1365
y(pla)o(y)o(ed.)h(The)c(initial)e(sample)h(rate)h(is)f(giv)o(en)h(as)g
(an)h(argumen)o(t)d(to)j(the)e(function)h(that)129 1425
y(starts)h(stream)e(pla)o(ybac)o(k.)129 1526 y(Note)j(that)g(the)g
(stream)g(pla)o(ybac)o(k)f(bu\013er)h(size)g(is)g(calculated)f(based)i
(on)g(the)f(initial)129 1586 y(sample)c(rate,)i(so)h(the)f(stream)f
(sample)g(rate)h(should)g(not)h(b)q(e)f(c)o(hanged)g(v)o(ery)f(far)i
(from)129 1646 y(that)i(\014gure.)30 b(In)19 b(particular,)g(pla)o
(ybac)o(k)f(sample)g(rates)i(o)o(v)o(er)e(t)o(w)o(o)h(times)e(the)i
(initial)129 1707 y(v)m(alue)i(ma)o(y)g(cause)h(breaks)g(in)g(stream)f
(pla)o(ybac)o(k.)38 b(T)l(o)q(o)23 b(lo)o(w)f(rates,)h(on)g(the)f
(other)129 1767 y(hand,)16 b(will)f(increase)h(latency)l(.)46
1937 y Fg(Return)i(v)m(alue)129 2070 y Ff(TR)o(UE)d(if)h(successful,)f
(F)-5 b(ALSE)16 b(if)g(not.)46 2240 y Fg(Op)r(erating)h(systems)129
2373 y Ff(Win32,)f(Lin)o(ux)46 2542 y Fg(See)i(also)129
2676 y Fa(MID)o(ASsetStr)n(e)n(amV)l(olume)p Ff(,)e Fa(MID)o(ASsetStr)n
(e)n(amPanning)p eop
%%Page: 67 72
67 71 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(STREAM)16
b(PLA)l(YBA)o(CK)726 b Ff(67)46 278 y Fb(5.3.6)65 b(MID)n(ASsetStreamV)
-6 b(olume)129 411 y Fc(BOOL)24 b(MIDASsetSt)o(re)o(amV)o(olu)o(me\()o
(MI)o(DAS)o(str)o(ea)o(mHa)o(ndl)o(e)f(stream,)231 472
y(unsigned)g(volume\);)129 627 y Ff(Changes)17 b(stream)e(pla)o(ybac)o
(k)g(v)o(olume.)46 799 y Fg(Input)129 912 y(stream)22
b Ff(Stream)15 b(handle)i(for)f(the)g(stream)129 1014
y Fg(v)n(olume)22 b Ff(New)16 b(v)o(olume)e(for)i(the)g(stream,)f
(0{64.)46 1185 y Fg(Description)129 1319 y Ff(This)e(function)h(c)o
(hanges)g(the)f(pla)o(ybac)o(k)g(v)o(olume)e(for)j(a)g(stream)f(that)h
(is)f(b)q(eing)h(pla)o(y)o(ed.)129 1379 y(The)i(initial)f(v)o(olume)f
(is)i(64)h(\(maxim)o(um)n(\).)46 1550 y Fg(Return)h(v)m(alue)129
1684 y Ff(TR)o(UE)d(if)h(successful,)f(F)-5 b(ALSE)16
b(if)g(not.)46 1856 y Fg(Op)r(erating)h(systems)129 1990
y Ff(Win32,)f(Lin)o(ux)46 2161 y Fg(See)i(also)129 2295
y Fa(MID)o(ASsetStr)n(e)n(amR)n(ate)p Ff(,)d Fa(MID)o(ASsetStr)n(e)n
(amPanning)p eop
%%Page: 68 73
68 72 bop 129 145 a Fe(CHAPTER)16 b(5.)38 b(STREAM)16
b(PLA)l(YBA)o(CK)726 b Ff(68)46 278 y Fb(5.3.7)65 b(MID)n(ASsetStreamP)
n(anning)129 411 y Fc(BOOL)24 b(MIDASsetSt)o(re)o(amP)o(ann)o(ing)o
(\(M)o(IDA)o(Sst)o(re)o(amH)o(and)o(le)e(stream,)231
472 y(int)j(panning\);)129 627 y Ff(Changes)17 b(stream)e(panning)i(p)q
(osition.)46 799 y Fg(Input)129 912 y(stream)22 b Ff(Stream)15
b(handle)i(for)f(the)g(stream)129 1014 y Fg(panning)24
b Ff(New)16 b(panning)h(p)q(osition)g(for)g(the)f(stream)46
1185 y Fg(Description)129 1319 y Ff(This)d(function)h(c)o(hanges)f(the)
h(panning)g(p)q(osition)g(for)g(a)g(stream)e(that)i(is)g(b)q(eing)f
(pla)o(y)o(ed.)129 1379 y(The)j(initial)g(v)o(olume)e(is)i(0)h(\(cen)o
(ter\).)k(See)16 b(description)g(of)h Fc(enum)e Fa(MID)o(ASp)n(anning)i
Ff(for)129 1439 y(information)e(ab)q(out)i(the)f(panning)h(p)q(osition)
g(v)m(alues.)46 1611 y Fg(Return)h(v)m(alue)129 1744
y Ff(TR)o(UE)d(if)h(successful,)f(F)-5 b(ALSE)16 b(if)g(not.)46
1916 y Fg(Op)r(erating)h(systems)129 2050 y Ff(Win32,)f(Lin)o(ux)46
2221 y Fg(See)i(also)129 2355 y Fa(MID)o(ASsetStr)n(e)n(amV)l(olume)p
Ff(,)e Fa(MID)o(ASsetStr)n(e)n(amR)n(ate)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF