\hypertarget{a00929}{}\doxysection{Page Table Guide}
\label{a00929}\index{Page Table Guide@{Page Table Guide}}
How to map a plug-\/in\textquotesingle{}s parameters to control surfaces. 

\hypertarget{a00929_aax_page_table_guide_contents}{}\doxysubsection{Contents}\label{a00929_aax_page_table_guide_contents}
\begin{DoxyItemize}
\item \mbox{\hyperlink{a00929_aax_page_table_guide_01_introduction}{Introduction}} \item \mbox{\hyperlink{a00929_aax_page_table_guide_02_avid_control_surfaces}{Avid Control Surfaces}} \item \mbox{\hyperlink{a00929_aax_page_table_guide_03_plug_in_page_table_guidelines}{Plug-\/\+In Page Table Guidelines}} \item \mbox{\hyperlink{a00929_aax_page_table_guide_04_avid_center_section_page_tables}{Avid Center Section Page Tables}} \item \mbox{\hyperlink{a00929_aax_page_table_guide__eucon_page_tables}{EUCON Page Tables}} \item \mbox{\hyperlink{a00929_aax_page_table_guide_05_implementing_page_tables}{Implementing Page Tables}} \item \mbox{\hyperlink{a00929_aax_page_table_guide_a_get_parameter_value_info}{Appendix A. Get Parameter Value Info}}\end{DoxyItemize}
 \hypertarget{a00929_aax_page_table_guide_01_introduction}{}\doxysubsection{Introduction}\label{a00929_aax_page_table_guide_01_introduction}
 \hypertarget{a00929_subsection__control_surfaces_overview}{}\doxysubsubsection{Control Surfaces Overview}\label{a00929_subsection__control_surfaces_overview}
A tactile, external hardware control surface can be used to control different aspects of an application such as Pro Tools or Media Composer. Users prefer purpose-\/built control surfaces for DAW manipulation due to the control surface\textquotesingle{}s superior accessibility, tactile feel, ergonomics, and user feedback.

Avid provides several different control surface products designed to accommodate a wide variety of user needs and workflows. Avid control surfaces implement EUCON (Extended User Control), a high-\/speed open control protocol featuring high-\/resolution, responsive control over almost all software functions. Pro Tools includes support for Mackie\textquotesingle{}s HUI protocol and can interface with third-\/party control surfaces that implement this protocol.

\hypertarget{a00929_subsection__page_tables_overview}{}\doxysubsubsection{Page Tables Overview}\label{a00929_subsection__page_tables_overview}
When a control surface is attached to a DAW system running AAX plug-\/ins the surface can be used to manipulate plug-\/ins\textquotesingle{} parameters. Plug-\/ins define the mapping between their parameters and control surface encoders using {\itshape page tables}.

Abstractly, a page table is a static mapping of a plug-\/in\textquotesingle{}s controls to the interface of the control surface. Since a plug-\/in may have many more controls than the control surface can accommodate at a given time, the controls may be split across several \char`\"{}pages\char`\"{} that the user can freely switch between.

More concretely, a set of page tables is simply a set of single dimensional arrays. Each slot of the array corresponds to a particular rotary encoder or push-\/button of the control surface. By inserting control indices into the elements of the array, a plug-\/in\textquotesingle{}s controls are mapped to particular tangible controls of the CS. Page tables are stored as XML data created by the \mbox{\hyperlink{a00929_subsection_creating_page_tables_in_pete}{Page Table Editor}} application available as part of the \mbox{\hyperlink{a00948}{AAX}} SDK Toolkit on the \href{https://my.avid.com/products/cppsdk}{\texttt{ My Toolkits and Downloads}} page at avid.\+com. The XML is referenced by the plug-\/in as a resource using a call to \mbox{\hyperlink{a02254_a3326bd8e29690a352408539029a50a61}{AAX\+\_\+\+IEffect\+Descriptor\+::\+Add\+Resource\+Info()}}.

The following sections describe the various interfaces that the supported control surfaces provide for modifying plug-\/in parameters. Later, the specifics of implementation of page tables is described. 

 \hypertarget{a00929_aax_page_table_guide_02_avid_control_surfaces}{}\doxysubsection{Avid Control Surfaces}\label{a00929_aax_page_table_guide_02_avid_control_surfaces}
\hypertarget{a00929_subsection__eucon}{}\doxysubsubsection{EUCON}\label{a00929_subsection__eucon}
\hypertarget{a00929_subsubsection__avid_ptcontrol}{}\doxyparagraph{Avid Dock, Avid S1 and Avid Control app}\label{a00929_subsubsection__avid_ptcontrol}
The free Avid Control app provides a EUCON-\/enabled control surface for i\+Pad or Android tablet. The app offers a host of touch controls and visual feedback. Combining Avid Control with Avid Dock, or Artist S1 hardware adds additional touch workflows and custom control. When laying out plug-\/in parameters on its display, Avid Control uses the same page table layouts as Avid S1.

   Avid Control app display controlling an EQ plug-\/in instance 

The Avid S1 can run as either a standalone device or connected to additional units to form a larger system for audio mixing applications. The plug-\/in editing section for the S1 consists of 8 touch and velocity sensitive rotary encoders, and 8 switches. The rotary knobs are physically laid out horizontally along the top of the control surface as a group of 8, with the switches located directly below the encoders (the “\+ON” buttons). The alpha-\/numeric scribble strip and plug-\/in editing display are 8 characters wide. The S1is mapped using the Av18 page table, with the recommendation that the most important parameter is listed first. Both rotary encoders and switches are numbered right to left, as 0 through 7, and 8 through 15 respectively.

Avid Dock provides dedicated transport, focus fader and automation and navigation controls. It is designed with a dock to mount an i\+Pad or Android Tablet running the free Avid Control app, providing control of Pro Tools and plugin parameters. The Dock provides eight push-\/top, touch-\/sensitive knobs that interact with whatever knobset has been chosen in the Avid Control app. Select an EQ, plug-\/in, send, pan, or other item, and all parameters instantly map to the knobs for tweaking. The knob section is mapped using the Av81 page table, divided into 2 series of 4 knobs.

   Avid Dock with i\+Pad and Avid Control app 

\hypertarget{a00929_subsubsection__avid_s6}{}\doxyparagraph{Avid S6}\label{a00929_subsubsection__avid_s6}
Avid S6 is a modular control surface solution for the most demanding audio mixing and production environments. Built on the same proven technology that is core to the industry-\/leading ICON and System 5 product families, S6 enables mixers to quickly turn around complex projects while swiftly handling last-\/minute changes. With its unparalleled ability to simultaneously control multiple Pro Tools and other EUCON-\/enabled DAWs over simple Ethernet, S6 also speeds workflows and enables network collaboration on a single integrated platform.    Avid S6 

The main touch screen display on S6 can be configured to show graphs representing a plug-\/in\textquotesingle{}s frequency or dynamics response curves. To support this feature, a plug-\/in must implement \mbox{\hyperlink{a00900_gaa85bda4027342eb644a9c92a17da6d49}{AAX\+\_\+\+IEffect\+Parameters\+::\+Get\+Curve\+Data()}} for the applicable \mbox{\hyperlink{a00900_ga59c73d8f51c5c55d54a728eff39da884}{AAX\+\_\+\+ECurve\+Type}} selector.

\hypertarget{a00929_subsection__venue}{}\doxysubsubsection{VENUE}\label{a00929_subsection__venue}
VENUE is a revolutionary line of digital live sound systems that deliver amazing sound quality, reliability, flexibility, and ease-\/of-\/use. These live sound systems come equipped with plug-\/in editing sections, and work together to deliver studio-\/grade sound and powerful performance. For more information about using AAX plug-\/ins with VENUE systems see the \mbox{\hyperlink{a00945}{VENUE Guide}}.

\hypertarget{a00929_subsubsection__venue_s6l}{}\doxyparagraph{VENUE $\vert$ S6L}\label{a00929_subsubsection__venue_s6l}
VENUE $\vert$ S6L is a modular system designed to take on the world\textquotesingle{}s most demanding tours and events with ease. Offering unprecedented processing capabilities -\/ with over 300 processing channels -\/ S6L delivers unrelenting performance and reliability through its advanced engine design and backs it up with modern touchscreen workflows and scalability to meet any challenge.    VENUE $\vert$ S6L console 

S6L uses the same modular components as \mbox{\hyperlink{a00929_subsubsection__avid_s6}{Avid S6}}, but uses a different set of encoder layouts on these components in order to best support mixing workflows in a live sound setting. When displaying plug-\/in parameters, S6L maps the parameters onto its CKM. The leftmost two columns on the CKM are reserved (one column for constant operations, one as a \char`\"{}spacer\char`\"{} row with not assignments), leaving six columns of knob cells available for plug-\/in parameters. S6L uses the {\ttfamily \textquotesingle{}Av46\textquotesingle{}} 4x6 page table type to map plug-\/in parameters to the CKM knob cells in this mode.

If a {\ttfamily \textquotesingle{}Av46\textquotesingle{}} page table is not available from the plug-\/in, S6L uses the plug-\/in\textquotesingle{}s C$\vert$24 {\ttfamily \textquotesingle{}Fr\+TL\textquotesingle{}} layout in order to map one plug-\/in parameter to each of the 24 available knob cells. This generally leads to a very sub-\/optimal layout of parameters on the surface, both because the C$\vert$24 page table is designed for a linear layout and because it results in only one parameter assigned per knob cell, leaving two of the available encoders unassigned. Therefore, Avid strongly recommends that all AAX DSP plug-\/ins which are compatible with S6L are updated to include the new 4x6 page table layout.

S6L also supports dedicated EQ and dynamics plug-\/ins\+: a user can select a particular plug-\/in as his EQ or dynamics processor and use the surface\textquotesingle{}s EQ, Compressor/\+Limiter, and Expander/\+Gate selectors to display the plug-\/in\textquotesingle{}s parameters using a fixed layout for the given plug-\/in type. This mode uses the plug-\/in\textquotesingle{}s D-\/\+Control Center Section EQ or Dynamics page tables when mapping plug-\/in controls. In order to be selectable as the system\textquotesingle{}s EQ or dynamics processor a plug-\/in must support the \mbox{\hyperlink{a00929_aax_page_table_guide_04_avid_center_section_page_tables}{Avid center section page tables}}.

 \hypertarget{a00929_aax_page_table_guide_03_plug_in_page_table_guidelines}{}\doxysubsection{Plug-\/\+In Page Table Guidelines}\label{a00929_aax_page_table_guide_03_plug_in_page_table_guidelines}
This section is intended as a guide in setting up defined \textquotesingle{}pages\textquotesingle{} using some general rules. However, due to the sheer number of variables, it is simply not possible to account for all scenarios. But by following these suggestions, an AAX plug-\/in developer should find these guidelines useful in setting up their own plug-\/in pages. Moreover, it is hoped that a consistent and somewhat standard mapping topology will be realized across the broad range of plug-\/ins and control surfaces.

Here, we are primarily concerned with the number of controls on a control surface (CS) available for plug-\/in editing; and secondarily with the layout of controls provided for plug-\/ins. Accordingly, we need a method of mapping a plug-\/in\textquotesingle{}s control parameters to a CS, and we need to take into account the varying numbers of controls available on a CS. Using \textquotesingle{}page tables\textquotesingle{}, from a software point of view, a plugin\textquotesingle{}s control parameters can be mapped to a CS. Each page of the page table describes which of the plugin\textquotesingle{}s parameters will be accessible from the CS\textquotesingle{}s controls that are used for plug-\/in editing. Multiple pages are needed in the case where a CS has fewer controls available than the actual number of controls on a plug-\/in. We begin by stating guidelines that should be followed when mapping a plug-\/in\textquotesingle{}s control parameters to a CS. At the end of this chapter, you will find the technical details of creating page tables for your plug-\/in.

The following guidelines are for simple, generic control surfaces. More advanced CSs, such as the Mackie\+HUI and Pro\+Control, have some guidelines of their own which are listed after these.

\hypertarget{a00929_subsection__general_guidelines}{}\doxysubsubsection{General Guidelines}\label{a00929_subsection__general_guidelines}
 \doxysubparagraph*{Map a plug-\/in\textquotesingle{}s controls from left-\/top to right-\/bottom sequentially onto each page.}

  Follow the layout of the plug-\/in GUI as closely as possible, allowing the controls to sequentially map to the Control Surface in the order specified above. In so doing, the CS controls will match the plug-\/in GUI; in the sense that by counting the location of a given control on the PI GUI, one should be able to grasp the corresponding slider or pot on the CS.

 Note that Master Bypass, located in the plug-\/in\textquotesingle{}s floating inserts window, should nearly always be placed as the first control on the first page. The only time this guideline might not be followed is if the plug-\/in has a particularly favorable layout for the control surface, and where this placement of Master Bypass would disrupt it. Also, on some control surfaces a dedicated bypass is already provided, in which case the\+Master Bypass should not be mapped into the page table. 

\doxysubparagraph*{Related control parameters should be grouped together on the same page.}

  Controls that are often \textquotesingle{}adjusted\textquotesingle{} with other similar or related controls should be mapped to the same page. This enhances the users ability to tweak related parameters and alleviates unnecessary paging. 

\doxysubparagraph*{Related control parameters should not be split across pages.}

  This follows directly from the bullet above. If some closely related controls cannot all fit on the same page, it is better to leave some blanks (i.\+e., unused pots, sliders, or switches) and move onto the next page where they can be adjusted together.

 As a hypothetical example, let\textquotesingle{}s say a control surface has 5 sliders, and we are mapping an EQ PI with 6 parameters -\/ a low, mid, and high frequency band which has gain for each band. It would be best to map them to the CS as follows on page 1, from left to right on the CS\+: low freq, low gain, mid freq, mid gain, blank. Then map the remaining two parameters onto page 2\+: high freq, high gain, blank, blank, blank. 

\doxysubparagraph*{Equivalent left and right stereo parameters should remain on the same page.}

  Since adjusting the left or right parameter of a stereo PI has considerable impact on the sound field, it is important that equivalent left and right stereo controls remain on the same page. Contrast this to placing the left parameters on one page, and the right parameters on another which is not desirable. This rule also changes according to the controller\textquotesingle{}s layout. As an example, the CS-\/10 has 6 pots for PI editing arranged in a matrix of 3 rows x 2 columns. From left to right, the pots in row 1 are numbered 1 and 4. In row 2 the pots are numbered 2 and 5. Finally, the pots in row3 are numbered 3 and 6. A layout for L/R controls should be mapped param1L = control 1, param1R = control 4, and so on. 

\doxysubparagraph*{Repeat control parameters on pages where it makes sense to do so.}

  In some situations, it is desirable to have access to the same control on many pages. For example, this might mean having an output and/or input gain control available on each page of an EQ PI -\/ since EQs change the overall gain. This is especially desirable if there would otherwise be blanks (i.\+e., unused pots, sliders, or switches). 



 \hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables}{}\doxysubsection{Avid Center Section Page Tables}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables}
 \char`\"{}\+Center Section\char`\"{} page tables provide a mapping of plug-\/in parameters to dedicated functions. These page tables are used by D-\/\+Control/\+D-\/\+Command (ICON), D-\/\+Show (VENUE), and EUCON-\/enabled consoles to provide a consistent user experience when interacting with EQ and Dynamics plug-\/ins.

There are three Center Section page table types\+:

\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|}
\hline
\cellcolor{\tableheadbgcolor}\textbf{ Table type }&\cellcolor{\tableheadbgcolor}\textbf{ Plug-\/in category  }\\\cline{1-2}
\endfirsthead
\hline
\endfoot
\hline
\cellcolor{\tableheadbgcolor}\textbf{ Table type }&\cellcolor{\tableheadbgcolor}\textbf{ Plug-\/in category  }\\\cline{1-2}
\endhead
{\ttfamily \textquotesingle{}Dg\+EQ\textquotesingle{}} &\mbox{\hyperlink{a00446_aef9637518fb1ac0e2f403444c73aba4aad84edabff7d1d8732079b467c07dedcc}{EQ}}  \\\cline{1-2}
{\ttfamily \textquotesingle{}Dg\+CP\textquotesingle{}} &Compressor/\+Limiter (\mbox{\hyperlink{a00446_aef9637518fb1ac0e2f403444c73aba4aa1e8d5202983c58aa0346a9a547f55bd9}{Dynamics}})  \\\cline{1-2}
{\ttfamily \textquotesingle{}Dg\+GT\textquotesingle{}} &Expander/\+Gate (\mbox{\hyperlink{a00446_aef9637518fb1ac0e2f403444c73aba4aa1e8d5202983c58aa0346a9a547f55bd9}{Dynamics}})  \\\cline{1-2}
\end{longtabu}


Dynamics plug-\/ins that include both Compressor/\+Limiter and Expander/\+Gate processing should support both {\ttfamily Dg\+CP} and {\ttfamily Dg\+GT} page tables.

The control surfaces which use these page tables each use a different physical layout of parameter functions onto the surface. These layouts have been designed to provide an intuitive and consistent way to control EQ and Dynamics plug-\/ins in a way that is appropriate for the encoder layout on each surface. By adding these page tables to your EQ and Dynamics plug-\/ins, your plug-\/ins will map correctly to all products which use these tables.

\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_guidelines}{}\doxysubsubsection{Center Section Page Table Guidelines}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_guidelines}
 It is important to note that Center Section page table types are different from all other page table types in a fundamental way\+:

 {\bfseries{ Each slot in the page table is {\itshape pre-\/defined} for a specific type of control. Therefore, your plug-\/in must conform to this pre-\/defined layout.}} 

