PUGH@ccc.nmfecc.gov (Jon Pugh) (03/22/90)
[SwitchBeep 1.1] Here is SwitchBeep 1.1, the beep randomizer for the Sound cdev. In this version I have changed the way I read the sound resources so that it doesn't do unnecessary reads from the disk, resulting in faster operation. The Sound cdev uses snd resources in the System or Suitcase to replace the normal dull beep with a piece of digitized sound. Many cool people have many cool sounds available in their Sound cdev. Truly cool people have edited item 11 of the DITL in the Sound cdev to have dimensions like 22,158,253,313 so that they can see more than five sounds at a time. Well, picking your own beep is nice, but since I have a large selection of beeps, I want a different one each day. BeepShuffle, an INIT recently posted, changes the beep at EVERY beep which is a bit too often for me. In addition, this provided no way to eliminate beeps which were inappropriate or too long. It also involved another patch to SysBeep, which could crash. SwitchBeep has none of these problems. It simply reads the location where the current beep is stored (it's in the extended PRAM of the Plus and later machines) and changes it to a different snd id number. It reads the disk for all the snd ids, but it patches nothing and allocates no memory. It must run after Suitcase or Master Juggler, but the way it is named it will. SwitchBeep will not work with SoundMaster or BeepINIT. It only works if you are using snd resources and the Sound cdev. If you want to randomize sounds in the others INITs, use my Randomizer INIT which is available in fine archives everywhere. SwitchBeep will not run on a 512E, as Sound and Map won't, due to the lack of extended PRAM. SwitchBeep is a Startup Document, also known as an INIT, so it has no interface whatsoever. It just works. It does have one adjustable feature, and that is a resource of type LONG that contains the maximum size of a beep SwitchBeep will use. It is currently set to 100,000 bytes. Any sounds longer than this will not be selected. You can adjust this number with ResEdit. There is a template for it in SwitchBeep and any ResEdit higher than 1.2 will automatically use it. You should adjust it only if you have a specific sound you wish to exclude. Keep in mind that you will exclude all sounds larger than that. I plan on changing this to be a time related length instead of a size thing since a sound at 7.5 KHz can be longer and smaller than a sound at 22 KHz, but currently I don't even look at the speed of the sound. This was all very difficult to do since the Sound cdev is completely undocumented. I ended up disassembling it to find the proper calls to make and came up with these two crucial definitions: FUNCTION GetBeep: Integer; INLINE $204F, $203C, $0002, $007C, $A051; PROCEDURE SetBeep (theBeep: Integer); INLINE $204F, $203C, $0002, $007C, $A052; These are essentially the heart of the INIT and can be used in any program to control the beep as modified by the Sound cdev. Of course, these are reserved for Apple use and subject to change without notice, but I don't expect them to change real soon, if at all. I would love to hear from people who are using this and do or don't like it. I'm just wondering how many people are interested in this sort of thing. Jon N L pugh@ccc.nmfecc.gov M A L National Magnetic Fusion Energy Computer Center F T N Lawrence Livermore National Laboratory E L PO Box 5509 L-561 C Livermore, California 94550 C (415) 423-4239 --- (This file must be converted with BinHex 4.0) :$P0hDA4MD%*PCA!ZFfPd!&0*9#&6593K!!!!!!ii!!!!!+pi8dP8)3!#!!!11(* -BA8"!!!!!!!!!!)!#P0hDA4MD%*PCA!ZG'9iG"-J!(d6+J"p%cVr!!!$rrrrSi# NIi!!4#R1!%&3h!"%NhS$HJ%0!#X!!3!!!%3Tk%P15946Gd*`!3DKT"@DSFjNqJ! !"`%!!!!!!!!&R3!!!!!$3`!!!!!!!!!!SAN!!!3)#-#!K)!&$JCmek""%LG8LNJ a%Q4)NBB*S%KjBT&)&5P&3$3*NmE0MSC*&%bjNiE1'$4#bT5"-dB!`BG*U+`8!UF J`Cm!F1Um`p-Rd+0)!`S)4DU#TU-(!L6B!`++R$4f`Y!T!q))QcGL`V#C!k*2J`4 S%jKjiiB1%DeKG)!`dZ4*(6T3lTj-UjBYAMTbj%)"[$IYfVC"b+L4Db30RM*N#U1 &Sc8)Qc4Rh!Kq8j+1j!4`hV$*-a+2h#4Ybj`T)qFc`3F+BXjN8XE0'6TSL$"aFS6 J#K8V@lk8$3G%+K!aFZ$)!8)*fkTecU"T!#Fk'L"ZfTJT-fD-Lc0[l"!N)2!,T)! "f$LaiNrI#`5J8VbiJ-602hherr'Vhci9UKmZh2F$$rrmii3Z!#J!`KHJU1#%&dl 8X9j!,b`Ja#N[m*!!a""1M!"JJUQ!!X)(Ci!!!K$aQB$%#a"mL-#"!&!!`K)0[TI ++#CmmD!,Rd3)KMhVqF-+%ZIm`-%,1#4!`",Zk"G#-dVQK`mUE[$(#LT[`*!!*![ MB+%!%"#%!!XH#Ab(!31i3"&'(@`SJ-FC#-6!$`!)*-!#'!E%J)m#IYJCK$Y#`S! #!!`3!!3!+#!"K*CfYJ$%2bBiqSm+"VJ"!!MrX&$TTC1DB+N#BG$!+!XbZ%#R'J6 )`!1Ld!34!c"fG[PPQ+q@D58UIB6`MC*-I)-$2`mZb-8M6N#64*-BS,#)!C33"%J 1I!"!(J&#X&*3#Y'#F'Q#,c"3"+"$UJ'!!%MS!3!,qCN`)!!$A)J+1`3d'a!Jh5) K,VRQ3T!!lVS"Z-Y1K%"TUke!54@-AN$N"96SS4334-)(fK)4!b!!%%)'0!%3!!B `IK"!!M*!%"!!)#&2S#J""J!3XJ9)G*abaL3J8M&"4"K`(JNTalJY!q-"3,("3!F Gp%$5%V3`!"am%"!22i!#!"pr!!-!2rA!%`!rmB$c"cpeS,2e#-"XI3%b@cm!`0B I)&'f32bi)$-r1I2a!!3!m'!fdJCSbc2#2J[Ypdm(#(88"c[eK0k'(3)&L"%J'D% iHYb!i8"!JL-9K$lrZ"-#-JNi!dC!DSM`aBLJ-1%#)%l%dG-,#E`U!!J4p[5Mk#1 ')S,E6Q#Z$ZeIK))#lTKc`hYmZIp$cI!1BUk-k"*m!--(V#X4`"N'R',%jp+1BX3 ,5%JE)HmJi#)!!dj%-b%!-'VaB)40"2'3!)NQ"SP1YeNmNH%FET!!!F+(%+65#3T Ik"B),-@!pq3((Ia"KhrUeke8P'+!G!,"*aSi#J!'k`Y2H%H#LL@%)K3"#Jma`K1 #*!mL$3!(*)J@!$V(3!NFk"p)b&'&AXL%qUdV#KpB93"H+!8EVZS6146)#iN`)PK m`J`D#`JSq#1290J"$J%!KL[mB3mP!1)-533!)rld$fkmKdVjJC!!,[i"!`EbJ!N M2))3cK!L!)+!!@DJ32hJ3)!AS%mArR#''kN!!Pi%j!rrU),pH)!rrD@#%cliJ#" 4%3BHT-dBM6J'%SbJ"#1S33"%B*`4IQ#!r+JM2q3i8(YJ%#"e`-)qlV!#-%"!KG[ pJabbJ-3AJJ'-k4N$32p3"`LH!)*9fB32S*!!`Jcab)KHF3!BkkZ$&),J"#)mS3N G*%J)!M!bJJ`J"Lk)J3@`'32M)%Fjc"&$(TVcR,a)Kb!$'aJ!#N"+'*!!!3B6S!) DZ%)F%%JK$2Pl3a[5S!I@(#`J"N')3J#J34E8!a!,)!0"1!!!D`$J!&4S!K5B3"! K&)iJ6N!ME`LL"F%0a!b)'`&"r-#i)MJZ))S33M-T'K",f)%eFb#B+%V3J+!9L#! 61-T0!b+%aa9JB%Si9cfS34!(0%`!k4!U+Rbfd`!Jk#H!f+N!I+%iU5C$U#33b%i *F&@$DNX!@h@(8)P"!)dH!3&63--ElL!8"G`cRfdJ$J!#$e0hDA4MD%*PCA!ZG'9 iG!!!!!!!!!!!!!%!!J!'J!0mr!"%+Fi!39#m!%56HJ%9!#-"!!%9!#-!!!!!!%3 Tk&4&@&4dG(Kd!3#KV4QRSFjYL3!!!!!!!!bH!!!!!!!!"k8!!0II!!!!!!!!r+& )bXJT!b,0(""6lU5K-`D0N!!bCH#`!%%($8%a%1'!N!!6aJfC0fh5k"%)`X`E143 Y)Ra6ab1)-@6+f((4S!%9P90BZS3T%d5G1@81cR%jF!j,1@1#&R56NZ#82(2SP'N $iL6#1J[(K!&+mFh'L'c#*'d+`Xh*0Q(BJ#"6KieDM"&"++`))J`)1'R+M(eMCQf D-`Y&PL%$`QK,-Lj!J'M5-Fr,0fr8`LRc"JiEJQM#f#')eShM-C!!e4VfH&"cQ$4 Ka9aHfM30bTb(AmDFUCL+R,DI3pqPE"QcCS+$&`iZ+*9UM"K9qeBN5#3*&5DXPkq -cG019a#C0rYY8mE0R$4[[)0JNfB034!bC,#)83-(#aNeCV#B%@0'BDm9`p"TqVP MBBJJY(%53INaC8BDfSe'4QRlf89('Yc4e-!9CEJe%9jMV*'''fH!N!$(89AG`44 F'KP89KT*654'(IYpjmCB5@$h@ehMK5(('33"GGNB$iDA(!JNcM&4M(Gde+"ICTJ K8(IlK3HF@'LX&8BHLB(`8%46S&&(NTG0j&m56MMh99*Zd-''Bh#m%G9J%cA8%Bi (58GLAIX9B8848Q3"C%CbSB&LP#ED*FC#AAR&Pe3'@K@KBNN`&3BCC!3@hN39Q3L (('rBN8C-K*NPej6A93MKK[TGP0&"GrMCN!"F5bi9"KbA9LC('U9@K4)GN!#0&pi C95E4)"Y',@9(C*X4eY%Ebk%%KhkViSS39&G+e1HIMl9&f"JFcB''K!PPj4#IQ4e NPKX%mG889l'U0Y8F[EB)S@@1$I4SR#UamBC@26+9DU[5M9'((!19Z@GF*NBe)'% S,(6#34Z593BHL()+!K45"0(%Mp*"`FC2GEN8PP3SSGA3KN'Pd2'eQA'S&+(1fK9 TNNX+2"4KQjC94aXBbG(Z9r15&HNFDj4N99TU56Gc33ZUb#*aGc&VNEM)qXRKbA@ jG@qT8!Fie8P8-VTI'crYGjZMCS"m99CEPBX5BfZLT%3GCjaaQ4a+lbGGNBi4DU) EBA"(mhi+ZFAYA!e&+aGUDTN&q%P"ca8PE"kaEEC9dB,Th-lKR5NAi`chp@%GG3h NNiXG(Ph888Q9jT*dN!"I1eZ[RV2dUF$1FZ345),GGaM$6%NAY8!(@8k&N!#MFqD B&"ep&0*)+!NrlDU"fR&DDUXeI##jSBqmf8%b#C6([J09f5e$hmB9H1,)EY459Bk #8%---K6Kj8'Y8mfB4RH%9`dG%l&&)(le%N[3c2@`L!f(BKBER,F-&bL%d-&'G+L $4SK`VjXab8[!mXSDc#+LZUJ1"-+E5,!)&DkbH'9$)$1$@!L5+[dBTAXkmaS)e"# fcFPK$Hb5i8H8NTebBHp40)a+'049NM,SjepPm0,U-V1I"TlZAhY46KiQ!`)Q2-% *4dL*IKj6TY1)4cTS`31%EPDBh*P,8(`DAq(iG,lLlFa%rJ)BNc3(&,Yj*3B`J!% ,mJJ$)19"+MN%34!mSc[5k%TPYdTC5Nc84XAYk6mlNJTL&*-&f@R&8@3)SYhm*+k EjHa`G*)S3+6SNjLDYDQ"a,&-VNk"%Eda4BrNdNMc&0!B%ST`$+8Ri&iXNdMm aF)%-$ZH@ZV!)*2T"%G%Fma1#,+4+P35GYPM#"Q0PXSD%bPcHBJHk(KCQ-Q0)`i( '8-J&H8Kf#Y&@U2!`KSh&T%T,i&2$3V,%,Ak1Q'Tj@$[V%*1UL8BRjJc,M8K5)#f DNP&h#3Y6I13Q$QfS3j@+NeF`3U-(FHFV(a[1C6K%P`fYk9%rXXYh4V,)UEPS,#) &+*e!F!-Ae!!%5d##(PlL(iVD#j&8Q`0Dh%*34DBd0PY-$daP@VHAr#YJCR*-M$l LK[f"S(Y-XGFEJVC&SdeQ11Bb'N!PG"0'EX@I)0L-("ccXR'faBjVmFT*#B36P9D R)!F"64Yk)aA0(DD#h#R6B(Ve9)m-4i*qQF0@J))cmNb0C9kj(Q'N%k[*S%3VET& SJ-*J(UTTjD+!GGbj#*5rPp`QR'PC5aQZ*bR[k+!Q4UL#%iC!K54F%34(+!-GSU8 $%1S94h,B!3LG`!3`&3%%**!!!3aSB)5*""F'-aL#FIQS(Z$Qm3E+"@i3B2#q(G5 %BNmB3K')8!8Tr(B+XM8F#TC$@pY+"EFTd#fBHZZ%hakAZ-B9ER+AQmIQNZ#jd5A "G'XJ!q[Dj'N%X4&`jJ#8-Y(+,Bk4MN8JL$'91+q@PhaN-fRQ+%,'kJ`FSBUc3&- Q6"90*A2kUS"HPKI#L#("EDA1ka6cK,k!jPp!S45!3dH3!+))T&K#3dN3B,@DCZD d$Q*3Jel3fP!FJ4)0,0Q2iP#84#!YEDRkfmr$`,R*U9bRb$8fiMmR9C!![Qb4D") b!N68BSD"r1mr,K%3ZI*`)BiBT-Pbc5XGL!GKN!#`%S@5M9"0P1!M+-!0$3f!`K1 Xp!BmZ+m'--K"&@YJJaJdJ!N)%SL!"M+4)33""$QJ33d3h3!8d)!p*U1"$'E3!P( 2)!F0J-1IJ6#'9V[!$@e3NU[2N!#TQM6K$56'&hLBJJ5$i'UXTfe!-2YS"0G%"D0 '")U`AB#F)D3-4bM65p"F@8l*1P+U33-Xd3T$P+#J,LK9DN)G9UA#YKej2%%*hK0 F!$1D!!!: ---