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

Sample-accurate sequencing


As you know, the Max scheduler does not compute at the sample rate. Also, we know that we have to be careful when adjusting certain parameters (vector size, overdrive, scheduler in audio interrupt, and so on) that affect the timing accuracy of our sequencing. However, there is a different way to ensure timing accuracy: doing all the computations at the signal rate. So the whole chain from timing generation to sequencing up to the audio synthesis/playback should be at the signal rate. As soon as we go back to the Max domain, we lose the increased accuracy we ensured by working in the signal domain.

Let's look at a very simple example:

As you see, we are making a phasor signal, controlling a selector, and going directly into our synthesis algorithm (which is completely in the signal domain too). Of course, we can generate or even modulate the values to be sequenced in the Max domain, and of course we can use the Max domain to display the current output. Now, this is...