The purpose of these tables is to give the user a standard interface for EQ and Dynamics plug-\/ins -\/ no matter what particular plug-\/in they are using. It allows the user to quickly access the most common controls in their favorite EQ or Dynamics plug-\/ins. This is different from all other page table types because the only restriction on other page table types is that -\/ for types that have dedicated discrete controls -\/ you cannot place continuous controls in a dedicated switch. However, the user will also know that if there are controls they would like to access that are missing from the Center Section, they can access them through one of the other layouts available on the control surface.

You\textquotesingle{}ll notice looking at the pictures of these sections in D-\/\+Control (below) that the only scribble strips are in the center of the section. Unlike the Channel Strip section, there is not a scribble strip to label each control. The control\textquotesingle{}s purpose is physically printed on the control surface. This model of hard-\/coding \char`\"{}center section\char`\"{} plug-\/in functions to specific encoders is followed on VENUE systems and on EUCON-\/enabled control surfaces which use these table types as well. That is why it is imperative that your plug-\/in conform to the pre-\/defined layout.

Because of the strict definitions of the layouts, it may mean that 1) not all of the controls for your plug-\/in can fit in these sections, and that 2) there may be controls your plug-\/in does not have and therefore are blank in this view. For example, let\textquotesingle{}s say your plug-\/in is a 10-\/band EQ that does not have individual Q controls on any of the bands. Such a plug-\/in will be forced to leave off some of its bands, even though all Q controls specific to the bands on the page table are empty. That is fine as there will be another way for the user to display the plug-\/in on the control surface that will include all of the controls. For example, on D-\/\+Control, a user can also view an EQ or Dynamics plug-\/in in both the Channel Strip and Custom Fader modes which will display all controls. The important point is this\+:

 {\bfseries{ Do not assign a parameter to a Center Section page table slot that does not match the parameter\textquotesingle{}s function.}} 

If you do, the parameter\textquotesingle{}s function will be mislabeled and will cause confusion for the user.

You should only implement one page for these Center Section layouts. This is different from the other page table types, where it is expected to implement as many pages as necessary to give access to all controls in the plug-\/in. In the case of the Center Section layouts, you should only define one page, except in the case when the plug-\/in has separate controls for each channel (Left, Right, Center, etc.).

 {\bfseries{ More than one page in Center Section layouts is allowed {\itshape  only} if the plug-\/in has separate controls for each channel.}} 

For example, if your EQ plug-\/in allows the user to change the EQ differently for the left and right channels, then you would implement two pages for the Dg\+EQ page table. You\textquotesingle{}ll notice in the pictures below for the EQ and Dynamics sections of D-\/\+Control, there are buttons labeled for channel selections (L, LC, C, RC, R, etc.). The control surface will automatically map the pages to the buttons, according to the standard order for surround channels. For example, in a stereo EQ, Left controls should be in the first page, and Right controls in the second. D-\/\+Control will automatically map page 1 to the L button and page 2 to the R button.

\begin{DoxyNote}{Note}
We cannot emphasize strongly enough that trying to fill in all of your controls into these layouts, whether it is by creating extra pages, or by filling in empty slots, will only serve to confuse the user. You must adhere strictly to the guidelines given for these sections.
\end{DoxyNote}
\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_guidelines_eq}{}\doxyparagraph{EQ Center Section Page Table Guidelines}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_guidelines_eq}
 To demonstrate the guidelines for EQ Center Section tables, we will use the D-\/\+Control Center Section encoders. Since all control surfaces which use Center Section page tables use a similar approach with hard-\/coded layouts for these types, the guidelines in this section are equally applicable to all control surfaces.

Take a look at D-\/\+Control\textquotesingle{}s EQ section more closely in the image below.

   D-\/\+Control EQ Center Section. 

It supports a maximum of seven bands of EQ, each a vertical column of controls and labeled from left to right as follows\+: 
\begin{DoxyItemize}
\item HPF (High-\/\+Pass Filter, nominally a high-\/pass filter or low frequency notch filter)  
\item LF (Low Frequency, nominally a parametric EQ or low frequency shelf filter)  
\item LMF (Low-\/\+Mid Frequency, nominally a parametric EQ)  
\item MF (Mid Frequency, nominally a parametric EQ)  
\item HMF (High-\/\+Mid Frequency, nominally a parametric EQ)  
\item HF (High Frequency, nominally a parametric EQ or high frequency shelf filter)  
\item LPF (Low-\/\+Pass Filter, nominally a low-\/pass filter or high frequency notch filter)  
\end{DoxyItemize}

Each of these bands has a Q/\+Slope control, Frequency control, and an In Circuit/ Out of Circuit button. Five of the bands have an additional Gain control. Four of the bands have an additional EQ type selector switch, each surrounded by a pair of EQ type LED\textquotesingle{}s. Input and Output Level controls are also available, as is a multi-\/channel Link button in the middle section.

\begin{DoxyNote}{Note}
If an EQ plug-\/in implements a band that does not have an In/\+Out Circuit control or a Type control, but wants the related LED\textquotesingle{}s to light properly, please see the discussion of the {\ttfamily Get\+Parameter\+Value\+Info()} API below.
\end{DoxyNote}
The topmost rotary encoders in the HPF, LF, HF, and LPF bands are not labeled but they are indeed Q / Slope controls. The EQ type selector switches located between the Q/\+Slope and Frequency knobs control the type of filter on that band. Thus they define the behavior of all controls in that band (and not just the unlabeled Q/\+Slope control).

The EQ page table indices map to the dedicated EQ Center Section hardware encoders as follows\+:


\begin{DoxyItemize}
\item Equalization {\ttfamily \textquotesingle{}Dg\+EQ\textquotesingle{}}  
\begin{DoxyEnumerate}
\item High Pass -\/ In Circuit switch  
\item High Pass -\/ Type switch  
\item High Pass -\/ Frequency  
\item High Pass -\/ Q/\+Slope  
\item Low Filter -\/ In Circuit switch  
\item Low Filter -\/ Type switch  
\item Low Filter -\/ Gain  
\item Low Filter -\/ Frequency  
\item Low Filter -\/ Q/\+Slope  
\item Low-\/\+Mid Filter -\/ In Circuit switch  
\item Low-\/\+Mid Filter -\/ Type switch  
\item Low-\/\+Mid Filter -\/ Gain  
\item Low-\/\+Mid Filter -\/ Frequency  
\item Low-\/\+Mid Filter -\/ Q/\+Slope  
\item Mid Filter -\/ In Circuit switch  
\item Mid Filter -\/ Type switch  
\item Mid Filter -\/ Gain  
\item Mid Filter -\/ Frequency  
\item Mid Filter -\/ Q/\+Slope  
\item High-\/\+Mid Filter -\/ In Circuit switch  
\item High-\/\+Mid Filter -\/ Type switch  
\item High-\/\+Mid Filter -\/ Gain  
\item High-\/\+Mid Filter -\/ Frequency  
\item High-\/\+Mid Filter -\/ Q/\+Slope  
\item High Filter -\/ In Circuit switch  
\item High Filter -\/ Type switch  
\item High Filter -\/ Gain  
\item High Filter -\/ Frequency  
\item High Filter -\/ Q/\+Slope  
\item Low Pass -\/ In Circuit switch  
\item Low Pass -\/ Type switch  
\item Low Pass -\/ Frequency  
\item Low Pass -\/ Q/\+Slope  
\item Input Gain  
\item Output Gain  
\item Multi-\/channel Link switch  
\item High Pass -\/ Q/\+Slope alternate parameter  
\item Low Filter -\/ Q/\+Slope alternate parameter  
\item Low-\/\+Mid Filter -\/ Q/\+Slope alternate parameter  
\item Mid Filter -\/ Q/\+Slope alternate parameter  
\item High-\/\+Mid Filter -\/ Q/\+Slope alternate parameter  
\item High Filter -\/ Q/\+Slope alternate parameter  
\item Low Pass -\/ Q/\+Slope alternate parameter  
\end{DoxyEnumerate}
\end{DoxyItemize}

\begin{DoxyNote}{Note}
In order to use the \char`\"{}\+Q/\+Slope alternate parameter\char`\"{} functions in the EQ page table, a plug-\/in must respond to the \mbox{\hyperlink{a00446_aa169208a2ce713fa021e20deb2eaf608a1a0d975a333d3aee81b22f878697e9c4}{AAX\+\_\+e\+Page\+Table\+\_\+\+Use\+Alternate\+Control}} selector in the \mbox{\hyperlink{a01850_a0d3436cb88b4a86fe82a663221a9cfef}{Get\+Parameter\+Value\+Info()}} method. When the band type is changed, the control surface will call into the plug-\/in with this selector to determine if the control in the \char`\"{}\+Alt\char`\"{} position should be used. Please see the discussion of the \mbox{\hyperlink{a01850_a0d3436cb88b4a86fe82a663221a9cfef}{Get\+Parameter\+Value\+Info()}} below.
\end{DoxyNote}
If your plug-\/in supports fewer than seven simultaneous bands of EQ, you have some options for where to place them. We recommend the following placement guidelines so users have consistency with various EQ plug-\/ins. 
\begin{DoxyItemize}
\item If you only have one band of EQ, use the LF band.  
\item If you have one to four fully parametric bands, use LF, LMF, HMF, and HF (starting from left to right). (Skip the MF band.)  
\item If you have up to two shelving filters and two parametric bands, use LF (LF shelf), LMF (para), HMF (para), and HF (HF shelf). (Skip the MF band.)   
\end{DoxyItemize}

Note that this layout includes a few additional functions not in D-\/\+Control\textquotesingle{}s EQ section. These extra functions are the \char`\"{}\+Low-\/\+Mid Filter -\/ Type switch\char`\"{}, \char`\"{}\+Mid Filter -\/ Type switch\char`\"{}, and \char`\"{}\+High-\/\+Mid Filter -\/ Type switch\char`\"{} slots.

\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_guidelines_dyn}{}\doxyparagraph{Dynamics Center Section Page Table Guidelines}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_guidelines_dyn}
 To demonstrate the guidelines for Dynamics Center Section tables, we will use the D-\/\+Control Center Section encoders. As with the EQ Center Section tables above, all control surfaces which use Center Section page tables use a similar approach with hard-\/coded layouts for these types, the guidelines in this section are equally applicable to all control surfaces.

The D-\/\+Control Dynamics section is shown below. Keep in mind that the D-\/\+Control\textquotesingle{}s Dynamics section displays page tables for both the Compressor/\+Limiter page table type and the Expander/\+Gate type. Therefore, the function of certain rotaries and switches differs depending on which page table type has been loaded. In these cases, there is a LED to indicate the current function of a rotary or switch.

   D-\/\+Control Dynamics Center Section. 

Several rotary encoders have alternate uses while others are always dedicated to one function. The two page tables\textquotesingle{} indices map to the dedicated Dynamics Center Section hardware encoders as follows\+:


\begin{DoxyItemize}
\item Compressor/\+Limiter {\ttfamily \textquotesingle{}Dg\+CP\textquotesingle{}}  
\begin{DoxyEnumerate}
\item Threshold  
\item Ratio  
\item Attack Time  
\item Release Time  
\item Knee  
\item Make-\/up Gain  
\item High Pass -\/ In Circuit / Out of Circuit switch  
\item High Pass -\/ EQ Type switch (with notch and high-\/pass filter LEDs) 
\item High Pass -\/ Frequency  
\item High Pass -\/ Q/\+Slope  
\item Low Pass -\/ In Circuit / Out of Circuit switch  
\item Low Pass -\/ EQ Type switch (with notch and low-\/pass filter LEDs) 
\item Low Pass -\/ Frequency  
\item Low Pass -\/ Q/\+Slope  
\item External Key switch (middle section)  
\item Key Listen switch (middle section)  
\item Input Gain  
\item Output Gain  
\item Multi-\/channel Link switch (middle section)  
\item Depth (not included on ICON)  
\end{DoxyEnumerate}
\item Expander/\+Gate {\ttfamily \textquotesingle{}Dg\+GT\textquotesingle{}}  
\begin{DoxyEnumerate}
\item Threshold  
\item Ratio  
\item Range  
\item Attack Time  
\item Release Time  
\item Hysteresis  
\item Hold  
\item High Pass -\/ In Circuit / Out of Circuit switch  
\item High Pass -\/ EQ Type switch (with notch and high-\/pass filter LEDs) 
\item High Pass -\/ Frequency  
\item High Pass -\/ Q/\+Slope  
\item Low Pass -\/ In Circuit / Out of Circuit switch  
\item Low Pass -\/ EQ Type switch (with notch and low-\/pass filter LEDs) 
\item Low Pass -\/ Frequency  
\item Low Pass -\/ Q/\+Slope  
\item External Key switch (middle section)  
\item Key Listen switch (middle section)  
\item Input Gain  
\item Output Gain  
\item Multi-\/channel Link switch (middle section)  
\item Knee (not included on ICON)  
\end{DoxyEnumerate}
\end{DoxyItemize}

The compressor/limiter page table, Dg\+CP, supports all the controls above except Range, Hysteresis, and Hold. (As you create the page table in the \mbox{\hyperlink{a00929_subsection_creating_page_tables_in_pete}{Page Table Editor}}, this is clear.)

The expander/gate page table, Dg\+GT, supports all the controls above except Knee and Makeup Gain. It does support both Ratio and Range. The user presses the Page button to select between them.

A plug-\/in can support both Dg\+CP and Dg\+GT page tables. Again, the user presses the Page button to select between them. If a plug-\/in supports both of these page tables and the Dg\+GT page table includes support for both Ratio and Range controls, pressing the Page button will switch between all available controls as follows\+:

Dg\+CP -\/\texorpdfstring{$>$}{>} Dg\+GT with Ratio -\/\texorpdfstring{$>$}{>} Dg\+GT with Range (and all other controls unchanged)-\/\texorpdfstring{$>$}{>} Dg\+CP -\/\texorpdfstring{$>$}{>} ...

\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_eucon_mapping}{}\doxysubsubsection{Center Section Parameter Mapping to Single-\/\+Column/\+Row Layouts}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_eucon_mapping}
 The following tables show the layout mapping and hard-\/coded names for center section page tables on EUCON surfaces which use single-\/column or single-\/row layouts for Eq and Dyn plug-\/in modes. The tables show the assignment of specific center section table indices to cells on the EUCON control surface. Each EUCON control surface cell includes three encoders\+: a rotary knob encoder and two push-\/button encoders. These tables use the following codes to indicate encoders in each control surface cell\+:


\begin{DoxyItemize}
\item Knob = Knob encoder  
\item Knob(\+Sel I) = Knob encoder with Sel active  
\item Knob(\+Sel O) = Knob encoder with Sel inactive  
\item {\itshape In} = In switch  
\end{DoxyItemize}

\begin{DoxyNote}{Note}
For center section page table layouts the \char`\"{}\+Sel\char`\"{} push-\/button encoder is only used to toggle the rotary encoder between two possible parameters. It is never mapped to a single discrete parameter in these layouts.

With some versions of EUCON, the cell mapping on the first page is \char`\"{}reversed\char`\"{} relative to the second page when the surface is laid out horizontally; the first page moves left to right through increasing cell indices, while later pages move right to left.
\end{DoxyNote}
\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_eucon_mapping_DgEQ}{}\doxyparagraph{\textquotesingle{}\+Dg\+EQ\textquotesingle{} Page\+Table -\/ Equalizer}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_eucon_mapping_DgEQ}
 \tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{18}{|X[-1]}|}
