[comp.sys.mac.programmer] IIsi Sound Manager bug?

christer@cs.umu.se (Christer Ericson) (03/08/91)

I'm absolutely perplexed! Why doesn't this piece of code play the 'snd '
the way it should, but instead truncates the sound so only the first half
(or whatever) is played?

It works perfectly on the SE, but I've tried it on two IIsi (with no INITs
running) with the same result, a truncated sound.

Is it me, or is there something fishy going on? I've appended the program
below, and a stuffit archive bundled with both the program and the 'snd '-
resources it fails to play properly can be found at the end of this posting.

----------
PROGRAM SndFailure;
   USES Sound;
   VAR
      aSound: BOOLEAN;
      sh: Handle;
      err: OSErr;
      s: SndChannelPtr;
      sc: SndCommand;
      tick: LONGINT;

   PROCEDURE SndDone;
   BEGIN
      aSound := TRUE;
   END;

   PROCEDURE Bdiih;
   BEGIN
      aSound := FALSE;
      s := NIL;
      err := SndNewChannel(s, 0, 0, @SndDone);
      err := SndPlay(s, sh, TRUE);
      sc.cmd := callBackCmd;
      err := SndDoCommand(s, sc, FALSE);
      REPEAT
      UNTIL aSound;
      err := SndDisposeChannel(s, FALSE);
   END;

BEGIN
   UseResFile(OpenResFile('cz.rsrc'));
   sh := GetResource('snd ', 999);

{ First try a synchronous sound }
   err := SndPlay(NIL, sh, FALSE);
   Delay(60, tick);

{ Then try asynchronous }
   Bdiih;
   Delay(60, tick);
END.
----------

I can't understand why 'SndPlay(NIL, theSoundHandle, FALSE)' fails. It
_should_ work, shouldn't it?!

/Christer

| Christer Ericson                            Internet: christer@cs.umu.se |
| Department of Computer Science, University of Umea, S-90187 UMEA, Sweden |

