Vst Plugin Extension Types

In this guide, we will go over something that is essential to every music producer: VST plugins. By the end of this article, you will know what VST plugins are, their different types, what they do, their various controls, features, and parameters, and what you can use them for. Read on to find out more about VST plugins.

What exactly is a VST plugin?

Fabfilter’s vst plugins prove themselves time and again, to be the ultimate package for mixing and production basics. The Fabfilter Pro R is no exception. It’s simple, straightforward and effective. Compared to the previously mentioned Adaptiverb, Pro-R is almost a completely different thing altogether. VST plugins generally come in two types, instruments (VSTi) that are designed to make sound and effects (VST) that are designed to process sound, although some can do both. FL Studio categorizes VST instruments as ' Generators ' because some also generate control or note data, rather than sound. 50 Free VST Plugins For Vocals (My Own Free Plugin Directory) When I was started out, there was a huge money problem with me. I totally relied on free VST plugins. I had only some basic gears like MOTU MKII and Logic 7 those days. And believe me guys, I was produced more than 200 music albums with those free VST software plugins. The Best Free VST Instrument Plugins. Many of the most popular VST instruments, such as Massive or Omnisphere, come with a fairly high price tag.If you’re a music production beginner, you may not be ready to fork out hundreds of dollars on various production effects and plugins just yet, which is completely understandable.

A VST plugin is a piece of digital software that allows you to use audio effects and virtual instruments in a DAW (digital audio workstation). VST stands for Virtual Studio Technology.

What does a VST plugin do?

A VST plugin processes audio or MIDI as it plays in a DAW, and either applies certain audio effects to it or makes MIDI notes sound like they are being played through a musical instrument.

What are VST plugins used for?

VST plugins are used for creating new sounds and making a mix sound better during the recording and mixing processes.

Types of VST plugins

There are two main types of VST plugins: audio effects plugins and virtual instrument plugins. Let’s go over the different types of VST plugins, the subcategories of those plugins, and what they all do and how to use them.

Audio effects plugins

There are quite a few different types of audio effects plugins. The ones we will go over in this guide are as follows:

  • EQs
  • Compressors/limiters
  • Reverbs
  • Delays
  • Distortion and saturation
  • Vocal processors
  • Spectral analysis plugins

EQ plugins

What is an EQ?

An EQ (equalizer) plugin is a plugin that allows you to boost, remove, increase, decrease or leave frequencies in an audio file unchanged. The changes in frequency cause changes in your mix, and you can use that to create a space for every element of your track in the mix so everything can be heard properly without competition.

What can an EQ plugin be used for?

An EQ plugin can be used to create experimental sounds, keep your mix from getting muddy and crowded, and help elements of a track to better fit into the mix or stick out more.

Controls and features of an EQ

An EQ usually has a few different controls on it, but depending on the type, that may differ to varying degrees. A typical EQ has the following controls:

  • Frequency: this setting adjusts the center frequency range for a specific frequency band.
  • Q: the control that widens or narrows the frequency band curve.
  • Gain: increases or decreases the volume of each frequency band.
Types of EQ plugins

There are several types of EQs, but in this guide I am only going to talk about the most popular ones used in music production. They are:

The parametric EQ is the most commonly used EQ in music production. The parametric EQ is a multi-band EQ, which means that there are controls specific to different ranges of frequencies in the plugin. As for features and settings, a parametric EQ has several frequency bands, which adjust the center frequency range for the specific band, or the start or cutoff for high pass or low pass bands.

A parametric EQ also has a Q, which is a setting that widens or makes the frequency curve more narrow. Higher Q values make the frequency curve more narrow and lower values make the curve wider. Due to its controls, you can very easily cut out or boost certain frequencies with a high level of precision. Another setting on a parametric EQ is the gain. Gain will increase or decrease the volume of the frequency bands.

Finally, there is filter slope and filter type. The filter slope sets how steep the slope of the low or high pass filter will be, and the filter type controls the shape of the filter. Typical filter types include low pass/high cut, high pass/low cut, notch, and bell.

A dynamic EQ is the same as a parametric EQ, but with the added feature of compression, expansion, or both. This makes dynamic EQs much more flexible. Dynamic EQs treat audio based on the internal audio source if it passes a certain threshold, whereas parametric EQ settings stay the same no matter what, unless you automate it. Dynamic EQs will have a compression rate and a threshold setting along with all the settings of a parametric EQ. Stay tuned to learn more about compression.

A graphic EQ is an EQ that boosts or reduces fixed frequencies. The more bands a graphic EQ has, the more accurate it will be, as more bands means there is a narrower amount of space between each frequency band. Graphic EQs are not good for mixing if you need to do precision type EQing, but they are good for making changes to the overall mix of a song or track.

Breaking down filter types

As mentioned above, there are several different types of EQ filters:

  • Low pass or high cut filter
  • High pass or low cut filter
  • Band pass filter
  • Bell curve filter
  • Notch filter
  • High shelf filter
  • Low shelf filter

A lowpass or high cut filter completely removes all frequencies in the spectrumabove the cutoff point you set it at. As the name suggests, it cuts out thehigh frequencies and lets the low frequencies pass through.

A high pass or low cut filter does the opposite; it allows all high frequencies in the spectrum below a certain frequency cutoff point to pass through and cuts out the low frequencies.

A bandpass filter cuts out frequencies on either side of the cutoff point. Byusing a band pass filter, you can get a very narrow sounding piece of audio,much like how it would sound if you were talking to someone on an old phone.

A bell curve filter boosts or reduces frequencies around a center point. This type of filter is one that you will most definitely use while using an EQ plugin when mixing.

A notch filter removes frequencies around a center point and the frequencies on either side of it are kept intact.

A high shelf filter boosts or reduces frequencies above a specific point while allowing the frequencies below that to also pass through.

A low shelf filter boosts or reduces frequencies below a specific point while allowing the frequencies above that point to pass through.

Knowing how to use these types of filters and what situation to use them in will help you to use an EQ quickly and efficiently, and in turn speed up your mixing process.

Compressor and limiter plugins

What is a compressor plugin?

A compressor is a plugin that reduces thedynamic range of an audio signal. Dynamic range is the difference between theloudest and softest parts of an audio signal. Compression plugins are necessaryfor taming dynamics so each element of your track sits in the mix exactly whereit needs to, both in terms of volume and frequency.

What can a compressor plugin be used for?

A compressor plugin can be used for taming and managing the dynamics of instruments and vocals; it can also be used to help elements of a track sit in the mix better or stand out more.

Controls and features of a compression plugin

Compressors may have any or all of the following controls:

  • Attack: setting the attack level determines how quickly the compressor starts working after detecting an audio signal above the threshold.
  • Release: the release level determines how quickly the compressor stops or reduces its effect on the audio signal.
  • Threshold: the level that the audio signal needs to rise above in order to get the compressor to kick in.
  • Knee: determines how aggressively the compressor kicks in once reaching or surpassing the threshold.
  • Ratio: controls how much dynamics decrease is applied once the audio signal reaches or surpasses the threshold.
  • Output gain: allows you to make up for any volume reduction caused by the compressor.
Types of compressor plugins

Like EQs, there are different types of compressors. They include:

  • VCA compressors
  • FET compressors
  • Optical compressors
  • Tube compressors
  • Multi-band compressors

VCAcompressors are a versatile type of compressor thatseems to be the jack of all trades. They are known for having a fast responsewhich makes them good for controlling peaks on rhythmic tracks or tracks thathave a lot of transients. VCA compressors may or may not retain original tonedepending on the settings you have on them.

FETcompressors have even faster reaction times than VCAcompressors do, and they were designed to emulate tube circuitry. Typically,FET compressors do not have a threshold setting, and instead have an input gainand an output gain. With no threshold or ratio, the audio signal is compressedbased on how loud the input is (higher volume input equals more compression).

Opticalcompressors are extremely smooth and transparent inthe way that they process audio. They are ideal for vocals and for addingwarmth to guitars. Usually there is a fixed ratio of 3:1 on them and the onlycontrols they have are a gain control and a control for reducing peaks. Sincethey are smooth and slower, they are not as ideal for transient-heavy tracks.

