DESIGN AND IMPLEMENTATION OF CNMAT'S PEDAGOGICAL SOFTWARESkip other details (including permanent urls, DOI, citation information)
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 3.0 License. Please contact firstname.lastname@example.org to use this work in a way not covered by the license. :
For more information, read Michigan Publishing's access and usage policy.
Page 00000059 samples back at a variable rate from a buffer. Groovewrap- allows the user to specifiy transposition of sounds in half-steps (calculating the proper playback rate) and prevents clicks by creating a gain ramp at the beginning of playback. It also provides increased control of starting and stopping times, and groove-'s looping features. The groovewrap module includes an interface patch, gwinterface, which is used extensively in the samplemixer application (see section 3.3.1). 3.2.2. Panhandler' Panhandler is a package of patches that manage spatialization with Ville Pulkki's VBAP object , allowing users to specify panning azimuth independently of loudspeaker positions. Panhandler- works with one signal input, setting up the specified number of speaker locations in a circle, and configuring a matrix- object to handle gain scaling. It also provides users with messages to define time-based behaviors, either circling at a fixed rate or going to a specific azimuth in a number of milliseconds. It keeps track of the current azimuth at all times, so a sound's location will not seem to jump suddenly unless the user specifically calls for it. Multipan- does the same for multiple input signals. 3.3. Applications 3.3.1. Samplemixer Samplemixer is an application built out of modules, and functions as a compositional assistant. Four groovewrap- 's are mixed together to make a musical phrase with four samples. The users can compose a phrase by adjusting the timing, gain, and frequency parameters of each sample. The OSC messages that configure a phrase can be captured, and entire phrases can be recorded into a new sound file. 3.3.2. Music Calculator3 Music Calculator is an application that presents common calculations in the frequency and time domains, such as converting beats per minute to milliseconds per beat, or MIDI note to frequency. This application can be accessed via Max's "extras" menu, allowing users quick access to the workspace. 3.4. Tutors and Tutorials Tutors and tutorials are designed primarily for learning purposes, but are also available to be plundered. The tutorials explain specific topics in depth; they cover programming details as necessary but tend to focus on core theoretical and conceptual issues in computer music, synthesis, signal processing, etc. 3.4.1. Tutorial. CNMA T Spectral Tutorials4 The CNMAT Spectral Tutorials grew out of a minicourse on CNMAT Technologies. CNMAT has developed a large collection of Max/MSP external objects that deal with aspects of spectral (additive and 1 Panhandler-: http://cnmat.berkeley.edu/patch/2861 2 Samplemixer: http://cnmat.berkeley.edu/patch/2860 3 Music Calculator: http://cnmat.berkeley.edu/patch/2727 4 CNMAT Spectral Tutorials: http://cnmat.berkeley.edu/patch/2741 resonant) synthesis. While each object is well documented with its own help patch, what was lacking was an overview that explained how the objects were intended to work together and what artistic problems they were developed to solve. Also, the help patches do not explain any of the underlying principles of spectral synthesis. The Spectral Tutorials were designed to address both of those concerns. Furthermore, although some of the tutorials are quite specific to implementation in Max, many offer general information that would be useful to anybody interested in spectral synthesis. The Spectral Tutorials offer instruction to users with little or no experience with Max/MSP or computer music while giving concise guidance to more experienced users. In either case, it is important that the navigation and use of the actual patches be as transparent as possible. To accomplish this, a tutorial architecture was written in Max that is now slated to become its own "Tutorial Making Tutorial." The architecture has the following features: Navigation: A single bpatcher appears in every numbered tutorial patch. It leverages Max's pcontrol object to enable the user to move to the next or previous tutorial, as well as to jump to any tutorial in the table of contents. When the user requests a new patch, the current patch is closed. Banner: The title and general information are unified in another bpatcher at the top of every page Visual Cues: Whenever possible, the tutorial controls are standardized, especially the controls that turn audio on and off and control gain. In the early patches, these controls are highlighted by blinking "LED" objects. Important Max objects are yellow while objects for the user to interact with are blue. Overviews: Many of the tutorial chapters have summaries at the end. This proves useful when presenting them in a classroom environment and helps users who are working alone keep track of the bigger picture. The Spectral Tutorials also incorporate patches that work in other roles in the CNMAT MMJ Depot. For instance, sin-synth- is a module and singing-voice- and singing-voice-.help combine to form a demo. The migrators-explorer example comes directly from David Wessel's repertoire. 3.4.2. Tutor: DSP Settings5 In contrast to the dozens of patches that make up the CNMAT Spectral Tutorials, a tutor such as DSP_Settings is usually only one patch. Within that patch, however, there are multiple layers of information (from a quick overview to a more thorough explanation) that anticipate users with different needs. The top level contains message boxes that users can copy and paste into their own work. These messages are organized by goal: efficiency, solid timing, etc. (see figure 2). The subpatches in a cluster near the top of the main level are entry points into detailed explanations of the Max Scheduler Modes and the possibilities for DSP Settings. 5 DSP Settings: http://cnmat.berkeley.edu/patch/2738 59
Page 00000060 3.4.3. Tutor. set-tutor' By convention, many of Max's built-in objects accept a "set" message that sends new input into an object without causing the object to output in response to the input. This tutor is CNMAT's central location for the theory and practice of using "set" messages. It includes simple examples demonstrating the use of "set" in lowlevel terms, as well as practical uses of "set" to keep multiple visual representations of the same data in sync. Whenever people in the CNMAT community discover a new use for this technique, they can add another example to this tutor; thus the tutor gradually collects more and more information and contributes to the institutional memory. 3.5. Demos and Repertoire The Demo category is a collection of patches that are good at quickly exposing the possibilities of a patch or technique. The singing-voice patch is frequently used in this context. Unlike other categories, the demo category is not exclusive; many modules, tutorials, and pieces from the repertoire also function well as demos. Repertoire includes finished pieces of music. It is not enough to ask "What can this software do?" By presenting technologies in an aesthetic context, the repertoire integrated into the Depot answers to the question: "What is this software good for?" 4. FUTURE WORK For the first half-century of computer music, we have been mapping a frontier where, to some extent, each individual needed to be self-sufficient. CNMAT has annually experienced new groups of students trying to get started and falling into the same pitfalls as their 1 set-tutor: http://cnmat.berkeley.edu/2862 predecessors. We know there are solutions to these problems, but some students have not been able to access them. Having new students come in and solve the same programming problems again and again is productive for neither them nor CNMAT. Operating alone on the frontier will always be an important mode for some, but computer music in general is outgrowing the phase where each composer starts from nothing, and entering a phase where we improve our aesthetic results by learning from and using previous work. One major technical advance would be automatic extraction of the list of all objects that a patch uses. We could then use this information to generate automatic cross-references that could answer questions like "what are all the patches in the MMJ Depot that rely on the multibuf patch?" Currently, this information is entered by hand. Now that our basic infrastructure is in place and we have proven the value of this work with a small number of examples, the current task is to assimilate our existing pedagogically useful software into this framework, thereby making that software usable by students and the public outside of CNMAT. Future students and researchers will continue to add to the Depot; the dynamic nature of music technology requires that the depot is never finished, but is similarly dynamic. The ongoing process of contribution and refinement, where students learn by working with and adding to the MMJ Depot, is part of the pedagogical agenda at CNMAT. Through this process the whole Depot performs a mnemonic role in the community, representing the sum of many individuals' experiences. 5. ACKNOWLEDGEMENTS Richard Andrews, Aaron Einbond, Adrian Freed, Jeremey Hunt, John MacCallum, Andy Schmeder, Jen Wang, David Wessel, and the UC Berkeley Music Department. 6. REFERENCES  Clarke, M., Watkins, A., Adkins, M. and Bokowiec, M., Sybil: Synthesis by Interactive Learning. Proc. ICMC, (Miami, FL, 2004), International Computer Music Association, 354-357.  Place, T. and Lossius, T., JAMOMA: A Modular Standard for Structuring Patches in Max. Proc. ICMC, (New Orleans, LA, 2006), International Computer Music Association, 143-146.  Pulkki, V., Generic Panning Tools for MAX/MSP. Proc. ICMC, (Berlin, Germany, 2000), International Computer Music Association, 304-307.  Wright, M., Freed, A., Lee, A., Madden, T. and Momeni, A., Managing Complexity with Explicit Mapping of Gestures to Sound Control with OSC. Proc. ICMC, (Habana, Cuba, 2001), International Computer Music Association, 314-317.  Freed, A., Schmeder, A., Wessel, D., and Wright, M. CNMA T Information Infrastructure. Proc. ICMC, (Copenhagen, Denmark, 2007), International Computer Music Association, present volume. 60