--- cut here ---
(This file must be converted with BinHex 4.0)
:$P0ZC%CKD@aeFQ8ZFfPd!&0*9#&6593K!!!!!!qP!!!!!"qP8dP8)3!#!!!2TA*
-BA8"!!!!!!!!!!%!"f0k,R*cFQ-Z-#"hD@jZCA*c!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(*cFQ058d9%!3#MkE!cSr`j2!!
!$IJ!!!!!!!!-f`!!!!"@9`!!!!!!!!!!fi-!!!%!N!!$$Dm!!!b[!*!!!dN!N!!
%$3!3!#d!-+!#!+J!N!!&&J!i!#F!iBJB8h4["f0k,R*cFQ-#!*!!!h*cFQ058d9
%!3$rj`$B!*!!"6%!!(*cFQ058d9%!3$rj`$B!*!!%!m'SqQ`-`#3!!B0q!!!b!%
`!!%!N!!)#lN!N!!%&3#3!!AQ!9`!!3#3!!J,Z!#3!!39!&!!EJ$k!EJ!!3#3!!J
(e!#3!!39!&!!EJ$k!EJ!!3#3!!J(d`#3!!39!&!!EJ$k!EJ!!3#3!!J(dJ#3!!3
9!&!!EJ$k!EJ!!!Kr!!%!!3!&!*!!"3'!83#3!!88!*!!"JJC9[%!N!!%#%%!!!K
#!*!!!`%!!!)+!H)!E`(L!2X"i`%2!*!!!`%!!)#3!"0rIhjqIAalHRGcEQGJ@90
058G'N!!'4dP-8PKJDA*lK)b5PTLDQTZEQTUANif'IRCYBeP35%)q1cSl2$dr3dK
08ePKDR@!LT5FSU@QTU@PSjkCNSb%IA4UAP0*36`j1$Nk1ca!3dP19&TLE(L$N!!
!Qk1RUDQRTU5JQT50KhphE@0B68-m1$Be06Bh1Mj%58p9A'9`IBQ9Rk@TUUQRTU1
IQ*'+JhedDPp65$ii063e06Bh1Mp&5e"@AQKdJBqFTDUVUULQTU1GPBk+KAebCea
34$Sf0*!!"$8i2%&(6&*BB@YhKC5JU+bXUkQSTU+ENib)JRYbCeT036Nd-T!!!c-
e1$e$58e5@@*YHiL@SUQXVDZTU+HQRT@1LB*iE@&53M8X+#BP*LBS,$)j2dC-8ej
XI)fGUV+fYV5aVkfRRC1-Ki"fDej23$3V*L8N*5BS,$)j3%C09Q&[Ij!!!+#XY,L
iYV5aVDDFNSb'IR4S@d`m-#NP)b-N*5JY-cY$5P"CCA5&PU@aZ,ZkYl5bVUDDN!!
!LB*jEQ*846J[+#8M)b8R+5ie2NC-8eeVI)fFUV@l[,UfY,+XSTD0KRjdD&Y03$8
X*b3N*5BS,$%j3NP2@'4cJj1LX,Lm[,QfXl#SR*'*JhYaC&C)1c%T*5-N*LJV-$G
!5%p@B@q!N!!!Rkfh[VqpZEDcVD+8LB&kF@CD6$me,LJP*#BS+Lie2NK49f"YIT!
!!*qXYVh![VUfY+kNPSU#Hh0S@ddr05iT*53Q+#XZ0$j*8PKIDhf2Rkbf[X(![EU
fX+@ALi*lF@CE6N)h,LNQN!!$+5X[06p*89PNFi59Sl#l`X6"[EQfXDDBMBCrGQY
I88-i,bSQ*5FU,6%h3%Y6@Q0`JT1MVlV"a-'pZVHaTTL0KAjeDPj33MBZ+5BP*LJ
V-$G"5e4FCR5%PD1`Zm,%`VqmZ,'PPiZ$H@pM9dSq0#dS*LBR+5X`0d",9&eUHSf
GUlI"amI$[lbiVk+9M)CqFfGE6N!d,5JQ*LFU,M3p5&0EC'pqMk#ZZX2(am1r[EL
ZRj'(Ih9VAe4(1c%V+#BQ*bNY-ce(89TNFS18T,+qaXR'`EflYDLBLi@!GfTF6N%
h,LNQ*LFU,6)k49&EBfjmMCfVZ-((b-A#`,fdTC@,KAjbC&G-3$8Y+#FR+5XZ0$e
*9&jRFi5@TV5ramh2cFR'`VbcTCQ2KRTV@dY!0c%Z,5ma0$T#6PTQFAf,QUUia-h
6dXh'`VfdTjQ3!!#*J(4P98Jq05iU+5XZ-cP#6PeXHSD6SE'qb-h1bXA"[VQZS*@
1KheZANj$1M-Y+b`Z-6Bq59CPFi'1R+Qh`m[2cXV%`EfeUTk8M)0fCeK+2M8`,5d
Z-$3m4e4JEAU(PD1a[FI1d-h(`VkjX+5CNBU"G'4646Sb,5XV,#mf3%eDCh1!MTZ
TYF$+d0$-am6!ZDkLQ*!!!)KmEPp446Xe-M'3!!-d1dC6B'ajKjDPXm$,dpE8cm[
)a,baTTkBMi&bBeC,3cdk16Ji1N&-@@9aISbFUlM%cpAAdmh)`lkdU*f9MiChCeK
04Mml16Nl2N41@QGcISUAT+qj`XV3dFh)`lqiVD'9MB0hD9P-3M`j0c8d0MT#69P
PFAf+Pk5`ZX2*bmR&`EffV+'BN!!!KhYXAP"&2$8a-*!!!c%f2daBBfjlLCDMVVM
!aFA#[EUfVkDFP)f%GfPD6N-l06)`,bi`0N"09f&XHSL@SUfi`XM*aF#pZE1TS*Q
6LRj`BP9-46ml1$Be0ce(8PeQFAf+Pk+XYX$)bFE"[,LbUU+DP)f$GfTI98e(3Mi
k0cFk38Y9AQKdJBfBSkkj`XE'`VkkYV'USTf@MS0fDQ"B8%P%2c`l2%"(89YPERL
$MTLLV,Dq`X'rZlHcVULLRC@-J(9VBeY66%G$3$iq38G3@&pRF(U%MjQNVE@jZlU
iY,#VTU'EP)Z#HA&TB9T668K%36p"48Y5@@"REhQ$M*DITkfaXl1bVkbTT*qCNSZ
%IA9ZCf"C8dj*4dC'5%a399YLDA"iJ)L3!!#@R++QUDUUU+@KR*H4M)H#I(GaE'G
LA9K889"26e"599TJCQabH(f$L)f4PCLERTqIRCZCPT12LiH$IhYiGA*[E'PQBf&
IAPeGAQ"MCQTZFR9jI)#$KBL+MBq4Nj@@N!!%PC56NBq0LiQ(KB+!IAThG(&ZE'T
SCfCPC'9QCfKTDfjaG(GlIi1)M*!!!*1AQTbHRk#3!!1IRTbCPj53!!#0L)4rHRC
aE@PPBPpG@eU3!!0EA&jJC'KXFAGpJiQ2PCUISU@QTkHQT++JRCUANiq,Ki*mGh*
YD'4JA&TB9eCA9eKDA&pLCQY`GRb#Kif5PjZHSD+MN!!$SU'JRTbDPj54MBQ%J(Y
hFfpVD'9LB&pHAC!!!ejIB@4RDfpcH(b"KBU1NT@BQjfIRk#3!!1IRTbEQ*@5Mib
*KB&pHRCcF'eUD'CPC'13!!0NC@GTE'pbGAPpJB5)Liq4P*DAQCU3!!5CQ*H9P*'
2M)U'Ji"pHRKeFh&[E@aVDT!!"@YXER"bG(CjHhk!JS5'L)U,M)f1N!!'MBb,LSQ
(KS5$JB"qIAYkH(GfGA4cN!!)G(9fGhKjHRYmIAk!JB+$K)@&KT!!#B@&K)5$JS'
!IhjpI(alHRTjN!!$H*!!"hPjHRTlHhamIAeqIRprJ)#"N!!-J*!!"AprIT!!"(f
3!!4mN!!9IC!!"Ak3!!4rN!!3J*!!%3!!"#J!!3!"!!8!N!!&!B"4!*!!"43!N!!
'!m*@m3#3!!3$kJ!!!qX!N!!$!3!!!Am"`3)+!F)!E`(#!2Z!N!!9JC!!"B+$K)@
&Ji&rIAb3!!4pIS#3!!0rIAYjH(GiHATlHhTkHAPiN!!$HAYmIAjpIAamHhPhGRC
iHhk"JiD'KB5#K)Q,JhPkJB5*N!!!P*LHU,E&dplUp2RlrIcfh+YF,K8*!`)))P1
McqMcpZV&KMmJ$38"!JNSAV2@l2Ekr2[deU&-*a%(!`)*+&kceZcfq229RdNQ%3F
$!3!"#5KHXpEXp[MceCp**K%(!`%!!3NSAV2@l2Eimp@I55B4"`-"!!-1-@fkfZl
fq[MUaB8r)!d&!3%&'%''a1(`q2[lpGZU@bi9#3-"!JXXC,EBlIEkr2cfhUpM-"F
+"!)%%#jQRp(Rp2Rmqr,@SPNX&3N$!3-0+&Z8aq2aq2[mqrAM[BG3*K)(!`33,QD
MdZMdq[cpqr2HYS48,48+#"%V@Br!i1rhqrcmq1hAZ*KjB8j"1ce(@A5@ZYRXpIV
mqr6JZSPE1#8M,dCNKDE&hZlhqrcpr2ERbU9r@d!b-6pBHCl#hZrhqrckpHI6ZCk
#D94(3dPCFT1feHVeq[[hl0R$Uj5!Ef0F@9aPGBUM[YETp2MflGc%UBjhC9aDAfT
jLTkba02Hiq(DcEbTPB*dE'TZGi11Q+#RVE'dYVHfY,#UT*b8M)9rI(TkHi#(NCf
TXlZq[VQ`TCU2Ki&pHRKiHRf$LT1FT+Z`XV+[UU5FNiPqFfKKAf0ZIT'PYX('a,b
[S*'$GfjRBf*PEAQ)QDQf[EbcT*&rEf4IB'GaHi5-NTDCQjbGRCbCNiZ#HR4`E@e
[FhKpJSH0NjUISU5LR*+&H'eMA9TEB'PcIiU6Qk#LSCfAMiCqG@ePAeYDA@9`ISb
BSD@LQj!!!)4jF@jYEQp[E'PQC@K[HSH6R*qFP)GiDf&F@epPE(0lJ)@)LBQ(K(j
iF@TQBf0NCfabGhf"K)D'JRaeE@CKB'0SF(KrJS*qHA0ZDfYYFA4hHAKfFfpXD@G
RD'TXER"bG(GjHRb3!!0lHAGfGA9fH(PkHRKfGA4cFh9iHRerJ)"qIAalHT!!!hZ
3!!KmIAjqIj!!!hjpI(YkHRYmIAeqN!!$IC!!"hk3!!4pI(Z3!!GmN!!&IAjrJ)'
"J(jlH(CdFh4fHAYqJ)'"IhjpI(YkN!!&I(f3!!PmI(eqN!!$IhjqIi"rN!!%IT!
!!hq3!!0qIAeqIRpqIAeqN!!+IC!!"Ab3!"CpN!!EIRq3!!D!N!!8!!!"!*!!!`f
[!!!-V`#3!!0*!$`ck!M5!*!!!a`!2J!!FfjN)!!"!!S$k!#3!!S$j`!'!!!)J`#
3!!3&3Q4TD@J%8'a[F!!#$(0ZC%CKD@aeFQ8ZF'jZCA*c!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&4&@&435Ne0!3#Mr$DcSr`
iL`!!!!!!!!+T!!!!!!!!!G3!!,LY!!!!!!!!06C3T$`j)L9)%a"6h*!!-4)Q$CX
kFXVXD0!J3C8T4DC86$$P64f&%bYD#5*PBjL1(mRS!#(Nb4-Q4B)iQCJJ`4`d+j'
%8FK'iXBbFZ5XI))a+%fE+a15'B*QTjXbE+$3NA0dcTLN#SHmDG0Q*jQMG0+-@E1
5b4-R4j)iS4)b3F!R3iS3U5+P#%+&40imT5QN5&SR*P%U"+'M"`JU8US8S9R%#C'
fEq21VFZ56*SdD2Mk94[Biq$#))`%BB+a+Q($6T)`13T8cZQlC*b8ZF28+938FeL
!J+'E0`JJ5[-q6F%kk'ZP80L%bB0EpdhGL"86hfM9aCJfC&k2#F1'MC!!-'1(B#r
Z'R6`0eUjHQd1`UTZdD5,6+pC&dT-+KZVV&80iU6RVcmCCajHDF`"aaYcP&'E'dq
a`4jm'-hAf'-8pI9A498N+%8CFaMK8"NS2!&('@jXf1'(+*``KKiZb$'(('1FN!$
#I$HpGN3CG*MS%B`JRM$(B#ISPX13!0-eX%GSDEK)"`K6jG&IHhQi-3BDFZMPd4c
Yr3G#(a@eGTa#b5f(3QT-1)I'Hk0&f"B48)PTJfpKM9ANN95J35+6FMJCaKa46PQ
P'eGZ@C%3PQ'fCT[-[DPER'X81D%,6[3!!!: