---
title: "r33.2_change_log"
description: "API documentation for r33.2_change_log"
url: https://developer.disguise.one/python-api/api-changes/r33.2_change_log/
---

# r33.2 Change Log

Previous version: r33.1

Date: 05/28/2026, 13:29

## Added

### Classes

#### [OscSendTarget](../../docs/oscsendtarget#oscsendtarget)

```python
class OscSendTarget(_BlipValue):
    """
    Represents a single target (or route) to send OSC messages to
```

#### [LayerView\_PresentationModel](../../docs/layerview_presentationmodel#layerview_presentationmodel)

```python
class LayerView_PresentationModel(_BlipValue):
    """
    Category: Track and Sequencing
```

#### [FloatArrayOsc](../../docs/floatarrayosc#floatarrayosc)

```python
class FloatArrayOsc(SuperFloatArray):
    """
    Float array source driven by incoming OSC messages.
```

#### [SuperFloatArray](../../docs/superfloatarray#superfloatarray)

```python
class SuperFloatArray(Resource):
    """
    Base class for resources that provide a float array value, e.g. via OSC or audio input.
    
    Category: Utility
    """

    null: Self  # type: ignore
    _classInfo: 'ClassInfo'
    __username__ = 'FloatArray'

    def __init__(self) -> None:
        """
        Default constructor for SuperFloatArray
        """
        ...
```

#### [PTPGrandmaster](../../docs/ptpgrandmaster#ptpgrandmaster)

```python
class PTPGrandmaster(_BlipValue):
    """
    Information about a PTP (Precision Time Protocol) grandmaster detected on the network. Reported by the IP VFC card and exposed via Machine.vfcPTPGrandmasters.
```

#### [NmosNodeList](../../docs/nmosnodelist#nmosnodelist)

```python
class NmosNodeList(MultiLevelList):
    """
    A hierarchical list showing NMOS Nodes, the devices in each node, and the senders and receivers in each device
```

#### [FloatArrayAudioLine](../../docs/floatarrayaudioline#floatarrayaudioline)

```python
class FloatArrayAudioLine(SuperFloatArray):
    """
    Float array source that reads sample data from an audio line-in device.
```

#### [MultiLevelListItem](../../docs/multilevellistitem#multilevellistitem)

```python
class MultiLevelListItem(_BlipValue):
    """
    The visual class of the multilevel list displaying the items as widgets
```

#### [LayerView\_PresentationModel\_Layer](../../docs/layerview_presentationmodel_layer#layerview_presentationmodel_layer)

```python
class LayerView_PresentationModel_Layer(_BlipValue):
    """
    Category: Track and Sequencing
```

#### [MultiLevelList](../../docs/multilevellist#multilevellist)

```python
class MultiLevelList(Resource):
    """
    A hierarchical list where item's can have sub-items, and those have sub-items to four levels
```

### Class.properties

#### [CalibrationLutMapping.angleGainLut](../../docs/calibrationlutmapping#calibrationlutmapping)

```python
    @property
    def angleGainLut(self) -> DxTexture:
    @angleGainLut.setter
    def angleGainLut(self, value: DxTexture) -> None:
```

#### [ColourShift.gain](../../docs/colourshift#colourshift)

```python
    @property
    def gain(self) -> float:
    @gain.setter
    def gain(self, value: float) -> None:
```

#### [ColourShiftData.gain](../../docs/colourshiftdata#colourshiftdata)

```python
    @property
    def gain(self) -> float:
    @gain.setter
    def gain(self, g: float) -> None:
```

#### [D3State.fadeDurationSec](../../docs/d3state#d3state)

```python
    @property
    def fadeDurationSec(self) -> float:
    @fadeDurationSec.setter
    def fadeDurationSec(self, value: float) -> None:
```

#### [D3State.minimumGuiProxyLevel](../../docs/d3state#d3state)

```python
    @property
    def minimumGuiProxyLevel(self) -> int:
    @minimumGuiProxyLevel.setter
    def minimumGuiProxyLevel(self, value: int) -> None:
```

#### [Expression.isDisabled](../../docs/expression#expression)

```python
    @property
    def isDisabled(self) -> bool:
    @isDisabled.setter
    def isDisabled(self, value: bool) -> None:
```

#### [LutFile.interpolation](../../docs/lutfile#lutfile)

```python
    @property
    def interpolation(self) -> int:
    @interpolation.setter
    def interpolation(self, value: int) -> None:
```

#### [Mapping.logicalDevice](../../docs/mapping#mapping)