\hline
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 1 }}&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 2  }}\\\cline{1-18}
\endfirsthead
\hline
\endfoot
\hline
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 1 }}&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 2  }}\\\cline{1-18}
\endhead
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Far from user / Left }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Close to user / Right }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Far from user / Left }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Close to user / Right  }}\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ Function }&\cellcolor{\tableheadbgcolor}\textbf{ 8 }&\cellcolor{\tableheadbgcolor}\textbf{ 7 }&\cellcolor{\tableheadbgcolor}\textbf{ 6 }&\cellcolor{\tableheadbgcolor}\textbf{ 5 }&\cellcolor{\tableheadbgcolor}\textbf{ 4 }&\cellcolor{\tableheadbgcolor}\textbf{ 3 }&\cellcolor{\tableheadbgcolor}\textbf{ 2 }&\cellcolor{\tableheadbgcolor}\textbf{ 1 }&\cellcolor{\tableheadbgcolor}\textbf{ 16 }&\cellcolor{\tableheadbgcolor}\textbf{ 15 }&\cellcolor{\tableheadbgcolor}\textbf{ 14 }&\cellcolor{\tableheadbgcolor}\textbf{ 13 }&\cellcolor{\tableheadbgcolor}\textbf{ 12 }&\cellcolor{\tableheadbgcolor}\textbf{ 11 }&\cellcolor{\tableheadbgcolor}\textbf{ 10 }&\cellcolor{\tableheadbgcolor}\textbf{ 9  }\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 1 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF In/\+Out }&&&&&&&&&&&&&&Knob/{\itshape In} &&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 2 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Type }&&&&&&&&&&&&&{\itshape In} &&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 3 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Freq }&&&&&&&&&&&&&Knob (Sel O) &&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 4 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Q }&&&&&&&&&&&&&Knob (Sel I) &&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 5 }&\cellcolor{\tableheadbgcolor}\textbf{ Lo In/\+Out }&&&&&&&{\itshape In} &&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 6 }&\cellcolor{\tableheadbgcolor}\textbf{ Lo Type }&&&&&&&&{\itshape In} &&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 7 }&\cellcolor{\tableheadbgcolor}\textbf{ Lo Gain }&&&&&&&Knob &&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 8 }&\cellcolor{\tableheadbgcolor}\textbf{ Lo Freq }&&&&&&&&Knob (Sel O) &&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 9 }&\cellcolor{\tableheadbgcolor}\textbf{ Lo Q }&&&&&&&&Knob (Sel I) &&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 10 }&\cellcolor{\tableheadbgcolor}\textbf{ Lo Mid In/\+Out }&&&&&{\itshape In} &&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 11 }&\cellcolor{\tableheadbgcolor}\textbf{ Lo Mid Type }&&&&&&{\itshape In} &&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 12 }&\cellcolor{\tableheadbgcolor}\textbf{ Lo Mid Gain }&&&&&Knob &&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 13 }&\cellcolor{\tableheadbgcolor}\textbf{ Lo Mid Freq }&&&&&&Knob (Sel O) &&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 14 }&\cellcolor{\tableheadbgcolor}\textbf{ Lo Mid Q }&&&&&&Knob (Sel I) &&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 15 }&\cellcolor{\tableheadbgcolor}\textbf{ Mid In/\+Out }&&&&&&&&&&&&{\itshape In} &&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 16 }&\cellcolor{\tableheadbgcolor}\textbf{ Mid Type }&&&&&&&&&&&{\itshape In} &&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 17 }&\cellcolor{\tableheadbgcolor}\textbf{ Mid Gain }&&&&&&&&&&&&Knob &&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 18 }&\cellcolor{\tableheadbgcolor}\textbf{ Mid Freq }&&&&&&&&&&&Knob (Sel O) &&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 19 }&\cellcolor{\tableheadbgcolor}\textbf{ Mid Q }&&&&&&&&&&&Knob (Sel I) &&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 20 }&\cellcolor{\tableheadbgcolor}\textbf{ Hi Mid In/\+Out }&&&{\itshape In} &&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 21 }&\cellcolor{\tableheadbgcolor}\textbf{ Hi Mid Type }&&&&{\itshape In} &&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 22 }&\cellcolor{\tableheadbgcolor}\textbf{ Hi Mid Gain }&&&Knob &&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 23 }&\cellcolor{\tableheadbgcolor}\textbf{ Hi Mid Freq }&&&&Knob (Sel O) &&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 24 }&\cellcolor{\tableheadbgcolor}\textbf{ Hi Mid Q }&&&&Knob (Sel I) &&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 25 }&\cellcolor{\tableheadbgcolor}\textbf{ Hi In/\+Out }&{\itshape In} &&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 26 }&\cellcolor{\tableheadbgcolor}\textbf{ Hi Type }&&{\itshape In} &&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 27 }&\cellcolor{\tableheadbgcolor}\textbf{ Hi Gain }&Knob &&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 28 }&\cellcolor{\tableheadbgcolor}\textbf{ Hi Freq }&&Knob (Sel O) &&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 29 }&\cellcolor{\tableheadbgcolor}\textbf{ Hi Q }&&Knob (Sel I) &&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 30 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF In/\+Out }&&&&&&&&&&Knob/{\itshape In} &&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 31 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Type }&&&&&&&&&{\itshape In} &&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 32 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Freq }&&&&&&&&&Knob (Sel O) &&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 33 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Q }&&&&&&&&&Knob (Sel I) &&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 34 }&\cellcolor{\tableheadbgcolor}\textbf{ Input Level }&&&&&&&&&&&&&&&Knob &\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 35 }&\cellcolor{\tableheadbgcolor}\textbf{ Output Level }&&&&&&&&&&&&&&&&Knob  \\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 36 }&\cellcolor{\tableheadbgcolor}\textbf{ Link }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 37 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Q Alt }&&&&&&&&&&&&&Knob (Sel I)\textsuperscript{$\ast$} &&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 38 }&\cellcolor{\tableheadbgcolor}\textbf{ Lo Q Alt }&&&&&&&Knob (Sel I)\textsuperscript{$\ast$} &&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 39 }&\cellcolor{\tableheadbgcolor}\textbf{ Lo Mid Q Alt }&&&&&Knob (Sel I)\textsuperscript{$\ast$} &&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 40 }&\cellcolor{\tableheadbgcolor}\textbf{ Mid Q Alt }&&&&&&&&&&Knob (Sel I)\textsuperscript{$\ast$} &&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 41 }&\cellcolor{\tableheadbgcolor}\textbf{ Hi Mid Q Alt }&&&Knob (Sel I)\textsuperscript{$\ast$} &&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 42 }&\cellcolor{\tableheadbgcolor}\textbf{ Hi Q Alt }&Knob (Sel I)\textsuperscript{$\ast$} &&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 43 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Q Alt }&&&&&&&&&Knob (Sel I)\textsuperscript{$\ast$} &&&&&&&\\\cline{1-18}
\end{longtabu}


{\itshape Notes} 
\begin{DoxyItemize}
\item The multi-\/channel link switch (index 36) is not mapped to any encoder in this layout  
\item The knob assignments marked with an asterisk will be assigned depending on the plug-\/in\textquotesingle{}s response to \mbox{\hyperlink{a02066_a1702de6d62b5b41b6a8b2f510300392b}{AAX\+\_\+\+IEffect\+Parameters\+::\+Get\+Parameter\+Value\+Info()}} with the \mbox{\hyperlink{a00446_aa169208a2ce713fa021e20deb2eaf608a1a0d975a333d3aee81b22f878697e9c4}{AAX\+\_\+e\+Page\+Table\+\_\+\+Use\+Alternate\+Control}} selector. If the plug-\/in provides \mbox{\hyperlink{a00446_abbcc8b4e8207262a5dd9e32047a51a29aa63097dc0b27e51411f30b06b2db26f1}{AAX\+\_\+e\+Use\+Alternate\+Control\+\_\+\+Yes}} then the assignment marked with an asterisk will be used.  
\end{DoxyItemize}

\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_eucon_mapping_DgCPDgGT}{}\doxyparagraph{Both \textquotesingle{}\+Dg\+CP\textquotesingle{} and \textquotesingle{}\+Dg\+GT\textquotesingle{} Page\+Tables -\/ Multi-\/dynamics}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_eucon_mapping_DgCPDgGT}
 If both Dynamics center section page table types are defined for the plug-\/in then EUCON control surfaces will use the following mapping.

\begin{DoxyNote}{Note}
Some control surfaces may only partially follow this mapping. For example, the mapping of the Artist Mix control surface in Dyn mode uses two pages\+: it follows this mapping for encoder cells 1-\/8 on the first page and follows the \mbox{\hyperlink{a00929_aax_page_table_guide_04_avid_center_section_page_tables_eucon_mapping_DgCP}{\textquotesingle{}Dg\+CP\textquotesingle{}-\/only mapping}} for encoder cells 9-\/16 on the second page.
\end{DoxyNote}
\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{18}{|X[-1]}|}
\hline
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 1 }}&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 2  }}\\\cline{1-18}
\endfirsthead
\hline
\endfoot
\hline
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 1 }}&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 2  }}\\\cline{1-18}
\endhead
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Far from user / Left }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Close to user / Right }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Close to user / Left }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Far from user / Right  }}\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ Function }&\cellcolor{\tableheadbgcolor}\textbf{ 8 }&\cellcolor{\tableheadbgcolor}\textbf{ 7 }&\cellcolor{\tableheadbgcolor}\textbf{ 6 }&\cellcolor{\tableheadbgcolor}\textbf{ 5 }&\cellcolor{\tableheadbgcolor}\textbf{ 4 }&\cellcolor{\tableheadbgcolor}\textbf{ 3 }&\cellcolor{\tableheadbgcolor}\textbf{ 2 }&\cellcolor{\tableheadbgcolor}\textbf{ 1 }&\cellcolor{\tableheadbgcolor}\textbf{ 16 }&\cellcolor{\tableheadbgcolor}\textbf{ 15 }&\cellcolor{\tableheadbgcolor}\textbf{ 14 }&\cellcolor{\tableheadbgcolor}\textbf{ 13 }&\cellcolor{\tableheadbgcolor}\textbf{ 12 }&\cellcolor{\tableheadbgcolor}\textbf{ 11 }&\cellcolor{\tableheadbgcolor}\textbf{ 10 }&\cellcolor{\tableheadbgcolor}\textbf{ 9  }\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 1 }&\cellcolor{\tableheadbgcolor}\textbf{ C Threshold }&&&&&&Knob &&&&Knob &&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 2 }&\cellcolor{\tableheadbgcolor}\textbf{ C Ratio }&&&&&Knob &&&&Knob &&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 3 }&\cellcolor{\tableheadbgcolor}\textbf{ C Attack Time }&&&&&&&Knob &&&&&Knob &&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 4 }&\cellcolor{\tableheadbgcolor}\textbf{ C Release Time }&&&&&&&&Knob &&&&&Knob &&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 5 }&\cellcolor{\tableheadbgcolor}\textbf{ C Knee }&&&&&&&&&&&Knob &&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 6 }&\cellcolor{\tableheadbgcolor}\textbf{ C Gain Makeup }&&&&&&&&&&&&&&&Knob &\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 7 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Enabled }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 8 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Type }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 9 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Freq }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 10 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Q }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 11 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Enabled }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 12 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Type }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 13 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Freq }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 14 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Q }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 15 }&\cellcolor{\tableheadbgcolor}\textbf{ Ext Key }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 16 }&\cellcolor{\tableheadbgcolor}\textbf{ Key Listen }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 17 }&\cellcolor{\tableheadbgcolor}\textbf{ Input Gain }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 18 }&\cellcolor{\tableheadbgcolor}\textbf{ Output Gain }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 19 }&\cellcolor{\tableheadbgcolor}\textbf{ Link }&&&&&&&&&&&&&&Knob &&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 20 }&\cellcolor{\tableheadbgcolor}\textbf{ Depth }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 1 }&\cellcolor{\tableheadbgcolor}\textbf{ X Threshold }&&Knob &&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 2 }&\cellcolor{\tableheadbgcolor}\textbf{ X Ratio }&Knob &&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 3 }&\cellcolor{\tableheadbgcolor}\textbf{ X Range }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 4 }&\cellcolor{\tableheadbgcolor}\textbf{ X Attack Time }&&&Knob &&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 5 }&\cellcolor{\tableheadbgcolor}\textbf{ X Release Time }&&&&Knob &&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 6 }&\cellcolor{\tableheadbgcolor}\textbf{ X Hysteresis }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 7 }&\cellcolor{\tableheadbgcolor}\textbf{ X Hold }&&&&&&&&&&&&&&&&\\\cline{1-18}
\end{longtabu}


\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{18}{|X[-1]}|}
\hline
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 3 }}&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 4  }}\\\cline{1-18}
\endfirsthead
\hline
\endfoot
\hline
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 3 }}&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 4  }}\\\cline{1-18}
\endhead
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Close to user / Left }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Far from user / Right }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Close to user / Left }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Far from user / Right  }}\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ Function }&\cellcolor{\tableheadbgcolor}\textbf{ 24 }&\cellcolor{\tableheadbgcolor}\textbf{ 23 }&\cellcolor{\tableheadbgcolor}\textbf{ 22 }&\cellcolor{\tableheadbgcolor}\textbf{ 21 }&\cellcolor{\tableheadbgcolor}\textbf{ 20 }&\cellcolor{\tableheadbgcolor}\textbf{ 19 }&\cellcolor{\tableheadbgcolor}\textbf{ 18 }&\cellcolor{\tableheadbgcolor}\textbf{ 17 }&\cellcolor{\tableheadbgcolor}\textbf{ 32 }&\cellcolor{\tableheadbgcolor}\textbf{ 31 }&\cellcolor{\tableheadbgcolor}\textbf{ 30 }&\cellcolor{\tableheadbgcolor}\textbf{ 29 }&\cellcolor{\tableheadbgcolor}\textbf{ 28 }&\cellcolor{\tableheadbgcolor}\textbf{ 27 }&\cellcolor{\tableheadbgcolor}\textbf{ 26 }&\cellcolor{\tableheadbgcolor}\textbf{ 25  }\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 1 }&\cellcolor{\tableheadbgcolor}\textbf{ C Threshold }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 2 }&\cellcolor{\tableheadbgcolor}\textbf{ C Ratio }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 3 }&\cellcolor{\tableheadbgcolor}\textbf{ C Attack Time }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 4 }&\cellcolor{\tableheadbgcolor}\textbf{ C Release Time }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 5 }&\cellcolor{\tableheadbgcolor}\textbf{ C Knee }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 6 }&\cellcolor{\tableheadbgcolor}\textbf{ C Gain Makeup }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 7 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Enabled }&&&&&&&&&&&&&&Knob/{\itshape In} &&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 8 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Type }&&&&&&&&&&&&&{\itshape In} &&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 9 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Freq }&&&&&&&&&&&&&Knob (Sel O) &&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 10 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Q }&&&&&&&&&&&&&Knob (Sel I) &&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 11 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Enabled }&&&&&&&&&&&&Knob/{\itshape In} &&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 12 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Type }&&&&&&&&&&&{\itshape In} &&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 13 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Freq }&&&&&&&&&&&Knob (Sel O) &&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 14 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Q }&&&&&&&&&&&Knob (Sel I) &&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 15 }&\cellcolor{\tableheadbgcolor}\textbf{ Ext Key }&&&&&&&&&&Knob/{\itshape In} &&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 16 }&\cellcolor{\tableheadbgcolor}\textbf{ Key Listen }&&&&&&&&&Knob/{\itshape In} &&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 17 }&\cellcolor{\tableheadbgcolor}\textbf{ Input Gain }&&&&&&&&&&&&&&Knob &&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 18 }&\cellcolor{\tableheadbgcolor}\textbf{ Output Gain }&&&&&&&&&&&&&&&Knob &\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 19 }&\cellcolor{\tableheadbgcolor}\textbf{ Link }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+CP} 20 }&\cellcolor{\tableheadbgcolor}\textbf{ Depth }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 1 }&\cellcolor{\tableheadbgcolor}\textbf{ X Threshold }&&Knob &&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 2 }&\cellcolor{\tableheadbgcolor}\textbf{ X Ratio }&Knob &&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 3 }&\cellcolor{\tableheadbgcolor}\textbf{ X Range }&&&&&&Knob &&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 4 }&\cellcolor{\tableheadbgcolor}\textbf{ X Attack Time }&&&&Knob &&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 5 }&\cellcolor{\tableheadbgcolor}\textbf{ X Release Time }&&&&&Knob &&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 6 }&\cellcolor{\tableheadbgcolor}\textbf{ X Hysteresis }&&&&&&&&Knob &&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ {\ttfamily Dg\+GT} 7 }&\cellcolor{\tableheadbgcolor}\textbf{ X Hold }&&&&&&&Knob &&&&&&&&&\\\cline{1-18}
\end{longtabu}


{\itshape Notes} 
\begin{DoxyItemize}
\item Neither table\textquotesingle{}s multi-\/channel link switch ({\ttfamily \textquotesingle{}Dg\+CP\textquotesingle{}} index 19 and {\ttfamily \textquotesingle{}Dg\+GT\textquotesingle{}} index 20) is mapped to an encoder in this layout  
\item The {\ttfamily \textquotesingle{}Dg\+GT\textquotesingle{}} filter, external key, and gain parameters (indices 8 through 19) are not mapped to any encoders in this layout  
\end{DoxyItemize}

\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_eucon_mapping_DgCP}{}\doxyparagraph{\textquotesingle{}\+Dg\+CP\textquotesingle{} Page\+Table -\/ Compressor/\+Limiter}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_eucon_mapping_DgCP}
 If the plug-\/in defines a {\ttfamily \textquotesingle{}Dg\+CP\textquotesingle{}} page table but does not define a {\ttfamily \textquotesingle{}Dg\+GT\textquotesingle{}} page table then EUCON control surfaces will use the following mapping.

\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{18}{|X[-1]}|}
\hline
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 1\textsuperscript{$\ast$} }}&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 2  }}\\\cline{1-18}
\endfirsthead
\hline
\endfoot
\hline
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 1\textsuperscript{$\ast$} }}&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 2  }}\\\cline{1-18}
\endhead
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Far from user / Left }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Close to user / Right }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Far from user / Left }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Close to user / Right  }}\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ Function }&\cellcolor{\tableheadbgcolor}\textbf{ 8 }&\cellcolor{\tableheadbgcolor}\textbf{ 7 }&\cellcolor{\tableheadbgcolor}\textbf{ 6 }&\cellcolor{\tableheadbgcolor}\textbf{ 5 }&\cellcolor{\tableheadbgcolor}\textbf{ 4 }&\cellcolor{\tableheadbgcolor}\textbf{ 3 }&\cellcolor{\tableheadbgcolor}\textbf{ 2 }&\cellcolor{\tableheadbgcolor}\textbf{ 1 }&\cellcolor{\tableheadbgcolor}\textbf{ 16 }&\cellcolor{\tableheadbgcolor}\textbf{ 15 }&\cellcolor{\tableheadbgcolor}\textbf{ 14 }&\cellcolor{\tableheadbgcolor}\textbf{ 13 }&\cellcolor{\tableheadbgcolor}\textbf{ 12 }&\cellcolor{\tableheadbgcolor}\textbf{ 11 }&\cellcolor{\tableheadbgcolor}\textbf{ 10 }&\cellcolor{\tableheadbgcolor}\textbf{ 9  }\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 1 }&\cellcolor{\tableheadbgcolor}\textbf{ C Threshold }&&&&&&Knob &&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 2 }&\cellcolor{\tableheadbgcolor}\textbf{ C Ratio }&&&&&Knob &&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 3 }&\cellcolor{\tableheadbgcolor}\textbf{ C Attack Time }&&&&&&&Knob &&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 4 }&\cellcolor{\tableheadbgcolor}\textbf{ C Release Time }&&&&&&&&Knob &&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 5 }&\cellcolor{\tableheadbgcolor}\textbf{ C Knee }&Knob &&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 6 }&\cellcolor{\tableheadbgcolor}\textbf{ C Gain Makeup }&&Knob\textsuperscript{$\ast$} &&&Knob\textsuperscript{$\ast$} &&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 7 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Enabled }&&&&&&&&&&&Knob/{\itshape In} &&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 8 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Type }&&&&&&&&&&&&{\itshape In} &&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 9 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Freq }&&&&&&&&&&&&Knob (Sel O) &&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 10 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Q }&&&&&&&&&&&&Knob (Sel I) &&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 11 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Enabled }&&&&&&&&&&&&&Knob/{\itshape In} &&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 12 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Type }&&&&&&&&&&&&&&{\itshape In} &&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 13 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Freq }&&&&&&&&&&&&&&Knob (Sel O) &&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 14 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Q }&&&&&&&&&&&&&&Knob (Sel I) &&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 15 }&\cellcolor{\tableheadbgcolor}\textbf{ Ext Key }&&&&&&&&&&&&&&&Knob/{\itshape In} &\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 16 }&\cellcolor{\tableheadbgcolor}\textbf{ Key Listen }&&&&&&&&&&&&&&&&Knob/{\itshape In}  \\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 17 }&\cellcolor{\tableheadbgcolor}\textbf{ Input Gain }&&&Knob &&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 18 }&\cellcolor{\tableheadbgcolor}\textbf{ Output Gain }&&&&Knob &&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 19 }&\cellcolor{\tableheadbgcolor}\textbf{ Link }&&&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 20 }&\cellcolor{\tableheadbgcolor}\textbf{ Depth }&&&&&&&&&Knob &&&&&&&\\\cline{1-18}
\end{longtabu}


