Audio Status Window

The Audio Status Window

The Audio Status Window shows you the complete set all of the parameters of audio input and output in Max. You can use the Audio Status Window to set these parameters, and as a way to monitor your current audio settings.

Using the Audio Status Window, you can:

  • Enable/disable audio processing in Max
  • View and select an audio driver
  • Monitor the amount of signal processing MSP is currently doing
  • Set the audio sampling rate
  • Set the number of samples MSP processes at a time - the I/O Vector Size) for input and output.
  • Enable/disable Overdrive
  • Map logical input and outputs channels for I/O in MSP

All of these options can also be changed from within your Max patch by using the adstatus object in your max patch, or by sending messages to the Max application.


Viewing the Audio Status Window

  • Choose Audio Status... from the Options menu to show the Audio Status Window.

You can also double-click on any dac~ or adc~ object in a locked Patcher window.


The Audio Status Window includes of a set of tabs you can use to change what is displayed in the window, and a listing of all the settings associated with DSP processing in Max.


Getting information about a setting

  • Position your cursor over the Setting column of any row in the window. A brief description of the setting will be shown in the Patcher window's Status Bar.

Changing the value of a Setting

  • If the the parameter is a pop-up menu, click on the menu, choose a setting, and release.
  • If the parameter has a check box, click in the box to toggle the value

  • If the parameter has a text button, click on it to open a new window.


Audio processing and your system

You can turn audio processing on and off using the Audio Status Window, and also toggle audio processing using the MSP UI objects ezdac~ and ezdac~, or the adc~ and dac~ MSP objects. Audio and levels can be controlled by the Audio On/Off option at the bottom of the right toolbar.


Enabling/disabling audio processing using the Audio Status Window

  • Choose Audio Status... from the Options menu to show the Audio Status Window.
  • Click on the Audio pop-up menu and choose an On from the pop-up menu.

Note: You must have placed an MSP object in a patcher to be able to turn audio on or off using the Audio Status Window. If no MSP objects have been instantiated, audio will turn itself off immediately.


Enabling/disabling audio processing using MSP objects

  • If you’re using ezdac~ or ezdac~ objects in your Max patch, click on them to start the audio. Both of these UI objects function as toggle switches.
  • If you’re using a dac~ object in your Max patch, click on any toggle box or message box containing the message 1, start, or startwindow.

Audio is disabled by sending the messages 0 or stop to a dac~ object.

If you want to only turn on audio processing for a specific patcher window, use the startwindow message sent to the dac~ object.


Configuring MSP audio for your system

While some specific features and settings for using audio on your computer will vary according to the type of audio interface and audio drivers you have installed, you can access these settings in MSP using Audio Status Window.

The Driver pop-up menu in the Audio Status Window lets you view and select an audio driver for MSP. The list of available drivers will vary according to the audio drivers installed on your system. Here is a brief summary of the default options:

  • None shuts off MSP audio processing.
  • CoreAudio is the default audio driver for MSP on Macintosh.
  • MME, DirectSound, or ASIO drivers for Windows systems will appear if you have correctly installed external hardware that supports the standard.
  • The ad_rewire driver supports ReWire, a standard developed by Propellerhead Software that allows sound generating applications (ReWire Devices) to send multiple channels of audio and midi to other applications (ReWire Mixers) that process and output it.
  • The NonRealTime driver enables MSP to work in non real-time mode, allowing you to synthesize and process audio without any real-time processor performance limitations.

Selecting an audio driver

  • Choose Audio Status... from the Options menu to show the Audio Status Window.
  • Click on the Driver pop-up menu and choose an audio driver from the pop-up menu.

This menu lists all the audio drivers installed on and available for use with Max. When you choose a driver from the menu, it becomes your default audio driver, and will remain so the next time you launch Max.


When you have selected the audio driver you want to use, various input (Input Channels, Input Device, and Input Source) and output (Output Channels, Output Destination, and Playthrough Input) parameter settings will become available based on the audio driver you choose.

Note: the number of input channels and output channels displayed in the DSP window are displayed with the grey attribute icon because the number of channels is driver/interface-dependent.