```python
    @property
    def logicalDevice(self) -> LogicalDevice:
    @logicalDevice.setter
    def logicalDevice(self, device: LogicalDevice) -> None:
```

#### [Mapping.audioDelay](../../docs/mapping#mapping)

```python
    @property
    def audioDelay(self) -> float:
    @audioDelay.setter
    def audioDelay(self, delay: float) -> None:
```

#### [Mapping.hardwareId](../../docs/mapping#mapping)

```python
    @property
    def hardwareId(self) -> str:
    @hardwareId.setter
    def hardwareId(self, hardwareId: str) -> None:
```

#### [MeshProjection.combineScreens](../../docs/meshprojection#meshprojection)

```python
    @property
    def combineScreens(self) -> int:
    @combineScreens.setter
    def combineScreens(self, value: int) -> None:
```

#### [MixedRealitySet.angleColourCorrectionTarget](../../docs/mixedrealityset#mixedrealityset)

```python
    @property
    def angleColourCorrectionTarget(self) -> int:
    @angleColourCorrectionTarget.setter
    def angleColourCorrectionTarget(self, value: int) -> None:
```

#### [Module.playHead](../../docs/module#module)

```python
    @property
    def playHead(self) -> PlayHead:
```

#### [Module.allowOnLayerStack](../../docs/module#module)

```python
    @property
    def allowOnLayerStack(self) -> bool:
```

#### [OscDevice.sendTargets](../../docs/oscdevice#oscdevice)

```python
    @property
    def sendTargets(self) -> List[OscSendTarget]:
    @sendTargets.setter
    def sendTargets(self, value: List[OscSendTarget]) -> None:
```

#### [SuperLayer.enabledIncludingParents](../../docs/superlayer#superlayer)

```python
    @property
    def enabledIncludingParents(self) -> bool:
```

#### [TrackPlayer.playHead](../../docs/trackplayer#trackplayer)

```python
    @property
    def playHead(self) -> TrackPlayHead:
```

#### [TrackPlayer.deltaTime](../../docs/trackplayer#trackplayer)

```python
    @property
    def deltaTime(self) -> float:
```

### Class.methods

#### [Expression.setDisabled](../../docs/expression#expression)

```python
    def setDisabled(self, disable: bool) -> None:
```

#### [FieldSequence.sockpuppetSuppressedByIsolate](../../docs/fieldsequence#fieldsequence)

```python
    def sockpuppetSuppressedByIsolate(self) -> bool:
```

#### [FloatSequence.evalSum](../../docs/floatsequence#floatsequence)

```python
    def evalSum(self, t0: float, t1: float) -> float:
```

#### [GuiSystem.requestCapture](../../docs/guisystem#guisystem)

```python
    def requestCapture(self, includeWidgets: bool, size: Int2) -> shared_future[Path]:
```

#### [IPVideoInSystem.removeIPVideoInByNMOSReceiverID](../../docs/ipvideoinsystem#ipvideoinsystem)

```python
    def removeIPVideoInByNMOSReceiverID(self, nmosReceiverId: str) -> None:
```

#### [IPVideoInSystem.createOrUpdateVideoInFromSDP](../../docs/ipvideoinsystem#ipvideoinsystem)

```python
    def createOrUpdateVideoInFromSDP(self, file: str, path: optional[str], overwrite: bool, updateNMOSConnectionAPI: bool, sender_id: optional[str], pers: PersistentIPVideoIn) -> str:
```

#### [IPVideoInSystem.createNMOSIPVideoIn](../../docs/ipvideoinsystem#ipvideoinsystem)

```python
    def createNMOSIPVideoIn(self, name: str) -> str:
```

#### [ImageCaptureProcess.syncFilesInDirectory](../../docs/imagecaptureprocess#imagecaptureprocess)

```python
    @staticmethod
    def syncFilesInDirectory(path: str) -> None:
```

#### [LocalState.nLayersMuted](../../docs/localstate#localstate)

```python
    def nLayersMuted(self) -> int:
```

#### [Machine.injectVFCEvent](../../docs/machine#machine)

```python
    def injectVFCEvent(self, iSlot: int, event: str) -> None:
```

#### [Machine.vfcPTPGrandmasters](../../docs/machine#machine)

```python
    def vfcPTPGrandmasters(self, iSlot: int) -> List[PTPGrandmaster]:
```

#### [Machine.vfcPTPGrandmasterCount](../../docs/machine#machine)

```python
    def vfcPTPGrandmasterCount(self, iSlot: int) -> int:
```

#### [MobileCam.toString](../../docs/mobilecam#mobilecam)

```python
    def toString(self) -> str:
```

