Catnap Studio logo

PAMELA - Lipsynch utility for Moho

Python-based Accessory for Moho Enhanced Lipsynch Activities

What it does

PAMELA helps you to take a WAV sound file (containing speech) and create a Moho switch data file, which (in Moho) controls the sequence of visible mouth shapes to give the appearance of speech - i.e. if you're animating with Lost Marble's Moho, PAMELA helps you get your characters talking.

For those familiar with Magpie, it's a basically like an amateur version of that excellent program, specifically for Moho users, written by a hobbyist programmer.

PAMELA also provides automatic breakdown of words into phonemes to increase productivity.

PAMELA is currently for Windows machines only - a Mac port is underway (thanks, Rich!)

recorded sound


Moho switch layers
Hello World !
Lipsynched animation

Of course, you could also use it for controlling layers of a character's eyes, limbs, hands, ears and tail, etc., synched to speech, music, or some other sound file.

Where to get it

Right here :

Important installation note : - the Windows binary executables are designed to be unzipped to C:\, preserving the folder names and structure. If you unzip to another location, you will need to edit the file PAMELA.prf in the Pamela_beta02\Pamela folder to point to the location of the sample.mot file, and you will also need to edit the sample projects (the files with a filetype extension of pam) in the Pamela_beta02\samples folder to point to the location of the sample WAV file.

Use an ASCII text editor - if you don't know what an ASCII text editor is, or you don't know the difference between a text editor and a word processor, or you don't know how to save ASCII text from your word processor, then use the Windows Notepad accessory (not Wordpad) - Notepad is an ASCII text editor.

  • (1,370 kB) - fix for crash when dragging on canvas background without a chosen phoneme.
    Extract (and replace) the files into your PAMELA binary folder, the folder with PAMELA.exe in it (C:\Pamela_beta03\bin on a standard install)

  • Pamela_03_install.exe - proper installation file for Windows (6.2 MB)

  • - source files and preview images (place in a "preview" subfolder) - about 80 kB. Requires CMU dictionaries, below, and an installed copy of the Snack Sound Toolkit and Python 2.1 or greater
  • (3.4 MB pronunciation and soundex dictionaries in BSDDB 1x format, using Carnegie-Mellon University phonetic breakdown)

What it costs

This software is freeware and open source, for personal, educational, corporate, and/or commercial use. Due to the GPL license of the sound toolkit used, PAMELA is also covered by the GPL license.

