HISE Docs

Engine

The Engine object contains a lot of functions related to global properties (like sample rate or host tempo) and object creation.

Engine.getSampleRate() // returns the current sample rate
Engine.sendAllNotesOff() // sends a all note off (MIDI Panic) message at the next audio buffer


Class methods

addModuleStateToUserPreset

Adds an entire module to the user preset system.

Engine.addModuleStateToUserPreset(var moduleId)


This function can be used to add the entire state of a HISE module to the user preset. This function will create the same XML element for the given module as it is stored in the XML file of the project (or if you copy a module using Ctrl+C) and attach it to the user preset's xml data. moduleId can be either the ID of the module that you want to attach to the user preset, or it can be a JSON object that provides additional functionality to remove properties and child elements.

Be aware that you can only use this method with HISE modules that do not have any child processors as this would cause a rearrangement of the signal tree with unexpected side effects!

Passing in a JSON object as parameter allows you to sanitize the XML element before it gets stored into the user preset XML tree. This has two benefits:

  1. Cleaner output
  2. Protection against weird side effects - eg. the user could manually edit the routing matrix and cause havoc.
Property Type Description
ID String the ID of the HISE module as seen in the Patch Browser (the string you would normally pass into this method).
RemovedProperties Array A list of all properties (as String) that you want to remove from the XML data before saving. Be aware that this only applies to the root XML element.
RemovedChildElements Array A list of all child elements (String of the XML tag) of the XML element that you want to remove before saving.

If you remove child elements or properties with this method, HISE will create a copy of the data that is about to be deleted BEFORE loading a new preset and then attaches it to the XML data that was loaded to ensure that this data remains static.

allNotesOff

Sends an allNotesOff message at the next buffer. Edit on GitHub

Engine.allNotesOff()



clearMidiFilePool

Removes all entries from the MIDi file pool. Edit on GitHub

Engine.clearMidiFilePool()



clearSampleMapPool

Removes all entries from the samplemap pool Edit on GitHub

Engine.clearSampleMapPool()



clearUndoHistory

Clears the undo history. Edit on GitHub

Engine.clearUndoHistory()



compressJSON

Compresses a JSON object as Base64 string using zstd. Edit on GitHub

Engine.compressJSON(var object)



copyToClipboard

Copies the given text to the clipboard. Edit on GitHub

Engine.copyToClipboard(String textToCopy)



createAndRegisterAudioFile

Creates a audio file holder and registers it so you can access it from other modules. Edit on GitHub

Engine.createAndRegisterAudioFile(int index)



createAndRegisterRingBuffer

Creates a ring buffer and registers it so you can access it from other modules. Edit on GitHub

Engine.createAndRegisterRingBuffer(int index)



createAndRegisterSliderPackData

Creates a SliderPack Data object and registers it so you can access it from other modules. Edit on GitHub

Engine.createAndRegisterSliderPackData(int index)



createAndRegisterTableData

Creates a Table object and registers it so you can access it from other modules. Edit on GitHub

Engine.createAndRegisterTableData(int index)



createBackgroundTask

Creates a background task that can execute heavyweight functions. Edit on GitHub

Engine.createBackgroundTask(String name)



createBeatportManager

Creates a beatport manager object. Edit on GitHub

Engine.createBeatportManager()



createBroadcaster

Creates a broadcaster that can send messages to attached listeners.

Engine.createBroadcaster(var defaultValues)


This creates a Broadcaster object that can listen to value changes. The argument you pass in here is a metadata object that describes the properties of the Broadcaster.

/** If you start a comment with `/**` it will get attached to the metadata objects as `comment` property. */
const var bc = Engine.createBroadcaster({
	"id": "My Broadcaster",              // give it a meaningful name
	"colour": -1,                        // assign a colour (-1 just creates a random colour from the ID hash)
	"tags": ["audio", "value-handling"], // assign some tags
	"args": ["myValue", "isPlaying"]
});

The information from the metadata will vastly help the broadcaster map appearance, so from the example code you'll get this beauty:

