![max msp tutorial max msp tutorial](https://www.researchgate.net/profile/Clement-Poncelet/publication/313485808/figure/fig20/AS:654106062491654@1532962446424/Antescofo-reference-MAX-MSP-patch.png)
Gen patchers can be immediately exported as C++ code to embed within other applications or plugins. The algorithms you write in gen~ are not stuck in that language.
MAX MSP TUTORIAL HOW TO
Externals are "black boxes" that cannot be easily edited by other users, unless you a) share the source code and b) they also learn how to write externals whereas a gen~ patcher can always be "cracked open" to see how it works, maybe make modifications, improvements or extensions.With gen~ patching, compilation is almost instantaneous as you work, with errors reported directly in the patcher. Writing externals is laboriously slow - you have to manually recompile and reload after each edit, and errors appear in the compiler rather than in Max.In contrast, a gen~ patcher is just another patcher and it works on both platforms.
MAX MSP TUTORIAL WINDOWS
It also means compiling the externals separately for OSX and Windows (neither are straightforward), and from time to time re-compiling them as operating systems are replaced.
![max msp tutorial max msp tutorial](https://s3.manualzz.com/store/data/028198504_1-a8dfb1d6af5f7005f56b8ab6f7014b78-595x842.png)
Since the patcher operates per sample, rather than per block, it is much easier to implement algorithms that require sample-accurate timing, including microsonic techniques such as granular and waveset synthesis.You can write things in gen~ that you couldn't write in MSP. Comparative benefits increase as gen~ patchers get larger.Moreover, objects can be specialized according to the patcher context, and thus flexibilities that are necessary in MSP can be bypassed to generate leaner code.Since the entire patcher is compiled at once, many optimizations can be applied to simplify or make the generated code more performant.The whole patcher operates per-sample, in fast memory.
![max msp tutorial max msp tutorial](https://cdn.shopify.com/s/files/1/0520/3669/8292/articles/IMG_13022_laptop_TB_1500px-720x415-720x415_720x.jpg)
In gen~, since the entire patcher is compiled at once, so there is no need to use blocks. These blocks have to be stored in slow memory and passed between objects.
![max msp tutorial max msp tutorial](https://i.ytimg.com/vi/8OhOC6rZC9Q/maxresdefault.jpg)
MSP objects operate over blocks of samples, rather than single samples, to reduce the overhead of interpreting the flow between objects in a patcher at samplerate.Gen~ patchers can be more efficient than MSP. In practice, this leads to a number of really nice benefits. This happens when the patcher is loaded, and at every edit.
MAX MSP TUTORIAL PATCH
In a gen~ patch however, the objects of a patcher are not implemented or instantiated as such instead the patcher as a whole is compiled at once, as if it were a single object, into efficient native binary code. Longer version: In a Max patch, each object represents an instance of a library that was implemented (as C code compiled to binary form) before Max was even launched and the flow of data between objects in a patcher is managed by Max's runtime and scheduler. Short version: You can thus think of editing a gen~ patcher as rewriting the internals of an MSP object, while it is running. takes its name from its underlying implementation: code generation.