I do have a few requests :

  • If you have Python source code bug fixes or feature enhancement patches for PAMELA, send 'em to me and I'll add 'em in. Naturally, you'll get credit/blame 8-) in the documentation and source. (Feature requests that I have to write the code for, see below under Words of Warning and also see Future Plans)
  • If you want to port it to BeOS, be my guest
  • Please don't put it up for download on other web sites, include a link to this web page instead - as features get added and bugs get fixed, I'd prefer it not to end up with multiple out-of-date versions scattered all over the place.
  • If you include it on book or magazine CD-ROMS, with commercial software, etc., please make it quite clear that this is a separate freeware product and not part of any commercial package (e.g. not an official part of Lost Marble Moho - I don't want them getting blamed for my bugs), and provide the address of this web page for updates and source code availability.

  • Yes, you can include PAMELA screenshots in any reviews, software links pages, tutorials, etc.


PAMELA wouldn't be possible without :
  • Moho, the fun and inexpensive 2D vector-based animation software (with bones and layers), by Mike Clifton and others at Lost Marble (special thanks for the Switch layers in particular, and making Switch data an ASCII file)
  • Python, a wonderful and surprisingly fun programming language by Guido van Rossum, with contributions by others too numerous to mention (although a special thanks to Tim Peters for his varied expositions, contributions, and wit, given forth in comp.lang.python, and to Fredrik Lundh particularly for his Tkinter contributions in comp.lang.python).
  • Tkinter, a Python GUI toolkit based on Tk/Tcl - included as an optional install with Windows/Mac binary installations of Python.
  • The Snack Sound Toolkit, a fantastic Tcl-based sound manipulation toolkit by Kåre Sjölander
  • Tkinter documentation by Fredrik Lundh
  • Tkinter book by John Grayson
  • Carnegie-Mellon University, for providing the pronunciation dictionary
  • Thomas Heller, the PY2EXE author, so I can provide a Windows executable version for those who don't wish to dabble in scripting and interpreters
  • Ken F. Morton's Lipsync software (now incorporated into Animation:Master) which, along with Magpie, provided inspiration for the concept of PAMELA
  • The support of my lovely wife (also, by some strange coincidence, named Pamela), who cooked me meals and made sure I ate them while I was writing this software.

    Licences and copyrights

How to use it

Errm, you might have missed the note on the table of contents above - the how to use it page is here

Words of warning

Limitations - err, other features

  • PAMELA has no warranties, no guarantees of fitness for any particular task, etc. - use at your own risk.
  • PAMELA has no animation output, and you'll have to write your own export code if you want output support for Maya/Lightwave/Animation:Master/etc., only Moho Switch layer data files are currently exported.
  • PAMELA support is on an ad hoc, as-time-permits, after-hours, as-I-feel-like-it, hobbyist-only basis.
  • Beta testing and bug fixing so far has been extremely limited.
  • It works on my PC - if it doesn't work on your machine, sorry, but that's your problem - the source is available, send me a patch when you've found the problem.
  • Feature requests and bug reports will be accepted, but may not get high priority.

  • Please note : the Snack Sound Toolkit uses the standard viral GPL license, so that makes this version of PAMELA GPLed too - this means you can't distribute a closed-source derivation of any of this.

If any of the above worries you, don't use PAMELA, go register the excellent Magpie (or Magpie Pro) lipsynch utility intead. (Somewhat more expensive, but a lot more established, professional, tested, flexible, and supported. Customisable output. Evaluation version available for download.)
Note : Catnap Studio and Myles are not associated with Magpie in any way.

If you own Animation:Master 8.x or better, you can use its phonetic breakdown system instead, and use the utility Motley to convert the dopesheet action into a Moho Switch layer data file.

History and planned development

  • Version 0.1 (first public beta) released on 07 December 2001 (Australian EST), and announced on the Yahoo Group for Moho users at
    What's new: everything
  • Version 0.2 (second public beta) released on 12 March 2002 (Australian EST), and announced on the Yahoo Group for Moho users at
    • import Switch data files (assumes ".dat" file name extension) - but see for more about MOT files
    • optional simplified phonetic breakdown with reduced phonemes
    • Spanish phonetic breakdown (and simplified breakdown)
    • image preview when a phoneme is selected on the canvas
    • image sequence preview with phoneme-by-phoneme sound playback (somewhat stuttery)
    • fixed : phoneme insertion or replacement
    • The image preview has fairly rigid requirements.
    • You can provide your own preview images - size is not vital, but I'd recommend 120x120 pixels.
    • All images should be the same size.
    • The images must be named (case-sensitive names) according to the output phoneme names in the mot file currently being used, and must be in the GIF format with an extension of ".gif" (lower-case).
    • All images must be in the "preview" folder underneath the folder containing the main Pamela executable (or main Python file).
    • There must be an image named "blank.gif" in the images.
    • I have provided a set of preview images for the modified Preston phoneme set I currently use, which is represented in the sample files provided.
  • Version 0.21 released on 16 March 2002
    • The canvas now resizes horizontally with the window (requested by David Knight)
    • The canvas now starts at a larger size horizontally
    • Fixed : changing/editing a phoneme wasn't exported or saved.
    • Fixed : loading the tutorial from program (help menu) should now work (on Windows, anyway)
    • Changed : some of the internal event handling, no visible user effect, but hopefully better memory usage
    • Changed : if the preferences file or translation file cannot be found, now provides an error message before exiting
  • Version 0.3 released on 4 April 2002
    • Added pause indicator (underscore character, i.e. "_") to improve automatic matching You can now insert an underscore in the sentence to be phonetically broken down - this will insert a space before the next phoneme, equivalent to the space taken by a single phoneme (according to the Preferences setting of Frames Per Phoneme)
      Treat the underscore as a word in itself
      e.g. hello _ world becomes HH EH0 L OW1 (pause) W ER1 L D
      Note : multiple underscores must have spaces between them
      e.g. hello _ _ world
    • Removed automatic breakdown when preferences changed
    • Started moving text strings to single file ( - enabling possible future language customisation.
    • Phoneme example usage help available in phoneme selection boxes
    • Phoneme list window with usage examples, now available under Help menu
    • New toolbar in the GUI
      • Preview button
      • phoneme insertion
      • MOT file selection (used for preview feature, Moho Switch file importing, Switch export translation)
    • Moved some code from to - no visible change to users
    • Windows binary version now also available as a proper installer
    • Windows binary version now comes with a path fixing utility (it modifies the included sample files) if the user chooses not to install PAMELA folder into C:\Pamela_beta03 (the default location)
  • Version 0.31 released on 20 September 2003
    • Fix for crashing when dragging (no phoneme chosen) on canvas background.

Future plans :

  • utility to add and modify dictionary words (in both pronunciation and soundex dictionaries)
  • change internal setup for testing and debugging
  • cleanup code, add documentation and comments into the code for other programmers
  • Maybe - allow for simplified phoneme set without vowel stresses
  • Maybe - keep track of modification status, ask user about saving when exiting before changes saved

Contact Myles at


This is a personal page published by the author. The ideas and information expressed on it have not been approved or authorised by Monash University either explicitly or impliedly. In no event shall Monash University be liable for any damages whatsoever resulting from any action arising in connection with the use of this information or its publication, including any action for infringement of copyright or defamation.