Tubecompressors are the oldest type of compressors around.They have a slower attack and release compared to other types of compression,but this gives them a vintage sound that is hard to emulate with othercompressors.

Multi-band compressors work with frequency bands and allow you to apply different amounts of compression to different bands. Because compressors change dynamics of frequencies, an EQ is usually part of a multi-band compressor. A multi-band compressor (or dynamic EQ) will process the audio signal as it comes in and then treat each frequency band in response to what you have it set as, almost like an automation type of feature.

What is a limiter plugin?

A limiter plugin is similar to a compressor. They both control dynamics. A compressor, however, controls dynamic range after it reaches or surpasses a threshold, whereas a limiter prevents the audio signal from reaching and going over the threshold. Limiters are mainly used during the mastering process.

What can a limiter plugin be used for?

Limiter plugins can be used to preventclipping and distortion, and they can also be used to increase the volume of atrack.

Controls and features of limiter plugins

Limiter plugins pretty much have the same controls as compressors do: attack, release, threshold, input gain, and output gain. A knee and ratio control is not needed, as the audio signal will (or should) never surpass the threshold. The only main difference of a limiter plugin is that the threshold is called a ceiling because it is the highest point that the audio signal is allowed to reach, just like the ceiling is the highest point you can get to in a room without breaking through it.

Reverb plugins

What is a reverb plugin?

A reverb plugin is an audio effect plugin that makes instruments and vocals sound natural in terms of space. Reverb makes audio sound like it was created or played in a certain space rather than having been recorded in a room with no type of natural reverberations or reflections of sound waves.

What can a reverb plugin be used for?

Reverb plugins can be used to make instruments or vocals sound like they were recorded in a specific space. It can make them sound farther back in the mix and help them to fit in the mix better.

Controls and features of reverb plugins

Reverb plugins have a lot of different controls to help you get a variety of results out of them. Controls include:

  • Pre-delay: the amount of time it takes for the sound to leave its source and make its first reflection off an object.
  • Time: the total amount of time the reverb lasts from start to finish.
  • Dry/wet mix: allows you to choose how much of the audio signal without reverb you want mixed with the audio signal that has been processed with the reverb.
  • Decay: the amount of time it takes for the reverb to completely go away.
  • Early reflections: the first set of echoes/reverberations that are produced when sound waves hit an object.
  • Damping: a feature that allows you to make the reverb sound less shrill if it has a lot of high frequencies in it.
  • Shape: refers to the shape of the space you are emulating and how many walls it has.
  • Size: refers to the size of the space you are emulating.
  • Diffusion: controls the density of the amount of reverberations and echoes.
Types of reverb

There are a few main types of reverb that are categorized by room size, and they will all have a different effect on the audio you’re trying to process. It is important to choose wisely when processing reverb so that your instruments and vocals don’t make the whole mix muddy or jumbled and distracted.

  • Room reverb: the smallest and most basic type of reverb. Room reverb provides a liveliness and natural coloration, one that does not hide imperfections.
  • Hall reverb: refers to a concert hall rather than hall in someone’s house. Hall reverb is designed to produce minimal echoes and sound balanced in tone.
  • Chamber reverb: opposite of hall reverb. Chamber reverb has a lot of texture and adds energy and color. It is ideal for keeping things interesting.
  • Plate reverb: balanced in terms of echo density. Gives a smooth sound and works best for vocals and in tandem with other reverbs.
  • Ambience reverb: does not really emulate any specific space; it rather gives more of an atmospheric feel and is more experimental.

Delay plugins

What is a delay plugin?

A delay plugin is a time-based effect that records the audio signal going into the plugin and repeats it back over a duration of time that you’ve chosen.

What can a delay plugin be used for?

Delays can be used to add movement into the mix, to highlight certain parts of a track, or to make a mix sound fuller and richer.

Controls and features of delay plugins
  • Delay time: the length of time between each delay.
  • Rate: the amount of time it takes for the audio signal to bounce between the left and right stereo channel when using ping pong delay. This is usually expressed in note increments like 1/4 notes.
  • Feedback: the amount of time it will take for the delays to fade away.
  • Delay mode: changes the type of delay.
  • Dry/wet mix: determines how much of the original signal will be mixed with the processed sound.
