As many folks know, in the MIDI protocol, there is actually a particular control number for volume which is CC#11. However, in MIDI-speak this is called expression so as not to confuse anyone with the volume of a fader in a sequence. However, in order to add life to your arrangements, it is often very practical to embed this expression information within the recording in real-time and then use the volume faders of your sequence to "balance" things later on in mix-down.
For a lot of folks, this is a mind-numbing process of drawing various shapes in some sort of editor. For the luckier among us, our controller keyboard may have a port to plug in a continuous pedal of some kind. Or, our keyboard may have some moveable faders that are hard-coded to transmit certain MIDI signals. The question is: are any of these CC#11? And if not, how can you "re-purpose" one to do this?
I suspected there may be a way to do this in Logic Pro's very powerful "Environment" Clicks and Ports screen. Sure enough - there is! After some targeted searching, I found this very helpful tutorial posted on the Logic Pro forum help site at Apple.com:
However, with thanks to Mike Ayotte, I wanted to edit his response for CC#11 and (because I needed to change it from CC#6 to CC#11) repost below in case that piece of helpful information should go away at some point in the future:
The easiest way to do this is to open the Environment and find your way the the "Clicks and Ports" layer. From here you should at least have a Physical Input Object (Logic's way of saying "Communicate with the driver for this MDI interface") and a Sequencer Input (an extra step that makes the end user tell Logic "Hey, I want you to record all incoming MIDI data"), something most other pieces of software do automatically.
Now, create a new Transformer object and cable it between the Physical Input and the Sequnecer Input.
The routing will look like this: Physical In -> Transformer -> Sequencer In. In this example we will be destructively changing ALL CC#7 messages into CC#11 which will then be sent into the Sequencer where they can be recorded if you so choose.
Double click on the Transformer Object and make the following settings. In the Top Row of the Transformer set the Status field to "Control", leave the Channel Field on "All", and change the -1- Field to 6. What you have done is told the Transformer to look for incoming messages that are Controller #6 on any MIDI channel. Now we need to tell it what to do with these messages.
In the Bottom Row you can leave the Status as Thru (this will cause the output message to be the same status as the input. In our case "Control"). Again, leave the Channel Field as "Thru" but change the -1- Field to 11.
This will cause the Transformer to take any incoming CC#6 message on any MIDI channel and convert it to CC#11.
Hope this helps.
Also, to help clarify Mike's point, I wanted to post a screenshot of the "Transform" window that worked for me!