Max Fundamentals. Juan P Bello



Similar documents
>print "hello" [a command in the Python programming language]

Keystation Pro 88 Advanced Guide. Contents: 1 Getting Started. 2 Terminology. 3 Performance Operations of the Keystation Pro 88

Midi Workshop. SAWStudio. From RML Labs. To order this product, or download a free demo, visit

Application Unit, MDRC AB/S 1.1, GH Q R0111

Implementation of the Discrete Hidden Markov Model in Max / MSP Environment

ABB i-bus EIB Logic Module LM/S 1.1

flashserver External for Max/MSP

Aras Corporation Aras Corporation. All rights reserved. Notice of Rights. Notice of Liability

Software Sequencing Basics

In: Proceedings of RECPAD th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

The IRCAM Musical Workstation: A Prototyping and Production Tool for Real-Time Computer Music

C-Bus Application Messages & Behaviour Chapter 25 Air Conditioning

NetClient software user manual

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

Remote Support. User Guide 7.23

Cloud Storage Service

Structural Health Monitoring Tools (SHMTools)

SECTION 4 TESTING & QUALITY CONTROL

Inear Display Oxymore Version

2+2 Just type and press enter and the answer comes up ans = 4

GETTING STARTED WITH LABVIEW POINT-BY-POINT VIS

Computers. Hardware. The Central Processing Unit (CPU) CMPT 125: Lecture 1: Understanding the Computer

Advanced Network Video And Alarm Management Suite

OKLAHOMA SUBJECT AREA TESTS (OSAT )

Fundamentals of Java Programming

Central Management System (CMS) USER MANUAL

SIP Trunk Installation & User Guide

REFERENCE GUIDE 1. INTRODUCTION

Video, film, and animation are all moving images that are recorded onto videotape,

Impact Call PC. call001. Impact Call User s Guide

The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications

2 SQL in iseries Navigator

MICROSOFT WINDOWS NAVIGATION

Arena 9.0 Basic Modules based on Arena Online Help

2011, The McGraw-Hill Companies, Inc. Chapter 5

Enterprise Architecture Modeling PowerDesigner 16.1

Moving from CS 61A Scheme to CS 61B Java

Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102

13-1. This chapter explains how to use different objects.

Light scene push button 8gang comfort flush-mounted xx

Release Document Version: User Guide: SAP BusinessObjects Analysis, edition for Microsoft Office

Operation Manual. LM-Correct. Loudness Measurement & Correction NUGEN Audio

Microsoft Outlook 2010 Part 1: Introduction to Outlook

Fundamentals of Programming and Software Development Lesson Objectives

Reduce File Size. Compatibility. Contents

How To Set A Beat Grid in TRAKTOR

Chapter 13: Program Development and Programming Languages

Using Microsoft Lync for Web Conferencing, Training & Support

Personal Call Manager User Guide. BCM Business Communications Manager

SPECIAL SPECIFICATION 8498 Video Management Software

Getting Started with Excel Table of Contents

Microsoft Outlook 2013 Part 1: Introduction to Outlook

Programmer s Reference

EnerVista TM Viewpoint Monitoring v7.10

Audacity Sound Editing Software

The Answer to the 14 Most Frequently Asked Modbus Questions

EPM2000 LabVIEW Building Applications Instructions

Controllable Space Phaser. User Manual

WebSphere Business Monitor

Wireless Presentation System User s Manual

Domains and Competencies

Voice over IP: RTP/RTCP The transport layer

Supplemental Notes May 20, 1995 SN09 V1.0

WebSphere Commerce V7 Feature Pack 2

NATIVE INSTRUMENTS GmbH Schlesische Str D Berlin Germany

#820 Computer Programming 1A

EasyC. Programming Tips

Web Load Stress Testing

voxover 1.x Manual by Matthew Foust and Evan Olcott Copyright 2007 Audiofile Engineering, LLC

Local Playback Software User Manual (V2.0)

CMS Basic User s Manual

Oracle IVR Integrator

ETS4 Diagnostics. KNX Association

Unified Communicator Advanced Training Handout

Microsoft Access 3: Understanding and Creating Queries

Advanced Networking Voice over IP: RTP/RTCP The transport layer

Fast Arithmetic Coding (FastAC) Implementations

SYMETRIX SOLUTIONS: TECH TIP August 2015

