Skip to content
Pierre Guillot edited this page Apr 4, 2018 · 2 revisions

Plugin properties

The plugin properties are defined using a text file named after the plugin and the main patch. Each line starts with a keyword, potentially followed by a set of arguments, that defines a property. To ensure a better compatibility with FUDI format, and a full compatibility in the future, each line must be ended with a semicolon. If a property is not supported by the plugin, when the keyword doesn't exist or the arguments are not well defined, the plugin posts a warning. After defining or changing the properties, check the console of the plugin to ensure that everything is valid. Here is the list of all the properties:

  • type defines the type of plugin effect or instrument. It is important because the user must know which binary to use to generate the plugin. If the binary used is different from the type defined in the text, you will receive a warning in the console.

  • code is a 4 character string with at least 1 upper case used by the DAW to identify the plugin. It must be unique per plugin.

  • compatibility must be the version of the plugin with which the patch has been created (for example v1.0.2). The plugin uses this to ensure that its compatibility with the patch. If the version of the plugin is inferior to the compatibility version then plugin posts a warning.

  • midiin defines if the plugin accepts MIDI events, it must be true or false. It can be used for effect and instrument plugin.

  • midiout defines if the plugin generates MIDI events, it must be true or false. It can be used for effect and instrument plugin.

  • midionly defines if the plugin generates and receives only MIDI events without audio, it must be true or false. It can be used for effect and instrument plugin.

  • playhead defines if the plugin wants the play head informations, it must be true or false. It can be used for effect and instrument plugin.

  • key defines if the plugin wants to receive key event via the objects key, keyup and keyname, it must be true or false.

  • latency defines the latency of the plugin is samples (can also be changed dynamically).

  • taillength defines the tail length of the plugin is seconds.

  • bus defines a new bus for the plugin and must be followed by the number of inputs and the number of output. For example bus 2 2 if you want to add the support for 2 channels in and 2 channels out and bus 4 8 if you want to add the support for 4 channels in and 8 channels out. Important: multi-buses and side chain are still experimental, it could change in the future

  • program defines a new program (preset) for the plugin and must be followed the name of the program. For example program zozo. The order of the programs corresponds to their order in the text file from top to bottom.

  • param defines a new parameter for the plugin and can be followed by a set of optional arguments. The arguments can be the name -name, the label -label, the minimum value -min, the maximum value -max, the default value -default, the number of steps -nsteps, if the parameter is automatable -auto (it's true by default), if the parameter is a meta parameter (if it controls other parameters, false by default) -meta. If you want to create a parameter that displays a list of possible values for a waveform for example you can use the argument -list where all possible values are escaped with /. In this case, the minimum is 0, the maximum is the number of elements in the list minus one and the number of steps is the number of elements in the list (if you set one of these options with the list option you will receive a warning in the console). So here are two examples:param -name Frequency -label Hz -min 0 -max 5000 -default 500; for a "numeric parameter" or param -name Waveform -list Triangular/Sawtooth/Square; for a "list parameter".

  • image can be the name of an image file (for example myimage.png). The plugin displays the image as the background of the graphical interface.

  • description can be a short sentence (for example A chorus effect) or the name of a text file (for example Infos.txt). The plugin displays the text in the second tab of the auxiliary window. The text can be used to describe what the plugin does and how to use it but also the author, the credits and the version.

  • autoreload true or false