/ HALion Developer Resource / HALion Script / Reference /
savePreset
savePreset(filename, layer, plugin, attr)
(Since HALion 7.0)
Description
Function to save a layer as VST preset to disk.
Available in: Controller.
Arguments
Argument | Description | Value Type |
---|---|---|
filename | The absolute path and name of the VST preset. | string |
layer | Specifies the Layer element which is to be saved. | Layer |
plugin | Determines the plug-in for the VST preset. You can choose H7 (HALion 7) or HS (HALion Sonic). | string, optional |
attr | Set this to program to save a program VST preset. If this is not set, a layer VST preset will be saved. Alternatively, you can provide a table with MediaBay attributes and values. | string, optional |
MediaBay Attributes
Attribute | Value | Value Type |
---|---|---|
MediaAuthor | "Author" | string |
MediaComment | "Comment" | string |
MediaLibraryManufacturerName | "ManufacturerName" | string |
MediaLibraryName | "LibraryName" | string |
MediaRating | 3 | integer |
MusicalArticulations | "Articulation1|Articulation2|..." | string |
MusicalCategory | "Category" | string |
MusicalInstrument | "Category|Subcategory" | string |
MusicalMoods | "Mood1|Mood2|..." | string |
MusicalProperties | "Property1|Property2|..." | string |
MusicalStyle | "Style" | string |
MusicalSubStyle | "Style|Substyle" | string |
VST3UnitTypePath | "program" or "program/layer" | string |
❕ See MediaBay Guideline for more information about the attributes and how to use them.
Example
posStart, posEnd = string.find(getUserSubPresetPath(), "Steinberg/")
fileLocation = string.sub(getUserSubPresetPath(), 1, posEnd)
defineParameter("FileName", nil, "test.vstpreset")
defineParameter("SavePreset", nil, false, function() if SavePreset then onSavePresetChanged() end end)
setScriptExecTimeOut(20000)
attr = {MediaRating = 3, MusicalProperties = "Soft|Bright|Rich", VST3UnitTypePath = "program",}
function onSavePresetChanged()
FileName = fileLocation..FileName
local layer = this.parent:getLayer()
local saved = savePreset(FileName, layer, "HS", attr)
print(saved)
SavePreset = false
end