Microsoft Outlook 2010 Part 1: Introduction to Outlook

Nintex Workflow 2010 Help Last updated: Friday, 26 November 2010

ImagineWorldClient Client Management Software. User s Manual. (Revision-2)

Animated Lighting Software Overview

Pro Surveillance System 4.0. Quick Start Reference Guide

Abstract. For notes detailing the changes in each release, see the MySQL for Excel Release Notes. For legal information, see the Legal Notices.

Contents. 1.2 Software Installation... 1

WinCC. Configuration Manual. Manual Volume 3

EMC Publishing. Ontario Curriculum Computer and Information Science Grade 11

USER GUIDE Version 2.0

A QUICK OVERVIEW OF THE OMNeT++ IDE

Nero MediaStreaming for MCE Manual

Table of Contents Getting Started... Recording...11 Playing Back...14

OPERATOR'S MANUAL ENGLISH ( 1-28 )

MOTO. Quick Start Guide

Access Tutorial 3 Maintaining and Querying a Database. Microsoft Office 2013 Enhanced

Tutorial 3 Maintaining and Querying a Database

The C Programming Language course syllabus associate level

Transcription:

Max Fundamentals Juan P Bello

Max Max is a high-level graphic programming language, written in C It provides an interactive programming environment with extensive libraries of pre-compiled and pre-tested algorithms It automatically generates code from graphical configurations The programmer can be oblivious to the details of writing code That allows rapid prototyping by (non)programmers On the other side it makes the language less flexible, and usually performance is slower. Max is specifically intended for real-time computer music applications It allows the creation of standalone applications It can be expanded by including so-called external objects written in C and Java

A brief history First developed on the mid 80s by Miller Puckette, then at IRCAM The name Max honors Max V. Matthews Originally commercialized by Opcode Systems in 1990 In the mid 90s, Dave Zicarelli (then at Opcode) started adding DSP functionalities into Max to match those in the new PD software created by Puckette (now at UCSD). That resulted in Max/MSP From 1999 onwards Max has been commercialized by Zicarelli s own company Cycling 74 In 2003 a major new release, Jitter, empowered Max with matrix processing, real-time video processing and 3D capabilities. It is the most widely-used tool for interactive music systems.

Object-oriented programming Allow programmers to build digital systems as collections of interacting objects, each with a specific function (see Pope, 1991) Basically akin to the process of analysis: break down a whole into its constituent (functional) parts Objects communicate with each other through messages containing data or orders Popular programming languages (C for example) now feature extensive object-oriented capabilities Max shares many of the attributes of fully-develop object-oriented languages: modularity, nesting, reusability of objects.

Objects in MAX Objects are algorithms that execute an action Max programs are modular, composed of a number of these objects, each executing an action that contributes towards the overall desired musical result Three types of objects: Standard: Existing objects that come with Max s library Custom: User-created objects that result from the combination of standard ones External: new objects programmed in C and Java Objects can receive messages from: computer peripherals, MIDI devices and other MAX objects Each object has a number of parameters that regulate its behavior. They are often variables that change during execution time. If not specified they might default to a logical value. Some parameters can be typed directly into an object box as arguments (e.g. when they are not expected to change or as initial values) Incoming data overrides arguments.

Objects in MAX Data transmission between objects is achieved by graphically wiring them We create these wires by dragging the buttoned-down mouse between the outlets and inlets of different objects. Because of the wiring process, the resulting programs are known as patches Patches can be modified in Edit mode To access Edit mode, we can: ctrl-click (or apple-click) on the patch window, or key ctrl-e (or apple-e). In Edit mode we can access the object Inspector (Get Info) and see/modify the object properties. You can also create your own objects Order of execution:top to bottom, right to left; nothing (usually) happens until data arrives at the leftmost inlet (trigger); the buddy object forcefully synchronizes inputs.

Messages in Max Max communicates through information messages which are passed on between objects Max understands four main types of messages: Bangs: A special type of message that means Do it Numbers: numbers in Max can be integers (int) or decimal numbers (float) and can be expressed in a variety of formats (decimal, hex, MIDI number, note) Words: or symbols, can be used as control data, i.e. to send orders to objects (e.g. read, stop, set) Lists: Consists of a group of space-separated numbers or symbols.

Messages: Bangs The bang message triggers the object s action (Tutorial 7)

Messages: Numbers Get Info