{\itshape Notes} 
\begin{DoxyItemize}
\item If no parameter is defined at the Ratio parameter index then the Makeup Gain parameter will be mapped to the Ratio parameter\textquotesingle{}s normal spot in order to increase usefulness of the first-\/page mapping.  
\item Pro Tools versions prior to Pro Tools 11.\+1 use a different layout for the first page of this table type  
\end{DoxyItemize}

\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_eucon_mapping_DgGT}{}\doxyparagraph{\textquotesingle{}\+Dg\+GT\textquotesingle{} Page\+Table -\/ Expander/\+Gate}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_eucon_mapping_DgGT}
 If the plug-\/in defines a {\ttfamily \textquotesingle{}Dg\+GT\textquotesingle{}} page table but does not define a {\ttfamily \textquotesingle{}Dg\+CP\textquotesingle{}} page table then EUCON control surfaces will use the following mapping.

\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{18}{|X[-1]}|}
\hline
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 1 }}&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 2  }}\\\cline{1-18}
\endfirsthead
\hline
\endfoot
\hline
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 1 }}&\multicolumn{8}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Page 2  }}\\\cline{1-18}
\endhead
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ }&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Far from user / Left }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Close to user / Right }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Far from user / Left }}&\multicolumn{4}{l|}{\cellcolor{\tableheadbgcolor}\textbf{ Close to user / Right  }}\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ }&\cellcolor{\tableheadbgcolor}\textbf{ Function }&\cellcolor{\tableheadbgcolor}\textbf{ 8 }&\cellcolor{\tableheadbgcolor}\textbf{ 7 }&\cellcolor{\tableheadbgcolor}\textbf{ 6 }&\cellcolor{\tableheadbgcolor}\textbf{ 5 }&\cellcolor{\tableheadbgcolor}\textbf{ 4 }&\cellcolor{\tableheadbgcolor}\textbf{ 3 }&\cellcolor{\tableheadbgcolor}\textbf{ 2 }&\cellcolor{\tableheadbgcolor}\textbf{ 1 }&\cellcolor{\tableheadbgcolor}\textbf{ 16 }&\cellcolor{\tableheadbgcolor}\textbf{ 15 }&\cellcolor{\tableheadbgcolor}\textbf{ 14 }&\cellcolor{\tableheadbgcolor}\textbf{ 13 }&\cellcolor{\tableheadbgcolor}\textbf{ 12 }&\cellcolor{\tableheadbgcolor}\textbf{ 11 }&\cellcolor{\tableheadbgcolor}\textbf{ 10 }&\cellcolor{\tableheadbgcolor}\textbf{ 9  }\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 1 }&\cellcolor{\tableheadbgcolor}\textbf{ X Threshold }&&&&&&&Knob &&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 2 }&\cellcolor{\tableheadbgcolor}\textbf{ X Ratio }&&&&&&&&Knob &&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 3 }&\cellcolor{\tableheadbgcolor}\textbf{ X Range }&&&Knob &&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 4 }&\cellcolor{\tableheadbgcolor}\textbf{ X Attack Time }&&&&&Knob &&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 5 }&\cellcolor{\tableheadbgcolor}\textbf{ X Release Time }&&&&Knob &&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 6 }&\cellcolor{\tableheadbgcolor}\textbf{ X Hysteresis }&Knob &&&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 7 }&\cellcolor{\tableheadbgcolor}\textbf{ X Hold }&&Knob &&&&&&&&&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 8 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Enabled }&&&&&&&&&&&Knob/{\itshape In} &&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 9 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Type }&&&&&&&&&&&&{\itshape In} &&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 10 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Freq }&&&&&&&&&&&&Knob (Sel O) &&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 11 }&\cellcolor{\tableheadbgcolor}\textbf{ HPF Q }&&&&&&&&&&&&Knob (Sel I) &&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 12 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Enabled }&&&&&&&&&&&&&Knob/{\itshape In} &&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 13 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Type }&&&&&&&&&&&&&&{\itshape In} &&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 14 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Freq }&&&&&&&&&&&&&&Knob (Sel O) &&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 15 }&\cellcolor{\tableheadbgcolor}\textbf{ LPF Q }&&&&&&&&&&&&&&Knob (Sel I) &&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 16 }&\cellcolor{\tableheadbgcolor}\textbf{ Ext Key }&&&&&&&&&&&&&&&Knob/{\itshape In} &\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 17 }&\cellcolor{\tableheadbgcolor}\textbf{ Key Listen }&&&&&&&&&&&&&&&&Knob/{\itshape In}  \\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 18 }&\cellcolor{\tableheadbgcolor}\textbf{ Input Gain }&&&&&&&&&&Knob &&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 19 }&\cellcolor{\tableheadbgcolor}\textbf{ Output Gain }&&&&&&&&&Knob &&&&&&&\\\cline{1-18}
\cellcolor{\tableheadbgcolor}\textbf{ 20 }&\cellcolor{\tableheadbgcolor}\textbf{ Link }&&&&&&&&&&&&&&&&\\\cline{1-18}
\end{longtabu}


\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_venue_s6_mapping}{}\doxysubsubsection{Center Section Parameter Mapping in S6 Expand Mode}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_venue_s6_mapping}
 In addition to supporting single-\/row and single-\/column EQ and Dynamics layouts as described above, S6 also includes an Expand Mode for EQ and Dynamics plug-\/ins which allows the targeted plug-\/in\textquotesingle{}s EQ or Dynamics center section mapping to be displayed across an entire CKM module.

\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_venue_s6_mapping_DgEQ}{}\doxyparagraph{\textquotesingle{}\+Dg\+EQ\textquotesingle{} Page\+Table -\/ Equalizer}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_venue_s6_mapping_DgEQ}
    EQ layout in S6 Expand Mode

\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_venue_s6_mapping_DgCP_DgGT}{}\doxyparagraph{\textquotesingle{}\+Dg\+CP\textquotesingle{} and \textquotesingle{}\+Dg\+GT\textquotesingle{} Page\+Tables -\/ Compressor/\+Limiter and Expander/\+Gate}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_venue_s6_mapping_DgCP_DgGT}
    Dynamics layout in S6 Expand Mode

\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_venue_s3l_mapping}{}\doxysubsubsection{Center Section Parameter Mapping on VENUE $\vert$ S3\+L-\/X}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_venue_s3l_mapping}
 Built-\/in processing parameters are mapped to the Channel Control encoders on VENUE $\vert$ S3L. For more information about Channel Control mode in S3\+L-\/X see \mbox{\hyperlink{a00945_aax_venue_guide__systems__s3l__using_channel_control}{Using Channel Control}} in the \mbox{\hyperlink{a00945}{VENUE Guide}}.

\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_venue_s3l_mapping_DgEQ}{}\doxyparagraph{\textquotesingle{}\+Dg\+EQ\textquotesingle{} Page\+Table -\/ Equalizer}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_venue_s3l_mapping_DgEQ}
 \tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{4}{|X[-1]}|}
\hline
\cellcolor{\tableheadbgcolor}\textbf{ Channel Control~\newline
Encoder }&\cellcolor{\tableheadbgcolor}\textbf{ Knob }&\cellcolor{\tableheadbgcolor}\textbf{ Sel Switch }&\cellcolor{\tableheadbgcolor}\textbf{ In Switch  }\\\cline{1-4}
\endfirsthead
\hline
\endfoot
\hline
\cellcolor{\tableheadbgcolor}\textbf{ Channel Control~\newline
Encoder }&\cellcolor{\tableheadbgcolor}\textbf{ Knob }&\cellcolor{\tableheadbgcolor}\textbf{ Sel Switch }&\cellcolor{\tableheadbgcolor}\textbf{ In Switch  }\\\cline{1-4}
\endhead
\cellcolor{\tableheadbgcolor}\textbf{ 1 }&Low Gain &&Low EQ band in/out  \\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 2 }&Low Freq/Q &Toggles Freq/Q &Low EQ band type  \\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 3 }&Lo\+Mid Gain &&Lo\+Mid EQ band in/out  \\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 4 }&Lo\+Mid Freq/Q &Toggles Freq/Q &\\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 5 }&Hi\+Mid Gain &&Hi\+Mid EQ band in/out  \\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 6 }&Hi\+Mid Freq/Q &Toggles Freq/Q &\\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 7 }&High Gain &&High EQ band in/out  \\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 8 }&High Freq/Q &Toggles Freq/Q &High EQ band type  \\\cline{1-4}
\end{longtabu}


\hypertarget{a00929_aax_page_table_guide_04_avid_center_section_page_tables_venue_s3l_mapping_DgCP_DgGT}{}\doxyparagraph{\textquotesingle{}\+Dg\+CP\textquotesingle{} and \textquotesingle{}\+Dg\+GT\textquotesingle{} Page\+Tables -\/ Compressor/\+Limiter and Expander/\+Gate}\label{a00929_aax_page_table_guide_04_avid_center_section_page_tables_venue_s3l_mapping_DgCP_DgGT}
 \tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{4}{|X[-1]}|}
\hline
\cellcolor{\tableheadbgcolor}\textbf{ Channel Control~\newline
Encoder }&\cellcolor{\tableheadbgcolor}\textbf{ Knob }&\cellcolor{\tableheadbgcolor}\textbf{ Sel Switch }&\cellcolor{\tableheadbgcolor}\textbf{ In Switch  }\\\cline{1-4}
\endfirsthead
\hline
\endfoot
\hline
\cellcolor{\tableheadbgcolor}\textbf{ Channel Control~\newline
Encoder }&\cellcolor{\tableheadbgcolor}\textbf{ Knob }&\cellcolor{\tableheadbgcolor}\textbf{ Sel Switch }&\cellcolor{\tableheadbgcolor}\textbf{ In Switch  }\\\cline{1-4}
\endhead
\cellcolor{\tableheadbgcolor}\textbf{ 1 }&Threshold level &&Comp/\+Lim or Exp/\+Gate in/out  \\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 2 }&Ratio &&\\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 3 }&Attack &&\\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 4 }&Knee &&\\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 5 }&Release &&\\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 6 }&Gain level &&\\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 7 }&Key HF &Key Listen &Filter in/out  \\\cline{1-4}
\cellcolor{\tableheadbgcolor}\textbf{ 8 }&Key LF &Key In &Filter in/out  \\\cline{1-4}
\end{longtabu}






\hypertarget{a00929_aax_page_table_guide__eucon_page_tables}{}\doxysubsection{EUCON Page Tables}\label{a00929_aax_page_table_guide__eucon_page_tables}
Plug-\/ins should implement specific EUCON page tables to take advantage of EUCON-\/specific features and layouts. By writing EUCON-\/specific page tables, your plug-\/in is able to re-\/define both the in/out button as well as the select button per EUCON control cell on compatible surfaces.

 \begin{DoxyRefDesc}{Host Compatibility Notes}
\item[\mbox{\hyperlink{a00879__compatibility_notes000010}{Host Compatibility Notes}}]Pro Tools versions prior to Pro Tools 11.\+1 use plug-\/ins\textquotesingle{} Pro\+Control and ICON page tables (Dynamics, EQ, Channel Strip, Custom Fader, etc.) to map plug-\/in parameters to EUCON-\/enabled surfaces, so be sure that your plug-\/ins also implement these page tables correctly so that users with earlier versions of Pro Tools can have the best possible experience when using your plug-\/ins.\end{DoxyRefDesc}


\begin{DoxyNote}{Note}
The legacy Pe\+TE editor will remove all EUCON sections from any page table XML file that it saves. Developers should no longer use Pe\+TE for \mbox{\hyperlink{a00948}{AAX}} page table editing. If you do use Pete, it is important to {\itshape always back up your page table file} before editing the file in Pe\+TE.
\end{DoxyNote}
\hypertarget{a00929_subsection_eucon_page_tables_specification}{}\doxysubsubsection{Specification}\label{a00929_subsection_eucon_page_tables_specification}
EUCON page tables use modern formatting, making them more intuitive to implement than non-\/\+EUCON tables. Here are some example lines from a EUCON page table\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{<PageTable\ type=\textcolor{stringliteral}{'Av18'}\ pgsz=\textcolor{stringliteral}{'24'}\ >}
\DoxyCodeLine{\ \ <Page\ num=\textcolor{charliteral}{'1'}\(\backslash\)>}
\DoxyCodeLine{\ \ \ \ <Cell\ row=\textcolor{charliteral}{'1'}\ col=\textcolor{charliteral}{'1'}\ knobID=\textcolor{stringliteral}{"{}Knob1"{}}\ inOutButtonID=\textcolor{stringliteral}{"{}Button1A"{}}\ selectButtonID=\textcolor{stringliteral}{"{}Button1B"{}}\ />}
\DoxyCodeLine{\ \ \ \ <Cell\ row=\textcolor{charliteral}{'1'}\ col=\textcolor{charliteral}{'2'}\ knobID=\textcolor{stringliteral}{"{}Knob2"{}}\ inOutButtonID=\textcolor{stringliteral}{"{}Button2A"{}}\ selectButtonID=\textcolor{stringliteral}{"{}Button2B"{}}\ />}
\DoxyCodeLine{\ \ \ \ <Cell\ row=\textcolor{charliteral}{'1'}\ col=\textcolor{charliteral}{'3'}\ knobID=\textcolor{stringliteral}{"{}Knob3"{}}\ inOutButtonID=\textcolor{stringliteral}{"{}Button3A"{}}\ selectButtonID=\textcolor{stringliteral}{"{}Button3B"{}}\ />}
\DoxyCodeLine{\ \ \ \ ...}
\DoxyCodeLine{\ \ </Page\(\backslash\)>}
\DoxyCodeLine{\ \ ...}
\DoxyCodeLine{</PageTable\ >}

\end{DoxyCode}


The EUCON {\ttfamily Page\+Table} element includes a series of {\ttfamily Cell} sub-\/elements. The attributes of each {\ttfamily Cell} sub-\/element are as follows\+: 
\begin{DoxyItemize}
\item {\ttfamily row} -\/ the cell\textquotesingle{}s row position, ordered furthest to nearest  
\item {\ttfamily col} -\/ the cell\textquotesingle{}s column position, ordered left to right  
\item {\ttfamily knob\+ID} -\/ the parameter ID associated with the knob in question 
\item {\ttfamily in\+Out\+Button\+ID} -\/ the parameter ID associated with the \char`\"{}\+In\char`\"{} button next to the knob in question. This must be a discrete parameter. 
\item {\ttfamily select\+Button\+ID} -\/ the parameter ID associated with the \char`\"{}\+Sel\char`\"{} button next to the knob in question. This can be a discrete or continuous parameter. If it is a continuous parameter then pushing \char`\"{}\+Sel\char`\"{} will toggle the knob associated with the button between the {\ttfamily select\+Button\+ID} and {\ttfamily knob\+ID} parameters. 
\end{DoxyItemize}

\hypertarget{a00929_subsection_eucon_page_tables_types}{}\doxysubsubsection{Types}\label{a00929_subsection_eucon_page_tables_types}
 \tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{4}{|X[-1]}|}
