<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.mxwendler.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hwendler</id>
	<title>MXWendler Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mxwendler.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hwendler"/>
	<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php/Special:Contributions/Hwendler"/>
	<updated>2026-05-13T17:05:30Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6083</id>
		<title>3. Python command reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6083"/>
		<updated>2024-06-12T08:27:33Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are listed the main commands that can be used for scripting with Python.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
Here are listed all the commands that MXW recognizes.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Reference===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PYTHON COMMAND/SYMBOL !! DESCRIPTION !! EXAMPLE&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Software Info&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.millis&amp;lt;/code&amp;gt;|| returns the amount of milliseconds passed since opening the software|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;current passed time is&amp;quot; + str(mxw.millis) );&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.width&amp;lt;/code&amp;gt;||returns the current frame width in px|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;frame width is&amp;quot; + str(mxw.width) );&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.height&amp;lt;/code&amp;gt;||returns the current frame height in px|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;frame height is&amp;quot; + str(mxw.height));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outwidth&amp;lt;/code&amp;gt;||returns current output width|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;output height is&amp;quot; + str(mxw.outwidth));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outheight&amp;lt;/code&amp;gt;||returns the current output height|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;output width is&amp;quot; + str(mxw.outheight));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.framecounter&amp;lt;/code&amp;gt;||returns the amount of frames rendered since opening the software|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;total number of frames rendered is&amp;quot; + str(mxw.framecounter));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.print_console(&amp;quot;text&amp;quot; + mxw.widget(&amp;quot;/mxw/path&amp;quot;).getStringValue())&amp;lt;/code&amp;gt; || prints the name of the desired playlist cue || &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;The clip name in the second cue is&amp;quot; + mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).getStringValue());&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.print_statusline(&amp;quot;text&amp;quot;)&amp;lt;/code&amp;gt; || print text on the status line|| &amp;lt;code&amp;gt;print text on status line()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | I/O&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.dmx()&amp;lt;/code&amp;gt; ||returns the DMX value received from the specified universe and channel|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;DMX value in u. 1, ch. 4 is&amp;quot; + mxw.dmx(1,4));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.midi()&amp;lt;/code&amp;gt;||returns the MIDI value received from the specified device and channel|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;MIDI value in dev. 1, ch. 6 is&amp;quot; + mxw.midi(1,6));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.keyboard(&amp;quot;ASCII_code&amp;quot;)&amp;lt;/code&amp;gt; || returns if the specified key is pressed or not || &amp;lt;code&amp;gt;mxw.keyboard(65)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and turns it on || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and turns it off|| &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and mutes audio and video || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and unmutes audio and video || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and mutes video || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and unmutes video || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt; || control if a NDI Camera supports PTZ || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom of a NDI PTZ Camera, values from 0(zoomed in) to 1(zoomed out) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, value_pan, value_tilt)&amp;lt;/code&amp;gt; || control the pan and tilting of a NDI PTZ Camera (values from -1 to 1) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, -0.5, 0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom_speed&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom speed a NDI PTZ Camera, values from -1(zoom outwards) to 1 (zoom inwards) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, pan_speed, tilt_speed)&amp;lt;/code&amp;gt; || control the pan and tilt speed a NDI PTZ Camera, values -1 (move right/down) to 1 (move left/up) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, -0.3, 0.8)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, preset_number)&amp;lt;/code&amp;gt; || store current position, focus, zoom, values 0 to 99 || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, 75)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;,preset_number, speed)&amp;lt;/code&amp;gt; || recalls a previously stored preset,values 0 to 99 and changes to it at a specific speed (values 0 to 1) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;, 4, 0.5 )&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_auto_focus&amp;quot;)&amp;lt;/code&amp;gt; || activates or deactivates the camera in auto-focus || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz.autofocus&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, focus_value)&amp;lt;/code&amp;gt; || focus to absolute value (0= focused to infinity, 1= focus the closest possible)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, speed_value)&amp;lt;/code&amp;gt; || focus at a particular speed, values from -1(outwards), to  1 (inwards)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, -0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto white-balance mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in indoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in outdoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt; ||use the current brightness to automatically set the current white balance|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, red value, blue value)&amp;lt;/code&amp;gt; || Set the manual camera white balance using the R, B values, (0.0 = not red/not blue , 1.0 = very red/very blue)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, 0.1, 0.7)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto-exposure mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, exposure_level)&amp;lt;/code&amp;gt; || manually set the camera exposure iris, values from 0.0(dark) to 1.0(light)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, 0.4)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, iris_level, gain_level, shutter_speed)&amp;lt;/code&amp;gt; || Manually set the camera exposure parameters, values iris from 0.0(dark) to 1.0(light), values gain from 0.0(dark) to 1.0(light), values shutter_speed from 0.0(slow) to 1.0(fast) || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, 0.4, 0.2, 0.5) &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Playlist Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt; || preload used media || &amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt; || pause the playlists or restart if already paused|| &amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt; || play the playlist || &amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_pause()( true/false )&amp;lt;/code&amp;gt; || pause the playlist (when true), unpause the playlist (when false) || &amp;lt;code&amp;gt;mxw.playlist.go_pause()(true)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt; || skip to the next cue || &amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt; || go to the next cue without playing || &amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt; || go to previous cue || &amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt; || go to the first cue || &amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.get_active_cue()&amp;lt;/code&amp;gt; || return active cue index|| &amp;lt;code&amp;gt;index = mxw.playlist.get_active_cue()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_index(index_value)&amp;lt;/code&amp;gt; || go to the specified cue index|| &amp;lt;code&amp;gt;mxw.playlist.navigate_index(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;index_string&amp;quot;)&amp;lt;/code&amp;gt; || go to the specified cue string|| &amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;BG_video2&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Preload Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).clear()&amp;lt;/code&amp;gt; || clears the selected preload || &amp;lt;code&amp;gt;mxw.preload(2).clear()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_media(&amp;quot;media_name&amp;quot;)&amp;lt;/code&amp;gt; || set a media in the preload with a filename string || &amp;lt;code&amp;gt;mxw.preload(2).set_media(&amp;quot;try.mp4&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_name(&amp;quot;new_media_name&amp;quot;)&amp;lt;/code&amp;gt; || renames a preload || &amp;lt;code&amp;gt;mxw.preload(2).set_name(&amp;quot;new_background&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).add_preload()&amp;lt;/code&amp;gt; || load a preload in the layers || &amp;lt;code&amp;gt;mxw.preload(2).add_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).trigger_preload()&amp;lt;/code&amp;gt; || trigger a layer from the preload || &amp;lt;code&amp;gt;mxw.preload(2).trigger_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_activated()&amp;lt;/code&amp;gt; || requests if the preload is editable || &amp;lt;code&amp;gt;mxw.preload(2).get_activated()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_activated(true/false)&amp;lt;/code&amp;gt; || opens the preload for edit and viceversa || &amp;lt;code&amp;gt;mxw.preload(2).set_activated(false)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_layer_position()&amp;lt;/code&amp;gt; || returns the layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(2).get_layer_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_track_position()&amp;lt;/code&amp;gt; || returns the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(2).get_track_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_layer_position(layer_pos)&amp;lt;/code&amp;gt; || set layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(2).set_layer_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_track_position(track_pos)&amp;lt;/code&amp;gt; || set the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(2).set_track_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;directory_saving_path&amp;quot;, initial_x, initial_y, size_x, size_y)&amp;lt;/code&amp;gt; || saves a cropped screenshot in the set path|| &amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;c:/Users/MXWendler/Desktop/b.png&amp;quot;, 0,1, 400, 200)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/path&amp;quot;).setStringValue(&amp;quot;named by script&amp;quot;)&amp;lt;/code&amp;gt; || set the name of a cue in the playlist|| &amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).setStringValue(&amp;quot;background videoclip&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6082</id>
		<title>Linux and No Dongle Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6082"/>
		<updated>2024-06-01T11:47:42Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You start with a USB dongle attached but the log states there is no dongle found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Actually a dongle is found, but it is not usable because of insufficient udev permissions. Dongle values can be read, but no commands like e.g. &#039;Respond with dongle serial&#039; can be sent (written) to the dongles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For a first test, you can start MXWendler as root. If the dongle is usable now, it is a udev permission issue. Now enable the correct permissions for all users the USB dongle. Enable full access to the dongles with the following command sequence issued in a terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo touch /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&lt;br /&gt;
$ sudo vim /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;,ATTRS{idVendor}==&amp;quot;096e&amp;quot;,MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit vim with &amp;lt;esc&amp;gt;,:,w,q,&amp;lt;enter&amp;gt;. Then restart udev service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo /etc/init.d/udev restart&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and re-plug the dongle. This udev rule enables read/write permissions for all users when a Feitian dongle (Vendor id is 096e) is plugged into the system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remark&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;write&#039; - permissions added here allow sending device commands to the dongle. The values stored inside the dongle are never changed.&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6081</id>
		<title>Linux and No Dongle Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6081"/>
		<updated>2024-06-01T11:46:47Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You start with a USB dongle attached but the log states there is no dongle found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Actually a dongle is found, but it is not usable because of insufficient udev permissions. Dongle values can be read, but no commands like e.g. &#039;Respond with dongle serial&#039; can be sent (written) to the dongles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For a first test, you can start MXWendler as root. If the dongle is usable now, it is a udev permission issue. Now enable the correct permissions for all users the USB dongle. Enable full access to the dongles with the following command sequence issued in a terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo touch /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&lt;br /&gt;
$ sudo vim /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;,ATTRS{idVendor}==&amp;quot;096e&amp;quot;,MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit vim with &amp;lt;esc&amp;gt;,:,w,q,&amp;lt;enter&amp;gt;. Then restart udev service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo /etc/init.d/udev restart&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and re-plug the dongle. This udev rule enables read/write permissions for all users when a Feitian dongle (Vendor id is 096e) is plugged into the system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remark&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;write&#039; - permissions here are about sending commands to the dongle. The values stored inside the dongle are never changed.&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6080</id>
		<title>Linux and No Dongle Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6080"/>
		<updated>2024-06-01T11:45:05Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You start with a USB dongle attached but the log states there is no dongle found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Actually a dongle is found, but it is not usable because of insufficient udev permissions. Dongle values can be read, but no commands like e.g. &#039;Respond with dongle serial&#039; can be sent (written) to the dongles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For a first test, you can start MXWendler as root. If the dongle is usable now, it is a udev permission issue. Now enable the correct permissions for all users the USB dongle. Enable full access to the dongles with the following command sequence issued in a terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo touch /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&lt;br /&gt;
$ sudo vim /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;,ATTRS{idVendor}==&amp;quot;096e&amp;quot;,MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit vim with &amp;lt;esc&amp;gt;,:,w,q,&amp;lt;enter&amp;gt;. Then restart udev service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo /etc/init.d/udev restart&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and re-plug the dongle. This udev rule enables read/write permissions for all users when a Feitian dongle (Vendor id is 096e) is plugged into the system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remark&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The dongle values are never changed, this is only possible for the dongle issuer.&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6079</id>
		<title>Linux and No Dongle Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6079"/>
		<updated>2024-05-31T23:38:16Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You start with a USB dongle attached but the log states there is no dongle found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Actually a dongle is found, but it is not usable because of insufficient udev permissions. Dongle values can be read, but no commands like e.g. &#039;Respond with dongle serial&#039; can be sent (written) to the dongles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For a first test, you can start MXWendler as root. If the dongle is usable now, it is a udev permission issue. Now enable the correct permissions for all users the USB dongle. Enable full access to the dongles with the following command sequence issued in a terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo touch /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&lt;br /&gt;
$ sudo vim /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;,ATTRS{idVendor}==&amp;quot;096e&amp;quot;,MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit vim with &amp;lt;esc&amp;gt;,:,w,q,&amp;lt;enter&amp;gt;. Then restart udev service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo /etc/init.d/udev restart&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and re-plug the dongle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remark&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The dongle values are never changed, this is only possible for the dongle issuer.&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6078</id>
		<title>Linux and No Dongle Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6078"/>
		<updated>2024-05-31T14:34:41Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You start with a USB dongle attached but the log states there is no dongle found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Actually a dongle is found, but it cannot be read because of a udev permission issue. The dongle can be read, but no commands like &#039;Give the dongle serial&#039; can be sent to the dongles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For a first test, you can start MXWendler as root. If the dongle is correctly used, then it is a permission issue. Enable the correct permissions for all users the USB dongle. Enable full access to the dongles with the following command sequence issued in a terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo touch /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&lt;br /&gt;
$ sudo vim /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;,ATTRS{idVendor}==&amp;quot;096e&amp;quot;,MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then restart udev service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo /etc/init.d/udev restart&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and re-plug the dongle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remark&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The dongle values are never changed, this is only possible for the dongle issuer.&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6077</id>
		<title>Linux and No Dongle Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6077"/>
		<updated>2024-05-31T14:34:29Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You start with a USB dongle attached but the log states there is no dongle found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Actually a dongle is found, but it cannot be read because of a udev permission issue. The dongle can be read, but no commands like &#039;Give the dongle serial&#039; can be sent to the dongles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For a first test, you can start MXWendler as root. If the dongle is correctly used, then it is a permission issue. Enable the correct permissions for all users the USB dongle. Enable full access to the dongles with the following command sequence issued in a terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo touch /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&lt;br /&gt;
$ sudo vim /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;,ATTRS{idVendor}==&amp;quot;096e&amp;quot;,MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then restart udev service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo /etc/init.d/udev restart&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and re-plug the dongle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remark&#039;&#039;&#039;&lt;br /&gt;
The dongle values are never changed, this is only possible for the dongle issuer.&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6076</id>
		<title>Linux and No Dongle Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6076"/>
		<updated>2024-05-31T14:33:21Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You start with a USB dongle attached but the log states there is no dongle found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Actually a dongle is found, but it cannot be read because of a udev permission issue. The dongle can be read, but no commands like &#039;Give the dongle serial&#039; can be sent to the dongles. The dongle values are never changed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For a first test, you can start MXWendler as root. If the dongle is correctly used, then it is a permission issue. Enable the correct permissions for all users the USB dongle. Enable full access to the dongles with the following command sequence issued in a terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo touch /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&lt;br /&gt;
$ sudo vim /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;,ATTRS{idVendor}==&amp;quot;096e&amp;quot;,MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then restart udev service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo /etc/init.d/udev restart&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and re-plug the dongle.&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6075</id>
		<title>Linux and No Dongle Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6075"/>
		<updated>2024-05-31T14:32:01Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You start with a USB dongle attached but the log states there is no dongle found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Actually a dongle is found, but it cannot be read because of a udev permission issue. The dongle can be read, but no commands like &#039;Give me the dongle serial&#039; can be sent to the dongles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For a first test, you can start MXWendler as root. If the dongle is found, then it is a permission issue. Enable the correct permissions for all users the USB dongle. Enable full access to the dongles with the following command sequence issued in a terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo touch /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&lt;br /&gt;
$ sudo vim /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;,ATTRS{idVendor}==&amp;quot;096e&amp;quot;,MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then restart udev service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo /etc/init.d/udev restart&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and re-plug the dongle.&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6074</id>
		<title>Linux and No Dongle Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6074"/>
		<updated>2024-05-31T14:29:16Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You start with a USB dongle attached but the log states there is no dongle found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Actually a dongle is found, but it cannot be read because of a udev permission issue &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable the correct permissions for the USB dongle. Enable full access to the dongles with the following command sequence issued in a terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo touch /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&lt;br /&gt;
$ sudo vim /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;,ATTRS{idVendor}==&amp;quot;096e&amp;quot;,MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then restart udev service&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo /etc/init.d/udev restart&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and re-plug the dongle.&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6073</id>
		<title>Linux and No Dongle Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6073"/>
		<updated>2024-05-31T14:19:54Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You start with a USB dongle attached but the log states there is no dongle found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Actually a dongle is found, but it cannot be read because of a udev permission issue &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable the correct permissions for the USB dongle with the following command sequence issued in a shell&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo touch /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&lt;br /&gt;
$ sudo echo &amp;quot;SUBSYSTEM==\&amp;quot;usb\&amp;quot;,ATTRS{idVendor}==\&amp;quot;096e\&amp;quot;,MODE=\&amp;quot;0666\&amp;quot;&amp;quot;&amp;gt;/etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&lt;br /&gt;
$ sudo /etc/init.d/udev restart&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6072</id>
		<title>Linux and No Dongle Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6072"/>
		<updated>2024-05-31T14:18:29Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You start with a USB dongle attached but the log states there is no dongle found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Actually a dongle is found, but it cannot be read because of a udev permission issue &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable the correct permissions for the USB dongle with the following command sequence issued in a shell&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo touch /etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&lt;br /&gt;
$ sudo echo &amp;quot;SUBSYSTEM==\&amp;quot;usb\&amp;quot;,ATTRS{idVendor}==\&amp;quot;096e\&amp;quot;,MODE=\&amp;quot;0666\&amp;quot;&amp;quot;&amp;gt;/etc/udev/rules.d//etc/udev/rules.d/999-ft-mxw.rules&lt;br /&gt;
&lt;br /&gt;
$ sudo /etc/init.d/udev restart&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6071</id>
		<title>Linux and No Dongle Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6071"/>
		<updated>2024-05-31T14:13:05Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You start with a USB dongle attached but the log states there is no dongle found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Actually a dongle is found, but it cannot be read because of a udev permission issue &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable the correct permissions for the USB dongle with the following command sequence issued in a shell&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo touch /etc/udev/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6070</id>
		<title>Linux and No Dongle Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Linux_and_No_Dongle_Detection&amp;diff=6070"/>
		<updated>2024-05-31T14:10:32Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Created page with &amp;quot;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions  &amp;#039;&amp;#039;&amp;#039;Problem&amp;#039;&amp;#039;&amp;#039;  You start with a USB dongle attached but the log states there is no dongle found.  &amp;#039;&amp;#039;&amp;#039;Background&amp;#039;&amp;#039;&amp;#039;  Actually a dongle is found, but it cannot be read because of a udev permission issue   &amp;#039;&amp;#039;&amp;#039;Solution&amp;#039;&amp;#039;&amp;#039;  Enable the correct permissions for the USB dongle with the following command sequence issued in a shell&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This applies to Ubuntu and Ubuntu-based Linux versions and all MXWendler versions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You start with a USB dongle attached but the log states there is no dongle found.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Background&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Actually a dongle is found, but it cannot be read because of a udev permission issue &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable the correct permissions for the USB dongle with the following command sequence issued in a shell&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Trouble_Shooting&amp;diff=6069</id>
		<title>Trouble Shooting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Trouble_Shooting&amp;diff=6069"/>
		<updated>2024-05-31T14:03:51Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Sometimes a driver update or a new hardware or a new operating system screws things up badly. We have collected a lot of knowledge from our test farm and our users over the years to help you across the most common pitfalls.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All OS&#039;&#039;&#039;&lt;br /&gt;
*[[Performance Problems]]&lt;br /&gt;
*[[Smooth Playback/ Frame Drops and Audio Drivers]]&lt;br /&gt;
*[[Keystone: not Opening ./skin/keystone/Video.png: file does not exist]]&lt;br /&gt;
*[[Licenser: Wrong Key Format]]&lt;br /&gt;
*[[Playlist: Crossfading Between Bright Media Becomes Temporarily Dark]]&lt;br /&gt;
*[[Capture Cards (e.g. BM Decklink Studio2)]]&lt;br /&gt;
*[[Memory Allocation Error]]&lt;br /&gt;
*[[Time and Event Sync all PCs]]&lt;br /&gt;
*[[MXW does not start any more]]&lt;br /&gt;
*[[Projector Calculator]]&lt;br /&gt;
*[[Artnet connection issues: Firewall]]&lt;br /&gt;
*[[DMX CITP and Image Sequences]]&lt;br /&gt;
*[[MAudio UC-33 to MXWendler controller programming]]&lt;br /&gt;
*[[OSC Messages - Correct Text and Value Example]]&lt;br /&gt;
*[[User Interface - outside of the main display]]&lt;br /&gt;
*[[PJLink commands for DZ21]]&lt;br /&gt;
*[[SDI Inputs - YUV Format and Wrong Color Output]]&lt;br /&gt;
*[[Vision SDI - Internal Loop/Input]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows&#039;&#039;&#039;&lt;br /&gt;
*[[Windows 11 + No Audio Device]]&lt;br /&gt;
*[[Windows 10 + Optimizing Font]]&lt;br /&gt;
*[[Windows 10 + Focusrite 18i20 Audio Issues]]&lt;br /&gt;
*[[Windows 10 + Corrupted Live Video]]&lt;br /&gt;
*[[Windows 10 + VCRUNTTIME140.dll missing]]&lt;br /&gt;
*[[Windows 10 + AJA Kona 5]]&lt;br /&gt;
*[[Windows 10 + Asus Motherboards - Multimonitoring Issues]]&lt;br /&gt;
*[[Windows 10 x64 + Stage Designer/FXServer does not start]]&lt;br /&gt;
*[[Windows 10 + Nvidia and Intel Cards]]&lt;br /&gt;
*[[Windows + Blackmagic Decklink Capture Cards]]&lt;br /&gt;
*[[Windows + How to Deactivate Aero Peek to Prevent Unwanted Output Blackouts]]&lt;br /&gt;
*[[Windows + Unexpected Output Window Size]]&lt;br /&gt;
*[[Windows + No Output in Output Window]]&lt;br /&gt;
*[[Windows 7 + AMD + Stuttering Output]]&lt;br /&gt;
*[[Windows 7 + AMD + Output Window On Wrong Screen]]&lt;br /&gt;
*[[Windows 7 + Artnet]]&lt;br /&gt;
*[[Windows 7 + No Audio]]&lt;br /&gt;
*[[Windows 7 + Configuration (config.xml)]]&lt;br /&gt;
*[[Windows 7 + Richtexteditor Glitches and ClearType]]&lt;br /&gt;
*[[Windows 7 + NDI Tools]]&lt;br /&gt;
*[[Windows XP + No output on second screen|Windows XP + NVidia No output on second screen]]&lt;br /&gt;
*[[Re-Converting Video files using AVANTI GUI (Freeware)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linux&#039;&#039;&#039;&lt;br /&gt;
*[[Linux and No Dongle Detection]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mac OSX&#039;&#039;&#039;&lt;br /&gt;
*[[Mac and No Default Clip]]&lt;br /&gt;
*[[Mac and No Translation]]&lt;br /&gt;
*[[Mac and No Shaders Update]]&lt;br /&gt;
*[[Mac Sierra 10.12 Disable App Translocation]]&lt;br /&gt;
*[[Macbook Pro Core 2 Duo with NVidia 9400M]]&lt;br /&gt;
*[[Mac and Graphic Card Performance]]&lt;br /&gt;
*[[Mac Yosemite 10.10 Multimonitor]]&lt;br /&gt;
*[[Mac and Internal Cached Video]]&lt;br /&gt;
*[[Mac and Audio]]&lt;br /&gt;
*[[Mac and Soundflower 64ch Audio]]&lt;br /&gt;
*[[Mac and DMX]]&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Tutorial_Eventmaster_Toolset_Controlling_MXWendler_by_e.g._e2_S3_Image_Processor&amp;diff=6061</id>
		<title>Tutorial Eventmaster Toolset Controlling MXWendler by e.g. e2 S3 Image Processor</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Tutorial_Eventmaster_Toolset_Controlling_MXWendler_by_e.g._e2_S3_Image_Processor&amp;diff=6061"/>
		<updated>2024-02-12T09:25:37Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial applies to all different OS and MXWendler versions &amp;gt; 6.0.04&lt;br /&gt;
&lt;br /&gt;
== Introduction==&lt;br /&gt;
This tutorial explains how to set up a Barco Eventmaster to trigger and control media playback on StageDesigner or FXServer.&lt;br /&gt;
&lt;br /&gt;
==Control Setup==&lt;br /&gt;
&lt;br /&gt;
1. Open SD (StageDesigner) and load a clip into preload 1:&lt;br /&gt;
&lt;br /&gt;
[[File:e2_01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
2. Open Settings-&amp;gt;IO-&amp;gt;Barco e2 and activate TCP listening. Also note down the port number.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
3. In the Barco Eventmaster Toolset, create an &#039;External Device&#039;, name it e.g. &#039;StageDesigner&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_03.png|600px]]&lt;br /&gt;
&lt;br /&gt;
4. In the &#039;Adjust: StageDesigner&#039; tab, set IP address and port number.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_04.png|600px]]&lt;br /&gt;
&lt;br /&gt;
5. In the &#039;Adjust: StageDesigner&#039; tab, add a new command. Store the command content, e.g.&lt;br /&gt;
* /mxw/preload/1 play to start a clip&lt;br /&gt;
* /mxw/preload/1 play to stop a clip&lt;br /&gt;
&lt;br /&gt;
More possible commands are in the OSC control section: [[3._MXW_OSC_command_reference]]&lt;br /&gt;
&lt;br /&gt;
[[File:e2_05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
6. In the &#039;Cue&#039; section, add a cue.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_06.png|600px]]&lt;br /&gt;
&lt;br /&gt;
7. In this &#039;Cue&#039;, add actions.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_07.png|600px]]&lt;br /&gt;
&lt;br /&gt;
8. From &#039;External Devices&#039; drop an available command onto the &#039;Commands&#039; field of the action.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_08c.png|600px]]&lt;br /&gt;
&lt;br /&gt;
9. Play this cue, a clip should be started in the StageDesigner&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Tutorial_Eventmaster_Toolset_Controlling_MXWendler_by_e.g._e2_S3_Image_Processor&amp;diff=6060</id>
		<title>Tutorial Eventmaster Toolset Controlling MXWendler by e.g. e2 S3 Image Processor</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Tutorial_Eventmaster_Toolset_Controlling_MXWendler_by_e.g._e2_S3_Image_Processor&amp;diff=6060"/>
		<updated>2024-02-10T14:14:21Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* Control Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial applies to all different OS and MXWendler versions &amp;gt; 6.0.4&lt;br /&gt;
&lt;br /&gt;
== Introduction==&lt;br /&gt;
This tutorial explains how to set up a Barco Eventmaster to trigger and control media playback on StageDesigner or FXServer.&lt;br /&gt;
&lt;br /&gt;
==Control Setup==&lt;br /&gt;
&lt;br /&gt;
1. Open SD (StageDesigner) and load a clip into preload 1:&lt;br /&gt;
&lt;br /&gt;
[[File:e2_01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
2. Open Settings-&amp;gt;IO-&amp;gt;Barco e2 and activate TCP listening. Also note down the port number.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
3. In the Barco Eventmaster Toolset, create an &#039;External Device&#039;, name it e.g. &#039;StageDesigner&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_03.png|600px]]&lt;br /&gt;
&lt;br /&gt;
4. In the &#039;Adjust: StageDesigner&#039; tab, set IP address and port number.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_04.png|600px]]&lt;br /&gt;
&lt;br /&gt;
5. In the &#039;Adjust: StageDesigner&#039; tab, add a new command. Store the command content, e.g.&lt;br /&gt;
* /mxw/preload/1 play to start a clip&lt;br /&gt;
* /mxw/preload/1 play to stop a clip&lt;br /&gt;
&lt;br /&gt;
More possible commands are in the OSC control section: [[3._MXW_OSC_command_reference]]&lt;br /&gt;
&lt;br /&gt;
[[File:e2_05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
6. In the &#039;Cue&#039; section, add a cue.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_06.png|600px]]&lt;br /&gt;
&lt;br /&gt;
7. In this &#039;Cue&#039;, add actions.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_07.png|600px]]&lt;br /&gt;
&lt;br /&gt;
8. From &#039;External Devices&#039; drop an available command onto the &#039;Commands&#039; field of the action.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_08c.png|600px]]&lt;br /&gt;
&lt;br /&gt;
9. Play this cue, a clip should be started in the StageDesigner&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Tutorial_Eventmaster_Toolset_Controlling_MXWendler_by_e.g._e2_S3_Image_Processor&amp;diff=6059</id>
		<title>Tutorial Eventmaster Toolset Controlling MXWendler by e.g. e2 S3 Image Processor</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Tutorial_Eventmaster_Toolset_Controlling_MXWendler_by_e.g._e2_S3_Image_Processor&amp;diff=6059"/>
		<updated>2024-02-09T15:16:34Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* Wizard Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial applies to all different OS and MXWendler versions &amp;gt; 6.0.4&lt;br /&gt;
&lt;br /&gt;
== Introduction==&lt;br /&gt;
This tutorial explains how to set up a Barco Eventmaster to trigger and control media playback on StageDesigner or FXServer.&lt;br /&gt;
&lt;br /&gt;
==Control Setup==&lt;br /&gt;
&lt;br /&gt;
1. Open SD (StageDesigner) and load a clip into preload 1:&lt;br /&gt;
&lt;br /&gt;
[[File:e2_01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
2. Open Settings-&amp;gt;IO-&amp;gt;Barco e2 and activate TCP listening. Also note down the port number.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
3. In the Barco Eventmaster Toolset, create an &#039;External Device&#039;, name it e.g. &#039;StageDesigner&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_03.png|600px]]&lt;br /&gt;
&lt;br /&gt;
4. In the &#039;Adjust: StageDesigner&#039; tab, set IP address and port number.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_04.png|600px]]&lt;br /&gt;
&lt;br /&gt;
5. In the &#039;Adjust: StageDesigner&#039; tab, add a new command. Store the command content, e.g.&lt;br /&gt;
* /mxw/preload/1 play to start a clip&lt;br /&gt;
* /mxw/preload/1 play to stop a clip&lt;br /&gt;
&lt;br /&gt;
More possible commands are in the OSC control section: [[3._MXW_OSC_command_reference]]&lt;br /&gt;
&lt;br /&gt;
[[File:e2_05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
6. In the &#039;Cue&#039; section, add a cue.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_06.png|600px]]&lt;br /&gt;
&lt;br /&gt;
7. In this &#039;Cue&#039;, add actions.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_07.png|600px]]&lt;br /&gt;
&lt;br /&gt;
8. From &#039;External Devices&#039; drop an available command onto the &#039;Commands&#039; field of the action.&lt;br /&gt;
&lt;br /&gt;
[[File:e2_08c.png|600px]]&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Tutorial_Eventmaster_Toolset_Controlling_MXWendler_by_e.g._e2_S3_Image_Processor&amp;diff=6058</id>
		<title>Tutorial Eventmaster Toolset Controlling MXWendler by e.g. e2 S3 Image Processor</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Tutorial_Eventmaster_Toolset_Controlling_MXWendler_by_e.g._e2_S3_Image_Processor&amp;diff=6058"/>
		<updated>2024-02-09T15:11:32Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* Wizard Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial applies to all different OS and MXWendler versions &amp;gt; 6.0.4&lt;br /&gt;
&lt;br /&gt;
== Introduction==&lt;br /&gt;
This tutorial explains how to set up a Barco Eventmaster to trigger and control media playback on StageDesigner or FXServer.&lt;br /&gt;
&lt;br /&gt;
==Wizard Setup==&lt;br /&gt;
&lt;br /&gt;
1. Open SD (StageDesigner) and load a clip into preload 1:&lt;br /&gt;
&lt;br /&gt;
[[File:e2_01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
2. Open Settings-&amp;gt;IO-&amp;gt;Barco e2 and activate TCP listening. Also either change or not the port number&lt;br /&gt;
&lt;br /&gt;
[[File:e2_02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
3. In the Barco Eventmaster Toolset, create an &#039;External Device&#039;, name it e.g. &#039;StageDesigner&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:e2_03.png|600px]]&lt;br /&gt;
&lt;br /&gt;
4. In the &#039;Adjust: StageDesigner&#039; tab, set IP address and port number&lt;br /&gt;
&lt;br /&gt;
[[File:e2_04.png|600px]]&lt;br /&gt;
&lt;br /&gt;
5. In the &#039;Adjust: StageDesigner&#039; tab, add a new command. Store the command content, e.g.&lt;br /&gt;
* /mxw/preload/1 play to start a clip&lt;br /&gt;
* /mxw/preload/1 play to stop a clip&lt;br /&gt;
&lt;br /&gt;
More possible commands are in the OSC control section: [[3._MXW_OSC_command_reference]]&lt;br /&gt;
&lt;br /&gt;
[[File:e2_05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
6. In the &#039;Cue&#039; section, add a cue&lt;br /&gt;
&lt;br /&gt;
[[File:e2_06.png|600px]]&lt;br /&gt;
&lt;br /&gt;
7. In this &#039;Cue&#039;, add actions&lt;br /&gt;
&lt;br /&gt;
[[File:e2_07.png|600px]]&lt;br /&gt;
&lt;br /&gt;
8. From &#039;External Devices&#039; drop an available command onto the &#039;Commands&#039; field of the action&lt;br /&gt;
&lt;br /&gt;
[[File:e2_08c.png|600px]]&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Tutorial_Eventmaster_Toolset_Controlling_MXWendler_by_e.g._e2_S3_Image_Processor&amp;diff=6057</id>
		<title>Tutorial Eventmaster Toolset Controlling MXWendler by e.g. e2 S3 Image Processor</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Tutorial_Eventmaster_Toolset_Controlling_MXWendler_by_e.g._e2_S3_Image_Processor&amp;diff=6057"/>
		<updated>2024-02-09T15:10:33Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* Wizard Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial applies to all different OS and MXWendler versions &amp;gt; 6.0.4&lt;br /&gt;
&lt;br /&gt;
== Introduction==&lt;br /&gt;
This tutorial explains how to set up a Barco Eventmaster to trigger and control media playback on StageDesigner or FXServer.&lt;br /&gt;
&lt;br /&gt;
==Wizard Setup==&lt;br /&gt;
&lt;br /&gt;
1. Open SD (StageDesigner) and load a clip into preload 1:&lt;br /&gt;
&lt;br /&gt;
[[File:e2_01.png|600px]]&lt;br /&gt;
&lt;br /&gt;
2. Open Settings-&amp;gt;IO-&amp;gt;Barco e2 and activate TCP listening. Also either change or not the port number&lt;br /&gt;
&lt;br /&gt;
[[File:e2_02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
3. In the Barco Eventmaster Toolset, create an &#039;External Device&#039;, name it e.g. &#039;StageDesigner&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:e2_03.png|600px]]&lt;br /&gt;
&lt;br /&gt;
4. In the &#039;Adjust: StageDesigner&#039; tab, set IP address and port number&lt;br /&gt;
&lt;br /&gt;
[[File:e2_04.png|600px]]&lt;br /&gt;
&lt;br /&gt;
5. In the &#039;Adjust: StageDesigner&#039; tab, add a new command. Store the command content, e.g.&lt;br /&gt;
* /mxw/preload/1 play to start a clip&lt;br /&gt;
* /mxw/preload/1 play to stop a clip&lt;br /&gt;
&lt;br /&gt;
More possible commands are in the OSC control section: [[OSC Reference]]&lt;br /&gt;
&lt;br /&gt;
[[File:e2_05.png|600px]]&lt;br /&gt;
&lt;br /&gt;
6. In the &#039;Cue&#039; section, add a cue&lt;br /&gt;
&lt;br /&gt;
[[File:e2_06.png|600px]]&lt;br /&gt;
&lt;br /&gt;
7. In this &#039;Cue&#039;, add actions&lt;br /&gt;
&lt;br /&gt;
[[File:e2_07.png|600px]]&lt;br /&gt;
&lt;br /&gt;
8. From &#039;External Devices&#039; drop an available command onto the &#039;Commands&#039; field of the action&lt;br /&gt;
&lt;br /&gt;
[[File:e2_08c.png|600px]]&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Tutorial_Eventmaster_Toolset_Controlling_MXWendler_by_e.g._e2_S3_Image_Processor&amp;diff=6056</id>
		<title>Tutorial Eventmaster Toolset Controlling MXWendler by e.g. e2 S3 Image Processor</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Tutorial_Eventmaster_Toolset_Controlling_MXWendler_by_e.g._e2_S3_Image_Processor&amp;diff=6056"/>
		<updated>2024-02-09T14:58:57Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Created page with &amp;quot;This tutorial applies to all different OS and MXWendler versions &amp;gt; 6.0.4  == Introduction== This tutorial explains how to set up a Barco Eventmaster to trigger and control med...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial applies to all different OS and MXWendler versions &amp;gt; 6.0.4&lt;br /&gt;
&lt;br /&gt;
== Introduction==&lt;br /&gt;
This tutorial explains how to set up a Barco Eventmaster to trigger and control media playback on StageDesigner or FXServer.&lt;br /&gt;
&lt;br /&gt;
==Wizard Setup==&lt;br /&gt;
&lt;br /&gt;
1. Open SD (StageDesigner) and load a clip into preload 1:&lt;br /&gt;
&lt;br /&gt;
[[File:e2_01.png|728px]]&lt;br /&gt;
&lt;br /&gt;
2. Open Settings-&amp;gt;IO-&amp;gt;Barco e2 and activate TCP listening. Also either change or not the port number&lt;br /&gt;
&lt;br /&gt;
[[File:e2_02.png|728px]]&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Tutorials&amp;diff=6055</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Tutorials&amp;diff=6055"/>
		<updated>2024-02-09T14:53:55Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* IO Devices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#mpdftags:&lt;br /&gt;
pagebreak orientation=&amp;quot;L&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
*[[Tutorial Opening Different Media]]&lt;br /&gt;
*[[Tutorial Setting up Stage Designer Output Windows]]&lt;br /&gt;
*[[Tutorial Triggering Four Media with the Keyboard]]&lt;br /&gt;
*[[Tutorial Coupling Video with Effects and Audio Signals]]&lt;br /&gt;
*[[Tutorial Creating Predefined Layer Position]]&lt;br /&gt;
*[[Tutorial Feedback]]&lt;br /&gt;
*[[Tutorial Creating an I/O Event]]&lt;br /&gt;
*[[Tutorial Creating an Autostart Showfile]]&lt;br /&gt;
*[[Tutorial Creating Compositions (Sets and Patches)]]&lt;br /&gt;
*[[Tutorial Creating Multiple Compositions and Patches]]&lt;br /&gt;
*[[Tutorial Creating and Playing an RTF Text File]]&lt;br /&gt;
*[[Tutorial Licensing New Features]]&lt;br /&gt;
*[[Tutorial Loading and Using JavaScripts in MXWendler]]&lt;br /&gt;
*[[Tutorial Configuring a Virtual Camera]]&lt;br /&gt;
&lt;br /&gt;
==Playlist==&lt;br /&gt;
*[[Tutorial Creating Playlists (Cue Lists)]]&lt;br /&gt;
*[[Tutorial Playlists with Images and Keystone Correction]]&lt;br /&gt;
*[[Tutorial Playlists with Timeline]]&lt;br /&gt;
*[[Tutorial Playlists with Multi-Timeline]]&lt;br /&gt;
*[[Tutorial Playlists with Time and Date Conditions]]&lt;br /&gt;
*[[Tutorial Playlists with Timecode]]&lt;br /&gt;
*[[Tutorial Playlists with Subtitles]]&lt;br /&gt;
*[[Tutorial Playlists with IO - Commands]]&lt;br /&gt;
*[[Tutorial Playlists with PDF and Frame Step]]&lt;br /&gt;
*[[Tutorial Resetting Runtime Counter with IO Commands in Playlist]]&lt;br /&gt;
*[[Tutorial Playlists with Fade Clip]]&lt;br /&gt;
*[[Tutorial Playlists with Auto Step]]&lt;br /&gt;
*[[Tutorial Playlists with Reset Counter]]&lt;br /&gt;
*[[Tutorial Playlists with Shutdown]]&lt;br /&gt;
*[[Tutorial Playlists with Load Show]]&lt;br /&gt;
*[[Tutorial Playlists with OSC Command]]&lt;br /&gt;
*[[Tutorial Playlists with Sys Command]]&lt;br /&gt;
*[[Tutorial Playlists with PJlink Command]]&lt;br /&gt;
*[[Tutorial Playlists in Rehearsal Mode]]&lt;br /&gt;
*[[Tutorial Creating an Automated Show with Daily Event and Playlist Conditions]]&lt;br /&gt;
&lt;br /&gt;
==Keystone==&lt;br /&gt;
*[[Tutorial Simultaneous Playback of two Videos with two Video Projectors]]&lt;br /&gt;
*[[Tutorial Mapping with UV View]]&lt;br /&gt;
*[[Tutorial Masked Output]]&lt;br /&gt;
*[[Tutorial Colored Output with Animations]]&lt;br /&gt;
*[[Tutorial Capture Output Sections with Artnet DMX and Network Grabbers]]&lt;br /&gt;
*[[Tutorial SVG Mapping with the MXWendler Automatic Calibration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IO Devices==&lt;br /&gt;
*[[Reference Open Sound Control - OSC]]&lt;br /&gt;
*[[Reference JavaScript]]&lt;br /&gt;
*[[Tutorial Using the Akai APC Mini (Note On/Off)]]&lt;br /&gt;
*[[Tutorial Connecting the grandMA 2Port Node with MXWendler via Art-Net]]&lt;br /&gt;
*[[Tutorial Connecting Jands Vista2 with MXWendler via Art-Net]]&lt;br /&gt;
*[[Tutorial Set up the CITP Footage Library on the Media Server]]&lt;br /&gt;
*[[Tutorial Time-sync and sending IO Commands over OSC Protocol]]&lt;br /&gt;
*[[Tutorial Connecting a Wiimote to MXWendler]]&lt;br /&gt;
*[[Tutorial Controlling MXWendler via TouchOSC]]&lt;br /&gt;
*[[Tutorial Optimum Audio Settings with an Integrated Audio Interface]]&lt;br /&gt;
*[[Tutorial Optimum Audio Settings with an External Audio Interface]]&lt;br /&gt;
&amp;lt;!-- *[[Tutorial Controlling MXWendler with Elgato Streamdeck XL]] --&amp;gt;&lt;br /&gt;
*[[Tutorial Eventmaster Toolset Controlling MXWendler by e.g. e2 S3 Image Processor]]&lt;br /&gt;
&lt;br /&gt;
==FXServer==&lt;br /&gt;
*[[Tutorial FXServer Output Windows]]&lt;br /&gt;
&lt;br /&gt;
*[[Tutorial How to Setup a Datapath Fx4 for MXWendler with the Wall Designer Software]]&lt;br /&gt;
&lt;br /&gt;
*[[Tutorial How to Optimize Video Footages With Blender]]&lt;br /&gt;
&lt;br /&gt;
==Standalone Encoder==&lt;br /&gt;
*[[Tutorial Standalone Encoder / Video Batch Encoder]]&lt;br /&gt;
&lt;br /&gt;
==EDID Manager==&lt;br /&gt;
*[[Tutorial MXWendler EDID Manager]]&lt;br /&gt;
&lt;br /&gt;
==NDI Tools==&lt;br /&gt;
*[[Tutorial NDI Tools ]]&lt;br /&gt;
*[[Tutorial Sending and Receiving Multiple Video Streams with NDI]]&lt;br /&gt;
&lt;br /&gt;
==Spout==&lt;br /&gt;
*[[Tutorial Sending and Receiving Media Through Spout]]&lt;br /&gt;
*[[Tutorial Connecting Winamp Generative Visuals with MXWendler via Spout]]&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=File:E2_08c.png&amp;diff=6054</id>
		<title>File:E2 08c.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=File:E2_08c.png&amp;diff=6054"/>
		<updated>2024-02-09T14:52:45Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Uploaded with SimpleBatchUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=File:E2_08b.png&amp;diff=6053</id>
		<title>File:E2 08b.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=File:E2_08b.png&amp;diff=6053"/>
		<updated>2024-02-09T14:52:45Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Uploaded with SimpleBatchUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=File:E2_07.png&amp;diff=6052</id>
		<title>File:E2 07.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=File:E2_07.png&amp;diff=6052"/>
		<updated>2024-02-09T14:52:45Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Uploaded with SimpleBatchUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=File:E2_08.png&amp;diff=6051</id>
		<title>File:E2 08.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=File:E2_08.png&amp;diff=6051"/>
		<updated>2024-02-09T14:52:45Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Uploaded with SimpleBatchUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=File:E2_04.png&amp;diff=6050</id>
		<title>File:E2 04.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=File:E2_04.png&amp;diff=6050"/>
		<updated>2024-02-09T14:52:43Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Uploaded with SimpleBatchUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=File:E2_03.png&amp;diff=6049</id>
		<title>File:E2 03.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=File:E2_03.png&amp;diff=6049"/>
		<updated>2024-02-09T14:52:43Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Uploaded with SimpleBatchUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=File:E2_05.png&amp;diff=6048</id>
		<title>File:E2 05.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=File:E2_05.png&amp;diff=6048"/>
		<updated>2024-02-09T14:52:43Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Uploaded with SimpleBatchUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=File:E2_02.png&amp;diff=6047</id>
		<title>File:E2 02.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=File:E2_02.png&amp;diff=6047"/>
		<updated>2024-02-09T14:52:43Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Uploaded with SimpleBatchUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=File:E2_06.png&amp;diff=6046</id>
		<title>File:E2 06.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=File:E2_06.png&amp;diff=6046"/>
		<updated>2024-02-09T14:52:43Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Uploaded with SimpleBatchUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=File:E2_01.png&amp;diff=6045</id>
		<title>File:E2 01.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=File:E2_01.png&amp;diff=6045"/>
		<updated>2024-02-09T14:52:43Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Uploaded with SimpleBatchUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Tutorial_Controlling_MXWendler_Barco_e2_or_Barco_S3_Image_Processor&amp;diff=6044</id>
		<title>Tutorial Controlling MXWendler Barco e2 or Barco S3 Image Processor</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Tutorial_Controlling_MXWendler_Barco_e2_or_Barco_S3_Image_Processor&amp;diff=6044"/>
		<updated>2024-02-08T15:53:49Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Created page with &amp;quot;This tutorial applies to all different OS and MXWendler versions. &amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt; == Introduction== In this tutorial, we will go through the steps needed to control Stag...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial applies to all different OS and MXWendler versions.&lt;br /&gt;
&amp;lt;div class=&amp;quot;noprint&amp;quot;&amp;gt;&lt;br /&gt;
== Introduction==&lt;br /&gt;
In this tutorial, we will go through the steps needed to control StageDesigner and FXServer from a Barco Image Processor e2 or S3 via TCP.&lt;br /&gt;
== Files and Formats ==&lt;br /&gt;
&lt;br /&gt;
All the standard audio file formats and codecs can be played with the software. In order to get the best results, we suggest using the following formats for rendering your audio output (either as an extra audio file or in your video output):&lt;br /&gt;
:&#039;&#039;&#039;Sample Rate:&#039;&#039;&#039; 48.000 Khz&lt;br /&gt;
:&#039;&#039;&#039;Bitrate:&#039;&#039;&#039; 320 Kbps or lossless &lt;br /&gt;
:&#039;&#039;&#039;Bit Depth:&#039;&#039;&#039; 24&lt;br /&gt;
:&#039;&#039;&#039;Codec:&#039;&#039;&#039; Preferably Aac&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: It is always better to have an extra file for the audio output for the shows since it gives you more flexibility to tweak and solve possible issues.&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Tip: You can use different sample rates in different situations, but for best performance results you have to always remember to use the same sample rate in your output, in software and windows settings.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#mpdftags: pagebreak}}&lt;br /&gt;
== Settings in Windows ==&lt;br /&gt;
&lt;br /&gt;
1. Right-click on the &#039;Audio&#039; sign in &#039;Taskbar&#039; and select &#039;Sounds&#039;. (&#039;&#039;Or: Click on Win and type mmsys.cpl and hit enter&#039;&#039;) &#039;&#039;&#039;(A)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
2. Go to the Playback tab and find the right audio playback device. (In most cases called &#039;Speakers Realtek High Definition Audio&#039;)&lt;br /&gt;
&lt;br /&gt;
3. Right-click on it and select &#039;Enable&#039;, &#039;Set as Default Device&#039; and &#039;Set as Default Communication Device&#039;. &#039;&#039;&#039;(B)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
4. Right-click on it again and select &#039;Properties&#039; and go to the Advanced tab.&lt;br /&gt;
&lt;br /&gt;
5. Open the drop-down menu from Default Format and select 24bit and 48.000 Khz and click &#039;Apply&#039;. (You can do a test if you have signal in the output by clicking on test) &#039;&#039;&#039;(C)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Audio-1.png|728px]]&lt;br /&gt;
&lt;br /&gt;
{{#mpdftags: pagebreak}}&lt;br /&gt;
&lt;br /&gt;
== Settings in MXWendler ==&lt;br /&gt;
&lt;br /&gt;
1. Open MXWendler and go to audio settings&lt;br /&gt;
:&#039;&#039;&#039;Settings &amp;amp;rarr; Input and Output &amp;amp;rarr; Audio Devices&#039;&#039;&#039; &#039;&#039;&#039;(A)&#039;&#039;&#039;&lt;br /&gt;
2. From the drop-down menu of Device choose the proper output device you&#039;re using. &#039;&#039;&#039;(B)&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;In most cases, it is &#039;Speakers Realtek High Definition Audio&#039;&#039;&#039;.&lt;br /&gt;
:&#039;&#039;It is always preferred to use the &#039;MME&#039; drivers rather than the &#039;Windows Directsound&#039; drivers.&lt;br /&gt;
3. From the drop-down menu of In-Devices choose the proper output device you&#039;re using. &#039;&#039;&#039;(C)&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;In most cases, it is &#039;Stereo Mix Realtek High Definition Audio&#039;&#039;&#039;.&lt;br /&gt;
:&#039;&#039;It is always preferred to use the &#039;MME&#039; drivers rather than the &#039;Windows Directsound&#039; drivers.&lt;br /&gt;
4. Set the sample rate to 48000Khz and latency to something around 64ms. &#039;&#039;&#039;(D)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
5. Click on &#039;Reopen&#039; and then Ok to close the window. &#039;&#039;&#039;(E)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Audio should be ready to use and you should be able to playback audio files with no trouble. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Tip: It is always preferred to use an external audio interface for better sound quality or more stable playback.&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Tip: If you have dropouts or glitches in the audio, try bringing the latency to a higher value, until the playback works well.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Audio-2.png|728px]]&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Tutorials&amp;diff=6043</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Tutorials&amp;diff=6043"/>
		<updated>2024-02-08T15:52:12Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* IO Devices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#mpdftags:&lt;br /&gt;
pagebreak orientation=&amp;quot;L&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
*[[Tutorial Opening Different Media]]&lt;br /&gt;
*[[Tutorial Setting up Stage Designer Output Windows]]&lt;br /&gt;
*[[Tutorial Triggering Four Media with the Keyboard]]&lt;br /&gt;
*[[Tutorial Coupling Video with Effects and Audio Signals]]&lt;br /&gt;
*[[Tutorial Creating Predefined Layer Position]]&lt;br /&gt;
*[[Tutorial Feedback]]&lt;br /&gt;
*[[Tutorial Creating an I/O Event]]&lt;br /&gt;
*[[Tutorial Creating an Autostart Showfile]]&lt;br /&gt;
*[[Tutorial Creating Compositions (Sets and Patches)]]&lt;br /&gt;
*[[Tutorial Creating Multiple Compositions and Patches]]&lt;br /&gt;
*[[Tutorial Creating and Playing an RTF Text File]]&lt;br /&gt;
*[[Tutorial Licensing New Features]]&lt;br /&gt;
*[[Tutorial Loading and Using JavaScripts in MXWendler]]&lt;br /&gt;
*[[Tutorial Configuring a Virtual Camera]]&lt;br /&gt;
&lt;br /&gt;
==Playlist==&lt;br /&gt;
*[[Tutorial Creating Playlists (Cue Lists)]]&lt;br /&gt;
*[[Tutorial Playlists with Images and Keystone Correction]]&lt;br /&gt;
*[[Tutorial Playlists with Timeline]]&lt;br /&gt;
*[[Tutorial Playlists with Multi-Timeline]]&lt;br /&gt;
*[[Tutorial Playlists with Time and Date Conditions]]&lt;br /&gt;
*[[Tutorial Playlists with Timecode]]&lt;br /&gt;
*[[Tutorial Playlists with Subtitles]]&lt;br /&gt;
*[[Tutorial Playlists with IO - Commands]]&lt;br /&gt;
*[[Tutorial Playlists with PDF and Frame Step]]&lt;br /&gt;
*[[Tutorial Resetting Runtime Counter with IO Commands in Playlist]]&lt;br /&gt;
*[[Tutorial Playlists with Fade Clip]]&lt;br /&gt;
*[[Tutorial Playlists with Auto Step]]&lt;br /&gt;
*[[Tutorial Playlists with Reset Counter]]&lt;br /&gt;
*[[Tutorial Playlists with Shutdown]]&lt;br /&gt;
*[[Tutorial Playlists with Load Show]]&lt;br /&gt;
*[[Tutorial Playlists with OSC Command]]&lt;br /&gt;
*[[Tutorial Playlists with Sys Command]]&lt;br /&gt;
*[[Tutorial Playlists with PJlink Command]]&lt;br /&gt;
*[[Tutorial Playlists in Rehearsal Mode]]&lt;br /&gt;
*[[Tutorial Creating an Automated Show with Daily Event and Playlist Conditions]]&lt;br /&gt;
&lt;br /&gt;
==Keystone==&lt;br /&gt;
*[[Tutorial Simultaneous Playback of two Videos with two Video Projectors]]&lt;br /&gt;
*[[Tutorial Mapping with UV View]]&lt;br /&gt;
*[[Tutorial Masked Output]]&lt;br /&gt;
*[[Tutorial Colored Output with Animations]]&lt;br /&gt;
*[[Tutorial Capture Output Sections with Artnet DMX and Network Grabbers]]&lt;br /&gt;
*[[Tutorial SVG Mapping with the MXWendler Automatic Calibration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IO Devices==&lt;br /&gt;
*[[Reference Open Sound Control - OSC]]&lt;br /&gt;
*[[Reference JavaScript]]&lt;br /&gt;
*[[Tutorial Using the Akai APC Mini (Note On/Off)]]&lt;br /&gt;
*[[Tutorial Connecting the grandMA 2Port Node with MXWendler via Art-Net]]&lt;br /&gt;
*[[Tutorial Connecting Jands Vista2 with MXWendler via Art-Net]]&lt;br /&gt;
*[[Tutorial Set up the CITP Footage Library on the Media Server]]&lt;br /&gt;
*[[Tutorial Time-sync and sending IO Commands over OSC Protocol]]&lt;br /&gt;
*[[Tutorial Connecting a Wiimote to MXWendler]]&lt;br /&gt;
*[[Tutorial Controlling MXWendler via TouchOSC]]&lt;br /&gt;
*[[Tutorial Optimum Audio Settings with an Integrated Audio Interface]]&lt;br /&gt;
*[[Tutorial Optimum Audio Settings with an External Audio Interface]]&lt;br /&gt;
&amp;lt;!-- *[[Tutorial Controlling MXWendler with Elgato Streamdeck XL]] --&amp;gt;&lt;br /&gt;
*[[Tutorial Controlling MXWendler Barco e2 or Barco S3 Image Processor]]&lt;br /&gt;
&lt;br /&gt;
==FXServer==&lt;br /&gt;
*[[Tutorial FXServer Output Windows]]&lt;br /&gt;
&lt;br /&gt;
*[[Tutorial How to Setup a Datapath Fx4 for MXWendler with the Wall Designer Software]]&lt;br /&gt;
&lt;br /&gt;
*[[Tutorial How to Optimize Video Footages With Blender]]&lt;br /&gt;
&lt;br /&gt;
==Standalone Encoder==&lt;br /&gt;
*[[Tutorial Standalone Encoder / Video Batch Encoder]]&lt;br /&gt;
&lt;br /&gt;
==EDID Manager==&lt;br /&gt;
*[[Tutorial MXWendler EDID Manager]]&lt;br /&gt;
&lt;br /&gt;
==NDI Tools==&lt;br /&gt;
*[[Tutorial NDI Tools ]]&lt;br /&gt;
*[[Tutorial Sending and Receiving Multiple Video Streams with NDI]]&lt;br /&gt;
&lt;br /&gt;
==Spout==&lt;br /&gt;
*[[Tutorial Sending and Receiving Media Through Spout]]&lt;br /&gt;
*[[Tutorial Connecting Winamp Generative Visuals with MXWendler via Spout]]&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Tutorials&amp;diff=6042</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Tutorials&amp;diff=6042"/>
		<updated>2024-02-08T15:51:10Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* IO Devices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#mpdftags:&lt;br /&gt;
pagebreak orientation=&amp;quot;L&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
*[[Tutorial Opening Different Media]]&lt;br /&gt;
*[[Tutorial Setting up Stage Designer Output Windows]]&lt;br /&gt;
*[[Tutorial Triggering Four Media with the Keyboard]]&lt;br /&gt;
*[[Tutorial Coupling Video with Effects and Audio Signals]]&lt;br /&gt;
*[[Tutorial Creating Predefined Layer Position]]&lt;br /&gt;
*[[Tutorial Feedback]]&lt;br /&gt;
*[[Tutorial Creating an I/O Event]]&lt;br /&gt;
*[[Tutorial Creating an Autostart Showfile]]&lt;br /&gt;
*[[Tutorial Creating Compositions (Sets and Patches)]]&lt;br /&gt;
*[[Tutorial Creating Multiple Compositions and Patches]]&lt;br /&gt;
*[[Tutorial Creating and Playing an RTF Text File]]&lt;br /&gt;
*[[Tutorial Licensing New Features]]&lt;br /&gt;
*[[Tutorial Loading and Using JavaScripts in MXWendler]]&lt;br /&gt;
*[[Tutorial Configuring a Virtual Camera]]&lt;br /&gt;
&lt;br /&gt;
==Playlist==&lt;br /&gt;
*[[Tutorial Creating Playlists (Cue Lists)]]&lt;br /&gt;
*[[Tutorial Playlists with Images and Keystone Correction]]&lt;br /&gt;
*[[Tutorial Playlists with Timeline]]&lt;br /&gt;
*[[Tutorial Playlists with Multi-Timeline]]&lt;br /&gt;
*[[Tutorial Playlists with Time and Date Conditions]]&lt;br /&gt;
*[[Tutorial Playlists with Timecode]]&lt;br /&gt;
*[[Tutorial Playlists with Subtitles]]&lt;br /&gt;
*[[Tutorial Playlists with IO - Commands]]&lt;br /&gt;
*[[Tutorial Playlists with PDF and Frame Step]]&lt;br /&gt;
*[[Tutorial Resetting Runtime Counter with IO Commands in Playlist]]&lt;br /&gt;
*[[Tutorial Playlists with Fade Clip]]&lt;br /&gt;
*[[Tutorial Playlists with Auto Step]]&lt;br /&gt;
*[[Tutorial Playlists with Reset Counter]]&lt;br /&gt;
*[[Tutorial Playlists with Shutdown]]&lt;br /&gt;
*[[Tutorial Playlists with Load Show]]&lt;br /&gt;
*[[Tutorial Playlists with OSC Command]]&lt;br /&gt;
*[[Tutorial Playlists with Sys Command]]&lt;br /&gt;
*[[Tutorial Playlists with PJlink Command]]&lt;br /&gt;
*[[Tutorial Playlists in Rehearsal Mode]]&lt;br /&gt;
*[[Tutorial Creating an Automated Show with Daily Event and Playlist Conditions]]&lt;br /&gt;
&lt;br /&gt;
==Keystone==&lt;br /&gt;
*[[Tutorial Simultaneous Playback of two Videos with two Video Projectors]]&lt;br /&gt;
*[[Tutorial Mapping with UV View]]&lt;br /&gt;
*[[Tutorial Masked Output]]&lt;br /&gt;
*[[Tutorial Colored Output with Animations]]&lt;br /&gt;
*[[Tutorial Capture Output Sections with Artnet DMX and Network Grabbers]]&lt;br /&gt;
*[[Tutorial SVG Mapping with the MXWendler Automatic Calibration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IO Devices==&lt;br /&gt;
*[[Reference Open Sound Control - OSC]]&lt;br /&gt;
*[[Reference JavaScript]]&lt;br /&gt;
*[[Tutorial Using the Akai APC Mini (Note On/Off)]]&lt;br /&gt;
*[[Tutorial Connecting the grandMA 2Port Node with MXWendler via Art-Net]]&lt;br /&gt;
*[[Tutorial Connecting Jands Vista2 with MXWendler via Art-Net]]&lt;br /&gt;
*[[Tutorial Set up the CITP Footage Library on the Media Server]]&lt;br /&gt;
*[[Tutorial Time-sync and sending IO Commands over OSC Protocol]]&lt;br /&gt;
*[[Tutorial Connecting a Wiimote to MXWendler]]&lt;br /&gt;
*[[Tutorial Controlling MXWendler via TouchOSC]]&lt;br /&gt;
*[[Tutorial Avolites Titan Art-Net and CITP]]&lt;br /&gt;
*[[Tutorial Optimum Audio Settings with an Integrated Audio Interface]]&lt;br /&gt;
*[[Tutorial Optimum Audio Settings with an External Audio Interface]]&lt;br /&gt;
&amp;lt;!-- *[[Tutorial Controlling MXWendler with Elgato Streamdeck XL]] --&amp;gt;&lt;br /&gt;
*[[Tutorial Controlling MXWendler Barco e2 or Barco S3 Image Processor]]&lt;br /&gt;
&lt;br /&gt;
==FXServer==&lt;br /&gt;
*[[Tutorial FXServer Output Windows]]&lt;br /&gt;
&lt;br /&gt;
*[[Tutorial How to Setup a Datapath Fx4 for MXWendler with the Wall Designer Software]]&lt;br /&gt;
&lt;br /&gt;
*[[Tutorial How to Optimize Video Footages With Blender]]&lt;br /&gt;
&lt;br /&gt;
==Standalone Encoder==&lt;br /&gt;
*[[Tutorial Standalone Encoder / Video Batch Encoder]]&lt;br /&gt;
&lt;br /&gt;
==EDID Manager==&lt;br /&gt;
*[[Tutorial MXWendler EDID Manager]]&lt;br /&gt;
&lt;br /&gt;
==NDI Tools==&lt;br /&gt;
*[[Tutorial NDI Tools ]]&lt;br /&gt;
*[[Tutorial Sending and Receiving Multiple Video Streams with NDI]]&lt;br /&gt;
&lt;br /&gt;
==Spout==&lt;br /&gt;
*[[Tutorial Sending and Receiving Media Through Spout]]&lt;br /&gt;
*[[Tutorial Connecting Winamp Generative Visuals with MXWendler via Spout]]&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Tutorials&amp;diff=6041</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Tutorials&amp;diff=6041"/>
		<updated>2024-02-08T15:08:51Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* IO Devices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#mpdftags:&lt;br /&gt;
pagebreak orientation=&amp;quot;L&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
*[[Tutorial Opening Different Media]]&lt;br /&gt;
*[[Tutorial Setting up Stage Designer Output Windows]]&lt;br /&gt;
*[[Tutorial Triggering Four Media with the Keyboard]]&lt;br /&gt;
*[[Tutorial Coupling Video with Effects and Audio Signals]]&lt;br /&gt;
*[[Tutorial Creating Predefined Layer Position]]&lt;br /&gt;
*[[Tutorial Feedback]]&lt;br /&gt;
*[[Tutorial Creating an I/O Event]]&lt;br /&gt;
*[[Tutorial Creating an Autostart Showfile]]&lt;br /&gt;
*[[Tutorial Creating Compositions (Sets and Patches)]]&lt;br /&gt;
*[[Tutorial Creating Multiple Compositions and Patches]]&lt;br /&gt;
*[[Tutorial Creating and Playing an RTF Text File]]&lt;br /&gt;
*[[Tutorial Licensing New Features]]&lt;br /&gt;
*[[Tutorial Loading and Using JavaScripts in MXWendler]]&lt;br /&gt;
*[[Tutorial Configuring a Virtual Camera]]&lt;br /&gt;
&lt;br /&gt;
==Playlist==&lt;br /&gt;
*[[Tutorial Creating Playlists (Cue Lists)]]&lt;br /&gt;
*[[Tutorial Playlists with Images and Keystone Correction]]&lt;br /&gt;
*[[Tutorial Playlists with Timeline]]&lt;br /&gt;
*[[Tutorial Playlists with Multi-Timeline]]&lt;br /&gt;
*[[Tutorial Playlists with Time and Date Conditions]]&lt;br /&gt;
*[[Tutorial Playlists with Timecode]]&lt;br /&gt;
*[[Tutorial Playlists with Subtitles]]&lt;br /&gt;
*[[Tutorial Playlists with IO - Commands]]&lt;br /&gt;
*[[Tutorial Playlists with PDF and Frame Step]]&lt;br /&gt;
*[[Tutorial Resetting Runtime Counter with IO Commands in Playlist]]&lt;br /&gt;
*[[Tutorial Playlists with Fade Clip]]&lt;br /&gt;
*[[Tutorial Playlists with Auto Step]]&lt;br /&gt;
*[[Tutorial Playlists with Reset Counter]]&lt;br /&gt;
*[[Tutorial Playlists with Shutdown]]&lt;br /&gt;
*[[Tutorial Playlists with Load Show]]&lt;br /&gt;
*[[Tutorial Playlists with OSC Command]]&lt;br /&gt;
*[[Tutorial Playlists with Sys Command]]&lt;br /&gt;
*[[Tutorial Playlists with PJlink Command]]&lt;br /&gt;
*[[Tutorial Playlists in Rehearsal Mode]]&lt;br /&gt;
*[[Tutorial Creating an Automated Show with Daily Event and Playlist Conditions]]&lt;br /&gt;
&lt;br /&gt;
==Keystone==&lt;br /&gt;
*[[Tutorial Simultaneous Playback of two Videos with two Video Projectors]]&lt;br /&gt;
*[[Tutorial Mapping with UV View]]&lt;br /&gt;
*[[Tutorial Masked Output]]&lt;br /&gt;
*[[Tutorial Colored Output with Animations]]&lt;br /&gt;
*[[Tutorial Capture Output Sections with Artnet DMX and Network Grabbers]]&lt;br /&gt;
*[[Tutorial SVG Mapping with the MXWendler Automatic Calibration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IO Devices==&lt;br /&gt;
*[[Reference Open Sound Control - OSC]]&lt;br /&gt;
*[[Reference JavaScript]]&lt;br /&gt;
*[[Tutorial Using the Akai APC Mini (Note On/Off)]]&lt;br /&gt;
*[[Tutorial Connecting the grandMA 2Port Node with MXWendler via Art-Net]]&lt;br /&gt;
*[[Tutorial Connecting Jands Vista2 with MXWendler via Art-Net]]&lt;br /&gt;
*[[Tutorial Set up the CITP Footage Library on the Media Server]]&lt;br /&gt;
*[[Tutorial Time-sync and sending IO Commands over OSC Protocol]]&lt;br /&gt;
*[[Tutorial Connecting a Wiimote to MXWendler]]&lt;br /&gt;
*[[Tutorial Controlling MXWendler via TouchOSC]]&lt;br /&gt;
*[[Tutorial Avolites Titan Art-Net and CITP]]&lt;br /&gt;
*[[Tutorial Optimum Audio Settings with an Integrated Audio Interface]]&lt;br /&gt;
*[[Tutorial Optimum Audio Settings with an External Audio Interface]]&lt;br /&gt;
&amp;lt;!-- *[[Tutorial Controlling MXWendler with Elgato Streamdeck XL]] --&amp;gt;&lt;br /&gt;
*[[Tutorial Controlling MXWendler Barco e2 os Barco s3 Image Processor]]&lt;br /&gt;
&lt;br /&gt;
==FXServer==&lt;br /&gt;
*[[Tutorial FXServer Output Windows]]&lt;br /&gt;
&lt;br /&gt;
*[[Tutorial How to Setup a Datapath Fx4 for MXWendler with the Wall Designer Software]]&lt;br /&gt;
&lt;br /&gt;
*[[Tutorial How to Optimize Video Footages With Blender]]&lt;br /&gt;
&lt;br /&gt;
==Standalone Encoder==&lt;br /&gt;
*[[Tutorial Standalone Encoder / Video Batch Encoder]]&lt;br /&gt;
&lt;br /&gt;
==EDID Manager==&lt;br /&gt;
*[[Tutorial MXWendler EDID Manager]]&lt;br /&gt;
&lt;br /&gt;
==NDI Tools==&lt;br /&gt;
*[[Tutorial NDI Tools ]]&lt;br /&gt;
*[[Tutorial Sending and Receiving Multiple Video Streams with NDI]]&lt;br /&gt;
&lt;br /&gt;
==Spout==&lt;br /&gt;
*[[Tutorial Sending and Receiving Media Through Spout]]&lt;br /&gt;
*[[Tutorial Connecting Winamp Generative Visuals with MXWendler via Spout]]&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Tutorials&amp;diff=6040</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Tutorials&amp;diff=6040"/>
		<updated>2024-02-08T15:07:01Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* IO Devices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#mpdftags:&lt;br /&gt;
pagebreak orientation=&amp;quot;L&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
*[[Tutorial Opening Different Media]]&lt;br /&gt;
*[[Tutorial Setting up Stage Designer Output Windows]]&lt;br /&gt;
*[[Tutorial Triggering Four Media with the Keyboard]]&lt;br /&gt;
*[[Tutorial Coupling Video with Effects and Audio Signals]]&lt;br /&gt;
*[[Tutorial Creating Predefined Layer Position]]&lt;br /&gt;
*[[Tutorial Feedback]]&lt;br /&gt;
*[[Tutorial Creating an I/O Event]]&lt;br /&gt;
*[[Tutorial Creating an Autostart Showfile]]&lt;br /&gt;
*[[Tutorial Creating Compositions (Sets and Patches)]]&lt;br /&gt;
*[[Tutorial Creating Multiple Compositions and Patches]]&lt;br /&gt;
*[[Tutorial Creating and Playing an RTF Text File]]&lt;br /&gt;
*[[Tutorial Licensing New Features]]&lt;br /&gt;
*[[Tutorial Loading and Using JavaScripts in MXWendler]]&lt;br /&gt;
*[[Tutorial Configuring a Virtual Camera]]&lt;br /&gt;
&lt;br /&gt;
==Playlist==&lt;br /&gt;
*[[Tutorial Creating Playlists (Cue Lists)]]&lt;br /&gt;
*[[Tutorial Playlists with Images and Keystone Correction]]&lt;br /&gt;
*[[Tutorial Playlists with Timeline]]&lt;br /&gt;
*[[Tutorial Playlists with Multi-Timeline]]&lt;br /&gt;
*[[Tutorial Playlists with Time and Date Conditions]]&lt;br /&gt;
*[[Tutorial Playlists with Timecode]]&lt;br /&gt;
*[[Tutorial Playlists with Subtitles]]&lt;br /&gt;
*[[Tutorial Playlists with IO - Commands]]&lt;br /&gt;
*[[Tutorial Playlists with PDF and Frame Step]]&lt;br /&gt;
*[[Tutorial Resetting Runtime Counter with IO Commands in Playlist]]&lt;br /&gt;
*[[Tutorial Playlists with Fade Clip]]&lt;br /&gt;
*[[Tutorial Playlists with Auto Step]]&lt;br /&gt;
*[[Tutorial Playlists with Reset Counter]]&lt;br /&gt;
*[[Tutorial Playlists with Shutdown]]&lt;br /&gt;
*[[Tutorial Playlists with Load Show]]&lt;br /&gt;
*[[Tutorial Playlists with OSC Command]]&lt;br /&gt;
*[[Tutorial Playlists with Sys Command]]&lt;br /&gt;
*[[Tutorial Playlists with PJlink Command]]&lt;br /&gt;
*[[Tutorial Playlists in Rehearsal Mode]]&lt;br /&gt;
*[[Tutorial Creating an Automated Show with Daily Event and Playlist Conditions]]&lt;br /&gt;
&lt;br /&gt;
==Keystone==&lt;br /&gt;
*[[Tutorial Simultaneous Playback of two Videos with two Video Projectors]]&lt;br /&gt;
*[[Tutorial Mapping with UV View]]&lt;br /&gt;
*[[Tutorial Masked Output]]&lt;br /&gt;
*[[Tutorial Colored Output with Animations]]&lt;br /&gt;
*[[Tutorial Capture Output Sections with Artnet DMX and Network Grabbers]]&lt;br /&gt;
*[[Tutorial SVG Mapping with the MXWendler Automatic Calibration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==IO Devices==&lt;br /&gt;
*[[Reference Open Sound Control - OSC]]&lt;br /&gt;
*[[Reference JavaScript]]&lt;br /&gt;
*[[Tutorial Using the Akai APC Mini (Note On/Off)]]&lt;br /&gt;
*[[Tutorial Connecting the grandMA 2Port Node with MXWendler via Art-Net]]&lt;br /&gt;
*[[Tutorial Connecting Jands Vista2 with MXWendler via Art-Net]]&lt;br /&gt;
*[[Tutorial Set up the CITP Footage Library on the Media Server]]&lt;br /&gt;
*[[Tutorial Time-sync and sending IO Commands over OSC Protocol]]&lt;br /&gt;
*[[Tutorial Connecting a Wiimote to MXWendler]]&lt;br /&gt;
*[[Tutorial Controlling MXWendler via TouchOSC]]&lt;br /&gt;
*[[Tutorial Avolites Titan Art-Net and CITP]]&lt;br /&gt;
*[[Tutorial Optimum Audio Settings with an Integrated Audio Interface]]&lt;br /&gt;
*[[Tutorial Optimum Audio Settings with an External Audio Interface]]&lt;br /&gt;
*[[Tutorial Controlling MXWendler with Elgato Streamdeck XL]]&lt;br /&gt;
*[[Tutorial Controlling MXWendler Barco e2 os Barco s3 Image Processor]]&lt;br /&gt;
&lt;br /&gt;
==FXServer==&lt;br /&gt;
*[[Tutorial FXServer Output Windows]]&lt;br /&gt;
&lt;br /&gt;
*[[Tutorial How to Setup a Datapath Fx4 for MXWendler with the Wall Designer Software]]&lt;br /&gt;
&lt;br /&gt;
*[[Tutorial How to Optimize Video Footages With Blender]]&lt;br /&gt;
&lt;br /&gt;
==Standalone Encoder==&lt;br /&gt;
*[[Tutorial Standalone Encoder / Video Batch Encoder]]&lt;br /&gt;
&lt;br /&gt;
==EDID Manager==&lt;br /&gt;
*[[Tutorial MXWendler EDID Manager]]&lt;br /&gt;
&lt;br /&gt;
==NDI Tools==&lt;br /&gt;
*[[Tutorial NDI Tools ]]&lt;br /&gt;
*[[Tutorial Sending and Receiving Multiple Video Streams with NDI]]&lt;br /&gt;
&lt;br /&gt;
==Spout==&lt;br /&gt;
*[[Tutorial Sending and Receiving Media Through Spout]]&lt;br /&gt;
*[[Tutorial Connecting Winamp Generative Visuals with MXWendler via Spout]]&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Python_Reference&amp;diff=6039</id>
		<title>Python Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Python_Reference&amp;diff=6039"/>
		<updated>2023-12-04T13:24:22Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Undo revision 6038 by Hwendler (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document describes the MXWendler (MXW) Python command interface through an overview of the programming structure, with practical examples of automation and internal scripting. The presented Python commands are for most part supported in version 7.2.&lt;br /&gt;
&lt;br /&gt;
== What is Python? ==&lt;br /&gt;
Python is a standardized interpreted, high level programming language. It is used in many applications, mainly in AI and generative tasks. The amount of available libraries is outstanding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contents ==&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 10px&amp;quot; | [[1. Controlling MXW through Python]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 10px&amp;quot; | [[3. Python command reference | 2. Python command reference]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Python_Reference&amp;diff=6038</id>
		<title>Python Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Python_Reference&amp;diff=6038"/>
		<updated>2023-12-04T13:23:54Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document describes the MXWendler (MXW) Python command interface through an overview of the programming structure, with practical examples of automation and internal scripting. The presented Python commands are for most part supported in version 7.2.&lt;br /&gt;
&lt;br /&gt;
== What is Python? ==&lt;br /&gt;
Python is a standardized interpreted, high level programming language. It is used in many applications, mainly in AI and generative tasks. The amount of available libraries is outstanding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contents ==&lt;br /&gt;
[[Controlling MXW through Python]] &lt;br /&gt;
[[Python command reference]]&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=Python_Reference&amp;diff=6037</id>
		<title>Python Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=Python_Reference&amp;diff=6037"/>
		<updated>2023-12-04T13:22:56Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
This document describes the MXWendler (MXW) Python command interface through an overview of the programming structure, with practical examples of automation and internal scripting. The presented Python commands are for most part supported in version 7.2.&lt;br /&gt;
&lt;br /&gt;
== What is Python? ==&lt;br /&gt;
Python is a standardized interpreted, high level programming language. It is used in many applications, mainly in AI and generative tasks. The amount of available libraries is outstanding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contents ==&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 10px&amp;quot; | [[1. Controlling MXW through Python]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 10px&amp;quot; | [[3. Python command reference | 2. Python command reference]] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=1._Controlling_MXW_through_Python&amp;diff=6036</id>
		<title>1. Controlling MXW through Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=1._Controlling_MXW_through_Python&amp;diff=6036"/>
		<updated>2023-12-03T22:31:49Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Python is used in MXW trough a plugin interface. Specified program paths are searched for plugins which are registered, and then loaded through the user interface.&lt;br /&gt;
&lt;br /&gt;
As of version 7.2., plugins are available in the playlist. There are two paths searched during program startup, the program folder and the user folder:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;(Program folder)/plugins/playlist/python/&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;~.StageDesigner/plugins/playlist/python/ (Unix)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;~.StageDesigner/plugins/playlist/python/ (Windows)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each plugin resides in a folder. Inside this folder, two files have to be present,&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;mxw_plugin.ini&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;mxw_main.py&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The file &#039;&#039;&#039;mxw_plugin.ini&#039;&#039;&#039; defines the registration of the plugin. The following fields are valid:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: 0px;&amp;quot;&lt;br /&gt;
|+ Fields&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Use !! Values/Example&lt;br /&gt;
|-&lt;br /&gt;
| plugin_version || Plugin Version || 1&lt;br /&gt;
|-&lt;br /&gt;
| plugin_script_language || Plugin Script Language || Python&lt;br /&gt;
|-&lt;br /&gt;
| plugin_action_level || Plugin Activity Switch || disabled = not visible&lt;br /&gt;
|-&lt;br /&gt;
| plugin_menu_parent || Top level parent in playlist menu || &amp;quot;AI&amp;quot;, &amp;quot;IO&amp;quot; ..&lt;br /&gt;
|-&lt;br /&gt;
| plugin_menu_name || Playlist menu entry || &amp;quot;Face detection&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| plugin_grid_name || Default name in grid (may be completed via script) || &amp;quot;Face detect&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| plugin_grid_bg_color || Default color in grid (may be changed via script) || 0.95 0.05 0.45 1.00 (RGBA with range 0..1)&lt;br /&gt;
|-&lt;br /&gt;
| plugin_tooltip || Tool tip in grid and panel || &amp;quot;This plugin triggers the playlist when it finds a face&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An example mxw_plugin.ini looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot; line&amp;gt;&lt;br /&gt;
[mxw_plugin]                            ; must be here&lt;br /&gt;
plugin_version = 1                      ; must be V1 (as of V7.2)&lt;br /&gt;
plugin_script_language = Python         ; must be Python (as of V7.2)&lt;br /&gt;
plugin_menu_parent = AI&lt;br /&gt;
plugin_menu_name = NeuronalNet(Dlib) Face Detect Plugin&lt;br /&gt;
plugin_grid_name = Face Detect Plugin&lt;br /&gt;
plugin_grid_bg_color = 0.950000 0.050000 0.450000 1.000000 ; set plugin color.&lt;br /&gt;
plugin_tooltip = This plugin triggers the playlist when it finds a Face using a neuronal net (Dlib)&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plugins are defined in a mxw_main.py file. This file is loaded, and the main UI calls the provided interface functions. The following interface functions are available for playlist plugins:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: 0px;&amp;quot;&lt;br /&gt;
|+ Fields&lt;br /&gt;
|-&lt;br /&gt;
! Function Name !! Details&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onCreate()&#039;&#039;&#039; || Called when the plugin item is created&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onDelete()&#039;&#039;&#039; || Called when the plugin item is deleted. Note that this is only called on software shutdown, not called when the plugin is e.g. removed, since items are kept for eventual undo-operations&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getColorBG()&#039;&#039;&#039; || Get background color, called each render cycle&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onAction()&#039;&#039;&#039; || Called when cue is entered&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onPostAction()&#039;&#039;&#039; || Called when the cue is left&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onPreparePlayback()&#039;&#039;&#039; || Called when the playlist gets a preloading command (e.g. when the GoToStart button is pressed)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onActivateInUI()&#039;&#039;&#039; || Called when the item is selected in the ui&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onActiveCueChange()&#039;&#039;&#039; || Called when the playlist seeks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getDuration()&#039;&#039;&#039; || Get action duration&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getText()&#039;&#039;&#039; || Get grid text, called each render cycle (may display some information)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onCleanup()&#039;&#039;&#039; || Called when the playlist aborts or seeks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getTimeSinceOnActionIssued()&#039;&#039;&#039; ||Get action duration, called each render cycle (may display a countdown)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onPause()&#039;&#039;&#039; || Called when the playlist goes paused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that not all of the interface functions need to be implemented. If a function is not defined, it is probed but not called.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a minimal example of video writing and placing the recorded video into the first preload:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Python&amp;quot; line&amp;gt;&lt;br /&gt;
import tempfile&lt;br /&gt;
import mxw, mxw_imgui	# for mxw interaction, mxw ui interaction&lt;br /&gt;
import cv2 	        # image processing&lt;br /&gt;
import numpy as np	# math&lt;br /&gt;
&lt;br /&gt;
capture_device=&amp;quot;&amp;quot;&lt;br /&gt;
videosize = (640,480)&lt;br /&gt;
f = object()&lt;br /&gt;
out = object()&lt;br /&gt;
&lt;br /&gt;
def onCreate():&lt;br /&gt;
	global capture_device&lt;br /&gt;
	dev = mxw.media().get_capture_device_names()&lt;br /&gt;
	capture_device = dev[1]&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
def onAction():&lt;br /&gt;
	global capture_device, out, f&lt;br /&gt;
	f = tempfile.NamedTemporaryFile(suffix=&#039;.avi&#039;)&lt;br /&gt;
	f.close()&lt;br /&gt;
	fourcc = cv2.VideoWriter_fourcc(&#039;M&#039;,&#039;P&#039;,&#039;4&#039;,&#039;V&#039;)&lt;br /&gt;
	out = cv2.VideoWriter(f.name, fourcc, mxw.fps, videosize)&lt;br /&gt;
	m = mxw.media(capture_device)&lt;br /&gt;
	if(m.isvalid()):&lt;br /&gt;
		m.reference(True)&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
def onPostAction():&lt;br /&gt;
	global capture_device, out, f&lt;br /&gt;
	out.release()&lt;br /&gt;
	mxw.preload(1).set_media(f.name)&lt;br /&gt;
	m = mxw.media(capture_device)&lt;br /&gt;
	if(m.isvalid()):&lt;br /&gt;
		m.reference(False)&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
def onNewFrameInPlayoutCue():&lt;br /&gt;
	global capture_device, out, f&lt;br /&gt;
	m = mxw.media(capture_device)&lt;br /&gt;
	if(m.isvalid()):&lt;br /&gt;
		img = m.get_image_sample_cvmat(videosize[0],videosize[1])&lt;br /&gt;
		img = np.array(img, copy=False)&lt;br /&gt;
		img = cv2.flip(img, 0)&lt;br /&gt;
		out.write(img)&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
# render in panel for settings etc&lt;br /&gt;
def onRenderPanel():&lt;br /&gt;
	mxw_imgui.text_unformatted(&amp;quot;This plugin records a camera&amp;quot;)&lt;br /&gt;
	return&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=1._Controlling_MXW_through_Python&amp;diff=6035</id>
		<title>1. Controlling MXW through Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=1._Controlling_MXW_through_Python&amp;diff=6035"/>
		<updated>2023-12-03T22:29:17Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Python is used in MXW trough a plugin interface. Specified program paths are searched for plugins which are registered, and then loaded through the user interface.&lt;br /&gt;
&lt;br /&gt;
As of version 7.2., plugins are available in the playlist. There are two paths searched during program startup, the program folder and the user folder:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;(Program folder)/plugins/playlist/python/&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;~.StageDesigner/plugins/playlist/python/ (Unix)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;~.StageDesigner/plugins/playlist/python/ (Windows)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each plugin resides in a folder. Inside this folder, two files have to be present,&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;mxw_plugin.ini&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;mxw_main.py&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The file &#039;&#039;&#039;mxw_plugin.ini&#039;&#039;&#039; defines the registration of the plugin. The following fields are valid:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: 0px;&amp;quot;&lt;br /&gt;
|+ Fields&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Use !! Values/Example&lt;br /&gt;
|-&lt;br /&gt;
| plugin_version || Plugin Version || 1&lt;br /&gt;
|-&lt;br /&gt;
| plugin_script_language || Plugin Script Language || Python&lt;br /&gt;
|-&lt;br /&gt;
| plugin_action_level || Plugin Activity Switch || disabled = not visible&lt;br /&gt;
|-&lt;br /&gt;
| plugin_menu_parent || Top level parent in playlist menu || &amp;quot;AI&amp;quot;, &amp;quot;IO&amp;quot; ..&lt;br /&gt;
|-&lt;br /&gt;
| plugin_menu_name || Playlist menu entry || &amp;quot;Face detection&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| plugin_grid_name || Default name in grid (may be completed via script) || &amp;quot;Face detect&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| plugin_grid_bg_color || Default color in grid (may be changed via script) || 0.95 0.05 0.45 1.00 (RGBA with range 0..1)&lt;br /&gt;
|-&lt;br /&gt;
| plugin_tooltip || Tool tip in grid and panel || &amp;quot;This plugin triggers the playlist when it finds a Face&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An example mxw_plugin.ini looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot; line&amp;gt;&lt;br /&gt;
[mxw_plugin]                            ; must be here&lt;br /&gt;
plugin_version = 1                      ; must be V1 (as of V7.2)&lt;br /&gt;
plugin_script_language = Python         ; must be Python (as of V7.2)&lt;br /&gt;
plugin_menu_parent = AI&lt;br /&gt;
plugin_menu_name = NeuronalNet(Dlib) Face Detect Plugin&lt;br /&gt;
plugin_grid_name = Face Detect Plugin&lt;br /&gt;
plugin_grid_bg_color = 0.950000 0.050000 0.450000 1.000000 ; set plugin color.&lt;br /&gt;
plugin_tooltip = This plugin triggers the playlist when it finds a Face using a neuronal net (Dlib)&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plugins are defined in a mxw_main.py file. This file is loaded, and the main UI calls the provided interface functions. The following interface functions are available for playlist plugins:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: 0px;&amp;quot;&lt;br /&gt;
|+ Fields&lt;br /&gt;
|-&lt;br /&gt;
! Function Name !! Details&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onCreate()&#039;&#039;&#039; || Called when the plugin item is created&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onDelete()&#039;&#039;&#039; || Called when the plugin item is deleted. Note that this is only called on software shutdown, not called when the plugin is e.g. removed, since items are kept for eventual undo-operations&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getColorBG()&#039;&#039;&#039; || Get background color, called each render cycle&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onAction()&#039;&#039;&#039; || Called when cue is entered&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onPostAction()&#039;&#039;&#039; || Called when the cue is left&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onPreparePlayback()&#039;&#039;&#039; || Called when the playlist gets a preloading command (e.g. when the GoToStart button is pressed)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onActivateInUI()&#039;&#039;&#039; || Called when the item is selected in the ui&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onActiveCueChange()&#039;&#039;&#039; || Called when the playlist seeks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getDuration()&#039;&#039;&#039; || Get action duration&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getText()&#039;&#039;&#039; || Get grid text, called each render cycle (may display some information)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onCleanup()&#039;&#039;&#039; || Called when the playlist aborts or seeks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getTimeSinceOnActionIssued()&#039;&#039;&#039; ||Get action duration, called each render cycle (may display a countdown)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onPause()&#039;&#039;&#039; || Called when the playlist goes paused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that not all of the interface functions need to be implemented. If a function is not defined, it is probed but not called.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a minimal example of video writing and placing the recorded video into the first preload:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Python&amp;quot; line&amp;gt;&lt;br /&gt;
import tempfile&lt;br /&gt;
import mxw, mxw_imgui	# for mxw interaction, mxw ui interaction&lt;br /&gt;
import cv2 	        # image processing&lt;br /&gt;
import numpy as np	# math&lt;br /&gt;
&lt;br /&gt;
capture_device=&amp;quot;&amp;quot;&lt;br /&gt;
videosize = (640,480)&lt;br /&gt;
f = object()&lt;br /&gt;
out = object()&lt;br /&gt;
&lt;br /&gt;
def onCreate():&lt;br /&gt;
	global capture_device&lt;br /&gt;
	dev = mxw.media().get_capture_device_names()&lt;br /&gt;
	capture_device = dev[1]&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
def onAction():&lt;br /&gt;
	global capture_device, out, f&lt;br /&gt;
	f = tempfile.NamedTemporaryFile(suffix=&#039;.avi&#039;)&lt;br /&gt;
	f.close()&lt;br /&gt;
	fourcc = cv2.VideoWriter_fourcc(&#039;M&#039;,&#039;P&#039;,&#039;4&#039;,&#039;V&#039;)&lt;br /&gt;
	out = cv2.VideoWriter(f.name, fourcc, mxw.fps, videosize)&lt;br /&gt;
	m = mxw.media(capture_device)&lt;br /&gt;
	if(m.isvalid()):&lt;br /&gt;
		m.reference(True)&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
def onPostAction():&lt;br /&gt;
	global capture_device, out, f&lt;br /&gt;
	out.release()&lt;br /&gt;
	mxw.preload(1).set_media(f.name)&lt;br /&gt;
	m = mxw.media(capture_device)&lt;br /&gt;
	if(m.isvalid()):&lt;br /&gt;
		m.reference(False)&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
def onNewFrameInPlayoutCue():&lt;br /&gt;
	global capture_device, out, f&lt;br /&gt;
	m = mxw.media(capture_device)&lt;br /&gt;
	if(m.isvalid()):&lt;br /&gt;
		img = m.get_image_sample_cvmat(videosize[0],videosize[1])&lt;br /&gt;
		img = np.array(img, copy=False)&lt;br /&gt;
		img = cv2.flip(img, 0)&lt;br /&gt;
		out.write(img)&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
# render in panel for settings etc&lt;br /&gt;
def onRenderPanel():&lt;br /&gt;
	mxw_imgui.text_unformatted(&amp;quot;This plugin records a camera&amp;quot;)&lt;br /&gt;
	return&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=1._Controlling_MXW_through_Python&amp;diff=6034</id>
		<title>1. Controlling MXW through Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=1._Controlling_MXW_through_Python&amp;diff=6034"/>
		<updated>2023-12-03T22:28:58Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Python is used in MXW trough a plugin interface. Specified program paths are searched for plugins which are registered, and then loaded through the user interface.&lt;br /&gt;
&lt;br /&gt;
As of version 7.2., plugins are available in the playlist. There are two paths searched during program startup, the program folder and the user folder:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;(Program folder)/plugins/playlist/python/&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;~.StageDesigner/plugins/playlist/python/ (Unix)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;~.StageDesigner/plugins/playlist/python/ (Windows)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each plugin resides in a folder. Inside this folder, two files have to be present,&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;mxw_plugin.ini&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;mxw_main.py&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The file &#039;&#039;&#039;mxw_plugin.ini&#039;&#039;&#039; defines the registration of the plugin. The following fields are valid:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: 0px;&amp;quot;&lt;br /&gt;
|+ Fields&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Use !! Values/Example&lt;br /&gt;
|-&lt;br /&gt;
| plugin_version || Plugin Version || 1&lt;br /&gt;
|-&lt;br /&gt;
| plugin_script_language || Plugin Script Language || Python&lt;br /&gt;
|-&lt;br /&gt;
| plugin_action_level || Plugin Activity Switch || disabled = not visible&lt;br /&gt;
|-&lt;br /&gt;
| plugin_menu_parent || Top level parent in playlist menu || &amp;quot;AI&amp;quot;, &amp;quot;IO&amp;quot; ..&lt;br /&gt;
|-&lt;br /&gt;
| plugin_menu_name || Playlist menu entry || &amp;quot;Face detection&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| plugin_grid_name || Default name in grid (may be completed via script) || &amp;quot;Face detect&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| plugin_grid_bg_color || Default color in grid (may be changed via script) || 0.95 0.05 0.45 1.00 (RGBA with range 0..1)&lt;br /&gt;
|-&lt;br /&gt;
| plugin_tooltip || Tool tip in grid and panel || &amp;quot;This plugin triggers the playlist when it finds a Face&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An example mxw_plugin.ini looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot; line&amp;gt;&lt;br /&gt;
[mxw_plugin]                            ; must be here&lt;br /&gt;
plugin_version = 1                      ; must be V1 (as of V7.2)&lt;br /&gt;
plugin_script_language = Python         ; must be Python (as of V7.2)&lt;br /&gt;
plugin_menu_parent = AI&lt;br /&gt;
plugin_menu_name = NeuronalNet(Dlib) Face Detect Plugin&lt;br /&gt;
plugin_grid_name = Face Detect Plugin&lt;br /&gt;
plugin_grid_bg_color = 0.950000 0.050000 0.450000 1.000000 ; set plugin color.&lt;br /&gt;
plugin_tooltip = This plugin triggers the playlist when it finds a Face using a neuronal net (Dlib)&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plugins are defined in a mxw_main.py file. This file is loaded, and the main UI calls the provided interface functions. The following interface functions are available for playlist plugins:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Fields&lt;br /&gt;
|-&lt;br /&gt;
! Function Name !! Details&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onCreate()&#039;&#039;&#039; || Called when the plugin item is created&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onDelete()&#039;&#039;&#039; || Called when the plugin item is deleted. Note that this is only called on software shutdown, not called when the plugin is e.g. removed, since items are kept for eventual undo-operations&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getColorBG()&#039;&#039;&#039; || Get background color, called each render cycle&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onAction()&#039;&#039;&#039; || Called when cue is entered&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onPostAction()&#039;&#039;&#039; || Called when the cue is left&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onPreparePlayback()&#039;&#039;&#039; || Called when the playlist gets a preloading command (e.g. when the GoToStart button is pressed)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onActivateInUI()&#039;&#039;&#039; || Called when the item is selected in the ui&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onActiveCueChange()&#039;&#039;&#039; || Called when the playlist seeks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getDuration()&#039;&#039;&#039; || Get action duration&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getText()&#039;&#039;&#039; || Get grid text, called each render cycle (may display some information)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onCleanup()&#039;&#039;&#039; || Called when the playlist aborts or seeks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getTimeSinceOnActionIssued()&#039;&#039;&#039; ||Get action duration, called each render cycle (may display a countdown)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onPause()&#039;&#039;&#039; || Called when the playlist goes paused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that not all of the interface functions need to be implemented. If a function is not defined, it is probed but not called.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a minimal example of video writing and placing the recorded video into the first preload:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Python&amp;quot; line&amp;gt;&lt;br /&gt;
import tempfile&lt;br /&gt;
import mxw, mxw_imgui	# for mxw interaction, mxw ui interaction&lt;br /&gt;
import cv2 	        # image processing&lt;br /&gt;
import numpy as np	# math&lt;br /&gt;
&lt;br /&gt;
capture_device=&amp;quot;&amp;quot;&lt;br /&gt;
videosize = (640,480)&lt;br /&gt;
f = object()&lt;br /&gt;
out = object()&lt;br /&gt;
&lt;br /&gt;
def onCreate():&lt;br /&gt;
	global capture_device&lt;br /&gt;
	dev = mxw.media().get_capture_device_names()&lt;br /&gt;
	capture_device = dev[1]&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
def onAction():&lt;br /&gt;
	global capture_device, out, f&lt;br /&gt;
	f = tempfile.NamedTemporaryFile(suffix=&#039;.avi&#039;)&lt;br /&gt;
	f.close()&lt;br /&gt;
	fourcc = cv2.VideoWriter_fourcc(&#039;M&#039;,&#039;P&#039;,&#039;4&#039;,&#039;V&#039;)&lt;br /&gt;
	out = cv2.VideoWriter(f.name, fourcc, mxw.fps, videosize)&lt;br /&gt;
	m = mxw.media(capture_device)&lt;br /&gt;
	if(m.isvalid()):&lt;br /&gt;
		m.reference(True)&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
def onPostAction():&lt;br /&gt;
	global capture_device, out, f&lt;br /&gt;
	out.release()&lt;br /&gt;
	mxw.preload(1).set_media(f.name)&lt;br /&gt;
	m = mxw.media(capture_device)&lt;br /&gt;
	if(m.isvalid()):&lt;br /&gt;
		m.reference(False)&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
def onNewFrameInPlayoutCue():&lt;br /&gt;
	global capture_device, out, f&lt;br /&gt;
	m = mxw.media(capture_device)&lt;br /&gt;
	if(m.isvalid()):&lt;br /&gt;
		img = m.get_image_sample_cvmat(videosize[0],videosize[1])&lt;br /&gt;
		img = np.array(img, copy=False)&lt;br /&gt;
		img = cv2.flip(img, 0)&lt;br /&gt;
		out.write(img)&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
# render in panel for settings etc&lt;br /&gt;
def onRenderPanel():&lt;br /&gt;
	mxw_imgui.text_unformatted(&amp;quot;This plugin records a camera&amp;quot;)&lt;br /&gt;
	return&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=1._Controlling_MXW_through_Python&amp;diff=6033</id>
		<title>1. Controlling MXW through Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=1._Controlling_MXW_through_Python&amp;diff=6033"/>
		<updated>2023-12-03T22:28:37Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Python is used in MXW trough a plugin interface. Specified program paths are searched for plugins which are registered, and then loaded through the user interface.&lt;br /&gt;
&lt;br /&gt;
As of version 7.2., plugins are available in the playlist. There are two paths searched during program startup, the program folder and the user folder:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;(Program folder)/plugins/playlist/python/&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;~.StageDesigner/plugins/playlist/python/ (Unix)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;~.StageDesigner/plugins/playlist/python/ (Windows)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each plugin resides in a folder. Inside this folder, two files have to be present,&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;mxw_plugin.ini&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;mxw_main.py&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The file &#039;&#039;&#039;mxw_plugin.ini&#039;&#039;&#039; defines the registration of the plugin. The following fields are valid:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: 0px; margin-right: 0px;&amp;quot;&lt;br /&gt;
|+ Fields&lt;br /&gt;
|-&lt;br /&gt;
! Tag !! Use !! Values/Example&lt;br /&gt;
|-&lt;br /&gt;
| plugin_version || Plugin Version || 1&lt;br /&gt;
|-&lt;br /&gt;
| plugin_script_language || Plugin Script Language || Python&lt;br /&gt;
|-&lt;br /&gt;
| plugin_action_level || Plugin Activity Switch || disabled = not visible&lt;br /&gt;
|-&lt;br /&gt;
| plugin_menu_parent || Top level parent in playlist menu || &amp;quot;AI&amp;quot;, &amp;quot;IO&amp;quot; ..&lt;br /&gt;
|-&lt;br /&gt;
| plugin_menu_name || Playlist menu entry || &amp;quot;Face detection&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| plugin_grid_name || Default name in grid (may be completed via script) || &amp;quot;Face detect&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| plugin_grid_bg_color || Default color in grid (may be changed via script) || 0.95 0.05 0.45 1.00 (RGBA with range 0..1)&lt;br /&gt;
|-&lt;br /&gt;
| plugin_tooltip || Tool tip in grid and panel || &amp;quot;This plugin triggers the playlist when it finds a Face&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An example mxw_plugin.ini looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot; line&amp;gt;&lt;br /&gt;
[mxw_plugin]                            ; must be here&lt;br /&gt;
plugin_version = 1                      ; must be V1 (as of V7.2)&lt;br /&gt;
plugin_script_language = Python         ; must be Python (as of V7.2)&lt;br /&gt;
plugin_menu_parent = AI&lt;br /&gt;
plugin_menu_name = NeuronalNet(Dlib) Face Detect Plugin&lt;br /&gt;
plugin_grid_name = Face Detect Plugin&lt;br /&gt;
plugin_grid_bg_color = 0.950000 0.050000 0.450000 1.000000 ; set plugin color.&lt;br /&gt;
plugin_tooltip = This plugin triggers the playlist when it finds a Face using a neuronal net (Dlib)&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plugins are defined in a mxw_main.py file. This file is loaded, and the main UI calls the provided interface functions. The following interface functions are available for playlist plugins:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Fields&lt;br /&gt;
|-&lt;br /&gt;
! Function Name !! Details&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onCreate()&#039;&#039;&#039; || Called when the plugin item is created&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onDelete()&#039;&#039;&#039; || Called when the plugin item is deleted. Note that this is only called on software shutdown, not called when the plugin is e.g. removed, since items are kept for eventual undo-operations&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getColorBG()&#039;&#039;&#039; || Get background color, called each render cycle&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onAction()&#039;&#039;&#039; || Called when cue is entered&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onPostAction()&#039;&#039;&#039; || Called when the cue is left&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onPreparePlayback()&#039;&#039;&#039; || Called when the playlist gets a preloading command (e.g. when the GoToStart button is pressed)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onActivateInUI()&#039;&#039;&#039; || Called when the item is selected in the ui&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onActiveCueChange()&#039;&#039;&#039; || Called when the playlist seeks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getDuration()&#039;&#039;&#039; || Get action duration&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getText()&#039;&#039;&#039; || Get grid text, called each render cycle (may display some information)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onCleanup()&#039;&#039;&#039; || Called when the playlist aborts or seeks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;getTimeSinceOnActionIssued()&#039;&#039;&#039; ||Get action duration, called each render cycle (may display a countdown)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onPause()&#039;&#039;&#039; || Called when the playlist goes paused&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that not all of the interface functions need to be implemented. If a function is not defined, it is probed but not called.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a minimal example of video writing and placing the recorded video into the first preload:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Python&amp;quot; line&amp;gt;&lt;br /&gt;
import tempfile&lt;br /&gt;
import mxw, mxw_imgui	# for mxw interaction, mxw ui interaction&lt;br /&gt;
import cv2 	        # image processing&lt;br /&gt;
import numpy as np	# math&lt;br /&gt;
&lt;br /&gt;
capture_device=&amp;quot;&amp;quot;&lt;br /&gt;
videosize = (640,480)&lt;br /&gt;
f = object()&lt;br /&gt;
out = object()&lt;br /&gt;
&lt;br /&gt;
def onCreate():&lt;br /&gt;
	global capture_device&lt;br /&gt;
	dev = mxw.media().get_capture_device_names()&lt;br /&gt;
	capture_device = dev[1]&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
def onAction():&lt;br /&gt;
	global capture_device, out, f&lt;br /&gt;
	f = tempfile.NamedTemporaryFile(suffix=&#039;.avi&#039;)&lt;br /&gt;
	f.close()&lt;br /&gt;
	fourcc = cv2.VideoWriter_fourcc(&#039;M&#039;,&#039;P&#039;,&#039;4&#039;,&#039;V&#039;)&lt;br /&gt;
	out = cv2.VideoWriter(f.name, fourcc, mxw.fps, videosize)&lt;br /&gt;
	m = mxw.media(capture_device)&lt;br /&gt;
	if(m.isvalid()):&lt;br /&gt;
		m.reference(True)&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
def onPostAction():&lt;br /&gt;
	global capture_device, out, f&lt;br /&gt;
	out.release()&lt;br /&gt;
	mxw.preload(1).set_media(f.name)&lt;br /&gt;
	m = mxw.media(capture_device)&lt;br /&gt;
	if(m.isvalid()):&lt;br /&gt;
		m.reference(False)&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
def onNewFrameInPlayoutCue():&lt;br /&gt;
	global capture_device, out, f&lt;br /&gt;
	m = mxw.media(capture_device)&lt;br /&gt;
	if(m.isvalid()):&lt;br /&gt;
		img = m.get_image_sample_cvmat(videosize[0],videosize[1])&lt;br /&gt;
		img = np.array(img, copy=False)&lt;br /&gt;
		img = cv2.flip(img, 0)&lt;br /&gt;
		out.write(img)&lt;br /&gt;
	return&lt;br /&gt;
&lt;br /&gt;
# render in panel for settings etc&lt;br /&gt;
def onRenderPanel():&lt;br /&gt;
	mxw_imgui.text_unformatted(&amp;quot;This plugin records a camera&amp;quot;)&lt;br /&gt;
	return&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6032</id>
		<title>3. Python command reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6032"/>
		<updated>2023-12-03T22:10:30Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* Set Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are listed the main commands that can be used for scripting with Python.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
Here are listed all the commands that MXW recognizes.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Reference===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PYTHON COMMAND/SYMBOL !! DESCRIPTION !! EXAMPLE&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Software Info&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.millis&amp;lt;/code&amp;gt;|| returns the amount of milliseconds passed since opening the software|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;current passed time is&amp;quot; + str(mxw.millis) );&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.width&amp;lt;/code&amp;gt;||returns the current frame width in px|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;frame width is&amp;quot; + str(mxw.width) );&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.height&amp;lt;/code&amp;gt;||returns the current frame height in px|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;frame height is&amp;quot; + str(mxw.height));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outwidth&amp;lt;/code&amp;gt;||returns current output width|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;output height is&amp;quot; + str(mxw.outwidth));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outheight&amp;lt;/code&amp;gt;||returns the current output height|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;output width is&amp;quot; + str(mxw.outheight));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.framecounter&amp;lt;/code&amp;gt;||returns the amount of frames rendered since opening the software|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;total number of frames rendered is&amp;quot; + str(mxw.framecounter));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.print_console(&amp;quot;text&amp;quot; + mxw.widget(&amp;quot;/mxw/path&amp;quot;).getStringValue())&amp;lt;/code&amp;gt; || prints the name of the desired playlist cue || &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;The clip name in the second cue is&amp;quot; + mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).getStringValue());&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.print_statusline(&amp;quot;text&amp;quot;)&amp;lt;/code&amp;gt; || print text on the status line|| &amp;lt;code&amp;gt;print text on status line()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | I/O&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.dmx()&amp;lt;/code&amp;gt; ||returns the DMX value received from the specified universe and channel|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;DMX value in u. 1, ch. 4 is&amp;quot; + mxw.dmx(1,4));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.midi()&amp;lt;/code&amp;gt;||returns the MIDI value received from the specified device and channel|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;MIDI value in dev. 1, ch. 6 is&amp;quot; + mxw.midi(1,6));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.keyboard(&amp;quot;ASCII_code&amp;quot;)&amp;lt;/code&amp;gt; || returns if the specified key is pressed or not || &amp;lt;code&amp;gt;mxw.keyboard(65)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and turns it on || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and turns it off|| &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and mutes audio and video || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and unmutes audio and video || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and mutes video || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and unmutes video || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt; || control if a NDI Camera supports PTZ || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom of a NDI PTZ Camera, values from 0(zoomed in) to 1(zoomed out) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, value_pan, value_tilt)&amp;lt;/code&amp;gt; || control the pan and tilting of a NDI PTZ Camera (values from -1 to 1) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, -0.5, 0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom_speed&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom speed a NDI PTZ Camera, values from -1(zoom outwards) to 1 (zoom inwards) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, pan_speed, tilt_speed)&amp;lt;/code&amp;gt; || control the pan and tilt speed a NDI PTZ Camera, values -1 (move right/down) to 1 (move left/up) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, -0.3, 0.8)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, preset_number)&amp;lt;/code&amp;gt; || store current position, focus, zoom, values 0 to 99 || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, 75)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;,preset_number, speed)&amp;lt;/code&amp;gt; || recalls a previously stored preset,values 0 to 99 and changes to it at a specific speed (values 0 to 1) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;, 4, 0.5 )&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_auto_focus&amp;quot;)&amp;lt;/code&amp;gt; || activates or deactivates the camera in auto-focus || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz.autofocus&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, focus_value)&amp;lt;/code&amp;gt; || focus to absolute value (0= focused to infinity, 1= focus the closest possible)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, speed_value)&amp;lt;/code&amp;gt; || focus at a particular speed, values from -1(outwards), to  1 (inwards)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, -0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto white-balance mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in indoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in outdoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt; ||use the current brightness to automatically set the current white balance|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, red value, blue value)&amp;lt;/code&amp;gt; || Set the manual camera white balance using the R, B values, (0.0 = not red/not blue , 1.0 = very red/very blue)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, 0.1, 0.7)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto-exposure mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, exposure_level)&amp;lt;/code&amp;gt; || manually set the camera exposure iris, values from 0.0(dark) to 1.0(light)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, 0.4)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, iris_level, gain_level, shutter_speed)&amp;lt;/code&amp;gt; || Manually set the camera exposure parameters, values iris from 0.0(dark) to 1.0(light), values gain from 0.0(dark) to 1.0(light), values shutter_speed from 0.0(slow) to 1.0(fast) || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, 0.4, 0.2, 0.5) &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Playlist Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt; || preload used media || &amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt; || pause the playlists or restart if already paused|| &amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt; || play the playlist || &amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_pause()( true/false )&amp;lt;/code&amp;gt; || pause the playlist (when true), unpause the playlist (when false) || &amp;lt;code&amp;gt;mxw.playlist.go_pause()(true)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt; || skip to the next cue || &amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt; || go to the next cue without playing || &amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt; || go to previous cue || &amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt; || go to the first cue || &amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_index(index_value)&amp;lt;/code&amp;gt; || go to the specified cue index|| &amp;lt;code&amp;gt;mxw.playlist.navigate_index(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;index_string&amp;quot;)&amp;lt;/code&amp;gt; || go to the specified cue string|| &amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;BG_video2&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Preload Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).clear()&amp;lt;/code&amp;gt; || clears the selected preload || &amp;lt;code&amp;gt;mxw.preload(2).clear()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_media(&amp;quot;media_name&amp;quot;)&amp;lt;/code&amp;gt; || set a media in the preload with a filename string || &amp;lt;code&amp;gt;mxw.preload(2).set_media(&amp;quot;try.mp4&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_name(&amp;quot;new_media_name&amp;quot;)&amp;lt;/code&amp;gt; || renames a preload || &amp;lt;code&amp;gt;mxw.preload(2).set_name(&amp;quot;new_background&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).add_preload()&amp;lt;/code&amp;gt; || load a preload in the layers || &amp;lt;code&amp;gt;mxw.preload(2).add_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).trigger_preload()&amp;lt;/code&amp;gt; || trigger a layer from the preload || &amp;lt;code&amp;gt;mxw.preload(2).trigger_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_activated()&amp;lt;/code&amp;gt; || requests if the preload is editable || &amp;lt;code&amp;gt;mxw.preload(2).get_activated()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_activated(true/false)&amp;lt;/code&amp;gt; || opens the preload for edit and viceversa || &amp;lt;code&amp;gt;mxw.preload(2).set_activated(false)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_layer_position()&amp;lt;/code&amp;gt; || returns the layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(2).get_layer_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_track_position()&amp;lt;/code&amp;gt; || returns the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(2).get_track_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_layer_position(layer_pos)&amp;lt;/code&amp;gt; || set layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(2).set_layer_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_track_position(track_pos)&amp;lt;/code&amp;gt; || set the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(2).set_track_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;directory_saving_path&amp;quot;, initial_x, initial_y, size_x, size_y)&amp;lt;/code&amp;gt; || saves a cropped screenshot in the set path|| &amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;c:/Users/MXWendler/Desktop/b.png&amp;quot;, 0,1, 400, 200)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/path&amp;quot;).setStringValue(&amp;quot;named by script&amp;quot;)&amp;lt;/code&amp;gt; || set the name of a cue in the playlist|| &amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).setStringValue(&amp;quot;background videoclip&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6031</id>
		<title>3. Python command reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6031"/>
		<updated>2023-12-03T22:08:02Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* Set Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are listed the main commands that can be used for scripting with Python.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
Here are listed all the commands that MXW recognizes.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Reference===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PYTHON COMMAND/SYMBOL !! DESCRIPTION !! EXAMPLE&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Software Info&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.millis&amp;lt;/code&amp;gt;|| returns the amount of milliseconds passed since opening the software|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;current passed time is&amp;quot; + str(mxw.millis) );&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.width&amp;lt;/code&amp;gt;||returns the current frame width in px|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;frame width is&amp;quot; + str(mxw.width) );&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.height&amp;lt;/code&amp;gt;||returns the current frame height in px|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;frame height is&amp;quot; + str(mxw.height));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outwidth&amp;lt;/code&amp;gt;||returns current output width|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;output height is&amp;quot; + str(mxw.outwidth));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outheight&amp;lt;/code&amp;gt;||returns the current output height|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;output width is&amp;quot; + str(mxw.outheight));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.framecounter&amp;lt;/code&amp;gt;||returns the amount of frames rendered since opening the software|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;total number of frames rendered is&amp;quot; + str(mxw.framecounter));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.print_console(&amp;quot;text&amp;quot; + mxw.widget(&amp;quot;/mxw/path&amp;quot;).getStringValue())&amp;lt;/code&amp;gt; || prints the name of the desired playlist cue || &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;The clip name in the second cue is&amp;quot; + mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).getStringValue());&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.print_statusline(&amp;quot;text&amp;quot;)&amp;lt;/code&amp;gt; || print text on the status line|| &amp;lt;code&amp;gt;print text on status line()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | I/O&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.dmx()&amp;lt;/code&amp;gt; ||returns the DMX value received from the specified universe and channel|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;DMX value in u. 1, ch. 4 is&amp;quot; + mxw.dmx(1,4));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.midi()&amp;lt;/code&amp;gt;||returns the MIDI value received from the specified device and channel|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;MIDI value in dev. 1, ch. 6 is&amp;quot; + mxw.midi(1,6));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.keyboard(&amp;quot;ASCII_code&amp;quot;)&amp;lt;/code&amp;gt; || returns if the specified key is pressed or not || &amp;lt;code&amp;gt;mxw.keyboard(65)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and turns it on || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and turns it off|| &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and mutes audio and video || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and unmutes audio and video || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and mutes video || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a.io.pjlink command to the selected projector and unmutes video || &amp;lt;code&amp;gt;mxw.io.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt; || control if a NDI Camera supports PTZ || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom of a NDI PTZ Camera, values from 0(zoomed in) to 1(zoomed out) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, value_pan, value_tilt)&amp;lt;/code&amp;gt; || control the pan and tilting of a NDI PTZ Camera (values from -1 to 1) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, -0.5, 0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom_speed&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom speed a NDI PTZ Camera, values from -1(zoom outwards) to 1 (zoom inwards) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, pan_speed, tilt_speed)&amp;lt;/code&amp;gt; || control the pan and tilt speed a NDI PTZ Camera, values -1 (move right/down) to 1 (move left/up) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, -0.3, 0.8)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, preset_number)&amp;lt;/code&amp;gt; || store current position, focus, zoom, values 0 to 99 || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, 75)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;,preset_number, speed)&amp;lt;/code&amp;gt; || recalls a previously stored preset,values 0 to 99 and changes to it at a specific speed (values 0 to 1) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;, 4, 0.5 )&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_auto_focus&amp;quot;)&amp;lt;/code&amp;gt; || activates or deactivates the camera in auto-focus || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz.autofocus&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, focus_value)&amp;lt;/code&amp;gt; || focus to absolute value (0= focused to infinity, 1= focus the closest possible)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, speed_value)&amp;lt;/code&amp;gt; || focus at a particular speed, values from -1(outwards), to  1 (inwards)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, -0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto white-balance mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in indoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in outdoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt; ||use the current brightness to automatically set the current white balance|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, red value, blue value)&amp;lt;/code&amp;gt; || Set the manual camera white balance using the R, B values, (0.0 = not red/not blue , 1.0 = very red/very blue)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, 0.1, 0.7)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto-exposure mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, exposure_level)&amp;lt;/code&amp;gt; || manually set the camera exposure iris, values from 0.0(dark) to 1.0(light)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, 0.4)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, iris_level, gain_level, shutter_speed)&amp;lt;/code&amp;gt; || Manually set the camera exposure parameters, values iris from 0.0(dark) to 1.0(light), values gain from 0.0(dark) to 1.0(light), values shutter_speed from 0.0(slow) to 1.0(fast) || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, 0.4, 0.2, 0.5) &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Playlist Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt; || preload used media || &amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt; || pause the playlists or restart if already paused|| &amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt; || play the playlist || &amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_pause()( true/false )&amp;lt;/code&amp;gt; || pause the playlist (when true), unpause the playlist (when false) || &amp;lt;code&amp;gt;mxw.playlist.go_pause()(true)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt; || skip to the next cue || &amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt; || go to the next cue without playing || &amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt; || go to previous cue || &amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt; || go to the first cue || &amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_index(index_value)&amp;lt;/code&amp;gt; || go to the specified cue index|| &amp;lt;code&amp;gt;mxw.playlist.navigate_index(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;index_string&amp;quot;)&amp;lt;/code&amp;gt; || go to the specified cue string|| &amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;BG_video2&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Preload Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).clear()&amp;lt;/code&amp;gt; || clears the selected preload || &amp;lt;code&amp;gt;mxw.preload(2).clear()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_media(&amp;quot;media_name&amp;quot;)&amp;lt;/code&amp;gt; || set a media in the preload with a filename string || &amp;lt;code&amp;gt;mxw.preload(preload_number).set_media(&amp;quot;try.mp4&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_name(&amp;quot;new_media_name&amp;quot;)&amp;lt;/code&amp;gt; || renames a preload || &amp;lt;code&amp;gt;mxw.preload(4).set_name(&amp;quot;new_background&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).add_preload()&amp;lt;/code&amp;gt; || load a preload in the layers || &amp;lt;code&amp;gt;mxw.preload(3).add_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).trigger_preload()&amp;lt;/code&amp;gt; || trigger a layer from the preload || &amp;lt;code&amp;gt;mxw.preload(5).trigger_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_activated()&amp;lt;/code&amp;gt; || requests if the preload is editable || &amp;lt;code&amp;gt;mxw.preload(9).get_activated()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_activated(true/false)&amp;lt;/code&amp;gt; || opens the preload for edit and viceversa || &amp;lt;code&amp;gt;mxw.preload(12).set_activated(false)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_layer_position()&amp;lt;/code&amp;gt; || returns the layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(1).get_layer_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_track_position()&amp;lt;/code&amp;gt; || returns the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(8).get_track_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_layer_position(layer_pos)&amp;lt;/code&amp;gt; || set layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(7).set_layer_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_track_position(track_pos)&amp;lt;/code&amp;gt; || set the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(11).set_track_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;directory_saving_path&amp;quot;, initial_x, initial_y, size_x, size_y)&amp;lt;/code&amp;gt; || saves a cropped screenshot in the desiderd path|| &amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;c:/Users/MXWendler/Desktop/b.png&amp;quot;, 0,1, 400, 200)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/path&amp;quot;).setStringValue(&amp;quot;named by script&amp;quot;)&amp;lt;/code&amp;gt; || set the name of a cue in the playlist|| &amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).setStringValue(&amp;quot;background videoclip&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6030</id>
		<title>3. Python command reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6030"/>
		<updated>2023-12-03T22:04:59Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* Set Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are listed the main commands that can be used for scripting with Python.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
Here are listed all the commands that MXW recognizes.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Reference===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PYTHON COMMAND/SYMBOL !! DESCRIPTION !! EXAMPLE&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Software Info&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.millis&amp;lt;/code&amp;gt;|| returns the amount of milliseconds passed since opening the software|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;current passed time is&amp;quot; + str(mxw.millis) );&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.width&amp;lt;/code&amp;gt;||returns the current frame width in px|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;frame width is&amp;quot; + str(mxw.width) );&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.height&amp;lt;/code&amp;gt;||returns the current frame height in px|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;frame height is&amp;quot; + str(mxw.height));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outwidth&amp;lt;/code&amp;gt;||returns current output width|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;output height is&amp;quot; + str(mxw.outwidth));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outheight&amp;lt;/code&amp;gt;||returns the current output height|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;output width is&amp;quot; + str(mxw.outheight));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.framecounter&amp;lt;/code&amp;gt;||returns the amount of frames rendered since opening the software|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;total number of frames rendered is&amp;quot; + str(mxw.framecounter));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.print_console(&amp;quot;text&amp;quot; + mxw.widget(&amp;quot;/mxw/path&amp;quot;).getStringValue())&amp;lt;/code&amp;gt; || prints the name of the desired playlist cue || &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;The clip name in the second cue is&amp;quot; + mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).getStringValue());&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.print_statusline(&amp;quot;text&amp;quot;)&amp;lt;/code&amp;gt; || print text on the status line|| &amp;lt;code&amp;gt;print text on status line()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | I/O&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.dmx()&amp;lt;/code&amp;gt; ||returns the DMX value received from the specified universe and channel|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;DMX value in u. 1, ch. 4 is&amp;quot; + mxw.dmx(1,4));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.midi()&amp;lt;/code&amp;gt;||returns the MIDI value received from the specified device and channel|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;MIDI value in dev. 1, ch. 6 is&amp;quot; + mxw.midi(1,6));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.keyboard(&amp;quot;ASCII_code&amp;quot;)&amp;lt;/code&amp;gt; || returns if the specified key is pressed or not || &amp;lt;code&amp;gt;mxw.keyboard(65)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and turns it on || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and turns it off|| &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and mutes audio and video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and unmutes audio and video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and mutes video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and unmutes video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt; || control if a NDI Camera supports PTZ || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom of a NDI PTZ Camera, values from 0(zoomed in) to 1(zoomed out) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, value_pan, value_tilt)&amp;lt;/code&amp;gt; || control the pan and tilting of a NDI PTZ Camera (values from -1 to 1) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, -0.5, 0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom_speed&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom speed a NDI PTZ Camera, values from -1(zoom outwards) to 1 (zoom inwards) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, pan_speed, tilt_speed)&amp;lt;/code&amp;gt; || control the pan and tilt speed a NDI PTZ Camera, values -1 (move right/down) to 1 (move left/up) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, -0.3, 0.8)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, preset_number)&amp;lt;/code&amp;gt; || store current position, focus, zoom, values 0 to 99 || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, 75)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;,preset_number, speed)&amp;lt;/code&amp;gt; || recalls a previously stored preset,values 0 to 99 and changes to it at a specific speed (values 0 to 1) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;, 4, 0.5 )&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_auto_focus&amp;quot;)&amp;lt;/code&amp;gt; || activates or deactivates the camera in auto-focus || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz.autofocus&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, focus_value)&amp;lt;/code&amp;gt; || focus to absolute value (0= focused to infinity, 1= focus the closest possible)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, speed_value)&amp;lt;/code&amp;gt; || focus at a particular speed, values from -1(outwards), to  1 (inwards)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, -0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto white-balance mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in indoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in outdoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt; ||use the current brightness to automatically set the current white balance|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, red value, blue value)&amp;lt;/code&amp;gt; || Set the manual camera white balance using the R, B values, (0.0 = not red/not blue , 1.0 = very red/very blue)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, 0.1, 0.7)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto-exposure mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, exposure_level)&amp;lt;/code&amp;gt; || manually set the camera exposure iris, values from 0.0(dark) to 1.0(light)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, 0.4)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, iris_level, gain_level, shutter_speed)&amp;lt;/code&amp;gt; || Manually set the camera exposure parameters, values iris from 0.0(dark) to 1.0(light), values gain from 0.0(dark) to 1.0(light), values shutter_speed from 0.0(slow) to 1.0(fast) || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, 0.4, 0.2, 0.5) &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Playlist Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt; || preload used media || &amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt; || pause the playlists or restart if already paused|| &amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt; || play the playlist || &amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_pause()( true/false )&amp;lt;/code&amp;gt; || pause the playlist (when true), unpause the playlist (when false) || &amp;lt;code&amp;gt;mxw.playlist.go_pause()(true)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt; || skip to the next cue || &amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt; || go to the next cue without playing || &amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt; || go to previous cue || &amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt; || go to the first cue || &amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_index(index_value)&amp;lt;/code&amp;gt; || go to the specified cue index|| &amp;lt;code&amp;gt;mxw.playlist.navigate_index(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;index_string&amp;quot;)&amp;lt;/code&amp;gt; || go to the specified cue string|| &amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;BG_video2&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Preload Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).clear()&amp;lt;/code&amp;gt; || clears the selected preload || &amp;lt;code&amp;gt;mxw.preload(2).clear()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_media(&amp;quot;media_name&amp;quot;)&amp;lt;/code&amp;gt; || set a media in the preload with a filename string || &amp;lt;code&amp;gt;mxw.preload(preload_number).set_media(&amp;quot;try.mp4&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_name(&amp;quot;new_media_name&amp;quot;)&amp;lt;/code&amp;gt; || renames a preload || &amp;lt;code&amp;gt;mxw.preload(4).set_name(&amp;quot;new_background&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).add_preload()&amp;lt;/code&amp;gt; || load a preload in the layers || &amp;lt;code&amp;gt;mxw.preload(3).add_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).trigger_preload()&amp;lt;/code&amp;gt; || trigger a layer from the preload || &amp;lt;code&amp;gt;mxw.preload(5).trigger_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_activated()&amp;lt;/code&amp;gt; || requests if the preload is editable || &amp;lt;code&amp;gt;mxw.preload(9).get_activated()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_activated(true/false)&amp;lt;/code&amp;gt; || opens the preload for edit and viceversa || &amp;lt;code&amp;gt;mxw.preload(12).set_activated(false)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_layer_position()&amp;lt;/code&amp;gt; || returns the layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(1).get_layer_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_track_position()&amp;lt;/code&amp;gt; || returns the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(8).get_track_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_layer_position(layer_pos)&amp;lt;/code&amp;gt; || set layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(7).set_layer_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_track_position(track_pos)&amp;lt;/code&amp;gt; || set the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(11).set_track_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;directory_saving_path&amp;quot;, initial_x, initial_y, size_x, size_y)&amp;lt;/code&amp;gt; || saves a cropped screenshot in the desiderd path|| &amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;c:/Users/MXWendler/Desktop/b.png&amp;quot;, 0,1, 400, 200)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/path&amp;quot;).setStringValue(&amp;quot;named by script&amp;quot;)&amp;lt;/code&amp;gt; || set the name of a cue in the playlist|| &amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).setStringValue(&amp;quot;background videoclip&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6029</id>
		<title>3. Python command reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6029"/>
		<updated>2023-12-03T22:03:48Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* Set Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are listed the main commands that can be used for scripting with Python.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
Here are listed all the commands that MXW recognizes.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Reference===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PYTHON COMMAND/SYMBOL !! DESCRIPTION !! EXAMPLE&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Software Info&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.millis&amp;lt;/code&amp;gt;|| returns the amount of milliseconds passed since opening the software|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;current passed time is&amp;quot; + str(mxw.millis) );&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.width&amp;lt;/code&amp;gt;||returns the current frame width in px|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;frame width is&amp;quot; + str(mxw.width) );&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.height&amp;lt;/code&amp;gt;||returns the current frame height in px|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;frame height is&amp;quot; + str(mxw.height));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outwidth&amp;lt;/code&amp;gt;||returns current output width|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;output height is&amp;quot; + str(mxw.outwidth));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outheight&amp;lt;/code&amp;gt;||returns the current output height|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;output width is&amp;quot; + str(mxw.outheight));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.framecounter&amp;lt;/code&amp;gt;||returns the amount of frames rendered since opening the software|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;total number of frames rendered is&amp;quot; + str(mxw.framecounter));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.print_console(&amp;quot;text&amp;quot; + mxw.widget(&amp;quot;/mxw/path&amp;quot;).getStringValue())&amp;lt;/code&amp;gt; || prints the name of the desired playlist cue || &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;The clip name in the second cue is&amp;quot; + mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).getStringValue());&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;print_statusline(&amp;quot;text&amp;quot;)&amp;lt;/code&amp;gt; || print text on the status line|| &amp;lt;code&amp;gt;print text on status line()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | I/O&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.dmx()&amp;lt;/code&amp;gt; ||returns the DMX value received from the specified universe and channel|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;DMX value in u. 1, ch. 4 is&amp;quot; + mxw.dmx(1,4));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.midi()&amp;lt;/code&amp;gt;||returns the MIDI value received from the specified device and channel|| &amp;lt;code&amp;gt;mxw.print_console(&amp;quot;MIDI value in dev. 1, ch. 6 is&amp;quot; + mxw.midi(1,6));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.keyboard(&amp;quot;ASCII_code&amp;quot;)&amp;lt;/code&amp;gt; || returns if the specified key is pressed or not || &amp;lt;code&amp;gt;mxw.keyboard(65)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and turns it on || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and turns it off|| &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and mutes audio and video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and unmutes audio and video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and mutes video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and unmutes video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt; || control if a NDI Camera supports PTZ || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom of a NDI PTZ Camera, values from 0(zoomed in) to 1(zoomed out) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, value_pan, value_tilt)&amp;lt;/code&amp;gt; || control the pan and tilting of a NDI PTZ Camera (values from -1 to 1) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, -0.5, 0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom_speed&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom speed a NDI PTZ Camera, values from -1(zoom outwards) to 1 (zoom inwards) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, pan_speed, tilt_speed)&amp;lt;/code&amp;gt; || control the pan and tilt speed a NDI PTZ Camera, values -1 (move right/down) to 1 (move left/up) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, -0.3, 0.8)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, preset_number)&amp;lt;/code&amp;gt; || store current position, focus, zoom, values 0 to 99 || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, 75)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;,preset_number, speed)&amp;lt;/code&amp;gt; || recalls a previously stored preset,values 0 to 99 and changes to it at a specific speed (values 0 to 1) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;, 4, 0.5 )&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_auto_focus&amp;quot;)&amp;lt;/code&amp;gt; || activates or deactivates the camera in auto-focus || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz.autofocus&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, focus_value)&amp;lt;/code&amp;gt; || focus to absolute value (0= focused to infinity, 1= focus the closest possible)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, speed_value)&amp;lt;/code&amp;gt; || focus at a particular speed, values from -1(outwards), to  1 (inwards)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, -0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto white-balance mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in indoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in outdoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt; ||use the current brightness to automatically set the current white balance|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, red value, blue value)&amp;lt;/code&amp;gt; || Set the manual camera white balance using the R, B values, (0.0 = not red/not blue , 1.0 = very red/very blue)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, 0.1, 0.7)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto-exposure mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, exposure_level)&amp;lt;/code&amp;gt; || manually set the camera exposure iris, values from 0.0(dark) to 1.0(light)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, 0.4)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, iris_level, gain_level, shutter_speed)&amp;lt;/code&amp;gt; || Manually set the camera exposure parameters, values iris from 0.0(dark) to 1.0(light), values gain from 0.0(dark) to 1.0(light), values shutter_speed from 0.0(slow) to 1.0(fast) || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, 0.4, 0.2, 0.5) &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Playlist Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt; || preload used media || &amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt; || pause the playlists or restart if already paused|| &amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt; || play the playlist || &amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_pause()( true/false )&amp;lt;/code&amp;gt; || pause the playlist (when true), unpause the playlist (when false) || &amp;lt;code&amp;gt;mxw.playlist.go_pause()(true)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt; || skip to the next cue || &amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt; || go to the next cue without playing || &amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt; || go to previous cue || &amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt; || go to the first cue || &amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_index(index_value)&amp;lt;/code&amp;gt; || go to the specified cue index|| &amp;lt;code&amp;gt;mxw.playlist.navigate_index(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;index_string&amp;quot;)&amp;lt;/code&amp;gt; || go to the specified cue string|| &amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;BG_video2&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Preload Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).clear()&amp;lt;/code&amp;gt; || clears the selected preload || &amp;lt;code&amp;gt;mxw.preload(2).clear()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_media(&amp;quot;media_name&amp;quot;)&amp;lt;/code&amp;gt; || set a media in the preload with a filename string || &amp;lt;code&amp;gt;mxw.preload(preload_number).set_media(&amp;quot;try.mp4&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_name(&amp;quot;new_media_name&amp;quot;)&amp;lt;/code&amp;gt; || renames a preload || &amp;lt;code&amp;gt;mxw.preload(4).set_name(&amp;quot;new_background&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).add_preload()&amp;lt;/code&amp;gt; || load a preload in the layers || &amp;lt;code&amp;gt;mxw.preload(3).add_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).trigger_preload()&amp;lt;/code&amp;gt; || trigger a layer from the preload || &amp;lt;code&amp;gt;mxw.preload(5).trigger_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_activated()&amp;lt;/code&amp;gt; || requests if the preload is editable || &amp;lt;code&amp;gt;mxw.preload(9).get_activated()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_activated(true/false)&amp;lt;/code&amp;gt; || opens the preload for edit and viceversa || &amp;lt;code&amp;gt;mxw.preload(12).set_activated(false)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_layer_position()&amp;lt;/code&amp;gt; || returns the layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(1).get_layer_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_track_position()&amp;lt;/code&amp;gt; || returns the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(8).get_track_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_layer_position(layer_pos)&amp;lt;/code&amp;gt; || set layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(7).set_layer_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_track_position(track_pos)&amp;lt;/code&amp;gt; || set the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(11).set_track_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;directory_saving_path&amp;quot;, initial_x, initial_y, size_x, size_y)&amp;lt;/code&amp;gt; || saves a cropped screenshot in the desiderd path|| &amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;c:/Users/MXWendler/Desktop/b.png&amp;quot;, 0,1, 400, 200)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/path&amp;quot;).setStringValue(&amp;quot;named by script&amp;quot;)&amp;lt;/code&amp;gt; || set the name of a cue in the playlist|| &amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).setStringValue(&amp;quot;background videoclip&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6028</id>
		<title>3. Python command reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6028"/>
		<updated>2023-12-03T21:53:32Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: /* Set Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are listed the main commands that can be used for scripting with Python.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
Here are listed all the commands that MXW recognizes.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Reference===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PYTHON COMMAND/SYMBOL !! DESCRIPTION !! EXAMPLE&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Software Info&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.millis&amp;lt;/code&amp;gt;|| returns the amount of milliseconds passed since opening the software|| &amp;lt;code&amp;gt;print_console(&amp;quot;current passed time is&amp;quot; + mxw.millis );&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.width&amp;lt;/code&amp;gt;||returns the current frame width in px|| &amp;lt;code&amp;gt;print_console(&amp;quot;frame width is&amp;quot; + mxw.width );&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.height&amp;lt;/code&amp;gt;||returns the current frame height in px|| &amp;lt;code&amp;gt;print_console(&amp;quot;frame height is&amp;quot; + mxw.height);&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outwidth&amp;lt;/code&amp;gt;||returns current output width|| &amp;lt;code&amp;gt;print_console(&amp;quot;output height is&amp;quot; + outwidth);&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outheight&amp;lt;/code&amp;gt;||returns the current output height|| &amp;lt;code&amp;gt;print_console(&amp;quot;output width is&amp;quot; + mxw.outheight);&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.framecounter&amp;lt;/code&amp;gt;||returns the amount of frames rendered since opening the software|| &amp;lt;code&amp;gt;print_console(&amp;quot;total number of frames rendered is&amp;quot; + mxw.framecounter);&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;print_console(&amp;quot;text&amp;quot; + mxw.widget(&amp;quot;/mxw/path&amp;quot;).getStringValue())&amp;lt;/code&amp;gt; || prints the name of the desired playlist cue || &amp;lt;code&amp;gt;print_console(&amp;quot;The clip name in the second cue is&amp;quot; + mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).getStringValue());&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;print_statusline(&amp;quot;text&amp;quot;)&amp;lt;/code&amp;gt; || print text on the status line|| &amp;lt;code&amp;gt;print text on status line()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | I/O&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.dmx()&amp;lt;/code&amp;gt; ||returns the DMX value received from the specified universe and channel|| &amp;lt;code&amp;gt;print_console(&amp;quot;DMX value in u. 1, ch. 4 is&amp;quot; + mxw.dmx(1,4));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.midi()&amp;lt;/code&amp;gt;||returns the MIDI value received from the specified device and channel|| &amp;lt;code&amp;gt;print_console(&amp;quot;MIDI value in dev. 1, ch. 6 is&amp;quot; + mxw.midi(1,6));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.keyboard(&amp;quot;ASCII_code&amp;quot;)&amp;lt;/code&amp;gt; || returns if the specified key is pressed or not || &amp;lt;code&amp;gt;mxw.keyboard(65)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and turns it on || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and turns it off|| &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and mutes audio and video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and unmutes audio and video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and mutes video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and unmutes video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt; || control if a NDI Camera supports PTZ || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom of a NDI PTZ Camera, values from 0(zoomed in) to 1(zoomed out) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, value_pan, value_tilt)&amp;lt;/code&amp;gt; || control the pan and tilting of a NDI PTZ Camera (values from -1 to 1) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, -0.5, 0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom_speed&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom speed a NDI PTZ Camera, values from -1(zoom outwards) to 1 (zoom inwards) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, pan_speed, tilt_speed)&amp;lt;/code&amp;gt; || control the pan and tilt speed a NDI PTZ Camera, values -1 (move right/down) to 1 (move left/up) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, -0.3, 0.8)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, preset_number)&amp;lt;/code&amp;gt; || store current position, focus, zoom, values 0 to 99 || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, 75)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;,preset_number, speed)&amp;lt;/code&amp;gt; || recalls a previously stored preset,values 0 to 99 and changes to it at a specific speed (values 0 to 1) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;, 4, 0.5 )&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_auto_focus&amp;quot;)&amp;lt;/code&amp;gt; || activates or deactivates the camera in auto-focus || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz.autofocus&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, focus_value)&amp;lt;/code&amp;gt; || focus to absolute value (0= focused to infinity, 1= focus the closest possible)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, speed_value)&amp;lt;/code&amp;gt; || focus at a particular speed, values from -1(outwards), to  1 (inwards)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, -0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto white-balance mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in indoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in outdoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt; ||use the current brightness to automatically set the current white balance|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, red value, blue value)&amp;lt;/code&amp;gt; || Set the manual camera white balance using the R, B values, (0.0 = not red/not blue , 1.0 = very red/very blue)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, 0.1, 0.7)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto-exposure mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, exposure_level)&amp;lt;/code&amp;gt; || manually set the camera exposure iris, values from 0.0(dark) to 1.0(light)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, 0.4)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, iris_level, gain_level, shutter_speed)&amp;lt;/code&amp;gt; || Manually set the camera exposure parameters, values iris from 0.0(dark) to 1.0(light), values gain from 0.0(dark) to 1.0(light), values shutter_speed from 0.0(slow) to 1.0(fast) || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, 0.4, 0.2, 0.5) &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Playlist Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt; || preload used media || &amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt; || pause the playlists or restart if already paused|| &amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt; || play the playlist || &amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_pause()( true/false )&amp;lt;/code&amp;gt; || pause the playlist (when true), unpause the playlist (when false) || &amp;lt;code&amp;gt;mxw.playlist.go_pause()(true)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt; || skip to the next cue || &amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt; || go to the next cue without playing || &amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt; || go to previous cue || &amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt; || go to the first cue || &amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_index(index_value)&amp;lt;/code&amp;gt; || go to the specified cue index|| &amp;lt;code&amp;gt;mxw.playlist.navigate_index(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;index_string&amp;quot;)&amp;lt;/code&amp;gt; || go to the specified cue string|| &amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;BG_video2&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Preload Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).clear()&amp;lt;/code&amp;gt; || clears the selected preload || &amp;lt;code&amp;gt;mxw.preload(2).clear()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_media(&amp;quot;media_name&amp;quot;)&amp;lt;/code&amp;gt; || set a media in the preload with a filename string || &amp;lt;code&amp;gt;mxw.preload(preload_number).set_media(&amp;quot;try.mp4&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_name(&amp;quot;new_media_name&amp;quot;)&amp;lt;/code&amp;gt; || renames a preload || &amp;lt;code&amp;gt;mxw.preload(4).set_name(&amp;quot;new_background&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).add_preload()&amp;lt;/code&amp;gt; || load a preload in the layers || &amp;lt;code&amp;gt;mxw.preload(3).add_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).trigger_preload()&amp;lt;/code&amp;gt; || trigger a layer from the preload || &amp;lt;code&amp;gt;mxw.preload(5).trigger_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_activated()&amp;lt;/code&amp;gt; || requests if the preload is editable || &amp;lt;code&amp;gt;mxw.preload(9).get_activated()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_activated(true/false)&amp;lt;/code&amp;gt; || opens the preload for edit and viceversa || &amp;lt;code&amp;gt;mxw.preload(12).set_activated(false)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_layer_position()&amp;lt;/code&amp;gt; || returns the layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(1).get_layer_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_track_position()&amp;lt;/code&amp;gt; || returns the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(8).get_track_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_layer_position(layer_pos)&amp;lt;/code&amp;gt; || set layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(7).set_layer_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_track_position(track_pos)&amp;lt;/code&amp;gt; || set the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(11).set_track_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;directory_saving_path&amp;quot;, initial_x, initial_y, size_x, size_y)&amp;lt;/code&amp;gt; || saves a cropped screenshot in the desiderd path|| &amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;c:/Users/MXWendler/Desktop/b.png&amp;quot;, 0,1, 400, 200)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/path&amp;quot;).setStringValue(&amp;quot;named by script&amp;quot;)&amp;lt;/code&amp;gt; || set the name of a cue in the playlist|| &amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).setStringValue(&amp;quot;background videoclip&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
	<entry>
		<id>https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6027</id>
		<title>3. Python command reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.mxwendler.net/index.php?title=3._Python_command_reference&amp;diff=6027"/>
		<updated>2023-12-03T21:52:31Z</updated>

		<summary type="html">&lt;p&gt;Hwendler: Created page with &amp;quot;Here are listed the main commands that can be used for scripting with Python.  === Legend === &amp;lt;div&amp;gt;   The standard used to represent the available values for each command is:...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are listed the main commands that can be used for scripting with Python.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
Here are listed all the commands that MXW recognizes.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The standard used to represent the available values for each command is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;FLOATS&#039;&#039; are represented with one decimal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0.0 .. 1.0&amp;lt;/code&amp;gt; &amp;amp;rarr; all float values between 0 and 1 included&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;INTEGERS&#039;&#039; are represented with numbers or descriptions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. 5&amp;lt;/code&amp;gt; &amp;amp;rarr; all integers between 1 and 5 included ( 1 , 2 , 3 , 4 , 5 ) &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;1 .. (MAX n layers)&amp;lt;/code&amp;gt; &amp;amp;rarr; all the integers between 1 and the maximum index of layers in MXW (e.g. if 6 layers are being used the values are integers between 1 and 6 included)&lt;br /&gt;
&lt;br /&gt;
When only one number is indicated it means that only one option is given. This is found in addresses of buttons, checkboxes and in the options where &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; are the only significant values&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;STRINGS&#039;&#039; are represented between double quotation marks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set info &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;“name”&amp;lt;/code&amp;gt; is contained in the available string variable, then the content is to be substituted with the actual name.&lt;br /&gt;
 &lt;br /&gt;
E.G. :  to select and play a patch called “patch_one” from its name, the address &amp;lt;code&amp;gt;/mxw/set&amp;lt;/code&amp;gt; with tokens &amp;lt;code&amp;gt;&amp;quot;play&amp;quot; &amp;quot;name_of_patch&amp;quot;&amp;lt;/code&amp;gt; has to be used, resulting in this OSC command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/mxw/set play patch_one&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;u&amp;gt;OR&amp;lt;/u&amp;gt; is found it means that two options can deliver a similar result. One of the two formats has to be used at one time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Set Reference===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! JS COMMAND !! DESCRIPTION !! EXAMPLE&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Software Info&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.millis&amp;lt;/code&amp;gt;|| returns the amount of milliseconds passed since opening the software|| &amp;lt;code&amp;gt;print_console(&amp;quot;current passed time is&amp;quot; + mxw.millis );&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.width&amp;lt;/code&amp;gt;||returns the current frame width in px|| &amp;lt;code&amp;gt;print_console(&amp;quot;frame width is&amp;quot; + mxw.width );&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.height&amp;lt;/code&amp;gt;||returns the current frame height in px|| &amp;lt;code&amp;gt;print_console(&amp;quot;frame height is&amp;quot; + mxw.height);&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outwidth&amp;lt;/code&amp;gt;||returns current output width|| &amp;lt;code&amp;gt;print_console(&amp;quot;output height is&amp;quot; + outwidth);&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.outheight&amp;lt;/code&amp;gt;||returns the current output height|| &amp;lt;code&amp;gt;print_console(&amp;quot;output width is&amp;quot; + mxw.outheight);&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.framecounter&amp;lt;/code&amp;gt;||returns the amount of frames rendered since opening the software|| &amp;lt;code&amp;gt;print_console(&amp;quot;total number of frames rendered is&amp;quot; + mxw.framecounter);&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;print_console(&amp;quot;text&amp;quot; + mxw.widget(&amp;quot;/mxw/path&amp;quot;).getStringValue())&amp;lt;/code&amp;gt; || prints the name of the desired playlist cue || &amp;lt;code&amp;gt;print_console(&amp;quot;The clip name in the second cue is&amp;quot; + mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).getStringValue());&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;print_statusline(&amp;quot;text&amp;quot;)&amp;lt;/code&amp;gt; || print text on the status line|| &amp;lt;code&amp;gt;print text on status line()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; | I/O&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.dmx()&amp;lt;/code&amp;gt; ||returns the DMX value received from the specified universe and channel|| &amp;lt;code&amp;gt;print_console(&amp;quot;DMX value in u. 1, ch. 4 is&amp;quot; + mxw.dmx(1,4));&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.midi()&amp;lt;/code&amp;gt;||returns the MIDI value received from the specified device and channel|| &amp;lt;code&amp;gt;print_console(&amp;quot;MIDI value in dev. 1, ch. 6 is&amp;quot; + mxw.midi(1,6));&amp;lt;/code&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.keyboard(&amp;quot;ASCII_code&amp;quot;)&amp;lt;/code&amp;gt; || returns if the specified key is pressed or not || &amp;lt;code&amp;gt;mxw.keyboard(65)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and turns it on || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and turns it off|| &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and mutes audio and video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and unmutes audio and video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;avmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and mutes video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_on&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;IP_ADDRESS&amp;quot;, &amp;quot;pj_password&amp;quot;)&amp;lt;/code&amp;gt; || sends a pjlink command to the selected projector and unmutes video || &amp;lt;code&amp;gt;mxw.pjlink(&amp;quot;vmute_off&amp;quot;, &amp;quot;192.168.1.2&amp;quot;, &amp;quot;panasonic&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt; || control if a NDI Camera supports PTZ || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_is_supported&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom of a NDI PTZ Camera, values from 0(zoomed in) to 1(zoomed out) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, value_pan, value_tilt)&amp;lt;/code&amp;gt; || control the pan and tilting of a NDI PTZ Camera (values from -1 to 1) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt&amp;quot;, -0.5, 0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_zoom_speed&amp;quot;, value)&amp;lt;/code&amp;gt; || control the zoom speed a NDI PTZ Camera, values from -1(zoom outwards) to 1 (zoom inwards) || &amp;lt;code&amp;gt;&amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_zoom&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, pan_speed, tilt_speed)&amp;lt;/code&amp;gt; || control the pan and tilt speed a NDI PTZ Camera, values -1 (move right/down) to 1 (move left/up) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_pan_tilt_speed&amp;quot;, -0.3, 0.8)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, preset_number)&amp;lt;/code&amp;gt; || store current position, focus, zoom, values 0 to 99 || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_store_preset&amp;quot;, 75)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;,preset_number, speed)&amp;lt;/code&amp;gt; || recalls a previously stored preset,values 0 to 99 and changes to it at a specific speed (values 0 to 1) || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_recall_preset&amp;quot;, 4, 0.5 )&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_auto_focus&amp;quot;)&amp;lt;/code&amp;gt; || activates or deactivates the camera in auto-focus || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz.autofocus&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, focus_value)&amp;lt;/code&amp;gt; || focus to absolute value (0= focused to infinity, 1= focus the closest possible)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus&amp;quot;, 0.5)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, speed_value)&amp;lt;/code&amp;gt; || focus at a particular speed, values from -1(outwards), to  1 (inwards)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_focus_speed&amp;quot;, -0.2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto white-balance mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in indoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_indoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in outdoor white balance || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_outdoor&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt; ||use the current brightness to automatically set the current white balance|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_white_balance_oneshot&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, red value, blue value)&amp;lt;/code&amp;gt; || Set the manual camera white balance using the R, B values, (0.0 = not red/not blue , 1.0 = very red/very blue)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_white_balance_manual&amp;quot;, 0.1, 0.7)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt; || put the camera in auto-exposure mode || &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_auto&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, exposure_level)&amp;lt;/code&amp;gt; || manually set the camera exposure iris, values from 0.0(dark) to 1.0(light)|| &amp;lt;code&amp;gt;mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual&amp;quot;, 0.4)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.media(&amp;quot;camera_name&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, iris_level, gain_level, shutter_speed)&amp;lt;/code&amp;gt; || Manually set the camera exposure parameters, values iris from 0.0(dark) to 1.0(light), values gain from 0.0(dark) to 1.0(light), values shutter_speed from 0.0(slow) to 1.0(fast) || &amp;lt;code&amp;gt; mxw.media(&amp;quot;USB_Cam&amp;quot;).ptz(&amp;quot;ptz_exposure_manual_v2&amp;quot;, 0.4, 0.2, 0.5) &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Playlist Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt; || preload used media || &amp;lt;code&amp;gt;mxw.playlist.preload_media()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt; || pause the playlists or restart if already paused|| &amp;lt;code&amp;gt;mxw.playlist.pause()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt; || play the playlist || &amp;lt;code&amp;gt;mxw.playlist.play()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_pause()( true/false )&amp;lt;/code&amp;gt; || pause the playlist (when true), unpause the playlist (when false) || &amp;lt;code&amp;gt;mxw.playlist.go_pause()(true)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt; || skip to the next cue || &amp;lt;code&amp;gt;mxw.playlist.skiptonext()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt; || go to the next cue without playing || &amp;lt;code&amp;gt;mxw.playlist.go_next()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt; || go to previous cue || &amp;lt;code&amp;gt;mxw.playlist.go_prev()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt; || go to the first cue || &amp;lt;code&amp;gt;mxw.playlist.go_first()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_index(index_value)&amp;lt;/code&amp;gt; || go to the specified cue index|| &amp;lt;code&amp;gt;mxw.playlist.navigate_index(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;index_string&amp;quot;)&amp;lt;/code&amp;gt; || go to the specified cue string|| &amp;lt;code&amp;gt;mxw.playlist.navigate_string(&amp;quot;BG_video2&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; |Preload Control&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).clear()&amp;lt;/code&amp;gt; || clears the selected preload || &amp;lt;code&amp;gt;mxw.preload(2).clear()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_media(&amp;quot;media_name&amp;quot;)&amp;lt;/code&amp;gt; || set a media in the preload with a filename string || &amp;lt;code&amp;gt;mxw.preload(preload_number).set_media(&amp;quot;try.mp4&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_name(&amp;quot;new_media_name&amp;quot;)&amp;lt;/code&amp;gt; || renames a preload || &amp;lt;code&amp;gt;mxw.preload(4).set_name(&amp;quot;new_background&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).add_preload()&amp;lt;/code&amp;gt; || load a preload in the layers || &amp;lt;code&amp;gt;mxw.preload(3).add_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).trigger_preload()&amp;lt;/code&amp;gt; || trigger a layer from the preload || &amp;lt;code&amp;gt;mxw.preload(5).trigger_preload()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_activated()&amp;lt;/code&amp;gt; || requests if the preload is editable || &amp;lt;code&amp;gt;mxw.preload(9).get_activated()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_activated(true/false)&amp;lt;/code&amp;gt; || opens the preload for edit and viceversa || &amp;lt;code&amp;gt;mxw.preload(12).set_activated(false)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_layer_position()&amp;lt;/code&amp;gt; || returns the layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(1).get_layer_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).get_track_position()&amp;lt;/code&amp;gt; || returns the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(8).get_track_position()&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_layer_position(layer_pos)&amp;lt;/code&amp;gt; || set layer index of the preload|| &amp;lt;code&amp;gt;mxw.preload(7).set_layer_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.preload(preload_number).set_track_position(track_pos)&amp;lt;/code&amp;gt; || set the track index of the preload|| &amp;lt;code&amp;gt;mxw.preload(11).set_track_position(2)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;directory_saving_path&amp;quot;, initial_x, initial_y, size_x, size_y)&amp;lt;/code&amp;gt; || saves a cropped screenshot in the desiderd path|| &amp;lt;code&amp;gt;mxw.makesectionscreenshot(&amp;quot;c:/Users/MXWendler/Desktop/b.png&amp;quot;, 0,1, 400, 200)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/path&amp;quot;).setStringValue(&amp;quot;named by script&amp;quot;)&amp;lt;/code&amp;gt; || set the name of a cue in the playlist|| &amp;lt;code&amp;gt;mxw.widget(&amp;quot;/mxw/playlist/container/1/column/0/row/1&amp;quot;).setStringValue(&amp;quot;background videoclip&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Hwendler</name></author>
	</entry>
</feed>