Messages: Numbers Sliders are number boxes with a UI designed for on-screen control They also allow for changes on range, resolution and offset

Messages: Numbers Other types of sliders with different outlooks and configurations (see Tutorial 14)

Messages: Words and lists The message box Lists and commas Sending and receiving

Messages: Words and lists Changeable arguments using $ signs Set but not trigger Append and Prepend Semi-colon and directed messages

Common objects: Operators Arithmetic operators Operations can be float if specified by the argument A List on the left inlet can specify all arguments Relational operators

Common objects: Comparisons Other objects for comparison include Logical operands: and (&&), or ( ) select: which identifies specific values on a data stream Change: which identifies change (filters out repetitions) Split: bandpass filter where arguments specify range Speedlim: limits the speed of passing through

Common objects: Gates/switches Toggle Ggate Gate Gswitch Switch Route

Common objects: Timers Metro Clocker Counter Line Tempo

Common objects: Delays/Random Other objects include delays: Random number generators

Max and MIDI First, we need to define instrument and channel naming conventions Max has objects that retrieve specific message types from the MIDI data stream Tutorial 12

Max and MIDI Notes are characterized by notein as [pitch,velocity] pairs Note off messages are thus represented using velocity 0 If notein data is used to control further processes in the Max patch, then those 0 values can be very disrupting Stripnote, makenote and flush offer solutions to this xnotein and xnoteout can handle note off velocities

Max and MIDI Other objects include: bendin, bendout, ctlin, ctlout, pgmin, pgmout, (and for more precision) xbendin, xbendout This data can be re-assigned to other controls (Tutorial 16) Ctl objects can also send/receive channel mode messages

Max and MIDI Max is also able to handle raw MIDI data using midiin and midiout Midiin can be used in conjunction with midiparse, which decomposes the data into specific messages In the opposing end, midiformat recombines these messages for transmission through midiout

Max and MIDI Incoming SysEx messages are handled by sysexin However, outgoing SysEx messages need to be properly formatted by the user before being sent through midiout. Sxformat helps the user in this task The prefix 0x identifies a number as hex. The message /is $i1/ handles changeable inputs

Max and MIDI An example: changing the parameters of an E-mu Proteus To change a parameter on the Proteus, we indicate the parameter number in two bytes (there is a list in the manual) followed by the parameter value in two bytes. Such that the message is: F0 18 04 00 03 [LS par#] [MS par#] [LS val] [MS val] F7 MIDI Implementation chart

Storing data The basic objects for data storage are int and float. Both work on the same way: Accum is similar but has extra functionalities for adding and multiplying to the incoming number See Tutorial 21

Storing data However it is much more powerful to be able to store and index arrays of data Functions like funbuff and table (Tutorial 32) can do this

Storing data The most versatile data structure in Max is coll (collection). It can store anything, indexed by any number or word Another useful data structures include Menu and Preset. Preset is able to store and recall the settings of other objects in the window See tutorial 37

Sequencing Max uses several objects (seq, follow, mtr and detonate) for recording and playback of MIDI sequences Seq can record and playback a sequence, and navigate through the events of that sequence (using next, prev, etc) Follow is effectively a score-follower, able to follow a live rendering of the sequence that it stores (an even tollerate some mismatch)

Sequencing Mtr goes even further by letting you record and playback a multitrack MIDI sequence (see tutorial 36) (Timeline is the all powerful Max sequencer, not limited to MIDI, but able to record and playback all sorts of complex Max messages - see Tutorial 41 for more info)

C Language expressions Max is written in C, thus it provides objects that interface with certain basic C functionalities This is an extremely powerful feature of Max as it allows us to summarize very complex operations in only one object One such object is expr, whose argument can contain a C-like mathematical expression (Tutorial 38) Another example is the IF/THEN/ELSE statement:

References Cycling 74 page: http://www.cycling74.com/ Max documentation: http://www.cycling74.com/twiki/bin/view/productdocumentation/ WebHome#Max_MSP_4_6 Downloads: http://www.cycling74.com/downloads Max in Wikipedia: http://en.wikipedia.org/wiki/max/msp Winkler, T. Composing Interactive Music: Techniques and Ideas using Max. MIT Press (1999) Pope, S.T. (Ed). The Well-Tempered Object: Musical Applications of Object-Oriented Technology. MIT Press (1991)