Preface
Welcome to the Mapping and Visualization with SuperCollider book. As of this writing, SuperCollider is almost two decades old and has already proven itself as a solid, state-of-the-art environment for all sorts of audio-oriented applications. Albeit, SuperCollider is primarily known as a sound synthesis environment; it does feature a powerful graphics engine and, to a certain extent, is an excellent choice for prototyping and implementing visual and audiovisual applications. This may come as a surprise to some, given that there does exist an abundance of specialized environments and frameworks out there; many of them are also more featured and optimized than SuperCollider will ever be. Nonetheless, and at least as far as visualization is concerned, the latter constitutes a very rational choice, as it exhibits several advantages over the former. Namely, it features one of the most powerful sound synthesis engines available on the planet; it has a powerful interpreted, dynamic, object-oriented, and quite easy-to-learn high-level programming language; it has built-in features to facilitate algorithmic music composition, which can easily integrate with computer graphics; it is easy to learn and use compared to other specialized frameworks; and it is relatively fast and stable.
This book pinpoints mapping and visualization with SuperCollider. It elaborates both fundamental and more advanced techniques and illustrates how SuperCollider can offer solutions to a wide range of typical mapping/visualization scenarios, varying from very rudimentary to highly complex ones. The explicit focus herein is mapping and visualization, yet a wide range of prerequisites, or merely relevant to the latter topics are discussed; these include sonification, generative art, statistical analysis, communication protocols, automata, and neural networks. These are all approached practically and from a hands-on perspective through numerous examples. Notwithstanding, theoretical issues are also discussed whenever appropriate, so that the reader develops a more in-depth understanding of the various topics. Throughout this book, the importance of object modeling is explicitly highlighted too, and software architecture itself is elaborated upon. In general, these are very important aspects of programming and given the minimal, or even nonexistent, presence of relevant resources regarding SuperCollider. This book aspires to be interesting to all seasoned and causal SuperCollider users.