Some Background:

Before beginning it is critical to realize that like with any form of communication, there are three parts involved:

the sender

the receiver

the message.

MIDI is no different. In order to assign a given controller to perform a select task requires accounting for all 3 of these components:

you must pick a physical controller,

assign it a MIDI controller message, then,

(possibly) edit the sound (program) in question to respond to this message in the manner you desire.
For part (c) we say "possibly" as some MIDI messages are universal and have a predefined meaning/purpose. Common examples would be Sustain Pedal (MIDI Continuous Controller #64, i.e. cc#64), Volume (cc#7), Pan (cc#10) and so on. There are many MIDI messages, however, which are undefined or "open to interpretation" and can be used in any manner the given model instrument/device supports.
The concept to grasp from this is some functions, once assigned to the controller, will simply "work" where others will require further programming on the receiving end (within the program itself) to get up and running.

Picking a Physical Controller:

Switch Type: offer two states (two values) on and off. Common applications for a switch type controller would be sustain, sostenuto, soft pedal, program increment, layer switching, Riff triggering, etc. Any job that affords itself to a simple on/off behavior is best served by a switch type controller.

The PC3 offers 13 programmable switch-type controllers (3 switch pedals and 10 front panel push-buttons). Each has independently assignable On and Off assignments.

Continuous: offers a continuously variable range of values (128 values to be exact). Common applications for a continuous type controller would be volume, expression, effects depth, filter sweeps, layer cross-fading, tempo control, etc. Any job that affords itself to a range of values is best served by a continuous type of controller.

Send a Message:

Controller assignments are chosen within the Setup Editor. There you will find dedicated soft-button pages which grant access to the various controller's parameters: BEND, WHEEL, SLIDER, SLID2, CPEDAL, PRESS, FT SW1-3, and so on.

Each Setup is its own custom environment, containing your chosen sounds and controller assignments. Further, within a given Setup, each of the possible 16 zones has its own separate assignments for each of the PC3's 29 controllers! Therefore, a single controller could send just one message on one MIDI channel, or 16 different messages on 16 different channels, or the same message on 16 different channels, or any combination of the above.

Outside of Setup Mode (i.e. when you are in Program, Song, Master, MIDI etc) all controller assignments are global and determined by the setup chosen for the "ControlSetup" parameter (on the MIDI XMIT-Transmit Page).

The ControlSetup is a special setup that is used to dictate what controller assignments are in effect when operating outside of the actual Setup mode. Like any Setup, the ControlSetup can be edited too (only the settings for Zone 1 are used in the case of the Control Setup). The system default is "126 Internal Voices". To make some things easier, you will note the defaults for the 9 Sliders (as dictated by 126 Internal Voices) are silk-screened onto the PC3 front panel, immediately beneath each slider.

To determine what message is being sent by each physical controller, highlight the Setup in question (if in Setup Mode) OR highlight the current "ControlSetup" on the MIDI XMIT page (if operating outside Setup Mode), then press Edit. You will now be in the Setup Editor.

Scroll through the pages and you can see what controller numbers are assigned to each physical controller. Our default Setup #126 'Internal Voices' has the physical controllers assigned to typical assignments (FtSw1=Sustain, CPed1 = Expression, PitchWheel = PitchBend, and so on.) But of course, these can be altered. (see chapter 7 in the PC3 Series Musician's Guide for the complete Controller Destination List).

Let's look at a quick example: Let's say you wanted to globally assign the ModWheel (the non-spring-loaded wheel to the right of the pitchbend wheel) to MIDI Volume (cc7). This would enable you to instantly control MIDI volume for whatever MIDI Channel (and program) you had on screen. Note: MIDI Volume (cc7) is one of those "standardized" MIDI messages that are preset and will just work with no program side editing required.

Go to the MIDI XMIT page:

highlight the current ControlSetup (should be 126 Internal Voices if working with the system defaults)

press EDIT, then [MORE>] once.

press the [WHEEL] soft button

highlight "MWheel"

and change it to "Volume" (type 7+enter on your keypad or scroll up the list with the data wheel)

Notice, the volume is now under the control of the ModWheel. This is a pretty generic application however. What about something more program specific, like a filter sweep or cross fading layers? Read on.

Note, if you exit the above example, not saving the changes and find yourself with no volume (perhaps you left the ModWheel down for ex.), simply press Panic.

Receiving the Message

As discussed, the example above worked with no added effort in Program editing as MIDI Volume is a preset message (i.e. reception is built in). However there are many other MIDI messages and potential uses that require customization to function. In fact, every factory preset in the PC3 already has the majority of the instrument's physical controllers "patched in" to some sonic element to further the user's performance and experience. A great out-of-the-box feature supporting this effort is the INFO button, located at the bottom of the Program Mode screen:

Pressing INFO brings up a handy screen documenting the custom physical controllers which are in use and the tasks they perform within the currently selected program.

For each of the controllers noted, there is a MIDI message that has been routed within the program as a Control Source.

We've seen above how to assign a MIDI message to a physical controller, in the following example we'll look at the other side, how to then plug that message into a program as a Control Source of your choosing. Using the ModWheel again, let's see how to assign it to act as a filter cutoff for a select Program.

If you were paying attention when editing the Control Setup previously, you noticed that before we changed it to Volume, the ModWheel was assigned to MWheel (which is MIDI cc#1). To keep things simple, we'll use this same default assignment. (i.e. be certain you have your Control Setup assigned to the default "126 Internal Voices"). Of course, you can use any physical controller you wish if you prefer.

Let's start by editing factory program 1024 VA1NakedSawMono. This is a plain, single-layer, monophonic program using a sawtooth waveform as its sound source. Let's add a filter for our ModWheel to play with.

Select Program 1024 and press EDIT:

Press MORE> once

Press the ALG soft button:

You will see:

Highlight the 2nd DSP block onscreen, the one currently assigned to NONE. Using the datawheel, scroll backwards to select "2POLE LOWPASS".

Play the keyboard and notice the dulled sawtooth tone, caused by adding the LPF to the signal path. Now let's assign the ModWheel to serve as a real-time control for the filter's cutoff frequency.

Press DSPMOD:

Note the LP Frq (Low Pass Freq.) defaults to 262 Hz, the fixed, static cutoff point we are hearing now. You can tweak this if you wish, but as is, it serves as a good starting point for our purposes here.

This frequency represents the filter starting point BEFORE we add any Control Source manipulations. Now move your cursor to the right hand side of the screen and highlight the "Src1" field. Set it to MWheel:

TIP: You can make this selection in one of 3 ways:

Scroll with the data wheel until you find MWheel

Type in number 1 then Enter on the alphanumeric keypad (#1 corresponds to MIDI cc#1)

Use Intuitive Entry: while holding down the ENTER button, move the controller you are wishing to invoke, the ModWheel in this case.

Now, last step, highlight the Depth field below Src1 and set it to 10800ct:

Now play the keyboard and move the ModWheel. Note at the bottom of the ModWheel's throw, the sound is darker, smoother, more filtered, in fact, cutoff at 262Hz precisely. As you move the ModWheel up towards the top of its throw, you gradually open the filter more and more, offering up a less filtered, brighter tone.

This is just the tip of the iceberg in terms of controller routing. You could further this example and have the ModWheel simultaneously patched into the filters resonance, or layer amplitude, effects depth, and so on. The options are near limitless.