Most information on how the program works is in its manual and on http://www.praat.org.
You need the Praat source code only in the following cases:
- you want to extend Praat’s functionality by adding C or C++ code to it; or
- you want to understand or reuse Praat’s source code; or
- you want to compile Praat for a computer for which we do not provide binary executables, e.g. Linux for non-Intel computers, FreeBSD, HP-UX, SGI, or SPARC Solaris.
Before trying to dive into Praat’s source code, you should be familiar with the working of the Praat program and with writing Praat scripts. The Praat program can be downloaded from http://www.praat.org.
All of the code is available under the GNU General Public License. Of course, any improvements are welcomed by the authors.
To download the latest source code of Praat, click on one of the zip or tar.gz archives at the latest release or at any later change.
On most computers you can unpack the zip file by double-clicking. If you prefer to try the tar.gz file instead, drop it on StuffIt Expander (on Windows), double-click it (on Macintosh), or use gunzip
and tar xvf
(on Unix).
First make sure that the source code can be compiled as is. Then add your own buttons by editing main/main_Praat.cpp
or fon/praat_Fon.cpp
. Consult the manual page on Programming.
Most of the source code is written in C++, but some parts are written in C.
The code requires that your compiler supports C99 and C++11 (for e.g. char32_t
).
Extract the xcodeproj64.zip or xcodeproj32.zip file from the latest release (depending on whether you want to compile the 64-bit or the 32-bit edition) into the directory that contains sys
, fon
, dwtools
and so on. Then open the project praat32.xcodeproj
or praat64.xcodeproj
in Xcode and choose Build or Run. The project contains the target praat_mac
(for MacOS X, on Intel processors). If you get an error message like “Code Signing Identity xxx does not match any valid, non-expired, code-signing certificate in your keychain”, then select the target praat_mac
, go to Info → Build, and switch “Code Signing Identity” to “Don’t Code Sign”, or sign with your own certificate if you have one as a registered Apple developer.
Install libgtk2.0-dev
(and its dependencies) and libasound2-dev
. Then go to the sources directory and type
cp makefiles/makefile.defs.linux.alsa ./makefile.defs
mv external/portaudio external/portaudio2014
mv external/portaudio2007 external/portaudio
Then type make
to build the program. One may have to kill jackd
or artsd
to get audio to function. If your Unix isn’t Linux, you may have to edit the library names in the makefile (you may need pthread, gtk-x11-2.0, gdk-x11-2.0, atk-1.0, pangoft2-1.0, gdk_pixbuf-2.0, m, pangocairo-1.0, cairo, gio-2.0, pango-1.0, freetype, fontconfig, gobject-2.0, gmodule-2.0, gthread-2.0, rt, glib-2.0, asound).
When compiling Praat on an external supercomputer or so, you will not have sound. If you do have libgtk2.0-dev
(and its dependencies), do
cp makefiles/makefile.defs.linux.silent ./makefile.defs
Then type make
to build the program. If your Unix isn’t Linux, you may have to edit the library names in the makefile (you may need pthread, gtk-x11-2.0, gdk-x11-2.0, atk-1.0, pangoft2-1.0, gdk_pixbuf-2.0, m, pangocairo-1.0, cairo, gio-2.0, pango-1.0, freetype, fontconfig, gobject-2.0, gmodule-2.0, gthread-2.0, rt, glib-2.0).
Use the MinGW compiler, perhaps on a Mac or Linux computer, to avoid any chance for viruses. You can find toolchains for 32 and 64 bits here (look for Automated Builds). Install the GDI+ headers and the GDI+ library (32-bit; for 64-bit Windows just extract a GDI+ DLL from somewhere). Then copy the file makefiles/makefile.defs.mingw32
or makefiles/makefile.defs.mingw64
to the sources directory (i.e. where makefile
is) and rename it to makefile.defs
. Then go to the sources directory and type make
.
If you get error messages about __stosb
and the like, get rid of Data
in winnt.h
and/or intrin-impl.h
and/or intrin_mac.h
(rename to DataXXX
or so), because of name clash with sys/Data.h
.
The meaning of the names of binary files uploaded on GitHub is as follows:
praatXXXX_win64.zip
: zipped executable for 64-bit Windows (XP and higher)praatXXXX_win32.zip
: zipped executable for 32-bit Windows (XP and higher)praatconXXXX_win64.zip
: zipped executable for 64-bit Windows, console editionpraatconXXXX_win32.zip
: zipped executable for 32-bit Windows, console editionpraatXXXX_win98.zip
: zipped executable for Windows 98praatXXXX_win98sit.exe
: self-extracting StuffIt archive with executable for Windows 98
praatXXXX_mac64.dmg
: disk image with executable for 64-bit Intel Macs (Cocoa)praatXXXX_mac32.dmg
: disk image with executable for 32-bit Intel Macs (Carbon)praatXXXX_xcodeproj64.zip
: zipped Xcode project file for the 64-bit edition (Cocoa)praatXXXX_xcodeproj32.zip
: zipped Xcode project file for the 32-bit edition (Carbon)praatXXXX_macU.dmg
: disk image with universal executable for (32-bit) PPC and Intel Macs (Carbon)praatXXXX_macU.sit
: StuffIt archive with universal executable for (32-bit) PPC and Intel Macs (Carbon)praatXXXX_macU.zip
: zipped universal executable for (32-bit) PPC and Intel Macs (Carbon)praatXXXX_macX.zip
: zipped executable for MacOS X (PPC)praatXXXX_mac9.sit
: StuffIt archive with executable for MacOS 9praatXXXX_mac9.zip
: zipped executable for MacOS 9praatXXXX_mac7.sit
: StuffIt archive with executable for MacOS 7
praatXXXX_linux64.tar.gz
: gzipped tarred executable for 64-bit LinuxpraatXXXX_linux32.tar.gz
: gzipped tarred executable for 32-bit LinuxpraatXXXX_solaris.tar.gz
: gzipped tarred executable for Solaris