In addition to the usual properties you also need to supply an array of strings called args which will define the argument amount and name. They will all be initialised to undefined so that the callbacks only start happening when you assign a value to them (or the event source does this for you).

Be aware that every function you pass into Broadcaster.addListener() will need to have as many parameters as you define with the args property or it will cause an error message. Also if you are planning to attach the broadcaster to a predefined internal event (eg. component property changes), the numbers must also match the expected argument amount (in this particular case: 3)


createDspNetwork

Creates a Dsp node network. Edit on GitHub

Engine.createDspNetwork(String id)



createErrorHandler

Creates an error handler that reacts on initialisation errors. Edit on GitHub

Engine.createErrorHandler()



createExpansionHandler

Creates (and activates) the expansion handler. Edit on GitHub

Engine.createExpansionHandler()



createFFT

Creates an FFT object. Edit on GitHub

Engine.createFFT()



createFixObjectFactory

Creates a fix object factory using the data layout. Edit on GitHub

Engine.createFixObjectFactory(var layoutDescription)



createGlobalScriptLookAndFeel

Creates a (or returns an existing ) script look and feel object. Edit on GitHub

Engine.createGlobalScriptLookAndFeel()



createLicenseUnlocker

Creates a reference to the script license manager. Edit on GitHub

Engine.createLicenseUnlocker()



createMacroHandler

Creates a macro handler that lets you programmatically change the macro connections. Edit on GitHub

Engine.createMacroHandler()



createMessageHolder

Creates a storage object for Message events. Edit on GitHub

Engine.createMessageHolder()



createMidiAutomationHandler

Creates a MIDI Automation handler. Edit on GitHub

Engine.createMidiAutomationHandler()



createMidiList

Creates a MIDI List object. Edit on GitHub

Engine.createMidiList()



createModulationMatrix

Creates a modulation matrix object that handles dynamic modulation using the given Global Modulator Container as source. Edit on GitHub

Engine.createModulationMatrix(String containerId)



createNeuralNetwork

Creates a neural network with the given ID. Edit on GitHub

Engine.createNeuralNetwork(String id)



createThreadSafeStorage

Creates a thread safe storage container. Edit on GitHub

Engine.createThreadSafeStorage()



createTimerObject

Creates a new timer object. Edit on GitHub

Engine.createTimerObject()



createTransportHandler

Creates an object that can listen to transport events. Edit on GitHub

Engine.createTransportHandler()



createUnorderedStack

Creates a unordered stack that can hold up to 128 float numbers. Edit on GitHub

Engine.createUnorderedStack()



createUserPresetHandler

Creates an user preset handler. Edit on GitHub

Engine.createUserPresetHandler()



decodeBase64ValueTree

Decodes an Base64 encrypted valuetree (eg. HiseSnippets). Edit on GitHub

Engine.decodeBase64ValueTree( String b64Data)



doubleToString

Returns a string of the value with the supplied number of digits. Edit on GitHub

Engine.doubleToString(double value, int digits)



dumpAsJSON

Exports an object as JSON. Edit on GitHub

Engine.dumpAsJSON(var object, String fileName)



extendTimeOut

Extends the compilation timeout. Use this if you have a long task that would get cancelled otherwise. This is doing nothing in compiled plugins. Edit on GitHub

Engine.extendTimeOut(int additionalMilliseconds)



getBufferSize

Returns the current maximum processing block size. Edit on GitHub

Engine.getBufferSize()



getClipboardContent

Returns the clipboard content. Edit on GitHub

Engine.getClipboardContent()



getComplexDataReference

Returns a reference to a complex data type from the given module. Edit on GitHub

Engine.getComplexDataReference(String dataType, String moduleId, int index)



getControlRateDownsamplingFactor

Returns the downsampling factor for the modulation signal (default is 8). Edit on GitHub

Engine.getControlRateDownsamplingFactor()



getCpuUsage