Types of delays
  • Stereo: the most common type of delay. It produces a wide delay that presents itself on each side of the stereo field at the same time.
  • Mono: creates a more narrow, focused type of delay.
  • Ping pong: the delay that bounces back and forth between the right and left sides of the stereo field.
  • Slapback: a very short delay that creates a bouncy, extremely quick doubling type of effect.

Distortion and saturation

What is a distortion/saturation plugin?

A distortion (or saturation) plugin is a plugin that adds distortion (or saturation) (white noise, brown noise, in other words… static) that provides dynamic warmth and cohesion to an audio track, usually (but not always) from clipping.

What is clipping?

Clipping is when the volume meter goes over 0 dB, causing an overdriven static to sound.

What is the difference between distortion and saturation?

Distortion describes a more extreme sound,while saturation adds a warm tone to a sound without drastically changing it.Distortion can make things sound fuzzy or it can make a sound completelyunrecognizable. Saturation adds a pleasant static that fills in the gaps in thefrequency spectrum.

What can a distortion plugin be used for?

Distortion plugins can be used to completelychange sounds, and they can be used to add qualities like crunch or static andthings of that nature.

What can a saturation plugin be used for?

Saturation plugins can be used to fill spotsin the frequency spectrum that need to be fuller, they can be used to add warm,vintage tones to instruments, and can be used to create brightness in yourtracks.

Controls and features of distortion and saturation plugins

Some distortion/saturation plugins have a lot of controls and others don’t have so many, but usually they have at least the following in common:

  • Drive: increases the amount of distortion or saturation.
  • Character or color: allows you to switch between certain colors and tones of saturation like brown noise, pink noise, and white noise.
  • Low and high frequency (also referred to as band or frequency): allows you to adjust the frequency band within the brown, pink, or white noise, etc.
  • Tone: gives you more tools to work with the frequency spectrum of the saturation and distortion.

Vocal processing plugins

What is a vocal processing plugin?

A vocal processing plugin is a plugin thatdirectly transforms vocals, whether it be by pitch, turning vocals into asynthesizer, or something else.

What can a vocal processing plugin be used for?

A vocal processing plugin can be used forcorrecting vocal pitch, controlling volume, controlling vocal reverb, emulatinga synthesizer or other instrument, doubling a vocal, or transforming it inanother creative way.

Controls and features of vocal processing plugins

Since there are so many different types of vocal processing plugins and we’ve already covered things that can be considered vocal processors, like reverb and delay, in this guide we’re just going to focus on autotune plugins. Autotune plugins typically feature the following controls and settings:

  • Song key: determines what key you’ll be singing in. You should match the key of the song to the key you’ll be singing in.
  • Scale: determines the scale you’ll be singing in.
  • Vocal register input type: usually has soprano, alto, and bass. Depending on the type of vocal register, the autotune plugin will process vocals differently based on the input setting.
  • Correction/retune speed: controls how quickly or slowly off-key notes are corrected.
  • Humanize: controls how natural the processed voice will sound (leaving vibrato vs sounding robotic, etc).
  • Natural vibrato: controls how much of a natural vibrato is created if you want to digitally create it.
  • Dry/wet mix: controls how much of the unprocessed and processed audio signal you want blended together.

Spectral analysis plugins

Spectral analysis plugins aren’t exactly a main type of audio effect plugin in terms of popular or common use, but they are extremely helpful in the mixing process, so I wanted to include a section on them.

What is a spectral analysis plugin?

A spectral analysis plugin is a plugin that shows a graph of a spectrum of information. Spectral analysis plugins can show collisions in frequency, how wide a track or instrument is, and things like that.

What can a spectral analysis plugin be used for?

A spectral analysis plugin can be used forfinding collisions in frequency with EQs, finding out how wide or narrow thestereo image is of a track or instrument, or to see how well mixed your song isbased on a pink noise curve.

Controls and features of spectral analysis plugins

