The Talking Moose Desk Accessory. About the Talking Moose: (version 1.21) The Moose is my attempt to give the Macintosh a talking personality. The first Moose would speak (sometimes) humorous comments when the user was not doing anything. This new version also allows applications to say specific phrases. (Other improvements too.) When the Talking Moose D.A. is first opened, the code for the Moose is installed into the System Heap. This is a special area of shared memory that allows the Moose to stay installed, even if you change applications. The Moose requires 2 files to be present in order to work: "MacinTalkª", and "Moose Phrases". These 2 files should be kept in the System Folder. (Please remember this when giving the Moose D.A. to someone else.) About the Author and Public Domain: For info, copies of the Moose or source code, or if you want to report problems or suggestions, contact: Steve Halls, 11135-50 ave, Edmonton, Alberta, CANADA, T6H 0J1. For $15, I'll mail you the latest Moose and utilities, and the source code if you want. (Can you download 2 full disks for $15? I can't.) The Moose D.A's, utilities, and source code are all still public domain, so spread it around. If you place the Moose on a BBS, please try to keep the files together, and inform the on-line users which (if any) files are missing. Please remove older versions of the files. I would also appreciate hearing about download-counts, and interesting uses of the Moose. About this Disk: The System file on this Disk is Version 4.1. It contains 3 new Desk Accessories: The Talking Moose, a Speech Testing D.A, and a Phoneme Reference D.A.. However, to make room, the non-essential fonts, D.A's and support files have been removed from this System. To obtain a complete System with all the fonts and support files, contact your local Apple dealer. The current Finder is version 5.5. I have added some extra extra resources, to make the Finder talk. Whats new in Version 1.21: The Delay has been considerably lengthened, so it won't get on your nerves so quickly. The Moose now talks when the Mac asks you to Insert a Disk. Applications can be made to talk by adding resources. Pascal programmers can completely control the Moose. The "Moose Phrases" file contains some new resources. Partial Switcherª compatibility has been added. There are many internal improvements. How to install the Moose: The "Talking Moose" is a simple Desk Accessory that can be moved into any System using the Font/DA Mover. The files "MacinTalk" and "Moose Phrases" should be copied onto any System Disk that you use. As an alternative, there is an Installer script that will do all that for you. (However, turn off the Moose before running the Installer. The Installer and scripts are kept in the System Folder, to help the Installer find files.) About the Speech Tester D.A: This desk accessory lets you type in text, and have it converted into phonemes. You can then copy these phonemes, and paste them elsewhere. This is particularly handy to do in ResEdit, while editing "Moose Phrases". About SwitchMoose: "SwitchMoose" is a utility program that has several functions: 1st, It allows the Moose to work while Switcher is active. 2nd, As the Startup application, it installs the Moose automatically. 3rd, It sets Moose parameters like Rate, Pitch, Delay, etc. 4th, It has a rudimentary ability to add phrases to "Moose Phrases". About ResEdit: ResEdit is a powerful Resource Editor (version 1.1d3) from Apple that is useful for changing Moose Phrases, and making applications talk, (and many other things too.) Although newer versions of ResEdit are likely available, the version on this disk has special "templates" (TMPLs) for editing the Moose's talking resources... (more on this below). If you want to use a newer ResEdit version, be sure to move these TMPLs into your version. (Just the MooD,MooA,MooM templates need be moved.) How to change the phrases: Although simple programs like "Moose Frazer" (and "SwitchMoose") can add phrases, for complete control, using ResEdit is best. Detailed instructions are available in a separate document, but here is a simple review of how to use ResEdit to change phrases. - In ResEdit, open the file "Moose Phrases" (by double clicking on it.) - A list of the resources will appear. (There may be only 1 kind.) - Double click on the 'STR#' type, and see the different names available. "Pauses" get said during delays. Open up the "Pauses", and you will see a list of phoneme strings. (These are the strings you will be changing.) - Using the SpeechTester DA, you can type in text, and see it converted to phonemes, and you can Copy the phonemes, ready to be pasted. - Editing Moose Phrases again, To add room for more phrases, click on a "*****" line, and choose "New". (This creates room for a new string) Then paste a phrase into the new string. -Continue this process till you run out of ideas. Then Close and Save it. How to make applications talk: The Moose has a special new ability. You can add resources into almost any application. The Moose will check to see if the resources are present, and if so, will use them to determine how to talk. There is an Installer script for Finder 5.5 and Finder 4.1, which installs these resources automatically. In ResEdit, you can then edit the data, and/or copy and move these resources into other applications. The technical details about these resources is described below. Skip to the next topic if you wish. I hope other interested people will create resources (and installer scripts) for making other applications talk as well. (Samples of all needed resources are available in the Finder on this disk) Put a 'Moos' resource in the application (Set ID=0. This contains code that patches things to do the talking.) For Menus, add a 'MooM' resource, For Alerts, add a 'MooA' resource. For Dialogs, add a 'MooD' resource. (These resources, if present, must have ID=0. They will contain the editable data that you provide which tells how to speak things.) Add a 'STR#' resource (any ID) to hold the new phrases you may create. The tools you need are: ResEdit, the Moose, and the Speech Tester DA. In ResEdit, you can open your application, and inspect it's ALRTs, DLOGs, and MENUs. (Its fun to change these, but that's another story) To begin, add the Moos,MooD,MooA,MooM ± STR# resources to your target application, by copying them out of the Finder. (Eg: Open Finder, Open 'Moos', Open ID=0, Copy, Close windows, Open Target application, "New" Moos, Paste, Close windows.) Create a "New" STR#, with any ID, no need to copy from elsewhere. Editing the MooM,MooA,MooDs in turn: (This requires that your version of ResEdit has the proper TMPLs or "Editing Templates" in it. The TMPLs give names to the various data fields that you will be editing. A brief description of editing these fields is given below:) - Record the ID of the STR# which will hold phoneme phrases. - "Translate unmatched", if set to "1", means the Moose will attempt to translate any MENUs,ALRTs,DLOGs, that you haven't explicitly defined. (If left blank, no translating done). (for ALRTs and DLOGs, a number >0 specifies the n'th _TextBox will be translated... this requires some experimentation for some DLOGs.) - Click on the "*****" and choose "New" each time you want to create a new record for each MENU,ALRT,DLOG. - Suppose you created a New MENU record. Heres how to edit it. - Enter the ID of the MENU. (Eg, 1 is usually the apple menu). - Another "Translate unmatched" here only applies to non-defined menu items from this MENU ID only. - Now, each MENU has items, and you may want to specify data about how to speak a few of these. So for each item that needs specifying, Click on the "-----", and choose "New" to make a new item record. - Enter the Item #. Eg, in the 1st MENU, #1 item usually says "About this program", so enter 1. - Translate?, if 1 tells the Moose to try to translate the item. This is useful for items that change text. If 0, then you have to provide specific phrases below. - QuickTalk?, if 1 tells the Moose to speak right away (like before a program gets a chance to quit). Otherwise, the Moose waits till nothing else is happening before speaking. - Item if Checked? If a number is entered here, and the current MENU item is checked, the data from a different item record will be used for talking instead. - Now, for any item, you can provide zero-to-many phrases. (providing zero is a way to exclude an item from being spoken, when everything else gets said by default. If many, one is chosen randomly.) - To make a phrase, you use the SpeechTester DA. Type in text, and have it be changed into phonemes. Edit the phonemes till they sound right, then Select and Copy the phonemes. - To save the phrase, open the STR# resource, Click on the "*****" and choose "New". Then Paste the phonemes in the new spot. Remember the string number. (By now there are different windows all over the screen. You have to return to the MooM window, to record the number of the string you just created.) - Click on the "+++++" in the "Available Phrases" list, Choose New, then type in the number of the new string you created. - At this point, at the of your 'MooM' resource, you see: +++++ <- Click here then add New string numbers. or ----- <- Click here then add New item records, or ***** <- Click here then add New MENU records. About the source code: All of the source code for the various Desk Accessories and utilities is provided on the source code disk. The Talking Moose Desk Accessory is written entirely in Assembly language. This makes it pretty much incomprehensible to non-technical people. (Also note that it is MDS format, and due to assembler problems, I've been using the MDS assembler inside the Mac C compiler (v5.02). Feel free to make changes or improvements to the Moose and utilities. About the Pascal interface: The new Moose contains all the features of the original MacinTalk interface, plus all the Moose's extra abilities. Pascal programmers can include some "interface" code in their programs, and make direct calls to the Moose. For example, there are Pascal routines to Install the Moose; set rate,pitch,etc; to translate text into phonemes; to ask the Moose to speak something... plus much more. Potential Problems: Not enough SysHeap room. If this happens, use FEdit to increase the allotted space for the System Heap on your startup disk. Files not found. "MacinTalk" and "Moose Phrases" should be located in the System Folder of any System disk. (P.S. there is a new "Moose Phrases" file, and some new Moose features won't work with the old file.) You shouldn't put "talking resources" inside ResEdit, because ResEdit fails to Exit normally... causing a crash in the next application. (It zeros the "IAZNotify" address, for technical people who understand this.) The "talking resources" are disabled when running under Switcher. I have heard that all MacinTalk programs do not (or did not) work on Hyperdrive-equipped Macs. I've also heard that MacinTalk doesn't work on the new Macintosh IIs. (Thus the Moose won't work either.) There still seems to be problems with the Moose v1.2 when run on System 4.1. I am working (slowly) to fix these... any advice is appreciated. If you encounter other situations where the Moose doesn't fully work, (like when running "Stepping Outª"), please let me know... possibly by sending a disk with the offending setup. Fancy things you can do: Using ExceptionEdit, you can create an exception file, and then with ResEdit, you can copy the RULZ resource, and paste it into "Moose Phrases". Then all applications will be able to access it. You can add a greater assortment of phrases to the talking Finder resources, using ResEdit and the SpeechTester D.A. You'll have to learn how to use ResEdit, and learn what the fields of the TMPLs mean.