Returns the current CPU usage in percent (0 ... 100) Edit on GitHub

Engine.getCpuUsage()



getCurrentUserPresetName

Returns the currently loaded user preset (without extension). Edit on GitHub

Engine.getCurrentUserPresetName()



getDecibelsForGainFactor

Converts gain factor (0.0 .. 1.0) to decibel (-100.0 ... 0). Edit on GitHub

Engine.getDecibelsForGainFactor(double gainFactor)



getDeviceResolution

Returns the full screen resolution for the current device. Edit on GitHub

Engine.getDeviceResolution()



getDeviceType

Returns the mobile device that this software is running on. Edit on GitHub

Engine.getDeviceType()



getDspNetworkReference

Creates a reference to the DSP network of another script processor. Edit on GitHub

Engine.getDspNetworkReference(String processorId, String id)



getExpansionList

Creates a list of all available expansions. Edit on GitHub

Engine.getExpansionList()



getExtraDefinitionsInBackend

Returns the platform specific extra definitions from the Project settings as JSON object. Edit on GitHub

Engine.getExtraDefinitionsInBackend()



getFilterModeList

Returns an object that contains all filter modes.

Engine.getFilterModeList()


You can use this object to create a list of filter modes you would like to add to your plugin.

Example Code:

// Create a filter effect
const var effect = Synth.addEffect("PolyphonicFilter", "filter", 0);

// Create a filter graph
const var display = Content.addFloatingTile("tile", 0, 0);
display.set("width", 200);
display.set("height", 50);
display.setContentData({"Type": "FilterDisplay", 
                        "ProcessorId": "filter"});

// Create a knob for the frequency
const var filterKnob = Content.addKnob("filterKnob", 250, 0);
filterKnob.set("mode", "Frequency");
inline function f(component, value){ effect.setAttribute(effect.Frequency, value); };
filterKnob.setControlCallback(f);

const var modeSelector = Content.addComboBox("modeSelector", 400, 10);

// Create the filter mode list object
const var filterList = Engine.getFilterModeList();

// Pick some values from the object and store it in an array
const var filterModes = [ filterList.StateVariableNotch, 
                          filterList.StateVariableLP ];
                          
// Create an array with a name for each mode
const var filterNames = [ "Notch",
                          "SVF Lowpass"];

// Use the filterNames list as combobox items
modeSelector.set("items", filterNames.join("\n"));


inline function modeCallback(component, value)
{
    // combobox values are starting with 1
    local index = value-1;
    
    if(index >= 0)
    {
        // use the index to get the actual number from the filterModes array.
        effect.setAttribute(effect.Mode, filterModes[index]);
    }
}

modeSelector.setControlCallback(modeCallback);


getFrequencyForMidiNoteNumber

Converts midi note number 0 ... 127 to Frequency 20 ... 20.000. Edit on GitHub

Engine.getFrequencyForMidiNoteNumber(int midiNumber)



getGainFactorForDecibels

Converts decibel (-100.0 ... 0.0) to gain factor (0.0 ... 1.0). Edit on GitHub

Engine.getGainFactorForDecibels(double decibels)



getGlobalPitchFactor

Returns the global pitch factor (in semitones). Edit on GitHub

Engine.getGlobalPitchFactor()



getGlobalRoutingManager

Returns a reference to the global routing manager. Edit on GitHub

Engine.getGlobalRoutingManager()



getHostBpm

Returns the Bpm of the host. Edit on GitHub

Engine.getHostBpm()



getLatencySamples

Returns the latency of the plugin as reported to the host. Default is 0. Edit on GitHub

Engine.getLatencySamples()



getLorisManager

Returns a reference to the global Loris manager. Edit on GitHub

Engine.getLorisManager()



getMacroName

Returns the name for the given macro index. Edit on GitHub

Engine.getMacroName(int index)



getMasterPeakLevel

Returns the current peak volume (0...1) for the given channel. Edit on GitHub

Engine.getMasterPeakLevel(int channel)



getMemoryUsage

