2. How To Read This Document

This document is a literate program, meaning that both documentation and code are melted together in one format (in this case, an org file). With any luck, the words thrown around here will provide a coherent explanation for the overall program structure.

This text is well suited for an audience that wishes to understand how GestVM the Program fundamentally works. Unfortunately, for those who want to learn how actually use GestVM, this may be the wrong place to start. Hopefully, some tutorials and example files have been included in the distribution.

This document was written using the literate programming features in org-mode, and tangled to C code with a custom tangler. Emacs is a convenient way to browse this document as it folds everything up into sections. In an HTML version of this document, making use of the table of contents may be a helpful map.

The structure of this document was written with the idea that it could be mostly read top to bottom. Some sections, such as 5. Structs and 4. Tangled Files, are more code than words. These are necessary for the program, but do not need as much time.

GestVM is largely a DSP algorithm. Reading through 3. Signal Flow will provide a good overall understanding for how the program works. The computation of a sample can be found in 7. Top-Level Computation. Starting there at gestvm_tick and working downwards may be a fruitful path. Other sections will go through these in more detail.

The key DSP algorithm used here is known as the rephasor, and this algorithm is implemented and explained in 8. The General Rephasor Algorithm. This algorithm comes from the Sndkit collection, where there is a more in-depth explanation.

The interface to GestVM is via the Uxn virtual machine. This is all explained in 11. Uxn Evaluator. Note that an explanation of the Uxn VM itself is beyond the scope of this document.



prev | home | next