Table of Contents

1 Introduction


This manual is for Msc-generator (version 8.6.1, 2 July 2024), a tool to draw various charts from a textual description.

Please visit to download the latest version.

Msc-generator is a program that parses textual chart descriptions and produces graphical output in a variety of file formats, or can embed charts in documents, such as Word or PowerPoint. It currently supports three kinds of charts: Message Sequence Charts (MSCs, this is where the name of the tool comes from); general graphs in the DOT language of graphviz; and experimental Block Diagrams.

Message Sequence Charts are a way of representing entities and message interactions between those entities over some time period. MSCs are often used in combination with SDL. MSCs are popular in telecom and data networks and standards to specify how protocols operate. MSCs need not be complicated to create or use. Msc-generator aims to provide a simple text language that is clear to create, edit and understand, and which can be transformed into images. Msc-generator is a potential alternative to mouse-based editing tools, such as Microsoft Visio.

The signalling chart part of msc-generator is heavily extended and completely rewritten version of the 0.08 version of Michael C McTernan’s mscgen. The original tool was more geared towards describing interprocess communication, this version is more geared towards networking. Msc-generator has a number of enhancements compared to mscgen. The command-line syntax of Msc-generator is compatible to that of mscgen, so any tool integrated with mscgen (such as Doxygen) can also be used with Msc-generator. Since version 4.5 Msc-generator also contains an mscgen compatibility mode, which aims to interpret mscgen chart descriptions in a fully backwards compatible manner. See Mscgen Backwards Compatibility.

The graph part of msc-generator uses the graphviz library to lay out graphs. It uses the DOT language to describe charts, with a few extensions.

Block Diagrams use a language similar in logic to the above two. The language aims to capture the relation among blocks to lay them out in relation to one another.

Msc-generator builds on lex, yacc, graphviz, glpk, cairo and ImGui. A Linux/Mac and Windows port is maintained. The Windows version is written using MFC. There is a GUI for Linux/Mac based on ImGui (called CLI GUI also available on Windows, if you prefer that better than the MFC GUI). The reference documentation of the source code of Msc-generator itself can be found at