Automation is an important consideration when working with software instrument plug-ins. It lets you save and reproduce various parameter changes (such as volume and pan) that occur during playback and mixing. For software instruments, automation capability may also include any or all of the instrument's front-panel controls. If and how each of the controls is implemented depends on both the host and the plug-in.
Automation comes in two forms: real-time automation, which typically involves some form of MIDI control, and after-the-fact automation, which is usually accomplished by graphically editing previously recorded MIDI automation (or by entering new automation data).
MIDI control allows sliders, knobs, and buttons on hardware MIDI devices (such as control surfaces and keyboards with assignable controls) to change a software instrument's settings. All hosts pass standard MIDI control data such as Mod Wheel, Pitch Bend, and sustain pedal to software instruments; but not all hosts pass along all the other MIDI controllers.
That might be because the host may use some MIDI controllers for other purposes--MIDI volume and pan for control of the mixer channel strip, for example. Another reason is that the host may reserve blocks of controllers for other plug-in slots on the same channel--for instance, to control other effects plug-ins.
Even if all MIDI data is passed to the software instrument, the software instrument may not provide access to all of its controls. The host manual's automation section will generally tell you which MIDI data is passed to software instrument plug-ins, and the software instrument's manual will usually have a table of MIDI controller assignments. Many software instruments have a MIDI-learn function for freely assigning any MIDI controller to any software instrument parameter, and some instruments even sense the type of MIDI controller being used--endless rotaries or 14-bit controllers, for example.
If you have an appropriate MIDI controller and can set up MIDI control of a software instrument, you can program and edit at least some settings using MIDI. Beyond that, automation requires that you be able to record those changes. That amounts to recording incoming MIDI data, and it's done in exactly the same way as when you record MIDI notes to be played by the software instrument.
Another way to record automation is by changing the software instrument's onscreen controls. The software instrument determines what data is sent to the host; some send everything, others send nothing. The host determines how and where the data is recorded, but all hosts provide for that in some way. As with MIDI, replacing existing automation is handled in various ways.
The third method for entering and editing automation data is manually, using one of the host's MIDI editors. Often there is a graphic editor that displays the automation data in bar-graph form or as points connected by lines. You can typically add points, move them, and sometimes change the automation curve.