Configuring audio system inputs and outputs

  • Choose Audio Status... from the Options menu to show the Audio Status Window.
  • Click on the Input Source or Output Destination pop-up menus and choose the source or destination you want to use from the menu.

These menu lists all the input and output sources and destinations available for use with your audio driver. When you choose a source or destination from the menu, it becomes your default setting, and will remain so the next time you launch Max.

The Playthrough Input option is available on Macintosh non-Intel systems only. This checkbox lets you choose whether or not the input device is ‘monitored’ directly through to the output. When playthrough is enabled, the dry signal from the input source will play through to the output mixed in with any processed signal you may be sending to the output in MSP. Disabling playthrough will enable you to control how much (if any) dry signal from the audio input is routed to the output. This option can be changed in MSP on Macintosh by sending a message to the dsp object to change it.


Monitoring CPU usage

  • Choose Audio Status... from the Options menu to show the Audio Status Window.

Three fields in the Audio Status window monitor the amount of signal processing MSP is currently doing.

CPU Utilization displays a rough estimate of how much of your computer's CPU is being allocated for crunching audio in MSP.

The number of Function Calls gives an approximate idea of how many calculations are being required for each sample of audio.

The number next to Signals Used shows the number of internal buffers that were needed by MSP to connect the signal objects used in the current signal network.


You can set the audio sampling rate with the Sampling Rate pop-up menu. For full-range audio, the recommended sampling rate is 44.1 kHz. Using a lower rate will reduce the number of samples that MSP has to calculate, thus lightening your computer’s burden, but it will also reduce the frequency range.


Setting the audio sampling rate

  • Choose Audio Status... from the Options menu to show the Audio Status Window.
  • Click on the Sampling Rate pop-up menu to show a list of the available audio sampling rates. When you choose a driver from the menu, it becomes your default sampling rate.

Max processes audio in by using a block of samples called a signal vector (for an introduction to how MSP works, click here). You can use the Audio Status Window to select the I/O vector size (i.e., the number of audio samples) of the block size that Max uses when working with audio input and audio output. You can also set the signal vector size - the number of samples that Max processes at a time.

The I/O Vector size and Signal Vector size in MSP are commonly expressed as powers of two. They can be set as low as 2 samples, and in most cases can go as high as the largest available I/O Vector Size for your audio driver. However, if the I/O Vector Size is not a power of 2, the maximum signal vector size is the largest power of 2 that divides evenly into the I/O vector size.

Optimizing the performance of any particular large audio patch when you are close to the limit of your CPU’s capability is a trial-and-error process that requires an understanding of how signal vector sizes and the Max scheduler interact. THe Audio I/O chapter of the MSP Tutorial contains a thorough discussion of CPU usage, the sampling rate, vector sizes and signal vectors, and Max scheduler parameters such as overdrive and audio interrupt.


Setting the I/O and Signal Vector Sizes

  • Choose Audio Status... from the Options menu to show the Audio Status Window.
  • Click on the I/O Vector Size or Signal Vector size pop-up menu and choose an audio vector size from the menu. When you choose a value from the menu, it becomes your default vector size.

Some audio interface cards do not provide a choice of I/O Vector Sizes. There are also some ASIO drivers whose selection of I/O Vector Sizes may not conform to the multiple-of-a-power-of-2 limitation currently imposed by MSP's ASIO support. In some cases, this limitation can be remedied by using the ASIO driver at a different sampling rate.


Overdrive

When Overdrive is enabled, Max gives priority to timing and MIDI processing over screen drawing and user interface tasks such as responding to mouse clicks. If you are primarily going to be using Max for MIDI or audio processing, Overdrive should be enabled. If you are primarily going to be using Jitter, Overdrive should be disabled. You can use the Audio Status Window to set this feature.


Enabling/disabling Overdrive

  • Choose Audio Status... from the Options menu to show the Audio Status Window.
  • Click on the checkbox in the Value column for the Scheduler in Overdrive setting to enable Overdrive. To disable Overdrive, click in the checkbox to unselect the option.

Processing audio in non real-time