In general, there are a couple main features:

  • Graph window: this is the area where the information being analyzed is shown in a graph form.
  • Graph display controls: these are for looking at different elements of the graph.

Virtual instrument plugins

Virtual instrument plugins are plugins that emulate different instruments. You use them with MIDI tracks, and as the plugin receives the MIDI information, it will process it and output the audio as if a musical instrument was playing those same notes.

Drum VST plugins

Acoustic drum VST plugins typically have an interface with a virtual drum set. Each drum has samples of real drums assigned to it. Using a MIDI keyboard, piano roll editor, mouse, or computer keyboard, you can play the drum samples as if you were playing a real set of drums. There is usually also a window where you can tweak the settings and effects of each drum, like reverb, compression, and even the type of drum.

In the case of electronic drums, like drum pads, samples are assigned to pads rather than a virtual drum set. It works the same as an acoustic drum VST, the design is just a little different.

Synthesizer and keyboard VST plugins

Synth and keyboard plugins work a bit differently than drum plugins do. Synthesizer plugins sometimes get their sound sources from samples, but more often it’s from oscillators. Oscillators shape voltage which causes the synth to emit a pitch at a certain frequency. This is what determines the waveform. Oscillators are controlled by the keys of a synth, and the other knobs shape the sound further through LFOs and modulators. Synth VSTs work like this and you can easily customize the sounds you’re trying to get out of it just by tweaking things here and there.

Keyboard and piano VSTs are usually sourced from samples of real pianos, unless you are working with a synthesizer type VST. Like the drum VSTs, there is usually a page in the plugin interface where you can tweak the sound of the piano or keyboard further to your liking, and you can also control the keyboard through MIDI.

  • The best synth VST plugins 2020
  • The best piano VST plugins 2020

Guitar and bass VST plugins

Guitar and bass plugins are similar to synths in that sometimes they use samples and other times oscillators and very basic waveforms are used. If you find a good-quality plugin company that has any guitar plugins, it’s likely that they use real samples of guitars.

Basses, on the other hand, depend. Some bass VSTs are sample based and others are more synthesizer-like in that they use oscillators and are controlled through a piano or keyboard type interface. It really just depends on whether or not you’re using a bass guitar or a bass synth.

How to choose a good VST suite or plugin bundle?

There is a wide variety of audio effects and virtual instruments out there and so many great companies that make them and sell them. It can be really challenging to figure out which companies produce packages of good-quality VST plugins. Here are some of my favorite VST companies that I encourage you to check out.

Audio effects plugins:

Waves

Waves is one of the world’s leading VST companies. They have several different packages of their VSTs, all at different price points, so if you are on a budget you can still get a good amount of plugins. You can also buy plugins individually, but I would not suggest that if you plan to buy a lot of their plugins, as buying a package of them will save you a good amount of money.

Most of Waves’ stuff can be quite expensive, but that is because they have top-rated, award-winning VSTs. However, if you do decide to spend the money on Waves plugins, it is extremely worth it (although there is somewhat of a learning curve on some of them). I use them every time I mix and I have yet to be disappointed.

FabFilter

FabFilter’s suite of plugins is much more affordable. They are a smaller company but the plugins sound great and are especially nice if you are more of a visual mixer. Because of their more graphic intense VSTs, I personally find FabFilter’s plugins to be extremely easy to use, in fact more so than Waves plugins at times. It really just depends on what plugins you are using, but a lot of the time FabFilter’s seem to be more user friendly, especially for those who are just starting out.

MeldaProduction

MeldaProduction has some nice plugins, especially their spectral plugins. They offer some virtual instruments too, which aren’t as high quality as others, but they still sound good. They’re all very affordable. The plugins aren’t as modern in appearance but they work well and there are a lot of them which takes out the hassle of buying from a ton of different companies.

iZotope

iZotope’s plugins are all really sophisticated and made for producing, mixing, mastering, and repairing audio. My favorite plugins from them are Ozone (for mastering) and Neutron (for mixing). A lot of iZotope’s plugins use an effects chain but can also be used individually, which makes them extremely convenient.

Virtual instruments:

Native Instruments

Native Instruments is one of the leaders in virtual instruments. They’re also another company that is pretty expensive, and understandably so because the VSTs all sound awesome.

