Book Image

Multimedia Programming Using Max/MSP and TouchDesigner

By : Patrik Lechner
Book Image

Multimedia Programming Using Max/MSP and TouchDesigner

By: Patrik Lechner

Overview of this book

Max 6 and TouchDesigner are both high-level visual programming languages based on the metaphor of connecting computational objects with patch cords. This guide will teach you how to design and build high-quality audio-visual systems in Max 6 and TouchDesigner, giving you competence in both designing and using these real-time systems. In the first few chapters, you will learn the basics of designing tools to generate audio-visual experiences through easy-to-follow instructions aimed at beginners and intermediate. Then, we combine tools such as Gen, Jitter, and TouchDesigner to work along with Max 6 to create 2D and 3D visualizations, this book provides you with tutorials based on creating generative art synchronized to audio. By the end of the book, you will be able to design and structure highly interactive, real-time systems.
Table of Contents (19 chapters)
Multimedia Programming Using Max/MSP and TouchDesigner
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Introducing Gen


Gen can offer us the following features:

  • Performance improvements over regular patches

  • Single sample feedback

  • Text-based coding inside a visual environment

On the other hand, we are constrained to a limited set of objects, which is one of the reasons we don't do everything inside Gen. Also, there are four versions of Gen, which are as follows:

  • gen~: For audio/signal processing

  • jit.gen: For general Jitter matrix processing on the CPU

  • jit.pix: For the four-plane image matrix processing on the CPU

  • jit.gl.pix: For image/texture processing on the GPU (shader programming)

Another reason for not using Gen all the time is that gen~, for example, can't deal with Jitter matrices; it can only deal with audio. So we can imagine each of them living in their own little domain, processing only audio, matrices, or textures. Also, it might be wise to not reinvent the wheel all the time. If we need a low-passed phasor~ object, let's just use [phasor~] and [onepole] instead of building a phasor...