#### [OptiCalStagePlan.setSimulated](../../docs/opticalstageplan#opticalstageplan)

```python
    def setSimulated(self, simulated: bool) -> None:
```

#### [OscDevice.addSendTarget](../../docs/oscdevice#oscdevice)

```python
    def addSendTarget(self, label: str, address: IPAddress, port: int, enabled: bool) -> None:
```

#### [OscDevice.removeSendTarget](../../docs/oscdevice#oscdevice)

```python
    def removeSendTarget(self, index: int) -> None:
```

#### [OscDevice.clearSendTargets](../../docs/oscdevice#oscdevice)

```python
    def clearSendTargets(self) -> None:
```

#### [PlayHead.writeLayerFromTimeline](../../docs/playhead#playhead)

```python
    def writeLayerFromTimeline(self, layer: Layer) -> None:
```

#### [Recorder.clearStaleStates](../../docs/recorder#recorder)

```python
    def clearStaleStates(self) -> None:
```

#### [RemoteParameter.isArray](../../docs/remoteparameter#remoteparameter)

```python
    def isArray(self) -> bool:
```

#### [RigidBodyTrackingSource.snapButtonDisabledReason](../../docs/rigidbodytrackingsource#rigidbodytrackingsource)

```python
    def snapButtonDisabledReason(self) -> str:
```

#### [SuperTrack.setAudioTrack](../../docs/supertrack#supertrack)

```python
    def setAudioTrack(self, track: AudioTrack) -> None:
```

#### [TrackPlayHead.track](../../docs/trackplayhead#trackplayhead)

```python
    def track(self, track: SuperTrack, resetMute: bool) -> None:
```

### Class.variables

#### [MeshProjection.CombineScreensAll](../../docs/meshprojection#meshprojection)

```python
    CombineScreensAll: Final[int] = 1  #: Index of the 'All' combine screens mode
```

#### [MeshProjection.CombineScreensNonOutput](../../docs/meshprojection#meshprojection)

```python
    CombineScreensNonOutput: Final[int] = 2  #: Index of the 'Non-Output' combine screens mode
```

#### [MeshProjection.CombineScreensAllActive](../../docs/meshprojection#meshprojection)

```python
    CombineScreensAllActive: Final[int] = 3  #: Index of the 'All Active' combine screens mode
```

#### [MeshProjection.CombineScreensNone](../../docs/meshprojection#meshprojection)

```python
    CombineScreensNone: Final[int] = 0  #: Index of the 'None' combine screens mode
```

### Functions

#### [originalMemberName](../../docs)

```python
def originalMemberName(name: str) -> str:
```

## Removed

### Class.constructors

#### RI.\_\_init\_\_

```python
    @overload
    def __init__(self, rp: Type1) -> None:
```

### Class.properties

#### OscDevice.sendIPAddress

```python
    @property
    def sendIPAddress(self) -> str:
    @sendIPAddress.setter
    def sendIPAddress(self, value: str) -> None:
```

#### OscDevice.sendPort

```python
    @property
    def sendPort(self) -> int:
    @sendPort.setter
    def sendPort(self, value: int) -> None:
```

## Modified

### Class.methods

#### [IPVideoInSystem.downloadSDP](../../docs/ipvideoinsystem#ipvideoinsystem)

```diff
-    def downloadSDP(self, url: str) -> bool:
+    def downloadSDP(self, url: str, path: optional[str]) -> bool:
```

### Class.properties

#### [TransportJumpCommand.variable.track](../../docs/transportjumpcommand#transportjumpcommand)

```diff
-    @property
-    def track(self) -> str:
-    @track.setter
-    def track(self, value: str) -> None:
+    @property
+    def track(self) -> Track:
+    @track.setter
+    def track(self, value: Track) -> None:
```

#### [TransportJumpCommand.getter.track](../../docs/transportjumpcommand#transportjumpcommand)

```diff
-    @property
-    def track(self) -> str:
+    @property
+    def track(self) -> Track:
```

#### [TransportJumpCommand.setter.track](../../docs/transportjumpcommand#transportjumpcommand)

```diff
-    @track.setter
-    def track(self, value: str) -> None:
+    @track.setter
+    def track(self, value: Track) -> None:
```

## Deprecated

### Class.methods

#### [FieldSequence.eval](../../docs/fieldsequence#fieldsequence)

```python
    @deprecated('FieldSequence.eval() will be restricted from plugins in a future Designer release. Please update your plugins to switch to FieldSequence.getSequencedValue().')
    def eval(self, t: float, ttl: int) -> float:
```