They have a program called Kontakt that allows you to play third party instruments that other companies have made and you can also find plenty of presets online for their existing instruments, so I’d say they have a good balance between producing their own VSTs and allowing accessibility to ones from third parties.

XLN Audio

XLN Audio mainly has plugins for drums and keyboards, but they also have a retro tape effect that makes your tracks sound distorted like they’re being played through an old record player. All of their plugins are worth checking out; their virtual drum suite and keyboard suite are really nice, affordable, and they have a great variety of presets and sounds.

Spectrasonics

Spectrasonics has three really amazing virtual instrument plugins that they sampled from live instruments: Omnisphere, Keyscape, and Trilian. All of them are incredibly responsive and realistic-sounding. If you play bass or keys, there are a ton of presets, different articulations, and full MIDI compatibility. They’re extremely expensive but absolutely worth it if you want realistic sounding instruments with crazy playing flexibility.

8Dio

Similar to Native Instruments, 8Dio has really high-quality samples that they use with their instrument plugins. The interfaces of 8Dio instruments are always extremely easy to use and very pleasing to the eye. The virtual instruments they make are meant to be used with Kontakt, which is a Native Instruments plugin.

How do I use VST plugins?

Aside from dragging and dropping the VST plugins into the designated areas of your DAW and pairing them with the correct channels, I can’t really give you a guide on how to use VST plugins because there’s no real ‘right’ or ‘wrong’ way to use them. It all depends on what you think sounds right.

If you want to put a certain reverb plugin on a drum track because you think it sounds good, go right ahead. If you want to use a certain virtual instrument for a piece of MIDI you’ve composed, by all means, be my guest. Don’t be afraid to experiment and deviate from using VST plugins in traditional ways. If you think it sounds good, do it.

I will say this, however: make sure you are educated on what your VST plugins do and how to use them so you can easily tweak things to get the sounds you want without spending hours on a single thing.

Some frequently asked questions about VST plugins

Do I need a lot of plugins?

Vst Plugin Extension Types Tutorial

No. In fact, I strongly suggest sticking with one or two main suites of plugins (depending on the size of the plugin bundles). Having too many plugins can get really overwhelming and distracting. It’s extremely common for producers to get excited about plugins and buy as many as they can and then end up not using over half of them because sorting through them all and actually using them all is just too tedious and overwhelming.

Should I use stock VST audio effects and instruments?

This is completely up to you. Some DAWs don’t have very good stock plugins, and others do. Pro Tools has some great ones, while FL Studio does not. It depends on the DAW. If you want to find out, go by trial and error or look up some demos on YouTube. Honestly though, if you can use stock plugins well and make your tracks sound great, I don’t super discourage using them. It’s a personal preference for most people to use third party VSTs, but some stock plugins aren’t bad at all.

Can I use free VST plugins?

As long as they’re compatible with your computer’s operating system, yes, you can use free VST plugins. Most of the free ones out there might not be as high quality as you’re looking for but there are some out there that are nice. Stay tuned for future articles about VST plugins, we’ll have more material on the best ones out there, both paid and free.

  • The best VST plugins 2020

Do VSTs work on any operating system?

VST plugins are common among multiple operating systems, but certain DAWs and operating systems have different plugin file formats that only work with those specific ones. For Windows, VSTs are compatible, but so are AAX and RTAS plugins, which are specifically for Pro Tools. For Mac, VSTs are compatible, but also AAX, RTAS, and Audio Units. Linux is much more limited with plugins, but considering not many (if any) people use Linux computers, they shouldn’t be a problem.

Conclusion

VST plugins may be hard to understand at first, but with continued learning and use, you’ll catch on easily. Whether it’s sample based instruments, audio effects plugins for mixing and mastering, or vocal processors and spectral analyzers, there are VSTs for everyone. With such a wide variety, you’re sure to find the right VSTs for your music production needs.

Jordan is a music producer, content creator, writer, and session musician. He has been producing music and engineering live performances for over 7 years. He is an experienced guitarist and enjoys listening to and playing many different genres of music.

-->

Note

