Package heronarts.lx.script
Class ScriptPattern
- All Implemented Interfaces:
LXEffect.Container
,LXComponent.Renamable
,LXDeviceComponent.Midi
,LXLoopTask
,LXPath
,LXPresetComponent
,LXSerializable
,LXMidiListener
,LXModulationContainer
,LXOscComponent
,LXParameterListener
@Description("Generates a pattern from code in a JS file")
public class ScriptPattern
extends LXPattern
implements LXDeviceComponent.Midi
-
Nested Class Summary
Nested classes/interfaces inherited from class heronarts.lx.pattern.LXPattern
LXPattern.Listener, LXPattern.Placeholder, LXPattern.Profiler
Nested classes/interfaces inherited from class heronarts.lx.LXDeviceComponent
LXDeviceComponent.Midi
Nested classes/interfaces inherited from class heronarts.lx.LXComponent
LXComponent.Description, LXComponent.Hidden, LXComponent.Name, LXComponent.PluginRequired, LXComponent.Renamable
Nested classes/interfaces inherited from interface heronarts.lx.LXSerializable
LXSerializable.Utils
-
Field Summary
FieldsFields inherited from class heronarts.lx.pattern.LXPattern
compositeLevel, compositeMode, customCycleTimeSecs, effects, enabled, hasCustomCycleTime, launch, mutableEffects, PATH_EFFECT, profiler, recall, runMs
Fields inherited from class heronarts.lx.LXDeviceComponent
automationChildren, controlsExpanded, controlsExpandedAux, controlsExpandedCue, controlSurfaceSemaphore, crashed, DEVICE_CATEGORY_NAME_SORT, DEVICE_VERSION_UNSPECIFIED, KEY_DEVICE_VERSION, midiFilter, modulation, modulationExpanded, remoteControlsChanged, view, viewPriority
Fields inherited from class heronarts.lx.LXLayeredComponent
colors, layers, palette
Fields inherited from class heronarts.lx.LXModelComponent
model
Fields inherited from class heronarts.lx.LXModulatorComponent
modulators
Fields inherited from class heronarts.lx.LXComponent
childArrays, children, internalParameters, KEY_CHILDREN, KEY_CLASS, KEY_COMPONENT_ID, KEY_ID, KEY_INTERNAL, KEY_PARAMETER_PATH, KEY_PARAMETERS, KEY_PATH, KEY_RESET, label, legacyInternalParameters, legacyParameters, lx, modulationColor, modulationControlsExpanded, modulationsExpanded, parameters, presetFile
Fields inherited from interface heronarts.lx.LXPath
DEFAULT_SEPARATOR, ROOT, ROOT_PREFIX, ROOT_SLASH
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
aftertouchReceived
(MidiAftertouch aftertouch) void
void
dispose()
Invoked when a component is being removed from the system and will no longer be used at all.boolean
isHiddenControl
(LXParameter parameter) Returns whether this parameter is visible in default remote control or device control UIsvoid
load
(LX lx, JsonObject obj) Loads the LX component.void
void
noteOffReceived
(MidiNote note) void
noteOnReceived
(MidiNoteOn note) void
onActive()
Subclasses may override this method.void
Subclasses may override this method.void
onModelChanged
(LXModel model) Subclasses should override to handle changes to which model they are addressing.void
Subclasses are free to override this if desired.void
pitchBendReceived
(MidiPitchBend pitchBend) void
void
run
(double deltaMs) Main pattern loop function.Methods inherited from class heronarts.lx.pattern.LXPattern
activate, addEffect, addListener, applyEffects, clearInterval, deactivate, getChannel, getCompositeDampingLevel, getEffects, getIndex, getPath, handleOscMessage, hasInterval, initCompositeDamping, isAutoCycleEligible, isInInterval, isSnapshotControl, midiDispatch, moveEffect, onLoop, onTransitionEnd, onTransitionStart, removeEffect, removeListener, save, setAutoCycleEligible, setChannel, setIndex, setInterval, toggleAutoCycleEligible, updateCompositeBlendOptions, updateCompositeDamping
Methods inherited from class heronarts.lx.LXDeviceComponent
addAutomationChild, addControlSurface, clearCustomRemoteControls, getControlSurfaces, getCrash, getCrashStackTrace, getCustomRemoteControls, getDeviceDescription, getDeviceVersion, getModelView, getModulationEngine, getModulationExpanded, getRemoteControls, loop, removeControlSurface, removeCustomRemoteControl, resetRemoteControls, setCustomRemoteControls, setRemoteControls
Methods inherited from class heronarts.lx.LXLayeredComponent
addColor, addColor, addLayer, afterLayers, blendColor, blendColor, clearColors, getBuffer, getColor, getColor, getColors, getLayers, removeLayer, setBuffer, setBuffer, setColor, setColor, setColor, setColors, subtractColor
Methods inherited from class heronarts.lx.LXModelComponent
getModel, setModel
Methods inherited from class heronarts.lx.LXModulatorComponent
addModulator, addModulator, addModulator, addModulator, addModulator, constructProfiler, getModulator, getModulators, moveModulator, removeModulator, startModulator
Methods inherited from class heronarts.lx.LXComponent
addArray, addChild, addInternalParameter, addLegacyInternalParameter, addLegacyParameter, addParameter, addParameter, addParameters, assertDisposed, contains, copyParameters, getCategory, getChild, getComponentDescription, getComponentName, getComponentName, getComponentName, getDescription, getId, getLabel, getLX, getOscAddress, getOscLabel, getOscPath, getParameter, getParameters, getParent, hasParameter, isValidOscParameter, loadParameters, loadPreset, removeParameter, removeParameter, removeParameter, removeParameter, savePreset, setDescription, setParent, toOscQuery, toOscQuery, toOscQuery, toString, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface heronarts.lx.effect.LXEffect.Container
addEffect, getEffect, getEffect, loadEffect
Methods inherited from interface heronarts.lx.midi.LXMidiListener
sysexReceived
Methods inherited from interface heronarts.lx.osc.LXOscComponent
getOscAddress
Methods inherited from interface heronarts.lx.LXPath
getCanonicalLabel, getCanonicalLabel, getCanonicalLabel, getCanonicalLabel, getCanonicalLabel, getCanonicalPath, getCanonicalPath, isDescendant
Methods inherited from interface heronarts.lx.LXPresetComponent
getPresetClass, postProcessPreset
-
Field Details
-
engine
-
-
Constructor Details
-
ScriptPattern
-
-
Method Details
-
onParameterChanged
Description copied from class:LXComponent
Subclasses are free to override this if desired. It will automatically fire for any listenable parameter that is registered with this component.- Specified by:
onParameterChanged
in interfaceLXParameterListener
- Overrides:
onParameterChanged
in classLXComponent
- Parameters:
p
- Parameter that has a value change
-
onModelChanged
Description copied from class:LXModelComponent
Subclasses should override to handle changes to which model they are addressing. This method will be invoked at the start of the next core loop invocation, after the buffer has been updated.- Overrides:
onModelChanged
in classLXModelComponent
- Parameters:
model
- New model
-
isHiddenControl
Description copied from class:LXDeviceComponent
Returns whether this parameter is visible in default remote control or device control UIs- Overrides:
isHiddenControl
in classLXPattern
- Parameters:
parameter
- Parameter to check- Returns:
- true if this should be hidden by default
-
run
public void run(double deltaMs) Description copied from class:LXPattern
Main pattern loop function. Invoked in a render loop. Subclasses must implement this function. -
load
Description copied from class:LXComponent
Loads the LX component. Restores the ID of the component, as well as its internal and user-facing parameters. Any explicitly registered children will be automatically loaded, so long as they are direct descendants. Dynamic arrays will not be automatically loaded, this is left to subclasses to implement.- Specified by:
load
in interfaceLXSerializable
- Overrides:
load
in classLXPattern
- Parameters:
lx
- LX instanceobj
- Object to deserialize
-
onActive
public void onActive()Description copied from class:LXPattern
Subclasses may override this method. It will be invoked when the pattern is about to become active. Patterns may take care of any initialization needed or reset parameters if desired. -
onInactive
public void onInactive()Description copied from class:LXPattern
Subclasses may override this method. It will be invoked when the pattern is no longer active. Resources may be freed if desired.- Overrides:
onInactive
in classLXPattern
-
noteOnReceived
- Specified by:
noteOnReceived
in interfaceLXMidiListener
-
noteOffReceived
- Specified by:
noteOffReceived
in interfaceLXMidiListener
-
controlChangeReceived
- Specified by:
controlChangeReceived
in interfaceLXMidiListener
-
programChangeReceived
- Specified by:
programChangeReceived
in interfaceLXMidiListener
-
pitchBendReceived
- Specified by:
pitchBendReceived
in interfaceLXMidiListener
-
aftertouchReceived
- Specified by:
aftertouchReceived
in interfaceLXMidiListener
-
midiPanicReceived
public void midiPanicReceived()- Specified by:
midiPanicReceived
in interfaceLXMidiListener
-
dispose
public void dispose()Description copied from class:LXComponent
Invoked when a component is being removed from the system and will no longer be used at all. This unregisters the component and should free up any resources and parameter listeners. Ideally after this method is called the object should be eligible for garbage collection. Subclasses are generally expected to override this method to handle their particular cleanup work. They should also generally callsuper.dispose()
at the appropriate time to perform the basic cleanup, which may need to happen either before or after cleaning up other objects.
-