TkScript is a portable and free open source "glue" script language for C / C++ frameworks.
It is mainly designed for multithreaded audio / graphics / UI applications, and text processing tools.
Software written in TkScript includes
- The Synergy MIDI sequencer
- The Eureka DAW / plugin host (work in progress)
- Several ("indie") 2D / 3D games
- Proprietary, commercial software (e.g. in-house graphics design tools, log-file parsers, code generators, ..)
- Numerous smaller utilities (like the markdown document generator used for this page)
TkScript is accompanied by a set of add-on plugins / libraries that provide bindings for
TkScript has been tested on the following platforms:
- x86 / x64 Windows (2000 / XP / 7 / 8 / 10)
- x86 / x64 Linux
- x86 MacOSX (command line only)
- M68K AmigaOS 3.x (a while ago, CLI-only)
- ARM Linux (e.g. Open Pandora, Raspberry Pi)
TkScript is distributed under the terms of the GNU General Public License (GPLv2).
The add-on plugins and libraries are distributed under the terms of the GNU Lesser (library) General Public License (LGPLv2), or the MIT / BSD licenses (see plugin / library source for details).
Software written in TkScript may use any license (FOSS, closed source, ..).
The latest precompiled binaries for 64bit Windows 10 are here: tks.zip
The latest source-code packages are here:
- yac, yingtest
- tkmath, tkoldmath, tkgmp
- tksdl_net, tkbluetooth
- svg_loader, tktriangulate
- tkportaudio, tkportaudio_alsa_async, tkportaudio_oss
- tkvst, tksampler, tksamplechain, tksampleedit
- tkmidi, tkmidi_alsa, tkmidipipe
How to build:
- The first three packages (source, build, yac) are mandatory for building a command-line version of
- The remaining packages are optional.
- Edit the toplevel makefile (
makefile.msvc) to choose which additional plugins will be built.
. setenv_linux.sh or
. setenv_msvc.sh to set up cross compiling / target platform / include+lib paths.
- It is recommended to set up a shell alias for
make invocation, e.g.
alias m="make -j20 -f makefile.msvc"
Requirements / Prerequisites:
- The Windows build environment requires MSYS2 and the Microsoft Visual Studio compiler, e.g. the free-as-in-beer Community Edition.
- The Linux build environment requires GCC / G++, GNU make, and GNU Bash.
The plugin bindings use the
YaC (Yet another Component object model) interface, and the
YInG interface generator.
To rebuild the bindings for a specific module, run
$ m yac
in the plugin (or tks-source) directory.
For your amusement, some of the older stuff can be downloaded here:
- retrovaders2 (a Space Invaders like game, from 2001)
- loadmd2 (a loader / viewer for Quake2 models, from 2002)
- equalize_it (a SID player and collection of C64 tunes, from 2003)
- gkraft (2D cave flyer, from 2004)
- racer (3D racing game, from 2008)
- jumpy (2D jump'n'run, from 2010)
- tequila (a classic Amiga500 demo effect ported to OpenGL, from 2010)
for language reference guide.
For historical purposes, here
are the old changelogs from 2002 - 2015.