Effective November 2020:

  • Common Data Service has been renamed to Microsoft Dataverse. Learn more
  • Some terminology in Microsoft Dataverse has been updated. For example, entity is now table and field is now column. Learn more

This article will be updated soon to reflect the latest terminology.

The process of writing, registering, and debugging a plug-in is:

  1. Create a .NET Framework Class library project in Visual Studio
  2. Add the Microsoft.CrmSdk.CoreAssemblies NuGet package to the project
  3. Implement the IPlugin interface on classes that will be registered as steps.
  4. Add your code to the Execute method required by the interface
    1. Get references to services you need
    2. Add your business logic
  5. Sign & build the assembly
  6. Test the assembly
    1. Register the assembly in a test environment
    2. Add your registered assembly and steps to an unmanaged solution
    3. Test the behavior of the assembly
    4. Verify expected trace logs are written
    5. Debug the assembly as needed

Content in this topic discusses the steps in bold above and supports the following tutorials:

Assembly constraints

When creating assemblies keep the following constraints in mind.

Use .NET Framework 4.6.2

Vst Plugin Extension Types

Plug-ins and custom workflow assemblies should use .NET Framework 4.6.2. While assemblies built using later versions should generally work, if they use any features introduced after 4.6.2 an error will occur.

Optimize assembly development

The assembly should include multiple plug-in classes (or types), but can be no larger than 16 MB. It is recommended to consolidate plug-ins and workflow assemblies into a single assembly as long as the size remains below 16 MB. More information: Optimize assembly development

Vst Plugin Extension Types Switches

Assemblies must be signed

Vst Plugin Extension Types Os

All assemblies must be signed before they can be registered. This can be done using Visual Studio Signing tab on the project or by using Sn.exe (Strong Name Tool).

Do not depend on .NET assemblies that interact with low-level Windows APIs

Plug-in assemblies must contain all the necessary logic within the respective dll. Plugins may reference some core .Net assemblies. However, we do not support dependencies on .Net assemblies that interact with low-level Windows APIs, such as the graphics design interface.

Do not depend on any other assemblies

Adding the Microsoft.CrmSdk.CoreAssemblies NuGet package will include these assemblies in the build folder for your assembly, but you will not upload these assemblies with the assembly that includes your logic. These assemblies are already present in the sandbox runtime.

Do not include any other NuGet packages or assemblies to the build folder of your project. You cannot include these assemblies when you register the assembly with your logic. You cannot assume that the assemblies other than those included in the Microsoft.CrmSdk.CoreAssemblies NuGet package will be present and compatible with your code.

IPlugin interface

A plug-in is a class within an assembly created using a .NET Framework Class library project using .NET Framework 4.6.2 in Visual Studio. Each class in the project that will be registered as a step must implement the IPlugin interface which requires the Execute method.

Important

When implementing IPlugin, the class should be stateless. This is because the platform caches a class instance and re-uses it for performance reasons. A simple way of thinking about this is that you shouldn't add any properties or methods to the class and everything should be included within the Execute method. There are some exceptions to this. For example you can have a property that represents a constant and you can have methods that represent functions that are called from the Execute method. The important thing is that you never store any service instance or context data as a property in your class. These change with every invocation and you don't want that data to be cached and applied to subsequent invocations. More information: Develop IPlugin implementations as stateless

The Execute method accepts a single IServiceProvider parameter. The IServiceProvider has a single method: GetService. You will use this method to get several different types of services that you can use in your code. More information: Services you can use in your code

Pass configuration data to your plug-in

When you register a plug-in you have the ability to pass configuration data to it. Configuration data allows you to define how a specific instance of a registered plug-in should behave. This information is passed as string data to parameters in the constructor of your class. There are two parameters: unsecure and secure.Use the first unsecure parameter for data that you don't mind if people can see. Use the second secure parameter for sensitive data.

The following code shows the three possible signatures for a plug-in class named SamplePlugin.

Vst Plugin Extension Types Windows

Windows

The secure configuration data is stored in a separate entity which only system administrators have privileges to read. https://studiostree742.weebly.com/blog/download-free-songs-to-mac. More information: Register plug-in step > Set configuration data