\hline
\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Av81 }}&\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Av18 }}&\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Av48 }}&\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Av46  }}\\\cline{1-4}
\endfirsthead
\hline
\endfoot
\hline
\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Av81 }}&\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Av18 }}&\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Av48 }}&\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Av46  }}\\\cline{1-4}
\endhead
\multirow{1}{*}{type=\textquotesingle{}Av81\textquotesingle{} }&\multirow{1}{*}{type=\textquotesingle{}Av18\textquotesingle{} }&\multirow{1}{*}{type=\textquotesingle{}Av48\textquotesingle{} }&\multirow{1}{*}{type=\textquotesingle{}Av46\textquotesingle{}  }\\\cline{1-4}
\multirow{1}{*}{8 rows }&\multirow{1}{*}{1 row }&\multirow{1}{*}{4 rows }&\multirow{1}{*}{4 rows  }\\\cline{1-4}
\multirow{1}{*}{1 column }&\multirow{1}{*}{8 columns }&\multirow{1}{*}{8 columns }&\multirow{1}{*}{6 columns  }\\\cline{1-4}
\multirow{1}{*}{pgsz=\textquotesingle{}24\textquotesingle{} (3 elements per cell) }&\multirow{1}{*}{pgsz=\textquotesingle{}24\textquotesingle{} (3 elements per cell) }&\multirow{1}{*}{pgsz=\textquotesingle{}96\textquotesingle{} (3 elements per cell) }&\multirow{1}{*}{pgsz=\textquotesingle{}72\textquotesingle{} (3 elements per cell)  }\\\cline{1-4}
\multirow{1}{*}{Used for vertical sets of knob cells }&\multirow{1}{*}{Used for horizontal sets of knob cells }&\multirow{1}{*}{Used for 4x8 knob cell arrays, e.\+g. S6 \char`\"{}\+Expand Mode\char`\"{} }&\multirow{1}{*}{Used for 4x6 knob cell arrays, e.\+g. plug-\/in layouts on S6L  }\\\cline{1-4}
\multirow{1}{*}{Most important parameters should be placed in highest-\/numbered rows (closest to user) }&\multirow{1}{*}{Most important controls should be placed in lowest-\/numbered columns (left) }&\multirow{1}{*}{Layout should be similar to plug-\/in GUI }&\multirow{1}{*}{Layout should be similar to plug-\/in GUI  }\\\cline{1-4}
\end{longtabu}


\hypertarget{a00929_subsection_eucon_page_tables_conventions}{}\doxysubsubsection{Conventions}\label{a00929_subsection_eucon_page_tables_conventions}
 
\begin{DoxyItemize}
\item To map a single discrete parameter to an encoder cell, assign the parameter to both the knob and the In switch. Assigning the parameter to the cell\textquotesingle{}s knob will ensure that the parameter name and value is always displayed on the surface. The user will be able to edit the parameter using either the rotary encoder or the In switch.  
\item When assigning discrete parameters, always prefer to use the In switch over the Sel switch. For cells with one continuous and one discrete parameter, users will always expect the discrete parameter to be assigned to the In switch rather than the Sel switch. In other EUCON modes (besides plug-\/in editing) the In switch is always used to enable/disable parameters, while the Sel switch is usually used to toggle between functions for the cell\textquotesingle{}s rotary encoder.  
\end{DoxyItemize}

\hypertarget{a00929_subsection_eucon_page_tables_requirements}{}\doxysubsubsection{Requirements}\label{a00929_subsection_eucon_page_tables_requirements}
 
\begin{DoxyItemize}
\item All parameter IDs used in the EUCON page tables must be defined with a {\ttfamily Ctrl ID} element within the {\ttfamily Control\+Name\+Variations} element  
\item Every {\ttfamily Cell} with at least one parameter assignment must include a {\ttfamily knob\+ID} assignment. It is not valid to assign either {\ttfamily in\+Out\+Button\+ID} or {\ttfamily select\+Button\+ID} without also assigning the cell\textquotesingle{}s {\ttfamily knob\+ID}.  
\item For a given {\ttfamily knob\+ID}, the same parameters must be assigned to the {\ttfamily select\+Button\+ID} and {\ttfamily in\+Out\+Button\+ID} switches across all EUCON page tables  
\item Every knob cell assignment set (Rotary+\+Sel+\+In assignment) used in the {\ttfamily \textquotesingle{}Av48\textquotesingle{}} table must be exactly replicated somewhere in the {\ttfamily \textquotesingle{}Av81\textquotesingle{}} table  
\item {\ttfamily \textquotesingle{}Av48\textquotesingle{}} tables may contain no more than two pages  
\end{DoxyItemize}



 \hypertarget{a00929_aax_page_table_guide_05_implementing_page_tables}{}\doxysubsection{Implementing Page Tables}\label{a00929_aax_page_table_guide_05_implementing_page_tables}
\hypertarget{a00929_subsection_page_table_xml_specification}{}\doxysubsubsection{Page table XML specification}\label{a00929_subsection_page_table_xml_specification}
This section includes a rough specification for plug-\/in page table XML. Whenever possible, we encourage developers to use the \mbox{\hyperlink{a00929_subsection_creating_page_tables_in_pete}{Page Table Editor}} tool to generate plug-\/in page tables rather than writing or editing the page table XML by hand.

The page table XML format contains three main tags\+:


\begin{DoxyItemize}
\item \mbox{\hyperlink{a00929_subsubsection_pagetablelayouts_tag}{Page\+Table\+Layouts tag}}
\item \mbox{\hyperlink{a00929_subsubsection_controlnamesvariations_tag}{Control\+Name\+Variations tag}}
\item \mbox{\hyperlink{a00929_subsubsection_editor_tag}{Editor tag}}
\end{DoxyItemize}

\hypertarget{a00929_subsubsection_pagetablelayouts_tag}{}\doxyparagraph{Page\+Table\+Layouts tag}\label{a00929_subsubsection_pagetablelayouts_tag}
This section provides a static mapping of control elements to page table layouts. Multiple layouts may be provided in this section, e.\+g. in cases where different control sets are used by different plug-\/in Types.

Each layout includes a complete set of page table descriptions. There are multiple kinds of page tables, each of which may have multiple pages. At minimum, each layout must include a {\ttfamily Page\+Table} with {\ttfamily type=\textquotesingle{}pg\+TL\textquotesingle{}} and {\ttfamily pgsz=\textquotesingle{}1\textquotesingle{}}. This is the default page table, and the order of the control elements that it describes must match the order in which the corresponding parameters are added to the plug-\/in itself.

Here is an excerpt from the {\ttfamily Page\+Table\+Layouts} section in Avid\textquotesingle{}s Eleven plug-\/in page tables demonstrating non-\/\+EUCON {\ttfamily Page\+Table} elements. For the EUCON {\ttfamily Page\+Table} element specification, see \mbox{\hyperlink{a00929_subsection_eucon_page_tables_specification}{Eucon page table specification}}.


\begin{DoxyCode}{0}
\DoxyCodeLine{<PageTableLayouts>}
\DoxyCodeLine{\ \ \ \ <Plugin\ manID=\textcolor{stringliteral}{'Digi'}\ prodID=\textcolor{stringliteral}{'ElvF'}\ plugID=\textcolor{stringliteral}{'ELFr'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <Desc>Eleven\ Free\ 1\ -\/\&amp;gt;\ 1\ Avid\ Technology,\ Inc.</Desc>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <Layout>PageTable\ Free</Layout>}
\DoxyCodeLine{\ \ \ \ </Plugin><!-\/-\/manID=\textcolor{stringliteral}{'Digi'}\ prodID=\textcolor{stringliteral}{'ElvF'}\ plugID=\textcolor{stringliteral}{'ELFr'}-\/-\/>}
\DoxyCodeLine{\ \ \ \ <Plugin\ manID=\textcolor{stringliteral}{'Digi'}\ prodID=\textcolor{stringliteral}{'Elvn'}\ plugID=\textcolor{stringliteral}{'ELVr'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <Desc>Eleven\ 1\ -\/\&amp;gt;\ 1\ Avid\ Technology,\ Inc.</Desc>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <Layout>PageTable\ 1</Layout>}
\DoxyCodeLine{\ \ \ \ </Plugin><!-\/-\/manID=\textcolor{stringliteral}{'Digi'}\ prodID=\textcolor{stringliteral}{'Elvn'}\ plugID=\textcolor{stringliteral}{'ELVr'}-\/-\/>}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ <!-\/-\/\ \ \ \ \ ...\ \ \ \ \ -\/-\/>}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ <PTLayout\ name=\textcolor{stringliteral}{'PageTable\ 1'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <PageTable\ type=\textcolor{stringliteral}{'BkCS'}\ pgsz=\textcolor{stringliteral}{'12'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ <Page\ num=\textcolor{charliteral}{'1'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Mic\ Type</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Cab\ Type</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Amp\ Type</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Master</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Gain\ 2</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Gain\ 1</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Mic\ Axis</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Cab\ Type</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Amp\ Type</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>\ </ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>\ </ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Bright\ Switch</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ </Page><!-\/-\/num=\textcolor{charliteral}{'1'}-\/-\/>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ <Page\ num=\textcolor{charliteral}{'2'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <!-\/-\/\ \ \ \ \ ...\ \ \ \ \ -\/-\/>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ </Page><!-\/-\/num=\textcolor{charliteral}{'2'}-\/-\/>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ <Page\ num=\textcolor{charliteral}{'3'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <!-\/-\/\ \ \ \ \ ...\ \ \ \ \ -\/-\/>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ </Page><!-\/-\/num=\textcolor{charliteral}{'3'}-\/-\/>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ </PageTable><!-\/-\/type=\textcolor{stringliteral}{'BkCS'}\ pgsz=\textcolor{stringliteral}{'12'}-\/-\/>}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <!-\/-\/\ \ \ \ \ ...\ \ \ \ \ -\/-\/>}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <PageTable\ type=\textcolor{stringliteral}{'PgTL'}\ pgsz=\textcolor{charliteral}{'1'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ <Page\ num=\textcolor{charliteral}{'1'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Master\ Bypass</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ </Page><!-\/-\/num=\textcolor{charliteral}{'1'}-\/-\/>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ <Page\ num=\textcolor{charliteral}{'2'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Input\ Level</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ </Page><!-\/-\/num=\textcolor{charliteral}{'2'}-\/-\/>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ <Page\ num=\textcolor{charliteral}{'3'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Output\ Level</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ </Page><!-\/-\/num=\textcolor{charliteral}{'3'}-\/-\/>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ <Page\ num=\textcolor{charliteral}{'4'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <ID>Gate\ Threshold</ID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ </Page><!-\/-\/num=\textcolor{charliteral}{'4'}-\/-\/>}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ <!-\/-\/\ \ \ \ ...\ -\/-\/>}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ </PageTable><!-\/-\/type=\textcolor{stringliteral}{'PgTL'}\ pgsz=\textcolor{charliteral}{'1'}-\/-\/>}
\DoxyCodeLine{\ \ \ \ </PTLayout><!-\/-\/name=\textcolor{stringliteral}{'PageTable\ 1'}-\/-\/>}
\DoxyCodeLine{\ \ \ \ <PTLayout\ name=\textcolor{stringliteral}{'PageTable\ Free'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <!-\/-\/\ \ \ \ \ ...\ \ \ \ \ -\/-\/>}
\DoxyCodeLine{\ \ \ \ </PTLayout><!-\/-\/name=\textcolor{stringliteral}{'PageTable\ Free'}-\/-\/>}
\DoxyCodeLine{</PageTableLayouts>}

\end{DoxyCode}


The sub-\/tags for this section are as follows\+:


\begin{DoxyItemize}
\item {\ttfamily Plugin} element 

A high-\/level description of a single plug-\/in Type.

The {\ttfamily man\+ID}, {\ttfamily prod\+ID}, and {\ttfamily plug\+ID} attributes must match the corresponding Manufacturer, Product, and Type IDs for each plug-\/in Type that is described in the XML file. Multiple {\ttfamily Plugin} elements may be included in a single XML file.

The {\ttfamily Plugin} element has two sub-\/elements\+:


\begin{DoxyEnumerate}
\item The {\ttfamily Desc} sub-\/element provides a brief description of the plug-\/in Type. This information is used only by the \mbox{\hyperlink{a00929_subsection_creating_page_tables_in_pete}{Page Table Editor}} application and does not affect operation of the plug-\/in in Pro Tools.  
\item One {\ttfamily Layout} sub-\/element is used to bind the plug-\/in Type to a particular {\ttfamily PTLayout} (see below.)  
\end{DoxyEnumerate}


\item {\ttfamily PTLayout} element 

A complete control mapping, including a full set of {\ttfamily Page\+Table} descriptions.


\begin{DoxyItemize}
\item {\ttfamily Page\+Table} sub-\/element -\/ A single page table mapping, with controls specified across multiple {\ttfamily Page} elements as in the example above.

{\ttfamily Page\+Table} elements have the following attributes\+:


\begin{DoxyEnumerate}
\item {\ttfamily type} defines the particular device that will use the {\ttfamily Page\+Table}. {\ttfamily type} may be one of\+:


\begin{DoxyItemize}
\item {\ttfamily Pg\+TL} -\/ Generic page tables (any size) 
\item {\ttfamily Pc\+TL} -\/ Pro\+Control, VENUE, and fall-\/back EUCON page table (size 16) 
\item {\ttfamily Mk\+TL} -\/ Makie HUI page table (size 8) 
\item {\ttfamily Hg\+TL} -\/ 002/003 and Command$\vert$8 page table (size 8) 
\item {\ttfamily Fr\+TL} -\/ Control 24, C$\vert$24, and fall-\/back S6L page table (size 24) 
\item {\ttfamily Bk\+CS} -\/ ICON Channel Strip (size 12) 
\item {\ttfamily Bk\+SF} -\/ ICON Custom Fader (size 16) 
\item {\ttfamily Dg\+GT} -\/ ICON dynamics section (Gate/\+Expander) (size 20) 
\item {\ttfamily Dg\+CP} -\/ ICON dynamics section (Compressor/\+Limiter) (size 19) 
\item {\ttfamily Dg\+EQ} -\/ ICON EQ section (size 43) 
\item {\ttfamily Av81} -\/ EUCON 8x1 section (size 24) 
\item {\ttfamily Av18} -\/ EUCON 1x8 section (size 24) 
\item {\ttfamily Av48} -\/ EUCON 4x8 section (size 96) 
\item {\ttfamily Av46} -\/ EUCON 4x6 section (size 72)
\end{DoxyItemize}


\item {\ttfamily pgsz} defines the number of controls per page in the page table. Most page table types require a specific size, as noted above. The generic {\ttfamily Pg\+TL} page tables may be of any size, and multiple {\ttfamily Pg\+TL} page tables may be provided. However, each plug-\/in must provide a {\ttfamily Pg\+TL} page table of size 1 that includes all of the plug-\/in\textquotesingle{}s automatable parameters, in the order in which they are added to the plug-\/in.  
\end{DoxyEnumerate}
\end{DoxyItemize}
\end{DoxyItemize}

\hypertarget{a00929_subsubsection_controlnamesvariations_tag}{}\doxyparagraph{Control\+Name\+Variations tag}\label{a00929_subsubsection_controlnamesvariations_tag}
This section includes information about the names of each control in the plug-\/in. Here is an excerpt from our Eleven plug-\/in page tables which demonstrates the basic format of this section\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{<Ctrl\ ID=\textcolor{stringliteral}{'Amp\ Bypass'}>}
\DoxyCodeLine{\ \ \ \ <name\ typ=\textcolor{stringliteral}{'PgTL'}\ sz=\textcolor{charliteral}{'1'}>AB</name>}
\DoxyCodeLine{\ \ \ \ <name\ typ=\textcolor{stringliteral}{'PgTL'}\ sz=\textcolor{charliteral}{'4'}>AByp</name>}
\DoxyCodeLine{\ \ \ \ <name\ typ=\textcolor{stringliteral}{'PgTL'}\ sz=\textcolor{charliteral}{'5'}>A\ Byp</name>}
\DoxyCodeLine{\ \ \ \ <name\ typ=\textcolor{stringliteral}{'PgTL'}\ sz=\textcolor{charliteral}{'6'}>AmpByp</name>}
\DoxyCodeLine{\ \ \ \ <name\ typ=\textcolor{stringliteral}{'PgTL'}\ sz=\textcolor{charliteral}{'7'}>Amp\ Byp</name>}
\DoxyCodeLine{</Ctrl><!-\/-\/ID=\textcolor{stringliteral}{'Amp\ Bypass'}-\/-\/>}
\DoxyCodeLine{<Ctrl\ ID=\textcolor{stringliteral}{'Amp\ Type'}>}
\DoxyCodeLine{\ \ \ \ <name\ typ=\textcolor{stringliteral}{'PgTL'}\ sz=\textcolor{charliteral}{'1'}>AT</name>}
\DoxyCodeLine{\ \ \ \ <name\ typ=\textcolor{stringliteral}{'PgTL'}\ sz=\textcolor{charliteral}{'3'}>Amp\ </name>}
\DoxyCodeLine{\ \ \ \ <name\ typ=\textcolor{stringliteral}{'PgTL'}\ sz=\textcolor{charliteral}{'5'}>AmpTp</name>}
\DoxyCodeLine{\ \ \ \ <name\ typ=\textcolor{stringliteral}{'PgTL'}\ sz=\textcolor{charliteral}{'6'}>AmpTyp</name>}
\DoxyCodeLine{\ \ \ \ <name\ typ=\textcolor{stringliteral}{'PgTL'}\ sz=\textcolor{charliteral}{'7'}>Amp\ Typ</name>}
\DoxyCodeLine{</Ctrl><!-\/-\/ID=\textcolor{stringliteral}{'Amp\ Type'}-\/-\/>}
\DoxyCodeLine{<Ctrl\ ID=\textcolor{stringliteral}{'Bright\ Switch'}>}
\DoxyCodeLine{\ \ \ \ <name\ typ=\textcolor{stringliteral}{'PgTL'}\ sz=\textcolor{charliteral}{'1'}>Brt\ </name>}
\DoxyCodeLine{\ \ \ \ <name\ typ=\textcolor{stringliteral}{'PgTL'}\ sz=\textcolor{charliteral}{'6'}>Bright</name>}
\DoxyCodeLine{</Ctrl><!-\/-\/ID=\textcolor{stringliteral}{'Bright\ Switch'}-\/-\/>}

\end{DoxyCode}


The sub-\/tags used are as follows\+:

{\ttfamily Ctrl} element with {\ttfamily ID} attribute -\/ The identifier of the control that is being identified.

The identifiers for all parameters in the page table must and should match the IDs used for the control both in the \texorpdfstring{$<$}{<}Page\+Table\+Layouts\texorpdfstring{$>$}{>} layouts and in the {\ttfamily Editor} tag\textquotesingle{}s {\ttfamily Disc\+Ctrls} sub-\/tag (see below). See \mbox{\hyperlink{a00929_subsection_parameter_identifiers}{Parameter identifiers}} for more information about parameter identifiers.

{\ttfamily name} element -\/ The desired abbreviated name of the control for display on control surface UIs, which may have limited display space available.

The {\ttfamily typ} parameter allows you to choose which page table type the given abbreviation will be specific to. For example, a name provided with {\ttfamily typ=\textquotesingle{}Hg\+TL\textquotesingle{}} would only appear on Command$\vert$8, 002, and 003 hardware. As with all other tags, the name associated with typ {\ttfamily Pg\+TL} (the generic page table identifier) will be used if no other name is given for the specific page table that is being loaded.

The {\ttfamily sz} parameter defines the size of the control surface display for which the given name is appropriate. The control surface will use the name associated with the largest size that will fit on its display.

To reduce the number of names that must be specified, abbreviated names can be given that are longer than their specified size. These names will be truncated when necessary. For example, a control surface that could accommodate two characters on its display would use the size-\/1 name for the \char`\"{}\+Bright Switch\char`\"{} control above, since 1 is the largest number less than or equal to 2 from the provided set of name sizes (in this case, 1 and 6.) The size-\/1 name, {\ttfamily \textquotesingle{}Brt \textquotesingle{}}, has four characters in it. Therefore, it would be truncated down to {\ttfamily \textquotesingle{}Br\textquotesingle{}} to fit onto the control surface\textquotesingle{}s display.

\hypertarget{a00929_subsubsection_editor_tag}{}\doxyparagraph{Editor tag}\label{a00929_subsubsection_editor_tag}
The last of the three main sections in an XML plug-\/in page table is the {\ttfamily Editor} section. This section is used by the \mbox{\hyperlink{a00929_subsection_creating_page_tables_in_pete}{Page Table Editor}} application and you should not need to modify its contents. However, if you are encountering problems modifying your plug-\/in in the Page Table Editor then you may wish to verify that all plug-\/ins and controls are properly identified within the {\ttfamily Plugin\+List} and {\ttfamily Disc\+Ctrls} sub-\/tabs, respectively. Here is the {\ttfamily Editor} section from the Eleven page table XML\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{<Editor\ vers=\textcolor{stringliteral}{'1.3.7.1'}>}
\DoxyCodeLine{\ \ \ \ <PluginList>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <TDM>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ <PluginID\ manID=\textcolor{stringliteral}{'Digi'}\ prodID=\textcolor{stringliteral}{'Elvn'}\ plugID=\textcolor{stringliteral}{'ELVt'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <MenuStr>TDM:\ \ \ Eleven,\ 1\ in\ X\ 1\ out</MenuStr>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ </PluginID><!-\/-\/manID=\textcolor{stringliteral}{'Digi'}\ prodID=\textcolor{stringliteral}{'Elvn'}\ plugID=\textcolor{stringliteral}{'ELVt'}-\/-\/>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ </TDM>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <RTAS>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ <PluginID\ manID=\textcolor{stringliteral}{'Digi'}\ prodID=\textcolor{stringliteral}{'Elvn'}\ plugID=\textcolor{stringliteral}{'ELVr'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <MenuStr>RTAS:\ Eleven,\ 1\ in\ X\ 1\ out</MenuStr>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ </PluginID><!-\/-\/manID=\textcolor{stringliteral}{'Digi'}\ prodID=\textcolor{stringliteral}{'Elvn'}\ plugID=\textcolor{stringliteral}{'ELVr'}-\/-\/>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ <PluginID\ manID=\textcolor{stringliteral}{'Digi'}\ prodID=\textcolor{stringliteral}{'ElvF'}\ plugID=\textcolor{stringliteral}{'ELFr'}>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <MenuStr>RTAS:\ Eleven\ Free,\ 1\ in\ X\ 1\ out</MenuStr>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ </PluginID><!-\/-\/manID=\textcolor{stringliteral}{'Digi'}\ prodID=\textcolor{stringliteral}{'ElvF'}\ plugID=\textcolor{stringliteral}{'ELFr'}-\/-\/>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ </RTAS>}
\DoxyCodeLine{\ \ \ \ </PluginList>}
\DoxyCodeLine{\ \ \ \ <DiscCtrls>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <CtrlID>Amp\ Bypass</CtrlID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <CtrlID>Amp\ Type</CtrlID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <CtrlID>Bright\ Switch</CtrlID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <CtrlID>Cab\ Bypass</CtrlID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <CtrlID>Cab\ Type</CtrlID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <CtrlID>Master\ Bypass</CtrlID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <CtrlID>Mic\ Axis</CtrlID>}
\DoxyCodeLine{\ \ \ \ \ \ \ \ <CtrlID>Mic\ Type</CtrlID>}
\DoxyCodeLine{\ \ \ \ </DiscCtrls>}
\DoxyCodeLine{</Editor><!-\/-\/vers=\textcolor{stringliteral}{'1.3.7.1'}-\/-\/>}

\end{DoxyCode}


\hypertarget{a00929_subsection_parameter_identifiers}{}\doxysubsubsection{Parameter identifiers}\label{a00929_subsection_parameter_identifiers}
 The {\ttfamily ID} tags/arguments in a page table must reference parameters which are exposed by the plug-\/in\textquotesingle{}s \mbox{\hyperlink{a02266}{AAX\+\_\+\+IEffect\+Parameters}} implementation via methods such as \mbox{\hyperlink{a02066_aff1ff6b27973200429f057dc003f30a8}{Get\+Parameter\+Index()}}.

There are two supported ways to identify parameters in a page table\+:
\begin{DoxyItemize}
\item By the parameter\textquotesingle{}s ID (preferred)
\item By the parameter\textquotesingle{}s 31-\/character name (legacy)
\end{DoxyItemize}

A single page table may only reference the plug-\/in\textquotesingle{}s parameters using one of these two approaches; a page table file may not reference one parameter by its name and another by its ID, and it may not reference one parameter by its name in one location but by its ID in another location.

If a plug-\/in will change its parameters\textquotesingle{} names at run time then the parameter identifiers used in the page tables must reference parameters by ID.

\hypertarget{a00929_subsection_creating_page_tables_in_pete}{}\doxysubsubsection{Creating page tables using the AAX Plug-\/\+In Page Table Editor}\label{a00929_subsection_creating_page_tables_in_pete}
 Page tables can be created and edited using the AAX Plug-\/\+In Page Table Editor application available on the Developer website. The Page Table Editor generates an XML file that can be used in both Windows and Macintosh plug-\/in projects.

The Page Table Editor can also open page table files in existing .aaxplugin bundles on your system. If you\textquotesingle{}re looking for examples of how to lay out the common parameters in your plug-\/ins try opening up the page tables for one of the standard Avid plug-\/ins like Avid Channel Strip or D-\/\+Verb.

\begin{DoxyNote}{Note}
The Page Table Editor only supports opening a single file at a time. It can be useful to open multiple files in order to compare their layouts. To open multiple page tables at the same time you can launch multiple instances of the Page Table Editor application by running the application from a terminal shell.
\end{DoxyNote}
The Page Table Editor will make use of the Parameter IDs that are defined in a plug-\/in, and will associate them with the \textquotesingle{}Plugin\textquotesingle{} tags in the XML file. Using the Demo\+Dist sample plug-\/in included in the AAX SDK, you\textquotesingle{}ll see that there is one Plugin entry for each plug-\/in type in the binary.


\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{comment}{//\ Type,\ product,\ and\ relation\ IDs}}
\DoxyCodeLine{\textcolor{keyword}{const}\ \mbox{\hyperlink{a00542_ac678f9c1fbcc26315d209f71a147a175}{AAX\_CTypeID}}\ cDemoDist\_ManufactureID\ =\textcolor{stringliteral}{'AVID\ '};}
\DoxyCodeLine{\textcolor{keyword}{const}\ \mbox{\hyperlink{a00542_ac678f9c1fbcc26315d209f71a147a175}{AAX\_CTypeID}}\ cDemoDist\_ProductID\ =\ \textcolor{stringliteral}{'DmDE\ '};}
\DoxyCodeLine{\textcolor{keyword}{const}\ \mbox{\hyperlink{a00542_ac678f9c1fbcc26315d209f71a147a175}{AAX\_CTypeID}}\ cDemoDist\_TypeID\_AS\ =\ \textcolor{stringliteral}{'DmAS\ '};}
\DoxyCodeLine{\textcolor{keyword}{const}\ \mbox{\hyperlink{a00542_ac678f9c1fbcc26315d209f71a147a175}{AAX\_CTypeID}}\ cDemoDist\_TypeID\_MonoNative\ =\ \textcolor{stringliteral}{'DmRT\ '};}
\DoxyCodeLine{\textcolor{keyword}{const}\ \mbox{\hyperlink{a00542_ac678f9c1fbcc26315d209f71a147a175}{AAX\_CTypeID}}\ cDemoDist\_TypeID\_StereoNative\ =\ \textcolor{stringliteral}{'DsRT\ '};}
\DoxyCodeLine{\textcolor{keyword}{const}\ \mbox{\hyperlink{a00542_ac678f9c1fbcc26315d209f71a147a175}{AAX\_CTypeID}}\ cDemoDist\_TypeID\_MonoTI\ =\ \textcolor{stringliteral}{'DDT1\ '};}
\DoxyCodeLine{\textcolor{keyword}{const}\ \mbox{\hyperlink{a00542_ac678f9c1fbcc26315d209f71a147a175}{AAX\_CTypeID}}\ cDemoDist\_TypeID\_StereoTI\ =\ \textcolor{stringliteral}{'DDT2\ '};\ }

\end{DoxyCode}
  Listing 1\+: Demo\+Dist Plug-\/\+In IDs


\begin{DoxyCode}{0}
\DoxyCodeLine{.}
\DoxyCodeLine{.}
\DoxyCodeLine{.}
\DoxyCodeLine{<Plugin\ manID\ =\textcolor{stringliteral}{'AVID\ '}\ prodID\ =\textcolor{stringliteral}{'DmDE\ '}\ plugID\ =\textcolor{stringliteral}{'DmRT\ '}>}
\DoxyCodeLine{<Desc\ >\ DemoDist\ 1\ -\/\&amp;gt;\ 1\ by\ Avid\ Technology\ ,\ Inc\ .</\ Desc\ >}
\DoxyCodeLine{<Layout\ >\ PageTable\ 1</\ Layout\ >}
\DoxyCodeLine{</\ Plugin\ ><!-\/-\/\ manID\ =\textcolor{stringliteral}{'AVID\ '}\ prodID\ =\textcolor{stringliteral}{'DmDE\ '}\ plugID\ =\textcolor{stringliteral}{'DmRT\ '}-\/-\/>}
\DoxyCodeLine{<Plugin\ manID\ =\textcolor{stringliteral}{'AVID\ '}\ prodID\ =\textcolor{stringliteral}{'DmDE\ '}\ plugID\ =\textcolor{stringliteral}{'DsRT\ '}>}
\DoxyCodeLine{<Desc\ >\ DemoDist\ 2\ -\/\&amp;gt;\ 2\ by\ Avid\ Technology\ ,\ Inc\ .</\ Desc\ >}
\DoxyCodeLine{<Layout\ >\ PageTable\ 1</\ Layout\ >}
\DoxyCodeLine{</\ Plugin\ ><!-\/-\/\ manID\ =\textcolor{stringliteral}{'AVID\ '}\ prodID\ =\textcolor{stringliteral}{'DmDE\ '}\ plugID\ =\textcolor{stringliteral}{'DsRT\ '}-\/-\/>}
\DoxyCodeLine{<Plugin\ manID\ =\textcolor{stringliteral}{'AVID\ '}\ prodID\ =\textcolor{stringliteral}{'DmDE\ '}\ plugID\ =\textcolor{stringliteral}{'DDT1\ '}>}
\DoxyCodeLine{<Desc\ >\ DemoDist\ 1\ -\/\&amp;gt;\ 1\ by\ Avid\ Technology\ ,\ Inc\ .</\ Desc\ >}
\DoxyCodeLine{<Layout\ >\ PageTable\ 1</\ Layout\ >}
\DoxyCodeLine{</\ Plugin\ ><!-\/-\/\ manID\ =\textcolor{stringliteral}{'AVID\ '}\ prodID\ =\textcolor{stringliteral}{'DmDE\ '}\ plugID\ =\textcolor{stringliteral}{'DDT1\ '}-\/-\/>}
\DoxyCodeLine{<Plugin\ manID\ =\textcolor{stringliteral}{'AVID\ '}\ prodID\ =\textcolor{stringliteral}{'DmDE\ '}\ plugID\ =\textcolor{stringliteral}{'DDT2\ '}>}
\DoxyCodeLine{<Desc\ >\ DemoDist\ 2\ -\/\&amp;gt;\ 2\ by\ Avid\ Technology\ ,\ Inc\ .</\ Desc\ >}
\DoxyCodeLine{<Layout\ >\ PageTable\ 1</\ Layout\ >}
\DoxyCodeLine{</\ Plugin\ ><!-\/-\/\ manID\ =\textcolor{stringliteral}{'AVID\ '}\ prodID\ =\textcolor{stringliteral}{'DmDE\ '}\ plugID\ =\textcolor{stringliteral}{'DDT2\ '}-\/-\/>}
\DoxyCodeLine{.}
\DoxyCodeLine{.}
\DoxyCodeLine{.\ }

\end{DoxyCode}
  Listing 2\+: Demo\+Dist XML

\begin{DoxyNote}{Note}
For compatibility between your AAX and corresponding RTAS or TDM plug-\/ins, make sure the 4 character IDs for \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0da996465cca29a2a15291d1c788ac5728c}{AAX\+\_\+e\+Property\+\_\+\+Manufacturer\+ID}}, \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0da3a41fcdff5af1a4fd19dcbca7b1ba6f3}{AAX\+\_\+e\+Property\+\_\+\+Product\+ID}}, \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0da89ca3dd6e96895cda14976c1b1ceb826}{AAX\+\_\+e\+Property\+\_\+\+Plug\+In\+ID\+\_\+\+Native}}, and \mbox{\hyperlink{a00608_a13e384f22825afd3db6d68395b79ce0dad3344696b8298a8b254add3d039ea927}{AAX\+\_\+e\+Property\+\_\+\+Plug\+In\+ID\+\_\+\+Audio\+Suite}} are identical to the legacy SDK\textquotesingle{}s counterpart.
\end{DoxyNote}
For more information about the AAX Plug-\/\+In Page Table Editor tool, see the Read\+Me file which accompanies the application.

\hypertarget{a00929_verifying_page_table_layouts_the_hidden_popup_menu}{}\doxysubsubsection{Verifying Page Table Layouts\+: The Hidden Pop-\/\+Up Menu}\label{a00929_verifying_page_table_layouts_the_hidden_popup_menu}
You can verify the page tables created in your plug-\/in in Pro Tools with a \char`\"{}hidden\char`\"{} developer debug Page Tables popup menu. To verify the page tables, first include the Your\+Page\+Tables.\+r file in your project and compile the plug-\/in. Then, after launching Pro Tools, instantiate the plug-\/in, hold down the Commandkey (Ctrl-\/key in Windows) and mouse-\/click the Automation button in the plug-\/in window to display the menu.


\begin{DoxyItemize}
\item  Category 

The Category menu item has a submenu listing the names of possible categories. Any category that the plug-\/in belongs to will have a check mark next to it. In addition, appended to the name of the category is an indication of whether that category can be bypassed, and if so, the control number (\#) and control name of the associated bypass control. Also appended is the number of the first page on which a control associated with the category can be found. This page number is based on whatever the current page table type is selected in the \char`\"{}\+Table\+Type\char`\"{} menu item. For example\+: Delay (can bypass, control \#9, Master Bypass) (first page \#1)


\item  Table Type 

Sets the type of control surface page table.


\item  Page Size 

Sets the number of controls per page. The identifier \char`\"{}custom\char`\"{} is shown next to page sizes that have been specifically implemented (which at minimum, should appear next to page sizes of 5, 6, 8, and16! ). The identifier \char`\"{}default\char`\"{} is shown next to page sizes that do not have specific support in your page table file. Note that the Mackie and Pro\+Control table type will automatically set this to 8 and 16, respectively.


\item  Control Name Length 

Sets the number of characters to be displayed in the control\textquotesingle{}s name (shown in the Page menu below). The identifier \char`\"{}expected length\char`\"{} appears next to lengths that should be specifically addressed (3, 4, 5, 6, 7, 8, and 31). If you use the XML page table system, the names can be specified in the \mbox{\hyperlink{a00929_subsection_creating_page_tables_in_pete}{Page Table Editor}} application. Otherwise, the function Get\+Control\+Name\+Of\+Length() is responsible for providing names with these lengths.


\item  Control Value Length 

Sets the number of characters to be displayed in the control\textquotesingle{}s value (shown in the Page menu below). The identifier \char`\"{}expected length\char`\"{} appears next to lengths that should be specifically addressed (4, 5, 6, 7, 8, and 31; also, 3 is used for Pro\+Control switch states). The plug-\/in Library call Get\+Value\+String() is responsible for providing values with these lengths.


\item  Highlighted Page 

Highlights the selected page in the plug-\/in window in Pro Tools.


\item  Highlight Color 

Sets the highlight color. The highlight color can be\+: red, green, blue or yellow. Note that at minimum, plug-\/in\textquotesingle{}s should support these four colors of highlighting! 


\item  Page X 

The actual page table layouts are shown here. The following information can be seen in this menu item. 
\begin{DoxyItemize}
\item The control\textquotesingle{}s name, as returned from the XML page tables. If the table type is Mackie, then the length will be 4 (unless overridden by changing the \char`\"{}\+Control Name Length\char`\"{} menu item). If the table type is Pro\+Control, the length will be 3 (again, unless overridden, but usually there is no point in doing so). Also, with Pro\+Control set as the table type, the special Pro\+Control symbols will appear here if they are part of the name (however, note that they are small and can be difficult to see). Finally, if the table type is default, the name will be shown with the number of characters as specified in the \char`\"{}\+Control Name Length\char`\"{} menu item.  
\item The control\textquotesingle{}s value is shown next. Both the Mackie and Pro\+Control table types will automatically set the control\textquotesingle{}s value length to 4 and 3, respectively. Otherwise, this can be set with the \char`\"{}\+Control Value Length\char`\"{} menu item. Get\+Value\+String() is responsible for providing this \textquotesingle{}value\textquotesingle{} information. 
\item The number of control steps is shown next for continuous and discrete controls. For example, a discrete control will appear as\+: \char`\"{}(discrete\+: N steps)\char`\"{}, where N is the \# of steps of the control. 
\item If \char`\"{}(\+No\+L)\char`\"{} is displayed, this simply means that it is a new plug-\/in, and supports either the XML page tables or the Get\+Parameter\+Name\+Of\+Length() function call. If \char`\"{}(\+No\+L)\char`\"{} does not appear, then the plug-\/in is older and you should not expect the control names or values to be optimized -\/ since they are created by just truncating the longer values that the older plug-\/ins return. 
\item If \char`\"{}(highlight)\char`\"{} is displayed, this means that the string will be reverse highlighted when displayed on hardware controllers that support it. Not all hardware controllers utilize reverse highlighting. 
\item Next, orientation flags for each plug-\/in control will be displayed. The format is\+: \char`\"{}(\+Value\+: xxx yyy),\char`\"{} where xxx is either \char`\"{}\+BMin\char`\"{} (k\+DAE\+\_\+\+Bottom\+Min\+Top\+Max) or \char`\"{}\+TMin\char`\"{} (k\+DAE\+\_\+\+Top\+Min\+Bottom\+Max); and yyy is either \char`\"{}\+LMin\char`\"{} (k\+DAE\+\_\+\+Left\+Min\+Right\+Max) or \char`\"{}\+RMin\char`\"{} (k\+DAE\+\_\+\+Right\+Min\+Left\+Max). This text identifies the value of the control\textquotesingle{}s orientation flags, as returned by Get\+Parameter\+Orientation(). 
\item Also shown is the radial LED encoder-\/display mode (as returned by Get\+Control\+Orientation()) assigned to each control (this radial LED surrounds each encoder). The possible modes are\+: \char`\"{}spread\char`\"{} k\+DAE\+\_\+\+Rotary\+Spread\+Mode, \char`\"{}wrap\char`\"{} k\+DAE\+\_\+\+Rotary\+Wrap\+Mode, \char`\"{}boost\char`\"{} k\+DAE\+\_\+\+Rotary\+Boost\+Cut\+Mode, or \char`\"{}dot\char`\"{} k\+DAE\+\_\+\+Rotary\+Single\+Dot\+Mode, along with either \char`\"{}\+RMin\char`\"{} k\+DAE\+\_\+\+Rotary\+Right\+Min\+Left\+Max, or \char`\"{}\+LMin\char`\"{} k\+DAE\+\_\+\+Rotary\+Left\+Min\+Right\+Max -\/ indicating which side the minimum AAE value is being mapped to.  
\end{DoxyItemize}
\end{DoxyItemize}

\hypertarget{a00929_subsection_control_highlighting_scheme}{}\doxysubsubsection{Control Highlighting Scheme}\label{a00929_subsection_control_highlighting_scheme}
Note that plug-\/in controls that are currently controllable on any page of a plug-\/in will be highlighted in blue when they are the active page on a control surface. Therefore, it is very important to implement the highlighting of controls in your plug-\/in. Plug-\/in highlighting is also used with automation. In general, four common colors should be implemented\+: 
\begin{DoxyItemize}
\item Red\+: Write automated  
\item Green\+: Read automated 
\item Blue\+: Accessible on control surface (stays blue if control is also read automated)  
\item Yellow\+: Accessible on control surface and write automated  
\end{DoxyItemize}

You can use the \char`\"{}hidden\char`\"{} popup menu above to test that your color schemes are working properly.

\hypertarget{a00929_subsection_control_numbering_layouts}{}\doxysubsubsection{Control Numbering Layouts}\label{a00929_subsection_control_numbering_layouts}
Most of the advanced control surfaces have both rotary encoders (knobs) and switches. The knobs and switches are handled differently by different surfaces. C$\vert$24 has a set of 24 rotary encoders and 24 switches for plug-\/in editing, and 003 has 8 encoders and 8 switches, all set up in pairs. However, both of these control surfaces automatically assign a control with only two possible values (e.\+g., \char`\"{}on\char`\"{} or \char`\"{}off\char`\"{}) to a switch, while a control with three or more possible values, whether it is discrete or continuous, is automatically assigned to the rotary encoder. Therefore, no distinction is made between control numbers for switches and control numbers for encoders.

The following tables show how the control numbers are arranged for control surfaces which have distinctions between their encoders and switches.


\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|}
\caption{Table 2\+: D-\/\+Control Channel Strip -\/ Numbering Layout }\label{_}\\
\hline
\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Encoders  }}&\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Switches   }}\\\cline{1-2}
\endfirsthead
\hline
\endfoot
\hline
\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Encoders  }}&\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Switches   }}\\\cline{1-2}
\endhead
\multirow{1}{*}{1  }&\multirow{1}{*}{7   }\\\cline{1-2}
\multirow{1}{*}{2  }&\multirow{1}{*}{8   }\\\cline{1-2}
\multirow{1}{*}{3  }&\multirow{1}{*}{9   }\\\cline{1-2}
\multirow{1}{*}{4  }&\multirow{1}{*}{10   }\\\cline{1-2}
\multirow{1}{*}{5  }&\multirow{1}{*}{11   }\\\cline{1-2}
\multirow{1}{*}{6  }&\multirow{1}{*}{12   }\\\cline{1-2}
\end{longtabu}



