{"id":696,"date":"2025-09-01T07:00:33","date_gmt":"2025-09-01T05:00:33","guid":{"rendered":"https:\/\/mugenlighting.com\/studio\/?page_id=696"},"modified":"2026-03-17T23:26:45","modified_gmt":"2026-03-17T22:26:45","slug":"user-manual","status":"publish","type":"page","link":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/","title":{"rendered":"TouchOSC Layout for GrandMA2 &#8211; User Manual"},"content":{"rendered":"\n<div class=\"wp-block-group toc-scope toc-layout-24 is-layout-constrained wp-container-core-group-is-layout-e38500a2 wp-block-group-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\"><\/div>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"before-you-start\">Before You Start<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div id=\"sec0\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\" id=\"about-this-layout\">About This Layout<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This guide explains how to understand, customize, and adapt the TouchOSC layout for grandMA2. I have already fully programmed and optimized the layout. Furthermore, I utilized almost all available MIDI Remote slots in grandMA2, which means you do not have to build anything from scratch. Instead, you simply modify and personalize what is already in place.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here you will learn how to change commands assigned to buttons and encoders, rename interface elements, change colors, add or remove pages, use Edit Mode, and understand the logic behind faders, masters, popups, and page systems. Ultimately, my goal is to give you full control without breaking the internal structure of the layout.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"version-updates\">Version &amp; Updates<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Current public version: 1.44.1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I update the layout and this documentation regularly with improvements, fixes, and new features. Therefore, you can check the Changelog, Roadmap, or come back to this document to see updates.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Additionally, if you want to request features or early access to upcoming versions, you can <strong><a href=\"mailto:contactmaxmugen@gmail.com\" target=\"_blank\" rel=\"noreferrer noopener\">contact me<\/a><\/strong> directly.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"who-this-guide-is-for\">Who This Guide Is For<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Specifically, I wrote this guide for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lighting designers, programmers and technicians&nbsp;using&nbsp;grandMA2&nbsp;with&nbsp;TouchOSC MK2<\/li>\n\n\n\n<li>Users who want to&nbsp;customize or modify the layout, not just operate it<\/li>\n\n\n\n<li>Anyone who wants a&nbsp;playback-only interface for staff or venues&nbsp;(see <strong><a href=\"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/#simple-interface\">Section 3.1 Simple Interface<\/a><\/strong>)<\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"what-you-need-before-using-this-layout\">What You Need Before Using This Layout<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To use this system, you will need:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TouchOSC MK2<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/hexler.net\/touchosc#get\" target=\"_blank\" rel=\"noreferrer noopener\">Desktop Editor<\/a><\/strong><a href=\"https:\/\/hexler.net\/touchosc#get\"> <\/a>(for transferring or editing the layout) Mobile\/Tablet App (<strong><a href=\"https:\/\/apps.apple.com\/us\/app\/touchosc\/id1569996730\" target=\"_blank\" rel=\"noreferrer noopener\">iOS<\/a><\/strong> or <strong><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=net.hexler.lex\" target=\"_blank\" rel=\"noreferrer noopener\">Android<\/a><\/strong>)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GrandMA2 version 3.8 or newer<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Older versions of <strong><a href=\"https:\/\/www.malighting.com\/downloads\/products\/grandma2\/\" target=\"_blank\" rel=\"noreferrer noopener\">GrandMA2<\/a><\/strong> like 3.7 or 3.5 are not fully compatible. Downgrading is technically possible but not supported<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TouchOSC Bridge or any MIDI-over-network tool<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Used to send MIDI from the tablet to MA2 on your PC<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A licensed copy of this TouchOSC Layout (<strong><a href=\"https:\/\/maxmugen.gumroad.com\/l\/TouchOSC-Layout-for-Grand-MA2-Pro-Version\" target=\"_blank\" rel=\"noreferrer noopener\">Pro<\/a><\/strong> or <strong><a href=\"https:\/\/maxmugen.gumroad.com\/l\/TouchOSC-Layout-for-Grand-MA2-Free-Version\" target=\"_blank\" rel=\"noreferrer noopener\">Lite<\/a><\/strong> version)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This documentation is made specifically for the layout I created and sell. If you don\u2019t have it yet, you can get it via my <strong><a href=\"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/\" target=\"_blank\" rel=\"noreferrer noopener\">Website<\/a><\/strong> or <strong><a href=\"https:\/\/maxmugen.gumroad.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Gumroad<\/a><\/strong>.<\/p>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-1\">Section 1 &#8211; Understanding the Layout<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div id=\"sec1\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\" id=\"introduction-to-the-interface\">1.1 Introduction to the Interface<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The layout is organized like a virtual MA2 console designed for touchscreens. Everything is placed in dedicated zones so you always know where to look to trigger commands or open pop-ups<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555c72b4&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555c72b4\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-main-interface-labeled.webp\" alt=\"\" class=\"wp-image-2383\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-main-interface-labeled.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-main-interface-labeled-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-main-interface-labeled-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">To make navigation clear, you can think of the interface as four main areas:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Right Navigation Bar<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"#encoders-window\"><strong>Encoders<\/strong><\/a>&nbsp;\u2013&nbsp;Opens the encoder wheels panel (Pan, Tilt, Color, Beam, Focus, etc.)<\/li>\n\n\n\n<li><strong><a href=\"#exec-pages\">Exec 1-15<\/a><\/strong>&nbsp;\u2013 First executor bank. These are the main playback buttons.<\/li>\n\n\n\n<li><a href=\"#exec-pages\"><strong>Exec 16-30<\/strong><\/a>&nbsp;\u2013 Second executor bank for additional pages or cues.<\/li>\n\n\n\n<li><a href=\"#action-buttons\"><strong>Action Buttons<\/strong><\/a>&nbsp;\u2013 A large grid of configurable buttons for macros, sequences, cues, etc.<\/li>\n\n\n\n<li><a href=\"#masters-window\"><strong>Masters<\/strong><\/a>&nbsp;\u2013 Opens the popup where you can assign and control Speed Masters, Rate, Program Time, Grand Master, etc.<\/li>\n\n\n\n<li><a href=\"#position-maker\"><strong>Pos Maker<\/strong><\/a>&nbsp;\u2013 Position Maker window. The Pan\/Tilt \u201ctrackball\u201d module using real MA2 ball commands, Align functions, positions store etc.<\/li>\n\n\n\n<li><a href=\"#custom-pages\"><strong>Custom<\/strong><\/a>&nbsp;\u2013 Custom pages and empty pages you can duplicate to create your own layouts.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Left Navigation Bar<\/h4>\n\n\n\n<ol start=\"8\" class=\"wp-block-list\">\n<li><a href=\"#v-keys\"><strong>V-Keys<\/strong><\/a>&nbsp;\u2013 Virtual MA console command keys (V1\u2013V10)<\/li>\n\n\n\n<li><a href=\"#matricks\"><strong>MAtricks<\/strong><\/a>&nbsp;\u2013 Access to Align, Group, Wings, Blocks and MAtricks settings.<\/li>\n\n\n\n<li><a href=\"#effects\"><strong>Effects<\/strong><\/a>&nbsp;\u2013 Directly triggers Effects 1001\u20131080 from the MA2 Effect Pool.<\/li>\n\n\n\n<li><a href=\"#macros\"><strong>Macros<\/strong><\/a>&nbsp;\u2013 Triggers Macros 1001 to 1080 from the MA2 Macro Pool.<\/li>\n\n\n\n<li><a href=\"#groups\"><strong>Groups<\/strong><\/a>&nbsp;\u2013 Calls Group 1001 to 1080 from the MA2 Group Pool.<\/li>\n\n\n\n<li><a href=\"#x-keys\"><strong>X-Keys<\/strong><\/a>&nbsp;\u2013 Virtual equivalents of the MA2 hardware X1\u2013X20 keys<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Central Area<\/h4>\n\n\n\n<ol start=\"14\" class=\"wp-block-list\">\n<li><strong><a href=\"#lock-screen\">Lock Button<\/a><\/strong>&nbsp;\u2013 Locks the desk. This opens the lock screen where you can access other things like simple interface, screensaver, edit mode and games.<\/li>\n\n\n\n<li><a href=\"#dimmer-wheel\"><strong>Dimmer Wheel<\/strong><\/a>&nbsp;\u2013 Dedicated dimmer encoder.<\/li>\n\n\n\n<li><strong><a href=\"#grand-master\">Grand Master<\/a><\/strong>&nbsp;\u2013 Controls the Grand Master output level.<\/li>\n\n\n\n<li><strong><a href=\"#screen-encoder\">Screen Encoders<\/a><\/strong>&nbsp;\u2013 Up\/Down buttons that move the MA2 on-screen cursor and allow you to change the linked screen.<\/li>\n\n\n\n<li><strong><a href=\"#masters-window\">Special Master Popup Assign<\/a><\/strong>&nbsp;\u2013 Tap to assign what the 100 mm faders control (Speed Masters, Rate, Program Time, Grand Master, etc.).<\/li>\n\n\n\n<li><strong><a href=\"#100mm-faders\">100 mm Faders<\/a><\/strong>&nbsp;\u2013 Two physical-length faders used for Special Masters or other assignable controls.<\/li>\n\n\n\n<li><strong><a href=\"#long-press-commands\">Long Press Commands<\/a><\/strong>&nbsp;\u2013 Some buttons in this area have long-press behavior to trigger additional functions.<\/li>\n\n\n\n<li><strong><a href=\"#help-overlay\">Help Overlay<\/a><\/strong> (\u201c?\u201d icon)&nbsp;\u2013 Activates visual explanations on each window. Can be turned on\/off anytime.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"lock-screen\">1.2 Lock Screen &amp; Soft Lock Delay<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When you press the&nbsp;LOCK&nbsp;button, a MIDI command is sent to MA2 to lock the desk, and the TouchOSC layout switches into a dedicated lock screen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From here, only a limited set of tools can be accessed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What happens:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The&nbsp;MA desk is locked<\/li>\n\n\n\n<li>A&nbsp;black overlay&nbsp;appears above the interface<\/li>\n\n\n\n<li>Only a&nbsp;restricted set of tools&nbsp;remains available (listed below)<\/li>\n\n\n\n<li>Unlocking restores full control of the layout<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Lock Screen Overview<\/h4>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555c7d28&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555c7d28\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lock-screen-labeled.webp\" alt=\"\" class=\"wp-image-2384\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lock-screen-labeled.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lock-screen-labeled-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lock-screen-labeled-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"#simple-interface\"><strong>Simple Interface<\/strong><\/a>&nbsp;\u2013 Unlocks the desk but only displays a blank, safe page. Ideal for non-technical users or playback-only access.<\/li>\n\n\n\n<li><a href=\"#vibration-module\"><strong>Vibration<\/strong><\/a>&nbsp;\u2013 Enables haptic feedback on supported devices (Android\/iPhone only, iPad has no vibration hardware).<\/li>\n\n\n\n<li><a href=\"#edit-mode\"><strong>Edit Mode<\/strong><\/a>&nbsp;\u2013 Allows you to rename, recolor or reposition buttons directly from the tablet. No computer or coding required.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/#screensaver\">Screensaver<\/a><\/strong> \u2013 A visual screensaver module. (*)<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/#pong-game\">Pong Game<\/a> <\/strong>\u2013 A built-in arcade module. (*)<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">(*) Both screensaver and game&nbsp;stop automatically&nbsp;when you exit the lock screen. They don\u2019t run in the background.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Soft Lock Delay<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;LOCK&nbsp;button intentionally has a&nbsp;3-second cooldown&nbsp;before it can be pressed again.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Not a bug. Not lag. A safety feature.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Why?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because many users press the lock button like it\u2019s the&nbsp;CLEAR&nbsp;key.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Repeatedly, and with zero mercy, like a stressed cashier on a Black Friday checkout.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the layout reacted instantly each time, it could:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Spam MA2 with multiple lock\/unlock commands<\/li>\n\n\n\n<li>Desynchronize the tablet and the console<\/li>\n\n\n\n<li>Cause MIDI flooding or UI freezes, especially on slower tablets<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This tiny pause keeps everything in sync and prevents accidental chaos.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"init-function\">1.3 INIT Function<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;INIT function&nbsp;is a built-in startup reset. It runs&nbsp;only once automatically&nbsp;when you open the layout for the first time, you don\u2019t have to press anything. It will&nbsp;not run again&nbsp;unless you fully&nbsp;close and restart TouchOSC.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">What INIT Does<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">When the layout launches for the first time, it:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Closes all pop-ups, windows and overlays (FX, Macros, Encoders, Pos Maker, etc.)<\/li>\n\n\n\n<li>Resets page switches (Exec 1\u201315, Action Buttons, Custom Pages) back to their default state<\/li>\n\n\n\n<li>Shows the short&nbsp;Welcome screen&nbsp;once, then disappears<\/li>\n\n\n\n<li>Makes sure everything looks and behaves exactly as intended before you start working<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This has&nbsp;nothing to do with your MA2 showfile. It only cleans and resets the TouchOSC interface.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Important to Know<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>INIT runs&nbsp;only once automatically&nbsp;when you load the layout in TouchOSC<\/li>\n\n\n\n<li>It does&nbsp;not&nbsp;run after switching between Editor Mode and Tablet Mode<\/li>\n\n\n\n<li>To make it run again, you must&nbsp;fully close and reopen&nbsp;TouchOSC<\/li>\n\n\n\n<li>It never modifies your MA show, commands, presets or programming, only TouchOSC UI<\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"screen-size\">1.4 Screen Size &amp; UI Scaling<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This layout was designed at a native resolution of&nbsp;2560 \u00d7 1600 pixels (16:10 aspect ratio),&nbsp;the same format as tablets like the&nbsp;Samsung Galaxy Tab S8.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every element, pop-ups, fader slots, masked overlays, encoder zones, invisible logic blocks, is placed&nbsp;pixel-perfect&nbsp;based on this resolution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">TouchOSC Mk2 automatically scales the layout to any screen size,&nbsp;but it always keeps the original 16:10 proportions.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Why You Should Not Resize the Layout<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Changing the layout resolution in the editor will break things.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The layout contains:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>9,492 objects in total<\/li>\n\n\n\n<li>1,774 hidden elements (pop-ups, overlays, masks)<\/li>\n\n\n\n<li>1,859 scripted objects<\/li>\n\n\n\n<li>1,420 MIDI-mapped controls<\/li>\n\n\n\n<li>142 grouped systems<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">TouchOSC does&nbsp;not&nbsp;auto-realign any of this. If you change the canvas size, you would need to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Move every object manually<\/li>\n\n\n\n<li>Fix pop-up positions and mask overlays<\/li>\n\n\n\n<li>Rebuild fader hit zones and interaction areas<\/li>\n\n\n\n<li>Repair all coordinate-based scripting<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Even a minor change in resolution misaligns core logic and causes UI errors.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Conclusion<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">I often get asked if I can make a version of the layout for a different screen size or orientation (like vertical mode). Unfortunately, this layout is built on thousands of precisely aligned objects and resizing it properly would mean rebuilding everything from scratch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For this reason:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I do&nbsp;not&nbsp;provide custom resolutions or \u201cstretched\u201d versions of the layout<\/li>\n\n\n\n<li>I do&nbsp;not&nbsp;recommend trying to resize it yourself in TouchOSC Editor<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">I did experiment with alternate layouts (including a vertical format), but none reached a usable standard yet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you have a real need for a different orientation or resolution and want to discuss it seriously, feel free to <a href=\"mailto:contactmaxmugen@gmail.com\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>contact me<\/strong><\/a>.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"page-structure\">1.5 Page Structure, Fixed vs Dynamic Pages<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This layout is built on a&nbsp;single TouchOSC page. What changes are the&nbsp;pop-up groups&nbsp;that appear on top of it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There are two behaviors:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fixed Pages&nbsp;\u2192 Always control the same executor page in MA2 (<em>Page 20 in this layout<\/em>)<\/li>\n\n\n\n<li>Dynamic Pages&nbsp;\u2192 Follow whatever executor page you select on the console<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Understanding this is essential before editing faders, buttons, or MIDI remotes.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Fixed Pages<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">These always control&nbsp;Executor Page 20&nbsp;in MA2, no matter which page is active on the console.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this layout, Fixed Page elements include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Exec 1\u201315&nbsp;when in Fixed Mode<\/li>\n\n\n\n<li>Action Buttons&nbsp;when in Fixed Mode<\/li>\n\n\n\n<li>Some Custom Pages<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Dynamic Pages<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Dynamic areas follow&nbsp;the currently selected executor page on MA2.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Switch MA to Page 2 \u2192 the layout now controls Page 2<\/li>\n\n\n\n<li>Switch to Page 15 \u2192 layout controls Page 15<\/li>\n\n\n\n<li>This is ideal for programming and cue building<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Switching Between Fixed \/ Dynamic<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">You can toggle anytime using the switch buttons at the top-right of the fader or actions section.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Dynamic<\/code>&nbsp;\u2192 follows MA page<\/li>\n\n\n\n<li><code>Fixed 20<\/code>&nbsp;\u2192 locked to Executor Page 20<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">After startup, the layout always resets to&nbsp;Dynamic Page 1.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Important to Know<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">To avoid breaking paging and MIDI logic:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Do&nbsp;not rename&nbsp;core pop-up groups like&nbsp;<code>POP EXEC 1-15<\/code>,&nbsp;<code>POP ACTION BUTTONS<\/code>, etc.<\/li>\n\n\n\n<li>Do&nbsp;not delete or move&nbsp;the Page 20 fixed areas unless you fully understand MA2 MIDI Remote mapping<\/li>\n\n\n\n<li>If you remap to another page (ex: Page 30 instead of 20),&nbsp;you must change the MIDI remotes in MA2 accordingly<\/li>\n\n\n\n<li>If several users request another fixed page number, I can provide a version mapped to Page 30 or higher<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Feel free to <strong><a href=\"mailto:contactmaxmugen@gmail.com\" target=\"_blank\" rel=\"noreferrer noopener\">contact me<\/a><\/strong> if you need a custom configuration.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"help-overlay\">1.6 Help Overlay<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The \u201c?\u201d icon in the top bar activates the Help Overlay, a built-in guide that explains what some button, or window does directly on the interface.<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555c9348&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555c9348\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-01.webp\" alt=\"\" class=\"wp-image-2543\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-01.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-01-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-01-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555c970d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555c970d\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-02.webp\" alt=\"\" class=\"wp-image-2544\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-02.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-02-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-02-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555c9aef&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555c9aef\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-03.webp\" alt=\"\" class=\"wp-image-2545\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-03.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-03-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-03-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555c9ec2&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555c9ec2\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-04.webp\" alt=\"\" class=\"wp-image-2546\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-04.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-04-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-help-overlay-04-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">When enabled:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Each UI element displays a small label or description on top of it<\/li>\n\n\n\n<li>You can turn On\/Off Help mode anytime without affecting your current cues, selections or values<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This feature is useful if:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You are using the layout for the first time<\/li>\n\n\n\n<li>You share your tablet with other operators or students<\/li>\n\n\n\n<li>You want to quickly remember what a function or button does without opening the manual<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">How to toggle it:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tap \u201c?\u201d icon \u2192 Help Overlay turns on<\/li>\n\n\n\n<li>Tap again \u2192 Overlay disappears and interaction returns to normal<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">It works on most pages and popup across the whole layout.<\/p>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-2\">Section 2 &#8211; Working with Core Functions<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div id=\"sec2\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\" id=\"encoders-window\">2.1 Encoders Window<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When you press&nbsp;Encoders&nbsp;in the right navigation bar, a pop-up opens with a virtual encoder section, very similar to the hardware encoder wheels on a real grandMA2 console.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can control&nbsp;Pan, Tilt, Color, Gobo, Beam, Focus, Dimmer, Shapers, Control&nbsp;and more, depending on which attribute page is active in MA2.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555cae87&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555cae87\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-encoders-window.webp\" alt=\"\" class=\"wp-image-2385\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-encoders-window.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-encoders-window-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-encoders-window-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">What This Window Contains<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Full attribute row:&nbsp;Dimmer \/ Position \/ Gobo \/ Color \/ Beam \/ Focus \/ Control \/ Shapers<\/li>\n\n\n\n<li>4 encoder wheels&nbsp;(fully interactive, with push\/click support)<\/li>\n\n\n\n<li>MA keys:&nbsp;Esc, Oops, Clear, Store, Full, Highlight, Solo, Prev, Set, Next<\/li>\n\n\n\n<li>Wheel resolution modes:&nbsp;Normal \/ Fine \/ Ultra (affects all four encoders)<\/li>\n\n\n\n<li>20 Group buttons&nbsp;(Groups 1001\u20131020 from MA2)<\/li>\n\n\n\n<li>Built-in&nbsp;Pan\/Tilt XY pad&nbsp;(mini version of Position Maker)<\/li>\n\n\n\n<li>Position 1\u201320 buttons&nbsp;from the Position Pool<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Attribute Selection<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Tapping any attribute label (e.g.&nbsp;POSITION,&nbsp;COLOR,&nbsp;FOCUS) changes what the encoder wheels control, exactly like using the attribute keys on the MA2 console.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each attribute page assigns a new function to wheels 1\u20134.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tap&nbsp;POSITION&nbsp;\u2192 Wheels now control Pan, Tilt, Rotation, etc.<\/li>\n\n\n\n<li>Tap&nbsp;COLOR&nbsp;\u2192 Wheels now control Color Mix, Color Wheel, CTO, etc.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These follow the exact same behavior as pressing the Preset Type keys on the hardware console.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Encoder Wheels<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The wheels behave exactly like on an MA2 desk:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>They send real encoder data via&nbsp;<code>gma.canbus.encoder()<\/code><\/li>\n\n\n\n<li>No simulated \u201cvalue jumps\u201d or +1\/+5 steps<\/li>\n\n\n\n<li>They support both&nbsp;turn&nbsp;and&nbsp;push&nbsp;(press + release) actions<\/li>\n\n\n\n<li>They respect:\n<ul class=\"wp-block-list\">\n<li>MAtricks&nbsp;(Wings, Blocks, Groups)<\/li>\n\n\n\n<li>Align mode&nbsp;(<code>&lt;<\/code>&nbsp;\/&nbsp;<code>&gt;<\/code>\/&nbsp;<code>&gt;&lt;<\/code>&nbsp;\/&nbsp;<code>&lt;&gt;<\/code>)<\/li>\n\n\n\n<li>Normal \/ Fine \/ Ultra&nbsp;resolution<\/li>\n\n\n\n<li>Fixture selection and active attributes<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Result: encoder behavior (speed, acceleration, feel) is identical to the physical console.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Encoder Resolution &amp; MA Keys<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Normal \/ Fine \/ Ultra : Changes wheel sensitivity for all 4 encoders Esc \/ Oops \/ Clear : Same behavior as MA2 keys: cancel \/ undo \/ clear programmer Store : Arms the store command (used with Groups, Positions, etc.) Full \/ Highlight \/ Solo : Programming helpers exactly like the console Prev \/ Next \/ Set : Value stepping and confirming<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Group Selector (Left grid)<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>20 buttons =&nbsp;Group 1001 \u2192 Group 1020<\/li>\n\n\n\n<li>Mirrors the first 20 items of the&nbsp;MA2 Group Pool<\/li>\n\n\n\n<li>Used to quickly recall fixtures groups while using encoders<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Mini Pan\/Tilt XY Pad (Center)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This small XY controller allows smooth Pan\/Tilt movement using touch.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Uses&nbsp;POSITION attribute (via trackball commands)<\/li>\n\n\n\n<li>Pan \/ Tilt Invert toggles&nbsp;(local to TouchOSC, do not invert fixture settings in MA2)<\/li>\n\n\n\n<li>Axis lock buttons&nbsp;(Pan only \/ Tilt only)<\/li>\n\n\n\n<li>Reset Pan\/Tilt<\/li>\n\n\n\n<li>It is a simplified version of the full&nbsp;Position Maker&nbsp;found later (see <strong><a href=\"#position-maker\">Section 2.5<\/a><\/strong>)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Position Presets (Right grid)<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Displays&nbsp;Position 1\u201320&nbsp;from the MA2 Position Pool<\/li>\n\n\n\n<li>If&nbsp;Store&nbsp;is active:\u2192 Buttons switch to \u201cStore Position 01\u201320\u201d&nbsp;\u2192 After storing, they automatically return to normal display mode<\/li>\n\n\n\n<li>Full storing workflow is explained later in&nbsp;<strong><a href=\"#position-maker\">Section 2.5 \u2013 Position Maker<\/a><\/strong><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"dimmer-wheel\"><strong>Dimmer Wheel<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Besides attribute-based dimmer control, there is also a dedicated global Dimmer Wheel available at all times.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555cbb5a&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555cbb5a\" class=\"wp-block-image aligncenter size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-dimmer-wheel.webp\" alt=\"\" class=\"wp-image-2547\" style=\"width:246px;height:auto\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-dimmer-wheel.webp 600w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-dimmer-wheel-300x300.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-dimmer-wheel-150x150.webp 150w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-dimmer-wheel-120x120.webp 120w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>It directly controls the dimmer value in the Programmer<\/li>\n\n\n\n<li>It behaves exactly like the hardware Dimmer encoder on the MA2 console<\/li>\n\n\n\n<li>Unlike fader-based masters, this dimmer only affects selected fixtures, not global output<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If you need to control the total output of the show, use the Grand Master (see <strong><a href=\"#grand-master\">Section 2.4<\/a><\/strong>).<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"exec-pages\">2.2 Exec Pages<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The layout includes two executor button sections:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Exec 1\u201315<\/li>\n\n\n\n<li>Exec 16\u201330<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">They work exactly like executor keys on a real MA2 console and can operate in two modes:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dynamic (follow MA page)&nbsp;or&nbsp;Fixed (always control Page 20).<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555cc191&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555cc191\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-exec-dynamic.webp\" alt=\"\" class=\"wp-image-2386\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-exec-dynamic.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-exec-dynamic-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-exec-dynamic-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555cc5d6&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555cc5d6\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-exec-fixed.webp\" alt=\"\" class=\"wp-image-2387\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-exec-fixed.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-exec-fixed-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-exec-fixed-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Dynamic Mode \u2014 Follows MA2 Page<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">In&nbsp;Dynamic mode, the executor buttons always trigger the executors of the&nbsp;currently active page&nbsp;in MA2.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Switch MA2 to&nbsp;Page 4 \u2192&nbsp;the buttons now trigger executors on Page 4<\/li>\n\n\n\n<li>Switch to&nbsp;Page 10 \u2192&nbsp;they now trigger executors on Page 10<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Fixed Mode \u2014 Always Page 20<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">In&nbsp;Fixed mode, all executor buttons are permanently linked to&nbsp;Page 20, regardless of which page you select on the console.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Good for anything that must always stay available:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Haze \/ Fog control<\/li>\n\n\n\n<li>Main cue list GO+ \/ GO\u2013<\/li>\n\n\n\n<li>Blackout or Panic<\/li>\n\n\n\n<li>Followspot macros<\/li>\n\n\n\n<li>House lights \/ Safety control<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Switch modes using the&nbsp;Dynamic \/ Fixed 20&nbsp;toggle above the executor section.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Page Switching (Only in Dynamic Mode)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">When Dynamic mode is active:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pg+ \/ Pg-&nbsp;buttons change the current executor page in MA2 (just like Page + \/ Page \u2013 on the console)<\/li>\n\n\n\n<li>Long press on Pg-&nbsp;instantly jumps back to&nbsp;Page 1&nbsp;(quick way to reset)<\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"action-buttons\">2.3&nbsp;Action Buttons<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;Action Buttons&nbsp;page is the TouchOSC equivalent of&nbsp;MA2 Button Executors.&nbsp;The same as fader executor pages, but without faders.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It gives you fast access to buttons-only executors for cues, macros, sequences, effects, or custom commands.<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555ccee0&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555ccee0\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-action-button-dynamic.webp\" alt=\"\" class=\"wp-image-2392\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-action-button-dynamic.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-action-button-dynamic-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-action-button-dynamic-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555cd328&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555cd328\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-action-button-fixed.webp\" alt=\"\" class=\"wp-image-2393\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-action-button-fixed.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-action-button-fixed-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-action-button-fixed-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">What This Page Contains<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>90 executor buttons&nbsp;\u2192 Exec&nbsp;101\u2013190<\/li>\n\n\n\n<li>Dynamic \/ Fixed 20 toggle&nbsp;\u2192 same system as faders<\/li>\n\n\n\n<li>Page Up \/ Page Down&nbsp;\u2192 changes MA2 executor page when in Dynamic mode\n<ul class=\"wp-block-list\">\n<li>Long-press on&nbsp;Pg-&nbsp;jumps directly back to&nbsp;Page 1<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Bottom row with&nbsp;MA keys:\n<ul class=\"wp-block-list\">\n<li><code>Store, Please, Go+, Go-, Assign, Copy, Move, Update, Esc, Clear, On, Off, Pause, etc..<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Everything is already MIDI-mapped, no configuration is required in MA2.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Dynamic vs Fixed Mode<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Dynamic : Buttons follow the current executor page in MA2 Fixed Page 20 : Always control executors on Page 20<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Switch using the toggle on the right side \u2192&nbsp;Dynamic \/ Fixed Page 20<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"masters-window\">2.4 Masters Window &amp; Special Master Assignment<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This chapter explains two things:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The Masters Popup&nbsp;\u2013 where you see all Special Masters (Speed, Rate, Program Time, etc.) in one place<\/li>\n\n\n\n<li>Assigning Special Masters to the 100 mm Faders&nbsp;\u2013 how you quickly choose what the two big faders control<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Masters Popup Window<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">When you press&nbsp;Masters&nbsp;in the right navigation bar, a pop-up window opens that shows&nbsp;all Special Masters from MA2&nbsp;in one place.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This window is almost identical to the&nbsp;MA2 Special Masters View&nbsp;on the console. It includes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All Default Masters<\/li>\n\n\n\n<li>All Grand Masters<\/li>\n\n\n\n<li>All Speed Masters<\/li>\n\n\n\n<li>All Rate Masters<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Each master has its own&nbsp;fader&nbsp;and&nbsp;button, exactly like the console. This window just brings them into TouchOSC.<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555cde48&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555cde48\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-01.webp\" alt=\"\" class=\"wp-image-2394\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-01.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-01-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-01-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555ce233&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555ce233\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-02.webp\" alt=\"\" class=\"wp-image-2395\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-02.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-02-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-02-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555ce612&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555ce612\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-03.webp\" alt=\"\" class=\"wp-image-2396\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-03.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-03-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-03-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555cea00&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555cea00\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-04.webp\" alt=\"\" class=\"wp-image-2397\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-04.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-04-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-04-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"100mm-faders\">Assigning Masters to the 100 mm Faders (Main Page)<\/h4>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p class=\"wp-block-paragraph\">On the main interface you have two long physical-style faders:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fader 1 (left)<\/li>\n\n\n\n<li>Fader 2 (right)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You can assign each one to any Special Master from the popup.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"how-to-assign-a-master\">How to Assign a Master:<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Tap the&nbsp;\u201cNipple\u201d button&nbsp;next to the 100 mm fader<\/li>\n\n\n\n<li>The&nbsp;Masters popup opens<\/li>\n\n\n\n<li>Tap any master (for example&nbsp;Speed 1&nbsp;or&nbsp;Grand Master)<\/li>\n\n\n\n<li>The fader is now assigned, no need to map anything in MA2.<\/li>\n<\/ol>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555cf175&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555cf175\" class=\"wp-block-image alignleft size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"309\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-05.webp\" alt=\"\" class=\"wp-image-2398\" style=\"width:173px;height:auto\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-05.webp 309w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-special-master-05-155x300.webp 155w\" sizes=\"auto, (max-width: 309px) 100vw, 309px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"grand-master\"><strong>Grand Master<\/strong><\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.666%\">\n<p class=\"wp-block-paragraph\">The Grand Master controls the overall intensity of all dimmable fixtures in the show.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It behaves exactly like the physical Grand Master on a real MA2 console:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>At 100 %, output is unchanged<\/li>\n\n\n\n<li>Lowering it reduces all dimmer values proportionally<\/li>\n\n\n\n<li>At 0 %, the entire stage goes black, regardless of what is in the Programmer or Executors<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In this layout, you can control the Grand Master in three ways:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>From the main UI \u2192 Central area \u2192 Move the Grand Master slider directly<\/li>\n\n\n\n<li>From the Special Masters window \u2192 Inside the Masters popup \u2192 Move the Grand Master fader in the list of Special Masters<\/li>\n\n\n\n<li>From the 100 mm faders \u2192 Main UI (assignable faders) \u2192 Tap the nipple next to a 100 mm fader \u2192 Select Grand Master<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The Grand Master value is always synced with MA2, but not between the different Grand Master controls inside TouchOSC. Only the MA2 value is authoritative.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.333%\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555cf8d3&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555cf8d3\" class=\"wp-block-image size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"141\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-grand-master.webp\" alt=\"\" class=\"wp-image-2548\" style=\"width:83px;height:auto\"\/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Why the LUA Plugin Is Needed<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">GrandMA2 does not allow Special Masters (Speed, Rate, Grand Master, Program Time, etc.) to be controlled directly via MIDI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So, when you run the included&nbsp;LUA plugin&nbsp;for the first time:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>It automatically creates&nbsp;hidden executor faders on Page 101+<\/li>\n\n\n\n<li>Each of those executors is assigned to a Special Master in MA2<em>(example:&nbsp;<code>Assign SpecialMaster 1 At Executor 100.1<\/code>)<\/em><\/li>\n\n\n\n<li>Those executors are then controlled by TouchOSC<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Everything is already routed, you only choose&nbsp;<em>which<\/em>&nbsp;Special Master to control from the popup.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A full explanation of the plugin will come in&nbsp;<strong><a href=\"#section-4\">Section 4 &#8211; LUA Plugin<\/a><\/strong>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Why Values Don\u2019t Sync Between Popup and Main Faders<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">In earlier versions of the layout, the value of a Special Master was visually mirrored between:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The&nbsp;100 mm faders on the main screen, and<\/li>\n\n\n\n<li>The&nbsp;fader shown inside the Masters popup<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That sync was&nbsp;removed on purpose.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"position-maker\">2.5 Position Maker &amp; Position Storing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;Position Maker&nbsp;is one of the most advanced parts of the layout. It lets you:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Control&nbsp;Pan and Tilt&nbsp;using a virtual XY Pad&nbsp;\/ encoder wheel system<\/li>\n\n\n\n<li>Apply&nbsp;MAtricks, Align, Blocks, Wings, Flip&nbsp;exactly like on the console<\/li>\n\n\n\n<li>Quickly select fixture&nbsp;Groups<\/li>\n\n\n\n<li>Recall or store&nbsp;Position Presets (1\u201320)&nbsp;directly from the tablet<\/li>\n\n\n\n<li>Store positions live from the tablet using a dedicated workflow<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This section explains how storing and logic work, and why some steps (like pressing Please) are required.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Real Trackball \/ Encoder Engine (Not \u201cPan +1\u201d)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The Position Maker doesn\u2019t use commands like&nbsp;<code>Attribute \"Pan\" +5<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It sends actual encoder\/trackball data to MA2 using internal functions like :&nbsp;<code>gma.canbus.ball(x, y)<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That\u2019s the&nbsp;same message the full-size MA2 console sends&nbsp;when you move its physical trackball.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This matters because it means:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Align (&lt;, &gt;, &lt;&gt;, &gt;&lt;)&nbsp;works as expected<\/li>\n\n\n\n<li>MAtricks&nbsp;(Wings, Blocks, Groups, Shuffle) affects distribution<\/li>\n\n\n\n<li>No numeric jumps or broken symmetry<\/li>\n\n\n\n<li>Fixture values respond like on a real desk<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Interface Overview<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">When you open the Position Maker window, you\u2019ll normally see :<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d045b&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d045b\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-01.webp\" alt=\"\" class=\"wp-image-2399\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-01.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-01-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-01-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d0845&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d0845\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-02.webp\" alt=\"\" class=\"wp-image-2400\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-02.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-02-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-02-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d0c2b&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d0c2b\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-03.webp\" alt=\"\" class=\"wp-image-2401\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-03.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-03-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-03-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d100d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d100d\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-04.webp\" alt=\"\" class=\"wp-image-2402\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-04.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-04-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-04-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Groups + Position Recall<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tapping any group selects fixtures in MA2, just like clicking a Group Pool button.<\/li>\n\n\n\n<li>Position tiles show&nbsp;Position 1 to 20&nbsp;from MA2\u2019s&nbsp;Position Pool.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">How Position Storing Works<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Storing positions from the tablet follows a&nbsp;fixed workflow. This is not a design choice, it is required because of how MA2 handles MIDI remotes.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Storing a New Position (Empty Pool Item)<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Select fixtures<\/li>\n\n\n\n<li>Press&nbsp;Store<\/li>\n\n\n\n<li>Position tiles change to&nbsp;\u201cStore Pos 01\u2026 Store Pos 02\u2026\u201d<\/li>\n\n\n\n<li>Tap a tile<\/li>\n\n\n\n<li>Press&nbsp;Please\u2192 Position is stored, tile returns to normal view.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Storing Over an Existing Position (Pool Item Already Has Data)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Normally on MA2, you would see a popup :&nbsp;Merge \/ Overwrite \/ Remove \/ Cancel<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">TouchOSC&nbsp;cannot interact with that dialog&nbsp;via MIDI remotes. So the layout skips it completely and:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Always sends:&nbsp;Store \u2192 \u2192 Please<\/li>\n\n\n\n<li>MA2 defaults to&nbsp;Merge&nbsp;in this case<\/li>\n\n\n\n<li>Overwrite or Remove cannot be triggered from the tablet<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">To make sure the user always completes the required sequence, a&nbsp;grey blocking overlay&nbsp;appears. You must press&nbsp;Please&nbsp;to unlock the interface again.<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d1883&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d1883\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-05.webp\" alt=\"\" class=\"wp-image-2403\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-05.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-05-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-05-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d1c4a&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d1c4a\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-06.webp\" alt=\"\" class=\"wp-image-2404\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-06.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-06-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-06-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d2007&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d2007\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-07.webp\" alt=\"\" class=\"wp-image-2405\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-07.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-07-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-position-maker-07-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Why Not Offer Merge \/ Overwrite \/ Remove Choices?<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>To let the user choose between&nbsp;Merge \/ Overwrite \/ Remove&nbsp;for 20 position tiles, the layout would need&nbsp;60 additional MIDI Remote lines&nbsp;(3 actions \u00d7 20 tiles).<\/li>\n\n\n\n<li>Only&nbsp;17 MIDI remotes are still available&nbsp;in grandMA2, the rest are already used by other parts of the layout.<\/li>\n\n\n\n<li>For this reason, the system uses the&nbsp;safest and most universal method: Merge only.<\/li>\n\n\n\n<li>This could be added in the future if enough users request it, but it would require removing some existing MIDI remotes (for FX, Groups, or other functions) to free the needed space.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">MAtricks &amp; Align<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Because Pan\/Tilt movements are done using real encoder\/trackball input:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Align modes&nbsp;(<code>&lt;<\/code>,&nbsp;<code>&gt;<\/code>,&nbsp;<code>&lt;&gt;<\/code>,&nbsp;<code>&gt;&lt;<\/code>) correctly distribute Pan\/Tilt values across the selection<\/li>\n\n\n\n<li>MAtricks functions&nbsp;(Wings, Blocks, Groups)&nbsp;all work as expected<\/li>\n\n\n\n<li>The behavior is 100% identical to a hardware console<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You can enable MAtricks directly from the&nbsp;MAtricks popup&nbsp;inside the Position Maker window.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>A deeper explanation of MAtricks (how to use Wings, Blocks etc.) will be covered in <\/em><strong><a href=\"#matricks\">Chapter 2.8<\/a><\/strong><em>.<\/em><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"custom-pages\">2.6 Custom Pages<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;Custom Pages&nbsp;section is a safe space in the layout where you can design your own layouts of control, macros, MIDI triggers, FX pages, or any experimental interface, without breaking the rest of the template.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">What\u2019s Included by Default<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Page 01 &amp; 02&nbsp;\u2192 Alternative layout to trigger executors\/buttons (same logic as Exec pages, just a different arrangement).<\/li>\n\n\n\n<li>Page 03&nbsp;\u2192 Gamepad module. Work in progress. Will be detailed in <strong><a href=\"#gamepad\">Chapter 3.8<\/a><\/strong>.<\/li>\n\n\n\n<li>Page 04&nbsp;\u2192 Completely empty. You can design your own layout here.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The system only shows one page at a time. You switch pages using the&nbsp;CUSTOM PAGE SWITCH&nbsp;button on the top right of the screen.<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d28db&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d28db\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-01.webp\" alt=\"\" class=\"wp-image-2406\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-01.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-01-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-01-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d2c9b&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d2c9b\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-02.webp\" alt=\"\" class=\"wp-image-2407\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-02.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-02-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-02-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d3065&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d3065\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-03.webp\" alt=\"\" class=\"wp-image-2408\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-03.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-03-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-03-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d342c&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d342c\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-04.webp\" alt=\"\" class=\"wp-image-2409\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-04.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-04-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-04-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">How to Add a New Custom Page<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Object structure :<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d3903&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d3903\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"282\" height=\"181\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-custom-page-05.webp\" alt=\"\" class=\"wp-image-2410\"\/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Step 1 : Duplicate a page<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the editor: right-click&nbsp;<code>CUSTOM PAGE 04<\/code>&nbsp;\u2192&nbsp;Duplicate<\/li>\n\n\n\n<li>Rename the duplicated group to:&nbsp;<code>CUSTOM PAGE 05<\/code><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Step 2 : Add it to the page-switch script<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Select&nbsp;<code>button CUSTOM PAGE SWITCH<\/code><\/li>\n\n\n\n<li>Go to the script area of this object<\/li>\n\n\n\n<li>At the top of the script, you\u2019ll see :&nbsp;<code>local groupsToShow = {\"CUSTOM PAGE 01\", \"CUSTOM PAGE 02\", \"CUSTOM PAGE 03\", \"CUSTOM PAGE 04\"}<\/code><\/li>\n\n\n\n<li>Add your page :&nbsp;<code>local groupsToShow = {\"CUSTOM PAGE 01\", \"CUSTOM PAGE 02\", \"CUSTOM PAGE 03\", \"CUSTOM PAGE 04\", \"CUSTOM PAGE 05\"}<\/code><\/li>\n\n\n\n<li>The button will now cycle through all five pages.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Important Notes<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Do not rename&nbsp;the root group&nbsp;<code>POP CUSTOM<\/code>&nbsp;or the button&nbsp;<code>CUSTOM PAGE SWITCH<\/code><\/li>\n\n\n\n<li>You can rename the individual pages, but the script names must match exactly<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Adding Your Own Controls<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">To create a custom layout of executors, macros, MIDI buttons, etc., the&nbsp;recommended workflow&nbsp;is:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Copy an existing button or encoder from another part of the layout<\/li>\n\n\n\n<li>Paste it inside your custom page<\/li>\n\n\n\n<li>Only modify the label or the command\/MIDI note<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Why this is better than creating a new object from scratch:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All buttons in this layout already contain:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>MIDI note and feedback routing<\/li>\n\n\n\n<li>LED color logic &amp; touch-state feedback<\/li>\n\n\n\n<li>Scripts for visibility + release behaviour<\/li>\n\n\n\n<li>Correct scaling and panel layout<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Reusing objects means you don\u2019t have to manually set any of that again. This avoids mistakes and saves a lot of setup time<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"v-keys\">2.7 V-Keys<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;V-Keys&nbsp;are located on the right side of Screen 2 in the grandMA2 interface and act as&nbsp;shortcut buttons for Views and ViewPages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this layout, you get the same 10 buttons :&nbsp;V1 \u2192 V10<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They behave exactly like on the console, whatever you assign in MA2 is what the button will recall.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d4238&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d4238\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"342\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-v-keys.webp\" alt=\"\" class=\"wp-image-2411\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-v-keys.webp 342w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-v-keys-171x300.webp 171w\" sizes=\"auto, (max-width: 342px) 100vw, 342px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Function in MA2<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">As defined in the&nbsp;official <strong><a href=\"https:\/\/help.malighting.com\/grandMA2\/en\/help\/key_key_v1-v10.html\" target=\"_blank\" rel=\"noreferrer noopener\">MA2 documentation<\/a><\/strong>&nbsp;:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tap V1 \u2192&nbsp;recalls the View assigned to ViewButton 1<\/li>\n\n\n\n<li>Hold MA + tap V1 \u2192&nbsp;recalls the corresponding&nbsp;ViewPage&nbsp;(if you have multiple pages of views)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Important Notes<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The layout does&nbsp;not&nbsp;store or assign Views, that is done in MA2.<\/li>\n\n\n\n<li>Any View or ViewPage you assign on the console or onPC will be triggered from the tablet.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"matricks\">2.8 MAtricks<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;MAtricks&nbsp;page gives you direct access to the most common MAtricks parameters used when distributing values across a fixture selection (Wings, Blocks, Groups, Align, Odd\/Even\u2026).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is the same system used on the grandMA2 console. All commands are sent as real MA2 commands or MIDI remotes.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d489b&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d489b\" class=\"wp-block-image aligncenter size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"847\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-matricks.webp\" alt=\"\" class=\"wp-image-2412\" style=\"width:569px;height:auto\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-matricks.webp 847w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-matricks-300x213.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-matricks-768x544.webp 768w\" sizes=\"auto, (max-width: 847px) 100vw, 847px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Available Controls<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Align (&lt;, &gt;, &lt;&gt;, &gt;&lt;, Off)<\/code>&nbsp;: Affects how values are distributed across the selection<\/li>\n\n\n\n<li><code>Groups (0 \/ 4 \/ 8 \/ + \/ -)<\/code>&nbsp;: Splits the selected fixtures into groups before values are applied<\/li>\n\n\n\n<li><code>Odd\/Even<\/code>&nbsp;: Limits the selection to only odd or only even fixtures<\/li>\n\n\n\n<li><code>Wings (0 \/ 2 \/ 4 \/ 8 \/ + \/ -)<\/code>&nbsp;: Mirrors values symmetrically across the fixture selection<\/li>\n\n\n\n<li><code>Blocks (0 \/ 2 \/ 4 \/ 8 \/ + \/ -)<\/code>&nbsp;: Applies identical values to fixtures grouped in blocks of 2, 4, 8, etc.<\/li>\n\n\n\n<li><code>Reset All<\/code>&nbsp;: Resets all MAtricks settings (Wings, Blocks, Groups, Align, etc.) back to default<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Fully Compatible with Encoders &amp; Trackball<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">As explained in the&nbsp;<strong><a href=\"#position-maker\">Position Maker<\/a><\/strong>&nbsp;section:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All PAN \/ TILT movement in this layout is generated using&nbsp;MA\u2019s real encoder\/trackball messages.<\/li>\n\n\n\n<li>Because of this,&nbsp;MAtricks and Align behave 100% like on a hardware console,&nbsp;values are distributed according to selection order, groups, wings, blocks, etc.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"effects\">2.9 Effects<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;Effects&nbsp;page gives you direct access to the Effect Pool using preconfigured&nbsp;MIDI Remote commands&nbsp;inside grandMA2.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d4ec8&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d4ec8\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-fx-01.webp\" alt=\"\" class=\"wp-image-2413\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-fx-01.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-fx-01-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-fx-01-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Every FX button in the layout is already linked to a MIDI Remote entry. This means :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You&nbsp;don\u2019t need to create new MIDI Remotes<\/li>\n\n\n\n<li>You&nbsp;only edit the command line&nbsp;if you want the button to trigger a different effect<\/li>\n\n\n\n<li>All routing, feedback, colors, and button logic remain fully functional<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Do not delete or reassign the MIDI channel \/ button mapping<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Default Behavior<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Each FX button is configured to send :&nbsp;<code>Toggle Effect 1001<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This behaves like pressing an Effect Pool tile on the console<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If the effect is OFF \u2192 it starts<\/li>\n\n\n\n<li>If the effect is running \u2192 it stops<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The layout includes buttons for&nbsp;FX 1001 to FX 1080. These are&nbsp;empty slots in the Effect Pool.&nbsp;You still need to&nbsp;store your own effects into those pool IDs&nbsp;in MA2.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Editing What a Button Triggers<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">To change what an FX button does, go to :&nbsp;<code>Setup \u2192 Remote Inputs \u2192 MIDI Remotes<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Only edit the&nbsp;Command&nbsp;column<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d5557&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d5557\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"821\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-fx-02.webp\" alt=\"\" class=\"wp-image-2414\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-fx-02.webp 821w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-fx-02-300x219.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-fx-02-768x561.webp 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You can use commands like :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go Effect 201<\/li>\n\n\n\n<li>Off Effect 1001<\/li>\n\n\n\n<li>Reload Effect 1001<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Updating the Label in TouchOSC<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">If you change the command or effect number, you can update the button\u2019s text :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On TouchOSC Editor&nbsp;\u2192 Click the label on top of the button \u2192 Change&nbsp;Text Label<\/li>\n\n\n\n<li>On the tablet&nbsp;\u2192 Activate&nbsp;Edit Mode&nbsp;\u2192 Tap the Button \u2192 Rename it Directly<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">See the <strong><a href=\"#edit-mode\">Edit Mode Chapter<\/a><\/strong> for details.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"macros\">2.10 Macros<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;Macros&nbsp;page gives you access to Macro Pool objects using preconfigured&nbsp;MIDI Remote commands&nbsp;inside grandMA2.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d5b6d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d5b6d\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-macro-01.webp\" alt=\"\" class=\"wp-image-2415\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-macro-01.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-macro-01-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-macro-01-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Each button you see (Macro 1001 \u2192 Macro 1080) is already linked to a MIDI Remote entry, so :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You&nbsp;don\u2019t need to create new MIDI remotes<\/li>\n\n\n\n<li>You&nbsp;only edit the command line&nbsp;to change which macro is triggered<\/li>\n\n\n\n<li>All routing, feedback and TouchOSC mapping stay intact<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Do not delete or reassign the MIDI channel \/ button mapping<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Default Behavior<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">By default, every button is set to execute :&nbsp;<code>Go Macro 1001<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The layout includes buttons for&nbsp;Macro 1001 to Macro 1080. These are&nbsp;empty slots in the Macro Pool. You still need to&nbsp;store your own macro content into those pool IDs&nbsp;in MA2.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Editing What a Button Triggers<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">If you want a different macro, simply modify the command field:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On MA2 go to :&nbsp;<code>Setup \u2192 Remote Inputs \u2192 MIDI Remotes<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Only edit the&nbsp;CMD&nbsp;column<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d622f&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d622f\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"820\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-macro-02.webp\" alt=\"\" class=\"wp-image-2416\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-macro-02.webp 820w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-macro-02-300x220.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-macro-02-768x562.webp 768w\" sizes=\"auto, (max-width: 820px) 100vw, 820px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You can use commands like :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Go Macro 201<\/code><\/li>\n\n\n\n<li><code>Off Macro 1001<\/code><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Updating the Label in TouchOSC<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">After changing the macro number, rename the button so it matches :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On TouchOSC Editor&nbsp;\u2192 Click the label on top of the button \u2192 Change&nbsp;Text Label<\/li>\n\n\n\n<li>On the tablet&nbsp;\u2192 Activate&nbsp;Edit Mode&nbsp;\u2192 Tap the Button \u2192 Rename it Directly<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">See the <strong><a href=\"#edit-mode\">Edit Mode Chapter<\/a><\/strong> for details.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"groups\">2.11 Groups<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;Groups&nbsp;page gives you access to Group Pool objects on the console using preconfigured&nbsp;MIDI Remote commands.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d687a&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d687a\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-groups-01.webp\" alt=\"\" class=\"wp-image-2417\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-groups-01.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-groups-01-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-groups-01-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Each button (Group 1001 \u2192 Group 1080) is already linked to a MIDI Remote line inside grandMA2, so :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You&nbsp;don\u2019t need to create new MIDI remotes<\/li>\n\n\n\n<li>You only&nbsp;edit the command field&nbsp;if you want a different group number<\/li>\n\n\n\n<li>All MIDI routing, feedback, button colors and mapping stay functional<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Do not delete or change the MIDI channel, page or button mapping.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Default Behavior<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">By default every button sends :&nbsp;<code>Group 1001<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This behaves exactly like tapping a Group Pool button on the console :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2192 It selects that group of fixtures in the programmer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The layout includes buttons for&nbsp;Group 1001 to Group 1080. These are&nbsp;empty pool slots,&nbsp;you still need to&nbsp;store your own groups into those pool IDs&nbsp;in MA2.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Editing Which Group a Button Selects<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">If you want a button to call another group :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On MA2 go to :&nbsp;<code>Setup \u2192 Remote Inputs \u2192 MIDI Remotes<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Only edit the&nbsp;CMD&nbsp;column<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d6f3c&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d6f3c\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"488\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-groups-02-1024x488.webp\" alt=\"\" class=\"wp-image-2418\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-groups-02-1024x488.webp 1024w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-groups-02-300x143.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-groups-02-768x366.webp 768w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-groups-02.webp 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Updating the Label in TouchOSC<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">To keep things clear, rename the button label to match the group number you\u2019re using :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>On TouchOSC Editor&nbsp;\u2192 Click the label on top of the button \u2192 Change&nbsp;Text Label<\/li>\n\n\n\n<li>On the tablet&nbsp;\u2192 Activate&nbsp;Edit Mode&nbsp;\u2192 Tap the Button \u2192 Rename it Directly<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">See the <strong><a href=\"#edit-mode\">Edit Mode Chapter<\/a><\/strong> for details.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"x-keys\">2.12 X-Keys<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;X Keys&nbsp;page in this layout gives you quick access to the 20 X-Key buttons (X1 \u2192 X20). Just like on the right side of Screen 1 on the MA2 console.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d7517&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d7517\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"552\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-x-keys-1024x552.webp\" alt=\"\" class=\"wp-image-2419\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-x-keys-1024x552.webp 1024w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-x-keys-300x162.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-x-keys-768x414.webp 768w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-x-keys.webp 1114w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">How They Work in This Layout<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The buttons&nbsp;X1 to X20&nbsp;are already placed and mapped to MA2.<\/li>\n\n\n\n<li>They are&nbsp;not assigned to anything by default,&nbsp;it\u2019s up to you to decide what they trigger.<\/li>\n\n\n\n<li>Typical use cases:\n<ul class=\"wp-block-list\">\n<li>Start\/stop sequences, temp, solo, flash\u2026<\/li>\n\n\n\n<li>Call views or view pages<\/li>\n\n\n\n<li>Trigger macros or commands<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Just assign them directly in MA2<\/p>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-3\">Section 3 &#8211; Extended Features<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div id=\"sec3\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\" id=\"simple-interface\">3.1 Simple Interface<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;Simple Interface&nbsp;is a minimalist and isolated control page designed for&nbsp;non-technical users, venue staff, or backup safety use.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It works similarly to a Custom Page, but is&nbsp;directly integrated into the Lock Screen system&nbsp;and follows special behavior.<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d86c0&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d86c0\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-simple-interface-01.webp\" alt=\"\" class=\"wp-image-2420\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-simple-interface-01.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-simple-interface-01-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-simple-interface-01-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d8b71&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d8b71\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-simple-interface-02.webp\" alt=\"\" class=\"wp-image-2421\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-simple-interface-02.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-simple-interface-02-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-simple-interface-02-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">How It Works<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Press LOCK \u2192 everything is disabled<\/li>\n\n\n\n<li>Press SIMPLE INTERFACE \u2192 desk unlocks, but only this page is accessible<\/li>\n\n\n\n<li>The rest of the layout remains hidden (no encoders, no execs, no macros, no edit mode)<\/li>\n\n\n\n<li>To exit \u2192 tap&nbsp;Lock&nbsp;again, then&nbsp;Unlock&nbsp;to return to full layout<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Purpose<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This mode exists because users needed a way to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Let&nbsp;staff, artists, or venue operators&nbsp;play cues safely without accessing programming tools<\/li>\n\n\n\n<li>Provide a&nbsp;\u201cplay-only\u201d remote mode&nbsp;during rehearsals or open venue operation<\/li>\n\n\n\n<li>Prevent accidental programming, storing, deleting, or clearing during live shows<\/li>\n\n\n\n<li>Keep a&nbsp;minimal backup interface&nbsp;in case the main layout must stay locked<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Adding Your Own Controls<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">As stated in the chapter about <strong><a href=\"#custom-pages\">Custom Pages<\/a><\/strong>, to create a custom layout of executors, macros, MIDI buttons, etc., the&nbsp;recommended workflow&nbsp;is:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Copy an existing button or encoder from another part of the layout<\/li>\n\n\n\n<li>Paste it inside your custom page<\/li>\n\n\n\n<li>Only modify the label or the command\/MIDI note<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Why this is better than creating a new object from scratch:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All buttons in this layout already contain:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>MIDI note and feedback routing<\/li>\n\n\n\n<li>LED color logic &amp; touch-state feedback<\/li>\n\n\n\n<li>Scripts for visibility + release behaviour<\/li>\n\n\n\n<li>Correct scaling and panel layout<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Reusing objects means you don\u2019t have to manually set any of that again. This avoids mistakes and saves a lot of setup time<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Important Notes<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>MIDI output is re-enabled when entering Simple Interface, but&nbsp;only&nbsp;from the controls you placed there<\/li>\n\n\n\n<li>Everything else (Encoders, Exec Pages, Action Buttons, Position Maker, MAtricks, etc.) stays hidden and disabled<\/li>\n\n\n\n<li>Users in this mode&nbsp;cannot access Edit Mode, Store, or clear the programmer&nbsp;(unless you place those buttons yourself)<\/li>\n\n\n\n<li>If you need multiple pages or more logic, use&nbsp;Custom Pages (Section 2.6)&nbsp;instead<\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"vibration-module\">3.2 Vibration Module<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Some buttons in the layout provide&nbsp;haptic feedback&nbsp;(vibration) when pressed. This adds a more physical feel when triggering important functions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The vibration is generated&nbsp;locally on your device via TouchOSC,&nbsp;it is not sent to or processed by grandMA2.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555d9c76&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555d9c76\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-vibration-module.webp\" alt=\"\" class=\"wp-image-2422\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-vibration-module.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-vibration-module-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-vibration-module-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">How It Works<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Buttons that support vibration include a built-in script.<\/li>\n\n\n\n<li>When pressed, this script checks if the&nbsp;Vibration Master toggle&nbsp;is enabled.<\/li>\n\n\n\n<li>If it is, and the device supports haptic feedback, TouchOSC triggers&nbsp;<code>vibrate()<\/code>.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Global Vibration Switch<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Located inside the Lock Screen utility panel.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ON (default)&nbsp;\u2192 vibration is active on all buttons that support it<\/li>\n\n\n\n<li>OFF&nbsp;\u2192 disables vibration everywhere in the layout, even if scripts are present<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Notes &amp; Limitations<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Android phones\/tablets \u2192 supported<\/li>\n\n\n\n<li>iPhones \u2192 supported<\/li>\n\n\n\n<li>iPads \u2192 no vibration hardware \u2192 no feedback possible<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Custom Haptic Behaviors<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">More complex vibration logic is also possible (double-tap, long-press, vibration on release, etc.) this just requires additional scripting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Feel free to <strong><a href=\"mailto:contactmaxmugen@gmail.com\" target=\"_blank\" rel=\"noreferrer noopener\">contact me<\/a><\/strong> if you want help adding it.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"edit-mode\">3.3 Edit Mode<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Edit Mode&nbsp;lets you customize the TouchOSC layout directly on your device. No computer or TouchOSC Editor required.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can change button colors, rename labels, and personalize FX, Macros, Groups, Positions, and Executors on fixed pages, plus a few other UI elements.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Edit Mode lives behind the&nbsp;Lock Screen&nbsp;so you cannot trigger it by accident during a show.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555da8a9&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555da8a9\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-01.webp\" alt=\"\" class=\"wp-image-2423\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-01.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-01-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-01-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">What Edit Mode Does<\/h4>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555dae4b&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555dae4b\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-02.webp\" alt=\"\" class=\"wp-image-2424\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-02.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-02-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-02-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555db401&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555db401\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-05.webp\" alt=\"\" class=\"wp-image-2426\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-05.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-05-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-05-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">While active, Edit Mode :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lets you&nbsp;edit button colors&nbsp;or&nbsp;rename labels<\/li>\n\n\n\n<li>Opens the&nbsp;Color Picker&nbsp;for buttons or the&nbsp;Keyboard&nbsp;for labels automatically<\/li>\n\n\n\n<li>Mutes all MIDI to grandMA2&nbsp;so tapping cannot trigger anything live<\/li>\n\n\n\n<li>Saves changes into the&nbsp;<code>.tosc<\/code>&nbsp;file immediately<\/li>\n\n\n\n<li>Requires no reload<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">How to Use It<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Unlock the layout if locked<\/li>\n\n\n\n<li>Tap&nbsp;EDIT MODE ON&nbsp;on the Lock Screen<\/li>\n\n\n\n<li>Choose one option\n<ul class=\"wp-block-list\">\n<li>EDIT BUTTONS&nbsp;\u2192 button color \u2192 Color Picker<\/li>\n\n\n\n<li>EDIT LABELS&nbsp;\u2192 text \/ captions \u2192 Keyboard<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Tap any editable object (FX, Macro, Group, Position, Exec on fixed pages)<\/li>\n\n\n\n<li>Apply color or rename<\/li>\n\n\n\n<li>Tap&nbsp;Lock, then turn&nbsp;Edit Mode OFF&nbsp;to return to normal operation<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Edit Buttons Mode \u2013 Color Picker<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Tapping an editable button opens the&nbsp;Color Picker&nbsp;window.<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555dc03d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555dc03d\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-03.webp\" alt=\"\" class=\"wp-image-2427\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-03.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-03-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-03-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555dc619&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555dc619\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-04.webp\" alt=\"\" class=\"wp-image-2428\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-04.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-04-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-04-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">What you get :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Full color spectrum&nbsp;to pick any hue<\/li>\n\n\n\n<li>RGBA sliders&nbsp;for precise values (0\u2013255)<\/li>\n\n\n\n<li>MA Colors&nbsp;that mirror the grandMA2 palette<\/li>\n\n\n\n<li>UI Colors&nbsp;that match this layout\u2019s default theme<\/li>\n\n\n\n<li>Recent Colors&nbsp;that update automatically with your last choices<\/li>\n\n\n\n<li>Grayscale&nbsp;toggle for a neutral monochrome set<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Press&nbsp;PLEASE&nbsp;to apply or&nbsp;CANCEL&nbsp;to exit.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Edit Labels Mode \u2013 Label Renaming<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">When you select&nbsp;Edit Labels, you can rename buttons and tiles such as FX, Macros, Groups, Positions, and more.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555dcff5&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555dcff5\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-06.webp\" alt=\"\" class=\"wp-image-2429\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-06.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-06-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-edit-mode-06-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">How it works :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Enter&nbsp;Edit Mode \u2192 Edit Labels<\/li>\n\n\n\n<li>Tap a label \u2192 the on-screen keyboard appears<\/li>\n\n\n\n<li>Type the new name \u2192 tap&nbsp;Please<\/li>\n\n\n\n<li>The label updates immediately<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Press&nbsp;PLEASE&nbsp;to apply or&nbsp;CANCEL&nbsp;to exit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Notes :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>This updates only the&nbsp;TouchOSC label, not the object name in grandMA2<\/li>\n\n\n\n<li>Only items I marked as editable will open the keyboard<\/li>\n\n\n\n<li>Perfect for \u201ceffect 1001\u201d \u2192 \u201cCircle Dimmer\u201d type changes<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">What You Can Edit<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">You can edit :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Executors&nbsp;on fixed pages (text + color)<\/li>\n\n\n\n<li>Positions&nbsp;(text + color)<\/li>\n\n\n\n<li>Effects&nbsp;(text + color)<\/li>\n\n\n\n<li>Macros&nbsp;(text + color)<\/li>\n\n\n\n<li>Groups&nbsp;(text + color)<\/li>\n\n\n\n<li>The two 100 mm faders&nbsp;(color only)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Why It Exists<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rename and recolor quickly during rehearsals or festivals<\/li>\n\n\n\n<li>Match button colors to looks, positions, or rig sections<\/li>\n\n\n\n<li>Keep touring rigs readable by adapting names per venue<\/li>\n\n\n\n<li>Work directly on the tablet without opening a laptop or the TouchOSC desktop app<\/li>\n\n\n\n<li>Safe editing :&nbsp;MIDI is fully disabled&nbsp;while you edit<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If you need additional editable areas (views, more executors, custom modules), <strong><a href=\"mailto:contactmaxmugen@gmail.com\" target=\"_blank\" rel=\"noreferrer noopener\">send me an email<\/a><\/strong>. This module is already heavy, so I unlock extra controls on request.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"screensaver\">3.4 Screensaver<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Screensaver is an Easter egg module inside the layout. While not essential for programming, it serves as a technical demonstration of TouchOSC&#8217;s animation capabilities (and provides a visual break during long sessions).<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555ddf23&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555ddf23\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screensaver-01.webp\" alt=\"\" class=\"wp-image-2430\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screensaver-01.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screensaver-01-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screensaver-01-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555de505&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555de505\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screensaver-02.webp\" alt=\"\" class=\"wp-image-2431\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screensaver-02.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screensaver-02-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screensaver-02-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">What It Does<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Press&nbsp;SCREENSAVER&nbsp;and the entire interface switches to a fullscreen animated Nyan Cat.<\/li>\n\n\n\n<li>All&nbsp;MIDI output is paused,&nbsp;nothing is sent to MA2 while the screensaver is active.<\/li>\n\n\n\n<li>The layout stays protected behind the&nbsp;Lock Screen.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Why It Exists<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Just because :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I wanted to see if TouchOSC could handle animation, timing, movement\u2026 and yes, it can.<\/li>\n\n\n\n<li>It makes me smile, and during long nights of programming, that\u2019s a valid feature.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Performance &amp; Safety<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>When you exit the screensaver, all animations and scripts&nbsp;stop automatically.<\/li>\n\n\n\n<li>No background CPU usage, no hidden processing.<\/li>\n\n\n\n<li>MIDI stays blocked until you manually unlock and return to the main interface.<\/li>\n\n\n\n<li>The screensaver is completely isolated from MA2 and cannot trigger cues or commands.&nbsp;<em>(Well, it could ! )<\/em><\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"pong-game\">3.5 Pong Game<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This layout includes a fully working Pong game built directly in TouchOSC. It was originally developed as a complex scripting challenge to test multitouch capability and physics limits within the app, and was left in the final build as a bonus module.<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555df183&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555df183\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-pong-game-01.webp\" alt=\"\" class=\"wp-image-2432\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-pong-game-01.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-pong-game-01-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-pong-game-01-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555df74e&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555df74e\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-pong-game-02.webp\" alt=\"\" class=\"wp-image-2433\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-pong-game-02.webp 960w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-pong-game-02-300x188.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-pong-game-02-768x480.webp 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">What It Does<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Opens a fullscreen&nbsp;Pong game&nbsp;inside the layout<\/li>\n\n\n\n<li>Includes:\n<ul class=\"wp-block-list\">\n<li>Moving ball &amp; collision physics<\/li>\n\n\n\n<li>Left &amp; right paddles<\/li>\n\n\n\n<li>Score counter<\/li>\n\n\n\n<li>Start,&nbsp;Reset, and&nbsp;Close&nbsp;buttons<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Completely isolated from MA2<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Why It Exists<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Purely for fun (and for my sanity while developing this layout)<\/li>\n\n\n\n<li>A tech experiment to push TouchOSC beyond UI buttons<\/li>\n\n\n\n<li>A good example of multitouch control, real-time redrawing &amp; animation in TouchOSC<\/li>\n\n\n\n<li>Provides a technical demonstration of real-time redrawing in TouchOSC.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Background<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The game is based on the original&nbsp;\u201cPone For Ong\u201d&nbsp;example included with the TouchOSC software.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I took that base and&nbsp;modified and expanded it, adding:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dual paddles&nbsp;with&nbsp;true multitouch support<\/li>\n\n\n\n<li>Start \/ Stop&nbsp;controls with proper&nbsp;visibility and game state management<\/li>\n\n\n\n<li>Adaptive speed and spin physics&nbsp;based on where the ball hits the paddle<\/li>\n\n\n\n<li>Randomized bounce variation&nbsp;for more natural gameplay<\/li>\n\n\n\n<li>Fully isolated system.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Performance &amp; Safety<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>When you&nbsp;close the Pong window, the game loop fully stops<\/li>\n\n\n\n<li>No scripts or timers run in the background<\/li>\n\n\n\n<li>CPU and memory usage return to normal immediately<\/li>\n\n\n\n<li>It never controls MA2, triggers cues, or affects your show data.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"long-press-commands\">3.6 Long Press Commands<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Some buttons in the layout have&nbsp;dual functionality,&nbsp;they perform&nbsp;<em>one command on a short tap<\/em>, and&nbsp;<em>another command when held longer<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This allows a single control to trigger two different actions depending on how you interact with it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Only a&nbsp;few essential buttons&nbsp;use this feature, no global expansion is planned.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555e07fd&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555e07fd\" class=\"wp-block-image aligncenter size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-long-press-commands.webp\" alt=\"\" class=\"wp-image-2434\" style=\"width:233px;height:auto\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-long-press-commands.webp 461w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-long-press-commands-231x300.webp 231w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">How It Works<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Short tap&nbsp;\u2192 sends the default command<\/li>\n\n\n\n<li>Long press&nbsp;\u2192 triggers a different command via another MIDI Remote in MA2<\/li>\n\n\n\n<li>The detection is fully handled inside TouchOSC, while the actual long-press command is linked to a&nbsp;separate MIDI Remote line&nbsp;in grandMA2.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This works&nbsp;everywhere those buttons exist,&nbsp;including inside pop-up windows.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Buttons with Long-Press Function<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Fdpg-<\/code>&nbsp;\u2192 Go to Fader Page 1<\/li>\n\n\n\n<li><code>Bnpg-<\/code>&nbsp;\u2192 Go to Button Page 1<\/li>\n\n\n\n<li><code>Chpg-<\/code>&nbsp;\u2192 Go to Channel Page 1<\/li>\n\n\n\n<li><code>Store<\/code>&nbsp;\u2192 Opens Store Options<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">So for example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tapping&nbsp;Store&nbsp;= normal store.<\/li>\n\n\n\n<li>Holding&nbsp;Store&nbsp;= opens the&nbsp;Store Options (DSO) menu&nbsp;on MA2.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Why Only a Few Buttons Use It?<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Long-press adds complexity and doubled MIDI lines per button.<\/li>\n\n\n\n<li>These are only used where it genuinely improves workflow.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"screen-encoder\">3.7&nbsp;Screen Encoder<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This module is a small but very practical tool that lets you remotely&nbsp;scroll any MA2 screen window, the same way as turning the physical&nbsp;Screen Encoder&nbsp;on the console.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555e1406&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555e1406\" class=\"wp-block-image aligncenter size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"543\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screen-encoder-543x1024.webp\" alt=\"\" class=\"wp-image-2435\" style=\"width:230px;height:auto\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screen-encoder-543x1024.webp 543w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screen-encoder-159x300.webp 159w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screen-encoder-768x1450.webp 768w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screen-encoder-814x1536.webp 814w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-screen-encoder.webp 835w\" sizes=\"auto, (max-width: 543px) 100vw, 543px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">What It Does<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Emulates the&nbsp;Screen Encoder wheel&nbsp;from MA2<\/li>\n\n\n\n<li>You first select&nbsp;which screen (1\u20136)&nbsp;you want to control<\/li>\n\n\n\n<li>Then press&nbsp;UP \/ DOWN&nbsp;to scroll, move focus, or change values in that screen<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Why You Must Select the Screen Manually<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">grandMA2 does&nbsp;not send any MIDI feedback about which screen is currently active\/focused.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because TouchOSC has no way to detect this automatically, the only reliable method is to manually choose the screen (1\u20136) \u2192 then use the Up\/Down arrows to control it.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Layout History<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">In earlier versions of this layout, Screen Encoder control used full&nbsp;rotary encoders with push-click, just like other encoder modules.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After beta testing, this was simplified into the current compact design.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"gamepad\">3.8 Gamepad Integration (Beta \/ Work in Progress)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This module is still experimental, but already functional.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can connect a&nbsp;physical game controller&nbsp;(PS5, Xbox, Nintendo, generic USB\/Bluetooth\u2026) and see all button, trigger, and joystick inputs directly inside TouchOSC.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555e1e46&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555e1e46\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"582\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-gamepad.webp\" alt=\"\" class=\"wp-image-2436\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-gamepad.webp 582w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-gamepad-291x300.webp 291w\" sizes=\"auto, (max-width: 582px) 100vw, 582px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">What Works Right Now<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Connect any controller via&nbsp;USB or Bluetooth<\/li>\n\n\n\n<li>TouchOSC will automatically detect it and display real-time input values for:\n<ul class=\"wp-block-list\">\n<li>D-Pad&nbsp;(Up \/ Down \/ Left \/ Right)<\/li>\n\n\n\n<li>A\/B\/X\/Y&nbsp;or&nbsp;Cross\/Square\/Triangle\/Circle<\/li>\n\n\n\n<li>Joysticks (X and Y axis)<\/li>\n\n\n\n<li>Triggers (LT \/ RT or L2 \/ R2)<\/li>\n\n\n\n<li>Bumpers (LB \/ RB or L1 \/ R1)<\/li>\n\n\n\n<li>Select \/ Start \/ Home buttons<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Useful for testing if your device is detected and calibrated correctly<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">What\u2019s Planned (Future Updates)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The goal is to make this page work similarly to the&nbsp;Special Master Assignment&nbsp;window, but for game controllers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You\u2019ll be able to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Select any button or joystick on the controller<\/li>\n\n\n\n<li>Assign&nbsp;any MIDI Remote ID&nbsp;(Pan\/Tilt, Exec, Macro, FX, Cue, Group, etc.)<\/li>\n\n\n\n<li>Do it&nbsp;directly on the tablet&nbsp;with no computer needed<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This takes time because:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>There are over&nbsp;1000+ possible MIDI remote commands<\/li>\n\n\n\n<li>Mapping must be&nbsp;fast, safe, and 100% reliable in live shows<\/li>\n\n\n\n<li>Needs&nbsp;zero latency, no double-triggers, full compatibility across devices<\/li>\n\n\n\n<li>And lots of&nbsp;debugging + beta testing&nbsp;before release<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The system works in prototype form, and it\u2019s planned for a future update.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Roadmap<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Input Monitor&nbsp;\u2192 Already working<\/li>\n\n\n\n<li>Basic Mapping Version&nbsp;\u2192 Fixed button-to-MIDI setup + user feedback phase (planned for V02)<\/li>\n\n\n\n<li>Full Assignment System&nbsp;\u2192 Assign any controller button to any MIDI command directly from the tablet (planned for V03)<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">If you want to&nbsp;join the beta testing or help shape this feature, feel free to <strong><a href=\"mailto:contactmaxmugen@gmail.com\" target=\"_blank\" rel=\"noreferrer noopener\">contact me<\/a><\/strong>.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"dual-tablet\">3.9 Dual Tablet Integration (Coming Soon)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The layout is currently designed to be used on&nbsp;one tablet at a time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You&nbsp;<em>can<\/em>&nbsp;technically connect several devices to the same MA2 session, but there are a few limitations you should know about.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Current Situation<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Multiple tablets running TouchOSC can connect to the same MA2 session.<\/li>\n\n\n\n<li>All of them can send MIDI to MA2 at the same time.<\/li>\n\n\n\n<li>But the layout is still treated as&nbsp;one control surface, not multiple synchronized ones.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This means:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No page synchronization&nbsp;\u2192 Each tablet stays on its own page and popups.<\/li>\n\n\n\n<li>Edit Mode &amp; Lock Screen apply only to the local tablet, not the others.<\/li>\n\n\n\n<li>If two devices control the same executor or fader, the last message received wins \u2192 potential conflict.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Why It\u2019s Not Supported Yet<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">To make true multi-tablet usage safe and reliable, I would need to build:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Conflict protection and command safety rules to prevent double triggers<\/li>\n\n\n\n<li>A way to synchronize page states, popups, lock status, edit mode, etc.<\/li>\n\n\n\n<li>Possibly restructure how almost every message is routed internally<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Implementing this requires a significant architectural rewrite of the layout&#8217;s internal logic to ensure zero-latency synchronization between devices.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Development is ongoing and is planned for a future update.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"apc-mini\">3.10 APC Mini Integration (Coming Soon)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The layout will soon support&nbsp;Akai APC Mini&nbsp;as an external hardware control surface for grandMA2, tightly integrated with this TouchOSC layout.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Planned Features<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">When released, the APC Mini module will allow:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>8 Faders + Master fader&nbsp;\u2192 directly mapped to MA2 executors or special masters<\/li>\n\n\n\n<li>40 Pads (5\u00d78 grid)&nbsp;\u2192 can trigger cues, execs, macros, chasers, etc.<\/li>\n\n\n\n<li>LED Feedback&nbsp;\u2192 pads light up when an Exec is active (Go, Flash, Solo, Toggle\u2026)<\/li>\n\n\n\n<li>Shift Layer Support&nbsp;\u2192 one physical button \u2192 multiple pages\/banks of commands<\/li>\n\n\n\n<li>Bi-Directional MIDI&nbsp;\u2192 hardware updates UI, UI updates hardware<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Want to Beta Test?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">If you already own an APC Mini and want early access once the first version works:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u27a1&nbsp;<strong><a href=\"mailto:contactmaxmugen@gmail.com\" target=\"_blank\" rel=\"noreferrer noopener\">Send me an email<\/a><\/strong>, I\u2019ll include you in the beta test group.<\/p>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-4\">Section 4 &#8211; Lua Plugin<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div id=\"sec4\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\" id=\"lua-plugin-does\">4.1 What the LUA Plugin Does<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;LUA Plugin&nbsp;is an automatic setup tool. It prepares your MA2 showfile so the TouchOSC layout can communicate correctly. No need to manually import MIDI Remotes or assign Special Masters.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">What the Plugin Installs<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>~1000 MIDI Remote lines&nbsp;used by the layout<\/li>\n\n\n\n<li>Special Master executors&nbsp;on Pages&nbsp;101\u2013105&nbsp;(backend only)<\/li>\n\n\n\n<li>Helper macros&nbsp;used for plugin install, uninstall, and export actions<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This process takes about 10 seconds and works on any new or existing showfile.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">What the Plugin Never Modifies<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">It does&nbsp;not&nbsp;touch:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Your&nbsp;Patch \/ Fixtures \/ Universes<\/li>\n\n\n\n<li>Your&nbsp;Sequences, Cues, Presets, or Programmer data<\/li>\n\n\n\n<li>Your&nbsp;Views, Profiles, Users, or Network settings<\/li>\n\n\n\n<li>Your&nbsp;TouchOSC layout file&nbsp;(you load that separately on your tablet)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Where Special Master Executors Are Stored<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">To control Speed Masters, Rate, Program Time, Grand Master, etc., the plugin creates hidden executors in MA2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These are not for show control, they are only used as a bridge between TouchOSC and MA2.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Page 101 \u2192 SpecialMaster 1.x \u2192&nbsp;Assigned to&nbsp;Executors 101.1 \u2192 101.11<\/li>\n\n\n\n<li>Page 102 \u2192 SpecialMaster 2.x \u2192&nbsp;Assigned to&nbsp;Executors 102.1 \u2192 102.6<\/li>\n\n\n\n<li>Page 103 \u2192 SpecialMaster 3.x \u2192&nbsp;Assigned to&nbsp;Executors 103.1 \u2192 103.15<\/li>\n\n\n\n<li>Page 104 \u2192 SpecialMaster 4.x \u2192&nbsp;Assigned to&nbsp;Executors 104.1 \u2192 104.15<\/li>\n\n\n\n<li>Page 105 \u2192 SpecialMaster 5.x \u2192&nbsp;Assigned to&nbsp;Executors 105.1 \u2192 105.15<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Important Notes<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If executors already exist on&nbsp;Pages 101\u2013105, they will be&nbsp;deleted and replaced&nbsp;during installation.<\/li>\n\n\n\n<li>You do&nbsp;not need to rename, label, or modify&nbsp;these executors, they are backend only.<\/li>\n\n\n\n<li>The&nbsp;100 mm fader popup&nbsp;in the layout simply selects which Special Master to control from these executors.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Why This Plugin Exists<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Before the plugin, setup required:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Manually importing&nbsp;multiple macros<\/li>\n\n\n\n<li>Manually importing&nbsp;~1000 MIDI Remotes<\/li>\n\n\n\n<li>Manually assigning&nbsp;every Special Master&nbsp;to executor pages<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This was slow, error-prone, and unsafe during touring or show prep.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now it\u2019s:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>3 clicks \u2192 10 seconds<\/li>\n\n\n\n<li>Always identical and reliable<\/li>\n\n\n\n<li>Safe to run on any new or existing showfile<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Limitations of LUA in MA2<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Limited persistence hooks&nbsp;: complex merge operations (like appending to the MIDI table) are not supported natively.<\/li>\n\n\n\n<li>MIDI Remote import behavior&nbsp;: MA2 replaces the full table when importing XML (no native merge).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Despite these limits, the plugin handles everything this layout needs reliably.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"how-to-install-plugin\">4.2 How to Install \/ Export \/ Remove the Plugin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The setup can be done manually or automatically.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;recommended method is using the LUA Plugin.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Install the Plugin<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:80%\">\n<ol class=\"wp-block-list\">\n<li>On MA2 :&nbsp;Create Basic Window \u2192 System \u2192 Plugins \u2192 Edit New Plugin<\/li>\n\n\n\n<li>Paste the LUA plugin code \u2192&nbsp;Save<\/li>\n\n\n\n<li>Tap the plugin \u2192 choose&nbsp;\u201cInstall Plugin\u201d<\/li>\n\n\n\n<li>Confirm the dialog: \u201c\n<ul class=\"wp-block-list\">\n<li>\u201cThis will install MIDI Remotes and assign Special Masters for TOSC communication. <\/li>\n\n\n\n<li>If you have executors on Pages 101\u2013105, they will be deleted and replaced. <\/li>\n\n\n\n<li>Proceed with installation?\u201d<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Press&nbsp;Please \u2192 Please \u2192 Please\n<ul class=\"wp-block-list\">\n<li>\u201cPLUGIN COMPLETED SUCCESSFULLY ! MIDI Remotes have been installed. <\/li>\n\n\n\n<li>Special Masters were assigned to Pages 101\u2013105 for communication with TOSC. <\/li>\n\n\n\n<li>You do not need to use or modify them. They are for backend purposes only.\u201d<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555e44d8&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555e44d8\" class=\"wp-block-image size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-01.webp\" alt=\"\" class=\"wp-image-2437\" style=\"width:420px;height:auto\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-01.webp 680w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-01-300x265.webp 300w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555e49a5&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555e49a5\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1019\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-02.webp\" alt=\"\" class=\"wp-image-2438\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-02.webp 1019w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-02-300x177.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-02-768x452.webp 768w\" sizes=\"auto, (max-width: 1019px) 100vw, 1019px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555e4d78&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555e4d78\" class=\"wp-block-image aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"527\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-03.webp\" alt=\"\" class=\"wp-image-2439\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-03.webp 527w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-03-264x300.webp 264w\" sizes=\"auto, (max-width: 527px) 100vw, 527px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">To see what the plugin actually did, check the Command Line feedback and the System Monitor window. They will show you the full execution log, including any errors.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Uninstall the Plugin<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Run the plugin again<\/li>\n\n\n\n<li>Choose&nbsp;Uninstall Plugin<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This removes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All MIDI Remotes created by the plugin<\/li>\n\n\n\n<li>Executor pages&nbsp;101\u2013105&nbsp;used for Special Masters<\/li>\n\n\n\n<li>The plugin itself<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You can also choose to :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Remove only MIDI Remotes<\/li>\n\n\n\n<li>Remove only Special Masters<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Export MIDI Remotes to XML<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This option lets you export all current MIDI Remote entries to an XML file.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Run the plugin<\/li>\n\n\n\n<li>Choose&nbsp;\u201cExport MIDI Remotes to XML\u201d<\/li>\n\n\n\n<li>Type a filename (without extension) \u2192 press&nbsp;Please\n<ul class=\"wp-block-list\">\n<li>\u201cExport Complete MIDI Remotes have been successfully exported as:&nbsp;<code>my_remotes_new.xml<\/code>&nbsp;You can find the file in the \u201cimportexport\u201d&nbsp;folder of your show directory.\u201d<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555e5663&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555e5663\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"206\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-04-1024x206.webp\" alt=\"\" class=\"wp-image-2440\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-04-1024x206.webp 1024w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-04-300x60.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-04-768x154.webp 768w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-04.webp 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad73555e5a44&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad73555e5a44\" class=\"wp-block-image aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"528\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-05-1024x528.webp\" alt=\"\" class=\"wp-image-2441\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-05-1024x528.webp 1024w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-05-300x155.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-05-768x396.webp 768w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/11\/touchosc-layout-grandma2-user-manual-lua-plugin-05.webp 1163w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"midi-remotes-architecture\">4.3 MIDI Remotes Architecture<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This layout is&nbsp;heavily pre-wired. Every button, fader, encoder or popup you see in TouchOSC is already linked to a&nbsp;MIDI Remote line inside MA2.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">MIDI Remotes usage status<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Total available in MA2&nbsp;: 1028<\/li>\n\n\n\n<li>Used by this layout&nbsp;: 1011<\/li>\n\n\n\n<li>Still Available&nbsp;:&nbsp;17<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That means you can safely add up to&nbsp;17 custom MIDI Remote entries&nbsp;without removing or modifying any existing ones.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Free MIDI Channels<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">You can still use the following MIDI channels for your own triggers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Channel 1, 2, 3, 4, 14, 15, 16<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">All other channels are fully used by the layout. Using them will create conflicts or break internal routing.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Safe Workflow Rules<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">To keep the system stable and editable:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Do&nbsp;not delete, move, or rename&nbsp;any existing MIDI Remote lines<\/li>\n\n\n\n<li>If you want to modify a TouchOSC button:\u2192&nbsp;Only edit the Command field&nbsp;in Remote Inputs<\/li>\n\n\n\n<li>If you create&nbsp;new buttons in TouchOSC:\u2192 They will do nothing until you assign them to&nbsp;one of the 17 free remote slots<\/li>\n\n\n\n<li>Use only the&nbsp;free MIDI channels listed above&nbsp;for your custom mappings<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">What If Your Showfile Already Has MIDI Remotes?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Important to know:&nbsp;MA2 cannot merge MIDI Remote tables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Importing an XML always&nbsp;replaces the entire MIDI Remote list.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So you have three options :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clean install (recommended)&nbsp;: overwrite with this layout\u2019s remotes via plugin<\/li>\n\n\n\n<li>Keep a few custom remotes&nbsp;: back up your show, install plugin, then recreate those few lines in the remaining&nbsp;17&nbsp;free slots<\/li>\n\n\n\n<li>Large custom setups&nbsp;: manual XML merge outside MA2 is possible but risky and time-consuming (unique indices, no collisions). With only 17 free slots left, it rarely makes sense<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If someone finds a safe way to append MIDI Remotes using LUA or commands (not replace the table),&nbsp;please tell me. I\u2019ll add it in the next update.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Stability Notes<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The plugin guarantees that MIDI Remote IDs match the TouchOSC layout<\/li>\n\n\n\n<li>Backend executor pages (101\u2013105) are only used for Special Masters, you never need to touch them<\/li>\n\n\n\n<li>You can safely re-run the installer at any time on any showfile<\/li>\n\n\n\n<li>Ideal for LD\u2019s and teams to standardize quickly.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"section-5\">Section 5 &#8211; Licensing, Credits &amp; Contact<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div id=\"sec5\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\" id=\"licensing-terms\">5.1 Licensing Terms<\/h3>\n\n\n\n<p class=\"mmg-quote wp-block-paragraph\">TLDR : Support independent development by purchasing a valid license.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This layout is a paid product. Purchasing it from me allows you to use it in personal or professional environments, but it does&nbsp;not&nbsp;allow redistribution.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">You Are Allowed To<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use the layout in&nbsp;live shows, tours, theatres, rentals, installations or studios<\/li>\n\n\n\n<li>Install it on&nbsp;multiple personal devices&nbsp;(tablet, computer, backup device\u2026)<\/li>\n\n\n\n<li>Customize it for&nbsp;your own workflow or showfile<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">You Are Not Allowed To<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Share or send the layout to someone who did not purchase it<\/li>\n\n\n\n<li>Upload it to forums, Discord servers, Facebook groups, USB keys, torrent sites, etc.<\/li>\n\n\n\n<li>Sell or redistribute modified versions without written permission<\/li>\n\n\n\n<li>Include it in commercial showfile packages or rental kits without a commercial license<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re a company, rental house or educational institution and need multi-user licensing, just <strong><a href=\"mailto:contactmaxmugen@gmail.com\" target=\"_blank\" rel=\"noreferrer noopener\">contact me<\/a><\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By purchasing, you agree to these terms.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"support-updates\">5.2 Support &amp; Updates<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Updates<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All buyers receive&nbsp;free updates, forever<\/li>\n\n\n\n<li>Updates include fixes, improvements, new modules and compatibility adjustments<\/li>\n\n\n\n<li>When a new version is released, you can download it again from the&nbsp;same place where you bought it (Gumroad \/ Website Account)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Support<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Support is provided directly by me, not an automated bot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can <strong><a href=\"mailto:contactmaxmugen@gmail.com\" target=\"_blank\" rel=\"noreferrer noopener\">contact me<\/a><\/strong> if:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Something is not working or unclear<\/li>\n\n\n\n<li>You found a bug or want to report an issue<\/li>\n\n\n\n<li>You want a custom version (company branding, different fixed page, small theatre layouts, etc.)<\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"contact-links\">5.3 Contact &amp; Links<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Email : <strong><a href=\"mailto:contactmaxmugen@gmail.com\" target=\"_blank\" rel=\"noreferrer noopener\">contactmaxmugen@gmail.com<\/a><\/strong><\/li>\n\n\n\n<li>Website :&nbsp;<a href=\"https:\/\/mugenlighting.com\/studio\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>mugenlighting.com<\/strong><\/a><\/li>\n\n\n\n<li>Updates &amp; Downloads : <a href=\"https:\/\/maxmugen.gumroad.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Gumroad<\/strong><\/a><\/li>\n\n\n\n<li>More : <strong><a href=\"https:\/\/linktr.ee\/mugenlighting\" target=\"_blank\" rel=\"noreferrer noopener\">Linktree<\/a><\/strong><\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"credits\">5.4 Credits &amp; Thanks<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A heartfelt thank-you to all the lighting designers, programmers, venue crews and beta testers who helped shape this layout. Your real-world feedback, creative ideas and tour-rigged rigs made this tool stronger.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For the full list of contributors, and acknowledgements, please visit the <strong><a href=\"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/contributors\/\" target=\"_blank\" rel=\"noreferrer noopener\">Contributors Page<\/a><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Together we\u2019ll keep making lighting control smarter, faster and more fun.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Max Mugen<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-ast-global-color-8-background-color has-background is-layout-constrained wp-block-group-is-layout-constrained\" id=\"feedback\" style=\"margin-top:60px\">\n<h2 class=\"wp-block-heading\"><strong>Feedback<\/strong><\/h2>\n\n\n\n<p class=\"mmg-quote wp-block-paragraph\">I am continuously refining this architecture. Field data from active lighting programmers plays a critical role in future development updates.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What you can share :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Feature Requests:<\/strong> Share your thoughts on UI\/UX improvements or new network integrations you need for your upcoming shows.<\/li>\n\n\n\n<li><strong>Bug Reports:<\/strong> Encountered a technical routing issue? Please provide detailed reproduction steps and system screenshots so I can patch it in the next build.<\/li>\n\n\n\n<li><strong>Production Showcases:<\/strong> Has this layout accelerated your workflow? Send photos of your Front of House setup in action.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-57f8ce08 wp-block-buttons-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link wp-element-button\" href=\"mailto:contactmaxmugen@gmail.com?subject=TOSC%20MA2%20Layout%20Feedback\" target=\"_blank\" rel=\"noreferrer noopener\">SEND FEEDBACK<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Your input drives the rapid evolution of these tools. If this layout has leveled up your workflow, sharing it with other programmers helps expand the ecosystem.<\/p>\n<\/div>\n\n\n\n<section class=\"wp-block-group alignfull has-ast-global-color-4-background-color has-background is-layout-constrained wp-block-group-is-layout-constrained\" id=\"contact\" style=\"padding-top:100px\">\n<div class=\"wp-block-columns mmg-bg-word is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:55%\"><\/div>\n\n\n\n<div class=\"wp-block-column mmg-glass is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full is-resized is-style-rounded\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/10\/mmg-logo.webp\" alt=\"\" class=\"wp-image-1270\" style=\"width:133px;height:auto\" srcset=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/10\/mmg-logo.webp 800w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/10\/mmg-logo-300x300.webp 300w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/10\/mmg-logo-150x150.webp 150w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/10\/mmg-logo-768x768.webp 768w, https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/10\/mmg-logo-120x120.webp 120w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center mmg-h1-maxmugen mmg-white mmg-text-shadow\" style=\"margin-top:6px;margin-bottom:6px\">Max Mugen Lighting<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center mmg-white mmg-text-shadow\" style=\"margin-top:10px;margin-bottom:0px;font-size:17px\">Lighting Designer | Visual Artist | Automation Developer<\/h3>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\" style=\"margin-top:1rem\">I engineer lighting architectures, interactive control systems, and automation workflows for live performance and high-end studio pipelines. Available for custom system design and technical programming.<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-align-center mmg-site-title\">Work With Me<\/h4>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-100\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/calendly.com\/maxmugen\/book-a-meeting\" target=\"_blank\" rel=\"noreferrer noopener\">Book a Call<\/a><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-100\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.linkedin.com\/in\/mpeaumier\/\" target=\"_blank\" rel=\"noreferrer noopener\">Connect on LinkedIn<\/a><\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading has-text-align-center\" id=\"header-408418120\">Explore My Work<\/h4>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-100\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.instagram.com\/maxmugen\/\" target=\"_blank\" rel=\"noreferrer noopener\">Visual Portfolio (Instagram)<\/a><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-100\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.youtube.com\/@maxmugen88\" target=\"_blank\" rel=\"noreferrer noopener\">Visual Art (YouTube)<\/a><\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading has-text-align-center\" id=\"header-408418120\"><strong>Stay Connected<\/strong><\/h4>\n\n\n\n<div class=\"wp-block-group is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-7a522a9d wp-block-group-is-layout-flex\" style=\"padding-bottom:0;padding-left:24px\">\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/www.linkedin.com\/in\/mpeaumier\/\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/10\/linkedin-1.svg\" alt=\"\" class=\"wp-image-1302\" style=\"width:24px\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/www.instagram.com\/maxmugen\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/10\/instagram-1.svg\" alt=\"\" class=\"wp-image-1303\" style=\"width:24px\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/www.youtube.com\/@maxmugen88\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/10\/youtube-1.svg\" alt=\"\" class=\"wp-image-1304\" style=\"width:24px\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/maxmugen.gumroad.com\/subscribe\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/10\/newsletter.svg\" alt=\"\" class=\"wp-image-2047\" style=\"width:24px\"\/><\/a><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Before You Start About This Layout This guide explains how to understand, customize, and adapt the TouchOSC layout for grandMA2. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2939,"parent":32,"menu_order":7,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-696","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>User Manual: TouchOSC Layout for GrandMA2 | Mugen<\/title>\n<meta name=\"description\" content=\"Complete technical documentation and setup guide for the TouchOSC Mk2 GrandMA2 layout. Learn how to configure networks, MIDI remotes, and LUA plugins.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"User Manual: TouchOSC Layout for GrandMA2 | Mugen\" \/>\n<meta property=\"og:description\" content=\"Complete technical documentation and setup guide for the TouchOSC Mk2 GrandMA2 layout. Learn how to configure networks, MIDI remotes, and LUA plugins.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/\" \/>\n<meta property=\"og:site_name\" content=\"Mugen Lighting\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-17T22:26:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2026\/02\/touchosc-layout-grandma2-ipad-mockup-landscape.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"758\" \/>\n\t<meta property=\"og:image:height\" content=\"426\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"149 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/touchosc-layout-for-grandma2-by-max-mugen\\\/user-manual\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/touchosc-layout-for-grandma2-by-max-mugen\\\/user-manual\\\/\"},\"author\":{\"name\":\"Max Mugen\",\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/#\\\/schema\\\/person\\\/7af672a5e6be6a70885bb7b8241d8a12\"},\"headline\":\"TouchOSC Layout for GrandMA2 &#8211; User Manual\",\"datePublished\":\"2025-09-01T05:00:33+00:00\",\"dateModified\":\"2026-03-17T22:26:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/touchosc-layout-for-grandma2-by-max-mugen\\\/user-manual\\\/\"},\"wordCount\":8887,\"publisher\":{\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/touchosc-layout-for-grandma2-by-max-mugen\\\/user-manual\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/touchosc-layout-grandma2-ipad-mockup-landscape.webp\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/touchosc-layout-for-grandma2-by-max-mugen\\\/user-manual\\\/\",\"url\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/touchosc-layout-for-grandma2-by-max-mugen\\\/user-manual\\\/\",\"name\":\"User Manual: TouchOSC Layout for GrandMA2 | Mugen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/touchosc-layout-for-grandma2-by-max-mugen\\\/user-manual\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/touchosc-layout-for-grandma2-by-max-mugen\\\/user-manual\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/touchosc-layout-grandma2-ipad-mockup-landscape.webp\",\"datePublished\":\"2025-09-01T05:00:33+00:00\",\"dateModified\":\"2026-03-17T22:26:45+00:00\",\"description\":\"Complete technical documentation and setup guide for the TouchOSC Mk2 GrandMA2 layout. Learn how to configure networks, MIDI remotes, and LUA plugins.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/touchosc-layout-for-grandma2-by-max-mugen\\\/user-manual\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/touchosc-layout-for-grandma2-by-max-mugen\\\/user-manual\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/touchosc-layout-for-grandma2-by-max-mugen\\\/user-manual\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/touchosc-layout-grandma2-ipad-mockup-landscape.webp\",\"contentUrl\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/touchosc-layout-grandma2-ipad-mockup-landscape.webp\",\"width\":758,\"height\":426,\"caption\":\"Zero-latency wireless control interface for professional lighting consoles.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/touchosc-layout-for-grandma2-by-max-mugen\\\/user-manual\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\",\"item\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TouchOSC Layout for GrandMA2 by Max Mugen\",\"item\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/touchosc-layout-for-grandma2-by-max-mugen\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"User Manual\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/#website\",\"url\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/\",\"name\":\"Mugen Lighting\",\"description\":\"The art of lighting for your events\",\"publisher\":{\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/#organization\"},\"alternateName\":\"Max Mugen Lighting\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/#organization\",\"name\":\"Mugen Lighting\",\"alternateName\":\"Max Mugen Lighting\",\"url\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/mmg-logo.webp\",\"contentUrl\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/mmg-logo.webp\",\"width\":800,\"height\":800,\"caption\":\"Mugen Lighting\"},\"image\":{\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/maxmugen\",\"https:\\\/\\\/www.youtube.com\\\/@maxmugen88\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/mpeaumier\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mugenlighting.com\\\/studio\\\/#\\\/schema\\\/person\\\/7af672a5e6be6a70885bb7b8241d8a12\",\"name\":\"Max Mugen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5a2e385d4bd710969226e896c6367a2ccda4d3f2970d89e1e9126508540dd41e?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5a2e385d4bd710969226e896c6367a2ccda4d3f2970d89e1e9126508540dd41e?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5a2e385d4bd710969226e896c6367a2ccda4d3f2970d89e1e9126508540dd41e?s=96&d=retro&r=g\",\"caption\":\"Max Mugen\"},\"sameAs\":[\"https:\\\/\\\/mugenlighting.com\\\/studio\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"User Manual: TouchOSC Layout for GrandMA2 | Mugen","description":"Complete technical documentation and setup guide for the TouchOSC Mk2 GrandMA2 layout. Learn how to configure networks, MIDI remotes, and LUA plugins.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/","og_locale":"en_US","og_type":"article","og_title":"User Manual: TouchOSC Layout for GrandMA2 | Mugen","og_description":"Complete technical documentation and setup guide for the TouchOSC Mk2 GrandMA2 layout. Learn how to configure networks, MIDI remotes, and LUA plugins.","og_url":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/","og_site_name":"Mugen Lighting","article_modified_time":"2026-03-17T22:26:45+00:00","og_image":[{"width":758,"height":426,"url":"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2026\/02\/touchosc-layout-grandma2-ipad-mockup-landscape.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"149 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/#article","isPartOf":{"@id":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/"},"author":{"name":"Max Mugen","@id":"https:\/\/mugenlighting.com\/studio\/#\/schema\/person\/7af672a5e6be6a70885bb7b8241d8a12"},"headline":"TouchOSC Layout for GrandMA2 &#8211; User Manual","datePublished":"2025-09-01T05:00:33+00:00","dateModified":"2026-03-17T22:26:45+00:00","mainEntityOfPage":{"@id":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/"},"wordCount":8887,"publisher":{"@id":"https:\/\/mugenlighting.com\/studio\/#organization"},"image":{"@id":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/#primaryimage"},"thumbnailUrl":"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2026\/02\/touchosc-layout-grandma2-ipad-mockup-landscape.webp","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/","url":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/","name":"User Manual: TouchOSC Layout for GrandMA2 | Mugen","isPartOf":{"@id":"https:\/\/mugenlighting.com\/studio\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/#primaryimage"},"image":{"@id":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/#primaryimage"},"thumbnailUrl":"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2026\/02\/touchosc-layout-grandma2-ipad-mockup-landscape.webp","datePublished":"2025-09-01T05:00:33+00:00","dateModified":"2026-03-17T22:26:45+00:00","description":"Complete technical documentation and setup guide for the TouchOSC Mk2 GrandMA2 layout. Learn how to configure networks, MIDI remotes, and LUA plugins.","breadcrumb":{"@id":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/#primaryimage","url":"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2026\/02\/touchosc-layout-grandma2-ipad-mockup-landscape.webp","contentUrl":"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2026\/02\/touchosc-layout-grandma2-ipad-mockup-landscape.webp","width":758,"height":426,"caption":"Zero-latency wireless control interface for professional lighting consoles."},{"@type":"BreadcrumbList","@id":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/user-manual\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"","item":"https:\/\/mugenlighting.com\/studio\/"},{"@type":"ListItem","position":2,"name":"TouchOSC Layout for GrandMA2 by Max Mugen","item":"https:\/\/mugenlighting.com\/studio\/touchosc-layout-for-grandma2-by-max-mugen\/"},{"@type":"ListItem","position":3,"name":"User Manual"}]},{"@type":"WebSite","@id":"https:\/\/mugenlighting.com\/studio\/#website","url":"https:\/\/mugenlighting.com\/studio\/","name":"Mugen Lighting","description":"The art of lighting for your events","publisher":{"@id":"https:\/\/mugenlighting.com\/studio\/#organization"},"alternateName":"Max Mugen Lighting","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mugenlighting.com\/studio\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/mugenlighting.com\/studio\/#organization","name":"Mugen Lighting","alternateName":"Max Mugen Lighting","url":"https:\/\/mugenlighting.com\/studio\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mugenlighting.com\/studio\/#\/schema\/logo\/image\/","url":"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/10\/mmg-logo.webp","contentUrl":"https:\/\/mugenlighting.com\/studio\/wp-content\/uploads\/2025\/10\/mmg-logo.webp","width":800,"height":800,"caption":"Mugen Lighting"},"image":{"@id":"https:\/\/mugenlighting.com\/studio\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.instagram.com\/maxmugen","https:\/\/www.youtube.com\/@maxmugen88","https:\/\/www.linkedin.com\/in\/mpeaumier\/"]},{"@type":"Person","@id":"https:\/\/mugenlighting.com\/studio\/#\/schema\/person\/7af672a5e6be6a70885bb7b8241d8a12","name":"Max Mugen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5a2e385d4bd710969226e896c6367a2ccda4d3f2970d89e1e9126508540dd41e?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5a2e385d4bd710969226e896c6367a2ccda4d3f2970d89e1e9126508540dd41e?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5a2e385d4bd710969226e896c6367a2ccda4d3f2970d89e1e9126508540dd41e?s=96&d=retro&r=g","caption":"Max Mugen"},"sameAs":["https:\/\/mugenlighting.com\/studio"]}]}},"_links":{"self":[{"href":"https:\/\/mugenlighting.com\/studio\/wp-json\/wp\/v2\/pages\/696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mugenlighting.com\/studio\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mugenlighting.com\/studio\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mugenlighting.com\/studio\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mugenlighting.com\/studio\/wp-json\/wp\/v2\/comments?post=696"}],"version-history":[{"count":110,"href":"https:\/\/mugenlighting.com\/studio\/wp-json\/wp\/v2\/pages\/696\/revisions"}],"predecessor-version":[{"id":3365,"href":"https:\/\/mugenlighting.com\/studio\/wp-json\/wp\/v2\/pages\/696\/revisions\/3365"}],"up":[{"embeddable":true,"href":"https:\/\/mugenlighting.com\/studio\/wp-json\/wp\/v2\/pages\/32"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mugenlighting.com\/studio\/wp-json\/wp\/v2\/media\/2939"}],"wp:attachment":[{"href":"https:\/\/mugenlighting.com\/studio\/wp-json\/wp\/v2\/media?parent=696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}