Audio Programming Book

Total Page:16

File Type:pdf, Size:1020Kb

Audio Programming Book The Audio Programming Book edited by Richard Boulanger and Victor Lazzarini foreword by Max V. Mathews The MIT Press Cambridge, Massachusetts London, England ( 2010 Massachusetts Institute of Technology All rights reserved. No part of this book may be reproduced in any form by any electronic or mechanical means (including photocopying, recording, or information storage and retrieval) without permission in writing from the publisher. For information about quantity discounts, email [email protected]. Set in Stone Serif and Stone Sans on 3B2 by Asco Typesetters, Hong Kong. Printed and bound in the United States of America. Library of Congress Cataloging-in-Publication Data [to come] 10987654321 The Audio Programming Book DVD Contents Continuations of the Printed Text Chapters 1 Delay Lines and Noise Generation Richard Dobson 2 Digital Filters Richard Dobson 3 From C to C++ Richard Dobson 4 Audio Processing in C++ Richard Dobson 5 Audio Plugins in C++ Richard Dobson 6 APB & DVD Chapter Summaries: An Annotated Outline Richard Dobson 7 Continuing Down The Audio Stream Gabriel Maldonado 8 Working with Control Signals to Build a SoftSynth with a Cross-Platform GUI Gabriel Maldonado 9 More VST Plug-ins Victor Lazzarini 10 Algorithmic Patch Design for Synmod Eric Lyon 11 Algorithmic Sound Design Eric Lyon Foundations 12 Compiling Software in the OS X Terminal – UNIX-style Joo Won Park 13 Building Linux Audio Applications From Source: A User's Guide David L. Phillips 14 A Guide To Linux Audio Applications David L. Phillips MIDI Programming 15 The MIDI Spec and Programming with PortMIDI Tim Lukens 16 A MIDI-based Algorithmic Composition Library John ffitch Synthesis and Signal Processing Techniques 17 Dynamic Range Processing Andrés Cabrera 18 Binaural Audio Processing: A Sample Application Brian Carty 19 Sound Manipulation Using Spectral Modeling Synthesis John Glover 20 Composing Noise Jaeho Chang Graphical User Interfaces for Audio Programs 21 Developing Music Software Interfaces Steven Yi 22 Graphical User Interfaces for Audio Programs using the Qt Toolkit Andrés Cabrera 23 The FilterResponse Graphical Filter Utility John ffitch Xcode-based Audio Application Tutorials 24 Converting Command Line Applications to Xcode Projects Jaeho Chang 25 Carbon Audio Programming for Mac OS X Allan Seago 26 Getting Started with Cocoa-based Application Programming Barry Threw 27 Objective-C and Cocoa Programming with Xcode Chen Sokolovsky 28 Audio Programming Basics in Xcode Taemin Cho Xcode-based Alternate Controller Programming 29 Alternate Controllers: Connecting to HID Devices in Cocoa Andrew Beck 30 Programming the Sudden Motion Sensor to Control Audio on the Mac Taemin Cho 31 A Video Controller of Audio in Xcode Taemin Cho Apple iPhone Audio Programming 32 A Real-time Spectral Processor for the iPhone Johannes Bochmann Apple Audio Unit Plug-ins from Csound Opcodes 33 Converting Csound Opcodes into Apple Audio Unit Plug-ins Jonathan Bailey 34 Waveshaping: from Csound to Cocoa Federico G. Saldarini The Csound5 API 35 Developing Audio Software with the Csound Host API Rory Walsh Microcontrollers 36 Embedded One-Bit Audio: Making a Microcontroller Sing Andrew Beck An Audio Programming Course for Electronic Musicians 37 Learning C with Csound Richard Boulanger and Jonathan Bailey 38 From Csound to Sound in C Richard Boulanger, Jonathan Bailey and Tim Lukens 39 Real-time MIDI Control and Audio Processing in C Richard Boulanger, Tim Lukens and Max Mathews 40 From the Command Line to the IDE: Audio Programming in Xcode Richard Boulanger 41 Wrapping It Up with Qt: Adding a GUI Richard Boulanger, Tim Lukens and Max Mathews The Audio Programming Glossary DVD Special Content The Audio Programming Book & DVD Source Code The Audio Programming Book & DVD Code QuickStart Guides Selections from The OLPC Sound Sample Archive Models, Tutorials and Compositions for Csound5 Audio Greetings from some of the Contributing Authors Essential Audio Apps: Audacity, GNUplot & AquaTerm Classic Computer Music Software and Source Code – MUSIC V Max V. Mathews – cmusic F. Richard Moore – Csound 1988 Barry L. Vercoe – Csound 1995 Barry L. Vercoe Current Computer Music Software and Source Code – Csound5 Barry Vercoe, Richard Boulanger, John ffitch, Victor Lazzarini, Michael Gogins, Richard Dobson, et al. – QuteCsound Andreas Cabrera – csound~ Davis Pyon – WinXound Stefano Bonetti – blue Steven Yi – Cecilia4 Jean Piché – Ounk Olivier Bélanger – pyo Olivier Bélanger – The Sound Object Library Victor Lazzarini .
Recommended publications
  • Computer Music
    THE OXFORD HANDBOOK OF COMPUTER MUSIC Edited by ROGER T. DEAN OXFORD UNIVERSITY PRESS OXFORD UNIVERSITY PRESS Oxford University Press, Inc., publishes works that further Oxford University's objective of excellence in research, scholarship, and education. Oxford New York Auckland Cape Town Dar es Salaam Hong Kong Karachi Kuala Lumpur Madrid Melbourne Mexico City Nairobi New Delhi Shanghai Taipei Toronto With offices in Argentina Austria Brazil Chile Czech Republic France Greece Guatemala Hungary Italy Japan Poland Portugal Singapore South Korea Switzerland Thailand Turkey Ukraine Vietnam Copyright © 2009 by Oxford University Press, Inc. First published as an Oxford University Press paperback ion Published by Oxford University Press, Inc. 198 Madison Avenue, New York, New York 10016 www.oup.com Oxford is a registered trademark of Oxford University Press All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior permission of Oxford University Press. Library of Congress Cataloging-in-Publication Data The Oxford handbook of computer music / edited by Roger T. Dean. p. cm. Includes bibliographical references and index. ISBN 978-0-19-979103-0 (alk. paper) i. Computer music—History and criticism. I. Dean, R. T. MI T 1.80.09 1009 i 1008046594 789.99 OXF tin Printed in the United Stares of America on acid-free paper CHAPTER 12 SENSOR-BASED MUSICAL INSTRUMENTS AND INTERACTIVE MUSIC ATAU TANAKA MUSICIANS, composers, and instrument builders have been fascinated by the expres- sive potential of electrical and electronic technologies since the advent of electricity itself.
    [Show full text]
  • 62 Years and Counting: MUSIC N and the Modular Revolution
    62 Years and Counting: MUSIC N and the Modular Revolution By Brian Lindgren MUSC 7660X - History of Electronic and Computer Music Fall 2019 24 December 2019 © Copyright 2020 Brian Lindgren Abstract. MUSIC N by Max Mathews had two profound impacts in the world of music ​ synthesis. The first was the implementation of modularity to ensure a flexibility as a tool for the user; with the introduction of the unit generator, the instrument and the compiler, composers had the building blocks to create an unlimited range of sounds. The second was the impact of this implementation in the modular analog synthesizers developed a few years later. While Jean-Claude Risset, a well known Mathews associate, asserts this, Mathews actually denies it. They both are correct in their perspectives. Introduction Over 76 years have passed since the invention of the first electronic general purpose computer,1 the ENIAC. Today, we carry computers in our pockets that can perform millions of times more calculations per second.2 With the amazing rate of change in computer technology, it's hard to imagine that any development of yesteryear could maintain a semblance of relevance today. However, in the world of music synthesis, the foundations that were laid six decades ago not only spawned a breadth of multifaceted innovation but continue to function as the bedrock of important digital applications used around the world today. Not only did a new modular approach implemented by its creator, Max Mathews, ensure that the MUSIC N lineage would continue to be useful in today’s world (in one of its descendents, Csound) but this approach also likely inspired the analog synthesizer engineers of the day, impacting their designs.
    [Show full text]
  • The Computational Attitude in Music Theory
    The Computational Attitude in Music Theory Eamonn Bell Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the Graduate School of Arts and Sciences COLUMBIA UNIVERSITY 2019 © 2019 Eamonn Bell All rights reserved ABSTRACT The Computational Attitude in Music Theory Eamonn Bell Music studies’s turn to computation during the twentieth century has engendered particular habits of thought about music, habits that remain in operation long after the music scholar has stepped away from the computer. The computational attitude is a way of thinking about music that is learned at the computer but can be applied away from it. It may be manifest in actual computer use, or in invocations of computationalism, a theory of mind whose influence on twentieth-century music theory is palpable. It may also be manifest in more informal discussions about music, which make liberal use of computational metaphors. In Chapter 1, I describe this attitude, the stakes for considering the computer as one of its instruments, and the kinds of historical sources and methodologies we might draw on to chart its ascendance. The remainder of this dissertation considers distinct and varied cases from the mid-twentieth century in which computers or computationalist musical ideas were used to pursue new musical objects, to quantify and classify musical scores as data, and to instantiate a generally music-structuralist mode of analysis. I present an account of the decades-long effort to prepare an exhaustive and accurate catalog of the all-interval twelve-tone series (Chapter 2). This problem was first posed in the 1920s but was not solved until 1959, when the composer Hanns Jelinek collaborated with the computer engineer Heinz Zemanek to jointly develop and run a computer program.
    [Show full text]
  • The Csound Book, a Cura Di Richard Boulanger. Contenuto Dei CD-Rom
    The Csound Book, a cura di Richard Boulanger. Contenuto dei CD-rom. CD1: HTML CD CD Chapters (capitoli aggiuntivi non presenti nella versione cartacea) Bill Alves , Csound-based Microtonal Synthesis and Control with MIDI Michael Berry , Real-time Synthesis in Csound with MIDI Control Gabriel Maldonado, MIDI Instrument Designs for Real Time Performance Gabriel Maldonado, Using Real-time Csound MIDI with Windows Gabriel Maldonado, Implementing MIDI Opcodes in Csound Archer Endrich, An Introduction to Cscore Michael Gogins, Algorithmic Score Generators Michael Gogins, Creating and Using a Platform-Independent GUI for Csound in Java Matt Ingalls , Improving a Composer’s Interface: Recent Developments to Csound for the Power Macintosh Computer Gabriel Maldonado , VMCI: An Interface to Control Csound in Real-time under Windows Jean Piché & Alexandre Burton , Cecilia: A Production Interface to Csound Mark Ballora, Bruce Pennycook & Leon Glass , Audification of Heart Rhythms in Csound Stephen Barrass , Some "Golden Rules" for Designing Auditory Displays David Rossiter , Using Csound for Sonification Pedro A. G. Batista, An Introduction to Sound Synthesis with Wavelet Packets Pedro A. G. Batista, Neural Processing in Csound Fabio P. Bertolotti, Tools for Heterodyne Data Manipulation Michael A. Casey, NetSound: Structured Audio using Auditory Group Theory Josep M. Comajuncosas, Analog Dreams: Modeling Commercial Synthesizers Josep M. Comajuncosas, Physical Models of Strings and Plates Using a Simplified Mass-string Method Josep M. Comajuncosas,
    [Show full text]
  • LAC-07 Proceedings
    LINUX AUDIO CONFERENCE BERLIN Lectures/Demos/Workshops Concerts/LinuxSoundnight P roceedin G S TU-Berlin 22.-25.03.07 www.lac.tu-berlin.de5 Published by: Technische Universität Berlin, Germany March 2007 All copyrights remain with the authors www.lac.tu-berlin.de Credits: Cover design and logos: Alexander Grüner Layout: Marije Baalman Typesetting: LaTeX Thanks to: Vincent Verfaille for creating and sharing the DAFX’06 “How to make your own Proceedings” examples. Printed in Berlin by TU Haus-Druckerei — March 2007 Proc. of the 5th Int. Linux Audio Conference (LAC07), Berlin, Germany, March 22-25, 2007 LAC07-iv Preface The International Linux Audio Conference 2007, the fifth of its kind, is taking place at the Technis- che Universität Berlin. We are very glad to have been given the opportunity to organise this event, and we hope to have been able to put together an interesting conference program, both for developers and users, thanks to many submissions of our participants, as well as the support from our cooperation partners. The DAAD - Berliner Künstlerprogramm has supported us by printing the flyers and inviting some of the composers. The Cervantes Institute has given us support for involving composers from Latin America and Spain. Tesla has been a generous host for two concert evenings. Furthermore, Maerz- Musik and the C-Base have given us a place for the lounge and club concerts. The Seminar für Medienwissenschaften of the Humboldt Universität zu Berlin have contributed their Signallabor, a computer pool with 6 Linux audio workstations and a multichannel setup, in which the Hands On Demos are being held.
    [Show full text]
  • International Computer Music Conference (ICMC/SMC)
    Conference Program 40th International Computer Music Conference joint with the 11th Sound and Music Computing conference Music Technology Meets Philosophy: From digital echos to virtual ethos ICMC | SMC |2014 14-20 September 2014, Athens, Greece ICMC|SMC|2014 14-20 September 2014, Athens, Greece Programme of the ICMC | SMC | 2014 Conference 40th International Computer Music Conference joint with the 11th Sound and Music Computing conference Editor: Kostas Moschos PuBlished By: x The National anD KapoDistrian University of Athens Music Department anD Department of Informatics & Telecommunications Panepistimioupolis, Ilissia, GR-15784, Athens, Greece x The Institute for Research on Music & Acoustics http://www.iema.gr/ ADrianou 105, GR-10558, Athens, Greece IEMA ISBN: 978-960-7313-25-6 UOA ISBN: 978-960-466-133-6 Ξ^ĞƉƚĞŵďĞƌϮϬϭϰʹ All copyrights reserved 2 ICMC|SMC|2014 14-20 September 2014, Athens, Greece Contents Contents ..................................................................................................................................................... 3 Sponsors ..................................................................................................................................................... 4 Preface ....................................................................................................................................................... 5 Summer School .......................................................................................................................................
    [Show full text]
  • Compositional and Analytic Applications of Automated Music Notation Via Object-Oriented Programming
    UC San Diego UC San Diego Electronic Theses and Dissertations Title Compositional and analytic applications of automated music notation via object-oriented programming Permalink https://escholarship.org/uc/item/3kk9b4rv Author Trevino, Jeffrey Robert Publication Date 2013 Peer reviewed|Thesis/dissertation eScholarship.org Powered by the California Digital Library University of California UNIVERSITY OF CALIFORNIA, SAN DIEGO Compositional and Analytic Applications of Automated Music Notation via Object-oriented Programming A dissertation submitted in partial satisfaction of the requirements for the degree Doctor of Philosophy in Music by Jeffrey Robert Trevino Committee in charge: Professor Rand Steiger, Chair Professor Amy Alexander Professor Charles Curtis Professor Sheldon Nodelman Professor Miller Puckette 2013 Copyright Jeffrey Robert Trevino, 2013 All rights reserved. The dissertation of Jeffrey Robert Trevino is approved, and it is acceptable in quality and form for publication on mi- crofilm and electronically: Chair University of California, San Diego 2013 iii DEDICATION To Mom and Dad. iv EPIGRAPH Extraordinary aesthetic success based on extraordinary technology is a cruel deceit. —-Iannis Xenakis v TABLE OF CONTENTS Signature Page .................................... iii Dedication ...................................... iv Epigraph ....................................... v Table of Contents................................... vi List of Figures .................................... ix Acknowledgements ................................. xii Vita .......................................... xiii Abstract of the Dissertation . xiv Chapter 1 A Contextualized History of Object-oriented Musical Notation . 1 1.1 What is Object-oriented Programming (OOP)? . 1 1.1.1 Elements of OOP . 1 1.1.2 ANosebleed History of OOP. 6 1.2 Object-oriented Notation for Composers . 12 1.2.1 Composition as Notation . 12 1.2.2 Generative Task as an Analytic Framework . 13 1.2.3 Computational Models of Music/Composition .
    [Show full text]
  • The Sndobj Sound Object Library
    The SndObj Sound Object Library VICTOR E. P. LAZZARINI Department ofMusic, National University ofIreland, Maynooth, Co. Kildare, Ireland E-mail: [email protected] The SndObj Sound Object Library is a C++ Programming libraries constitute a lower-level in object-oriented audio processing framework and toolkit. computer music practice, when compared to sound com- This article initially examines some of the currently pilers. The context where they appear is more general, available sound processing packages,including sound and consequently their use is more complex. This can compilers,programming libraries and toolkits. It reviews be easily demonstrated by the differences in coding of a the processes involved in the use of these systems and their strengths and weaknesses. Some application similar instrument under csound and cmix (or clm), examples are also provided. In this context,the SndObj which will be shown later. It involves not only the library is presented and its components are discussed in knowledge ofthe syntax ofa particular language, but detail. The article shows the library as composed of a set also the grasp ofconcepts not necessarily needed when of classes that encapsulate all processes involved in using a sound compiler. For instance, with cmix, the synthesis,processing and IO operations. Programming user has to understand variable declaration, memory examples are included to show some uses of the system. allocation, header files, object code linking and other These,together with library binaries,source code and C-related concepts in order to build a sound processing complete documentation,are included in the or synthesis ‘instrument’. The advantage is that, in this downloadable package,available on the Internet.
    [Show full text]
  • Live Coding in Sporth: a Stack Based Language for Audio Synthesis
    Live Coding in Sporth: A Stack Based Language for Audio Synthesis Paul Batchelor Center for Computer Research in Music and Acoustics [email protected] ABSTRACT This paper describes live coding musical sound in a domain-specific language called Sporth. Sporth is a stack based language ideally suited for articulating complicated modular synthesis patches using a terse syntax. Motivations for building a live coding interface will be explained, along with an overview of the Sporth language through example code. The final section will provide a brief description of the live coding listener in Sporth, as well as the recommended interface setup for re-evaluating Sporth code on the fly. 1 Introduction Sporth (Batchelor 2017b) is a domain-specific programming language for audio synthesis and creative sound design. It belongs to a family of so-called stack-based programming languages. Notable examples include Forth and Postscript. These languages revolve around a global stack data structure. As a direct result of this, stack-based languages have a distinct “arguments before function” syntax sometimes referred to as reverse-polish notation. An arithmetic expression in a typical C-like programming language could look like this: 8 * (2 + 3) The equivalent RPN expression seen in a stack-based language would look like: 8 2 3 + * While these kinds of languages may not be widely used in modern software engineering practices, they do provide some unique features useful for live coders. Stack-based languages are generally terse, so the keystroke count can kept down. In performance situations where speed is important, keystroke reduction is an important metric.
    [Show full text]
  • The 1997 Mathews Radio-Baton & Improvisation Modes
    The 1997 Mathews Radio-Baton & Improvisation Modes From the Proceedings of the 1997 International Computer Music Conference – Thessaloniki Greece Richard Boulanger & Max Mathews [email protected] & [email protected] Berklee College of Music & Stanford University Introduction The Radio-Baton is a controller for live computer music performances. It tracks the motions, in three dimensional space, of the ends of two Batons which are held in the hands of a performer. The X, Y and Z trajectories of each Baton are used to control the performance. The Radio-Baton is a MIDI instrument in the sense that it has MIDI input, output, and thru connectors. All electrical communication with the Baton is done over MIDI cables using standard MIDI conventions. The Baton was designed to work with MIDI synthesizers and MIDI-based sequencing and programming software. How the Radio-Baton Works The Radio-Baton uses a simple technique to determine the XYZ coordinates of the batons. At the end of each baton is a small radio transmitting antenna. On the receiving antenna surface are 5 receiving antennas as sketched on the figure--four long thin antennas arranged along the four edges of the board and one large antenna covering the entire center area of the board. The closer a baton is to a given receiver, the stronger the signal at that receiver. By comparing the signal strengths at the #1 and #2 antennas, the computer in the electronics box can determine the X position of the baton. Comparing the #3 and #4 strengths gives the Y position. The #5 strength gives the height above the board or Z position.
    [Show full text]
  • Analytical Techniques of Electroacoustic Music”
    David Huff Proposal for “Analytical Techniques of Electroacoustic Music” Introduction The foundations of musical analysis have long been tested by the weight of music from the periods of tonal practice. There is a rich and expansive repertory of techniques from which the analyst may choose in approaching music composed in the tonal tradition of the Eighteenth and Nineteenth Centuries. The Twentieth Century saw an expansion of compositional strategies, which in turn charged theorists and musicologists with the tasks of developing and adopting new methods of analysis. Analysts met these challenges by employing a range of techniques nearly as varied as the post-tonal compositions themselves. Pitch-class set theory and twelve-tone serial techniques have been the most widely adopted analytical methods for the post- tonal repertory, representing rigorous, quasi-scientific approaches to what is often extremely complex music. This expansion of compositional and analytical techniques coincided with the development of technology that eventually made its way into the hands of composers. Technology’s influence on composition in the mid-Twentieth Century formed in the concurrent strands of musique concrète and elektronische Musik, one concerned with the use of recorded sound as a malleable medium, the other with generating sounds themselves through electronic means. The two approaches eventually converged, with varying degrees of cohesion, into what is generally referred to as electroacoustic music.1 1 Leigh Landy discusses various titles applied to strands of electronic-based music in Landy 2006. While the proposed dissertation will summarize these terminological aspects the present proposal will simply use the term “electroacoustic music” to mean any music composed with the full or partial use of electronic means.
    [Show full text]
  • Richard Boulanger Cloning a Dragon with the DNA from “Trapped in Convert” (In Memory of Shengzheng Zhang - John Towse)
    Richard Boulanger Cloning a Dragon with the DNA from “Trapped in Convert” (in memory of Shengzheng Zhang - John Towse) Controlled, modulated, and spatialized live by an assortment of theremin, joystick, brainwave, and pressure sensors, this 4-channel EuroRack modular synthesizer solo will feature: four Qu-Bit Nebulae modules (each running and rendering, in real-time, voltage- controlled versions of Boulanger’s classic "Trapped in Convert" Csound instruments, and a suite of new custom “Qu-Bit Csound” orchestras); plus two Thonk Music Thing Modular Radio Music modules (each playing a number of pre-rendered custom Csound orchestras as .AIF audio files); plus, one Audio Damage ODIO module (allowing for the modular system’s audio to be sent to, and returned from an iPad running the Boulanger Labs Csound for iOS app csSpectral, that is being used for real-time Phase Vocoding and other Csound-based audio processing). This newly composed, and completely re- designed solo version of the work was written to celebrate the 40th anniversary of the world premiere of Boulanger’s classic “Trapped in Convert”. "Back in the summer of 1979, when I composed "Trapped in Convert" at the EMS Studio at MIT using Barry Vercoe’s "music11" language, and then revised it at the MIT Media Lab in 1986 to serve as a beta- test suite for Vercoe’s new "Csound" language, I modeled all my sounds on those I would create in my home studio with my ARP 2600 analog synthesizer. Now, some 40 years later, and to celebrate the 40th anniversary of composition, I have been able to return to the modular synthesizer; to come full circle – but this time, I am making Csounds on the modular thanks to the design and commercial availability of the amazing Nebulae module from Qu-Bit Electronics, (the Nebulae is a EuroRack synthesizer module built around a Raspberry Pi running the latest version of Csound under the hood!).
    [Show full text]