\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|}
\caption{Table 3\+: D-\/\+Control/\+Pro-\/\+Control Custom Fader Mode -\/ Numbering Layout }\label{_}\\
\hline
\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Encoders  }}&\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Switches   }}\\\cline{1-2}
\endfirsthead
\hline
\endfoot
\hline
\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Encoders  }}&\multirow{1}{*}{\cellcolor{\tableheadbgcolor}\textbf{ Switches   }}\\\cline{1-2}
\endhead
\multirow{1}{*}{1  }&\multirow{1}{*}{9   }\\\cline{1-2}
\multirow{1}{*}{2  }&\multirow{1}{*}{10   }\\\cline{1-2}
\multirow{1}{*}{3  }&\multirow{1}{*}{11   }\\\cline{1-2}
\multirow{1}{*}{4  }&\multirow{1}{*}{12   }\\\cline{1-2}
\multirow{1}{*}{5  }&\multirow{1}{*}{13   }\\\cline{1-2}
\multirow{1}{*}{6  }&\multirow{1}{*}{14   }\\\cline{1-2}
\multirow{1}{*}{7  }&\multirow{1}{*}{15   }\\\cline{1-2}
\multirow{1}{*}{8  }&\multirow{1}{*}{16   }\\\cline{1-2}
\end{longtabu}


