rSTAK rSnG ` ` ` eRȅb $""""""""̪3̪3 @"""""D"D""""0 "U""U"U"UU"Uwwww݀UUUUH0 D9D"AA"A>"t"%2d$LA*@ @ t"G"q]APP Audio Help Version 2.2 Copyright 1987-1991,1993 by Apple Computer,Inc. All Rights Reserved. THE MESSAGE HANDLERS USED IN THIS SCRIPT: openStack,closeStack,resumeStack,suspendStack,help,createHelpMenu, deleteHelpMenu,setLocationCheckMark,resetHelpGlobal,storeHelpInfo, leaveHelp,goOverview,goBalloons,goMainTopics,goContent,goCard,goGray, storeMostRecentCard,selectWholeLine,checkForMissingFonts,saveSelection, checkSaveSelect,apClose,openCard,closeCard,openField,apOpenStack, apCloseStack,apHelp,apInvoke,resetAPMenus,apSave,apBeginEdit, apBeginWaveEdit,apEndWaveEdit,startSound,UpdateProtoScripts, annoteInstall,normalInstall,UpdateAnnoteMenus,apDelVNote,apHideNotes, apShowNotes,apAddMemo,resetAPButtons,PlayAllMemos THE FUNCTION HANDLERS USED IN THIS SCRIPT: menuItems,menuCommands,getHelpInfo,stackIsBeingUsed,realTopicName, truncateName,checkIfAppointments,checkIfAddresses,computeMemoLoc, buttonAlreadyThere,cardHasSounds,isSoundButton,firstSoundButton, ------ SYSTEM MESSAGES ------ on openStack APopenStack -- for the Audio Palette if stackIsBeingUsed() then pass openStack set cursor to watch checkForMissingFonts -- Check to see that necessary fonts are available. createHelpMenu -- Create the Help menu for this stack. resetHelpGlobal -- Empty out the stack's global variable. storeMostRecentCard -- Store the most recent card, so it can be returned to. show groups -- Put a gray underline under the grouped text. pass openStack end openStack on closeStack apCloseStack -- for the Audio Palette if stackIsBeingUsed() then pass closeStack set cursor to watch send resetMainTopicsCard to card 1 resetHelpGlobal deleteHelpMenu hide groups pass closeStack end closeStack on resumeStack set cursor to watch APopenStack -- for the Audio Palette if stackIsBeingUsed() then pass resumeStack createHelpMenu show groups send "setCheckMark true" to this card pass resumeStack end resumeStack on suspendStack apCloseStack -- for the Audio Palette if stackIsBeingUsed() then pass suspendStack deleteHelpMenu pass suspendStack end suspendStack on help theTopic put "HyperCard Help" into theStack -- put "Audio Help" into AudioHelp -- if ":" & theStack & return is in the stacks then if the longWindowTitles then show window line (the number of lines of char 1 to offset(":" & theStack & return, the stacks) of the stacks) of the stacks else show window theStack else go to stack theStack in a new window -- try in a new window if the result = "Cancel" then go to stack AudioHelp in a new window exit help else if the result empty then go to stack theStack end if end if end if if the result is empty then findInTitle theTopic -- in the help stack end help ------ SCRIPTS FOR HANDLING THE HELP MENU ------ on createHelpMenu -- Create the stack-specific menu. global AudioHelpMenu put "Help" into AudioHelpMenu -- The name of the stack-specific menu. -- Remove any existing menus that might have the same name. deleteHelpMenu create menu AudioHelpMenu put menuItems() into menu AudioHelpMenu with menuMsg menuCommands() -- Disable the menu item "Print Topic" disable menuItem 6 of menu AudioHelpMenu end createHelpMenu function menuItems -- Return the menu items for the stack-specific menu. return "Main Topics,Content,Quick View,Overview,-,Print Topic" -- end menuItems menuItems function menuCommands -- Return the menu commands for the stack-specific menu. return "goMainTopics,goContent,goBalloons,goOverview,,printTopic" end menuCommands on deleteHelpMenu global AudioHelpMenu if there is a menu AudioHelpMenu then delete menu AudioHelpMenu end deleteHelpMenu on setLocationCheckMark whichItem,boolean -- Set a check mark to indiate the current location. -- whichItem is an integer, the menu item that you want to check -- or uncheck. -- whichItem is true or false depending on whether you want to -- check or uncheck the menu item. global AudioHelpMenu if there is a menu AudioHelpMenu then if there is a menuItem whichItem in menu AudioHelpMenu then set checkMark of menuItem whichItem of menu AudioHelpMenu to boolean end if end if end setLocationCheckMark ------ SCRIPTS FOR HANDLING THE HELP GLOBAL ------ on resetHelpGlobal global AudioHelpInfo put empty into AudioHelpInfo end resetHelpGlobal on storeHelpInfo lineNumber,theValue -- Use this handler to put a value into the global AudioHelpInfo. -- lineNumber is an integer, the line number of the -- global you want to put the value into. theValue is the value -- you want to store in the global. global AudioHelpInfo put theValue into line lineNumber of AudioHelpInfo end storeHelpInfo function getHelpInfo lineNumber -- Use this hanlder to get a value from the AudioHelpInfo global. -- lineNumber is an integer, the line number of the -- global that you want to return. global AudioHelpInfo return line lineNumber of AudioHelpInfo end getHelpInfo ------ SCRIPTS FOR BASIC NAVIGATION ------ on leaveHelp -- This handler is called when you click the Leave Help button in -- either background. put getHelpInfo(1) into theCard -- path of the return card if theCard is empty then put "Home" into theCard go theCard end leaveHelp on goOverview -- Go to the Overview card. put the name of this card into cardName put realTopicName() into topicName goCard "Overview" end goOverview on goBalloons -- Go to the Quick View card. put the name of this card into cardName put realTopicName() into topicName goCard "Quick View" end goBalloons on goMainTopics -- Go to the first main topics card. go first card end goMainTopics on goContent -- Go to the Content background go background "Content" end goContent on goCard cardName -- Go to a card by name, making sure to truncate the name -- to 28 chars. All card names are already truncated. -- cardName is the short name of the card you want to go to. set cursor to watch if cardName is empty then exit goCard wait 5 go card truncateName(cardName) if the result is not empty then -- The requested card wasn't found. get the result beep answer it && quote & cardName & quote & "." exit goCard end if if the mouse is down then exit goCard -- trap double click end goCard on goGray -- You clicked on one of the gray navigation buttons. beep end goGray ------ GENERAL MESSAGE HANDLERS ------ on storeMostRecentCard -- This handler stores the most recent card in a global, so you -- can return to it when you click the "Leave Help" button. push recent card pop card into theCard storeHelpInfo 1,theCard -- path of the return card end storeMostRecentCard on selectWholeLine N,theField,nextN -- This handler selects a whole line of text, including the final -- return character, in the field. -- N is an integer, the number of the line you want to select. -- theField is a complete field record as in the target, not just -- the field name. -- if you want to select more than one line, put the line number into -- nextN. if nextN is empty then put N into nextN put line N to nextN of the value of theField into theText if theText is not empty then put (number of chars of line 1 to nextN of the value of theField) + 1 into endChar select empty do "select char (endChar - length(theText)) to endChar of" && theField end if end selectWholeLine on menuReset global IsaSoundStack startsound if IsASoundStack then UpdateAnnoteMenus if there is a menuitem helpMItem in menu 3 then set the checkmark of menuItem helpMItem in menu 3 to (the name of this stack = the name of me) end if pass menuReset end menuReset ----- Font Adjustment Scripts: ---------------------------------- on checkForMissingFonts -- check to see if the fonts needed for this stack are -- installed in the system. Inform the user if they're not. global APFontsChecked if APFontsChecked is not empty then exit checkForMissingFonts -- already been here. put "fonts checked." into APFontsChecked put empty into missing if not FontExists("Palatino",12) then put "Palatino 12" & return after missing -- if not FontExists("Palatino",14) then put "Palatino 14" & return after missing -- if not FontExists("Helvetica",18) then put "Helvetica 18" & return after missing -- if missing is empty then exit checkForMissingFonts beep answer "These font(s) are missing from your system:" & return & return & missing & return & "For text to display correctly in the Audio Help stack, make sure you have" && "installed the fonts included with System 6.0.6." -- end checkForMissingFonts ------ GENERAL FUNCTION HANDLERS ------ function stackIsBeingUsed -- If Audio Help is being used by the active stack, -- then return true. return not (the name of this stack is the name of me) end stackIsBeingUsed function realTopicName -- Return the actual name of the current topic even if -- the user is on a continued card. if there is not a bkgnd field "Pages" then return empty -- This routine depends on "Card X of Y" format in the field put word 2 of bkgnd field "Pages" into currentPage get the number of this card put bkgnd field "Title" of card (it - currentPage + 1) into topicName if number of lines in topicName > 1 then delete line 2 of topicName put "" after topicName -- end if if number of chars in topicName > 19 then put char 1 to 19 of topicName into topicName if "" is not in topicName then put "" after topicName -- end if return topicName end realTopicName function truncateName theText -- Removes spaces from a card name, truncates it, and removes -- any spaces again. You should set the name of all the cards with -- this function. get the number of words in theText put word 1 to it of theText into theCard return char 1 to 28 of theCard end truncateName ------ SCRIPTS FOR HANDLING THE AUDIO PALETTE ------ --system message handlers on saveSelection global SaveSelect,SaveLine,SaveLoc put empty into saveSelect CheckSaveSelect end saveSelection on CheckSaveSelect global SaveSelect,SaveLine,SaveLoc if there is a field "notes" then put the number of field "notes" into NoteField get the selectedChunk if it is not empty and "message box" is not in it and word 6 to 8 of it is not "bkgnd field" && NoteField then put it into SaveSelect put the selectedLine into SaveLine put the selectedLoc into SaveLoc set the textstyle of SaveSelect to bold end if end CheckSaveSelect on apClose global SaveSelect,InvokeMItem if saveSelect empty then if the textstyle of saveSelect is bold then set the textstyle of saveSelect to plain end if pass apClose end apClose on openCard global IsASoundStack if not IsASoundStack then pass openCard set the cursor to watch resetAPButtons pass openCard end openCard on closeCard global IsASoundStack,saveSelect if not IsASoundStack then pass closeCard if saveSelect empty then if the textstyle of saveSelect is bold then set the textstyle of saveSelect to plain put empty into saveSelect end if pass closeCard end closeCard on openField global IsASoundStack, saveSelect if not IsASoundStack then pass openField if saveSelect empty then -- get the selectedChunk set the textstyle of saveSelect to plain -- if it is not empty and "message box" is not in it and "notes" is not in it -- then put empty into saveSelect put empty into saveSelect end if pass openField end openField on apOpenStack global IsASoundStack put (CheckIfAppointments() or CheckIfAddresses()) into IsASoundStack resetAPMenus if there is a window "AudioPalette" then send "update" to window "AudioPalette" --rebuild sound pop-up end apOpenStack function CheckIfAppointments -- also makes sure the Appointments stack has been modified -- to pass openCard, which is something we need. if not (there is a bg ID 2603) then return false -- faster than "is not a" if "resetAPButtons" is not in the script of bg ID 2603 then return false if "pass openCard" is not in the script of bg ID 21753 then put script of bg ID 21753 into TheScript get number of lines in char 1 to offset(return & "end openCard",TheScript) of TheScript if it = 0 then return true put return & "pass openCard" after line it of TheScript set the script of bg ID 21753 to TheScript end if return true end CheckIfAppointments function CheckIfAddresses if not (there is a bg ID 3664) then return false -- faster than "is not a" if "resetAPButtons" is not in the script of bg ID 3664 then return false else return true end CheckIfAddresses on apCloseStack global APMenuName, memoMItem,delMItem, showMItem,hideMItem,IsASoundStack if there is a menuItem hideMItem in menu 3 then delete menuItem hideMItem from menu 3 else if there is a menuItem showMItem in menu 3 then delete menuItem showMItem from menu 3 end if if there is a menuItem delMItem in menu 3 then delete menuItem delMItem from menu 3 end if if there is a menuItem memoMItem in menu 3 then delete menuItem memoMItem from menu 3 end if put false into IsASoundStack end apCloseStack --menu messege handlers on DoMenu theItem,theMenu global APHasEdit if APHasEdit is true then -- have to say "is true" because it may not be defined if word 1 of theItem is in "Undo,Cut,Copy,Paste,Clear" then -- send word 1 of theItem to window "AudioPalette" exit doMenu end if end if pass DoMenu end DoMenu on apHelp global helpMItem go to stack helpMItem in a new window get the result if it is "Cancel" then exit apHelp if it empty then go to stack helpMItem end apHelp on apInvoke global InvokeMItem if there is not a window "AudioPalette" then AudioPalette else show window "AudioPalette" -- to bring to the front of the windoid layer end apInvoke on resetAPMenus global memoMItem,invokeMItem,helpMItem,IsASoundStack if (":" & helpMItem & return) is not in (the stacksInUse & return) then start using stack helpMItem StartSound end if if IsASoundStack then UpdateAnnoteMenus if there is a menuitem helpMItem in menu 3 then set the checkmark of menuItem helpMItem in menu 3 to (the name of this stack = the name of me) end if end resetAPMenus on apSave fileName global IsASoundStack set the cursor to watch if IsASoundStack then annoteInstall fileName else normalInstall fileName end apSave on apBeginEdit global SaveSelect, SaveLine, SaveLoc put "Undo" into menuitem 1 of menu 3 -- put "-" into menuitem 2 of menu 3 -- put "Cut" into menuItem 3 of menu 3 -- put "Copy" into menuItem 4 of menu 3 -- put "Paste" into menuItem 5 of Menu 3 -- put "Clear" into menuItem 6 of menu 3 -- set cmdChar of menuitem 1 of menu 3 to "Z" -- set cmdChar of menuItem 3 of menu 3 to "X" -- set cmdChar of menuItem 4 of menu 3 to "C" -- set cmdChar of menuItem 5 of menu 3 to "V" -- if SaveSelect is not empty then exit apBeginEdit get the SelectedChunk if there is a field "notes" then put the number of field "notes" into NotesField if it is empty or "message box" is in it or word 6 to 8 of it = "bkgnd field" && NotesField then exit apBeginEdit put it into SaveSelect put the selectedLine into SaveLine put the selectedLoc into SaveLoc set the textstyle of SaveSelect to bold end apBeginEdit on apBeginWaveEdit global HCEditItems,APEditingItems,APEditingItemMsgs, SaveSelect, SaveLine, SaveLoc, APHasWaveEdit if SaveSelect is empty then CheckSaveSelect end if if SaveSelect is not empty then set the textStyle of SaveSelect to bold put true into APHasWaveEdit put "Undo" into menuitem 1 of menu 3 -- put "-" into menuitem 2 of menu 3 -- put "Cut Sound" into menuitem 3 of menu 3 -- put "Copy Sound" into menuitem 4 of menu 3 -- put "Paste Sound" into menuitem 5 of menu 3 -- put "Clear Sound" into menuitem 6 of menu 3 -- set cmdChar of menuitem 1 of menu 3 to "Z" -- set cmdChar of menuitem 3 of menu 3 to "X" -- set cmdChar of menuitem 4 of menu 3 to "C" -- set cmdChar of menuitem 5 of menu 3 to "V" -- if there is a menuItem "Select All" of menu 3 then exit apBeginWaveEdit -- put "-,Select All,View All" after menuitem 6 of menu 3 with -- menuMsgs "-,send SelectAll to window AudioPalette," & "send ViewAll to window AudioPalette" set cmdChar of menuitem 8 of menu 3 to "A" -- set cmdChar of menuitem 9 of menu 3 to "S" -- end apBeginWaveEdit on apEndWaveEdit global HCEditMenuItems, APHasWaveEdit put false into APHasWaveEdit put "Undo" into menuitem 1 of menu 3 -- put "-" into menuitem 2 of menu 3 -- put "Cut" into menuItem 3 of menu 3 -- put "Copy" into menuItem 4 of menu 3 -- put "Paste" into menuItem 5 of Menu 3 -- put "Clear" into menuItem 6 of menu 3 -- set cmdChar of menuitem 1 of menu 3 to "Z" -- set cmdChar of menuItem 3 of menu 3 to "X" -- set cmdChar of menuItem 4 of menu 3 to "C" -- set cmdChar of menuItem 5 of menu 3 to "V" -- if there is not a menuItem "Select All" of menu 3 then exit apEndWaveEdit -- repeat 3 delete menuitem 7 of menu 3 end repeat end apEndWaveEdit --other handlers on startSound global SaveSelect,hideMItem,protoApptBtnScript,protoNormalBtnScript, memoMItem,delMItem,showMItem,APMenuName,invokeMItem,helpMItem, IsASoundStack,HCEditMenuItems put (CheckIfAppointments() or CheckIfAddresses()) into IsASoundStack put empty into Saveselect put "Edit" into APMenuName -- name of menu AudioPallete uses put "Audio..." into invokeMItem -- item which launches AP put "Audio Help" into helpMItem -- item which opens help stack put "Add Audio Memo" into memoMItem -- item which adds a memo put "Delete Audio Memo" into delMItem -- item which deletes memo put "Hide Audio Memos" into hideMItem -- item which hides memos put "Show Audio Memos" into showMItem -- item which shows memos if last menuItem of menu 3 is "-" then delete last menuItem of menu 3 if there is not a menuItem invokeMItem in menu 3 then put "-(" & return & invokeMItem & return & helpMItem after menu 3 with menuMsgs "dash,APinvoke,APhelp" end if put menu 3 into HCEditMenuItems set the cursor to watch lock screen set lockmessages to true push card go to stack helpMItem put the script of bg btn "ProtoApptbtn" into protoApptBtnScript put the script of bg btn "ProtoNormalbtn" into protoNormalBtnScript pop card set lockmessages to false unlock screen end startSound on UpdateProtoScripts global protoApptBtnScript,protoNormalBtnScript put the script of bg btn "ProtoApptbtn" into protoApptBtnScript put the script of bg btn "ProtoNormalbtn" into protoNormalBtnScript end UpdateProtoScripts on annoteInstall fileName global SaveSelect, protoApptBtnScript, SaveLine, SaveLoc if SaveSelect is empty then CheckSaveSelect end if if the first char of fileName is quote then delete the last char of fileName delete the first char of fileName end if put fileName & return & "AP Button" into NewBtnName put protoApptBtnScript into btnscript get number of words in char 1 to offset("putSoundNameHere",btnScript) of btnScript put quote & fileName & quote into word it of btnscript if there is a button NewBtnName then if SaveSelect is not empty then put ComputeMemoLoc(NewBtnName) into InstallLoc set loc of btn NewBtnName to InstallLoc if not the visible of btn NewBtnName then show btn NewBtnName end if else put ComputeMemoLoc() into InstallLoc lock screen get the userlevel set the userlevel to 5 domenu "New Button" choose browse tool set the userlevel to it put the ID of last btn into btnID set the name of btn ID btnID to NewBtnName set height of btn ID btnID to 17 set width of btn ID btnID to 20 set the script of btn ID btnID to btnscript set the loc of btn ID btnID to InstallLoc set the icon of btn ID btnID to 29183 set the showname of btn ID btnID to false set the style of btn ID btnID to opaque set the autoHilite of btn ID btnID to false unlock screen end if if saveSelect is not empty then set the textstyle of saveSelect to plain put empty into SaveSelect end if UpdateAnnoteMenus if the visible of btn NewBtnName then repeat 4 wait 10 set the hilite of btn NewBtnName to not the hilite of btn NewBtnName end repeat end if put "To move your button, hold down the option key and drag." -- end annoteInstall function ComputeMemoLoc TargetButton global SaveSelect, SaveLine, SaveLoc if SaveSelect is empty then put "10,28" into InstallLoc else put (word 4 to 6 of saveLine) into thisFieldName if the ID of this bg is 3664 then if the first word of the short name of thisFieldName is "Phone" then put 29 into leftOffset put 7 into vertOffset else put 10 into leftOffset put 11 into vertOffset end if else put 24 into leftOffset put 2 into vertOffset end if put (the left of thisFieldName) - leftOffset into item 1 of installLoc put (item 2 of saveLoc) - (the textHeight of thisFieldName DIV 2) into item 2 of installLoc end if if not CardHasSounds() then return installLoc put the number of btns into NumBtns put installLoc = "10,28" into WasInCorner put installLoc into OriginalLoc put true into FoundOne put empty into BtnInChain repeat until not FoundOne put false into FoundOne repeat with count = 1 to NumBtns if not IsSoundButton(count) then next repeat if installLoc is within the rect of btn count then put true into FoundOne if WasInCorner then repeat until ButtonAlreadyThere(installLoc) = 0 add 9 to item 1 of installLoc add 9 to item 2 of installLoc if installLoc is not within the rect of this cd then subtract 9 from item 2 of installLoc end repeat else if BtnInChain is empty then put the short name of btn count into BtnInChain if TargetButton is not empty then if installLoc = the loc of btn TargetButton then return InstallLoc end if repeat until ButtonAlreadyThere(installLoc) = 0 add 8 to item 2 of installLoc if item 2 of installLoc + 8 > the height of this cd then subtract 8 from item 2 of installLoc add 5 to item 1 of installLoc end if if TargetButton is not empty then if installLoc = the loc of btn TargetButton then return InstallLoc end if end repeat end if end if end repeat end repeat if WasInCorner then return installLoc if BtnInChain is not empty then set cursor to arrow answer "Do you want to replace the old audio memo with the new one?" with -- "No" or "Yes" -- set cursor to watch if it is "No" then return InstallLoc -- else lock screen send "deleteMe noSound" to btn BtnInChain return OriginalLoc end if end if return InstallLoc end ComputeMemoLoc function ButtonAlreadyThere theLoc if not CardHasSounds() then return 0 put the number of btns into NumBtns repeat with i = 1 to NumBtns if not IsSoundButton(i) then next repeat if theLoc is within the rect of btn i then return i end repeat return 0 end ButtonAlreadyThere on normalInstall fileName global helpMItem, protoNormalBtnScript, lastButton put FALSE into noNewButton put empty into prevBtn lock screen put filename into it if char 1 of fileName = quote then delete the first char of filename delete the last char of filename end if put "Play" && filename into newName -- repeat with i = 1 to the number of btns get the short name of btn i if it is newName then put TRUE into noNewButton exit repeat end if if the first word of it is "Play" then -- put it into prevBtn end if end repeat if not noNewButton then get the userlevel set the userlevel to 5 doMenu "New Button" set the userlevel to it -- set attributes of new button set showName of last card button to true set name of last card button to newName set autoHilite of last card button to false get length(newName) set width of last card button to (it * 8) put protoNormalBtnScript into btnScript get number of words in char 1 to offset("putSoundNameHere",btnScript) of btnScript put quote & fileName & quote into word it of btnscript set the script of the last card button to btnScript --get the loc of the last card button if prevBtn is not empty then get the loc of cd btn prevBtn add 4 to item 1 of it add 16 to item 2 of it if it is within rect of this cd then set the loc of last card button to it else set the left of last btn to 0 set the top of last btn to 0 end if end if end if choose browse tool unlock screen if the visible of btn NewName then repeat 4 wait 10 set the hilite of btn NewName to not the hilite of btn NewName end repeat end if put "To move your button, hold down the option key and drag." -- end normalInstall on UpdateAnnoteMenus global memoMItem,delMItem,showMItem,hideMItem -- First, make sure the menu is there... if there is not a menuItem memoMItem in menu 3 then put memoMItem & return & delMItem & return & hideMItem after menu 3 with menuMsgs "APAddMemo,APDelVNote,APHideNotes" end if disable menuItem delMItem of menu 3 get FirstSoundButton() if it > 0 then -- handle hide/show item if the visible of btn it then put hideMItem into last menuItem of menu 3 with menuMsg APHideNotes else put showMItem into last menuItem of menu 3 with menuMsg APShowNotes end if enable last menuItem of menu 3 -- handle delete item put number of btns into NumBtns repeat with i = it to NumBtns if IsSoundButton(i) then if the hilite of btn i then if the visible of btn i then enable menuItem delMItem of menu 3 exit repeat end if end if end if end repeat else disable last menuItem of menu 3 end if set the enabled of menuItem memoMItem of menu 3 to the ID of this bg is in "2603,3664" end upDateAnnoteMenus on apDelVNote set cursor to watch put the number of btns into NumBtns get 0 repeat with i = 1 to NumBtns if not IsSoundButton(i) then next repeat if the hilite of btn i then add 1 to it end repeat if it = 1 then put "Delete the selected sound?" into thePrompt -- else put "Delete the" && it && "selected sounds?" into thePrompt -- answer thePrompt with "No" or "Yes" -- if it is "No" then exit apDelVNote -- set cursor to watch lock screen repeat with i = NumBtns down to 1 set cursor to busy if not IsSoundButton(i) then next repeat if the hilite of btn i then send "deleteMe" to btn i end repeat unlock screen resetAPMenus end apDelVNote on apHideNotes get number of btns if it = 0 then exit apHideNotes lock screen repeat with i = it down to 1 if not IsSoundButton(i) then next repeat hide btn i end repeat unlock screen updateAnnoteMenus end apHideNotes on apShowNotes get number of btns if it = 0 then exit apShowNotes lock screen repeat with i = 1 to it if not IsSoundButton(i) then next repeat show btn i end repeat unlock screen updateAnnoteMenus end apShowNotes on apAddMemo global SaveSelect saveSelection if there is a window AudioPalette then send "save" to window AudioPalette else AudioPalette if not (there is a window "AudioPalette") then if saveSelect is not empty then set the textstyle of saveSelect to plain end if end if end apAddMemo on resetAPButtons --sent by buttons in appointments and addresses global memoMItem,delMItem,showMItem,hideMItem if not (there is a field "notes") then exit resetAPButtons if the visible of field "notes" then APHideNotes else APShowNotes end if end resetAPButtons on PlayAllMemos get the number of btns if it is 0 then exit PlayAllMemos repeat with i = 1 to it set the hilite of btn i to true play line 1 of the short name of btn i repeat until the sound is done set the hilite of btn i to not the hilite of btn i if the mouseclick then set the hilite of btn i to false exit PlayAllMemos end if wait 15 end repeat set the hilite of btn i to false end repeat UpdateAnnoteMenus end PlayAllMemos function CardHasSounds if the number of btns = 0 then return false get the number of btns repeat with i = 1 to it if IsSoundButton(i) then return true end repeat return false end CardHasSounds function IsSoundButton theNumber return line 2 of the short name of btn theNumber = "AP Button" end IsSoundButton function FirstSoundButton if the number of btns = 0 then return 0 get the number of btns repeat with i = 1 to it if IsSoundButton(i) then return i end repeat return 0 end FirstSoundButtonh MASTsm7 E, x *L /V , x ukS Q2 a$IQ ,,{ b!]% }Sc o%W : ^l  & W c w E L )2]}  -F v b  )PR p ݠ #9wk <h o4 iT [ > I F S. ̗Nu6V u 5 j !L )?br$ S>l %*  ~U 3 W Q@_ _l O6 s& K6DQ3[gw$ +T140 ;R ~j, y +I[Md g |a }jA./:ߡ  M7xDR RLISTn0 n7*x*RPAGE7BG` Ba@@ @@`0Xh j(@   @ M @6W0-A$! $\ 2U (`(HT"(`A $A PS .@B P( $ARQD& ; TuD+u]FG.[%t^8tr7 1 ]p pKD2Yg`]p8ಳUO"@8ӭ,en Q.ӡ}0x.% |z ΅ˠ9˄>9 | w( p _5 7 )<>=$rQA v}棘. (BAE($@dd` !8Fi5ix0 (2ZA^((k/ (\Zi B"#D 6 0KŬ!EA` A4 4+'mD#*/*\b 0  z P&h .1tV$02j ll#(AK$W бxB 53M.6d u`'xD0.*\F= H@ 0F e"!Nu& q4y   @g<5L=X! x7sp1 hANe  D4(0  ( " -@ 4} ;p; ,iớa7>2h\ۈhg#C@[T lN* P0 Є1 pՓ$MPj- l(o5pP PD0I} d 4"! $c D^000 4 lHeL@.,@k) ,d 0@DI q$& 4} l*h tA2;-G,V(lR2`5! 8@ -F ̠^  3 (tLh ӉYpa6"s M\ 02@?E ( фHj 0D&"!,\2@6;& ,p@ Ƅ"11 !UN*#@ ] 7"6)E, @\ 5!1IEt "X  "7 }ڀǹUl2r,9G: DPAGExȘ8l =(<.iU`=6`S-^ f Y4 l/h.+JT!50 OQ==tp6b'90(TP(( a6"2 IL 03@: 4H t@p &a "P @B6@  $0 @"9T ; pi`DhR`a% I\@0L5@ @@@$2A` D(c D@ AL (( 7SpiDq`a"X@ K B2 A@b 4@ 0 )8D(V(0*9V iHRV! (X8 ̀Y4` 8  |DP0ArbXPD$[#$t$|#NE1Lv'!]4 Z 4 \t䂖101Aw+!/iQ8@P :{U !DMxyL#8!a$T +&j)!VL"+e$͸UqE< h 3B 1 Op<0:"MH " Hx#BVQ 11=v<0: ,9 @,TZ(@PAGERF6 *Π5h 0(y`Mhh5!< Wp"B$Zʠ(L7yaD `>0 PXQu S4$I 0H@„6p-`DtaC."A+Z31 (채H6h"1 N&4!젂FQ3PdaDqIL$` $ A S" @( ` (@B  P "  QTJ >D0 X9aLncC;rt E4  .`E ~ɠL/40 (ŤBU S50  >ADL89L+0%Q  S*  $ @pHD D !',.DZ /PeYl,^E$P>06?@l }L-W8L(:(_8yYn.FO4mr ,J( 6(`G ,* Q*@ @(?,Ai.^+HH5(N0(Q $0 ')>V*`K,Œ<(9 ! ;,KGH48 W6Eo @x?PaF`@d0)h@+b- z>vNHQCd.n &~@,ڠj׼.$M5ށ8ID6,9l@!Vwa+qS hD.`v7(A(yD'%GlVd22a%-!m44T+X@2I > mGJqT:.ivg i^D.+pAu0( @<HS#$*C}1w taL  w &4k __^7@' BKGDS@P5 ^E9|Main Topicson mouseUp select empty set cursor to watch lock screen if line (word 2 of the clickLine) of me is empty then resetMainTopicsCard exit mouseUp end if put word 2 of the clickLine into topicNumber go card topicNumber showRightList false hiliteTopic topicNumber unlock screen lock screen showRightList true unlock screen with visual effect wipe down fast if the mouse is down then exit mouseUp -- trap double click end mouseUp&J TitleLN 2@Hiliteron mouseUp pass mouseUp end mouseUpP  Section-- The maximum number of lines that a subtopic can use is two. -- To continue the name of a subtopic onto the next line, -- simply put a tab character into the first character of the second -- line. This script looks for that tab character and adjusts -- accordingly. on mouseUp -- Go to the section clicked on. visual effect zoom out put word 2 of the clickLine into startLine if tab is in line startLine of me then -- The previous line is a continuation of the line clicked. put startLine into nextLine subtract 1 from startLine else if tab is in line (startLine + 1) of me then -- The next line is a continuation of the line clicked. put (startLine + 1) into nextLine else -- The line clicked is a complete section name. put empty into nextLine end if end if selectWholeLine startLine,the name of me,nextLine wait 5 put getSectionName(line startLine of me) into cardName goCard cardName end mouseUp function getSectionName whichSection get number of words in whichSection put word 2 to it of whichSection into whichSection if last char of whichSection is return then delete last char of whichSection end if return whichSection end getSectionNamehU [  Quick Viewon mouseUp visual effect wipe up fast goBalloons end mouseUpfV   Overviewon mouseUp visual effect wipe up fast goOverview end mouseUpLX  Y Leave Helpon mouseUp leaveHelp end mouseUpJO  Instruction 2on mouseUp beep end mouseUp.Y} Section Cover*Z) LastDate ]  ProtoNormalBtnon mouseUp put putSoundNameHere into theSoundName --we stick the actual sound name into "putSoundNameHere" if the CommandKey is "down" then answer "Are you sure you want to delete" && quote & theSoundName & quote & "?" -- with "No" or "Yes" -- if it is "Yes" then -- set cursor to watch deleteMe exit mouseUp end if set the hilite of me to false else if ":Audio Help" & return is in the stacksInUse & return then -- if not SndExists(theSoundName) then answer "The sound associated with this button has been deleted."&& -- " Would you like to delete the button as well?" -- with "No" or "Yes" -- if it is "Yes" then deleteMe -- set the hilite of me to false exit mouseUp end if end if play theSoundName if the sound is not theSoundName then answer "Sound" && quote & theSoundName & quote && "cannot be played." -- set the hilite of me to false exit mouseUp end if set the hilite of me to true repeat until the sound is done if the mouse is down then play stop end repeat set the hilite of me to false end if end mouseUp on mouseDown if the OptionKey is down then repeat until the mouse is up set the loc of me to the mouseloc end repeat get the rect of this card if the loc of me is not within it then put the height of this card div 2 into vert put the width of this card div 2 into hor set the loc of me to hor,vert end if exit to hypercard else put false into OldState put true into NewState -- in case the click was really fast set the hilite of me to true repeat until the mouse is up put the mouseLoc is within the rect of me into NewState if NewState OldState then set the hilite of me to NewState put NewState into OldState end if end repeat if not NewState then set hilite of me to false exit to hypercard end if end if end mouseDown on deleteMe global APHasEdit,APHasWaveEdit put the short name of me into btnName put the long name of this stack into stakName delete the first word of btnName delete the first word of stakName delete the first char of stakName delete the last char of stakName lock screen if APHasEdit is true then if APHasWaveEdit is true then put "Clear" into menuItem 6 of menu 3 -- send "tempGiveUpEdit" to window "AudioPalette" end if get the userlevel set the userlevel to 5 select me send "doMenu Clear Button" to HyperCard choose browse tool set the userlevel to it if APHasEdit is true then if APHasWaveEdit is true then put "Clear Sound" into menuitem 6 of menu 3 -- send "tempTakeBackEdit" to window "AudioPalette" end if unlock screen if ":Audio Help" & return is in the stacksInUse & return -- then deleteSnd stakName, btnName if there is a window "AudioPalette" then send "update" to window "AudioPalette" end deleteMe `^ ! q ProtoApptBtnon mouseup put (":Audio Help" & return) is in (the stacksInUse & return) into InRealm -- put putSoundNameHere into theSoundName --I stick the actual sound name into "putSoundNameHere" if the CommandKey is down then answer "Are you sure you want to delete" && quote & theSoundName & quote & "?" with "No" or "Yes" -- if it is "Yes" then -- set cursor to watch deleteMe resetAPMenus end if else if InRealm then if not SndExists(theSoundName) then answer "The sound associated with this button has been deleted."&& -- " Would you like to delete the button as well?" -- with "No" or "Yes" -- if it is "Yes" then -- set cursor to watch deleteMe end if UpdateAnnoteMenus exit mouseUp end if end if play stop play theSoundName if the sound is not theSoundName then answer "Sound" && quote & theSoundName & quote && "cannot be played." -- end if end if if InRealm then UpdateAnnoteMenus end mouseup on mousedown put (":Audio Help" & return) is in (the stacksInUse & return) into InRealm -- put the number of me into mynum if the ShiftKey is down then set the hilite of me to not the hilite of me if InRealm then UpdateAnnoteMenus exit to hypercard else set the hilite of me to true get number of btns if InRealm then repeat with i = 1 to it if not IsSoundButton(i) then next repeat if i myNum then set the hilite of btn i to false end repeat end if end if if the optionKey is down then repeat until the mouse is up set the loc of me to the mouseloc end repeat get the rect of this card if the loc of me is not within it then put the height of this card div 2 into vert put the width of this card div 2 into hor set the loc of me to hor,vert end if if InRealm then UpdateAnnoteMenus exit to hypercard end if end mousedown on deleteMe IncludeSound global APHasEdit,APHasWaveEdit put line 1 of the short name of me into butName put the long name of this stack into stakName delete the first word of stakName delete the first char of stakName delete the last char of stakName lock screen if APHasEdit is true then if APHasWaveEdit is true then put "Clear" into menuItem 6 of menu 3 -- send "tempGiveUpEdit" to window "AudioPalette" end if get the userlevel set the userlevel to 5 select me send "doMenu Clear Button" to HyperCard choose browse tool set the userlevel to it if APHasEdit is true then if APHasWaveEdit is true then put "Clear Sound" into menuitem 6 of menu 3 -- send "tempTakeBackEdit" to window "AudioPalette" end if unlock screen if IncludeSound "noSound" then deleteSnd stakName, butName if there is a window "AudioPalette" then send "update" to window "AudioPalette" end deleteMe EXAudio Palette Basics About Sound Using Sound in Stacks Editing Sound Recording FeaturesJMain Topics for Audio HelpOClick a subtopic to go to it:Main Topics Script from background: Main Topics THE MESSAGE HANDLERS IN THIS SCRIPT: resumeStack,openBackground,closeBackground,openCard,mouseUp, showLeaveButton,setCheckMark,resetMainTopicsCard,showRightList, hiliteTopic THE FUNCTION HANDLERS IN THIS SCRIPT: ---------- SYSTEM MESSAGES --------- on resumeStack showLeaveButton pass resumeStack end resumeStack on openBackground setCheckMark true showLeaveButton pass openBackground end openBackground on closeBackground setCheckMark false pass closeBackground end closeBackground on openCard hiliteTopic (the number of this card) showRightList true pass openCard end openCard on mouseUp resetMainTopicsCard end mouseUp ---------- MESSAGE HANDLERS ---------- on showLeaveButton -- Show the button "Leave Help" if the user only has one stack window -- open; otherwise hide it. get (number of lines in the stacks is 1) -- Localize: the name of this button. set the visible of bkgnd button "Leave Help" to it end showLeaveButton on setCheckMark boolean -- Set the menu bar for this background. setLocationCheckMark 1,boolean end setCheckMark on resetMainTopicsCard -- Hide all objects pertaining to the right-hand list. lock screen go card 1 showRightList false unlock screen with visual effect wipe up fast end resetMainTopicsCard on showRightList boolean -- Show or hide all objects for the right-hand list set the showPict of this card to boolean set visible of bkgnd button "Hiliter" to boolean set visible of bkgnd field "Instruction 2" to boolean set visible of bkgnd field "Section" to boolean set visible of bkgnd button "Section Cover" to not boolean end showRightList on hiliteTopic topicNumber -- Show and move the Hiliter button. -- topicNumber is an integer, the number of the line in the Main Topics -- to be highlighted. put "Main Topics" into whichField get (top of bkgnd field whichField + (topicNumber * the textHeight of bkgnd field whichField) + 2) set the bottom of bkgnd button "Hiliter" to it show bkgnd button "Hiliter" end hiliteTopicBMAP$$$@ DD@@DD3@SD@@D@" " """" "" @D@BBDDb@@@@D $R2"D@D@DD@D@D@@@@@@@@@DD"""""" " "" """"@@@D@D@DDDpBB#DDDD@@@DD@D@D@DD "2" " ""3 "R ""DD@@DD3@SD@@D@€BB"DDDDDDDD@D@Q"""" "  " ""$"""D@D@DD@D@D@@@@@@@@@DDpBB#@@D@DDDD@DD@@DD@"""" " " " "DDDD@@@DD@D@D@DDp3rn & return & mi BKGDPT9@5S`J(\   Blanket,]  % @Return ArowLN@Hiliteron mouseUp pass mouseUp end mouseUp.Y} Section Cover([ $  Go BackZ   Cover with scripton mouseUp set cursor to watch lock screen get line 1 of bkgnd field "Return to" if it is empty then go card 1 else go it if the result is not empty then go card 1 end if unlock screen with visual effect wipe down end mouseUp(^ Title ~_ Return to-- Line 1 stores the name of the card to return to. on mouseUp hide me end mouseUp_Fcard id 18406 of stack "Macintosh HD:HyperCard Player 2.2:Audio Help"Ancillary-- Hidden fields in this background. -- Background field "Return to". See the fields script for information -- about its purpose in life. on openBackground storeRecentCard pass openBackground end openBackground on storeRecentCard -- Remember the name of the most recent card so it can be returned to. push recent card pop card into it if there is a bkgnd field "Return to" then put it into bkgnd field "Return to" end if end storeRecentCardBMAPT9$$$DD@@DD3@SD@@D@" " """" "" @D@BBDDb@@@@D $R2"D@D@DD@D@D@@@@@@@@@DD"""""" " "" """"@@@D@D@DDDpBB#DDDD@@@DD@D@D@DD "2" " ""3 "R ""DD@@DD3@SD@@D@€BB"DDDDDDDD@D@Q"""" "  " ""$"""D@D@DD@D@D@@@@@@@@@DDpBB#@@D@DDDD@DD@@DD@"""" " " " "DDDD@@@DD@D@D@DDp3UUm e &@BKGD56@fSPc(^S ----- End of Topic -----on mouseUp pass mouseUp end mouseUp&,Title  N! Prevon mouseUp if word 2 of bkgnd field "Pages" is 1 then -- Going to previous section, so show visual effect. visual effect scroll right fast end if go previous card if the mouse is down then exit mouseUp -- trap double click end mouseUp&  Pages"<   ,J &  Main Topics.L  9N  Return Arrow^K   Return To Topicson mouseUp push card goMainTopics end mouseUpPZ* Help Texton mouseUp checkActiveText end mouseUpR[1  Help Text Bon mouseUp checkActiveText end mouseUp.  N# Nexton mouseUp if word 2 of bkgnd field "Pages" is word 4 of bkgnd field "Pages" then -- Only show the visual effect when you go to a new section. visual effect scroll left fast end if go next card if the mouse is down then exit mouseUp -- trap double click end mouseUpV About this card-- For information about the contents of this field, see the -- beginning of the script of this background. on mouseUp hide me end mouseUp*a+? Glossaryrb. <  Close boxon mouseDown set the icon of me to "Clicked Close Box" end mouseDown on mouseUp set the icon of me to "Close Box" glossaryObjects false,"zoom in" end mouseUp on mouseStillDown if the mouseLoc is not within the rect of me then set the icon of me to "Close Box" else set the icon of me to "Clicked Close Box" end mouseStillDown .c?  Glossary Itemc# ]>Random access memory (RAM) Memory in which information can be referred to in an arbitrary or random order. RAM usually means the part of memory available for programs and documents that the computer reads from a disk; the contents of RAM are lost when the computer is turned off. Content About This Background -- System Messages in this background script: -- openBackground, closeBackground, openCard, closeCard, mouseUp -- Message Handlers in this background script: -- setCheckMark, goGray, goMainTopics, checkActiveText, printTopic, -- showGlossaryItem, formatGlossaryItem -- Function Handlers in this background script: -- endOrMore, currentTopicInfo, getGlossaryItem -- Hidden Objects in this background -- background field "About this card" ---- line 1 item 1 is an integer, the line number of this card's ---- main topic (in the field "Main Topics" in the background ---- "Main Topics"). ---- line 1 item 2 is an integer, the line number of this card's ---- sub-topic (in the field "Section" in the background ---- "Main Topics"). -- Three background buttons and fields make up the Glossary objects: -- the bkgnd button "Close box", bkgnd button "Glossary", and -- bkgnd field "Glossary Item". These objects appear when you click on -- group text. This scheme assumes you don't have card -- buttons or fields on the same card as some group text. (If you do, -- the the card buttons and fields will appear at the same time as -- the glossary.) ------ SYSTEM MESSAGES ------ on openBackground global AudioHelpMenu setCheckMark true pass openBackground end openBackground on closeBackground global AudioHelpMenu setCheckMark false pass closeBackground end closeBackground on openCard set name of bkgnd button id 83 to endOrMore() pass openCard end openCard on closeCard -- Close the glossary if it is open. if visible of bkgnd field "Glossary Item" then glossaryObjects false,"zoom in" end if pass closeCard end closeCard on mouseUp -- Close the glossary if it is open. if the visible of bkgnd button "Close box" then glossaryObjects false,"zoom in" end if end mouseUp ------ Function to handle the "End" or "Continue" button. ------ function endOrMore -- Indicate if this is the last card of a topic, or if there are -- more cards on this topic. if word 2 of bkgnd field "Pages" = word 4 of bkgnd field "Pages" then -- This is the last card of a topic. return "----- End of Topic -----" -- else -- There are additional cards on this topic. return "--- More ---" -- end if end endOrMore ------ MESSAGE HANDLERS ------ on setCheckMark boolean -- Set the menu bar for this background. global AudioHelpMenu setLocationCheckMark 2,boolean if there is a menuItem 6 in menu AudioHelpMenu then if boolean then enable menuItem 6 of menu AudioHelpMenu else disable menuItem 6 of menu AudioHelpMenu end if end setCheckMark on goMainTopics -- Go to the appropriate main topics card. visual effect zoom in lock screen get currentTopicInfo() put item 1 of line 1 of it into sectionNumber put item 2 of line 1 of it into topicNumber if sectionNumber is empty then go card 1 else go card sectionNumber send openCard to this background -- Highlight the current topic. if topicNumber is not empty then put topicNumber into nextLine if line (topicNumber+1) of bkgnd field "Section" contains tab then -- This indicates that the section name is on two lines, so -- select both lines. add 1 to nextLine end if unlock screen selectWholeLine topicNumber,the name of bkgnd field "Section",nextLine end if end if end goMainTopics function currentTopicInfo -- This function accesses the topic-specific information -- for the current topic. Line 1 contains a two-item record -- of the current section and topic number. if there is no background field "About this card" then return empty -- Depends on "Card X of Y" format in the field put word 2 of bkgnd field "Pages" into currentPage get the number of this card put bkgnd field "About This Card" of card (it - currentPage + 1) into aboutThisCard return aboutThisCard end currentTopicInfo on checkActiveText -- If the text clicked is active, then show appropriate glossary info. put the clickText into thePhrase put the clickChunk into theChunkOfText get the textStyle of theChunkOfText if (thePhrase is empty) or (thePhrase is return) or ("group" is not in the textStyle of theChunkOfText) then exit checkActiveText end if set cursor to watch select theChunkOfText -- wait 10 showGlossaryItem thePhrase select empty end checkActiveText on printTopic -- Print cards from the current topic. put the number of this card into cardNumber put 1 into total if there is a bkgnd field "Pages" then -- This assumes that the second word of the bkgnd field "Pages" -- is the card number in this topic, and that the fourth word -- is the number of cards in this topic. subtract (word 2 of bkgnd field "Pages" - 1) from cardNumber put word 4 of bkgnd field "Pages" into total end if lock screen set lockMessages to true push card go card cardNumber open printing repeat total times -- Print only the content part of the card (not the navigation -- buttons at the bottom of the card). print card from 0,0 to 255,253 go next card of this bkgnd end repeat close printing pop card unlock screen end printTopic ------ SCRIPTS FOR HANDLING THE GLOSSARY ------ on showGlossaryItem glossaryWord -- Show the Glossary field, using the appropriate text. -- glossaryWord is glossary word to be defined. set cursor to watch lock screen glossaryObjects true put empty into bkgnd field "Glossary Item" put getGlossaryItem(glossaryWord) into bkgnd field "Glossary Item" if bkgnd field "Glossary Item" is empty then -- The grouped word isn't actually in the glossary (this shouldn't -- happen). beep glossaryObjects false exit showGlossaryItem end if formatGlossaryItem unlock screen with visual effect zoom out end showGlossaryItem on glossaryObjects boolean,theEffect -- Hide or show the objects needed for the glossary. if theEffect is not empty then lock screen set visible of bkgnd button "Glossary" to boolean -- The button name. set visible of bkgnd button "Close box" to boolean -- The button name. set visible of bkgnd field "Glossary Item" to boolean set the showPict of this card to not boolean if theEffect is not empty then unlock screen with theEffect end glossaryObjects function getGlossaryItem glossaryWord -- Given a glossary word, return the entire glossary item. -- (A glossary item is the glossary word and its definition.) put offset("*" & glossaryWord,card field "Glossary" of card "Overview") into beginOffset -- beginOffset is an integer, the first character of the glossary item. if beginOffset is 0 then return empty add 1 to beginOffset -- to disregard the * character put number of chars in card field "Glossary" of card "Overview" into charsInGlossary -- Get the offset from the beginning of the requested glossary item put offset(return & "*",char beginOffset to charsInGlossary in card field "Glossary" of card "Overview") into endOffset if endOffset is 0 then -- This is the last glossary item. put charsInGlossary into endOffset else -- put the char length of the requested glossary item into endOffset. put beginOffset + endOffset - 2 into endOffset end if return char beginOffset to endOffset of card field "Glossary" of card "Overview" end getGlossaryItem on formatGlossaryItem -- Set the visual format of the glossary item field. -- Delete the first line if it is empty. if line 1 of bkgnd field "Glossary Item" is empty then delete line 1 of bkgnd field "Glossary Item" end if -- Delete the last line if it is empty. if last line of bkgnd field "Glossary Item" is empty then delete last line of bkgnd field "Glossary Item" end if set textStyle of line 1 of bkgnd field "Glossary Item" to bold end formatGlossaryItemBMAP6$$$DD@@DD3@SD@@D@" " """" "" @D@BBDDb@@@@D $R2"D@D@DD@D@D@@@@@@@@@DD"""""" " "" """"@@@D@D@DDDpBB#DDDD@@@DD@D@D@DD "2" " ""3 "R ""DD@@DD3@SD@@D@€BB"DDDDDDDD@D@Q"""" "  " ""$"""D@D@DD@D@D@@@@@@@@@DDpBB#@@D@DDDD@DD@@DD@"""" " " " "DDDD@@@DD@D@D@DDp3UUm e CARDGQh7SPw What is the Audio Palette? What you need to use Audio Palette Opening the Audio Palette Audio Palette commandsZ9/20/90on openCard showRightList false send opencard to this stack -- Don't pass openCard. end openCard on copyChanges global gChangeList answer file "Source Stack?" of type stack -- if it is empty then exit copyChanges put it into SourceStack answer file "Dest Stack?" of type stack -- if it is empty then exit copyChanges put it into DestStack lockStuff go stack SourceStack put the number of cds in this stack into NumCds put the number of bgs in this stack into NumBgs go stack DestStack put "," & the number of cds in this stack after NumCds put "," & the number of bgs in this stack after NumBgs repeat with i = 1 to item 1 of NumBgs go cd 1 of bg i of stack SourceStack put "," & number of cds in this bg after NumBgs go cd 1 of bg i of stack DestStack put "," & number of cds in this bg after NumBgs end repeat answer NumCds & return & NumBgs set editBkgnd to true repeat with i = 1 to item 1 of NumBgs put i && "of" && item 1 of NumBgs -- go cd 1 of bg i of stack SourceStack repeat with j = 1 to number of fields set cursor to busy if not the sharedText of field j then next repeat if field j is empty then push cd go cd i of stack DestStack put empty into field j pop cd next repeat end if put the visible of field j into TheVis put the lockText of field j into TheLock if not TheVis then show field j if TheLock then set the lockText of field j to false select text of field j doMenu Copy Text if TheLock then set the lockText of field j to true if not TheVis then hide field j push cd go cd 1 of bg i of stack DestStack if not TheVis then show field j if TheLock then set the lockText of field j to false select text of field j doMenu Paste Text if TheLock then set the lockText of field j to true if not TheVis then hide field j pop cd end repeat put the showPict of this bg into PictShown if not PictShown then show bg pict choose select tool doMenu Select if not the enabled of menuItem 4 of menu 3 then choose browse tool next repeat end if doMenu Copy Picture if not PictShown then hide bg pict push cd go cd 1 of bg i of stack DestStack if not PictShown then show bg pict choose select tool doMenu Select All doMenu Clear Picture doMenu Paste Picture if not PictShown then hide bg pict pop cd end repeat set editBkgnd to false repeat with i = 1 to item 1 of NumCds if the mouseClick then exit repeat put i && "of" && item 1 of NumCds -- go cd i of stack SourceStack repeat with j = 1 to number of fields set cursor to busy if the sharedText of field j then next repeat if field j is empty then push cd go cd i of stack DestStack put empty into field j pop cd next repeat end if put the visible of field j into TheVis put the lockText of field j into TheLock if not TheVis then show field j if TheLock then set the lockText of field j to false select text of field j doMenu Copy Text if TheLock then set the lockText of field j to true if not TheVis then hide field j push cd go cd i of stack DestStack if not TheVis then show field j if TheLock then set the lockText of field j to false select text of field j doMenu Paste Text if TheLock then set the lockText of field j to true if not TheVis then hide field j pop cd end repeat repeat with j = 1 to number of cd fields set cursor to busy if cd field j is empty then push cd go cd i of stack DestStack put empty into cd field j pop cd next repeat end if put the visible of cd field j into TheVis put the lockText of cd field j into TheLock if not TheVis then show cd field j if TheLock then set the lockText of cd field j to false select text of cd field j doMenu Copy Text if TheLock then set the lockText of cd field j to true if not TheVis then hide cd field j push cd go cd i of stack DestStack if not TheVis then show cd field j if TheLock then set the lockText of cd field j to false select text of cd field j doMenu Paste Text if TheLock then set the lockText of cd field j to true if not TheVis then hide cd field j pop cd end repeat put the showPict of this cd into PictShown if not PictShown then show cd pict choose select tool doMenu Select if not the enabled of menuItem 4 of menu 3 then choose browse tool next repeat end if doMenu Copy Picture if not PictShown then hide cd pict push cd go cd i of stack DestStack if not PictShown then show cd pict choose select tool doMenu Select All doMenu Clear Picture doMenu Paste Picture if not PictShown then hide cd pict pop cd end repeat end copyChanges`BMAPQ$2  *U@ " CARDXhp7SFPA Digital sound Sound quality Managing memory and disk space`BMAPp$D  *U@€CARDMLRH7SP Adding audio memos to Appointments and Addresses Adding sound to your own stack Playing sounds Opening a new sound Deleting audio memos`BMAPLR$V  *U@D@Q""CARDURH7SP Editing tools and the waveform Recording while a sound is open Moving a sound Saving a sound in a different stack Deleting sounds`BMAPR$h  *U@CARDSKPH7S~Py Recording level Recording time Play Through Auto Record Level Compression Recording Quality Volume Control`BMAPKP$h  *U@CARD 75HH  N" Gray Prevon mouseUp goGray end mouseUpWhat is the Audio Palette? Card 1 of 2ZThe Audio Palette lets you record, edit, save, and play live or pre-recorded sound with HyperCard and your Macintosh. The Audio Palette and the sounds you produce with it can be used with any HyperCard stack. The Audio Palette is a convenient easy-to-use tool for adding voice annotation to your Addresses with Audio and Appointments with Audio stacks. You can easily record audio to complement training stacks or tutorials.V1,1What is the Audio Palette?`CARD75What is the Audio Palette? Card 2 of 2ZYou can also add sound effects to entertainment stacks, or quickly capture audio annotation for your personal and office communications. This stack contains your Audio Palette and complete instructions for using the Audio Palette. CARD75 Card 1 of 4#What you need to use Audio PaletteV1,2Z>f]>>You can use HyperCards Audio Palette in one of two ways depending upon your hardware and software. To use all of Audio Palettes features except recording you need: A Macintosh computer. At least 2 megabytes (MB) of random access memory (RAM). (4MB if running system 7 or later) Note: To work with the Audio Palette, you may need to allocate more memoryWhat you need to use Audio PCARD.%75 Card 2 of 4#What you need to use Audio PaletteZv>>>to HyperCard. Follow the directions in your Macintosh Reference manual to allocate 1550K of RAM or more to HyperCard before using the Audio Palette. Storage space on a hard disk or floppy disk. A 30-second sound recorded at 22 kilohertz (kHz) requires approximately 660K of disk space. HyperCard 2.0 or later. System Software 6.0.5 or later. CARD 775#What you need to use Audio Palette Card 3 of 4Z]I>)>To use all of the Audio Palettes features including recording you need: A Macintosh computer with built-in sound input or a Macintosh computer with sound input products that are compatible with system software version 6.0.6 or later. At least 2 megabytes (MB) of random access memory (RAM). (4MB if running System 7 or later) Storage space on a hard disk or floppy disk.CARD75z#What you need to use Audio Palette Card 4 of 4Z= HyperCard 2.0 or later. System Software 6.0.6 or later.CARD75 Card 1 of 2Opening the Audio PaletteZPYou can open the Audio Palette from any HyperCard stack, including this Help stack. To open the Audio Palette, choose Audio from the Edit menu. The Audio Palette control window appears. You will see buttons similar to those on a tape or compact disc player. The buttons let you play, pause, stop, record, open, edit, and save sounds.V1,3Opening the Audio Palette`CARD/75 Card 2 of 2Opening the Audio Palette Z>ck>To show the Audio Palette Edit panel, click the Edit button on the palette. The edit panel shows a waveform, or visual representation of the current sound, and features and options for recording and saving sounds.CARD 75D Card 1 of 3Audio Palette commandsZ Audio commands are located in the Edit menu. If you are working with Addresses with Audio and Appointments with Audio stacks, youll see several menu items relevant to the use of sound in these stacks. In other stacks, youll see the menu items Audio and Audio Help.V1,4Audio Palette commands CARDz75 @K%  Menuon mouseUp put word 2 of the clickLine into lineNumber if line lineNumber of me is empty then exit mouseUp describeLine lineNumber end mouseUp(! Audio"&@ ,! Audio Help0 Add Audio Memo4 Delete Audio Memo2 Hide Audio MemosAudio Palette commandsZ9Click a command for more information about it. T >Edit Audio Audio Help Add Audio Memo Delete Audio Memo Hide Audio MemosOpens the Audio Palette.`Opens this Audio Help stack. This stack contains the Audio Palette and directions for using it.Opens the Audio Palette in the Addresses and Appointments stacks. To add an audio memo, select the text to which you want to add the memo and record your memo using the microphone. Removes the selected audio memo from the Addresses with Audio and Appointments with Audio stacks. You select the memo by clicking it.Hide Audio Memos makes all the audio icons on a given card in the Addresses with Audio and Appointments with Audio stacks invisible. Show Audio Memos makes audio icons visible. Card 2 of 3-- Card button id 3 stores the name of the visible card field -- description. on closeCard mouseUp pass closeCard end closeCard on mouseUp hideDescriptions end mouseUp ------ SCRIPTS FOR HANDLING THE INFORMATION ABOUT THE MENUS ------ on describeLine lineNumber -- Hilite the line and show the appropriate card field. -- lineNumber is an integer, the number of line clicked. if lineNumber is not an integer then exit describeLine put line lineNumber of target into newField if newField is empty then hideDescriptions exit describeLine end if if there is not a card field newField then exit describeLine lock screen show card button id 3 put (top of the target + (lineNumber * the textHeight of the target)) + 1 into btnPoint set the bottom of card button id 3 to btnPoint put the short name of card button id 3 into oldField if word 1 to 2 of oldField is not "card button" then if there is a card field oldField then hide card field oldField end if show card field newField unlock screen set the name of card button 1 to newField end describeLine on hideDescriptions -- Hide the card fields that describe the menus. if not the visible of card button id 3 then -- The hiliter button is hidden, so exit. exit hideDescriptions end if hide card button id 3 get the short name of card button id 3 if it contains "card button" then exit hideDescriptions hide card field it set the name of card button id 3 to empty end hideDescriptionsBMAP$K%<`! CARD+75ttK%~  Menuon mouseUp put word 2 of the clickLine into lineNumber if line lineNumber of me is empty then exit mouseUp describeLine lineNumber end mouseUp"o&|@ ,! Select All*! View AllH  N$ Gray Prevon mouseUp goGray end mouseUpZ8Click a command for more information about it. Audio Palette commands Card 3 of 3# >Edit Select All View AllSelects the entire recorded sound and displays it in the waveform close-up view. The waveform appears highlighted to show its selected.QDisplays the entire recorded sound as a waveform in the waveform close-up view. -- Card button id 3 stores the name of the visible card field -- description. on closeCard mouseUp pass closeCard end closeCard on mouseUp hideDescriptions end mouseUp ------ SCRIPTS FOR HANDLING THE INFORMATION ABOUT THE MENUS ------ on describeLine lineNumber -- Hilite the line and show the appropriate card field. -- lineNumber is an integer, the number of line clicked. if lineNumber is not an integer then exit describeLine put line lineNumber of target into newField if newField is empty then hideDescriptions exit describeLine end if if there is not a card field newField then exit describeLine lock screen show card button id 3 put (top of the target + (lineNumber * the textHeight of the target)) + 1 into btnPoint set the bottom of card button id 3 to btnPoint put the short name of card button id 3 into oldField if word 1 to 2 of oldField is not "card button" then if there is a card field oldField then hide card field oldField end if show card field newField unlock screen set the name of card button 1 to newField end describeLine on hideDescriptions -- Hide the card fields that describe the menus. if not the visible of card button id 3 then -- The hiliter button is hidden, so exit. exit hideDescriptions end if hide card button id 3 get the short name of card button id 3 if it contains "card button" then exit hideDescriptions hide card field it set the name of card button id 3 to empty end hideDescriptionsBMAP$K%@`!CARD~@l75HH  N" Gray Prevon mouseUp goGray end mouseUpDigital sound Card 1 of 4Z>%->Sound can be visually displayed as a waveform. The type of waveform used in the Audio Palette shows information about a sounds volume over time. The volume is shown vertically and the passage of time is shown horizontally.V2,1Digital Sound BMAPl$Č 3@####& ) &P)T &)( 5@8@ E GEP@GT@E G( E@G@E"G"DDD""@ "@&"% @@%" %@ % *%@  %@% #@%# @* 3 K# $3## $$3@## $ $H@@$%%@/# $ #)@$ #$@$@#+@#"#@" "#D#&@&@@#& J@W#?U( G  VP@GET@#?FG"#'6@U8U#@6( 8 #6P8T3+j#@UU#7#1#10 }5;5$"5$"E  5$"5$"@7878 CARD u%75Digital sound Card 2 of 4ZYour Macintosh stores the waveform by sampling the sound at evenly spaced intervals. Its much the same as individual frames that link together to create a motion picture. BMAPu%$'̌ @@"8  1*") "80 Ap8('8 19g9199@   &@)$$pp @@p$#$p$$ t"(p("@Vs9v9sp$$p$$ @  55rpN& @@ 7* pF 898E788@@ pB@@B@@@LpIpRRRARR R^`GcR@q\L'ICARD EF 75rDigital sound Card 3 of 4ZL>0=>The information is saved in the form of digital sound samples.BMAPF $' @") @18  !) AG @|@>  ~?@~? @> @ @ @|>) #)@ @  ***@8 x*<@%)x*<@* @%)*98*9:@p8>&)> :@*GG|@7878@ q"@f8Yq%@bPax!ap8Ar CARD*75Digital sound Card 4 of 4Z|To play the sound, the Macintosh reconstructs the original waveform by reconnecting the sound samples. The Audio Palette can play the whole sound or parts of it. You can cut, copy, and paste parts of the waveform using the same methods you use to edit text in a document. The standard Macintosh Undo command is available in the Edit menu to undo your last sound editing action.`CARD75 Sound quality Card 1 of 3Zހ>-:>hs>>Sound quality is influenced by the number of sound samples recorded per second (sample rate) and by the compression ratio (how much the sound information is compressed when saved on disk). Sample rates are measured in kilohertz (kHz), or thousands of samples per second. For example, a sound recorded at 22 kHz means the sound is sampled 22,000 times each second. Working with sound often requires you to make decisions about sound quality basedV2,2Sound quality CARDx75Sound quality Card 2 of 3Zon the amount of disk space and memory available. You want to get good sound quality in the least amount of memory and disk space. The Audio Palette samples sound at Best (22 kHz) or Good (11 kHz). At Best (22 kHz) you get high quality sound that takes up more RAM and space on the disk. At Good (11 kHz) you get lower quality sound that takes up less disk space. The next card shows the waveform at different sampling rates.V2,2Sound quality`CARDy175"Sound quality Card 3 of 3BMAP1$, , Ñ(E"B*%R* 1€`c 0B@ $@R# "`'rcx3 % `"'D@ !@B@SP1B`c7p@Ñ(UT"P*r*h0φ0<|33<c 3<1 @jЀZ B0ZQ $" sp@'\cV3% @":4 !BC`!Cj@Z- %Z` &((&((&?(?(?&|(|(|87'G@F@&G  F  & G@F@&@xx6@@$$   H H H& "@$ "@$   @@@&$$ H H  """"" H H H!$$@@@   !"""H H H    $$$@@@BFFB@F@F@B  F  F  B@F@F@377#C(C(C#0(0(0#8(8(81 ! "d&D"gm$L3BpNB8"8373'0(((8<7<8<7<<""  5 <<<<<!$$$$$<<<<<<BFFQ 7 7 3<7<7<3<7<7<#((  " E@<g!0"Ͼd&Dvp1c gm?8{ $LC"0g BpNR8"8s"s9!B8K Ͷ@  @87'87'WU%    5 !#####!      RUUQ 7 7 377 " E@1!0>"bd&Dvp1c2gm?8{2 $LCB0$BpNR828%"s9!B8K >`@ @tments, -- functioCARDg75!Managing memory and disk space ZD>]>Managing memory and disk space is important because sounds contain a great deal of information and use large amounts of disk space and memory. Memory The Audio Palette records a sound into the computers memory and then saves the sound on disk (in the current HyperCard stack) when you click the Save button. Card 1 of 8V2,3Managing memory and disk spa CARDh75 Managing memory and disk space Card 2 of 8ZWhen calculating the memory and storage requirements of a sound, assume that one second of 22 kHz sound requires 22K of memory and 22K of disk space.@BMAPh$s A>Cdo}b~>A0C0dsgb1% e hbA#$ 4h d2<%zeb!)P"4(E- chP,@6㐈'68@576}2sS56A#D0s@&0& 3A@g4A'A6E#s4 '603ny>>Maximizing memory Here are some suggestions for maximizing the memory available to the Audio Palette: Turn MultiFinder off. Allocate more memory to HyperCard. Turn the RAM cache off in the Control Panel desk accessory. If you have a color monitor, use the black and white setting for your monitor in the Control Panel desk accessory. For more information, refer to the Macintosh Reference manual that came with your Macintosh. Card 3 of 8`CARD[T75$!Managing memory and disk space  Card 4 of 8Z ]>Maximizing disk space The amount of disk space necessary to store sound is related to the sampling rate of the recorded sound and the compression ratio. The higher the sampling rate the higher the quality of sound, and the more disk space it requires. One second of 22 kHz sound requires approximately 22K of disk space. Compression is a method of reducing the amount of disk space necessary to save a sound. Compression ratios are relative to sounds recorded at Best (22 kHz).CARD75 Managing memory and disk spaceZZWhen you record a sound at Best (22 kHz), the Audio Palette offers two compression ratios - 3 to 1 and 6 to 1. A 3 to 1 compression ratio means that the saved sound uses one-third the disk space of an uncompressed 22 kHz sound. A 6 to 1 compression ratio means that the saved sound uses one-sixth the disk space of an uncompressed 22 kHz sound. Card 5 of 8@CARDc75 Managing memory and disk space Card 6 of 8ZTo calculate the approximate amount of disk space necessary to save a compressed sound, multiply the duration of the sound by the sampling rate, and divide the result by the compression ratio. BMAP$ @Scf;Lq S$ u)$DJ@ S%#sCCScĜ"b$DI @ D `c2`5)IR2Ē@$5GcIR%Hbs@fc1rN`5WĒH$g$fbsP` VG$)8ĝ8$6;Yf1+!E)$bRI đ$7 2!G99p #P6$Ab1  CARDk)*75 Managing memory and disk space Card 7 of 8ZFor example, a 30 second sound recorded at 22 kHz and saved with a 3 to 1 compression ratio needs 220K of disk space (30 x 22 kHz) / 3 = 220K. `BMAP*$r Aن|B?ǘo>x<|A HB38DFhZb-Ѡ-0$$`c "#HB0dFpc.x3@eǀ͘ 3C'C`BC0C38«@hZ-Р-  1!CB O 1Ȃ1#AsQ DA`2AJ/680F *B26x6p106x! 0 8( 6HF>  1!CB 6FqȂ1#(G>Q DA`2AJ/6F *B2&7PRE( &' (! 0 8`( &G6  1!CB 6F!Ȃ1#(GCQ DA`2AJ/6F"*B2&PRE(  ! 0 ( &8   1!CB O>Ȃ1#A:``6806 0B#6x6PB#106xQ#0 86 B#( 6HF{  8 x*<@%)CARD}75H$H  N$ Gray Prevon mouseUp goGray end mouseUp Managing memory and disk space Card 8 of 8ZThe best way to determine the appropriate balance between compression ratio, file size, and sound quality is to experiment with saving 22 kHz sound at the 6 to 1 and 3 to 1 ratio. Only sound recorded at Best (22 kHz) can be compressed.CARD! Hb75H8H  N" Gray Prevon mouseUp goGray end mouseUp Card 1 of 81Adding audio memos to Appointments and AddressesZYou can add voice annotation or sounds to HyperCards Addresses with Audio and Appointments with Audio stacks. Start by opening the Appointments with Audio or Addresses with Audio stack. 1. Select the text you wish to annotate.V3,1Adding audio memos toBMAPHb$$ J r0l0  %2@ Awy{p>w-oa[yKE쒄 )t0j– ,P06 P@) ` :C:U=#*653$5Kzu92qRp-p @Z4 MDM@ ]  0 0@0 0  1@;@ ;@;@08 0@D 0@ 0 0@ 0@ !0-w@ @ $8SB SSCZST8e9<0 @ PP:UU$ t;;dzqÎ$p$8xptq2Ac`{V4 @ 0| 0@ 0@ 08 0@ 0D 1;3@ p106x!CARDEUT@("E: (eAPPv  (5PPU ((!03A0 3``1U0T4@P(  1""=38$"#3$P"U"E3$ 3<$@A38@$+ +@  $@ ( $PA'8 $ "#6<@$@"U"E331T0T4@P!$u0ꪥn `@CARD2751Adding audio memos to Appointments and Addresses Card 4 of 8Z>n>Place the microphone 9-12 inches from the sound source. You can adjust the recording level by moving the microphone closer to or farther away from the sound source. 3. Click the button labeled Rec. to begin recording. Recording begins after a short pause when the recording time bar begins to fill. The amount of time you have to record depends upon the amount of random access memory (RAM) available to HyperCard.CARD=N75L1Adding audio memos to Appointments and Addresses Card 5 of 8ZAs you record a sound the recording time bar fills, showing the approximate amount of recording time used in relation to the amount available. The duration of the sound is displayed to the right of the bar as you record. 4. Click Stop to stop recording. BMAPN$ @ & `0%@@)&&0`0%@@ & 8@|%HqW=;DF JLW 8UI@Vu`BMAPCARD>J75 Card 6 of 81Adding audio memos to Appointments and AddressesZS5. To listen to the new sound, click Play. The Audio Palette plays the entire sound. 6. If youre not happy with the recorded sound, you can click Rec. and try again. When the Audio Palette is collapsed recording replaces the current sound. 7. Give your new sound a name by selecting the text in the name box and typing the new name. BMAPJ$ Č _E%` !DN"! pp  _E%`!0?! K`#as g8%B U@%c 1&(%U@0% d U@sa !0 = ""@@@D@D@`CARD?Egu75 Card 7 of 81Adding audio memos to Appointments and AddressesZ8. To save the sound you recorded as an audio memo, click the Save button. A speaker icon appears on your Appointments with Audio card next to the text you selected. To play the audio memo, click the icon. BMAPgu$$̌ J r0l0  %2@ Awy{p>w-oa[yKE쒄 )t0j– ,P06 P@) ` I C 1IDU {#0 *lkgpIjKP6s82`R)@-@1iE:iA<cmM "  0 0@0 0  1@;@ ;@;@08 0@D 0@ 0 0@ 0@ 10;w@ b@ S, Z@1!Q $0Xb08"`90* PU_@:@U0 `@1%{ӎw$3@$9sÀE@k#ڰ4@ 0| 0@ 0@ 08 0@ 0D 1;3@  8( 6HF>@CARD;&751Adding audio memos to Appointments and Addresses Card 8 of 8ZIf no text is selected, the Audio Palette places the speaker icon in the upper-left corner of the card. To move the icon, hold down the Option key and drag the icon to where you want it. CARD][75 Card 1 of 8 Adding sound to your own stackZDYou can add sound to any HyperCard stack. Start by opening a stack.V3,3Adding sound to your own sta@BMAP][$U%@Ya` 0``uJ@*6`10 f0;`6"@gl-6i3 I - ZPPXga3m8:?@g L@S b 3" @ " @c "vD 3"Ir @V c@'$K@@ "ei@b# A"sA!$"!-  &B[>BJ= ZpgJl@L#$, [H@aLS) A, H Pm D"}@֨!T".(, .Hp}#l $V +@- @@.QP4u.@1 .@A( @@%Da$ !@7E% `^ %Ue@l  Dq1 pvR?a(E&b0@ p&O0`!R 'FP r%b.rpr5(L45tTm@)q@H#T] ,Dz:" (a D&kǮ"9mq$RER *@6[E_s@b5 d0z@5Up0 DWQ _<b;85 q7( 8 JdG1,RDKB$-= 8 RL@LqvJ3 FE)D<yn)GQe-)jF&%p\'E b pER TEaȲ1E-)\ygYJ EPBy# IE+:. cPT%RpEeRA  Je81x1H[C>6JZ@`as  )Fqa"![rUlWpJ WV4N㻀@8WM &@*W#@d@;Hh0;$"H`_z8;c"HPA5 ";H M K D@L"ppDLaH<$=H%4m"A-=Y}s@.#~껆h.{7Dm!@V3".1w.x*a.UW@T. #@E.OD @0A  8`  bH #" S+(SHBb F`3x3 CMC&@CCC`40D@$CARD\^>75x Card 2 of 8 Adding sound to your own stackZ@1. Choose Audio from the Edit menu. The Audio Palette appears.BMAP^>$b h    !@ !" D$   rPTD/ $ r0 =e @{0e 68`+0s  l`߼" 6y<H`f q f`40p0 % S;) 6S* " 6E(V R&t (x# !r q c͌g$0`p0 @$! ` 0p0 h_"B@ !0@+ 3$ d `0J #(R0  j"!l $_?K"H "$ m05O ! _<'"$lH 0%r"@+@L 2 Ǖo(((0@);B(bj(!@$rs"x u@"xPC)!"0@iB@`mKjB"m uB "0@i"b$ #)"i\$`!"i@rsjuTBLc  n|T0 W 1E # prmIg) 3;`p|&PdDf@ $#4m#+M { 3/l0u` @&90D :ep d\㐉 "0dmpdl$@+ 3PdHRj@ +@ fd^Xwo^2 hzϽBi8u wЌi$ h*` +@ uD 0tH` 04#1z 9x#4{zy ` vpX{# 8bG~{q$&'@lq(xp{z4㏌  0t;(a$yeinqR$y$Wb ym˜6қt$m@%P e|b"@0$nGA9)0 -@ |lAHDq$@ 1Dp3 mB xpKB .)1FX=@200$.G2.e$% p M@! Xpc!@{!@y9X@B! y)Ry@ , @2 @l ?P$@lx!R@l $@L@l @lr$@]$@l@l@] @=@] @=@@@@ @@ 6@- @@.CARD7_75 Card 3 of 8Adding sound to your own stackZYThe recording level indicator verifies that the microphone is connected and shows the strength of the sound being picked up by the microphone. Before starting to record, check whether the sound is at the correct volume. For best results, the volume should be about half of maximum. The recording level indicator should look something like this:BMAP_$ HP P (A % @]DPP (eUPUc-S@DZU@UD( ***"D*@@UD *   4("@"@P (SDDEP"@@ "eUEPUT(r >EUT@("E: (eAPPv  (5PPU ((!03A0 3``1U0T4@P(  1""=38$"#3$P"U"E3$ 3<$@A38@$+ +@  $@ ( $PA'8 $ "#6<@$@"U"E331T0T4@P!$um!@V3".1w. CARD8lx5 Card 4 of 8Adding sound to your own stackZ>o>Place the microphone 9-12 inches from the sound source. You can adjust the recording level by moving the microphone closer to or farther away from the sound source. 2. Click the button labeled Rec. to begin recording. Recording begins after a short pause when the recording time bar begins to fill. The amount of time you have to record depends upon the amount of random access memory (RAM) available to HyperCard.CARDY42x5jAdding sound to your own stack Card 5 of 8Z2For example, five seconds of sound recorded at Best quality requires 110K of memory. As you record a sound, the recording time bar fills to show the approximate amount of recording time used in relation to the amount available. The duration of the sound is displayed to the right of the bar as you record.BMAP2$ 0@%0`%)&"<&   0`%0@%%%X&1cWJRF/BRgU1w`BMAPCARD9x5T Card 6 of 8 Adding sound to your own stackZ3. Click Stop to stop recording. 4. To listen to the new sound, click Play. The Audio Palette plays back the entire sound. 5. If youre not happy with the recorded sound, you can click Rec. and try again. When the Audio Palette is collapsed recording replaces the current sound.CARD:Ox5, Adding sound to your own stack Card 7 of 8Z6. Give your new sound a name by selecting the text in the name box and typing the new name. 7. To save the sound, click the Save button. A new button appears on the card with the title of your sound. To play the sound, click the button. BMAPO$` Č _E%` !DN"! pp  _E%`!0?! K`#as g8%B U@%c 1&(%U@0% d U@sa !0 = ""@@@D@D@CARDaSx5ZWTo move the button, hold down the Option key and drag the button to where you want it. Adding sound to your own stack Card 8 of 8@BMAPaS$o     !@ !" D$   r(@D/9$ r0?{e6`elp`+0s 'l`<x" 6y<H`<J1 c 40p0  cP*$) 62) " 6 c l>#11p8dR RC0P A rEd2 B!7  TT `2"@-r ` 8V"B@ !0@+ 3$ d `0J #(R0  j"!l $_?K"H "$ m05O ! _<'"$lH 0%r"@+@L 2 Ǖo(((0@);B(bj(!@$rs"x u@"xPC)!"0@iB@`mKjB"m uB "0@i"b$ #)"i\$`!"i@rsjuTBLc  n|T0 W1 pr1E # 3;`p|lIg) #4'PdDf@ $#+m3/L {  @&5PU)t`p& `d e` "9dUe eF]_pdl$@+ 3PdHRj@ +@ fd^X@%vX +0 hzϽB gh8u wЌi$@4Ԁg?P0k@ uDhD2)`f:H0x#4{z 9vpX{y ` G~{# 8b&'@{q$xp{kq( 0t/@ yR!yeinqR$y$Wb ym˜6қt$m@%P e|b"@0$nGA9)0 -@ |lAHDq$@ 1Dp3 mB xpKB .)1FX=@200$.G2.e$% p M@! Xpc!@{!@y9X@B! y)Ry@ , @2 @l ?P$@lx!R@l $@L@l @lr$@]$`@AAK@/ =@R @0@"2PS $ C  =@#Cr8<9 P$&=@2 M@@@@ 61 pvR?a(CARD"Dx5b Card 1 of 4Playing soundsZ1>">You can use the Audio Palette to play any sound you just recorded or to play any sounds saved in the current stack, the stacks in use, or the HyperCard Home stack. To play a sound: 1. Open the Audio Palette. 2. Press the black triangle next to the name box to show the Sound pop-up menu.V3,4Playing sounds`BMAPD$  P P (8" >A@@],(@@%e (SDT-U"@c)BDD*UD"*`*"D*` *1"@"ADS*CSDECUc "((*VU@e *"T] T5h(^ ( _E%`!0CARD@ijx5 Card 2 of 4Playing soundsZ The Sound pop-up menu lists alphabetically the names of the sounds in the current stack, the stacks in use, and the HyperCard Home stack.BMAPij$, lP P (8)!()!)P)( SDT c:0 DD; D";! D; 4  ; @;݃ S*; P)(!@8@@")(13` $@$#Cq#p`0C3# 77" 1&S1SH0d 5HgS@01$ @CARDALjLx5 Card 3 of 4Playing soundsZ3. Choose the sound you want to open from the Sound pop-up menu. The name of the sound appears in the name box. 4. To hear the entire sound, click the button labeled Play. Audio Palette plays the entire sound.BMAPjL${ 0!"?Q@!D880!??! <03f$4ppC(# *8**4! <0!= !0 = CARDB2x5 Card 4 of 4Playing soundsZWTo temporarily stop playing a sound, click Pause. Press it again to continue playback.CARDVRx5"Opening a new sound Card 1 of 2Z>>You can record a new sound while working in the Audio Palette by choosing the New command. To create a new sound with the Audio Palette open: 1. Press the black triangle next to the name box to open the Sound pop-up menu.V3,5Opening a new sound`BMAPR$ P P (8" >A@@],(@@%3o (C.U"@4+BD*UC+`*"-`#-1""AD4CSCUC*VU@e *"T] T5h(^ (0!??CARD`x52Opening a new sound Card 2 of 2Z2. Choose New. If another sound is already open in the Audio Palette, you see a message asking if youd like to save the open sound. The open sound is closed and Untitled appears in the name box. The Audio Palette is ready for you to record a new sound.BMAP$> ~P P (8)! )!!>@83%C<`#@4##>@ >@4PG(!@8H8)@@'Q"()(QQ`QgCb #`  Qg1 1S1SH0d5HgS@01$ CARD#$x5\ Card 1 of 3Deleting audio memos V3,6Z%Removing an audio memo from your Appointments with Audio or Addresses with Audio stacks is a two-step process. 1. To delete an audio memo, first click the speaker icon to select it. 2. Choose Delete Audio Memo from the Edit menu. The audio memo and speaker icon are removed from your card.Deleting audio memosCARD4x5Deleting audio memos Card 2 of 3ZeYou can delete multiple audio memos by clicking each speaker icon while holding down the Shift key. Then, choose Delete Audio Memo from the Edit menu. Another way to remove both the audio memo and its associated speaker icon from your stack: 1. Go to the card with the audio memo you want to delete. 2. Press the Command key and click the speaker icon.CARD{Ux5H>H  N$ Gray Prevon mouseUp goGray end mouseUpDeleting audio memos Card 3 of 3ZThis automatically deletes the sound associated with that audio memo and the speaker icon on your card. The sound is removed from your stack. However, the sound remains in the computers memory until you open another sound, close the Audio Palette, or quit HyperCard. CARD&x5H^H  N" Gray Prevon mouseUp goGray end mouseUpEditing tools and the waveform Card 1 of 8ZThe Audio Palette uses standard Macintosh editing techniques. You can cut, copy, paste, and clear parts of a sound using the same methods you use to edit the text in a document. 1. To expand the Audio Palette, click the button labeled Edit. The expanded audio palette appears. V4,1Editing tools and the wavefoBMAP$ LP P (0"@@0@]$x@@Ue <SDT-U"c)U@BDD**U"D"*@@*" D*  6@ "AlS*CSDE^Uc "((*"@Ve /@Hr@t^UT@( R R (V( PUP% *"PeP0.U"@4+BCARDK|3x5Editing tools and the waveform Card 2 of 8Zi> >A waveform for the phrase A quick meeting and review at Daves looks something like this.`BMAP|3$^  @`% '` H@@0  #2 @ P $@V  4@! 5$0`  B 2@@  E"@# 6@ @Q"*@@$CCRD @CE1e2 \Q("AT,6 @! s@3@#0"s C@$BabAc@b@ C0$T C%5RDHf 3$$  r@"H@7@D@rd %@  '@ R0 #2:2  W@ p #@@ %2@$  @@" @$ R   tH;3|#h#O~<2yB03"r6X2R0U6X$ R0F3 !5Wmޛ0::Ơ.B@`CARDOyx5 Editing tools and the waveform Card 3 of 8ZYou can view details of the waveform within the context of the whole waveform for easier editing. The height of the waveform represents the sounds volume. A thin horizontal line typically represents silence.BMAPy$%'  H `  D @ $V@ ! '@@4!@5$ `(@  b 2 @E"6@+$C c 20D@)@CbeeQ P" TXl@%R )q0s 3#`" C P+CH! "b(cĀ @ C `$ (A`#@CJjB #E "8@3H$@@r!"74c%@% 6 `@'2`"Y2@6! @u ;@ #@%@ 2 % @     0P" $2" 38 :!TA@@!#@ @xR@0b01t r D #@80(" xt0Bs 8@"R @ab'xC^~@7@}"" BHr` rn@ !Bt`At"azbx"@0 5B`v ?"    !X !" A3@64  " %/'$  H@$  @   @=N= < <mt ("xBI'B`Ts HB@$ b !`` s 2%1:2 T"@B>r`@B` < 2 AR@#az߇rb_/?O}P| >G?B 2122@3A"0-" 2@ C@3@ $ '@ R0CARD6x5XEditing tools and the waveform Card 7 of 8Z You can alter your view of the waveform by resizing the view box. Expand the view box to see more of the waveform. Shrink the view box to see part of the waveform in more detail. 2. To resize the view box, position the pointer at either end of the box, then drag with the pointing hand.CARDdx5Editing tools and the waveform Card 8 of 8ZeIn this example, the view box has been resized to display the words a quick in the waveform panel.@BMAP$_@``@   $@  +   s @ E@) #@"@! D @ d@I@ %@  #( T@@  S `F "S@ 2#@ Br@3 c!"c# !!  C J#Rb F@a@ rD B`֊AXf@BD @@t*1 r"@&E#  )@A @P@" @RA #08R# r (4  S $` e   @ $@  4@8 '@ ) S  H@  @ @=$ 3@  @ # @ @'}@5?@5 @ 4Aqـ R(Ex$B`T# #B@3S  !db`  s |b%1Br@T"@$"?? 2022@30A"0-# " 2@ C@3@ $ p '@ R0CARDwx5!Recording while a sound is open Card 1 of 8ZjRecording while an existing sound is open in the Audio Palette works in two different ways: When the Audio Palette is collapsed, a new recorded sound replaces the current sound that is open in the Audio Palette. When the Audio Palette is expanded, a new recorded sound is inserted in the current sound at the insertion point in the waveform close-up view.V4,2Recording while a sound is oCARDx5j!Recording while a sound is open Card 2 of 8Z0 ]>Recording over a sound To record over part of a sound, start by opening the sound you want in the Audio Palette. Click the Edit button to expand the Audio Palette. 1. To find the part of the sound you want to replace in the close-up view, move or resize the view box in the waveform overview.@CARDIMx5!Recording while a sound is open Card 3 of 8Z2. In the close-up view, drag to select the part of the waveform you want to replace. The selection appears highlighted. 3. Click Play to be sure the sound you want is selected.@BMAPM$^@P$ ! "     5H @ "@ D)@ T8 S@  5@R @  @2@T @ Is b@B$d A  C$"A"QQ(3 (2X`a +4^Q]0s(@ l(n" d@$0!0@ ! D*@ 0B T@1@dL@CrG@!(w j$r a R  BD#( & R@#  "@e@3'@C@ r@(E@F $U ( 7@&6'S 7! %: 5@ ,H >@ .@ !  @   a .x$B`T# #B@S  !U`  s b%18r@T" "??B 2022@30A"-# " 2@ C@3@ $  '@ R0CARDsx5`!Recording while a sound is open Card 4 of 8Z&4. Click Rec. to begin recording. Speak or play the new sound into the microphone. 5. Click Stop to stop recording. 6. To listen to the new sound, click Play. Audio Palette plays back the entire sound. 7. If youre not happy with the new sound, you can follow the same steps to try again. CARDx5L!Recording while a sound is open Card 5 of 8Z ] >Important: Although you can click Play to hear the recorded sound, its in the computers memory. The sound is saved to disk (to the current stack) when you click Save. 8. To save the new sound, click Save before you open another sound or close the Audio Palette.CARDx5!Recording while a sound is open Card 6 of 8Z ]>Inserting a sound To insert a sound into an existing sound, start by opening the sound you want in the Audio Palette. Click the Edit button to expand the Audio Palette. 1. To find the place where you want to insert a new sound in the close-up view, move or resize the view box in the waveform overview. 2. Click in the close-up view at the point where you want to insert a sound.CARDx5x!Recording while a sound is open Card 7 of 8Z=3. Click Rec. to begin recording. Speak or play the new sound into the microphone. 4. Click Stop to stop recording. 5. To listen to the new sound, click Play. Audio Palette plays back the entire sound from beginning to end. 6. If youre not happy with the new sound, you can follow the same steps to try again.CARDQx5T!Recording while a sound is open Card 8 of 8Z ] >Important: Although you can click Play to hear the recorded sound, its in the computers memory. The sound is saved to disk (to the current stack) when you click Save. 7. If you want to save the new sound, click Save before you open another sound or close Audio Palette.CARD%x5 Card 1 of 13Moving a sound V4,3Z ]>Copying and pasting a sound To copy any part of a sound, start by opening the sound you want in the Audio Palette. Click the Edit button to expand the Audio Palette. 1. To find the part of the sound you want to copy in the close-up view, move or resize the view box in the waveform overview. 2. In the close-up view, drag to select the part of the waveform you want to copy. Moving a sound CARDx5Moving a sound  Card 2 of 13ZThe selection appears highlighted. In this example the word quick is selected. 3. Click Play to be sure the sound you want is selected. 4. Choose Copy Sound from the Edit menu.  BMAP$NЌ@`""|( " " @ +P  *@( 7 H)2 @ 7PD  "" @"` @C  @>@F20'@3@P&@S !D VJC$@U q!c"@ 4ZX HQ@@"1$0!%  $%"T 3@1"(c,@`X4dn@/3@4 4S,Tb !$ Cva$@ 3t@ @(G@`s S@  @P@ `   #2< H  #2 @@30 @ %  @   PRg R` B"B6 !D@b "2>`P Br!H@. aR00#@ 0"P4"c6i6`&P %@&?pC? BB r  2$"@4 "@@" 2@b0@    $  CARD+ x5Moving a sound Card 3 of 13Z5. In the close-up view, click to set an insertion point where you want to paste the sound. 6. Choose Paste Sound from the Edit menu.@BMAP $@`&|~` H"0# @ *   *@+ 2@H)2 7PG "@# @%7@@ $& ' @t@$ '@6P6@-S !t  @CH  q!"@  x1@`' `^@*@`$%RT```1"(,@`@T3@C @%H$S,T ! ,$`$@ 34@3(G@`TS@(  #@$  &(@2O@H #&@@D@6 ' 00 )B @y $ 2g @$DB r @!D@e ">`2j$@Br a2220"@0Bcd 3`& `$4#+@D  C@~?D BB  r 02$"@2D@"@@B" 2@0@  $R0CARDx5Moving a sound  Card 4 of 13Zy>b]m>You can remove your last editing action by choosing Undo from the Edit menu. 7. Play the sound. Important: Although you can click Play to hear the recorded sound, its in the computers memory. The sound is saved to disk (to the current stack) when you click Save. 8. To save the new sound, click Save before you open another sound or close the Audio Palette. CARDTx5Moving a sound Card 5 of 13Z ]>Cutting or clearing a sound To remove any part of a sound, start by opening the sound you want in the Audio Palette. Click the Edit button to expand the Audio Palette. 1. To find the part of the sound you want to remove in the close-up view, move or resize the view box in the waveform overview. 2. Drag to select the part of the waveform that represents the sound you want to remove.`CARDx5Moving a sound Card 6 of 13ZThe selection appears highlighted. In this example, the word quick is selected. 3. Click Play to be sure the sound you want is selected. 4. Choose Cut Sound from the Edit menu. The selected sound is removed from the waveform.@BMAP$N@P&BA` H"0# @ *   *@+ 2@H)2 7PG "@# @%7@@ $& ' @t@$ '@6P6@-S !t  @CH  q!"@  x1@K`( `^@*@`$%RT```1"(,@`@T3@C @%H$S,T ! ,$`$@ 34@3(G@`TS@(  #@$  &(@2O@H #&@@D@6 ' 00 )B @y $ 2g ?$DB r @!D@e ">`2j$@Br a2220"@0BCd 3`& @$4# D  C~?D BB  r 02$"@2D@"@@B" 2@0@  $CARD3x5\Moving a sound  Card 7 of 13Z2You can remove your last editing action by choosing Undo from the Edit menu. As in this example, most recorded sounds contains silent portions, represented by a thin horizontal line in the waveform. If you are trying to conserve disk space, you can remove unwanted silence from your recorded sound.BMAP$M%'  H `  D @ $V@ ! '@@4!@5$ `(@  b 2 @E"6@+$C c 20D@)@CbeeQ P" TXl@%R )q0s 3#`" C P+CH! "b(cĀ @ C `$ (A`#@CJjB #E "8@3H$@@r!"74c%@ 'S`@2 ";2@! @W @ #@ 2 %@     x"$R  8 :!TAS@@!&#@@8R@0b01t  BD#@80(" xtBS 8 3@"R @ab'xC^~ r@! B@3`2d" B`A("`Z#"@02@Cc  @"@CARD/x54Moving a sound  Card 8 of 13Z 5. In the close-up view, drag to select a thin line in the waveform. 6. Choose Clear from the Edit menu. The selection is removed from the waveform and from the computers memory. You can remove your last editing action by choosing Undo from the Edit menu. BMAP$Ќ@`'|* 2 0  rP% @(!3@"2@# #@! 8H6``#$,5#@@&3%!  @"2`$@ ""T@ @c @q@$R b A@;1UF0  C%`#d `r1 #hH# R SrdRB$#5c-b  &"&#@&@@%P# "`  &&#@  @"@+ 8 @(2?  @:@@@@ $4@#@#C'' (  @& $@  @ & P#~#@%3DDB$%R"z%"x" ("0 CmBCH2D $N""D(& `$ 20wtUwÈ& &$0E$ |">?~b_@#)blD"R` $"@%D@ ' #`#j3as 0@#8 r D &2@0@ CARDx5DMoving a sound Card 9 of 13Z] >]>Important: Although you can click Play to hear the recorded sound, its in the computers memory. The sound is saved to disk (to the current stack) when you click Save. 7. To save your changes, click Save before you open another sound or close the Audio Palette.CARDx5Moving a soundCard 10 of 13Z ],>Moving part of a sound to a different sound You can easily move and combine sounds with the same recording quality by copying and pasting in the Audio Palette. Start by opening a sound in the Audio Palette. Click the Edit button to expand the Audio Palette. 1. To find the part of the sound you want in the close-up view, move or resize the view box in the waveform overview. CARDx5Moving a soundCard 11 of 13Z>>2. In the close-up view, drag to select the portion of the waveform you want to copy. The selection appears highlighted. 3. Click Play to be sure the sound you want is selected. 4. Choose Copy Sound from the Edit menu. 5. Choose the sound you want to open from the Sound pop-up menu. 6. In the close-up view, click to set an insertion point, or drag to select the part of the waveform you want to replace.CARDx5rMoving a soundCard 12 of 13ZH7. Choose Paste Sound from the Edit menu. The sound appears at the insertion point or replaces the selection. You can remove your last editing action by choosing Undo from the Edit menu. 8. Click Play to hear the sound. If youre not happy with the new sound, you can edit it or you can try again by following the same steps.CARDR58Moving a soundCard 13 of 13Z ] >Important: Although you can click Play to hear the recorded sound, its in the computers memory. The sound is saved to disk (to the current stack) when you click Save. 9. To save the sound, click Save before you open another sound or close the Audio Palette.CARDZR5d$Saving a sound in a different stack Card 1 of 3Z >>You can copy a recorded sound from one stack to another. 1. Open the stack that contains the sound you want to copy, then open the Audio Palette. 2. Use the Sound pop-up menu in the Audio Palette to open a sound. 3. Click the Edit button to expand the Audio Palette. V4,4Saving a sound in a differenCARD$IR5l%Saving a sound in a different stack Card 2 of 3Z-4. Click Play to be sure the sound you want is selected. 5. Choose Open Stack or New Stack from the File menu. 6. Open a stack or type a name for your new stack when the dialog box appears. 7. If you want to give the sound a new name, select the current name in the name box and type a new name. CARD1R5n%Saving a sound in a different stack Card 3 of 3Z/8. Click Save to save the sound in the current stack. The new sound appears on your card in the form of a button with the title of your sound. To position the audio button, hold down the Option key and drag the button to where you want it. The recorded sound is played back when you click the button.`CARDdR5Deleting sounds Card 1 of 6Zπ ]>Deleting a sound The Audio Palettes Delete button lets you remove sounds from your stacks. 1. Click the Edit button to expand the Audio Palette. 2. Click the Delete button on the Audio Palette.V4,5Deleting soundsCARD[R5Deleting sounds Card 2 of 6Zd The Delete directory lists saved sounds and their locations. The sounds are listed with`BMAP[$& &  4<$  pt=`lc{0E X,T884 v:`5#!#Q#4 )0`{1% `R5(Kl8xD*@T(@p$r @0c95,@(XS`"#$ 0`0`?0$@`y`<Deleting sounds and audio buttons 1. Go to the card with the audio button you want to delete. 2. Press the Command key and click the audio button to delete it. This automatically deletes the sound associated with that button and the audio button on your card. The sound is removed from your stack. However, the sound remains in the computers memory until you openCARDR5HdH  N$ Gray Prevon mouseUp goGray end mouseUpDeleting sounds Card 6 of 6Z<another sound, close the Audio Palette, or quit HyperCard. `CARD',R5HH  N" Gray Prevon mouseUp goGray end mouseUp Card 1 of 3Recording levelZThe Audio Palette recording level indicator registers incoming sound from the microphone. It helps you determine whether the microphone is plugged in and whether the sound reaching the Macintosh through the microphone is loud enough to ensure full dynamic range, but not so loud as to distort. 1. To test the recording level, hold the microphone 9-12 inches from the sound source. 2. Speak into the microphone.V5,1Recording levelCARDleuR5Recording level Card 2 of 3Zr3. Watch the indicator as you speak. For best results, the volume should be about half of maximum. There should be three or four bars coming from the speaker icon in the Audio Palette. The indicator consistently full might mean distortion in the recorded sound. Adjust the recording level by moving the microphone closer to or farther away from the sound source.BMAPeu$? @   P   @U@@]2@2Pe* (S-US"ZDP@ADUTD((* D@@A "(P(""@@UPS ("F@Ue "P]@@UT5UPP>P " :@Pe v@@P5 (UP  P `"#`31 5 DUUT@3  $ "*3 % #T"E3$" "3 3x9D$(3p($  + $  P $ 'p $@"T"E7x($ " "3 9D31 " 5 !0HeP@CARDmrsR5Recording level Card 3 of 3Z The recording level indicator works even when youre not recording. If you do not see any activity in the indicator, your microphone is not registering sound. Make sure your microphone is plugged in.BMAPs$-  @  @$n1'_x   _y8n&0$@! 8'r@+*##p@"8 E5 % >ؓ18.%%$HJI%/x/8@/{>$$rH1$%5E"8 #p@#*+@ @  @"@+ @CARD(R5 Card 1 of 1Recording timeZ>Oh>Recording time is displayed in seconds or minutes depending upon the amount of random access memory (RAM) available to HyperCard. The values under the recording time bar register the total recording time available. The bar fills as you record, letting you know how long your recorded sound is and how much time is available. To the right of the bar, the duration of the sound is displayed in seconds depending on available RAM.V5,2Recording timeCARD)R5` Card 1 of 2 Play ThroughZ2 >Play Through lets you monitor incoming sound during recording. The sound is played simultaneously through the Macintosh internal speaker as you record. Select Play Through when you want to ensure that the sound reaching the Macintosh through the microphone is the volume and quality you desire.V5,3Play through CARDotR5 Play Through Card 2 of 2ZPlay Through is turned off when you first open the Audio Palette. The Play Through feature may not be available if you do not have the hardware and software to support it.  BMAPt$Q wԎ@@@u@@.q>?`B@(@q3` `B  " ‡63lDQTEDbDP  m"(c "uA@TDQbP# @T U (BQ@T@@PS@0@4@UUUUUUf@@u1TPR(d r"2PUQDb T2 " R( bAPTE@P@"( "D" B AYAPPA@b" " !@@)@@T%uUUUUUU@@ 8**4CARD+bR5 Card 1 of 1Auto Record LevelZThe auto recording level feature automatically adjusts the input of your microphone to compensate for a sound source that is too loud or too soft, reducing the potential for recording distorted sound. Auto Rec. Level is turned on when you first open the Audio Palette. The Auto Rec. Level feature may not be available if you do not have the hardware and software to support it. V5,4Auto Record Level BMAP$ Ȏ@vA*RATP(4(sQEAQsQUESDQT(b "Td@E@AsADSE#UU RD@sU#P yUUUUUUAv*v@?0`  d**b10 `@@ KN8t(T [loT@TPTC@MCX6 5 b @Ri@XT-C[)*@!)$%+vUUUUUU@ 8**4CARD,R5 Card 1 of 2 CompressionZ`>>{>The Compression pop-up menu lets you save sounds in compressed form, conserving disk space. The Audio Palette supports two compression ratios: 6 to 1 and 3 to 1. 3 to 1 gives you higher sound quality than 6 to 1, but the files take up more disk space. Different compression ratios are appropriate for different kinds of sound.V5,5CompressionCARDqSxR5L Compression Card 2 of 2Z(The best way to determine the appropriate balance between compression ratio, file size, and sound quality is to experiment with 22 kHz sound at the 6 to 1 and 3 to 1 ratio. Only sound recorded at Best (22 kHz) can be compressed. Compression is set to None when you first open the Audio Palette.`BMAPx$       TR 0vRT%vs(bs>Css@Qm6Bm H$S) 3E426D(R ru@@@      G~G 7f 8"(t@E0lrDDR@4 T(*("QAPZ"TRPAb 4:T! (( A"TB@# H<8( bPT   04| 8GLl    7ZTfvb @Ri@XT@CARD-!R5 Card 1 of 3Recording QualityZ>>The Rec. Quality pop-up menu lets you select the sampling rate for recording sound, which is a key factor in the quality of the sound. Select the recording quality you want before you record because you cannot change the recording quality of a previously recorded sound. The higher the sampling rate, the higher the quality of sound. The Audio Palette provides two options Best (22 kHz) and Good (11 kHz). V5,6Recording QualityCARDR5fRecording Quality Card 2 of 3Z;Sound recorded at the Best setting is crisp, clear, and most suitable for professional quality results but it requires the most memory and disk space. A sound recorded at the Good setting takes half as much memory and is appropriate for voice annotation like office communications or adding voice to a tutorial.CARDnvR5xRecording Quality Card 3 of 3ZMRec. Quality is set to Best (22 kHz) when you first open the Audio Palette. BMAPv$W 0@@@u@@.a@P"@R % @sDQDDQTEDS"(Ps  c"(TD@BsTDQS"  U U@ PB@T@@PS@ !@@)@@'T%Qf@@u1T(rD2@b<fBP*("Bf "RPARkZȉl0  "nB``l2"B@#|V 04P R@55 0  ,(  Title Bar,,&;  Name Box.+;  Sound menu( )F   Edit( )F  Save*E#eC  Record(Ee  Play24   Volume control6f"   Recording Time Bar4"  Waveform overview0&l   Play Through4 &l  Auto Record Level."q   Compression4$q   Recording Quality4%b3   Recording Quality<&HZ  Recording Level Indicator*(  DeleteH){   Deleteon mouseUp hide me end mouseUp,*   Close Box,* o   Title Bar4h   Waveform Overview.#U)   Compression,E   name box4!e   Auto Record Level0g   Play Through6!   Recording Time Bar( F   Save2   Volume ControlF F   Editon mouseUp hide me end mouseUp(h   Play. EH   Sound menu(h   StopHh   recordon mouseUp hide me end mouseUp(h   Pause0.#  Close-up viewN/#   Close-up viewon mouseUp hide me end mouseUp<'\   Recording Level Indicator,8   View box,9O7   view box2:f   Sound duration2;.   Sound duration(EDef  Stop(Efe  Pause,('   Close BoxH=  N$ Gray Prevon mouseUp goGray end mouseUpL>  N! Prevon mouseUp go previous card end mouseUpȀ ] >Close box To close the Audio Palette, click the Close box. If youve recorded or made changes to the open sound without saving your changes, youre asked if you want to save the open sound.P ] >Title bar To move the Audio Palette, point to the title bar and drag. ]>Name box Displays the name of the sound youre viewing in the Audio Palette. To change the name of the sound, select the name and type a new one.ǀ ] >Sound menu To open a sound, press and hold down the mouse button on this pop-up menu indicator. The list shows sounds in the current stack, any stacks in use, and the HyperCard Home stack. ]>Edit To expand the Audio Palette and see all of its features, click this button. To shrink the Audio Palette to its smaller view, click this button again.P ]>Save To save the open sound in the current stack, click this button. T ]>Record To start a recording, click the Rec. button on the Audio Palette. a ]>Stop To stop recording or playing a sound, click the Stop button on the Audio Palette. ]>Pause To pause the recording or playing of a sound, click the Pause button on the Audio Palette. To resume recording or playing, click the button again. ]>Play To play back the current sound or the selected portion of the sound, click the Play button on the Audio Palette.e ]>Volume Control To change the playback volume of the sound, drag the slider along the bar. ]>Recording time bar The number at the bottom right side of the bar indicates the amount of time available to record. The bar fills in to indicate the amount of that time used by the open sound or the sound being recorded.L ]>Waveform overview Shows the entire waveform of the current sound. ] >Play Through To hear the sound through the Macintosh speaker as its being recorded, click the Play Through check box. ]>Auto Record Level To have the Macintosh automatically compensate for a sound source thats too loud or too soft, click the Auto Rec. Level check box. ] >Compression To select a compression ratio for saving sounds recorded in Best quality, use the Compression pop-up menu. 6 to 1 and 3 to 1 compression ratios are available. ]>Recording Quality To set the recording quality at Best (22 kilohertz) or Good (11 kilohertz), use the Rec. Quality pop-up menu. ]>Recording level indicator Shows the volume of the signal coming from the microphone, and indicates that the microphone is properly connected. ]>Delete Displays a list of the sounds in the current stack, any stacks in use, and the HyperCard Home stack. To delete a sound, click its name in the list, then click OK. ] >Close-up view Displays a detailed view of the waveform according to the setting of the view box in the waveform overview below it.^Quick View of Audio Paletteu ]>View box Click and drag the view box to determine which part of the waveform appears in the close-up view._card id 18406 Main Topicsx ]>Sound duration Shows the length of time of the open sound, or the length of time of the sound being recorded.-- Hidden fields on this card: -- There are several hidden fields on this card. The text of each needs -- to be localized. The short name of each hidden field matches the -- short name of the button that shows the hidden field. -- Mousing over a button whose name includes a bullet character -- ("", or option-8) causes that buttons matching field to appear. ---------- SYSTEM MESSAGES ---------- on openCard storeHelpInfo 2, the ticks -- ticks on openCard setCheckMark true pass openCard end openCard on closeCard put getHelpInfo(3) into poppedField if poppedField is not empty then hide card field poppedField set the hilite of card button poppedField to false storeHelpInfo 3,empty end if setCheckMark false pass closeCard end closeCard ---------- MESSAGE HANDLERS ---------- on setCheckMark boolean setLocationCheckMark 3,boolean end setCheckMark ---------- SCRIPTS TO HANDLE BALLOONS ---------- on mouseEnter -- This handler works the mouse over pop-up fields that appear -- for on this card. Fields only pop up for buttons whose name begins -- with a bullet (). put getHelpInfo(2) into theOpenCardTicks put the ticks into theStartTicks -- Hide a pop-up field if one is visible. put getHelpInfo(3) into poppedField if poppedField is not empty then hide card field poppedField set hilite of card button poppedField to false end if -- Dont pop-up a field immediately on openCard -- just because the users cursor is accidently over a button: if theStartTicks - theOpenCardTicks < 30 then exit mouseEnter if the target contains "card button" && quote & "" then set the cursor to "Balloon" -- Only show pop-up field if cursor stays in rect for a bit: repeat until the ticks - theStartTicks > 18 if the mouseLoc is not within the rect of the target then exit mouseEnter end repeat -- Now it's OK to pop-up the field: set the hilite of the target to true show card field the short name of the target -- Remember what field storeHelpInfo 3,the short name of the target end if end mouseEnter on mouseLeave put getHelpInfo(3) into poppedField if poppedField is empty then exit mouseLeave get the mouseLoc if it is within the rect of card button poppedField then exit mouseLeave hide card field poppedField set the hilite of card button poppedField to false storeHelpInfo 3,empty end mouseLeave on mouseWithin put getHelpInfo(3) into poppedField if poppedField is empty then exit mouseWithin get the mouseLoc if it is not within the rect of card field poppedField then exit mouseWithin end if hide card field poppedField set the hilite of card button poppedField to false storeHelpInfo 3,empty end mouseWithinBMAPVk$`@(#A# '# # (@(#/5@r 6feX'Z U@)@@FTAU)  @@p "UAeBeyKxGf#/5@ M/ ("V>`f>f`b6!pf?(#/5@  e#@" "@  #"y  a &&0 &@*p & *@   & &@* &n&0p #"y   #@" "@2  f(" x""| &0"2] f?x &Sr9p F3d8 &,"2@ ( ((#/5@# /5''' ' #/5@($p$8 $'| K 3s8$F@ Kx$J K{p$ K8$0 $Ex$_\ (#6@# 6#6@(#@@(@#@(#d-7@#D-7#d-7@#@(#@@(@(#6@#6uu`U~`>g m.ݺn@ f 2 2g&!Ccs& 5D7"5DWr?;@B(3 2 5Z   fu`@e<j$f"rH$x<,RfKCW ?~CxHU<@ aEDUf@qE{(u<MCq# b5&@2p `b#6@(- 5@u7( ( "  @$ $#2<D<% #," R 0Bpt7903 5% # ,B88D*R ٶ#R