Returns the current memory usage in MB.

Engine.getMemoryUsage()


This only takes the size of the preload buffers and streaming buffers of the samples into account - the actual memory consumption might be much higher if you are using lots of images.

getMidiNoteFromName

Converts MIDI note name to MIDI number ("C3" for middle C). Edit on GitHub

Engine.getMidiNoteFromName(String midiNoteName)



getMidiNoteName

Converts MIDI note number to Midi note name ("C3" for middle C). Edit on GitHub

Engine.getMidiNoteName(int midiNumber)



getMilliSecondsForQuarterBeats

Converts quarter beats to milliseconds using the current tempo. Edit on GitHub

Engine.getMilliSecondsForQuarterBeats(double quarterBeats)



getMilliSecondsForQuarterBeatsWithTempo

Converts quarter beats to milliseconds using the given tempo. Edit on GitHub

Engine.getMilliSecondsForQuarterBeatsWithTempo(double quarterBeats, double bpm)



getMilliSecondsForSamples

Converts samples to milli seconds. Edit on GitHub

Engine.getMilliSecondsForSamples(double samples)



getMilliSecondsForTempo

Returns the millisecond value for the supplied tempo (HINT: Use "TempoSync" mode from Slider!) Edit on GitHub

Engine.getMilliSecondsForTempo(int tempoIndex)



getName

Returns the product name (not the HISE name!). Edit on GitHub

Engine.getName()



getNumPluginChannels

Returns the amount of output channels. Edit on GitHub

Engine.getNumPluginChannels()



getNumVoices

Returns the amount of currently active voices. Edit on GitHub

Engine.getNumVoices()



getOS