\hypertarget{a00929_subsection_alphanumeric_displays}{}\doxysubsubsection{Alphanumeric Displays}\label{a00929_subsection_alphanumeric_displays}
With the advent of the newer advanced control surfaces (CS), plug-\/ins now have the opportunity to provide information to the user via alphanumeric displays on the CS. Unfortunately, the displays are limited in the number of characters that can be shown. For instance, on the Mackie HUI, nine characters are provided for each plug-\/in control, allowing only four characters for the control name, and four characters for the control value, and one for a space between them. On Pro\+Control, eight characters are provided for each plug-\/in control, with three characters allocated to displaying a control name, and four characters for its control value. On C$\vert$24 and 003, four characters are provided for the plug-\/in name, control name, and the control value. For the control value, these four characters include a +/-\/ and/or any necessary unit abbreviations (ex\+: K, s, dB, etc.). D-\/\+Control and Command$\vert$8 provide six characters for the plug-\/in name, control name, and control value.

In order to display meaningful information in these short character strings, plug-\/ins will have to optimize the strings that they return to AAE. The dispatcher calls Map\+Control\+Val\+To\+String(), which in turn calls Get\+Value\+String(), is used to obtain these control value strings. Typically in the past, the requested length argument of both these member functions, i.\+e., max\+Chars in Map\+Control\+Val\+To\+String() or max\+Length in Get\+Value\+String() has been ignored; but, from here on out, they should be carefully examined and used to create an optimum and meaningful string for any requested length.

To prevent the code from becoming unwieldy, as in the case of trying to provide strings for all requested lengths, a minimum number of expected lengths should be specifically addressed. The expected value lengths are\+: 4, 5, 6, 7, 8, and 31. In addition, Pro\+Control switch states are a maximum length of 3 (i.\+e., when dealing with the state of a switch for Pro\+Control, provide this information in 3 characters or less). Therefore, whenever possible, a plug-\/in should return the most meaningful string that will fit in any particular requested length, and at minimum, handle the expected lengths. If a plug-\/in does not have custom code to handle a particular requested length, it can round the length down to the next smaller expected length and use the code that it has for it. For example, a request of 9 characters should be converted to an expected request of 8 characters.

Please note\+: Since truncating a long string to fit within the requested length will not provide meaningful results in most cases, plug-\/ins must specifically provide code for deriving useful strings for the expected lengths where applicable.

Since the smaller lengths, especially 4 and 5 characters, are usually too short to display a plug-\/in\textquotesingle{}s true full value including units, some decisions will have to be made about how to suitably shorten them. The following provides some general guidelines.

If needed, and in order of precedence, try to\+: 
\begin{DoxyItemize}
\item Remove spaces\+: 13 Hz becomes 13Hz 
\item Use common abbreviations for units\+: 16 seconds to 16sec, or 16 s, 156 Hertz to 156Hz  
\item Drop the units entirely\+: 1832 Hz to 1832 
\item Round the value\+: 173.\+3 ms to 173 
\end{DoxyItemize}

Here is a table depicting a typical example in more detail. The expected lengths are shown in the left most vertical column.

   Alphanumeric Characters

While creating the above strings, the requested length argument passed in (max\+Chars in Map\+Control\+Val\+To\+String(), and max\+Length in Get\+Value\+String()) should be strictly adhered to! The string returned should be no greater than the requested number of characters. Furthermore, the developer should assume that the buffer passed into this function is only as large as the requested length. Any intermediate string processing should be done in temporary local buffers and only when you have the final string should you copy back to the buffer that was passed in, making sure you copy no more than the requested number of characters, plus the Null character or Length byte, as appropriate; since in general, Map\+Control\+Val\+To\+String() uses C strings and Get\+Value\+String() uses Pascal strings.

Also, in an effort to further help prevent buffer overruns, two new functions have been added to the PI library file Slider\+Conversions.\+cp\+: Smart\+Append\+Num() and Smart\+Append\+XNum(), which includes a maximum length argument and should be used in place of Fic\+Append\+Num() and Fic\+Append\+XNum() from Fic\+Basics.\+cpp.

Finally, note that Pro\+Control and HUI will sometimes utilize 5 characters to display its value when a sign is involved. For instance, if the number is -\/100, the negative sign will appear in the space separating the control name from the control value. Pro Tools will take care of this conversion as long as all of the expected lengths are properly provided for. For C$\vert$24 and 003, this is not the case -\/ only four characters are allowed, so the +/-\/ must be a part of those four characters.

HUI, Pro\+Control, C$\vert$24, and 003 all provide alphanumeric displays for visual feedback, with the primary purpose being plug-\/in parameter editing. Functions in the plug-\/in library are provided that allow customized parameter strings to be created for use on the display. Specifically, these functions are\+: Get\+Control\+Name\+Of\+Length() and Get\+Value\+String(). Fortunately, the details of writing to the display are taken care of by the application. Therefore, the plug-\/in developer only needs to be concerned with providing meaningful display strings for all plug-\/in parameters that are controllable. Whether using the XML or legacy page table system, Get\+Control\+Name\+Of\+Length() should return the long version (31 characters maximum) of the plug-\/in\textquotesingle{}s control names. Short versions of plug-\/in control names are stored in the XML file, edited with the \mbox{\hyperlink{a00929_subsection_creating_page_tables_in_pete}{Page Table Editor}} application. If you are also using legacy page tables to support versions of Pro Tools prior to 6.\+4, the short names should also be coded in the Get\+Control\+Name\+Of\+Length() function.

AAE clients like Pro Tools call Get\+Control\+Name\+Of\+Length(), but if AAE finds XML data stored in the plug-\/in, it gets the information from there rather than calling into the plug-\/in. Get\+Control\+Name\+Of\+Length() is responsible for providing the parameter \char`\"{}names\char`\"{} used on the display. As with parameter \char`\"{}value\char`\"{} strings, it is important to carefully create parameter names that are meaningful in the limited space allocated to displaying parameter names. On Pro\+Control, string lengths of three characters will be used for the parameter name strings, where four characters will be used on the HUI, C$\vert$24, and 003. D-\/\+Control and Command$\vert$8 use six characters for control names. In general, lengths of 3, 4, 5, 6, 7, 8, and 31 should be specifically addressed in the Page Table Editor or Get\+Control\+Name\+Of\+Length(). We begin next, by looking at some concrete examples.

\hypertarget{a00929_subsection_procontrol_display}{}\doxysubsubsection{Pro\+Control Display}\label{a00929_subsection_procontrol_display}
Pro\+Control also provides an alphanumeric display; however, there are some significant differences that need to be addressed. Shown is a generic representation for the Pro\+Control display. The image below shows what users will usually be viewing on Pro\+Control\textquotesingle{}s displays, which are the current Encoder/\+Value settings. Figure 13 shows the current switch settings when the user toggles to the Switch/\+State display mode. Pro\+Control will only display one of three views at any given time.

   Pro-\/\+Control Encoder Display

~ ~    Pro\+Control Switch Display

As with the HUI, meaningful strings will have to be provided in the limited available lengths. Pro\+Control, C$\vert$24 or 003 value strings require no special treatment other than what has already been stated above for HUI, since all of these control surfaces display their values in 4 digits/characters, as returned by {\ttfamily Get\+Value\+String()}. The biggest difference between the HUI display and the Avid control surfaces\textquotesingle{} displays is that the Avid control surfaces can display symbols.

Let\textquotesingle{}s take a moment to explain how the displays of C$\vert$24 and 003 work. Both of these surfaces have a four character LED display located above each encoder/switch pair. When in Channel mode, these scribble strips show the plug-\/in name (if any) on that channel. When that plug-\/in is selected, the display switches to show the controls for the plug-\/in. Now each display shows the name of the control. The display automatically switches to the current value of the control when the encoder or switch is moved or pushed. 

 \hypertarget{a00929_aax_page_table_guide_a_get_parameter_value_info}{}\doxysubsection{Appendix A. Get Parameter Value Info}\label{a00929_aax_page_table_guide_a_get_parameter_value_info}
\hypertarget{a00929_subsection__overview}{}\doxysubsubsection{Overview}\label{a00929_subsection__overview}
{\ttfamily AAX\+\_\+\+Result Get\+Parameter\+Value\+Info ( AAX\+\_\+\+CParam\+ID i\+Parameter\+ID, int32\+\_\+t i\+Selector, int32\+\_\+t$\ast$ o\+Value)}

\mbox{\hyperlink{a02066_a1702de6d62b5b41b6a8b2f510300392b}{Get\+Parameter\+Value\+Info()}} is implemented at the Data Model\textquotesingle{}s \mbox{\hyperlink{a01850}{AAX\+\_\+\+CEffect\+Parameters}} level, and will allow the app to query a plug-\/in for the \char`\"{}meaning\char`\"{} of its parameter values. It was designed as a general purpose mechanism that will find additional uses with new selectors in the future. It is used\+: 
\begin{DoxyItemize}
\item to ensure the EQ and Dynamics sections\textquotesingle{} EQ type selector LEDs light appropriately for a givenband\textquotesingle{}s filter type. We want the appropriate EQ type LED to light for each band\textquotesingle{}s filter type -\/whether or not your band can switch between filter types. 
\item to ensure the state of the EQ section\textquotesingle{}s In buttons matches the values of the associated plug-\/incontrols. When each band\textquotesingle{}s In button is lit, it must mean that the EQ is active/on/enabled.\+When it is unlit, it must mean that the EQ is off/disabled/bypassed. (Some plug-\/ins have EQbypass controls (On = bypass); others have EQ In buttons (On = On). We can derive \char`\"{}meaning\char`\"{} from the control regardless of control value.) 
\item similarly, to ensure the state of the Dynamics section\textquotesingle{}s Filt In buttons matches the values of theassociated plug-\/in controls. When each band\textquotesingle{}s Filt In button is lit, it must mean that the EQ isactive/on/enabled. When it is unlit, it must mean that the EQ is off/disabled/bypassed. 
\end{DoxyItemize}

\hypertarget{a00929_subsection__implementation}{}\doxysubsubsection{Implementation}\label{a00929_subsection__implementation}
\mbox{\hyperlink{a01850_a0d3436cb88b4a86fe82a663221a9cfef}{Get\+Parameter\+Value\+Info()}} will be of type \mbox{\hyperlink{a00446_aa169208a2ce713fa021e20deb2eaf608}{AAX\+\_\+\+EParameter\+Value\+Info\+Selector}} (\mbox{\hyperlink{a00446}{AAX\+\_\+\+Enums.\+h}}) and will allow for future queries on parameter value \char`\"{}meaning.\char`\"{}


\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{enum}\ \mbox{\hyperlink{a00446_aa169208a2ce713fa021e20deb2eaf608}{AAX\_EParameterValueInfoSelector}}}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_aa169208a2ce713fa021e20deb2eaf608a99ca84cc3dae0f125082d36893a12bcd}{AAX\_ePageTable\_EQ\_Band\_Type}}\ =\ 0,}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_aa169208a2ce713fa021e20deb2eaf608ac5a06a293b7706191d3371813c47e999}{AAX\_ePageTable\_EQ\_InCircuitPolarity}}\ =\ 1,}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_aa169208a2ce713fa021e20deb2eaf608a1a0d975a333d3aee81b22f878697e9c4}{AAX\_ePageTable\_UseAlternateControl}}\ =\ 2}
\DoxyCodeLine{\};\ }