Services you can use in your code

Within your plug-in you will need to:

  • Access the contextual information about what is happening in the event your plug-in was registered to handle. This is called the execution context.
  • Access the Organization web service so you can write code to query data, work with entity records, use messages to perform operations.
  • Write messages to the Tracing service so you can evaluate how your code is executing.

The IServiceProvider.GetService method provides you with a way to access these services as needed. To get an instance of the service you invoke the GetService method passing the type of service.

Note

When you write a plug-in that uses Azure Service Bus integration, you will use a notification service that implements the IServiceEndpointNotificationService interface, but this will not be described here. More information: Azure Integration

Organization Service

To work with data within a plug-in you use the organization service. Do not try to use the Web API. Plug-ins are optimized to use the .NET SDK assemblies.

To gain access to a svc variable that implements the IOrganizationService interface, use the following code:

The context.UserId variable used with IOrganizationServiceFactory.CreateOrganizationService(Nullable<Guid>) comes from execution context the UserId property, so this is call is done after the execution context has been accessed.

More information:

You can use early bound types within a plug-in. Just include the generated types file in your project. But you should be aware that all entity types that are provided by the execution context input parameters will be late-bound types. You will need to convert them to early bound types. For example you can do the following when you know the Target parameter represents an account entity.

But you should never try to set the value using an early bound type. Don't try to do this:

This will cause an SerializationException to occur.

Use the tracing service

Use the tracing service to write messages to the PluginTraceLog Entity so that you can review the logs to understand what occurred when the plug-in ran.

To write to the tracelog, you need to get an instance of the tracing service. The following code shows how to get an instance of the tracing service using the IServiceProvider.GetService method.

To write to the trace, use the ITracingService.Trace method.

More information: Use Tracing, Logging and tracing.

Performance considerations

When you add the business logic for your plug-in you need to be very aware of the impact they will have on overall performance.

Important

The business logic in plug-ins registered for synchronous steps should take no more than 2 seconds to complete.

Time and resource constraints

There is a 2-minute time limit for message operations to complete. There are also limitations on the amount of CPU and memory resources that can be used by extensions. If the limits are exceeded an exception is thrown and the operation will be cancelled.

If the time limit is exceeded, an TimeoutException will be thrown. If any custom extension exceeds threshold CPU, memory, or handle limits or is otherwise unresponsive, that process will be killed by the platform. At that point any current extension in that process will fail with exceptions. However, the next time that the extension is executed it will run normally.

Monitor Performance

Run-time information about plug-ins and custom workflow extensions is captured and store in the PluginTypeStatistic Entity. These records are populated within 30 minutes to one hour after the custom code executes. This entity provides the following data points:

AttributeDescription
AverageExecuteTimeInMillisecondsThe average execution time (in milliseconds) for the plug-in type.
CrashContributionPercentThe plug-in type percentage contribution to crashes.
CrashCountNumber of times the plug-in type has crashed.
CrashPercentPercentage of crashes for the plug-in type.
ExecuteCountNumber of times the plug-in type has been executed.
FailureCount Number of times the plug-in type has failed.
FailurePercentPercentage of failures for the plug-in type.
PluginTypeIdNameUnique identifier of the user who last modified the plug-in type statistic.
TerminateCpuContributionPercent The plug-in type percentage contribution to Worker process termination due to excessive CPU usage.
TerminateHandlesContributionPercent The plug-in type percentage contribution to Worker process termination due to excessive handle usage.
TerminateMemoryContributionPercentThe plug-in type percentage contribution to Worker process termination due to excessive memory usage.
TerminateOtherContributionPercentThe plug-in type percentage contribution to Worker process termination due to unknown reasons.

This data is also available for you to browse using the Power Platform Admin Center. Select Analytics > Common Data Service > Plug-ins.

Next steps

Register a plug-in
Debug Plug-ins

See also

Write plug-ins to extend business processes
Best practices and guidance regarding plug-in and workflow developmentHandle exceptions
Impersonate a user
Tutorial: Write and register a plug-in
Tutorial: Debug a plug-in
Tutorial: Update a plug-in