Returns the current operating system ("OSX", "LINUX", or ("WIN").

Engine.getOS()


You can use this method to query the OS in order to implement some platform specific code. HISE tries to abstract as much OS specifics as possible,but especially when it comes to font loading, there are some subtle differences between the different operating systems.

Console.print(Engine.getOS());


getPitchRatioFromSemitones

Converts a semitone value to a pitch ratio (-12 ... 12) -> (0.5 ... 2.0) Edit on GitHub

Engine.getPitchRatioFromSemitones(double semiTones)



getPlayHead

Allows access to the data of the host (playing status, timeline, etc...). Edit on GitHub

Engine.getPlayHead()



getPreloadMessage

Returns the current preload message if there is one. Edit on GitHub

Engine.getPreloadMessage()



getPreloadProgress

Returns the preload progress from 0.0 to 1.0. Use this to display some kind of loading icon. Edit on GitHub

Engine.getPreloadProgress()



getProjectInfo

Returns project and company info from the Project's preferences. Edit on GitHub

Engine.getProjectInfo()



getQuarterBeatsForMilliSeconds

Converts milliseconds to quarter beats using the current tempo. Edit on GitHub

Engine.getQuarterBeatsForMilliSeconds(double milliSeconds)



getQuarterBeatsForMilliSecondsWithTempo

Converts milliseconds to quarter beats using the given tempo. Edit on GitHub

Engine.getQuarterBeatsForMilliSecondsWithTempo(double milliSeconds, double bpm)



getQuarterBeatsForSamples

Converts samples to quarter beats using the current tempo. Edit on GitHub

Engine.getQuarterBeatsForSamples(double samples)



getQuarterBeatsForSamplesWithTempo

Converts samples to quarter beats using the given tempo. Edit on GitHub

Engine.getQuarterBeatsForSamplesWithTempo(double samples, double bpm)



getRegexMatches

Returns an array with all matches. Edit on GitHub

Engine.getRegexMatches(String stringToMatch, String regex)



getSampleFilesFromDirectory

Iterates the given sub-directory of the Samples folder and returns a list with all references to audio files. Edit on GitHub

Engine.getSampleFilesFromDirectory( String relativePathFromSampleFolder, bool recursive)



getSampleRate

Returns the current sample rate. Edit on GitHub

Engine.getSampleRate()



getSamplesForMilliSeconds

Converts milli seconds to samples Edit on GitHub

Engine.getSamplesForMilliSeconds(double milliSeconds)



getSamplesForQuarterBeats

Converts quarter beats to samples using the current tempo. Edit on GitHub

Engine.getSamplesForQuarterBeats(double quarterBeats)



getSamplesForQuarterBeatsWithTempo

Converts quarter beats to samples using the given tempo. Edit on GitHub

Engine.getSamplesForQuarterBeatsWithTempo(double quarterBeats, double bpm)



getSemitonesFromPitchRatio

Converts a pitch ratio to semitones (0.5 ... 2.0) -> (-12 ... 12) Edit on GitHub

Engine.getSemitonesFromPitchRatio(double pitchRatio)



getSettingsWindowObject

Returns a object that contains the properties for the settings dialog. Edit on GitHub

Engine.getSettingsWindowObject()



getStringWidth

Returns the width of the string for the given font properties. Edit on GitHub

Engine.getStringWidth(String text, String fontName, float fontSize, float fontSpacing)



getSystemStats

Returns info about the current hardware and OS configuration. Edit on GitHub

Engine.getSystemStats()



getSystemTime

Returns a fully described string of this date and time in ISO-8601 format (using the local timezone) with or without divider characters. Edit on GitHub

Engine.getSystemTime(bool includeDividerCharacters)



getTempoName

Returns the tempo name for the given index Edit on GitHub

Engine.getTempoName(int tempoIndex)



getUptime

Returns the uptime of the engine in seconds. Edit on GitHub

Engine.getUptime()



getUserPresetList

Returns a list of all available user presets as relative path. Edit on GitHub

Engine.getUserPresetList()



getVersion

Returns the product version (not the HISE version!). Edit on GitHub

Engine.getVersion()



getWavetableList

Returns the list of wavetables of the current expansion (or factory content). Edit on GitHub

Engine.getWavetableList()



getZoomLevel

Returns the current Zoom Level. Edit on GitHub

Engine.getZoomLevel()



isControllerUsedByAutomation

Checks if the given CC number is used for parameter automation and returns the index of the control. Edit on GitHub

Engine.isControllerUsedByAutomation(int controllerNumber)



isHISE

Returns true if the project is running inside HISE. You can use this during development to simulate different environments. Edit on GitHub

Engine.isHISE()



isMpeEnabled

Checks if the global MPE mode is enabled. Edit on GitHub

Engine.isMpeEnabled()



isPlugin

Returns true if running as VST / AU / AAX plugin. Edit on GitHub

Engine.isPlugin()



isUserPresetReadOnly

Checks if the user preset is read only. Edit on GitHub

Engine.isUserPresetReadOnly(var optionalFile)



loadAudioFileIntoBufferArray

Loads a file and returns its content as array of Buffers. Edit on GitHub

Engine.loadAudioFileIntoBufferArray(String audioFileReference)



loadAudioFilesIntoPool

Calling this makes sure that all audio files are loaded into the pool and will be available in the compiled plugin. Returns a list of all references. Edit on GitHub

Engine.loadAudioFilesIntoPool()



loadFont

Loads a font file. This is deprecated, because it might result in different names on various OS. Use loadFontAs() instead. Edit on GitHub

Engine.loadFont( String fileName)



loadFontAs

Loads the font from the given file in the image folder and registers it under the fontId. This is platform agnostic.

Engine.loadFontAs(String fileName, String fontId)


This call pulls a font from the Images folder and gives it a FontID (string) reference that you can use later on.

{PROJECT_FOLDER} refers to the root of the projects Images folder. Just put your font there, or in a subfolder like in this example (fonts/).

Engine.loadFontAs("{PROJECT_FOLDER}fonts/Nunito-Regular.ttf", "nunito");


loadFromJSON

Imports a JSON file as object. Edit on GitHub

Engine.loadFromJSON(String fileName)



loadImageIntoPool

Loads an image into the pool. You can use a wildcard to load multiple images at once. Edit on GitHub

Engine.loadImageIntoPool( String id)



loadNextUserPreset

Loads the next user preset. Edit on GitHub

Engine.loadNextUserPreset(bool stayInDirectory)



loadPreviousUserPreset

Loads the previous user preset. Edit on GitHub

Engine.loadPreviousUserPreset(bool stayInDirectory)



loadUserPreset

Loads a user preset with the given relative path (use / for directory separation) or the given ScriptFile object. Edit on GitHub

Engine.loadUserPreset(var relativePathOrFileObject)



logSettingWarning

This warning will show up in the console so people can migrate in the next years... Edit on GitHub

Engine.logSettingWarning( String methodName)



matchesRegex

Matches the string against the regex token. Edit on GitHub

Engine.matchesRegex(String stringToMatch, String regex)



openWebsite

launches the given URL in the system's web browser. Edit on GitHub

Engine.openWebsite(String url)



performUndoAction

Performs an action that can be undone via Engine.undo().

Engine.performUndoAction(var thisObject, var undoAction)


This function will perform an undoable action that is defined by the function you pass in as second parameter. The function expects a single parameter that is either true when the function should be undone or false if it needs to be performed (or "redone").

The first parameter will be used as this object during the execution and can contain the information that the function needs in order to perform the action.

Calling this function will perform the action immediately and will add it to the undo manager that can be controlled with Engine.undo() , Engine.redo() .

This function can be used in order to implement more complex undoable actions than the native UI widgets provide.

Example

This example just operates on an array and changes the values inside an undoable operation.

const var myList = [1, 2, 3, 4, 5, 6];

Engine.performUndoAction({
  "obj": myList,				// the object that will be modified
  "newValue": [3, 4, 5, 6, 7],  // the new state
  "oldValue": myList.clone()    // the old state (we need to clone it or it will not keep the old values)
}, function(isUndo)
{
	this.obj.clear();

	// pick the values from the old or new state
	for(v in isUndo ? this.oldValue : this.newValue)
		this.obj.push(v);
});

// new state
Console.print(trace(myList));

Engine.undo();

// old state
Console.print(trace(myList));

Engine.redo();

// new state
Console.print(trace(myList));


playBuffer

Previews a audio buffer with a callback indicating the state. Edit on GitHub

Engine.playBuffer(var bufferData, var callback, double fileSampleRate)



quit

Signals that the application should terminate. Edit on GitHub

Engine.quit()



rebuildCachedPools

Rebuilds the entries for all cached pools (MIDI files and samplemaps). Edit on GitHub

Engine.rebuildCachedPools()



redo

Redo the last controller change. Edit on GitHub

Engine.redo()



reloadAllSamples

Forces a full (asynchronous) reload of all samples (eg. after the sample directory has changed). Edit on GitHub

Engine.reloadAllSamples()



renderAudio

Renders a MIDI event list as audio data on a background thread and calls a function when it's ready. Edit on GitHub

Engine.renderAudio(var eventList, var finishCallback)



saveUserPreset

Asks for a preset name (if presetName is empty) and saves the current user preset. Edit on GitHub

Engine.saveUserPreset(var presetName)



setAllowDuplicateSamples

Sets whether the samples are allowed to be duplicated. Set this to false if you operate on the same samples differently. Edit on GitHub

Engine.setAllowDuplicateSamples(bool shouldAllow)



setCompileProgress

Displays the progress (0.0 to 1.0) in the progress bar of the editor. Edit on GitHub

Engine.setCompileProgress(var progress)



setCurrentExpansion

Sets the active expansion and updates the preset browser. Edit on GitHub

Engine.setCurrentExpansion( String expansionName)



setDiskMode

Sets the Streaming Mode (0 -> Fast-SSD, 1 -> Slow-HDD) Edit on GitHub

Engine.setDiskMode(int mode)



setFrontendMacros

Enables the macro system to be used by the end user.

Engine.setFrontendMacros(var nameList)


Pass it a list of names to name the macros

const var macroNames = ["Volume", "FilterFreq", "FilterQ", "Reverb"];

Engine.setFrontendMacros(macroNames);


setGlobalFont

Sets the font that will be used as default font for various things.

Engine.setGlobalFont(String fontName)


In order to do so, put them all in a Fonts subdirectory of the Images folder, and access it with

javascriptEngine.loadFontAs("{PROJECT_FOLDER}Fonts/Heebo.ttf", "heebo");Engine.setGlobalFont("heebo");


setGlobalPitchFactor

Sets the global pitch factor (in semitones). Edit on GitHub

Engine.setGlobalPitchFactor(double pitchFactorInSemitones)



setHostBpm

Overwrites the host BPM. Use -1 for sync to host. Edit on GitHub

Engine.setHostBpm(double newTempo)



setKeyColour

Sets a key of the global keyboard to the specified colour (using the form 0x00FF00 for eg. of the key to the specified colour.

Engine.setKeyColour(int keyNumber, int colourAsHex)


See Colours and Keyboard .

setLatencySamples

sets the latency of the plugin as reported to the host. Default is 0. Edit on GitHub

Engine.setLatencySamples(int latency)



setLowestKeyToDisplay

Changes the lowest visible key on the on screen keyboard. Edit on GitHub

Engine.setLowestKeyToDisplay(int keyNumber)



setMaximumBlockSize

Sets the maximum buffer size that is processed at once. If the buffer size from the audio driver / host is bigger than this number, it will split up the incoming buffer and call process multiple times.

Engine.setMaximumBlockSize(int numSamplesPerBlock)


Depending on your project architecture, it might make sense to limit the maximum buffer size that will be processed by your DSP module tree.

This will not guarantee that the buffer size is always the same, but rather split up the incoming buffer into chunks of this size. So if you have a 512 audio buffer and call Engine.setMaximumBlockSize(300) , then you will process alternating audio buffers of 300 and 212 samples.

This is the "global" variant of the container.fix_block nodes that perform this operation locally within a DSP network.

Obviously this will come with a slightly higher CPU load, but the benefits of having a defined upper limit for the buffer allows you to implement a few cross-module modulation concepts that would not be possible otherwise (as the cross-module communication usually happens once per buffer size, an update rate of 11ms eg. might not be good enough for envelope modulation signals etc).

Usually you're best bet is to not use this function until you really need it for your project to work.

setMinimumSampleRate

Sets the minimum sample rate for the global processing (and adds oversampling if the current samplerate is lower). Edit on GitHub

Engine.setMinimumSampleRate(double minimumSampleRate)



setUserPresetTagList

Sets the tags that appear in the user preset browser. Edit on GitHub

Engine.setUserPresetTagList(var listOfTags)



setZoomLevel

Sets the new zoom level (1.0 = 100%) Edit on GitHub

Engine.setZoomLevel(double newLevel)



showErrorMessage

Shows a error message on the compiled plugin (or prints it on the console). Use isCritical if you want to disable the "Ignore" Button. Edit on GitHub

Engine.showErrorMessage(String message, bool isCritical)



showMessage

Shows a message with an overlay on the compiled plugin with an "OK" button in order to notify the user about important events. Edit on GitHub

Engine.showMessage(String message)



showMessageBox

Shows a message box with an OK button and a icon defined by the type variable. Edit on GitHub

Engine.showMessageBox(String title, String markdownMessage, int type)



showYesNoWindow

Shows a message with a question and executes the function after the user has selected his choice. Edit on GitHub

Engine.showYesNoWindow(String title, String markdownMessage, var callback)



sortWithFunction

Sorts an array with a given comparison function. Edit on GitHub

Engine.sortWithFunction(var arrayToSort, var sortFunction)



uncompressJSON

Expands a compressed JSON object. Edit on GitHub

Engine.uncompressJSON( String b64)



undo

Reverts the last controller change. Edit on GitHub

Engine.undo()