MSP includes a non real-time driver that lets you to use MSP as a disk-based audio processing and synthesis system, removing the limit of how much processing you can do with your CPU in real time. Using the NonRealTime driver means that Max calculates samples in MSP independently of any physical scheduling priority, allowing you to process a vector of audio using a signal path that might take your computer more than one vector's worth of real time to compute.

Patches that use the non real-time driver typically use the dsptime~ object to see how long the audio has been turned on, and pipe their output of to sfrecord~ to capture the results.


Using the non real-time driver

  • Choose Audio Status... from the Options menu to show the Audio Status Window.
  • Click on the Driver pop-up menu and choose the NonRealTime audio driver. Max will use the NonRealTime driver, and hardware input and output are disabled.

Max patchers and audio control

Max separates every top-level patcher into its own DSP chain. This flexibility allows Max to use multiple processors to process separate top level patchers, and lets separate patchers remain separate - as one patcher is running, another patcher can be opened, closed, or edited without stopping the global DSP chain.

While you can enable, attenuate, mute, and solo the Audio Engine using the patcher window's right patcher toolbar, the Audio Status Window provides a single access point for setting low-level audio behavior.

The Enable Mixer Crossfade pop-up menu lets you set the Mixer crossfade mode.

Click in the Parallel Processing checkbox to enable parallel processing in the Mixer.

Two number boxes are provided where you can enter values for Crossfade Latency. and Crossfade Ramp Time. Crossfade Ramp Time.


Logical Input and Output Channels

In Max, you can create a dac~ or adc~ object that uses a channel number between 1 and 512. These numbers refer to what are called logical channels. Logical channels can be dynamically assigned and reassigned to the physical device channels of a particular driver using the Audio Status window and its I/O Mappings subwindow, (you can also do this remapping using the adstatus object.

The pop-up menus labeled Input Channel 1, Input Channel 2, Output Channel 1, and Output Channel 2 allow you to map the first two logical channels of I/O in MSP (i.e. the first two outlets of the adc~ object and the first two inlets of the dac~ object) to physical channels used by your audio driver. Different audio drivers give you different options - for example, the MME driver on Windows only supports two channels, so you will normally use the default options. To map additional logical channels, use the I/O Mappings window, which you can view by clicking the I/O Mappings button at the bottom of the Audio Status window.

In addition, you can use the adstatus object from within your patch to map any of the 512 logical audio I/O channels.


Mapping an output pair

  • Choose Audio Status... from the Options menu to show the Audio Status Window.
  • Click on an Output Channel pop-up menu and choose one of the available output channels that appear (the precise content of the pop-up menu will vary depending on the type of audio driver you are using).

The output you select will be used as the outlet for channel 1 or 2 for the dac~ object, and will become the new default physical outputs.


The reason for using logical and physical channels is to let you create patches that use as many channels as you need without regard to the particular hardware configuration you're using. For instance, some audio interfaces use physical device channels 1 and 2 for S/PDIF input and output. If you don't happen to have a S/PDIF-compatible audio interface, you may wish to use channels 8 and 9 instead. You can simply go to the Audio Status window and choose the eighth and ninth physical channels listed in the Input and Output pop-up menus.

Logical channels in MSP are only created if there is a dac~ or adc~ object using them. In other words, if you're only using logical outputs 1 and 2, there aren't 510 unused audio streams sitting around hogging your CPU. However, since you can mix any number of logical channels to a single physical channel if necessary, you can create a complex multi-channel setup that will allow other people to hear all of your logical channels when they use it on a two-channel output device.


Assigning multiple logical channels to a single physical channel

  • Choose Audio Status... from the Options menu to show the Audio Status Window.
  • Click on the I/O Mappings textbutton at the bottom of the Audio Status window to show the I/O Mappings subwindow.

  • For each output channel you wish to map to the first (left) output channel, choose 1 output from the pop-up menu. For each output channel you want to map to the second (right) output channel, choose 2 output from the pop-up menu. The multiple channels will now be mapped to a pair of output channels - 1 and 2.

Audio control from patcher Window

  • Click on the Audio On/Off icon on the bottom left corner of the patch window to control audio.
  • There is a stereo level meter that shows the current level of any audio throughput.

  • You can control the left of the audio in volume by dragging the Audio/Meter Gain control button that sits directly above the meters.