\end{DoxyCode}
  Listing 3\+: Parameter Selector Enums

Results (not return values) passed back by \mbox{\hyperlink{a01850_a0d3436cb88b4a86fe82a663221a9cfef}{Get\+Parameter\+Value\+Info()}} will be of one of these two types\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{enum}\ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95}{AAX\_EEQBandTypes}}}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95a7827eec27ad12a8abb7f466c629b6482}{AAX\_eEQBandType\_HighPass}}\ =\ 0,}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95a3dbff637a879e2f187f9ad1bbb97c8a3}{AAX\_eEQBandType\_LowShelf}}\ =\ 1,}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95a162d60d2812f3786ef5f87d288193e95}{AAX\_eEQBandType\_Parametric}}\ =\ 2,}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95aa36c45b5f1a3dd677fdb14020b83d16f}{AAX\_eEQBandType\_HighShelf}}\ =\ 3,}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95a5de1272a9829d9d764a7a25adcdae1eb}{AAX\_eEQBandType\_LowPass}}\ =\ 4,}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95a5e8aee84ee2cd1db292283e7550e64dc}{AAX\_eEQBandType\_Notch}}\ =\ 5}
\DoxyCodeLine{\};\ }

\end{DoxyCode}
  Listing 4\+: EQ Band Type Enums


\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{enum}\ \mbox{\hyperlink{a00446_ab5bda96f09874705e9b800d1b1495b48}{AAX\_EEQInCircuitPolarity}}}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_ab5bda96f09874705e9b800d1b1495b48aa1f21f2aa320ece14a9259195d3ee2bd}{AAX\_eEQInCircuitPolarity\_Enabled}}\ =\ 0,}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_ab5bda96f09874705e9b800d1b1495b48aeef37a6376396f07977b4c233985dfe6}{AAX\_eEQInCircuitPolarity\_Bypassed}}\ =\ 1,}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_ab5bda96f09874705e9b800d1b1495b48a4a85b608d03de4997616de1e95610208}{AAX\_eEQInCircuitPolarity\_Disabled}}\ =\ 2}
\DoxyCodeLine{\};\ }

\end{DoxyCode}
  Listing 5\+: EQ Circuit Polarity Enums


\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{enum}\ \mbox{\hyperlink{a00446_abbcc8b4e8207262a5dd9e32047a51a29}{AAX\_EUseAlternateControl}}}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_abbcc8b4e8207262a5dd9e32047a51a29a5cfea068cc7ea51becccc9d26955e443}{AAX\_eUseAlternateControl\_No}}\ =\ 0,}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{a00446_abbcc8b4e8207262a5dd9e32047a51a29aa63097dc0b27e51411f30b06b2db26f1}{AAX\_eUseAlternateControl\_Yes}}\ =\ 1}
\DoxyCodeLine{\};\ \ }

\end{DoxyCode}
  Listing 6\+: Alternate Control Enum

Please see \mbox{\hyperlink{a00446}{AAX\+\_\+\+Enums.\+h}} for more information.

To add support for this method, you must to override \mbox{\hyperlink{a01850_a0d3436cb88b4a86fe82a663221a9cfef}{AAX\+\_\+\+CEffect\+Parameters\+::\+Get\+Parameter\+Value\+Info()}} from within your plug-\/ins Data Model. For a given \mbox{\hyperlink{a00542_a1440c756fe5cb158b78193b2fc1780d1}{AAX\+\_\+\+CParam\+ID}}, selector, and parameter value, you must pass back a result (not a return value) denoting the \char`\"{}meaning\char`\"{} of that parameter value. If a parameter has no meaning in the context of the given selector, you should return \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937a3b76994b32b97fcd56b19ef8032245df}{AAX\+\_\+\+ERROR\+\_\+\+UNIMPLEMENTED}}.

One point to note, is that an EQ or Dynamics plug-\/in may have a band of EQ that does not include an EQ type selector control. The band is just always, say, a HPF. There\textquotesingle{}s no control to map to the EQ type selector button in the page table and therefore no obvious control for which you would pass back \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95a7827eec27ad12a8abb7f466c629b6482}{AAX\+\_\+e\+EQBand\+Type\+\_\+\+High\+Pass}} in \mbox{\hyperlink{a01850_a0d3436cb88b4a86fe82a663221a9cfef}{Get\+Parameter\+Value\+Info()}}. What is the solution? Well, the other controls on that band (Frequency, Q/\+Slope, Gain, In) know what type of band they\textquotesingle{}re on. Thus the plug-\/in should pass back the relevant EEQ\+\_\+\+Band\+\_\+\+Types enum in \mbox{\hyperlink{a01850_a0d3436cb88b4a86fe82a663221a9cfef}{Get\+Parameter\+Value\+Info()}} for all controls on a given band of EQ. This also applies to key filter bands in your Dynamics plug-\/ins. In this way, the EQ type selector LEDs in both the EQ and Dynamics sections will always light appropriately.

The second exception applies to EQ or Dynamics plug-\/ins that have a band of EQ that does not include an In Circuit / Out of Circuit control for that band. In this case, the band is always In Circuit (or On) and the other controls for this band should return \mbox{\hyperlink{a00446_ab5bda96f09874705e9b800d1b1495b48aa1f21f2aa320ece14a9259195d3ee2bd}{AAX\+\_\+e\+EQIn\+Circuit\+Polarity\+\_\+\+Enabled}} as the result for \mbox{\hyperlink{a01850_a0d3436cb88b4a86fe82a663221a9cfef}{Get\+Parameter\+Value\+Info()}} when the \mbox{\hyperlink{a00446_aa169208a2ce713fa021e20deb2eaf608ac5a06a293b7706191d3371813c47e999}{AAX\+\_\+e\+Page\+Table\+\_\+\+EQ\+\_\+\+In\+Circuit\+Polarity}} selector is passed in. Code snippets for \mbox{\hyperlink{a01850_a0d3436cb88b4a86fe82a663221a9cfef}{Get\+Parameter\+Value\+Info()}} from the EQ III 7-\/Band AAX plug-\/in is provided below\+:

\begin{DoxyNote}{Note}
The logic for the In Circuit / Out of Circuit LED is available in Pro Tools 6.\+7 and higher.
\end{DoxyNote}

\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{comment}{//\ *************************************************}}
\DoxyCodeLine{\textcolor{comment}{//\ METHOD:\ \ GetParameterValueInfo}}
\DoxyCodeLine{\textcolor{comment}{//\ *************************************************}}
\DoxyCodeLine{\mbox{\hyperlink{a00542_a4d8f69a697df7f70c3a8e9b8ee130d2f}{AAX\_Result}}\ EQIII\_7\_Parameters::GetParameterValueInfo\ (\ \mbox{\hyperlink{a00542_a1440c756fe5cb158b78193b2fc1780d1}{AAX\_CParamID}}\ iParameterID,\ int32\_t\ iSelector,\ int32\_t*\ oValue)\textcolor{keyword}{\ const}}
\DoxyCodeLine{\textcolor{keyword}{}\{}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{const}\ \mbox{\hyperlink{a02302}{AAX\_IParameter}}\ *\ parameter\ =\ mParameterManager.GetParameterByID(\ iParameterID\ );}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{if}\ (\ !parameter\ )}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937a06161017c1b18c4300e0634502e35b78}{AAX\_ERROR\_INVALID\_PARAMETER\_ID}};}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{if}\ (\ iSelector\ ==\ \mbox{\hyperlink{a00446_aa169208a2ce713fa021e20deb2eaf608a99ca84cc3dae0f125082d36893a12bcd}{AAX\_ePageTable\_EQ\_Band\_Type}}\ )}
\DoxyCodeLine{\ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ parameter-\/>\mbox{\hyperlink{a02302_a3e99bd896b94c771ecf661520a19bd45}{Name}}()\ ==\ EQIII\_HPF\_Type\ )}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}(\ parameter-\/>\mbox{\hyperlink{a02302_ad4fc7431439f53cc0253d191b19db00b}{GetStepValue}}()\ )}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0\ \textcolor{comment}{/*Notch*/}:\ \ *oValue\ =\ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95a5e8aee84ee2cd1db292283e7550e64dc}{AAX\_eEQBandType\_Notch}};\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1\ \textcolor{comment}{/*HiPass*/}:\ *oValue\ =\ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95a7827eec27ad12a8abb7f466c629b6482}{AAX\_eEQBandType\_HighPass}};\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:\ *oValue\ =\ -\/1;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937a3b76994b32b97fcd56b19ef8032245df}{AAX\_ERROR\_UNIMPLEMENTED}};\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937aeddbd1bb67e3a66e6af54a4b4a7a57b3}{AAX\_SUCCESS}};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (\ parameter-\/>\mbox{\hyperlink{a02302_a3e99bd896b94c771ecf661520a19bd45}{Name}}()\ ==\ EQIII\_LF\_Type\ )}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}(\ parameter-\/>\mbox{\hyperlink{a02302_ad4fc7431439f53cc0253d191b19db00b}{GetStepValue}}()\ )}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0\ \textcolor{comment}{/*Peak*/}:\ \ *oValue\ =\ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95a162d60d2812f3786ef5f87d288193e95}{AAX\_eEQBandType\_Parametric}};\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1\ \textcolor{comment}{/*Shelf*/}:\ *oValue\ =\ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95a3dbff637a879e2f187f9ad1bbb97c8a3}{AAX\_eEQBandType\_LowShelf}};\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:\ *oValue\ =\ -\/1;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937a3b76994b32b97fcd56b19ef8032245df}{AAX\_ERROR\_UNIMPLEMENTED}};\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937aeddbd1bb67e3a66e6af54a4b4a7a57b3}{AAX\_SUCCESS}};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (parameter-\/>\mbox{\hyperlink{a02302_a3e99bd896b94c771ecf661520a19bd45}{Name}}()\ ==\ EQIII\_HF\_Type\ )}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (parameter-\/>\mbox{\hyperlink{a02302_ad4fc7431439f53cc0253d191b19db00b}{GetStepValue}}()\ )}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0\ \textcolor{comment}{/*Peak*/}:\ \ *oValue\ =\ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95a162d60d2812f3786ef5f87d288193e95}{AAX\_eEQBandType\_Parametric}};\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1\ \textcolor{comment}{/*Shelf*/}:\ *oValue\ =\ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95aa36c45b5f1a3dd677fdb14020b83d16f}{AAX\_eEQBandType\_HighShelf}};\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:\ *oValue\ =\ -\/1;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937a3b76994b32b97fcd56b19ef8032245df}{AAX\_ERROR\_UNIMPLEMENTED}};\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937aeddbd1bb67e3a66e6af54a4b4a7a57b3}{AAX\_SUCCESS}};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (\ parameter-\/>\mbox{\hyperlink{a02302_a3e99bd896b94c771ecf661520a19bd45}{Name}}()\ ==\ EQIII\_LPF\_Type\ )}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ parameter-\/>\mbox{\hyperlink{a02302_ad4fc7431439f53cc0253d191b19db00b}{GetStepValue}}()\ )}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0\ \textcolor{comment}{/*Notch*/}:\ \ *oValue\ =\ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95a5e8aee84ee2cd1db292283e7550e64dc}{AAX\_eEQBandType\_Notch}};\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1\ \textcolor{comment}{/*LoPass*/}:\ *oValue\ =\ \mbox{\hyperlink{a00446_a9ec6da28e827496514bd15d6f2b26d95a5de1272a9829d9d764a7a25adcdae1eb}{AAX\_eEQBandType\_LowPass}};\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{default}:\ *oValue\ =\ -\/1;\ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937a3b76994b32b97fcd56b19ef8032245df}{AAX\_ERROR\_UNIMPLEMENTED}};\ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937aeddbd1bb67e3a66e6af54a4b4a7a57b3}{AAX\_SUCCESS}};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (iSelector\ ==\ \mbox{\hyperlink{a00446_aa169208a2ce713fa021e20deb2eaf608a1a0d975a333d3aee81b22f878697e9c4}{AAX\_ePageTable\_UseAlternateControl}})}
\DoxyCodeLine{\ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ (parameter-\/>\mbox{\hyperlink{a02302_a3e99bd896b94c771ecf661520a19bd45}{Name}}()\ ==\ EQIII\_HPF\_Type\ )\ ||}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ (parameter-\/>\mbox{\hyperlink{a02302_a3e99bd896b94c771ecf661520a19bd45}{Name}}()\ ==\ EQIII\_HPF\_Q)\ \ \ \ \ ||}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ (parameter-\/>\mbox{\hyperlink{a02302_a3e99bd896b94c771ecf661520a19bd45}{Name}}()\ ==\ EQIII\_HPF\_Slope)\ \ \ \ \ )}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \mbox{\hyperlink{a02302}{AAX\_IParameter}}*\ typeParam\ =\ mParameterManager.GetParameterByID(EQIII\_HPF\_Type\_Ch);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ *oValue\ =\ (typeParam-\/>\mbox{\hyperlink{a02302_ad4fc7431439f53cc0253d191b19db00b}{GetStepValue}}()\ ==\ 0\ \textcolor{comment}{/*Notch*/})\ ?\ \mbox{\hyperlink{a00446_abbcc8b4e8207262a5dd9e32047a51a29a5cfea068cc7ea51becccc9d26955e443}{AAX\_eUseAlternateControl\_No}}\ :\ \mbox{\hyperlink{a00446_abbcc8b4e8207262a5dd9e32047a51a29aa63097dc0b27e51411f30b06b2db26f1}{AAX\_eUseAlternateControl\_Yes}};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937aeddbd1bb67e3a66e6af54a4b4a7a57b3}{AAX\_SUCCESS}};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (\ (parameter-\/>\mbox{\hyperlink{a02302_a3e99bd896b94c771ecf661520a19bd45}{Name}}()\ ==\ EQIII\_LPF\_Type)\ ||}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (parameter-\/>\mbox{\hyperlink{a02302_a3e99bd896b94c771ecf661520a19bd45}{Name}}()\ ==\ EQIII\_LPF\_Q)\ \ \ \ ||}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (parameter-\/>\mbox{\hyperlink{a02302_a3e99bd896b94c771ecf661520a19bd45}{Name}}()\ ==\ EQIII\_LPF\_Slope)\ \ \ \ )}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \mbox{\hyperlink{a02302}{AAX\_IParameter}}*\ typeParam\ =\ mParameterManager.GetParameterByID(EQIII\_LPF\_Type\_Ch);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ *oValue\ =\ (typeParam-\/>\mbox{\hyperlink{a02302_ad4fc7431439f53cc0253d191b19db00b}{GetStepValue}}()\ ==\ 0\ \textcolor{comment}{/*Notch*/})\ ?\ \mbox{\hyperlink{a00446_abbcc8b4e8207262a5dd9e32047a51a29a5cfea068cc7ea51becccc9d26955e443}{AAX\_eUseAlternateControl\_No}}\ :\ \mbox{\hyperlink{a00446_abbcc8b4e8207262a5dd9e32047a51a29aa63097dc0b27e51411f30b06b2db26f1}{AAX\_eUseAlternateControl\_Yes}};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937aeddbd1bb67e3a66e6af54a4b4a7a57b3}{AAX\_SUCCESS}};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keywordflow}{return}\ \mbox{\hyperlink{a00539_a5f8c7439f3a706c4f8315a9609811937a3b76994b32b97fcd56b19ef8032245df}{AAX\_ERROR\_UNIMPLEMENTED}};}
\DoxyCodeLine{\};\ \ }

\end{DoxyCode}
  Listing 7\+: EQIII Get\+Parameter\+Value\+Info()

As you\textquotesingle{}ll notice, the EQ III plug-\/in has separate controls for Q and Slope in its HPF and LPF bands, depending on whether the band is set to notch or band pass. When the Band Type control is set to notch, the continuous Q control is used. When the Band Type is set to Hi/\+Lo Pass, the discrete Slope control is used. In the page table, the HPF / LPF Q controls are set to the \`{}\`{}Q or Slope\textquotesingle{}\textquotesingle{} in the \mbox{\hyperlink{a00929_subsection_creating_page_tables_in_pete}{Page Table Editor}} application, and the HPF / LPF Slope controls are set to the \`{}\`{}Q or Slope Alt\textquotesingle{}\textquotesingle{}. Then, with the \mbox{\hyperlink{a01850_a0d3436cb88b4a86fe82a663221a9cfef}{Get\+Parameter\+Value\+Info()}} implementation above, the control surface properly swaps the controls when the band type control is changed. In other words, when the function is called with the \mbox{\hyperlink{a00446_aa169208a2ce713fa021e20deb2eaf608a1a0d975a333d3aee81b22f878697e9c4}{AAX\+\_\+e\+Page\+Table\+\_\+\+Use\+Alternate\+Control}} selector, if the band type control is set to notch, then \mbox{\hyperlink{a00446_abbcc8b4e8207262a5dd9e32047a51a29a5cfea068cc7ea51becccc9d26955e443}{AAX\+\_\+e\+Use\+Alternate\+Control\+\_\+\+No}} is returned in the result and the control surface puts the Q control at that position. If the band type is set to pass, then \mbox{\hyperlink{a00446_abbcc8b4e8207262a5dd9e32047a51a29aa63097dc0b27e51411f30b06b2db26f1}{AAX\+\_\+e\+Use\+Alternate\+Control\+\_\+\+Yes}} is returned and the Slope is placed at that position.  Collaboration diagram for Page Table Guide\+:
% FIG 0
