├── .gitignore ├── Bitwig ├── Extension │ ├── workspace │ │ └── .gitignore │ └── Axyz Gems │ │ ├── .settings │ │ ├── org.eclipse.core.resources.prefs │ │ ├── org.eclipse.jdt.apt.core.prefs │ │ └── org.eclipse.jdt.core.prefs │ │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ └── META-INF │ │ │ │ └── services │ │ │ │ └── com.bitwig.extension.ExtensionDefinition │ │ │ └── java │ │ │ └── com │ │ │ └── bonboa │ │ │ ├── AxyzGemsExtensionDefinition.java │ │ │ └── AxyzGemsExtension.java │ │ ├── .gitignore │ │ ├── .project │ │ ├── .classpath │ │ └── pom.xml ├── AxyzGems.bwextension ├── AxyzGems.control.js ├── Axyz Gems.flexi ├── Touch Block.flexi └── X-Touch Mini.flexi ├── Ableton └── Axyz_Gems │ ├── Preset.syx │ ├── config.pyc │ ├── consts.pyc │ ├── __init__.pyc │ ├── __init__.py │ ├── config.py │ └── consts.py ├── Documentation └── images │ ├── axyz_gems.gif │ ├── ableton_axyz_gems_ui.png │ ├── bitwig_generic_flexi_ui.png │ ├── bitwig_axyz_gems_control_ui.png │ ├── bitwig_axyz_gems_extension_ui.png │ ├── roli-dashboard-apps-axyz-gems.png │ └── roli-dashboard-edit-axyz-gems.png ├── math.littlefoot ├── math.js ├── README.md └── Axyz Gems.littlefoot /.gitignore: -------------------------------------------------------------------------------- 1 | **/.DS_Store 2 | Axyz Pads.littlefoot -------------------------------------------------------------------------------- /Bitwig/Extension/workspace/.gitignore: -------------------------------------------------------------------------------- 1 | /.metadata/ 2 | -------------------------------------------------------------------------------- /Ableton/Axyz_Gems/Preset.syx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jorisroling/axyz-gems/HEAD/Ableton/Axyz_Gems/Preset.syx -------------------------------------------------------------------------------- /Ableton/Axyz_Gems/config.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jorisroling/axyz-gems/HEAD/Ableton/Axyz_Gems/config.pyc -------------------------------------------------------------------------------- /Ableton/Axyz_Gems/consts.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jorisroling/axyz-gems/HEAD/Ableton/Axyz_Gems/consts.pyc -------------------------------------------------------------------------------- /Bitwig/AxyzGems.bwextension: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jorisroling/axyz-gems/HEAD/Bitwig/AxyzGems.bwextension -------------------------------------------------------------------------------- /Ableton/Axyz_Gems/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jorisroling/axyz-gems/HEAD/Ableton/Axyz_Gems/__init__.pyc -------------------------------------------------------------------------------- /Documentation/images/axyz_gems.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jorisroling/axyz-gems/HEAD/Documentation/images/axyz_gems.gif -------------------------------------------------------------------------------- /Bitwig/Extension/Axyz Gems/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | -------------------------------------------------------------------------------- /Bitwig/Extension/Axyz Gems/.settings/org.eclipse.jdt.apt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.apt.aptEnabled=false 3 | -------------------------------------------------------------------------------- /Bitwig/Extension/Axyz Gems/src/main/resources/META-INF/services/com.bitwig.extension.ExtensionDefinition: -------------------------------------------------------------------------------- 1 | com.bonboa.AxyzGemsExtensionDefinition -------------------------------------------------------------------------------- /Documentation/images/ableton_axyz_gems_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jorisroling/axyz-gems/HEAD/Documentation/images/ableton_axyz_gems_ui.png -------------------------------------------------------------------------------- /Documentation/images/bitwig_generic_flexi_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jorisroling/axyz-gems/HEAD/Documentation/images/bitwig_generic_flexi_ui.png -------------------------------------------------------------------------------- /Documentation/images/bitwig_axyz_gems_control_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jorisroling/axyz-gems/HEAD/Documentation/images/bitwig_axyz_gems_control_ui.png -------------------------------------------------------------------------------- /Documentation/images/bitwig_axyz_gems_extension_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jorisroling/axyz-gems/HEAD/Documentation/images/bitwig_axyz_gems_extension_ui.png -------------------------------------------------------------------------------- /Documentation/images/roli-dashboard-apps-axyz-gems.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jorisroling/axyz-gems/HEAD/Documentation/images/roli-dashboard-apps-axyz-gems.png -------------------------------------------------------------------------------- /Documentation/images/roli-dashboard-edit-axyz-gems.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jorisroling/axyz-gems/HEAD/Documentation/images/roli-dashboard-edit-axyz-gems.png -------------------------------------------------------------------------------- /Bitwig/Extension/Axyz Gems/.gitignore: -------------------------------------------------------------------------------- 1 | /${bitwig.extension.directory} 2 | /target/ 3 | last-build.bin 4 | fileHashes.lock 5 | /.settings/org.eclipse.m2e.core.prefs 6 | .settings/org.sonarlint.eclipse.core.prefs -------------------------------------------------------------------------------- /Bitwig/Extension/Axyz Gems/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 3 | org.eclipse.jdt.core.compiler.compliance=1.8 4 | org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled 5 | org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning 6 | org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore 7 | org.eclipse.jdt.core.compiler.processAnnotations=disabled 8 | org.eclipse.jdt.core.compiler.release=disabled 9 | org.eclipse.jdt.core.compiler.source=1.8 10 | -------------------------------------------------------------------------------- /Bitwig/Extension/Axyz Gems/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | axyz-gems 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.m2e.core.maven2Builder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.jdt.core.javanature 21 | org.eclipse.m2e.core.maven2Nature 22 | 23 | 24 | -------------------------------------------------------------------------------- /Ableton/Axyz_Gems/__init__.py: -------------------------------------------------------------------------------- 1 | # Embedded file name: /Users/versonator/Jenkins/live/output/mac_64_static/Release/python-bundle/MIDI Remote Scripts/BCR2000/__init__.py 2 | # Compiled at: 2018-04-23 20:27:04 3 | from __future__ import absolute_import, print_function, unicode_literals 4 | from _Generic.GenericScript import GenericScript 5 | import Live 6 | from .config import * 7 | 8 | def create_instance(c_instance): 9 | u""" The generic script can be customised by using parameters (see config.py). """ 10 | return GenericScript(c_instance, Live.MidiMap.MapMode.absolute, Live.MidiMap.MapMode.absolute, DEVICE_CONTROLS, TRANSPORT_CONTROLS, VOLUME_CONTROLS, TRACKARM_CONTROLS, BANK_CONTROLS, CONTROLLER_DESCRIPTION) 11 | 12 | 13 | from _Framework.Capabilities import * 14 | 15 | def get_capabilities(): 16 | return {CONTROLLER_ID_KEY: controller_id(vendor_id=95015, product_ids=[ 17 | 9188], model_name='Axyz Gems'), 18 | PORTS_KEY: [ 19 | inport(props=[NOTES_CC, SCRIPT]), 20 | outport(props=[NOTES_CC, SCRIPT])]} 21 | -------------------------------------------------------------------------------- /Ableton/Axyz_Gems/config.py: -------------------------------------------------------------------------------- 1 | # Embedded file name: /Users/versonator/Jenkins/live/output/mac_64_static/Release/python-bundle/MIDI Remote Scripts/BCR2000/config.py 2 | # Compiled at: 2018-04-23 20:27:04 3 | from __future__ import absolute_import, print_function, unicode_literals 4 | from .consts import * 5 | TRANSPORT_CONTROLS = {'STOP': -1, 6 | 'PLAY': -1, 'REC': -1, 'LOOP': -1, 7 | 'RWD': -1, 'FFWD': -1} 8 | DEVICE_CONTROLS = ( 9 | GENERIC_ENC1, GENERIC_ENC2, GENERIC_ENC3, GENERIC_ENC4, 10 | GENERIC_ENC5, GENERIC_ENC6, GENERIC_ENC7, GENERIC_ENC8) 11 | VOLUME_CONTROLS = ( 12 | (-1, -1), (-1, -1), (-1, -1), 13 | (-1, -1), (-1, -1), (-1, -1), (-1, -1), (-1, -1)) 14 | TRACKARM_CONTROLS = (-1, -1, -1, -1, -1, -1, -1, -1) 15 | BANK_CONTROLS = {'TOGGLELOCK': -1, 16 | 'BANKDIAL': -1, 17 | 'NEXTBANK': -1, 18 | 'PREVBANK': -1, 'BANK1': -1, 19 | 'BANK2': -1, 'BANK3': -1, 'BANK4': -1, 'BANK5': -1, 20 | 'BANK6': -1, 'BANK7': -1, 'BANK8': -1} 21 | CONTROLLER_DESCRIPTION = {'INPUTPORT': 'LIGHTPAD BLOCK', 'OUTPUTPORT': 'LIGHTPAD BLOCK', 'CHANNEL': 0} 22 | MIXER_OPTIONS = {'NUMSENDS': 2, 23 | 'SEND1': (-1, -1, -1, -1, -1, -1, -1, -1), 24 | 'SEND2': (-1, -1, -1, -1, -1, -1, -1, -1), 25 | 'MASTERVOLUME': -1} 26 | -------------------------------------------------------------------------------- /Ableton/Axyz_Gems/consts.py: -------------------------------------------------------------------------------- 1 | # Embedded file name: /Users/versonator/Jenkins/live/output/mac_64_static/Release/python-bundle/MIDI Remote Scripts/BCR2000/consts.py 2 | # Compiled at: 2018-04-23 20:27:04 3 | from __future__ import absolute_import, print_function, unicode_literals 4 | ID_REQUEST = 0 5 | ID_RESP = 0 6 | GENERIC_STOP = -1 7 | GENERIC_PLAY = -1 8 | GENERIC_REC = -1 9 | GENERIC_LOOP = -1 10 | GENERIC_RWD = -1 11 | GENERIC_FFWD = -1 12 | GENERIC_TRANSPORT = ( 13 | GENERIC_STOP, GENERIC_PLAY, 14 | GENERIC_REC, GENERIC_LOOP, 15 | GENERIC_RWD, GENERIC_FFWD) 16 | GENERIC_ENC1 = 20 17 | GENERIC_ENC2 = 21 18 | GENERIC_ENC3 = 23 19 | GENERIC_ENC4 = 24 20 | GENERIC_ENC5 = 26 21 | GENERIC_ENC6 = 27 22 | GENERIC_ENC7 = 29 23 | GENERIC_ENC8 = 30 24 | GENERIC_ENCODERS = ( 25 | GENERIC_ENC1, GENERIC_ENC2, 26 | GENERIC_ENC3, GENERIC_ENC4, 27 | GENERIC_ENC5, GENERIC_ENC6, 28 | GENERIC_ENC7, GENERIC_ENC8) 29 | GENERIC_SLI1 = -1 30 | GENERIC_SLI2 = -1 31 | GENERIC_SLI3 = -1 32 | GENERIC_SLI4 = -1 33 | GENERIC_SLI5 = -1 34 | GENERIC_SLI6 = -1 35 | GENERIC_SLI7 = -1 36 | GENERIC_SLI8 = -1 37 | GENERIC_SLIDERS = ( 38 | GENERIC_SLI1, GENERIC_SLI2, 39 | GENERIC_SLI3, GENERIC_SLI4, 40 | GENERIC_SLI5, GENERIC_SLI6, 41 | GENERIC_SLI7, GENERIC_SLI8) 42 | GENERIC_BUT1 = -1 43 | GENERIC_BUT2 = -1 44 | GENERIC_BUT3 = -1 45 | GENERIC_BUT4 = -1 46 | GENERIC_BUT5 = -1 47 | GENERIC_BUT6 = -1 48 | GENERIC_BUT7 = -1 49 | GENERIC_BUT8 = -1 50 | GENERIC_BUT9 = -1 51 | GENERIC_BUTTONS = ( 52 | GENERIC_BUT1, GENERIC_BUT2, 53 | GENERIC_BUT3, GENERIC_BUT4, 54 | GENERIC_BUT5, GENERIC_BUT6, 55 | GENERIC_BUT7, GENERIC_BUT8) 56 | GENERIC_PAD1 = -1 57 | GENERIC_PAD2 = -1 58 | GENERIC_PAD3 = -1 59 | GENERIC_PAD4 = -1 60 | GENERIC_PAD5 = -1 61 | GENERIC_PAD6 = -1 62 | GENERIC_PAD7 = -1 63 | GENERIC_PAD8 = -1 64 | GENERIC_PADS = ( 65 | GENERIC_PAD1, GENERIC_PAD2, 66 | GENERIC_PAD3, GENERIC_PAD4, 67 | GENERIC_PAD5, GENERIC_PAD6, 68 | GENERIC_PAD7, GENERIC_PAD8) 69 | -------------------------------------------------------------------------------- /Bitwig/Extension/Axyz Gems/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /Bitwig/Extension/Axyz Gems/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | com.bonboa 6 | axyz-gems 7 | jar 8 | Axyz Gems 9 | 1.0 10 | 11 | 12 | 13 | bitwig 14 | Bitwig Maven Repository 15 | https://maven.bitwig.com 16 | 17 | 18 | 19 | 20 | 21 | com.bitwig 22 | extension-api 23 | 7 24 | 25 | 26 | 27 | 28 | 29 | 30 | org.apache.maven.plugins 31 | maven-compiler-plugin 32 | 3.5.1 33 | 34 | true 35 | true 36 | 1.8 37 | 1.8 38 | UTF-8 39 | 1024m 40 | 41 | 42 | 43 | 44 | com.coderplus.maven.plugins 45 | copy-rename-maven-plugin 46 | 1.0 47 | 48 | 49 | rename-file 50 | install 51 | 52 | copy 53 | 54 | 55 | ${project.build.directory}/${project.build.finalName}.jar 56 | /Users/joris/Documents/Bitwig Studio/Extensions/AxyzGems.bwextension 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /Bitwig/Extension/Axyz Gems/src/main/java/com/bonboa/AxyzGemsExtensionDefinition.java: -------------------------------------------------------------------------------- 1 | package com.bonboa; 2 | import java.util.UUID; 3 | 4 | import com.bitwig.extension.api.PlatformType; 5 | import com.bitwig.extension.controller.AutoDetectionMidiPortNamesList; 6 | import com.bitwig.extension.controller.ControllerExtensionDefinition; 7 | import com.bitwig.extension.controller.api.ControllerHost; 8 | 9 | public class AxyzGemsExtensionDefinition extends ControllerExtensionDefinition 10 | { 11 | private static final UUID DRIVER_ID = UUID.fromString("f83d80c8-8310-47d7-aac7-8c6e73a64432"); 12 | 13 | public AxyzGemsExtensionDefinition() 14 | { 15 | } 16 | 17 | @Override 18 | public String getName() 19 | { 20 | return "Axyz Gems Extension"; 21 | } 22 | 23 | @Override 24 | public String getAuthor() 25 | { 26 | return "Joris Röling"; 27 | } 28 | 29 | @Override 30 | public String getVersion() 31 | { 32 | return "1.21"; 33 | } 34 | 35 | @Override 36 | public UUID getId() 37 | { 38 | return DRIVER_ID; 39 | } 40 | 41 | @Override 42 | public String getHardwareVendor() 43 | { 44 | return "Bonboa"; 45 | } 46 | 47 | @Override 48 | public String getHardwareModel() 49 | { 50 | return "Axyz Gems Extension"; 51 | } 52 | 53 | @Override 54 | public int getRequiredAPIVersion() 55 | { 56 | return 7; 57 | } 58 | 59 | @Override 60 | public int getNumMidiInPorts() 61 | { 62 | return 1; 63 | } 64 | 65 | @Override 66 | public int getNumMidiOutPorts() 67 | { 68 | return 1; 69 | } 70 | 71 | @Override 72 | public void listAutoDetectionMidiPortNames(final AutoDetectionMidiPortNamesList list, final PlatformType platformType) 73 | { 74 | if (platformType == PlatformType.WINDOWS) 75 | { 76 | // TODO: Set the correct names of the ports for auto detection on Windows platform here 77 | // and uncomment this when port names are correct. 78 | list.add(new String[]{"Lightpad BLOCK"}, new String[]{"Lightpad BLOCK"}); 79 | } 80 | else if (platformType == PlatformType.MAC) 81 | { 82 | // TODO: Set the correct names of the ports for auto detection on Windows platform here 83 | // and uncomment this when port names are correct. 84 | list.add(new String[]{"Lightpad BLOCK"}, new String[]{"Lightpad BLOCK"}); 85 | } 86 | else if (platformType == PlatformType.LINUX) 87 | { 88 | // TODO: Set the correct names of the ports for auto detection on Windows platform here 89 | // and uncomment this when port names are correct. 90 | list.add(new String[]{"Lightpad BLOCK"}, new String[]{"Lightpad BLOCK"}); 91 | } 92 | } 93 | 94 | @Override 95 | public AxyzGemsExtension createInstance(final ControllerHost host) 96 | { 97 | return new AxyzGemsExtension(this, host); 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /math.littlefoot: -------------------------------------------------------------------------------- 1 | /** Provides a fast approximation of math functions using a Pade approximant 2 | continued fraction, calculated sample by sample. 3 | Note: This is an approximation which works on a limited range. You are 4 | advised to use input values only between -5 and +5 for limiting the error. 5 | 6 | Ported with kind permission of Jules Storer. 7 | https://forum.juce.com/t/math-functions-in-littlefoot/33415 8 | */ 9 | 10 | 11 | float cosh (float x) 12 | { 13 | float x2 = x * x; 14 | float numerator = -(39251520 + x2 * (18471600 + x2 * (1075032 + 14615 * x2))); 15 | float denominator = -39251520 + x2 * (1154160 + x2 * (-16632 + 127 * x2)); 16 | return numerator / denominator; 17 | } 18 | 19 | 20 | 21 | float sinh (float x) 22 | { 23 | float x2 = x * x; 24 | float numerator = -x * (11511339840 + x2 * (1640635920 + x2 * (52785432 + x2 * 479249))); 25 | float denominator = -11511339840 + x2 * (277920720 + x2 * (-3177720 + x2 * 18361)); 26 | return numerator / denominator; 27 | } 28 | 29 | float tanh (float x) 30 | { 31 | float x2 = x * x; 32 | float numerator = x * (135135 + x2 * (17325 + x2 * (378 + x2))); 33 | float denominator = 135135 + x2 * (62370 + x2 * (3150 + 28 * x2)); 34 | return numerator / denominator; 35 | } 36 | 37 | 38 | float cos (float x) 39 | { 40 | float x2 = x * x; 41 | float numerator = -(-39251520 + x2 * (18471600 + x2 * (-1075032 + 14615 * x2))); 42 | float denominator = 39251520 + x2 * (1154160 + x2 * (16632 + x2 * 127)); 43 | return numerator / denominator; 44 | } 45 | 46 | float sin (float x) 47 | { 48 | float x2 = x * x; 49 | float numerator = -x * (-11511339840 + x2 * (1640635920 + x2 * (-52785432 + x2 * 479249))); 50 | float denominator = 11511339840 + x2 * (277920720 + x2 * (3177720 + x2 * 18361)); 51 | return numerator / denominator; 52 | } 53 | 54 | float tan (float x) 55 | { 56 | float x2 = x * x; 57 | float numerator = x * (-135135 + x2 * (17325 + x2 * (-378 + x2))); 58 | float denominator = -135135 + x2 * (62370 + x2 * (-3150 + 28 * x2)); 59 | return numerator / denominator; 60 | } 61 | 62 | float exp (float x) 63 | { 64 | float numerator = 1680 + x * (840 + x * (180 + x * (20 + x))); 65 | float denominator = 1680 + x *(-840 + x * (180 + x * (-20 + x))); 66 | return numerator / denominator; 67 | } 68 | 69 | 70 | float atan2(float y, float x ) 71 | { 72 | float PI = 3.14159265358979323846264338327950288; 73 | float PIBY2 = 1.5707963267948966; 74 | 75 | if ( x == 0.0 ) { 76 | if ( y > 0.0 ) return PIBY2; 77 | if ( y == 0.0 ) return 0.0; 78 | return -PIBY2; 79 | } 80 | float atan; 81 | float z = y/x; 82 | if ( abs( z ) < 1.0 ) { 83 | atan = z/(1.0 + 0.28*z*z); 84 | if ( x < 0.0 ) { 85 | if ( y < 0.0 ) return atan - PI; 86 | return atan + PI; 87 | } 88 | } else { 89 | atan = PIBY2 - z/(z*z + 0.28); 90 | if ( y < 0.0 ) return atan - PI; 91 | } 92 | return atan; 93 | } 94 | 95 | 96 | 97 | float sqrt(float n) { 98 | if (n == 0.0) return 0.0; 99 | 100 | float t; 101 | float squareRoot = n / 2; 102 | 103 | do { 104 | t = squareRoot; 105 | squareRoot = (t + (n / t)) / 2; 106 | } while ((t - squareRoot) != 0);; 107 | 108 | return squareRoot; 109 | } 110 | 111 | 112 | float calcAngleDegrees(float x, float y) { 113 | float PI = 3.14159265358979323846264338327950288; 114 | return atan2(y, x) * (180 / PI); 115 | } 116 | 117 | float radius(float x, float y) 118 | { 119 | return sqrt((x*x) + (y*y)) 120 | } 121 | 122 | 123 | -------------------------------------------------------------------------------- /Bitwig/AxyzGems.control.js: -------------------------------------------------------------------------------- 1 | loadAPI(7); 2 | 3 | host.setShouldFailOnDeprecatedUse(true); 4 | host.defineController("Bonboa", "Axyz Gems Control", "1.30", "7f4b4851-911b-4dbf-a6a7-ee7801296c7e", "Joris Röling"); 5 | 6 | host.defineMidiPorts(1, 1); 7 | 8 | if (host.platformIsWindows()) { 9 | host.addDeviceNameBasedDiscoveryPair(["Lightpad BLOCK "], ["Lightpad BLOCK "]); 10 | } else if (host.platformIsMac()) { 11 | host.addDeviceNameBasedDiscoveryPair(["Lightpad BLOCK "], ["Lightpad BLOCK "]); 12 | } else if (host.platformIsLinux()) { 13 | host.addDeviceNameBasedDiscoveryPair(["Lightpad BLOCK "], ["Lightpad BLOCK "]); 14 | } 15 | 16 | var remoteControlsBank = null; 17 | 18 | var AXYZ_CC_MSB = [20, 21, 23, 24, 26, 27, 29, 30]; 19 | 20 | var AXYZ_CC_LSB = []; 21 | 22 | for (var a = 0; a < AXYZ_CC_MSB.length; a++) 23 | if (AXYZ_CC_MSB[a] < 32) AXYZ_CC_LSB.push(AXYZ_CC_MSB[a] + 32) 24 | 25 | var BOOLEAN_OPTIONS = [ "Off", "On" ]; 26 | var LAYOUT_COLUMNS_MAP = [0, 4, 1, 5, 2, 6, 3, 7]; 27 | var REVERSE_LAYOUT_COLUMNS_MAP = [0, 2, 4, 6, 1,3, 5, 7]; 28 | 29 | var LAYOUT_OPTIONS = [ "Rows", "Columns" ]; 30 | 31 | function doObject (object, f) 32 | { 33 | return function () 34 | { 35 | f.apply (object, arguments); 36 | }; 37 | } 38 | 39 | var highRes = true; 40 | var layoutColumns = true; 41 | 42 | var translateWithMap = true; 43 | 44 | function init() { 45 | var controls=[]; 46 | for (var c=0;c<128;c++) controls.push(i+'') 47 | var preferences = host.getPreferences (); 48 | 49 | preferences.getEnumSetting ("Enable", "High Resolution", BOOLEAN_OPTIONS, BOOLEAN_OPTIONS[1]).addValueObserver (function (value) { 50 | highRes = value == BOOLEAN_OPTIONS[1]; 51 | }); 52 | preferences.getEnumSetting ("Layout", "Button Order", LAYOUT_OPTIONS, LAYOUT_OPTIONS[1]).addValueObserver (function (value) { 53 | layoutColumns = (value == LAYOUT_OPTIONS[1]); 54 | }); 55 | 56 | 57 | 58 | host.getMidiInPort(0).setMidiCallback(handleMidi); 59 | 60 | var cursorTrack = host.createCursorTrack("AXYZ_GEMS_CURSOR_TRACK", "Cursor Track", 0, 0, true); 61 | 62 | var cursorDevice = cursorTrack.createCursorDevice("AXYZ_GEMS_CURSOR_DEVICE", "Cursor Device", 0, CursorDeviceFollowMode.FOLLOW_SELECTION); 63 | 64 | remoteControlsBank = cursorDevice.createCursorRemoteControlsPage(8); 65 | remoteControlsBank.selectedPageIndex().markInterested(); 66 | 67 | function setupParameter(i) { 68 | const parameter = remoteControlsBank.getParameter(i); 69 | parameter.markInterested(); 70 | parameter.setIndication(true); 71 | 72 | parameter.value().addValueObserver (function (value) { 73 | const idx = (layoutColumns ? REVERSE_LAYOUT_COLUMNS_MAP[i] : i); 74 | 75 | if (values[idx] != (value * 16383)) { 76 | sendMidi(0xB0,AXYZ_CC_MSB[idx],((value * 16383) >> 7) & 0x7F); 77 | if (highRes) sendMidi(0xB0,AXYZ_CC_LSB[idx],((value * 16383) >> 0) & 0x7F); 78 | } 79 | }); 80 | } 81 | 82 | for (var i = 0; i < remoteControlsBank.getParameterCount(); i++) { 83 | setupParameter(i); 84 | } 85 | 86 | cursorDevice.isEnabled().markInterested(); 87 | cursorDevice.isWindowOpen().markInterested(); 88 | 89 | println("Axyz Gems initialized!"); 90 | } 91 | 92 | const values = []; 93 | 94 | function handleMidi(status, data1, data2) { 95 | if (isChannelController(status)) { 96 | var idx = AXYZ_CC_MSB.indexOf(data1); 97 | if (idx >= 0) { 98 | values[idx] = (values[idx] & (0x7F << 0)) | (data2 << 7); 99 | remoteControlsBank.getParameter(layoutColumns ? LAYOUT_COLUMNS_MAP[idx] : idx).set(values[idx], 16384); 100 | } else if (highRes) { 101 | idx = AXYZ_CC_LSB.indexOf(data1); 102 | if (idx >= 0) { 103 | values[idx] = (values[idx] & (0x7F << 7)) | (data2 << 0); 104 | remoteControlsBank.getParameter(layoutColumns ? LAYOUT_COLUMNS_MAP[idx] : idx).set(values[idx], 16384); 105 | } 106 | } 107 | } 108 | return false; 109 | } 110 | 111 | function flush() { 112 | } 113 | 114 | function exit() { 115 | println("Axyz Gems exited!"); 116 | } 117 | -------------------------------------------------------------------------------- /Bitwig/Extension/Axyz Gems/src/main/java/com/bonboa/AxyzGemsExtension.java: -------------------------------------------------------------------------------- 1 | package com.bonboa; 2 | 3 | import com.bitwig.extension.api.util.midi.ShortMidiMessage; 4 | import com.bitwig.extension.callback.ShortMidiMessageReceivedCallback; 5 | import com.bitwig.extension.controller.api.ControllerHost; 6 | import com.bitwig.extension.controller.api.CursorDeviceFollowMode; 7 | import com.bitwig.extension.controller.api.CursorRemoteControlsPage; 8 | import com.bitwig.extension.controller.api.CursorTrack; 9 | import com.bitwig.extension.controller.api.NoteInput; 10 | import com.bitwig.extension.controller.api.PinnableCursorDevice; 11 | import com.bitwig.extension.controller.api.Preferences; 12 | import com.bitwig.extension.controller.api.RemoteControl; 13 | //import com.bitwig.extension.controller.api.Transport; 14 | import com.bitwig.extension.controller.ControllerExtension; 15 | 16 | public class AxyzGemsExtension extends ControllerExtension { 17 | protected AxyzGemsExtension(final AxyzGemsExtensionDefinition definition, final ControllerHost host) { 18 | super(definition, host); 19 | } 20 | 21 | private static final String[] noteMessages = new String[] { 22 | "8?????", // note off 23 | "9?????", // note on 24 | "A?????", // aftertouch 25 | "B?????", // control change 26 | "D?????", // channel pressure 27 | "E?????" // pitchbend 28 | }; 29 | 30 | private static final String[] bendRanges = new String[] {"12", "24", "36", "48", "60", "72", "84", "96"}; 31 | 32 | private static final String[] channels = new String[] {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"}; 33 | 34 | private static final String[] controls = new String[128]; 35 | 36 | private static final String[] BOOLEAN_OPTIONS = new String[] { "Off", "On", }; 37 | 38 | private static final String[] LAYOUT_OPTIONS = new String[] { "Rows", "Columns", }; 39 | private static final int[] LAYOUT_COLUMNS_MAP = { 0, 4, 1, 5, 2, 6, 3, 7 }; 40 | private static final int[] REVERSE_LAYOUT_COLUMNS_MAP = { 0, 2, 4, 6, 1, 3, 5, 7 }; 41 | 42 | private static final int[] AXYZ_CC_MSB = { 20, 21, 23, 24, 26, 27, 29, 30 }; 43 | private static final int[] AXYZ_CC_LSB = { 20 + 32, 21 + 32, 23 + 32, 24 + 32, 26 + 32, 27 + 32, 29 + 32, 30 + 32 }; 44 | 45 | private Boolean highRes = true; 46 | private Boolean layoutColumns = true; 47 | private CursorTrack cursorTrack; 48 | private PinnableCursorDevice cursorDevice; 49 | private CursorRemoteControlsPage remoteControlsBank; 50 | private int channel = 1; 51 | 52 | private int[] values = { 0, 0, 0, 0, 0, 0, 0, 0 }; 53 | 54 | private ControllerHost host; 55 | 56 | @Override 57 | public void init() { 58 | final NoteInput noteInput; 59 | 60 | for (int i=0; i<128;i++) controls[i] = Integer.toString(i); 61 | 62 | this.host = getHost(); 63 | this.host.getMidiInPort(0).setMidiCallback((ShortMidiMessageReceivedCallback) msg -> onMidi(msg)); 64 | 65 | noteInput = this.host.getMidiInPort(0).createNoteInput("", noteMessages); 66 | noteInput.setUseExpressiveMidi(true, 0, 48); 67 | noteInput.setShouldConsumeEvents(false); 68 | 69 | // Set POLY ON mode with 15 MPE voices 70 | this.sendChannelController(0, 127, 15); 71 | 72 | // Set up pitch bend sensitivity to 48 semitones 73 | this.sendPitchBendRangeRPN(1, 48); 74 | 75 | 76 | Preferences preferences = host.getPreferences(); 77 | 78 | preferences.getEnumSetting("Enable", "High Resolution", BOOLEAN_OPTIONS, BOOLEAN_OPTIONS[1]) 79 | .addValueObserver(value -> { 80 | this.highRes = (value == BOOLEAN_OPTIONS[1]); 81 | }); 82 | 83 | preferences.getEnumSetting("Layout", "Button Order", LAYOUT_OPTIONS, LAYOUT_OPTIONS[1]) 84 | .addValueObserver(value -> { 85 | this.layoutColumns = (value == LAYOUT_OPTIONS[1]); 86 | }); 87 | 88 | // preferences.getNumberSetting("Channel", "MIDI", 1, 16, 1, "", 1).addValueObserver(value -> { 89 | // this.channel = (int) ((value * 15) + 1) ; 90 | // this.host.showPopupNotification(String.format("Axyz Gems MIDI Channel: %d",this.channel)); 91 | // }); 92 | 93 | preferences.getEnumSetting("Control Change Channel", "MIDI", channels, "1").addValueObserver( value -> { 94 | this.channel = Integer.parseInt(value); 95 | // this.host.showPopupNotification(String.format("Axyz Gems MIDI Channel: %d",this.channel)); 96 | }); 97 | 98 | preferences.getEnumSetting("Bend Range", "MIDI", bendRanges, "48").addValueObserver( range -> { 99 | int pb = Integer.parseInt(range); 100 | noteInput.setUseExpressiveMidi(true, 0, pb); 101 | sendPitchBendRangeRPN(1, pb); 102 | }); 103 | 104 | 105 | 106 | for (int i=0; i < 8; i++) { 107 | final Integer innerI = Integer.valueOf(i); 108 | preferences.getEnumSetting(String.format("%s axis Control Change",(i % 2) == 0 ? "X" : "Y"), String.format("Axyz Gem %d",(((int)(i/2)) % 4)+1), controls, Integer.toString(AXYZ_CC_MSB[i])).addValueObserver( value -> { 109 | int control = Integer.parseInt(value); 110 | // this.host.showPopupNotification(String.format("Axyz Gems %d %s axis Control Change: %d",((((int)(innerI.intValue()/2)) % 4)+1),(innerI.intValue() % 2) == 0 ? "X" : "Y",control)); 111 | AXYZ_CC_MSB[innerI.intValue()] = control; 112 | AXYZ_CC_LSB[innerI.intValue()] = (control < 32) ? (control + 32) : 0xFF; 113 | }); 114 | 115 | } 116 | 117 | this.cursorTrack = host.createCursorTrack("AXYZ_GEMS_CURSOR_TRACK", "Cursor Track", 0, 0, true); 118 | this.cursorDevice = this.cursorTrack.createCursorDevice("AXYZ_GEMS_CURSOR_DEVICE", "Cursor Device", 0, 119 | CursorDeviceFollowMode.FOLLOW_SELECTION); 120 | 121 | // for (int i=0; i< 2; i++) { 122 | // preferences.getEnumSetting((i % 2) == 0 ? "Previous" : "Next", "Device Preset", controls, Integer.toString(32+i)).addValueObserver( value -> { 123 | // int control = Integer.parseInt(value); 124 | // if (control == 32) { 125 | // // cursorDevice.switchToPreviousPreset(); 126 | // } else if (control == 32 + 1) { 127 | // // cursorDevice.switchToNextPreset(); 128 | // } 129 | // }); 130 | // } 131 | 132 | this.remoteControlsBank = this.cursorDevice.createCursorRemoteControlsPage(8); 133 | this.remoteControlsBank.selectedPageIndex().markInterested(); 134 | 135 | for (int i = 0; i < this.remoteControlsBank.getParameterCount(); i++) { 136 | 137 | RemoteControl parameter = this.remoteControlsBank.getParameter(i); 138 | parameter.markInterested(); 139 | parameter.setIndication(true); 140 | 141 | final Integer innerI = Integer.valueOf(i); 142 | parameter.value().markInterested(); 143 | parameter.value().addValueObserver(value -> { 144 | int idx = (layoutColumns ? REVERSE_LAYOUT_COLUMNS_MAP[innerI.intValue()] : innerI.intValue()); 145 | 146 | if (this.values[idx] != (value * 16383)) { 147 | // this.host.showPopupNotification(String.format("Channel: %d",this.channel)); 148 | this.host.getMidiOutPort(0).sendMidi(0xB0 | (this.channel - 1), AXYZ_CC_MSB[idx], 149 | (((int) (value * 16383)) >> 7) & 0x7F); 150 | if (this.highRes && AXYZ_CC_LSB[idx] != 0xFF) 151 | this.host.getMidiOutPort(0).sendMidi(0xB0 | (this.channel - 1), AXYZ_CC_LSB[idx], 152 | (((int) (value * 16383)) >> 0) & 0x7F); 153 | } 154 | }); 155 | } 156 | 157 | //this.host.showPopupNotification("Axyz Gems Initialized"); 158 | } 159 | 160 | private void sendChannelController(int channel, int data1, int data2) 161 | { 162 | this.host.getMidiOutPort(0).sendMidi(0xB0 , 127, 15); 163 | } 164 | 165 | private void sendPitchBendRangeRPN(int channel, int range) 166 | { 167 | this.sendChannelController(channel, 100, 0); // Registered Parameter Number (RPN) - LSB* 168 | this.sendChannelController(channel, 101, 0); // Registered Parameter Number (RPN) - MSB* 169 | this.sendChannelController(channel, 38, 0); 170 | this.sendChannelController(channel, 6, range); 171 | } 172 | 173 | @Override 174 | public void exit() { 175 | //getHost().showPopupNotification("Axyz Gems Exited"); 176 | } 177 | 178 | @Override 179 | public void flush() { 180 | } 181 | 182 | public static int indexOfIntArray(int[] array, int key) { 183 | int returnvalue = -1; 184 | for (int i = 0; i < array.length; ++i) { 185 | if (key == array[i]) { 186 | returnvalue = i; 187 | break; 188 | } 189 | } 190 | return returnvalue; 191 | } 192 | 193 | private void onMidi(ShortMidiMessage msg) { 194 | if (msg.isControlChange() && msg.getChannel() == (this.channel - 1)) { 195 | int idx = AxyzGemsExtension.indexOfIntArray(AXYZ_CC_MSB, msg.getData1()); 196 | if (idx >= 0) { 197 | values[idx] = (values[idx] & (0x7F << 0)) | (msg.getData2() << 7); 198 | remoteControlsBank.getParameter(layoutColumns ? LAYOUT_COLUMNS_MAP[idx] : idx).set(values[idx], 16384); 199 | } else if (highRes) { 200 | idx = AxyzGemsExtension.indexOfIntArray(AXYZ_CC_LSB, msg.getData1()); 201 | if (idx >= 0) { 202 | values[idx] = (values[idx] & (0x7F << 7)) | (msg.getData2() << 0); 203 | remoteControlsBank.getParameter(layoutColumns ? LAYOUT_COLUMNS_MAP[idx] : idx).set(values[idx], 204 | 16384); 205 | } 206 | } 207 | } 208 | } 209 | } 210 | -------------------------------------------------------------------------------- /math.js: -------------------------------------------------------------------------------- 1 | /** Provides a fast approximation of math functions using a Pade approximant 2 | continued fraction, calculated sample by sample. 3 | Note: This is an approximation which works on a limited range. You are 4 | advised to use input values only between -5 and +5 for limiting the error. 5 | 6 | Copied with kind permission of Jules Storer. https://forum.juce.com/t/math-functions-in-littlefoot/33415 7 | This file is part of the JUCE library. Copyright (c) 2019 - ROLI Ltd. 8 | */ 9 | 10 | 11 | function cosh (x) 12 | { 13 | const x2 = x * x; 14 | const numerator = -(39251520 + x2 * (18471600 + x2 * (1075032 + 14615 * x2))); 15 | const denominator = -39251520 + x2 * (1154160 + x2 * (-16632 + 127 * x2)); 16 | return numerator / denominator; 17 | } 18 | 19 | 20 | function sinh (x) 21 | { 22 | const x2 = x * x; 23 | const numerator = -x * (11511339840 + x2 * (1640635920 + x2 * (52785432 + x2 * 479249))); 24 | const denominator = -11511339840 + x2 * (277920720 + x2 * (-3177720 + x2 * 18361)); 25 | return numerator / denominator; 26 | } 27 | 28 | function tanh (x) 29 | { 30 | const x2 = x * x; 31 | const numerator = x * (135135 + x2 * (17325 + x2 * (378 + x2))); 32 | const denominator = 135135 + x2 * (62370 + x2 * (3150 + 28 * x2)); 33 | return numerator / denominator; 34 | } 35 | 36 | 37 | function cos (x) 38 | { 39 | const x2 = x * x; 40 | const numerator = -(-39251520 + x2 * (18471600 + x2 * (-1075032 + 14615 * x2))); 41 | const denominator = 39251520 + x2 * (1154160 + x2 * (16632 + x2 * 127)); 42 | return numerator / denominator; 43 | } 44 | 45 | function sin (x) 46 | { 47 | const x2 = x * x; 48 | const numerator = -x * (-11511339840 + x2 * (1640635920 + x2 * (-52785432 + x2 * 479249))); 49 | const denominator = 11511339840 + x2 * (277920720 + x2 * (3177720 + x2 * 18361)); 50 | return numerator / denominator; 51 | } 52 | 53 | function tan (x) 54 | { 55 | const x2 = x * x; 56 | const numerator = x * (-135135 + x2 * (17325 + x2 * (-378 + x2))); 57 | const denominator = -135135 + x2 * (62370 + x2 * (-3150 + 28 * x2)); 58 | return numerator / denominator; 59 | } 60 | 61 | function exp (x) 62 | { 63 | const numerator = 1680 + x * (840 + x * (180 + x * (20 + x))); 64 | const denominator = 1680 + x *(-840 + x * (180 + x * (-20 + x))); 65 | return numerator / denominator; 66 | } 67 | 68 | 69 | // Polynomial approximating arctangenet on the range -1,1. 70 | // Max error < 0.005 (or 0.29 degrees) 71 | function atan(z) 72 | { 73 | const n1 = 0.97239411; 74 | const n2 = -0.19194795; 75 | return (n1 + n2 * z * z) * z; 76 | } 77 | 78 | 79 | 80 | /*function atan2(y,x) 81 | { 82 | const PI = 3.14159265358979323846264338327950288; 83 | const PI_2 = 6.28318530717958647692528676655900576; 84 | if (x != 0.0) { 85 | if (Math.abs(x) > Math.abs(y)) { 86 | const z = y / x; 87 | if (x > 0.0) { 88 | // atan2(y,x) = atan(y/x) if x > 0 89 | return atan(z); 90 | } else if (y >= 0.0) { 91 | // atan2(y,x) = atan(y/x) + PI if x < 0, y >= 0 92 | return atan(z) + PI; 93 | } else { 94 | // atan2(y,x) = atan(y/x) - PI if x < 0, y < 0 95 | return atan(z) - PI; 96 | } 97 | } else { // Use property atan(y/x) = PI/2 - atan(x/y) if |y/x| > 1. 98 | const z = x / y; 99 | if (y > 0.0) { 100 | // atan2(y,x) = PI/2 - atan(x/y) if |y/x| > 1, y > 0 101 | return -atan(z) + PI_2; 102 | } else { 103 | // atan2(y,x) = -PI/2 - atan(x/y) if |y/x| > 1, y < 0 104 | return -atan(z) - PI_2; 105 | } 106 | } 107 | } else { 108 | if (y > 0.0) { // x = 0, y > 0 109 | return PI_2; 110 | } else if (y < 0.0) { // x = 0, y < 0 111 | return -PI_2; 112 | } 113 | } 114 | return 0.0; // x,y = 0. Could return NaN instead. 115 | } 116 | 117 | function atan2_approximation1(y,x) 118 | { 119 | //http://pubs.opengroup.org/onlinepubs/009695399/functions/atan2.html 120 | //Volkan SALMA 121 | 122 | const PI = 3.14159265358979323846264338327950288; 123 | const ONEQTR_PI = PI / 4.0; 124 | const THRQTR_PI = 3.0 * PI / 4.0; 125 | let r, angle; 126 | const abs_y = Math.abs(y) + 1e-10; // kludge to prevent 0/0 condition 127 | if ( x < 0.0 ) { 128 | r = (x + abs_y) / (abs_y - x); 129 | angle = THRQTR_PI; 130 | } else { 131 | r = (x - abs_y) / (x + abs_y); 132 | angle = ONEQTR_PI; 133 | } 134 | angle += (0.1963 * r * r - 0.9817) * r; 135 | if ( y < 0.0 ) 136 | return -angle; // negate if in quad III or IV 137 | else 138 | return angle; 139 | 140 | 141 | } 142 | */ 143 | 144 | function atan2(y, x ) //_approximation2 145 | { 146 | const PI = 3.14159265358979323846264338327950288; 147 | const PIBY2 = 1.5707963; 148 | if ( x == 0.0 ) { 149 | if ( y > 0.0 ) return PIBY2; 150 | if ( y == 0.0 ) return 0.0; 151 | return -PIBY2; 152 | } 153 | let atan; 154 | const z = y/x; 155 | if ( Math.abs( z ) < 1.0 ) { 156 | atan = z/(1.0 + 0.28*z*z); 157 | if ( x < 0.0 ) { 158 | if ( y < 0.0 ) return atan - PI; 159 | return atan + PI; 160 | } 161 | } else { 162 | atan = PIBY2 - z/(z*z + 0.28); 163 | if ( y < 0.0 ) return atan - PI; 164 | } 165 | return atan; 166 | } 167 | 168 | 169 | 170 | 171 | function DegreesToX(degrees, radius, origin) 172 | { 173 | const radians = degrees * Math.PI / 180.0; 174 | 175 | return cos(radians) * radius + origin; 176 | } 177 | 178 | function DegreesToY(degrees, radius, origin) 179 | { 180 | const radians = degrees * Math.PI / 180.0; 181 | 182 | return sin(radians) * radius + origin; 183 | } 184 | 185 | 186 | function XYToDegrees(x,y,originX,originY) 187 | { 188 | const deltaX = originX - x; 189 | const deltaY = originY - y; 190 | 191 | /* const radAngle = atan2(deltaY, deltaX);*/ 192 | const radAngle = atan2(y, x); 193 | console.log(`radAngle ${radAngle}`) 194 | const degreeAngle = radAngle * (180.0 / Math.PI); 195 | console.log(`degreeAngle ${degreeAngle}`) 196 | 197 | return (180.0 - degreeAngle); 198 | } 199 | 200 | 201 | 202 | 203 | 204 | const rads = 6.2831853072 / 2 205 | 206 | for (let x = 0; x <= rads +0.1; x += 0.1) { 207 | console.log(`cos(${x}) = ${cos(x)} vs ${Math.cos(x)} delta ${Math.abs(Math.cos(x)-cos(x)).toFixed(7)}`) 208 | } 209 | 210 | for (let x = 0; x <= rads +0.1; x += 0.1) { 211 | console.log(`sin(${x}) = ${sin(x)} vs ${Math.sin(x)} delta ${Math.abs(Math.sin(x)-sin(x)).toFixed(7)}`) 212 | } 213 | 214 | /*for (let x = -5; x <= 5; x++) { 215 | for (let y = -5; y <= 5; y++) { 216 | */ 217 | for (let x = -1.0; x <= 1.0; x += 0.1) { 218 | for (let y = -1.0; y <= 1.0; y += 0.1) { 219 | console.log(`atan2(${y},${x}) = ${atan2(y,x)} vs ${Math.atan2(y,x)} delta ${Math.abs(Math.atan2(y,x)-atan2(y,x)).toFixed(7)}`) 220 | // console.log(`atan2_approximation1(${y},${x}) = ${atan2_approximation1(y,x)} vs ${Math.atan2(y,x)} delta ${Math.abs(Math.atan2(y,x)-atan2_approximation1(y,x)).toFixed(7)}`) 221 | 222 | /* console.log(`atan2_approximation2(${y},${x}) = ${atan2_approximation2(y,x)} vs ${Math.atan2(y,x)} delta ${Math.abs(Math.atan2(y,x)-atan2_approximation2(y,x)).toFixed(7)}`)*/ 223 | const degrees = XYToDegrees(x,y,0,0) 224 | 225 | const nx = DegreesToX(degrees, 1.0, 0) 226 | const ny = DegreesToY(degrees, 1.0, 0) 227 | 228 | const dx = Math.abs(x - nx) 229 | const dy = Math.abs(y - ny) 230 | console.log(`X = ${x} degrees = ${degrees} NX = ${nx} DX = ${dx} `) 231 | console.log(`Y = ${y} degrees = ${degrees} NY = ${ny} DY = ${dy} `) 232 | console.log(Math.PI) 233 | /* process.exit()*/ 234 | } 235 | } 236 | 237 | 238 | function sqrt(n) { 239 | if (!n) return 0; 240 | let t; 241 | 242 | let squareRoot = n / 2; 243 | 244 | do { 245 | t = squareRoot; 246 | squareRoot = (t + (n / t)) / 2; 247 | } while ((t - squareRoot) != 0); 248 | 249 | return squareRoot; 250 | } 251 | 252 | console.log(Math.sin(90 * Math.PI / 180)) 253 | console.log(sin(90 * Math.PI / 180)) 254 | 255 | function calcAngleDegrees(x, y) { 256 | /* return Math.atan2(y, x) * (180 / Math.PI);*/ 257 | return atan2(y, x) * (180 / Math.PI); 258 | } 259 | 260 | function radius(x,y) 261 | { 262 | /* return Math.sqrt((x*x) + (y*y))*/ 263 | return sqrt((x*x) + (y*y)) 264 | } 265 | 266 | for (let x = 0; x < 15; x += 1) { 267 | for (let y = 0; y < 15; y += 1) { 268 | const deg = calcAngleDegrees(x, y) 269 | const rad = radius(x,y) 270 | const X = DegreesToX(deg,rad,0) 271 | const Y = DegreesToY(deg,rad,0)} 272 | console.log(`JJR: x:${x} y:${y} deg:${deg.toFixed(2)} radius:${rad.toFixed(2)} X:${X.toFixed(2)} Y:${Y.toFixed(2)}`); 273 | } 274 | } 275 | 276 | console.log(calcAngleDegrees(5, 5)); 277 | //expected output: 45 278 | 279 | console.log(calcAngleDegrees(10, 10)); 280 | //expected output: 45 281 | 282 | console.log(calcAngleDegrees(0, 10)); 283 | //expected output: 90 284 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Axyz Gems v1.30 2 | **ROLI Lightpad Block** code for running as a high-res multi XY surface. 3 | 4 | Axyz Gems in Action 5 | 6 | ##### Table of Contents 7 | [Introduction](#introduction) 8 | [Installation](#installation) 9 | [Heads up!](#heads-up) 10 | [Control Changes](#control-changes) 11 | [Operation](#operation) 12 | [Setup](#setup) 13 | [Parameters](#parameters) 14 | [Integration](#integration) 15 | [Bitwig](#bitwig) 16 | [Ableton](#ableton) 17 | 18 | ## Introduction 19 | 20 | This LittleFoot script will turn a **ROLI Lightpad Block** into a high-res multi XY surface. Multi as in five times... for five fingers... at the same time! 21 | 22 | For every finger (touch) it shows a pulsing (on the beat if available) gem in a bright colour. The position of these gems are translated into MIDI Control Changes which can be mapped to anything in modern DAW's (Digital Audio Workstations) such as Ableton Live. A setup page on the device itself facilitates the easy creation of this kind of mappings. 23 | 24 | I created this script because I really enjoy the plugins by U-he (Hive & Zebra2 in particular). These plugins have very nice XY controls which I map through Ableton Live (with Absolute 14-bit precision). These plugins also have CC 2 (breath) and CC 11 (expression) mapped as extra controllers, so the first gem (orange) uses these. 25 | 26 | To see the gems operate bi-directional, make sure the mapped control values are send back to the device. In case of Ableton Live, ensure the **Remote** option is selected with your **Output: Lightpad Block** MIDI setup. If you like to see the gems pulsing on the beat, make sure **Sync** is selected as-well. 27 | 28 | 29 | ## Installation 30 | 31 | Roli Dashboard Apps Axyz Gems Roli Dashboard Apps Axyz Gems 32 | 33 | To install this script save (only) the **Axyz Gems.littlefoot** script (here) in the default **ROLI Blocks Littlefoot** location of your platform (On MacOS this is **~/Documents/ROLI/LittleFoot**). Now whenever you start the **ROLI Dashboard**, you will see the **Axyz Gems** app next to the default apps. Select it, and start tweaking... Enjoy! 😊 34 | 35 |
36 | 37 | ### Heads up! 38 | 39 | It has come to my attention that some users download the **Axyz Gems.littlefoot** by right clicking the file (above) and selecting _download_ as an option. Saving that way will in fact dowload the container HTML file, and so it is impossible for **ROLI Dashboard** to upload the script to the **Lightpad BLOCK**. You will typicly be warned by an alert saying something like "Line 7, Column1: Found "<" when expecting a global variable or function". Please use the instructions above, or if you prefer, download the full release including these instructions by clicking [here](https://github.com/jorisroling/axyz-gems/releases/latest) and then click **Source code(zip)**. 40 | 41 | ## Control Changes 42 | 43 | The (default) arrangement of gems is as follows: 44 | 45 | | Gem | Colour | Indicator | CC X | CC Y | CC Z | 46 | |:----:|:------:|:------------:|:----:|:----:| :---:| 47 | | 1 | orange | none | 2 | 11 | 14 | 48 | | 2 | red | Top Left | 20 | 21 | 22 | 49 | | 3 | green | Top Right | 23 | 24 | 25 | 50 | | 4 | blue | Bottom Left | 26 | 27 | 28 | 51 | | 5 | pink | Bottom Right | 29 | 30 | 31 | 52 | 53 | ## Operation 54 | 55 | Use one to five fingers at once to place & move the gems on the pad. The first touch will correspond to the **Primary Gem** (default is 1: orange).Increasing the pressure will scale the gems outward (positive **Z Scale**) or inward (negative **Z Scale**). 56 | 57 | Pressing the **Side Button** shortly will advance (and possibly wrap around) the **Primary Gem**, shown by the **Indicator** (see table above). 58 | 59 | 60 | ## Setup 61 | 62 | Pressing the **SideButton** a bit longer will open the **Setup Page** from which you can easily map your DAW's controls. Here selecting a dimension (X, Y or Z) and tapping one of the gems will only send out the corresponding the MIDI CC's (which prevents confusing the receiver). Press the **Side Button** again to leave this page, and return to normal operation. 63 | 64 | ### Side toggles 65 | 66 | The small side buttons will give access to some toggle states, pressing them will toggle and exit the **Setup Page**. 67 | 68 | #### Left toggles 69 | 70 | 1. orange: Beat toggle 71 | 2. yellow: Reset Gems (center) 72 | 3. cyan: Multitouch toggle 73 | 74 | 75 | #### Right toggles 76 | 77 | 1. blue: Record Off 78 | 2. green: Record On (4) 79 | 80 | 81 | ## Parameters 82 | 83 | 84 | 85 | 86 | The **Active Gems** determine which gems are accesible. So 'All gems' will work with the full 5 gems, and 'Only Gem 3' will work only with Gem 3. The last option 'Only Gems 2-5' is handy if you want only the last 4 gems to access 4 XY pads in your software. 87 | 88 | The **Primary Gem** determines which gem is selected by the first touch (finger), the next gem is accessible by the second touch, etc. This can be changed mid-flight by hitting the dot in it's respective corners. 89 | 90 | If the option **Z Scale** allows pressure to influence (amplify) the actual position of the gem. The **Z Threshold** determines to amount of pressure needed before the scaling kicks in. 91 | 92 | The **High resolution** option will (when selected) send out two CC's per dimension per gem, as such increasing the resolution. This is done according to the MIDI specification by sending out an extra CC (called LSB) for every value (called MSB). Most modern DAW's understand this mode (double CC's) as 14-bit CC's. 93 | 94 | The **MIDI Channel** determines the MIDI channel used for sending the CC's. 95 | 96 | The **Recorder** offers a *Per Beat* option, which will hold and playback all the values per beat. (This option might expand in the future) 97 | A large beat counter will show up, and advance. For this option to work, a MIDI clock signal should be sent to the **Lightpad Block**, as it needs to know the beat. 98 | 99 | 100 | ## Integration 101 | 102 | For enjoy the full joy of **Axyz Gems**, including high-resolution, there are dedicated Controller Surface scripts for Bitwig and Ableton. 103 | 104 | ### Bitwig 105 | 106 | 119 | 120 | Bitwig Axyz Gems Control UIFor Bitwig Control copy the **Bitwig/AxyzGems.control.js** (get it here) to your **Documents/Bitwig Studio/Controller Scripts** folder. Start Bitwig, go to **Bitwig Settings** -> **Controllers**, add the controller by clicking **Add** and selecting **Bonboa** -> **Axyz Gems Controller (by Joris Röling)**, set the MIDI in and out to **Lightpad BLOCK** or **Lightpad Block (Bluetooth)**) and your good to go. The 8 macro knobs of the selected page of the selected device will be mapped to Gem 2 - 5. The control will be hi-res, AKA 14-bit. 121 | 122 | --- 123 | 130 | ### Ableton 131 | 132 | Ableton Axyz Gems UIFor Ableton copy the entire **Ableton/Axyz_Gems** folder to your **MIDI Remote Scripts** folder (on Mac this will be **~/Music/Ableton/User Library/Remote Scripts**). Start Ableton, go to **Preferences** -> **Link MIDI**, select **Axyz Gems** in an empty **Control Surface** slot, select **Lightpad BLOCK** or **Lightpad Block (Bluetooth)** in **Input** and **Output** and your good to go. The 8 macro knobs of a selected grouped device will be mapped to Gems 2 - 5. (Sadly this will be low-res, AKA 7-bit, only) 133 |
134 | -------------------------------------------------------------------------------- /Bitwig/Axyz Gems.flexi: -------------------------------------------------------------------------------- 1 | #Generic Flexi 2 | #Sat Feb 09 11:43:08 CET 2019 3 | SLOT159_TYPE=-1 4 | SLOT184_NUMBER=0 5 | SLOT136_MIDI_CHANNEL=0 6 | SLOT37_MIDI_CHANNEL=0 7 | SLOT20_NUMBER=0 8 | SLOT50_COMMAND=Off 9 | SLOT105_COMMAND=Off 10 | SLOT6_KNOB_MODE=0 11 | SLOT162_COMMAND=Off 12 | SLOT141_MIDI_CHANNEL=0 13 | SLOT79_KNOB_MODE=0 14 | SLOT42_MIDI_CHANNEL=0 15 | SLOT116_TYPE=-1 16 | SLOT83_NUMBER=0 17 | SLOT119_SEND_VALUE=false 18 | SLOT149_TYPE=-1 19 | SLOT18_COMMAND=Off 20 | SLOT75_COMMAND=Off 21 | SLOT36_NUMBER=0 22 | SLOT140_KNOB_MODE=0 23 | SLOT196_KNOB_MODE=0 24 | SLOT125_KNOB_MODE=0 25 | SLOT143_NUMBER=0 26 | SLOT159_MIDI_CHANNEL=0 27 | SLOT99_NUMBER=0 28 | SLOT81_SEND_VALUE=false 29 | SLOT0_KNOB_MODE=0 30 | SLOT182_NUMBER=0 31 | SLOT139_TYPE=-1 32 | SLOT126_MIDI_CHANNEL=0 33 | SLOT73_KNOB_MODE=0 34 | SLOT58_KNOB_MODE=0 35 | SLOT27_MIDI_CHANNEL=0 36 | SLOT164_MIDI_CHANNEL=0 37 | SLOT159_NUMBER=0 38 | SLOT35_COMMAND=Off 39 | SLOT131_MIDI_CHANNEL=0 40 | SLOT109_KNOB_MODE=0 41 | SLOT28_TYPE=-1 42 | SLOT190_KNOB_MODE=0 43 | SLOT32_MIDI_CHANNEL=0 44 | SLOT81_NUMBER=0 45 | SLOT92_COMMAND=Off 46 | SLOT198_NUMBER=0 47 | SLOT181_SEND_VALUE=false 48 | SLOT147_COMMAND=Off 49 | SLOT60_SEND_VALUE=false 50 | SLOT74_SEND_VALUE=false 51 | SLOT3_SEND_VALUE=true 52 | SLOT141_NUMBER=0 53 | SLOT52_KNOB_MODE=0 54 | SLOT149_MIDI_CHANNEL=0 55 | SLOT97_NUMBER=0 56 | SLOT18_TYPE=-1 57 | SLOT103_KNOB_MODE=0 58 | SLOT174_KNOB_MODE=0 59 | SLOT159_KNOB_MODE=0 60 | SLOT174_SEND_VALUE=false 61 | SLOT157_NUMBER=0 62 | SLOT154_MIDI_CHANNEL=0 63 | SLOT53_SEND_VALUE=false 64 | SLOT55_MIDI_CHANNEL=0 65 | SLOT130_COMMAND=Off 66 | SLOT170_TYPE=-1 67 | SLOT79_SEND_VALUE=false 68 | SLOT8_SEND_VALUE=true 69 | SLOT22_MIDI_CHANNEL=0 70 | SLOT36_KNOB_MODE=0 71 | SLOT43_COMMAND=Off 72 | SLOT60_MIDI_CHANNEL=0 73 | SLOT77_COMMAND=Off 74 | SLOT153_SEND_VALUE=false 75 | SLOT189_COMMAND=Off 76 | SLOT160_TYPE=-1 77 | SLOT153_KNOB_MODE=0 78 | SLOT32_SEND_VALUE=false 79 | SLOT179_SEND_VALUE=false 80 | SLOT193_TYPE=-1 81 | SLOT139_MIDI_CHANNEL=0 82 | SLOT95_NUMBER=0 83 | SLOT58_SEND_VALUE=false 84 | SLOT177_MIDI_CHANNEL=0 85 | SLOT30_KNOB_MODE=0 86 | SLOT155_NUMBER=0 87 | SLOT86_KNOB_MODE=0 88 | SLOT144_MIDI_CHANNEL=0 89 | SLOT45_MIDI_CHANNEL=0 90 | SLOT182_MIDI_CHANNEL=0 91 | SLOT132_SEND_VALUE=false 92 | SLOT60_COMMAND=Off 93 | SLOT183_TYPE=-1 94 | SLOT115_COMMAND=Off 95 | SLOT11_SEND_VALUE=true 96 | SLOT158_SEND_VALUE=false 97 | SLOT137_KNOB_MODE=0 98 | SLOT172_COMMAND=Off 99 | SLOT37_SEND_VALUE=false 100 | SLOT50_MIDI_CHANNEL=0 101 | SLOT54_NUMBER=0 102 | SLOT28_COMMAND=Off 103 | SLOT9_NUMBER=26 104 | SLOT9_TYPE=0 105 | SLOT72_TYPE=-1 106 | SLOT85_COMMAND=Off 107 | SLOT14_KNOB_MODE=0 108 | SLOT80_KNOB_MODE=0 109 | SLOT197_COMMAND=Off 110 | SLOT114_NUMBER=0 111 | SLOT111_SEND_VALUE=false 112 | SLOT167_MIDI_CHANNEL=0 113 | SLOT68_MIDI_CHANNEL=0 114 | SLOT137_SEND_VALUE=false 115 | SLOT7_MIDI_CHANNEL=0 116 | SLOT5_COMMAND=Off 117 | SLOT131_KNOB_MODE=0 118 | SLOT187_KNOB_MODE=0 119 | SLOT35_MIDI_CHANNEL=0 120 | SLOT62_TYPE=-1 121 | SLOT121_TYPE=-1 122 | SLOT172_MIDI_CHANNEL=0 123 | SLOT95_TYPE=-1 124 | SLOT73_MIDI_CHANNEL=0 125 | SLOT11_COMMAND=Off 126 | SLOT154_TYPE=-1 127 | SLOT45_COMMAND=Off 128 | SLOT64_KNOB_MODE=0 129 | SLOT40_MIDI_CHANNEL=0 130 | SLOT104_SEND_VALUE=false 131 | SLOT52_NUMBER=0 132 | SLOT157_COMMAND=Off 133 | SLOT180_COMMAND=Off 134 | SLOT7_NUMBER=24 135 | SLOT111_TYPE=-1 136 | SLOT85_TYPE=-1 137 | SLOT181_KNOB_MODE=0 138 | SLOT112_NUMBER=0 139 | SLOT144_TYPE=-1 140 | SLOT157_MIDI_CHANNEL=0 141 | SLOT177_TYPE=-1 142 | SLOT58_MIDI_CHANNEL=0 143 | SLOT68_NUMBER=0 144 | SLOT195_MIDI_CHANNEL=0 145 | SLOT175_NUMBER=0 146 | SLOT92_SEND_VALUE=false 147 | SLOT109_SEND_VALUE=false 148 | SLOT11_NUMBER=28 149 | SLOT162_MIDI_CHANNEL=0 150 | SLOT128_NUMBER=0 151 | SLOT63_MIDI_CHANNEL=0 152 | SLOT140_COMMAND=Off 153 | SLOT2_MIDI_CHANNEL=0 154 | SLOT134_TYPE=-1 155 | SLOT167_TYPE=-1 156 | SLOT165_KNOB_MODE=0 157 | SLOT53_COMMAND=Off 158 | SLOT108_COMMAND=Off 159 | SLOT5_NUMBER=22 160 | SLOT192_SEND_VALUE=false 161 | SLOT27_NUMBER=0 162 | SLOT165_COMMAND=Off 163 | SLOT71_SEND_VALUE=false 164 | SLOT23_TYPE=-1 165 | SLOT85_SEND_VALUE=false 166 | SLOT199_COMMAND=Off 167 | SLOT56_TYPE=-1 168 | SLOT97_SEND_VALUE=false 169 | SLOT0_SEND_VALUE=true 170 | SLOT27_KNOB_MODE=0 171 | SLOT98_KNOB_MODE=0 172 | SLOT48_MIDI_CHANNEL=0 173 | SLOT7_COMMAND=Device\: Set Parameter 6 174 | SLOT185_MIDI_CHANNEL=0 175 | SLOT173_NUMBER=0 176 | SLOT86_MIDI_CHANNEL=0 177 | SLOT144_KNOB_MODE=0 178 | SLOT171_SEND_VALUE=false 179 | SLOT13_TYPE=0 180 | SLOT185_SEND_VALUE=false 181 | SLOT13_COMMAND=Device\: Set Parameter 8 182 | SLOT53_MIDI_CHANNEL=0 183 | SLOT46_TYPE=-1 184 | SLOT64_SEND_VALUE=false 185 | SLOT1_TYPE=-1 186 | SLOT190_MIDI_CHANNEL=0 187 | SLOT105_TYPE=-1 188 | SLOT91_MIDI_CHANNEL=0 189 | SLOT79_TYPE=-1 190 | SLOT125_COMMAND=Off 191 | SLOT72_NUMBER=0 192 | SLOT189_NUMBER=0 193 | SLOT182_COMMAND=Off 194 | SLOT92_KNOB_MODE=0 195 | SLOT21_KNOB_MODE=0 196 | SLOT77_KNOB_MODE=0 197 | SLOT38_COMMAND=Off 198 | SLOT25_NUMBER=0 199 | SLOT132_NUMBER=0 200 | SLOT95_COMMAND=Off 201 | SLOT36_TYPE=-1 202 | SLOT164_SEND_VALUE=false 203 | SLOT199_KNOB_MODE=0 204 | SLOT128_KNOB_MODE=0 205 | SLOT69_TYPE=-1 206 | SLOT88_NUMBER=0 207 | SLOT43_SEND_VALUE=false 208 | SLOT128_TYPE=-1 209 | SLOT69_SEND_VALUE=false 210 | SLOT171_NUMBER=0 211 | SLOT175_MIDI_CHANNEL=0 212 | SLOT76_MIDI_CHANNEL=0 213 | SLOT3_KNOB_MODE=0 214 | SLOT148_NUMBER=0 215 | SLOT71_KNOB_MODE=0 216 | SLOT180_MIDI_CHANNEL=0 217 | SLOT81_MIDI_CHANNEL=0 218 | SLOT21_COMMAND=Off 219 | SLOT143_SEND_VALUE=false 220 | SLOT70_NUMBER=0 221 | SLOT118_TYPE=-1 222 | SLOT187_NUMBER=0 223 | SLOT22_SEND_VALUE=false 224 | SLOT193_KNOB_MODE=0 225 | SLOT122_KNOB_MODE=0 226 | SLOT169_SEND_VALUE=false 227 | SLOT133_COMMAND=Off 228 | SLOT178_KNOB_MODE=0 229 | SLOT167_COMMAND=Off 230 | SLOT48_SEND_VALUE=false 231 | SLOT190_COMMAND=Off 232 | SLOT130_NUMBER=0 233 | SLOT198_MIDI_CHANNEL=0 234 | SLOT99_MIDI_CHANNEL=0 235 | SLOT86_NUMBER=0 236 | SLOT55_KNOB_MODE=0 237 | SLOT4_TYPE=0 238 | SLOT122_SEND_VALUE=false 239 | SLOT66_MIDI_CHANNEL=0 240 | SLOT5_MIDI_CHANNEL=0 241 | SLOT148_SEND_VALUE=false 242 | SLOT146_NUMBER=0 243 | SLOT27_SEND_VALUE=false 244 | SLOT172_KNOB_MODE=0 245 | SLOT170_MIDI_CHANNEL=0 246 | SLOT150_COMMAND=Off 247 | SLOT71_MIDI_CHANNEL=0 248 | SLOT45_NUMBER=0 249 | SLOT90_TYPE=-1 250 | SLOT63_COMMAND=Off 251 | SLOT101_SEND_VALUE=false 252 | SLOT118_COMMAND=Off 253 | SLOT115_SEND_VALUE=false 254 | SLOT175_COMMAND=Off 255 | SLOT188_MIDI_CHANNEL=0 256 | SLOT89_MIDI_CHANNEL=0 257 | SLOT105_NUMBER=0 258 | SLOT84_NUMBER=0 259 | SLOT100_KNOB_MODE=0 260 | SLOT156_KNOB_MODE=0 261 | SLOT191_NUMBER=0 262 | SLOT80_TYPE=-1 263 | SLOT193_MIDI_CHANNEL=0 264 | SLOT94_MIDI_CHANNEL=0 265 | SLOT144_NUMBER=0 266 | SLOT172_TYPE=-1 267 | SLOT18_KNOB_MODE=0 268 | SLOT89_KNOB_MODE=0 269 | SLOT61_MIDI_CHANNEL=0 270 | SLOT101_COMMAND=Off 271 | SLOT0_MIDI_CHANNEL=0 272 | SLOT135_COMMAND=Off 273 | SLOT192_COMMAND=Off 274 | SLOT43_NUMBER=0 275 | SLOT150_KNOB_MODE=0 276 | SLOT135_KNOB_MODE=0 277 | SLOT48_COMMAND=Off 278 | SLOT162_TYPE=-1 279 | SLOT82_SEND_VALUE=false 280 | SLOT79_MIDI_CHANNEL=0 281 | SLOT195_TYPE=-1 282 | SLOT103_NUMBER=0 283 | SLOT83_KNOB_MODE=0 284 | SLOT12_KNOB_MODE=0 285 | SLOT68_KNOB_MODE=0 286 | SLOT59_NUMBER=0 287 | SLOT51_TYPE=-1 288 | SLOT183_MIDI_CHANNEL=0 289 | SLOT84_MIDI_CHANNEL=0 290 | SLOT119_KNOB_MODE=0 291 | SLOT119_NUMBER=0 292 | SLOT182_SEND_VALUE=false 293 | SLOT185_TYPE=-1 294 | SLOT196_SEND_VALUE=false 295 | SLOT75_SEND_VALUE=false 296 | SLOT31_COMMAND=Off 297 | SLOT41_NUMBER=0 298 | SLOT4_SEND_VALUE=true 299 | SLOT143_COMMAND=Off 300 | SLOT41_TYPE=-1 301 | SLOT177_COMMAND=Off 302 | SLOT100_TYPE=-1 303 | SLOT74_TYPE=-1 304 | SLOT101_NUMBER=0 305 | SLOT113_KNOB_MODE=0 306 | SLOT184_KNOB_MODE=0 307 | SLOT169_KNOB_MODE=0 308 | SLOT175_SEND_VALUE=false 309 | SLOT57_NUMBER=0 310 | SLOT54_SEND_VALUE=false 311 | SLOT164_NUMBER=0 312 | SLOT31_TYPE=-1 313 | SLOT74_MIDI_CHANNEL=0 314 | SLOT64_TYPE=-1 315 | SLOT9_SEND_VALUE=true 316 | SLOT117_NUMBER=0 317 | SLOT123_TYPE=-1 318 | SLOT97_TYPE=-1 319 | SLOT103_COMMAND=Off 320 | SLOT46_KNOB_MODE=0 321 | SLOT156_TYPE=-1 322 | SLOT160_COMMAND=Off 323 | SLOT16_COMMAND=Off 324 | SLOT154_SEND_VALUE=false 325 | SLOT163_KNOB_MODE=0 326 | SLOT33_SEND_VALUE=false 327 | SLOT73_COMMAND=Off 328 | SLOT16_NUMBER=0 329 | SLOT128_COMMAND=Off 330 | SLOT59_SEND_VALUE=false 331 | SLOT113_TYPE=-1 332 | SLOT185_COMMAND=Off 333 | SLOT87_TYPE=-1 334 | SLOT146_TYPE=-1 335 | SLOT196_MIDI_CHANNEL=0 336 | SLOT108_MIDI_CHANNEL=0 337 | SLOT97_MIDI_CHANNEL=0 338 | SLOT179_TYPE=-1 339 | SLOT40_KNOB_MODE=0 340 | SLOT96_KNOB_MODE=0 341 | SLOT162_NUMBER=0 342 | SLOT133_SEND_VALUE=false 343 | SLOT12_SEND_VALUE=true 344 | SLOT159_SEND_VALUE=false 345 | SLOT147_KNOB_MODE=0 346 | SLOT38_SEND_VALUE=false 347 | SLOT136_TYPE=-1 348 | SLOT111_COMMAND=Off 349 | SLOT169_TYPE=-1 350 | SLOT61_NUMBER=0 351 | SLOT178_NUMBER=0 352 | SLOT145_COMMAND=Off 353 | SLOT7_KNOB_MODE=0 354 | SLOT14_NUMBER=31 355 | SLOT24_KNOB_MODE=0 356 | SLOT90_KNOB_MODE=0 357 | SLOT25_TYPE=-1 358 | SLOT121_NUMBER=0 359 | SLOT112_SEND_VALUE=false 360 | SLOT58_COMMAND=Off 361 | SLOT58_TYPE=-1 362 | SLOT138_SEND_VALUE=false 363 | SLOT77_NUMBER=0 364 | SLOT87_MIDI_CHANNEL=0 365 | SLOT141_KNOB_MODE=0 366 | SLOT197_KNOB_MODE=0 367 | SLOT160_NUMBER=0 368 | SLOT137_NUMBER=0 369 | SLOT103_MIDI_CHANNEL=0 370 | SLOT15_TYPE=-1 371 | SLOT92_MIDI_CHANNEL=0 372 | SLOT1_KNOB_MODE=0 373 | SLOT48_TYPE=-1 374 | SLOT3_TYPE=0 375 | SLOT107_TYPE=-1 376 | SLOT74_KNOB_MODE=0 377 | SLOT105_SEND_VALUE=false 378 | SLOT176_NUMBER=0 379 | SLOT41_COMMAND=Off 380 | SLOT153_COMMAND=Off 381 | SLOT191_KNOB_MODE=0 382 | SLOT187_COMMAND=Off 383 | SLOT38_TYPE=-1 384 | SLOT75_NUMBER=0 385 | SLOT93_SEND_VALUE=false 386 | SLOT190_TYPE=-1 387 | SLOT135_NUMBER=0 388 | SLOT104_KNOB_MODE=0 389 | SLOT175_KNOB_MODE=0 390 | SLOT113_COMMAND=Off 391 | SLOT170_COMMAND=Off 392 | SLOT193_SEND_VALUE=false 393 | SLOT72_SEND_VALUE=false 394 | SLOT34_NUMBER=0 395 | SLOT86_SEND_VALUE=false 396 | SLOT26_COMMAND=Off 397 | SLOT180_TYPE=-1 398 | SLOT83_COMMAND=Off 399 | SLOT37_KNOB_MODE=0 400 | SLOT138_COMMAND=Off 401 | SLOT195_COMMAND=Off 402 | SLOT73_NUMBER=0 403 | SLOT180_NUMBER=0 404 | SLOT6_TYPE=0 405 | SLOT116_MIDI_CHANNEL=0 406 | SLOT160_SEND_VALUE=false 407 | SLOT17_MIDI_CHANNEL=0 408 | SLOT154_KNOB_MODE=0 409 | SLOT3_COMMAND=Device\: Set Parameter 1 410 | SLOT186_SEND_VALUE=false 411 | SLOT133_NUMBER=0 412 | SLOT65_SEND_VALUE=false 413 | SLOT89_NUMBER=0 414 | SLOT121_MIDI_CHANNEL=0 415 | SLOT196_NUMBER=0 416 | SLOT31_KNOB_MODE=0 417 | SLOT87_KNOB_MODE=0 418 | SLOT121_COMMAND=Off 419 | SLOT32_NUMBER=0 420 | SLOT155_COMMAND=Off 421 | SLOT149_NUMBER=0 422 | SLOT92_TYPE=-1 423 | SLOT151_TYPE=-1 424 | SLOT165_SEND_VALUE=false 425 | SLOT138_KNOB_MODE=0 426 | SLOT34_COMMAND=Off 427 | SLOT44_SEND_VALUE=false 428 | SLOT68_COMMAND=Off 429 | SLOT91_COMMAND=Off 430 | SLOT48_NUMBER=0 431 | SLOT106_MIDI_CHANNEL=0 432 | SLOT15_KNOB_MODE=0 433 | SLOT82_TYPE=-1 434 | SLOT81_KNOB_MODE=0 435 | SLOT141_TYPE=-1 436 | SLOT174_TYPE=-1 437 | SLOT108_NUMBER=0 438 | SLOT144_SEND_VALUE=false 439 | SLOT111_MIDI_CHANNEL=0 440 | SLOT12_MIDI_CHANNEL=0 441 | SLOT194_NUMBER=0 442 | SLOT23_SEND_VALUE=false 443 | SLOT132_KNOB_MODE=0 444 | SLOT188_KNOB_MODE=0 445 | SLOT49_SEND_VALUE=false 446 | SLOT30_NUMBER=0 447 | SLOT51_COMMAND=Off 448 | SLOT106_COMMAND=Off 449 | SLOT131_TYPE=-1 450 | SLOT163_COMMAND=Off 451 | SLOT164_TYPE=-1 452 | SLOT129_MIDI_CHANNEL=0 453 | SLOT65_KNOB_MODE=0 454 | SLOT93_NUMBER=0 455 | SLOT197_TYPE=-1 456 | SLOT19_COMMAND=Off 457 | SLOT123_SEND_VALUE=false 458 | SLOT76_COMMAND=Off 459 | SLOT46_NUMBER=0 460 | SLOT149_SEND_VALUE=false 461 | SLOT16_SEND_VALUE=false 462 | SLOT20_TYPE=-1 463 | SLOT116_KNOB_MODE=0 464 | SLOT153_NUMBER=0 465 | SLOT134_MIDI_CHANNEL=0 466 | SLOT182_KNOB_MODE=0 467 | SLOT53_TYPE=-1 468 | SLOT106_NUMBER=0 469 | SLOT101_MIDI_CHANNEL=0 470 | SLOT192_NUMBER=0 471 | SLOT187_TYPE=-1 472 | SLOT123_COMMAND=Off 473 | SLOT49_KNOB_MODE=0 474 | SLOT169_NUMBER=0 475 | SLOT116_SEND_VALUE=false 476 | SLOT10_TYPE=0 477 | SLOT43_TYPE=-1 478 | SLOT36_COMMAND=Off 479 | SLOT102_TYPE=-1 480 | SLOT76_TYPE=-1 481 | SLOT110_KNOB_MODE=0 482 | SLOT166_KNOB_MODE=0 483 | SLOT91_NUMBER=0 484 | SLOT93_COMMAND=Off 485 | SLOT119_MIDI_CHANNEL=0 486 | SLOT148_COMMAND=Off 487 | SLOT151_NUMBER=0 488 | SLOT124_MIDI_CHANNEL=0 489 | SLOT25_MIDI_CHANNEL=0 490 | SLOT33_TYPE=-1 491 | SLOT43_KNOB_MODE=0 492 | SLOT28_KNOB_MODE=0 493 | SLOT99_KNOB_MODE=0 494 | SLOT66_TYPE=-1 495 | SLOT125_TYPE=-1 496 | SLOT99_TYPE=-1 497 | SLOT158_TYPE=-1 498 | SLOT30_MIDI_CHANNEL=0 499 | SLOT160_KNOB_MODE=0 500 | SLOT50_NUMBER=0 501 | SLOT167_NUMBER=0 502 | SLOT131_COMMAND=Off 503 | SLOT83_SEND_VALUE=false 504 | SLOT110_NUMBER=0 505 | SLOT109_MIDI_CHANNEL=0 506 | SLOT115_TYPE=-1 507 | SLOT44_COMMAND=Off 508 | SLOT89_TYPE=-1 509 | SLOT93_KNOB_MODE=0 510 | SLOT22_KNOB_MODE=0 511 | SLOT147_MIDI_CHANNEL=0 512 | SLOT148_TYPE=-1 513 | SLOT78_COMMAND=Off 514 | SLOT66_NUMBER=0 515 | SLOT114_MIDI_CHANNEL=0 516 | SLOT19_NUMBER=0 517 | SLOT15_MIDI_CHANNEL=0 518 | SLOT129_KNOB_MODE=0 519 | SLOT126_NUMBER=0 520 | SLOT152_MIDI_CHANNEL=0 521 | SLOT183_SEND_VALUE=false 522 | SLOT50_SEND_VALUE=false 523 | SLOT197_SEND_VALUE=false 524 | SLOT76_SEND_VALUE=false 525 | SLOT138_TYPE=-1 526 | SLOT4_KNOB_MODE=0 527 | SLOT20_MIDI_CHANNEL=0 528 | SLOT5_SEND_VALUE=true 529 | SLOT165_NUMBER=0 530 | SLOT3_NUMBER=20 531 | SLOT61_COMMAND=Off 532 | SLOT116_COMMAND=Off 533 | SLOT27_TYPE=-1 534 | SLOT150_SEND_VALUE=false 535 | SLOT173_COMMAND=Off 536 | SLOT194_KNOB_MODE=0 537 | SLOT123_KNOB_MODE=0 538 | SLOT179_KNOB_MODE=0 539 | SLOT176_SEND_VALUE=false 540 | SLOT137_MIDI_CHANNEL=0 541 | SLOT64_NUMBER=0 542 | SLOT38_MIDI_CHANNEL=0 543 | SLOT55_SEND_VALUE=false 544 | SLOT29_COMMAND=Off 545 | SLOT86_COMMAND=Off 546 | SLOT124_NUMBER=0 547 | SLOT142_MIDI_CHANNEL=0 548 | SLOT56_KNOB_MODE=0 549 | SLOT43_MIDI_CHANNEL=0 550 | SLOT17_TYPE=-1 551 | SLOT6_COMMAND=Device\: Set Parameter 2 552 | SLOT109_TYPE=-1 553 | SLOT10_MIDI_CHANNEL=0 554 | SLOT155_SEND_VALUE=false 555 | SLOT107_KNOB_MODE=0 556 | SLOT1_NUMBER=11 557 | SLOT173_KNOB_MODE=0 558 | SLOT34_SEND_VALUE=false 559 | SLOT23_NUMBER=0 560 | SLOT12_COMMAND=Device\: Set Parameter 4 561 | SLOT46_COMMAND=Off 562 | SLOT127_MIDI_CHANNEL=0 563 | SLOT62_NUMBER=0 564 | SLOT158_COMMAND=Off 565 | SLOT50_KNOB_MODE=0 566 | SLOT28_MIDI_CHANNEL=0 567 | SLOT165_MIDI_CHANNEL=0 568 | SLOT39_NUMBER=0 569 | SLOT134_SEND_VALUE=false 570 | SLOT13_SEND_VALUE=true 571 | SLOT122_NUMBER=0 572 | SLOT192_TYPE=-1 573 | SLOT101_KNOB_MODE=0 574 | SLOT157_KNOB_MODE=0 575 | SLOT132_MIDI_CHANNEL=0 576 | SLOT33_MIDI_CHANNEL=0 577 | SLOT39_SEND_VALUE=false 578 | SLOT78_NUMBER=0 579 | SLOT185_NUMBER=0 580 | SLOT34_KNOB_MODE=0 581 | SLOT19_KNOB_MODE=0 582 | SLOT21_NUMBER=0 583 | SLOT138_NUMBER=0 584 | SLOT141_COMMAND=Off 585 | SLOT113_SEND_VALUE=false 586 | SLOT127_SEND_VALUE=false 587 | SLOT182_TYPE=-1 588 | SLOT151_KNOB_MODE=0 589 | SLOT54_COMMAND=Off 590 | SLOT18_MIDI_CHANNEL=0 591 | SLOT88_COMMAND=Off 592 | SLOT155_MIDI_CHANNEL=0 593 | SLOT8_TYPE=-1 594 | SLOT56_MIDI_CHANNEL=0 595 | SLOT37_NUMBER=0 596 | SLOT71_TYPE=-1 597 | SLOT130_TYPE=-1 598 | SLOT122_MIDI_CHANNEL=0 599 | SLOT23_MIDI_CHANNEL=0 600 | SLOT13_KNOB_MODE=0 601 | SLOT84_KNOB_MODE=0 602 | SLOT106_SEND_VALUE=false 603 | SLOT160_MIDI_CHANNEL=0 604 | SLOT8_COMMAND=Off 605 | SLOT183_NUMBER=0 606 | SLOT61_TYPE=-1 607 | SLOT120_TYPE=-1 608 | SLOT14_COMMAND=Off 609 | SLOT94_TYPE=-1 610 | SLOT153_TYPE=-1 611 | SLOT71_COMMAND=Off 612 | SLOT126_COMMAND=Off 613 | SLOT178_MIDI_CHANNEL=0 614 | SLOT82_NUMBER=0 615 | SLOT199_NUMBER=0 616 | SLOT183_COMMAND=Off 617 | SLOT94_SEND_VALUE=false 618 | SLOT145_MIDI_CHANNEL=0 619 | SLOT46_MIDI_CHANNEL=0 620 | SLOT35_NUMBER=0 621 | SLOT39_COMMAND=Off 622 | SLOT142_NUMBER=0 623 | SLOT96_COMMAND=Off 624 | SLOT110_TYPE=-1 625 | SLOT84_TYPE=-1 626 | SLOT143_TYPE=-1 627 | SLOT13_MIDI_CHANNEL=0 628 | SLOT114_KNOB_MODE=0 629 | SLOT185_KNOB_MODE=0 630 | SLOT98_NUMBER=0 631 | SLOT150_MIDI_CHANNEL=0 632 | SLOT176_TYPE=-1 633 | SLOT51_MIDI_CHANNEL=0 634 | SLOT194_SEND_VALUE=false 635 | SLOT61_SEND_VALUE=false 636 | SLOT87_SEND_VALUE=false 637 | SLOT158_NUMBER=0 638 | SLOT62_KNOB_MODE=0 639 | SLOT47_KNOB_MODE=0 640 | SLOT133_TYPE=-1 641 | SLOT22_COMMAND=Off 642 | SLOT168_MIDI_CHANNEL=0 643 | SLOT69_MIDI_CHANNEL=0 644 | SLOT80_NUMBER=0 645 | SLOT166_TYPE=-1 646 | SLOT56_COMMAND=Off 647 | SLOT8_MIDI_CHANNEL=0 648 | SLOT199_TYPE=-1 649 | SLOT161_SEND_VALUE=false 650 | SLOT168_COMMAND=Off 651 | SLOT135_MIDI_CHANNEL=0 652 | SLOT40_SEND_VALUE=false 653 | SLOT187_SEND_VALUE=false 654 | SLOT36_MIDI_CHANNEL=0 655 | SLOT22_TYPE=-1 656 | SLOT173_MIDI_CHANNEL=0 657 | SLOT140_NUMBER=0 658 | SLOT66_SEND_VALUE=false 659 | SLOT55_TYPE=-1 660 | SLOT96_NUMBER=0 661 | SLOT140_MIDI_CHANNEL=0 662 | SLOT41_KNOB_MODE=0 663 | SLOT41_MIDI_CHANNEL=0 664 | SLOT189_TYPE=-1 665 | SLOT140_SEND_VALUE=false 666 | SLOT156_NUMBER=0 667 | SLOT12_TYPE=0 668 | SLOT166_SEND_VALUE=false 669 | SLOT148_KNOB_MODE=0 670 | SLOT45_TYPE=-1 671 | SLOT0_TYPE=-1 672 | SLOT45_SEND_VALUE=false 673 | SLOT151_COMMAND=Off 674 | SLOT104_TYPE=-1 675 | SLOT78_TYPE=-1 676 | SLOT158_MIDI_CHANNEL=0 677 | SLOT59_MIDI_CHANNEL=0 678 | SLOT8_KNOB_MODE=0 679 | SLOT55_NUMBER=0 680 | SLOT64_COMMAND=Off 681 | SLOT25_KNOB_MODE=0 682 | SLOT26_MIDI_CHANNEL=0 683 | SLOT98_COMMAND=Off 684 | SLOT163_MIDI_CHANNEL=0 685 | SLOT64_MIDI_CHANNEL=0 686 | SLOT3_MIDI_CHANNEL=0 687 | SLOT35_TYPE=-1 688 | SLOT145_SEND_VALUE=false 689 | SLOT115_NUMBER=0 690 | SLOT68_TYPE=-1 691 | SLOT24_SEND_VALUE=false 692 | SLOT142_KNOB_MODE=0 693 | SLOT198_KNOB_MODE=0 694 | SLOT31_MIDI_CHANNEL=0 695 | SLOT127_TYPE=-1 696 | SLOT154_NUMBER=0 697 | SLOT2_KNOB_MODE=0 698 | SLOT24_COMMAND=Off 699 | SLOT75_KNOB_MODE=0 700 | SLOT148_MIDI_CHANNEL=0 701 | SLOT81_COMMAND=Off 702 | SLOT49_MIDI_CHANNEL=0 703 | SLOT124_SEND_VALUE=false 704 | SLOT136_COMMAND=Off 705 | SLOT117_TYPE=-1 706 | SLOT186_MIDI_CHANNEL=0 707 | SLOT193_COMMAND=Off 708 | SLOT17_SEND_VALUE=false 709 | SLOT53_NUMBER=0 710 | SLOT126_KNOB_MODE=0 711 | SLOT8_NUMBER=25 712 | SLOT192_KNOB_MODE=0 713 | SLOT49_COMMAND=Off 714 | SLOT153_MIDI_CHANNEL=0 715 | SLOT54_MIDI_CHANNEL=0 716 | SLOT1_COMMAND=Off 717 | SLOT191_MIDI_CHANNEL=0 718 | SLOT113_NUMBER=0 719 | SLOT69_NUMBER=0 720 | SLOT59_KNOB_MODE=0 721 | SLOT117_SEND_VALUE=false 722 | SLOT12_NUMBER=29 723 | SLOT129_NUMBER=0 724 | SLOT120_KNOB_MODE=0 725 | SLOT176_KNOB_MODE=0 726 | SLOT105_KNOB_MODE=0 727 | SLOT29_TYPE=-1 728 | SLOT39_MIDI_CHANNEL=0 729 | SLOT32_COMMAND=Off 730 | SLOT176_MIDI_CHANNEL=0 731 | SLOT66_COMMAND=Off 732 | SLOT77_MIDI_CHANNEL=0 733 | SLOT51_NUMBER=0 734 | SLOT144_COMMAND=Off 735 | SLOT6_NUMBER=23 736 | SLOT178_COMMAND=Off 737 | SLOT53_KNOB_MODE=0 738 | SLOT38_KNOB_MODE=0 739 | SLOT28_NUMBER=0 740 | SLOT44_MIDI_CHANNEL=0 741 | SLOT181_MIDI_CHANNEL=0 742 | SLOT111_NUMBER=0 743 | SLOT82_MIDI_CHANNEL=0 744 | SLOT19_TYPE=-1 745 | SLOT67_NUMBER=0 746 | SLOT170_KNOB_MODE=0 747 | SLOT174_NUMBER=0 748 | SLOT10_NUMBER=27 749 | SLOT171_TYPE=-1 750 | SLOT84_SEND_VALUE=false 751 | SLOT127_NUMBER=0 752 | SLOT199_MIDI_CHANNEL=0 753 | SLOT98_SEND_VALUE=false 754 | SLOT1_SEND_VALUE=true 755 | SLOT104_COMMAND=Off 756 | SLOT32_KNOB_MODE=0 757 | SLOT161_COMMAND=Off 758 | SLOT166_MIDI_CHANNEL=0 759 | SLOT67_MIDI_CHANNEL=0 760 | SLOT17_COMMAND=Off 761 | SLOT6_MIDI_CHANNEL=0 762 | SLOT74_COMMAND=Off 763 | SLOT26_NUMBER=0 764 | SLOT139_KNOB_MODE=0 765 | SLOT172_SEND_VALUE=false 766 | SLOT129_COMMAND=Off 767 | SLOT161_TYPE=-1 768 | SLOT51_SEND_VALUE=false 769 | SLOT198_SEND_VALUE=false 770 | SLOT186_COMMAND=Off 771 | SLOT171_MIDI_CHANNEL=0 772 | SLOT72_MIDI_CHANNEL=0 773 | SLOT194_TYPE=-1 774 | SLOT77_SEND_VALUE=false 775 | SLOT6_SEND_VALUE=true 776 | SLOT172_NUMBER=0 777 | SLOT16_KNOB_MODE=0 778 | SLOT50_TYPE=-1 779 | SLOT189_MIDI_CHANNEL=0 780 | SLOT151_SEND_VALUE=false 781 | SLOT184_TYPE=-1 782 | SLOT133_KNOB_MODE=0 783 | SLOT30_SEND_VALUE=false 784 | SLOT189_KNOB_MODE=0 785 | SLOT177_SEND_VALUE=false 786 | SLOT112_COMMAND=Off 787 | SLOT71_NUMBER=0 788 | SLOT56_SEND_VALUE=false 789 | SLOT188_NUMBER=0 790 | SLOT146_COMMAND=Off 791 | SLOT57_MIDI_CHANNEL=0 792 | SLOT194_MIDI_CHANNEL=0 793 | SLOT95_MIDI_CHANNEL=0 794 | SLOT40_TYPE=-1 795 | SLOT24_NUMBER=0 796 | SLOT73_TYPE=-1 797 | SLOT10_KNOB_MODE=0 798 | SLOT66_KNOB_MODE=0 799 | SLOT131_NUMBER=0 800 | SLOT59_COMMAND=Off 801 | SLOT161_MIDI_CHANNEL=0 802 | SLOT62_MIDI_CHANNEL=0 803 | SLOT1_MIDI_CHANNEL=0 804 | SLOT130_SEND_VALUE=false 805 | SLOT87_NUMBER=0 806 | SLOT156_SEND_VALUE=false 807 | SLOT117_KNOB_MODE=0 808 | SLOT183_KNOB_MODE=0 809 | SLOT35_SEND_VALUE=false 810 | SLOT30_TYPE=-1 811 | SLOT147_NUMBER=0 812 | SLOT63_TYPE=-1 813 | SLOT122_TYPE=-1 814 | SLOT179_MIDI_CHANNEL=0 815 | SLOT96_TYPE=-1 816 | SLOT155_TYPE=-1 817 | SLOT60_KNOB_MODE=0 818 | SLOT42_COMMAND=Off 819 | SLOT135_SEND_VALUE=false 820 | SLOT184_MIDI_CHANNEL=0 821 | SLOT85_MIDI_CHANNEL=0 822 | SLOT154_COMMAND=Off 823 | SLOT14_SEND_VALUE=true 824 | SLOT28_SEND_VALUE=false 825 | SLOT111_KNOB_MODE=0 826 | SLOT167_KNOB_MODE=0 827 | SLOT188_COMMAND=Off 828 | SLOT112_TYPE=-1 829 | SLOT86_TYPE=-1 830 | SLOT145_TYPE=-1 831 | SLOT85_NUMBER=0 832 | SLOT90_MIDI_CHANNEL=0 833 | SLOT178_TYPE=-1 834 | SLOT44_KNOB_MODE=0 835 | SLOT29_KNOB_MODE=0 836 | SLOT102_SEND_VALUE=false 837 | SLOT145_NUMBER=0 838 | SLOT114_SEND_VALUE=false 839 | SLOT128_SEND_VALUE=false 840 | SLOT9_MIDI_CHANNEL=0 841 | SLOT114_COMMAND=Off 842 | SLOT135_TYPE=-1 843 | SLOT161_KNOB_MODE=0 844 | SLOT171_COMMAND=Off 845 | SLOT168_TYPE=-1 846 | SLOT44_NUMBER=0 847 | SLOT174_MIDI_CHANNEL=0 848 | SLOT75_MIDI_CHANNEL=0 849 | SLOT27_COMMAND=Off 850 | SLOT90_SEND_VALUE=false 851 | SLOT84_COMMAND=Off 852 | SLOT24_TYPE=-1 853 | SLOT139_COMMAND=Off 854 | SLOT23_KNOB_MODE=0 855 | SLOT94_KNOB_MODE=0 856 | SLOT57_TYPE=-1 857 | SLOT107_SEND_VALUE=false 858 | SLOT196_COMMAND=Off 859 | SLOT104_NUMBER=0 860 | SLOT80_MIDI_CHANNEL=0 861 | SLOT190_NUMBER=0 862 | SLOT145_KNOB_MODE=0 863 | SLOT4_COMMAND=Device\: Set Parameter 5 864 | SLOT190_SEND_VALUE=false 865 | SLOT14_TYPE=-1 866 | SLOT47_TYPE=-1 867 | SLOT2_TYPE=-1 868 | SLOT197_MIDI_CHANNEL=0 869 | SLOT10_COMMAND=Device\: Set Parameter 7 870 | SLOT5_KNOB_MODE=0 871 | SLOT106_TYPE=-1 872 | SLOT95_SEND_VALUE=false 873 | SLOT98_MIDI_CHANNEL=0 874 | SLOT78_KNOB_MODE=0 875 | SLOT122_COMMAND=Off 876 | SLOT42_NUMBER=0 877 | SLOT156_COMMAND=Off 878 | SLOT65_MIDI_CHANNEL=0 879 | SLOT4_MIDI_CHANNEL=0 880 | SLOT195_KNOB_MODE=0 881 | SLOT124_KNOB_MODE=0 882 | SLOT69_COMMAND=Off 883 | SLOT37_TYPE=-1 884 | SLOT102_NUMBER=0 885 | SLOT195_SEND_VALUE=false 886 | SLOT70_MIDI_CHANNEL=0 887 | SLOT62_SEND_VALUE=false 888 | SLOT129_TYPE=-1 889 | SLOT58_NUMBER=0 890 | SLOT88_SEND_VALUE=false 891 | SLOT72_KNOB_MODE=0 892 | SLOT57_KNOB_MODE=0 893 | SLOT118_NUMBER=0 894 | SLOT187_MIDI_CHANNEL=0 895 | SLOT88_MIDI_CHANNEL=0 896 | SLOT162_SEND_VALUE=false 897 | SLOT108_KNOB_MODE=0 898 | SLOT119_TYPE=-1 899 | SLOT41_SEND_VALUE=false 900 | SLOT188_SEND_VALUE=false 901 | SLOT40_NUMBER=0 902 | SLOT52_COMMAND=Off 903 | SLOT107_COMMAND=Off 904 | SLOT67_SEND_VALUE=false 905 | SLOT192_MIDI_CHANNEL=0 906 | SLOT104_MIDI_CHANNEL=0 907 | SLOT93_MIDI_CHANNEL=0 908 | SLOT17_NUMBER=0 909 | SLOT164_COMMAND=Off 910 | SLOT198_COMMAND=Off 911 | SLOT100_NUMBER=0 912 | SLOT51_KNOB_MODE=0 913 | SLOT5_TYPE=-1 914 | SLOT56_NUMBER=0 915 | SLOT141_SEND_VALUE=false 916 | SLOT163_NUMBER=0 917 | SLOT20_SEND_VALUE=false 918 | SLOT102_KNOB_MODE=0 919 | SLOT167_SEND_VALUE=false 920 | SLOT158_KNOB_MODE=0 921 | SLOT46_SEND_VALUE=false 922 | SLOT116_NUMBER=0 923 | SLOT78_MIDI_CHANNEL=0 924 | SLOT124_COMMAND=Off 925 | SLOT35_KNOB_MODE=0 926 | SLOT179_NUMBER=0 927 | SLOT181_COMMAND=Off 928 | SLOT91_TYPE=-1 929 | SLOT120_SEND_VALUE=false 930 | SLOT150_TYPE=-1 931 | SLOT15_NUMBER=0 932 | SLOT37_COMMAND=Off 933 | SLOT83_MIDI_CHANNEL=0 934 | SLOT146_SEND_VALUE=false 935 | SLOT94_COMMAND=Off 936 | SLOT25_SEND_VALUE=false 937 | SLOT152_KNOB_MODE=0 938 | SLOT149_COMMAND=Off 939 | SLOT161_NUMBER=0 940 | SLOT81_TYPE=-1 941 | SLOT140_TYPE=-1 942 | SLOT85_KNOB_MODE=0 943 | SLOT173_TYPE=-1 944 | SLOT125_SEND_VALUE=false 945 | SLOT139_SEND_VALUE=false 946 | SLOT20_COMMAND=Off 947 | SLOT18_SEND_VALUE=false 948 | SLOT60_NUMBER=0 949 | SLOT117_MIDI_CHANNEL=0 950 | SLOT136_KNOB_MODE=0 951 | SLOT177_NUMBER=0 952 | SLOT109_COMMAND=Off 953 | SLOT132_COMMAND=Off 954 | SLOT166_COMMAND=Off 955 | SLOT13_NUMBER=30 956 | SLOT120_NUMBER=0 957 | SLOT163_TYPE=-1 958 | SLOT196_TYPE=-1 959 | SLOT69_KNOB_MODE=0 960 | SLOT79_COMMAND=Off 961 | SLOT76_NUMBER=0 962 | SLOT118_SEND_VALUE=false 963 | SLOT29_NUMBER=0 964 | SLOT52_TYPE=-1 965 | SLOT130_KNOB_MODE=0 966 | SLOT186_KNOB_MODE=0 967 | SLOT136_NUMBER=0 968 | SLOT115_KNOB_MODE=0 969 | SLOT186_TYPE=-1 970 | SLOT80_SEND_VALUE=false 971 | SLOT107_MIDI_CHANNEL=0 972 | SLOT96_MIDI_CHANNEL=0 973 | SLOT63_KNOB_MODE=0 974 | SLOT48_KNOB_MODE=0 975 | SLOT42_TYPE=-1 976 | SLOT62_COMMAND=Off 977 | SLOT117_COMMAND=Off 978 | SLOT101_TYPE=-1 979 | SLOT75_TYPE=-1 980 | SLOT174_COMMAND=Off 981 | SLOT112_MIDI_CHANNEL=0 982 | SLOT180_KNOB_MODE=0 983 | SLOT74_NUMBER=0 984 | SLOT180_SEND_VALUE=false 985 | SLOT181_NUMBER=0 986 | SLOT87_COMMAND=Off 987 | SLOT73_SEND_VALUE=false 988 | SLOT32_TYPE=-1 989 | SLOT99_SEND_VALUE=false 990 | SLOT134_NUMBER=0 991 | SLOT2_SEND_VALUE=true 992 | SLOT65_TYPE=-1 993 | SLOT42_KNOB_MODE=0 994 | SLOT124_TYPE=-1 995 | SLOT98_TYPE=-1 996 | SLOT157_TYPE=-1 997 | SLOT197_NUMBER=0 998 | SLOT100_COMMAND=Off 999 | SLOT134_COMMAND=Off 1000 | SLOT164_KNOB_MODE=0 1001 | SLOT149_KNOB_MODE=0 1002 | SLOT173_SEND_VALUE=false 1003 | SLOT191_COMMAND=Off 1004 | SLOT33_NUMBER=0 1005 | SLOT52_SEND_VALUE=false 1006 | SLOT199_SEND_VALUE=false 1007 | SLOT47_COMMAND=Off 1008 | SLOT78_SEND_VALUE=false 1009 | SLOT70_COMMAND=Off 1010 | SLOT102_MIDI_CHANNEL=0 1011 | SLOT114_TYPE=-1 1012 | SLOT88_TYPE=-1 1013 | SLOT9_KNOB_MODE=0 1014 | SLOT7_SEND_VALUE=true 1015 | SLOT147_TYPE=-1 1016 | SLOT159_COMMAND=Off 1017 | SLOT97_KNOB_MODE=0 1018 | SLOT26_KNOB_MODE=0 1019 | SLOT49_NUMBER=0 1020 | SLOT152_SEND_VALUE=false 1021 | SLOT143_KNOB_MODE=0 1022 | SLOT31_SEND_VALUE=false 1023 | SLOT178_SEND_VALUE=false 1024 | SLOT109_NUMBER=0 1025 | SLOT57_SEND_VALUE=false 1026 | SLOT195_NUMBER=0 1027 | SLOT137_TYPE=-1 1028 | SLOT30_COMMAND=Off 1029 | SLOT31_NUMBER=0 1030 | SLOT125_MIDI_CHANNEL=0 1031 | SLOT119_COMMAND=Off 1032 | SLOT91_KNOB_MODE=0 1033 | SLOT20_KNOB_MODE=0 1034 | SLOT76_KNOB_MODE=0 1035 | SLOT142_COMMAND=Off 1036 | SLOT176_COMMAND=Off 1037 | SLOT26_TYPE=-1 1038 | SLOT131_SEND_VALUE=false 1039 | SLOT94_NUMBER=0 1040 | SLOT59_TYPE=-1 1041 | SLOT10_SEND_VALUE=true 1042 | SLOT157_SEND_VALUE=false 1043 | SLOT130_MIDI_CHANNEL=0 1044 | SLOT55_COMMAND=Off 1045 | SLOT127_KNOB_MODE=0 1046 | SLOT36_SEND_VALUE=false 1047 | SLOT89_COMMAND=Off 1048 | SLOT47_NUMBER=0 1049 | SLOT16_TYPE=-1 1050 | SLOT107_NUMBER=0 1051 | SLOT9_COMMAND=Device\: Set Parameter 3 1052 | SLOT70_KNOB_MODE=0 1053 | SLOT102_COMMAND=Off 1054 | SLOT49_TYPE=-1 1055 | SLOT110_SEND_VALUE=false 1056 | SLOT193_NUMBER=0 1057 | SLOT108_TYPE=-1 1058 | SLOT136_SEND_VALUE=false 1059 | SLOT15_SEND_VALUE=false 1060 | SLOT115_MIDI_CHANNEL=0 1061 | SLOT29_SEND_VALUE=false 1062 | SLOT16_MIDI_CHANNEL=0 1063 | SLOT121_KNOB_MODE=0 1064 | SLOT15_COMMAND=Off 1065 | SLOT177_KNOB_MODE=0 1066 | SLOT106_KNOB_MODE=0 1067 | SLOT72_COMMAND=Off 1068 | SLOT127_COMMAND=Off 1069 | SLOT92_NUMBER=0 1070 | SLOT184_COMMAND=Off 1071 | SLOT39_TYPE=-1 1072 | SLOT120_MIDI_CHANNEL=0 1073 | SLOT21_MIDI_CHANNEL=0 1074 | SLOT54_KNOB_MODE=0 1075 | SLOT103_SEND_VALUE=false 1076 | SLOT39_KNOB_MODE=0 1077 | SLOT152_NUMBER=0 1078 | SLOT97_COMMAND=Off 1079 | SLOT129_SEND_VALUE=false 1080 | SLOT191_TYPE=-1 1081 | SLOT171_KNOB_MODE=0 1082 | SLOT138_MIDI_CHANNEL=0 1083 | SLOT110_COMMAND=Off 1084 | SLOT168_NUMBER=0 1085 | SLOT105_MIDI_CHANNEL=0 1086 | SLOT91_SEND_VALUE=false 1087 | SLOT143_MIDI_CHANNEL=0 1088 | SLOT33_KNOB_MODE=0 1089 | SLOT181_TYPE=-1 1090 | SLOT108_SEND_VALUE=false 1091 | SLOT23_COMMAND=Off 1092 | SLOT90_NUMBER=0 1093 | SLOT57_COMMAND=Off 1094 | SLOT80_COMMAND=Off 1095 | SLOT110_MIDI_CHANNEL=0 1096 | SLOT11_MIDI_CHANNEL=0 1097 | SLOT169_COMMAND=Off 1098 | SLOT155_KNOB_MODE=0 1099 | SLOT7_TYPE=0 1100 | SLOT70_TYPE=-1 1101 | SLOT150_NUMBER=0 1102 | SLOT191_SEND_VALUE=false 1103 | SLOT70_SEND_VALUE=false 1104 | SLOT0_COMMAND=Off 1105 | SLOT96_SEND_VALUE=false 1106 | SLOT128_MIDI_CHANNEL=0 1107 | SLOT17_KNOB_MODE=0 1108 | SLOT88_KNOB_MODE=0 1109 | SLOT29_MIDI_CHANNEL=0 1110 | SLOT166_NUMBER=0 1111 | SLOT60_TYPE=-1 1112 | SLOT40_COMMAND=Off 1113 | SLOT4_NUMBER=21 1114 | SLOT93_TYPE=-1 1115 | SLOT134_KNOB_MODE=0 1116 | SLOT133_MIDI_CHANNEL=0 1117 | SLOT34_MIDI_CHANNEL=0 1118 | SLOT152_COMMAND=Off 1119 | SLOT152_TYPE=-1 1120 | SLOT170_SEND_VALUE=false 1121 | SLOT184_SEND_VALUE=false 1122 | SLOT63_SEND_VALUE=false 1123 | SLOT100_MIDI_CHANNEL=0 1124 | SLOT89_SEND_VALUE=false 1125 | SLOT65_NUMBER=0 1126 | SLOT65_COMMAND=Off 1127 | SLOT99_COMMAND=Off 1128 | SLOT82_KNOB_MODE=0 1129 | SLOT11_KNOB_MODE=0 1130 | SLOT67_KNOB_MODE=0 1131 | SLOT18_NUMBER=0 1132 | SLOT83_TYPE=-1 1133 | SLOT125_NUMBER=0 1134 | SLOT142_TYPE=-1 1135 | SLOT175_TYPE=-1 1136 | SLOT163_SEND_VALUE=false 1137 | SLOT118_KNOB_MODE=0 1138 | SLOT118_MIDI_CHANNEL=0 1139 | SLOT19_MIDI_CHANNEL=0 1140 | SLOT42_SEND_VALUE=false 1141 | SLOT189_SEND_VALUE=false 1142 | SLOT156_MIDI_CHANNEL=0 1143 | SLOT68_SEND_VALUE=false 1144 | SLOT2_NUMBER=14 1145 | SLOT123_MIDI_CHANNEL=0 1146 | SLOT25_COMMAND=Off 1147 | SLOT24_MIDI_CHANNEL=0 1148 | SLOT132_TYPE=-1 1149 | SLOT61_KNOB_MODE=0 1150 | SLOT82_COMMAND=Off 1151 | SLOT137_COMMAND=Off 1152 | SLOT165_TYPE=-1 1153 | SLOT198_TYPE=-1 1154 | SLOT194_COMMAND=Off 1155 | SLOT63_NUMBER=0 1156 | SLOT142_SEND_VALUE=false 1157 | SLOT170_NUMBER=0 1158 | SLOT21_SEND_VALUE=false 1159 | SLOT112_KNOB_MODE=0 1160 | SLOT168_SEND_VALUE=false 1161 | SLOT168_KNOB_MODE=0 1162 | SLOT21_TYPE=-1 1163 | SLOT47_SEND_VALUE=false 1164 | SLOT2_COMMAND=Off 1165 | SLOT54_TYPE=-1 1166 | SLOT123_NUMBER=0 1167 | SLOT79_NUMBER=0 1168 | SLOT45_KNOB_MODE=0 1169 | SLOT188_TYPE=-1 1170 | SLOT186_NUMBER=0 1171 | SLOT146_MIDI_CHANNEL=0 1172 | SLOT47_MIDI_CHANNEL=0 1173 | SLOT121_SEND_VALUE=false 1174 | SLOT0_NUMBER=3 1175 | SLOT120_COMMAND=Off 1176 | SLOT11_TYPE=-1 1177 | SLOT22_NUMBER=0 1178 | SLOT147_SEND_VALUE=false 1179 | SLOT139_NUMBER=0 1180 | SLOT44_TYPE=-1 1181 | SLOT113_MIDI_CHANNEL=0 1182 | SLOT14_MIDI_CHANNEL=0 1183 | SLOT26_SEND_VALUE=false 1184 | SLOT162_KNOB_MODE=0 1185 | SLOT103_TYPE=-1 1186 | SLOT77_TYPE=-1 1187 | SLOT151_MIDI_CHANNEL=0 1188 | SLOT52_MIDI_CHANNEL=0 1189 | SLOT33_COMMAND=Off 1190 | SLOT67_COMMAND=Off 1191 | SLOT90_COMMAND=Off 1192 | SLOT179_COMMAND=Off 1193 | SLOT38_NUMBER=0 1194 | SLOT95_KNOB_MODE=0 1195 | SLOT100_SEND_VALUE=false 1196 | SLOT34_TYPE=-1 1197 | SLOT126_SEND_VALUE=false 1198 | SLOT169_MIDI_CHANNEL=0 1199 | SLOT67_TYPE=-1 1200 | SLOT126_TYPE=-1 1201 | SLOT19_SEND_VALUE=false 1202 | SLOT146_KNOB_MODE=0 1203 | -------------------------------------------------------------------------------- /Bitwig/Touch Block.flexi: -------------------------------------------------------------------------------- 1 | #Generic Flexi 2 | #Wed May 08 23:57:37 CEST 2019 3 | SLOT159_TYPE=-1 4 | SLOT184_NUMBER=0 5 | SLOT136_MIDI_CHANNEL=0 6 | SLOT37_MIDI_CHANNEL=0 7 | SLOT20_NUMBER=9 8 | SLOT50_COMMAND=Browser\: Select Next Filter in Column 2 9 | SLOT105_COMMAND=Off 10 | SLOT6_KNOB_MODE=0 11 | SLOT162_COMMAND=Off 12 | SLOT141_MIDI_CHANNEL=0 13 | SLOT79_KNOB_MODE=0 14 | SLOT42_MIDI_CHANNEL=0 15 | SLOT116_TYPE=-1 16 | SLOT83_NUMBER=0 17 | SLOT119_SEND_VALUE=false 18 | SLOT149_TYPE=-1 19 | SLOT18_COMMAND=Off 20 | SLOT75_COMMAND=Off 21 | SLOT36_NUMBER=0 22 | SLOT140_KNOB_MODE=0 23 | SLOT196_KNOB_MODE=0 24 | SLOT125_KNOB_MODE=0 25 | SLOT143_NUMBER=0 26 | SLOT159_MIDI_CHANNEL=0 27 | SLOT99_NUMBER=0 28 | SLOT81_SEND_VALUE=false 29 | SLOT0_KNOB_MODE=0 30 | SLOT182_NUMBER=0 31 | SLOT139_TYPE=-1 32 | SLOT126_MIDI_CHANNEL=0 33 | SLOT73_KNOB_MODE=0 34 | SLOT58_KNOB_MODE=0 35 | SLOT27_MIDI_CHANNEL=0 36 | SLOT164_MIDI_CHANNEL=0 37 | SLOT159_NUMBER=0 38 | SLOT35_COMMAND=Off 39 | SLOT131_MIDI_CHANNEL=0 40 | SLOT109_KNOB_MODE=0 41 | SLOT28_TYPE=-1 42 | SLOT190_KNOB_MODE=0 43 | SLOT32_MIDI_CHANNEL=10 44 | SLOT81_NUMBER=0 45 | SLOT92_COMMAND=Off 46 | SLOT198_NUMBER=0 47 | SLOT181_SEND_VALUE=false 48 | SLOT147_COMMAND=Off 49 | SLOT60_SEND_VALUE=false 50 | SLOT74_SEND_VALUE=false 51 | SLOT3_SEND_VALUE=false 52 | SLOT141_NUMBER=0 53 | SLOT52_KNOB_MODE=0 54 | SLOT149_MIDI_CHANNEL=0 55 | SLOT97_NUMBER=0 56 | SLOT18_TYPE=-1 57 | SLOT103_KNOB_MODE=0 58 | SLOT174_KNOB_MODE=0 59 | SLOT159_KNOB_MODE=0 60 | SLOT174_SEND_VALUE=false 61 | SLOT157_NUMBER=0 62 | SLOT154_MIDI_CHANNEL=0 63 | SLOT53_SEND_VALUE=true 64 | SLOT55_MIDI_CHANNEL=10 65 | SLOT130_COMMAND=Off 66 | SLOT170_TYPE=-1 67 | SLOT79_SEND_VALUE=false 68 | SLOT8_SEND_VALUE=false 69 | SLOT22_MIDI_CHANNEL=0 70 | SLOT36_KNOB_MODE=0 71 | SLOT43_COMMAND=Browser\: Select Previous Filter in Column 5 72 | SLOT60_MIDI_CHANNEL=0 73 | SLOT77_COMMAND=Off 74 | SLOT153_SEND_VALUE=false 75 | SLOT189_COMMAND=Off 76 | SLOT160_TYPE=-1 77 | SLOT153_KNOB_MODE=0 78 | SLOT32_SEND_VALUE=true 79 | SLOT179_SEND_VALUE=false 80 | SLOT193_TYPE=-1 81 | SLOT139_MIDI_CHANNEL=0 82 | SLOT95_NUMBER=0 83 | SLOT58_SEND_VALUE=false 84 | SLOT177_MIDI_CHANNEL=0 85 | SLOT30_KNOB_MODE=0 86 | SLOT155_NUMBER=0 87 | SLOT86_KNOB_MODE=0 88 | SLOT144_MIDI_CHANNEL=0 89 | SLOT45_MIDI_CHANNEL=0 90 | SLOT182_MIDI_CHANNEL=0 91 | SLOT132_SEND_VALUE=false 92 | SLOT60_COMMAND=Off 93 | SLOT183_TYPE=-1 94 | SLOT115_COMMAND=Off 95 | SLOT11_SEND_VALUE=true 96 | SLOT158_SEND_VALUE=false 97 | SLOT137_KNOB_MODE=0 98 | SLOT172_COMMAND=Off 99 | SLOT37_SEND_VALUE=false 100 | SLOT50_MIDI_CHANNEL=10 101 | SLOT54_NUMBER=45 102 | SLOT28_COMMAND=Off 103 | SLOT9_NUMBER=89 104 | SLOT9_TYPE=0 105 | SLOT72_TYPE=-1 106 | SLOT85_COMMAND=Off 107 | SLOT14_KNOB_MODE=0 108 | SLOT80_KNOB_MODE=0 109 | SLOT197_COMMAND=Off 110 | SLOT114_NUMBER=0 111 | SLOT111_SEND_VALUE=false 112 | SLOT167_MIDI_CHANNEL=0 113 | SLOT68_MIDI_CHANNEL=0 114 | SLOT137_SEND_VALUE=false 115 | SLOT7_MIDI_CHANNEL=0 116 | SLOT5_COMMAND=Device\: Toggle Window 117 | SLOT131_KNOB_MODE=0 118 | SLOT187_KNOB_MODE=0 119 | SLOT35_MIDI_CHANNEL=0 120 | SLOT62_TYPE=-1 121 | SLOT121_TYPE=-1 122 | SLOT172_MIDI_CHANNEL=0 123 | SLOT95_TYPE=-1 124 | SLOT73_MIDI_CHANNEL=0 125 | SLOT11_COMMAND=Off 126 | SLOT154_TYPE=-1 127 | SLOT45_COMMAND=Browser\: Select Previous Filter in Column 7 128 | SLOT64_KNOB_MODE=0 129 | SLOT40_MIDI_CHANNEL=0 130 | SLOT104_SEND_VALUE=false 131 | SLOT52_NUMBER=43 132 | SLOT157_COMMAND=Off 133 | SLOT180_COMMAND=Off 134 | SLOT7_NUMBER=87 135 | SLOT111_TYPE=-1 136 | SLOT85_TYPE=-1 137 | SLOT181_KNOB_MODE=0 138 | SLOT112_NUMBER=0 139 | SLOT144_TYPE=-1 140 | SLOT157_MIDI_CHANNEL=0 141 | SLOT177_TYPE=-1 142 | SLOT58_MIDI_CHANNEL=0 143 | SLOT68_NUMBER=0 144 | SLOT195_MIDI_CHANNEL=0 145 | SLOT175_NUMBER=0 146 | SLOT92_SEND_VALUE=false 147 | SLOT109_SEND_VALUE=false 148 | SLOT11_NUMBER=14 149 | SLOT162_MIDI_CHANNEL=0 150 | SLOT128_NUMBER=0 151 | SLOT63_MIDI_CHANNEL=0 152 | SLOT140_COMMAND=Off 153 | SLOT2_MIDI_CHANNEL=0 154 | SLOT134_TYPE=-1 155 | SLOT167_TYPE=-1 156 | SLOT165_KNOB_MODE=0 157 | SLOT53_COMMAND=Browser\: Select Next Filter in Column 5 158 | SLOT108_COMMAND=Off 159 | SLOT5_NUMBER=85 160 | SLOT192_SEND_VALUE=false 161 | SLOT27_NUMBER=0 162 | SLOT165_COMMAND=Off 163 | SLOT71_SEND_VALUE=false 164 | SLOT23_TYPE=1 165 | SLOT85_SEND_VALUE=false 166 | SLOT199_COMMAND=Off 167 | SLOT56_TYPE=1 168 | SLOT97_SEND_VALUE=false 169 | SLOT0_SEND_VALUE=false 170 | SLOT27_KNOB_MODE=0 171 | SLOT98_KNOB_MODE=0 172 | SLOT48_MIDI_CHANNEL=0 173 | SLOT7_COMMAND=Browser\: Browse Presets 174 | SLOT185_MIDI_CHANNEL=0 175 | SLOT173_NUMBER=0 176 | SLOT86_MIDI_CHANNEL=0 177 | SLOT144_KNOB_MODE=0 178 | SLOT171_SEND_VALUE=false 179 | SLOT13_TYPE=-1 180 | SLOT185_SEND_VALUE=false 181 | SLOT13_COMMAND=Off 182 | SLOT53_MIDI_CHANNEL=10 183 | SLOT46_TYPE=1 184 | SLOT64_SEND_VALUE=false 185 | SLOT1_TYPE=0 186 | SLOT190_MIDI_CHANNEL=0 187 | SLOT105_TYPE=-1 188 | SLOT91_MIDI_CHANNEL=0 189 | SLOT79_TYPE=-1 190 | SLOT125_COMMAND=Off 191 | SLOT72_NUMBER=0 192 | SLOT189_NUMBER=0 193 | SLOT182_COMMAND=Off 194 | SLOT92_KNOB_MODE=0 195 | SLOT21_KNOB_MODE=0 196 | SLOT77_KNOB_MODE=0 197 | SLOT38_COMMAND=Off 198 | SLOT25_NUMBER=14 199 | SLOT132_NUMBER=0 200 | SLOT95_COMMAND=Off 201 | SLOT36_TYPE=-1 202 | SLOT164_SEND_VALUE=false 203 | SLOT199_KNOB_MODE=0 204 | SLOT128_KNOB_MODE=0 205 | SLOT69_TYPE=-1 206 | SLOT88_NUMBER=0 207 | SLOT43_SEND_VALUE=true 208 | SLOT128_TYPE=-1 209 | SLOT69_SEND_VALUE=false 210 | SLOT171_NUMBER=0 211 | SLOT175_MIDI_CHANNEL=0 212 | SLOT76_MIDI_CHANNEL=0 213 | SLOT3_KNOB_MODE=0 214 | SLOT148_NUMBER=0 215 | SLOT71_KNOB_MODE=0 216 | SLOT180_MIDI_CHANNEL=0 217 | SLOT81_MIDI_CHANNEL=0 218 | SLOT21_COMMAND=Device\: Select Previous Parameter Bank 219 | SLOT143_SEND_VALUE=false 220 | SLOT70_NUMBER=0 221 | SLOT118_TYPE=-1 222 | SLOT187_NUMBER=0 223 | SLOT22_SEND_VALUE=true 224 | SLOT193_KNOB_MODE=0 225 | SLOT122_KNOB_MODE=0 226 | SLOT169_SEND_VALUE=false 227 | SLOT133_COMMAND=Off 228 | SLOT178_KNOB_MODE=0 229 | SLOT167_COMMAND=Off 230 | SLOT48_SEND_VALUE=false 231 | SLOT190_COMMAND=Off 232 | SLOT130_NUMBER=0 233 | SLOT198_MIDI_CHANNEL=0 234 | SLOT99_MIDI_CHANNEL=0 235 | SLOT86_NUMBER=0 236 | SLOT55_KNOB_MODE=0 237 | SLOT4_TYPE=0 238 | SLOT122_SEND_VALUE=false 239 | SLOT66_MIDI_CHANNEL=0 240 | SLOT5_MIDI_CHANNEL=0 241 | SLOT148_SEND_VALUE=false 242 | SLOT146_NUMBER=0 243 | SLOT27_SEND_VALUE=false 244 | SLOT172_KNOB_MODE=0 245 | SLOT170_MIDI_CHANNEL=0 246 | SLOT150_COMMAND=Off 247 | SLOT71_MIDI_CHANNEL=0 248 | SLOT45_NUMBER=38 249 | SLOT90_TYPE=-1 250 | SLOT63_COMMAND=Off 251 | SLOT101_SEND_VALUE=false 252 | SLOT118_COMMAND=Off 253 | SLOT115_SEND_VALUE=false 254 | SLOT175_COMMAND=Off 255 | SLOT188_MIDI_CHANNEL=0 256 | SLOT89_MIDI_CHANNEL=0 257 | SLOT105_NUMBER=0 258 | SLOT84_NUMBER=0 259 | SLOT100_KNOB_MODE=0 260 | SLOT156_KNOB_MODE=0 261 | SLOT191_NUMBER=0 262 | SLOT80_TYPE=-1 263 | SLOT193_MIDI_CHANNEL=0 264 | SLOT94_MIDI_CHANNEL=0 265 | SLOT144_NUMBER=0 266 | SLOT172_TYPE=-1 267 | SLOT18_KNOB_MODE=0 268 | SLOT89_KNOB_MODE=0 269 | SLOT61_MIDI_CHANNEL=0 270 | SLOT101_COMMAND=Off 271 | SLOT0_MIDI_CHANNEL=0 272 | SLOT135_COMMAND=Off 273 | SLOT192_COMMAND=Off 274 | SLOT43_NUMBER=36 275 | SLOT150_KNOB_MODE=0 276 | SLOT135_KNOB_MODE=0 277 | SLOT48_COMMAND=Off 278 | SLOT162_TYPE=-1 279 | SLOT82_SEND_VALUE=false 280 | SLOT79_MIDI_CHANNEL=0 281 | SLOT195_TYPE=-1 282 | SLOT103_NUMBER=0 283 | SLOT83_KNOB_MODE=0 284 | SLOT12_KNOB_MODE=0 285 | SLOT68_KNOB_MODE=0 286 | SLOT59_NUMBER=0 287 | SLOT51_TYPE=1 288 | SLOT183_MIDI_CHANNEL=0 289 | SLOT84_MIDI_CHANNEL=0 290 | SLOT119_KNOB_MODE=0 291 | SLOT119_NUMBER=0 292 | SLOT182_SEND_VALUE=false 293 | SLOT185_TYPE=-1 294 | SLOT196_SEND_VALUE=false 295 | SLOT75_SEND_VALUE=false 296 | SLOT31_COMMAND=Transport\: Rewind 297 | SLOT41_NUMBER=34 298 | SLOT4_SEND_VALUE=false 299 | SLOT143_COMMAND=Off 300 | SLOT41_TYPE=1 301 | SLOT177_COMMAND=Off 302 | SLOT100_TYPE=-1 303 | SLOT74_TYPE=-1 304 | SLOT101_NUMBER=0 305 | SLOT113_KNOB_MODE=0 306 | SLOT184_KNOB_MODE=0 307 | SLOT169_KNOB_MODE=0 308 | SLOT175_SEND_VALUE=false 309 | SLOT57_NUMBER=0 310 | SLOT54_SEND_VALUE=true 311 | SLOT164_NUMBER=0 312 | SLOT31_TYPE=1 313 | SLOT74_MIDI_CHANNEL=0 314 | SLOT64_TYPE=-1 315 | SLOT9_SEND_VALUE=false 316 | SLOT117_NUMBER=0 317 | SLOT123_TYPE=-1 318 | SLOT97_TYPE=-1 319 | SLOT103_COMMAND=Off 320 | SLOT46_KNOB_MODE=0 321 | SLOT156_TYPE=-1 322 | SLOT160_COMMAND=Off 323 | SLOT16_COMMAND=Off 324 | SLOT154_SEND_VALUE=false 325 | SLOT163_KNOB_MODE=0 326 | SLOT33_SEND_VALUE=true 327 | SLOT73_COMMAND=Off 328 | SLOT16_NUMBER=0 329 | SLOT128_COMMAND=Off 330 | SLOT59_SEND_VALUE=false 331 | SLOT113_TYPE=-1 332 | SLOT185_COMMAND=Off 333 | SLOT87_TYPE=-1 334 | SLOT146_TYPE=-1 335 | SLOT196_MIDI_CHANNEL=0 336 | SLOT108_MIDI_CHANNEL=0 337 | SLOT97_MIDI_CHANNEL=0 338 | SLOT179_TYPE=-1 339 | SLOT40_KNOB_MODE=0 340 | SLOT96_KNOB_MODE=0 341 | SLOT162_NUMBER=0 342 | SLOT133_SEND_VALUE=false 343 | SLOT12_SEND_VALUE=true 344 | SLOT159_SEND_VALUE=false 345 | SLOT147_KNOB_MODE=0 346 | SLOT38_SEND_VALUE=false 347 | SLOT136_TYPE=-1 348 | SLOT111_COMMAND=Off 349 | SLOT169_TYPE=-1 350 | SLOT61_NUMBER=0 351 | SLOT178_NUMBER=0 352 | SLOT145_COMMAND=Off 353 | SLOT7_KNOB_MODE=0 354 | SLOT14_NUMBER=28 355 | SLOT24_KNOB_MODE=0 356 | SLOT90_KNOB_MODE=0 357 | SLOT25_TYPE=1 358 | SLOT121_NUMBER=0 359 | SLOT112_SEND_VALUE=false 360 | SLOT58_COMMAND=Off 361 | SLOT58_TYPE=-1 362 | SLOT138_SEND_VALUE=false 363 | SLOT77_NUMBER=0 364 | SLOT87_MIDI_CHANNEL=0 365 | SLOT141_KNOB_MODE=0 366 | SLOT197_KNOB_MODE=0 367 | SLOT160_NUMBER=0 368 | SLOT137_NUMBER=0 369 | SLOT103_MIDI_CHANNEL=0 370 | SLOT15_TYPE=-1 371 | SLOT92_MIDI_CHANNEL=0 372 | SLOT1_KNOB_MODE=0 373 | SLOT48_TYPE=-1 374 | SLOT3_TYPE=0 375 | SLOT107_TYPE=-1 376 | SLOT74_KNOB_MODE=0 377 | SLOT105_SEND_VALUE=false 378 | SLOT176_NUMBER=0 379 | SLOT41_COMMAND=Browser\: Select Previous Filter in Column 8 380 | SLOT153_COMMAND=Off 381 | SLOT191_KNOB_MODE=0 382 | SLOT187_COMMAND=Off 383 | SLOT38_TYPE=-1 384 | SLOT75_NUMBER=0 385 | SLOT93_SEND_VALUE=false 386 | SLOT190_TYPE=-1 387 | SLOT135_NUMBER=0 388 | SLOT104_KNOB_MODE=0 389 | SLOT175_KNOB_MODE=0 390 | SLOT113_COMMAND=Off 391 | SLOT170_COMMAND=Off 392 | SLOT193_SEND_VALUE=false 393 | SLOT72_SEND_VALUE=false 394 | SLOT34_NUMBER=0 395 | SLOT86_SEND_VALUE=false 396 | SLOT26_COMMAND=Track\: Select Next Track 397 | SLOT180_TYPE=-1 398 | SLOT83_COMMAND=Off 399 | SLOT37_KNOB_MODE=0 400 | SLOT138_COMMAND=Off 401 | SLOT195_COMMAND=Off 402 | SLOT73_NUMBER=0 403 | SLOT180_NUMBER=0 404 | SLOT6_TYPE=0 405 | SLOT116_MIDI_CHANNEL=0 406 | SLOT160_SEND_VALUE=false 407 | SLOT17_MIDI_CHANNEL=0 408 | SLOT154_KNOB_MODE=0 409 | SLOT3_COMMAND=Device\: Select Previous Parameter Page 410 | SLOT186_SEND_VALUE=false 411 | SLOT133_NUMBER=0 412 | SLOT65_SEND_VALUE=false 413 | SLOT89_NUMBER=0 414 | SLOT121_MIDI_CHANNEL=0 415 | SLOT196_NUMBER=0 416 | SLOT31_KNOB_MODE=0 417 | SLOT87_KNOB_MODE=0 418 | SLOT121_COMMAND=Off 419 | SLOT32_NUMBER=19 420 | SLOT155_COMMAND=Off 421 | SLOT149_NUMBER=0 422 | SLOT92_TYPE=-1 423 | SLOT151_TYPE=-1 424 | SLOT165_SEND_VALUE=false 425 | SLOT138_KNOB_MODE=0 426 | SLOT34_COMMAND=Off 427 | SLOT44_SEND_VALUE=false 428 | SLOT68_COMMAND=Off 429 | SLOT91_COMMAND=Off 430 | SLOT48_NUMBER=0 431 | SLOT106_MIDI_CHANNEL=0 432 | SLOT15_KNOB_MODE=0 433 | SLOT82_TYPE=-1 434 | SLOT81_KNOB_MODE=0 435 | SLOT141_TYPE=-1 436 | SLOT174_TYPE=-1 437 | SLOT108_NUMBER=0 438 | SLOT144_SEND_VALUE=false 439 | SLOT111_MIDI_CHANNEL=0 440 | SLOT12_MIDI_CHANNEL=0 441 | SLOT194_NUMBER=0 442 | SLOT23_SEND_VALUE=true 443 | SLOT132_KNOB_MODE=0 444 | SLOT188_KNOB_MODE=0 445 | SLOT49_SEND_VALUE=true 446 | SLOT30_NUMBER=17 447 | SLOT51_COMMAND=Browser\: Select Next Filter in Column 8 448 | SLOT106_COMMAND=Off 449 | SLOT131_TYPE=-1 450 | SLOT163_COMMAND=Off 451 | SLOT164_TYPE=-1 452 | SLOT129_MIDI_CHANNEL=0 453 | SLOT65_KNOB_MODE=0 454 | SLOT93_NUMBER=0 455 | SLOT197_TYPE=-1 456 | SLOT19_COMMAND=Device\: Toggle Window 457 | SLOT123_SEND_VALUE=false 458 | SLOT76_COMMAND=Off 459 | SLOT46_NUMBER=39 460 | SLOT149_SEND_VALUE=false 461 | SLOT16_SEND_VALUE=false 462 | SLOT20_TYPE=1 463 | SLOT116_KNOB_MODE=0 464 | SLOT153_NUMBER=0 465 | SLOT134_MIDI_CHANNEL=0 466 | SLOT182_KNOB_MODE=0 467 | SLOT53_TYPE=1 468 | SLOT106_NUMBER=0 469 | SLOT101_MIDI_CHANNEL=0 470 | SLOT192_NUMBER=0 471 | SLOT187_TYPE=-1 472 | SLOT123_COMMAND=Off 473 | SLOT49_KNOB_MODE=0 474 | SLOT169_NUMBER=0 475 | SLOT116_SEND_VALUE=false 476 | SLOT10_TYPE=-1 477 | SLOT43_TYPE=1 478 | SLOT36_COMMAND=Off 479 | SLOT102_TYPE=-1 480 | SLOT76_TYPE=-1 481 | SLOT110_KNOB_MODE=0 482 | SLOT166_KNOB_MODE=0 483 | SLOT91_NUMBER=0 484 | SLOT93_COMMAND=Off 485 | SLOT119_MIDI_CHANNEL=0 486 | SLOT148_COMMAND=Off 487 | SLOT151_NUMBER=0 488 | SLOT124_MIDI_CHANNEL=0 489 | SLOT25_MIDI_CHANNEL=0 490 | SLOT33_TYPE=-1 491 | SLOT43_KNOB_MODE=0 492 | SLOT28_KNOB_MODE=0 493 | SLOT99_KNOB_MODE=0 494 | SLOT66_TYPE=-1 495 | SLOT125_TYPE=-1 496 | SLOT99_TYPE=-1 497 | SLOT158_TYPE=-1 498 | SLOT30_MIDI_CHANNEL=10 499 | SLOT160_KNOB_MODE=0 500 | SLOT50_NUMBER=41 501 | SLOT167_NUMBER=0 502 | SLOT131_COMMAND=Off 503 | SLOT83_SEND_VALUE=false 504 | SLOT110_NUMBER=0 505 | SLOT109_MIDI_CHANNEL=0 506 | SLOT115_TYPE=-1 507 | SLOT44_COMMAND=Browser\: Select Previous Filter in Column 6 508 | SLOT89_TYPE=-1 509 | SLOT93_KNOB_MODE=0 510 | SLOT22_KNOB_MODE=0 511 | SLOT147_MIDI_CHANNEL=0 512 | SLOT148_TYPE=-1 513 | SLOT78_COMMAND=Off 514 | SLOT66_NUMBER=0 515 | SLOT114_MIDI_CHANNEL=0 516 | SLOT19_NUMBER=8 517 | SLOT15_MIDI_CHANNEL=0 518 | SLOT129_KNOB_MODE=0 519 | SLOT126_NUMBER=0 520 | SLOT152_MIDI_CHANNEL=0 521 | SLOT183_SEND_VALUE=false 522 | SLOT50_SEND_VALUE=true 523 | SLOT197_SEND_VALUE=false 524 | SLOT76_SEND_VALUE=false 525 | SLOT138_TYPE=-1 526 | SLOT4_KNOB_MODE=0 527 | SLOT20_MIDI_CHANNEL=0 528 | SLOT5_SEND_VALUE=false 529 | SLOT165_NUMBER=0 530 | SLOT3_NUMBER=83 531 | SLOT61_COMMAND=Off 532 | SLOT116_COMMAND=Off 533 | SLOT27_TYPE=-1 534 | SLOT150_SEND_VALUE=false 535 | SLOT173_COMMAND=Off 536 | SLOT194_KNOB_MODE=0 537 | SLOT123_KNOB_MODE=0 538 | SLOT179_KNOB_MODE=0 539 | SLOT176_SEND_VALUE=false 540 | SLOT137_MIDI_CHANNEL=0 541 | SLOT64_NUMBER=0 542 | SLOT38_MIDI_CHANNEL=0 543 | SLOT55_SEND_VALUE=true 544 | SLOT29_COMMAND=Browser\: Browse Presets 545 | SLOT86_COMMAND=Off 546 | SLOT124_NUMBER=0 547 | SLOT142_MIDI_CHANNEL=0 548 | SLOT56_KNOB_MODE=0 549 | SLOT43_MIDI_CHANNEL=0 550 | SLOT17_TYPE=-1 551 | SLOT6_COMMAND=Browser\: Commit Selection 552 | SLOT109_TYPE=-1 553 | SLOT10_MIDI_CHANNEL=0 554 | SLOT155_SEND_VALUE=false 555 | SLOT107_KNOB_MODE=0 556 | SLOT1_NUMBER=81 557 | SLOT173_KNOB_MODE=0 558 | SLOT34_SEND_VALUE=false 559 | SLOT23_NUMBER=12 560 | SLOT12_COMMAND=Off 561 | SLOT46_COMMAND=Browser\: Select the previous preset 562 | SLOT127_MIDI_CHANNEL=0 563 | SLOT62_NUMBER=0 564 | SLOT158_COMMAND=Off 565 | SLOT50_KNOB_MODE=0 566 | SLOT28_MIDI_CHANNEL=0 567 | SLOT165_MIDI_CHANNEL=0 568 | SLOT39_NUMBER=32 569 | SLOT134_SEND_VALUE=false 570 | SLOT13_SEND_VALUE=true 571 | SLOT122_NUMBER=0 572 | SLOT192_TYPE=-1 573 | SLOT101_KNOB_MODE=0 574 | SLOT157_KNOB_MODE=0 575 | SLOT132_MIDI_CHANNEL=0 576 | SLOT33_MIDI_CHANNEL=10 577 | SLOT39_SEND_VALUE=true 578 | SLOT78_NUMBER=0 579 | SLOT185_NUMBER=0 580 | SLOT34_KNOB_MODE=0 581 | SLOT19_KNOB_MODE=0 582 | SLOT21_NUMBER=10 583 | SLOT138_NUMBER=0 584 | SLOT141_COMMAND=Off 585 | SLOT113_SEND_VALUE=false 586 | SLOT127_SEND_VALUE=false 587 | SLOT182_TYPE=-1 588 | SLOT151_KNOB_MODE=0 589 | SLOT54_COMMAND=Browser\: Select Next Filter in Column 6 590 | SLOT18_MIDI_CHANNEL=0 591 | SLOT88_COMMAND=Off 592 | SLOT155_MIDI_CHANNEL=0 593 | SLOT8_TYPE=0 594 | SLOT56_MIDI_CHANNEL=10 595 | SLOT37_NUMBER=0 596 | SLOT71_TYPE=-1 597 | SLOT130_TYPE=-1 598 | SLOT122_MIDI_CHANNEL=0 599 | SLOT23_MIDI_CHANNEL=0 600 | SLOT13_KNOB_MODE=0 601 | SLOT84_KNOB_MODE=0 602 | SLOT106_SEND_VALUE=false 603 | SLOT160_MIDI_CHANNEL=0 604 | SLOT8_COMMAND=Browser\: Select the previous preset 605 | SLOT183_NUMBER=0 606 | SLOT61_TYPE=-1 607 | SLOT120_TYPE=-1 608 | SLOT14_COMMAND=Off 609 | SLOT94_TYPE=-1 610 | SLOT153_TYPE=-1 611 | SLOT71_COMMAND=Off 612 | SLOT126_COMMAND=Off 613 | SLOT178_MIDI_CHANNEL=0 614 | SLOT82_NUMBER=0 615 | SLOT199_NUMBER=0 616 | SLOT183_COMMAND=Off 617 | SLOT94_SEND_VALUE=false 618 | SLOT145_MIDI_CHANNEL=0 619 | SLOT46_MIDI_CHANNEL=0 620 | SLOT35_NUMBER=0 621 | SLOT39_COMMAND=Browser\: Select Previous Filter in Column 1 622 | SLOT142_NUMBER=0 623 | SLOT96_COMMAND=Off 624 | SLOT110_TYPE=-1 625 | SLOT84_TYPE=-1 626 | SLOT143_TYPE=-1 627 | SLOT13_MIDI_CHANNEL=0 628 | SLOT114_KNOB_MODE=0 629 | SLOT185_KNOB_MODE=0 630 | SLOT98_NUMBER=0 631 | SLOT150_MIDI_CHANNEL=0 632 | SLOT176_TYPE=-1 633 | SLOT51_MIDI_CHANNEL=10 634 | SLOT194_SEND_VALUE=false 635 | SLOT61_SEND_VALUE=false 636 | SLOT87_SEND_VALUE=false 637 | SLOT158_NUMBER=0 638 | SLOT62_KNOB_MODE=0 639 | SLOT47_KNOB_MODE=0 640 | SLOT133_TYPE=-1 641 | SLOT22_COMMAND=Device\: Select Next Parameter Bank 642 | SLOT168_MIDI_CHANNEL=0 643 | SLOT69_MIDI_CHANNEL=0 644 | SLOT80_NUMBER=0 645 | SLOT166_TYPE=-1 646 | SLOT56_COMMAND=Browser\: Select the next preset 647 | SLOT8_MIDI_CHANNEL=0 648 | SLOT199_TYPE=-1 649 | SLOT161_SEND_VALUE=false 650 | SLOT168_COMMAND=Off 651 | SLOT135_MIDI_CHANNEL=0 652 | SLOT40_SEND_VALUE=false 653 | SLOT187_SEND_VALUE=false 654 | SLOT36_MIDI_CHANNEL=0 655 | SLOT22_TYPE=1 656 | SLOT173_MIDI_CHANNEL=0 657 | SLOT140_NUMBER=0 658 | SLOT66_SEND_VALUE=false 659 | SLOT55_TYPE=1 660 | SLOT96_NUMBER=0 661 | SLOT140_MIDI_CHANNEL=0 662 | SLOT41_KNOB_MODE=0 663 | SLOT41_MIDI_CHANNEL=0 664 | SLOT189_TYPE=-1 665 | SLOT140_SEND_VALUE=false 666 | SLOT156_NUMBER=0 667 | SLOT12_TYPE=-1 668 | SLOT166_SEND_VALUE=false 669 | SLOT148_KNOB_MODE=0 670 | SLOT45_TYPE=1 671 | SLOT0_TYPE=0 672 | SLOT45_SEND_VALUE=true 673 | SLOT151_COMMAND=Off 674 | SLOT104_TYPE=-1 675 | SLOT78_TYPE=-1 676 | SLOT158_MIDI_CHANNEL=0 677 | SLOT59_MIDI_CHANNEL=0 678 | SLOT8_KNOB_MODE=0 679 | SLOT55_NUMBER=46 680 | SLOT64_COMMAND=Off 681 | SLOT25_KNOB_MODE=0 682 | SLOT26_MIDI_CHANNEL=0 683 | SLOT98_COMMAND=Off 684 | SLOT163_MIDI_CHANNEL=0 685 | SLOT64_MIDI_CHANNEL=0 686 | SLOT3_MIDI_CHANNEL=0 687 | SLOT35_TYPE=-1 688 | SLOT145_SEND_VALUE=false 689 | SLOT115_NUMBER=0 690 | SLOT68_TYPE=-1 691 | SLOT24_SEND_VALUE=true 692 | SLOT142_KNOB_MODE=0 693 | SLOT198_KNOB_MODE=0 694 | SLOT31_MIDI_CHANNEL=10 695 | SLOT127_TYPE=-1 696 | SLOT154_NUMBER=0 697 | SLOT2_KNOB_MODE=0 698 | SLOT24_COMMAND=Device\: Select Next 699 | SLOT75_KNOB_MODE=0 700 | SLOT148_MIDI_CHANNEL=0 701 | SLOT81_COMMAND=Off 702 | SLOT49_MIDI_CHANNEL=10 703 | SLOT124_SEND_VALUE=false 704 | SLOT136_COMMAND=Off 705 | SLOT117_TYPE=-1 706 | SLOT186_MIDI_CHANNEL=0 707 | SLOT193_COMMAND=Off 708 | SLOT17_SEND_VALUE=false 709 | SLOT53_NUMBER=44 710 | SLOT126_KNOB_MODE=0 711 | SLOT8_NUMBER=88 712 | SLOT192_KNOB_MODE=0 713 | SLOT49_COMMAND=Browser\: Select Next Filter in Column 1 714 | SLOT153_MIDI_CHANNEL=0 715 | SLOT54_MIDI_CHANNEL=10 716 | SLOT1_COMMAND=Device\: Expand 717 | SLOT191_MIDI_CHANNEL=0 718 | SLOT113_NUMBER=0 719 | SLOT69_NUMBER=0 720 | SLOT59_KNOB_MODE=0 721 | SLOT117_SEND_VALUE=false 722 | SLOT12_NUMBER=22 723 | SLOT129_NUMBER=0 724 | SLOT120_KNOB_MODE=0 725 | SLOT176_KNOB_MODE=0 726 | SLOT105_KNOB_MODE=0 727 | SLOT29_TYPE=1 728 | SLOT39_MIDI_CHANNEL=0 729 | SLOT32_COMMAND=Transport\: Fast Forward 730 | SLOT176_MIDI_CHANNEL=0 731 | SLOT66_COMMAND=Off 732 | SLOT77_MIDI_CHANNEL=0 733 | SLOT51_NUMBER=42 734 | SLOT144_COMMAND=Off 735 | SLOT6_NUMBER=86 736 | SLOT178_COMMAND=Off 737 | SLOT53_KNOB_MODE=0 738 | SLOT38_KNOB_MODE=0 739 | SLOT28_NUMBER=0 740 | SLOT44_MIDI_CHANNEL=0 741 | SLOT181_MIDI_CHANNEL=0 742 | SLOT111_NUMBER=0 743 | SLOT82_MIDI_CHANNEL=0 744 | SLOT19_TYPE=1 745 | SLOT67_NUMBER=0 746 | SLOT170_KNOB_MODE=0 747 | SLOT174_NUMBER=0 748 | SLOT10_NUMBER=11 749 | SLOT171_TYPE=-1 750 | SLOT84_SEND_VALUE=false 751 | SLOT127_NUMBER=0 752 | SLOT199_MIDI_CHANNEL=0 753 | SLOT98_SEND_VALUE=false 754 | SLOT1_SEND_VALUE=false 755 | SLOT104_COMMAND=Off 756 | SLOT32_KNOB_MODE=0 757 | SLOT161_COMMAND=Off 758 | SLOT166_MIDI_CHANNEL=0 759 | SLOT67_MIDI_CHANNEL=0 760 | SLOT17_COMMAND=Off 761 | SLOT6_MIDI_CHANNEL=0 762 | SLOT74_COMMAND=Off 763 | SLOT26_NUMBER=15 764 | SLOT139_KNOB_MODE=0 765 | SLOT172_SEND_VALUE=false 766 | SLOT129_COMMAND=Off 767 | SLOT161_TYPE=-1 768 | SLOT51_SEND_VALUE=false 769 | SLOT198_SEND_VALUE=false 770 | SLOT186_COMMAND=Off 771 | SLOT171_MIDI_CHANNEL=0 772 | SLOT72_MIDI_CHANNEL=0 773 | SLOT194_TYPE=-1 774 | SLOT77_SEND_VALUE=false 775 | SLOT6_SEND_VALUE=false 776 | SLOT172_NUMBER=0 777 | SLOT16_KNOB_MODE=0 778 | SLOT50_TYPE=1 779 | SLOT189_MIDI_CHANNEL=0 780 | SLOT151_SEND_VALUE=false 781 | SLOT184_TYPE=-1 782 | SLOT133_KNOB_MODE=0 783 | SLOT30_SEND_VALUE=true 784 | SLOT189_KNOB_MODE=0 785 | SLOT177_SEND_VALUE=false 786 | SLOT112_COMMAND=Off 787 | SLOT71_NUMBER=0 788 | SLOT56_SEND_VALUE=true 789 | SLOT188_NUMBER=0 790 | SLOT146_COMMAND=Off 791 | SLOT57_MIDI_CHANNEL=0 792 | SLOT194_MIDI_CHANNEL=0 793 | SLOT95_MIDI_CHANNEL=0 794 | SLOT40_TYPE=1 795 | SLOT24_NUMBER=13 796 | SLOT73_TYPE=-1 797 | SLOT10_KNOB_MODE=0 798 | SLOT66_KNOB_MODE=0 799 | SLOT131_NUMBER=0 800 | SLOT59_COMMAND=Off 801 | SLOT161_MIDI_CHANNEL=0 802 | SLOT62_MIDI_CHANNEL=0 803 | SLOT1_MIDI_CHANNEL=0 804 | SLOT130_SEND_VALUE=false 805 | SLOT87_NUMBER=0 806 | SLOT156_SEND_VALUE=false 807 | SLOT117_KNOB_MODE=0 808 | SLOT183_KNOB_MODE=0 809 | SLOT35_SEND_VALUE=false 810 | SLOT30_TYPE=1 811 | SLOT147_NUMBER=0 812 | SLOT63_TYPE=-1 813 | SLOT122_TYPE=-1 814 | SLOT179_MIDI_CHANNEL=0 815 | SLOT96_TYPE=-1 816 | SLOT155_TYPE=-1 817 | SLOT60_KNOB_MODE=0 818 | SLOT42_COMMAND=Browser\: Select Previous Filter in Column 4 819 | SLOT135_SEND_VALUE=false 820 | SLOT184_MIDI_CHANNEL=0 821 | SLOT85_MIDI_CHANNEL=0 822 | SLOT154_COMMAND=Off 823 | SLOT14_SEND_VALUE=true 824 | SLOT28_SEND_VALUE=false 825 | SLOT111_KNOB_MODE=0 826 | SLOT167_KNOB_MODE=0 827 | SLOT188_COMMAND=Off 828 | SLOT112_TYPE=-1 829 | SLOT86_TYPE=-1 830 | SLOT145_TYPE=-1 831 | SLOT85_NUMBER=0 832 | SLOT90_MIDI_CHANNEL=0 833 | SLOT178_TYPE=-1 834 | SLOT44_KNOB_MODE=0 835 | SLOT29_KNOB_MODE=0 836 | SLOT102_SEND_VALUE=false 837 | SLOT145_NUMBER=0 838 | SLOT114_SEND_VALUE=false 839 | SLOT128_SEND_VALUE=false 840 | SLOT9_MIDI_CHANNEL=0 841 | SLOT114_COMMAND=Off 842 | SLOT135_TYPE=-1 843 | SLOT161_KNOB_MODE=0 844 | SLOT171_COMMAND=Off 845 | SLOT168_TYPE=-1 846 | SLOT44_NUMBER=37 847 | SLOT174_MIDI_CHANNEL=0 848 | SLOT75_MIDI_CHANNEL=0 849 | SLOT27_COMMAND=Off 850 | SLOT90_SEND_VALUE=false 851 | SLOT84_COMMAND=Off 852 | SLOT24_TYPE=1 853 | SLOT139_COMMAND=Off 854 | SLOT23_KNOB_MODE=0 855 | SLOT94_KNOB_MODE=0 856 | SLOT57_TYPE=-1 857 | SLOT107_SEND_VALUE=false 858 | SLOT196_COMMAND=Off 859 | SLOT104_NUMBER=0 860 | SLOT80_MIDI_CHANNEL=0 861 | SLOT190_NUMBER=0 862 | SLOT145_KNOB_MODE=0 863 | SLOT4_COMMAND=Device\: Select Next Parameter Page 864 | SLOT190_SEND_VALUE=false 865 | SLOT14_TYPE=-1 866 | SLOT47_TYPE=-1 867 | SLOT2_TYPE=0 868 | SLOT197_MIDI_CHANNEL=0 869 | SLOT10_COMMAND=Off 870 | SLOT5_KNOB_MODE=0 871 | SLOT106_TYPE=-1 872 | SLOT95_SEND_VALUE=false 873 | SLOT98_MIDI_CHANNEL=0 874 | SLOT78_KNOB_MODE=0 875 | SLOT122_COMMAND=Off 876 | SLOT42_NUMBER=35 877 | SLOT156_COMMAND=Off 878 | SLOT65_MIDI_CHANNEL=0 879 | SLOT4_MIDI_CHANNEL=0 880 | SLOT195_KNOB_MODE=0 881 | SLOT124_KNOB_MODE=0 882 | SLOT69_COMMAND=Off 883 | SLOT37_TYPE=-1 884 | SLOT102_NUMBER=0 885 | SLOT195_SEND_VALUE=false 886 | SLOT70_MIDI_CHANNEL=0 887 | SLOT62_SEND_VALUE=false 888 | SLOT129_TYPE=-1 889 | SLOT58_NUMBER=0 890 | SLOT88_SEND_VALUE=false 891 | SLOT72_KNOB_MODE=0 892 | SLOT57_KNOB_MODE=0 893 | SLOT118_NUMBER=0 894 | SLOT187_MIDI_CHANNEL=0 895 | SLOT88_MIDI_CHANNEL=0 896 | SLOT162_SEND_VALUE=false 897 | SLOT108_KNOB_MODE=0 898 | SLOT119_TYPE=-1 899 | SLOT41_SEND_VALUE=true 900 | SLOT188_SEND_VALUE=false 901 | SLOT40_NUMBER=33 902 | SLOT52_COMMAND=Browser\: Select Next Filter in Column 4 903 | SLOT107_COMMAND=Off 904 | SLOT67_SEND_VALUE=false 905 | SLOT192_MIDI_CHANNEL=0 906 | SLOT104_MIDI_CHANNEL=0 907 | SLOT93_MIDI_CHANNEL=0 908 | SLOT17_NUMBER=0 909 | SLOT164_COMMAND=Off 910 | SLOT198_COMMAND=Off 911 | SLOT100_NUMBER=0 912 | SLOT51_KNOB_MODE=0 913 | SLOT5_TYPE=0 914 | SLOT56_NUMBER=47 915 | SLOT141_SEND_VALUE=false 916 | SLOT163_NUMBER=0 917 | SLOT20_SEND_VALUE=true 918 | SLOT102_KNOB_MODE=0 919 | SLOT167_SEND_VALUE=false 920 | SLOT158_KNOB_MODE=0 921 | SLOT46_SEND_VALUE=false 922 | SLOT116_NUMBER=0 923 | SLOT78_MIDI_CHANNEL=0 924 | SLOT124_COMMAND=Off 925 | SLOT35_KNOB_MODE=0 926 | SLOT179_NUMBER=0 927 | SLOT181_COMMAND=Off 928 | SLOT91_TYPE=-1 929 | SLOT120_SEND_VALUE=false 930 | SLOT150_TYPE=-1 931 | SLOT15_NUMBER=31 932 | SLOT37_COMMAND=Off 933 | SLOT83_MIDI_CHANNEL=0 934 | SLOT146_SEND_VALUE=false 935 | SLOT94_COMMAND=Off 936 | SLOT25_SEND_VALUE=true 937 | SLOT152_KNOB_MODE=0 938 | SLOT149_COMMAND=Off 939 | SLOT161_NUMBER=0 940 | SLOT81_TYPE=-1 941 | SLOT140_TYPE=-1 942 | SLOT85_KNOB_MODE=0 943 | SLOT173_TYPE=-1 944 | SLOT125_SEND_VALUE=false 945 | SLOT139_SEND_VALUE=false 946 | SLOT20_COMMAND=Device\: Parameters 947 | SLOT18_SEND_VALUE=false 948 | SLOT60_NUMBER=0 949 | SLOT117_MIDI_CHANNEL=0 950 | SLOT136_KNOB_MODE=0 951 | SLOT177_NUMBER=0 952 | SLOT109_COMMAND=Off 953 | SLOT132_COMMAND=Off 954 | SLOT166_COMMAND=Off 955 | SLOT13_NUMBER=25 956 | SLOT120_NUMBER=0 957 | SLOT163_TYPE=-1 958 | SLOT196_TYPE=-1 959 | SLOT69_KNOB_MODE=0 960 | SLOT79_COMMAND=Off 961 | SLOT76_NUMBER=0 962 | SLOT118_SEND_VALUE=false 963 | SLOT29_NUMBER=16 964 | SLOT52_TYPE=1 965 | SLOT130_KNOB_MODE=0 966 | SLOT186_KNOB_MODE=0 967 | SLOT136_NUMBER=0 968 | SLOT115_KNOB_MODE=0 969 | SLOT186_TYPE=-1 970 | SLOT80_SEND_VALUE=false 971 | SLOT107_MIDI_CHANNEL=0 972 | SLOT96_MIDI_CHANNEL=0 973 | SLOT63_KNOB_MODE=0 974 | SLOT48_KNOB_MODE=0 975 | SLOT42_TYPE=1 976 | SLOT62_COMMAND=Off 977 | SLOT117_COMMAND=Off 978 | SLOT101_TYPE=-1 979 | SLOT75_TYPE=-1 980 | SLOT174_COMMAND=Off 981 | SLOT112_MIDI_CHANNEL=0 982 | SLOT180_KNOB_MODE=0 983 | SLOT74_NUMBER=0 984 | SLOT180_SEND_VALUE=false 985 | SLOT181_NUMBER=0 986 | SLOT87_COMMAND=Off 987 | SLOT73_SEND_VALUE=false 988 | SLOT32_TYPE=1 989 | SLOT99_SEND_VALUE=false 990 | SLOT134_NUMBER=0 991 | SLOT2_SEND_VALUE=false 992 | SLOT65_TYPE=-1 993 | SLOT42_KNOB_MODE=0 994 | SLOT124_TYPE=-1 995 | SLOT98_TYPE=-1 996 | SLOT157_TYPE=-1 997 | SLOT197_NUMBER=0 998 | SLOT100_COMMAND=Off 999 | SLOT134_COMMAND=Off 1000 | SLOT164_KNOB_MODE=0 1001 | SLOT149_KNOB_MODE=0 1002 | SLOT173_SEND_VALUE=false 1003 | SLOT191_COMMAND=Off 1004 | SLOT33_NUMBER=20 1005 | SLOT52_SEND_VALUE=true 1006 | SLOT199_SEND_VALUE=false 1007 | SLOT47_COMMAND=Off 1008 | SLOT78_SEND_VALUE=false 1009 | SLOT70_COMMAND=Off 1010 | SLOT102_MIDI_CHANNEL=0 1011 | SLOT114_TYPE=-1 1012 | SLOT88_TYPE=-1 1013 | SLOT9_KNOB_MODE=0 1014 | SLOT7_SEND_VALUE=false 1015 | SLOT147_TYPE=-1 1016 | SLOT159_COMMAND=Off 1017 | SLOT97_KNOB_MODE=0 1018 | SLOT26_KNOB_MODE=0 1019 | SLOT49_NUMBER=40 1020 | SLOT152_SEND_VALUE=false 1021 | SLOT143_KNOB_MODE=0 1022 | SLOT31_SEND_VALUE=false 1023 | SLOT178_SEND_VALUE=false 1024 | SLOT109_NUMBER=0 1025 | SLOT57_SEND_VALUE=false 1026 | SLOT195_NUMBER=0 1027 | SLOT137_TYPE=-1 1028 | SLOT30_COMMAND=Browser\: Commit Selection 1029 | SLOT31_NUMBER=18 1030 | SLOT125_MIDI_CHANNEL=0 1031 | SLOT119_COMMAND=Off 1032 | SLOT91_KNOB_MODE=0 1033 | SLOT20_KNOB_MODE=0 1034 | SLOT76_KNOB_MODE=0 1035 | SLOT142_COMMAND=Off 1036 | SLOT176_COMMAND=Off 1037 | SLOT26_TYPE=1 1038 | SLOT131_SEND_VALUE=false 1039 | SLOT94_NUMBER=0 1040 | SLOT59_TYPE=-1 1041 | SLOT10_SEND_VALUE=true 1042 | SLOT157_SEND_VALUE=false 1043 | SLOT130_MIDI_CHANNEL=0 1044 | SLOT55_COMMAND=Browser\: Select Next Filter in Column 7 1045 | SLOT127_KNOB_MODE=0 1046 | SLOT36_SEND_VALUE=false 1047 | SLOT89_COMMAND=Off 1048 | SLOT47_NUMBER=0 1049 | SLOT16_TYPE=-1 1050 | SLOT107_NUMBER=0 1051 | SLOT9_COMMAND=Browser\: Select the next preset 1052 | SLOT70_KNOB_MODE=0 1053 | SLOT102_COMMAND=Off 1054 | SLOT49_TYPE=1 1055 | SLOT110_SEND_VALUE=false 1056 | SLOT193_NUMBER=0 1057 | SLOT108_TYPE=-1 1058 | SLOT136_SEND_VALUE=false 1059 | SLOT15_SEND_VALUE=true 1060 | SLOT115_MIDI_CHANNEL=0 1061 | SLOT29_SEND_VALUE=false 1062 | SLOT16_MIDI_CHANNEL=0 1063 | SLOT121_KNOB_MODE=0 1064 | SLOT15_COMMAND=Off 1065 | SLOT177_KNOB_MODE=0 1066 | SLOT106_KNOB_MODE=0 1067 | SLOT72_COMMAND=Off 1068 | SLOT127_COMMAND=Off 1069 | SLOT92_NUMBER=0 1070 | SLOT184_COMMAND=Off 1071 | SLOT39_TYPE=1 1072 | SLOT120_MIDI_CHANNEL=0 1073 | SLOT21_MIDI_CHANNEL=0 1074 | SLOT54_KNOB_MODE=0 1075 | SLOT103_SEND_VALUE=false 1076 | SLOT39_KNOB_MODE=0 1077 | SLOT152_NUMBER=0 1078 | SLOT97_COMMAND=Off 1079 | SLOT129_SEND_VALUE=false 1080 | SLOT191_TYPE=-1 1081 | SLOT171_KNOB_MODE=0 1082 | SLOT138_MIDI_CHANNEL=0 1083 | SLOT110_COMMAND=Off 1084 | SLOT168_NUMBER=0 1085 | SLOT105_MIDI_CHANNEL=0 1086 | SLOT91_SEND_VALUE=false 1087 | SLOT143_MIDI_CHANNEL=0 1088 | SLOT33_KNOB_MODE=0 1089 | SLOT181_TYPE=-1 1090 | SLOT108_SEND_VALUE=false 1091 | SLOT23_COMMAND=Device\: Select Previous 1092 | SLOT90_NUMBER=0 1093 | SLOT57_COMMAND=Off 1094 | SLOT80_COMMAND=Off 1095 | SLOT110_MIDI_CHANNEL=0 1096 | SLOT11_MIDI_CHANNEL=0 1097 | SLOT169_COMMAND=Off 1098 | SLOT155_KNOB_MODE=0 1099 | SLOT7_TYPE=0 1100 | SLOT70_TYPE=-1 1101 | SLOT150_NUMBER=0 1102 | SLOT191_SEND_VALUE=false 1103 | SLOT70_SEND_VALUE=false 1104 | SLOT0_COMMAND=Device\: Bypass 1105 | SLOT96_SEND_VALUE=false 1106 | SLOT128_MIDI_CHANNEL=0 1107 | SLOT17_KNOB_MODE=0 1108 | SLOT88_KNOB_MODE=0 1109 | SLOT29_MIDI_CHANNEL=10 1110 | SLOT166_NUMBER=0 1111 | SLOT60_TYPE=-1 1112 | SLOT40_COMMAND=Browser\: Select Previous Filter in Column 2 1113 | SLOT4_NUMBER=84 1114 | SLOT93_TYPE=-1 1115 | SLOT134_KNOB_MODE=0 1116 | SLOT133_MIDI_CHANNEL=0 1117 | SLOT34_MIDI_CHANNEL=0 1118 | SLOT152_COMMAND=Off 1119 | SLOT152_TYPE=-1 1120 | SLOT170_SEND_VALUE=false 1121 | SLOT184_SEND_VALUE=false 1122 | SLOT63_SEND_VALUE=false 1123 | SLOT100_MIDI_CHANNEL=0 1124 | SLOT89_SEND_VALUE=false 1125 | SLOT65_NUMBER=0 1126 | SLOT65_COMMAND=Off 1127 | SLOT99_COMMAND=Off 1128 | SLOT82_KNOB_MODE=0 1129 | SLOT11_KNOB_MODE=0 1130 | SLOT67_KNOB_MODE=0 1131 | SLOT18_NUMBER=0 1132 | SLOT83_TYPE=-1 1133 | SLOT125_NUMBER=0 1134 | SLOT142_TYPE=-1 1135 | SLOT175_TYPE=-1 1136 | SLOT163_SEND_VALUE=false 1137 | SLOT118_KNOB_MODE=0 1138 | SLOT118_MIDI_CHANNEL=0 1139 | SLOT19_MIDI_CHANNEL=0 1140 | SLOT42_SEND_VALUE=true 1141 | SLOT189_SEND_VALUE=false 1142 | SLOT156_MIDI_CHANNEL=0 1143 | SLOT68_SEND_VALUE=false 1144 | SLOT2_NUMBER=82 1145 | SLOT123_MIDI_CHANNEL=0 1146 | SLOT25_COMMAND=Track\: Select Previous Track 1147 | SLOT24_MIDI_CHANNEL=0 1148 | SLOT132_TYPE=-1 1149 | SLOT61_KNOB_MODE=0 1150 | SLOT82_COMMAND=Off 1151 | SLOT137_COMMAND=Off 1152 | SLOT165_TYPE=-1 1153 | SLOT198_TYPE=-1 1154 | SLOT194_COMMAND=Off 1155 | SLOT63_NUMBER=0 1156 | SLOT142_SEND_VALUE=false 1157 | SLOT170_NUMBER=0 1158 | SLOT21_SEND_VALUE=true 1159 | SLOT112_KNOB_MODE=0 1160 | SLOT168_SEND_VALUE=false 1161 | SLOT168_KNOB_MODE=0 1162 | SLOT21_TYPE=1 1163 | SLOT47_SEND_VALUE=false 1164 | SLOT2_COMMAND=Device\: Parameters 1165 | SLOT54_TYPE=1 1166 | SLOT123_NUMBER=0 1167 | SLOT79_NUMBER=0 1168 | SLOT45_KNOB_MODE=0 1169 | SLOT188_TYPE=-1 1170 | SLOT186_NUMBER=0 1171 | SLOT146_MIDI_CHANNEL=0 1172 | SLOT47_MIDI_CHANNEL=0 1173 | SLOT121_SEND_VALUE=false 1174 | SLOT0_NUMBER=80 1175 | SLOT120_COMMAND=Off 1176 | SLOT11_TYPE=-1 1177 | SLOT22_NUMBER=11 1178 | SLOT147_SEND_VALUE=false 1179 | SLOT139_NUMBER=0 1180 | SLOT44_TYPE=1 1181 | SLOT113_MIDI_CHANNEL=0 1182 | SLOT14_MIDI_CHANNEL=0 1183 | SLOT26_SEND_VALUE=true 1184 | SLOT162_KNOB_MODE=0 1185 | SLOT103_TYPE=-1 1186 | SLOT77_TYPE=-1 1187 | SLOT151_MIDI_CHANNEL=0 1188 | SLOT52_MIDI_CHANNEL=10 1189 | SLOT33_COMMAND=Off 1190 | SLOT67_COMMAND=Off 1191 | SLOT90_COMMAND=Off 1192 | SLOT179_COMMAND=Off 1193 | SLOT38_NUMBER=0 1194 | SLOT95_KNOB_MODE=0 1195 | SLOT100_SEND_VALUE=false 1196 | SLOT34_TYPE=-1 1197 | SLOT126_SEND_VALUE=false 1198 | SLOT169_MIDI_CHANNEL=0 1199 | SLOT67_TYPE=-1 1200 | SLOT126_TYPE=-1 1201 | SLOT19_SEND_VALUE=true 1202 | SLOT146_KNOB_MODE=0 1203 | -------------------------------------------------------------------------------- /Bitwig/X-Touch Mini.flexi: -------------------------------------------------------------------------------- 1 | #Generic Flexi 2 | #Sat Mar 14 11:31:04 CET 2020 3 | SLOT3_NUMBER=23 4 | SLOT171_TYPE=-1 5 | SLOT38_NUMBER=0 6 | SLOT75_TYPE=-1 7 | SLOT78_SEND_VALUE=false 8 | SLOT98_SEND_VALUE=false 9 | SLOT48_SEND_VALUE=false 10 | SLOT88_SEND_VALUE=false 11 | SLOT58_TYPE=0 12 | SLOT58_SEND_VALUE=false 13 | SLOT192_COMMAND=Off 14 | SLOT68_COMMAND=Browser\: Select Next Filter in Column 5 15 | SLOT92_TYPE=-1 16 | SLOT68_SEND_VALUE=false 17 | SLOT39_KNOB_MODE=0 18 | SLOT195_KNOB_MODE=0 19 | SLOT18_SEND_VALUE=true 20 | SLOT0_TYPE=0 21 | SLOT4_MIDI_CHANNEL=0 22 | SLOT163_NUMBER=0 23 | SLOT91_MIDI_CHANNEL=0 24 | SLOT38_SEND_VALUE=false 25 | SLOT71_NUMBER=51 26 | SLOT10_KNOB_MODE=0 27 | SLOT28_SEND_VALUE=false 28 | SLOT79_NUMBER=0 29 | SLOT48_KNOB_MODE=0 30 | SLOT18_COMMAND=Device\: Bypass 31 | SLOT184_SEND_VALUE=false 32 | SLOT154_SEND_VALUE=false 33 | SLOT194_SEND_VALUE=false 34 | SLOT164_SEND_VALUE=false 35 | SLOT159_COMMAND=Off 36 | SLOT174_SEND_VALUE=false 37 | SLOT145_COMMAND=Off 38 | SLOT137_TYPE=-1 39 | SLOT30_NUMBER=50 40 | SLOT195_COMMAND=Off 41 | SLOT53_KNOB_MODE=0 42 | SLOT190_MIDI_CHANNEL=0 43 | SLOT25_TYPE=0 44 | SLOT152_KNOB_MODE=0 45 | SLOT121_TYPE=-1 46 | SLOT131_COMMAND=Off 47 | SLOT49_NUMBER=0 48 | SLOT41_NUMBER=21 49 | SLOT3_MIDI_CHANNEL=0 50 | SLOT104_SEND_VALUE=false 51 | SLOT124_SEND_VALUE=false 52 | SLOT5_MIDI_CHANNEL=0 53 | SLOT109_COMMAND=Off 54 | SLOT193_NUMBER=0 55 | SLOT114_SEND_VALUE=false 56 | SLOT130_TYPE=-1 57 | SLOT142_COMMAND=Off 58 | SLOT144_SEND_VALUE=false 59 | SLOT134_KNOB_MODE=0 60 | SLOT134_SEND_VALUE=false 61 | SLOT71_KNOB_MODE=0 62 | SLOT187_TYPE=-1 63 | SLOT34_TYPE=-1 64 | SLOT15_COMMAND=Off 65 | SLOT81_MIDI_CHANNEL=0 66 | SLOT11_NUMBER=31 67 | SLOT65_COMMAND=Browser\: Select Next Filter in Column 2 68 | SLOT19_NUMBER=39 69 | SLOT66_KNOB_MODE=0 70 | SLOT134_COMMAND=Off 71 | SLOT191_MIDI_CHANNEL=0 72 | SLOT116_KNOB_MODE=0 73 | SLOT163_TYPE=-1 74 | SLOT40_COMMAND=Off 75 | SLOT44_KNOB_MODE=0 76 | SLOT177_KNOB_MODE=0 77 | SLOT182_NUMBER=0 78 | SLOT185_NUMBER=0 79 | SLOT106_COMMAND=Off 80 | SLOT66_TYPE=0 81 | SLOT178_TYPE=-1 82 | SLOT93_MIDI_CHANNEL=0 83 | SLOT51_TYPE=-1 84 | SLOT62_COMMAND=Browser\: Select Previous Filter in Column 7 85 | SLOT152_NUMBER=0 86 | SLOT7_TYPE=0 87 | SLOT170_KNOB_MODE=0 88 | SLOT49_TYPE=-1 89 | SLOT145_TYPE=-1 90 | SLOT76_COMMAND=Off 91 | SLOT141_NUMBER=0 92 | SLOT149_NUMBER=0 93 | SLOT103_NUMBER=0 94 | SLOT114_NUMBER=0 95 | SLOT33_TYPE=-1 96 | SLOT103_COMMAND=Off 97 | SLOT81_SEND_VALUE=false 98 | SLOT129_KNOB_MODE=0 99 | SLOT196_NUMBER=0 100 | SLOT41_SEND_VALUE=false 101 | SLOT156_KNOB_MODE=0 102 | SLOT80_KNOB_MODE=0 103 | SLOT43_COMMAND=Off 104 | SLOT21_SEND_VALUE=true 105 | SLOT57_KNOB_MODE=0 106 | SLOT9_SEND_VALUE=false 107 | SLOT174_NUMBER=0 108 | SLOT92_MIDI_CHANNEL=0 109 | SLOT108_NUMBER=0 110 | SLOT191_KNOB_MODE=0 111 | SLOT133_NUMBER=0 112 | SLOT46_COMMAND=Browser\: Scroll tabs 113 | SLOT155_NUMBER=0 114 | SLOT144_NUMBER=0 115 | SLOT78_KNOB_MODE=0 116 | SLOT170_COMMAND=Off 117 | SLOT42_TYPE=-1 118 | SLOT0_MIDI_CHANNEL=0 119 | SLOT143_KNOB_MODE=0 120 | SLOT179_TYPE=-1 121 | SLOT100_NUMBER=0 122 | SLOT130_KNOB_MODE=0 123 | SLOT122_NUMBER=0 124 | SLOT154_TYPE=-1 125 | SLOT61_SEND_VALUE=false 126 | SLOT67_TYPE=0 127 | SLOT82_MIDI_CHANNEL=0 128 | SLOT79_COMMAND=Off 129 | SLOT119_NUMBER=0 130 | SLOT148_COMMAND=Off 131 | SLOT111_NUMBER=0 132 | SLOT35_SEND_VALUE=false 133 | SLOT193_MIDI_CHANNEL=0 134 | SLOT173_KNOB_MODE=0 135 | SLOT17_KNOB_MODE=0 136 | SLOT95_MIDI_CHANNEL=0 137 | SLOT35_NUMBER=0 138 | SLOT32_KNOB_MODE=0 139 | SLOT100_COMMAND=Off 140 | SLOT70_COMMAND=Browser\: Select Next Filter in Column 7 141 | SLOT25_SEND_VALUE=false 142 | SLOT169_TYPE=-1 143 | SLOT72_MIDI_CHANNEL=1 144 | SLOT2_KNOB_MODE=0 145 | SLOT155_TYPE=-1 146 | SLOT123_COMMAND=Off 147 | SLOT8_NUMBER=28 148 | SLOT74_TYPE=-1 149 | SLOT87_COMMAND=Off 150 | SLOT74_NUMBER=0 151 | SLOT128_SEND_VALUE=false 152 | SLOT125_NUMBER=0 153 | SLOT127_NUMBER=0 154 | SLOT136_NUMBER=0 155 | SLOT181_MIDI_CHANNEL=0 156 | SLOT138_NUMBER=0 157 | SLOT172_TYPE=-1 158 | SLOT182_MIDI_CHANNEL=0 159 | SLOT93_COMMAND=Off 160 | SLOT1_TYPE=0 161 | SLOT92_KNOB_MODE=0 162 | SLOT76_TYPE=-1 163 | SLOT75_SEND_VALUE=false 164 | SLOT107_SEND_VALUE=false 165 | SLOT3_KNOB_MODE=0 166 | SLOT178_COMMAND=Off 167 | SLOT49_COMMAND=Off 168 | SLOT65_SEND_VALUE=false 169 | SLOT164_COMMAND=Off 170 | SLOT112_TYPE=-1 171 | SLOT192_MIDI_CHANNEL=0 172 | SLOT122_KNOB_MODE=0 173 | SLOT8_TYPE=-1 174 | SLOT194_MIDI_CHANNEL=0 175 | SLOT198_NUMBER=0 176 | SLOT41_TYPE=-1 177 | SLOT63_NUMBER=43 178 | SLOT176_COMMAND=Off 179 | SLOT107_KNOB_MODE=0 180 | SLOT24_TYPE=0 181 | SLOT73_MIDI_CHANNEL=0 182 | SLOT111_SEND_VALUE=false 183 | SLOT171_NUMBER=0 184 | SLOT87_KNOB_MODE=0 185 | SLOT85_NUMBER=0 186 | SLOT50_KNOB_MODE=0 187 | SLOT7_MIDI_CHANNEL=0 188 | SLOT23_KNOB_MODE=0 189 | SLOT151_SEND_VALUE=false 190 | SLOT32_COMMAND=Track Selected\: Set Volume Track 191 | SLOT121_KNOB_MODE=0 192 | SLOT18_TYPE=0 193 | SLOT0_COMMAND=Device\: Set Parameter 1 194 | SLOT121_SEND_VALUE=false 195 | SLOT161_SEND_VALUE=false 196 | SLOT114_TYPE=-1 197 | SLOT160_NUMBER=0 198 | SLOT184_COMMAND=Off 199 | SLOT18_KNOB_MODE=0 200 | SLOT104_KNOB_MODE=0 201 | SLOT2_SEND_VALUE=true 202 | SLOT20_COMMAND=Device\: Parameters 203 | SLOT162_TYPE=-1 204 | SLOT59_TYPE=0 205 | SLOT129_COMMAND=Off 206 | SLOT98_COMMAND=Off 207 | SLOT85_MIDI_CHANNEL=0 208 | SLOT191_SEND_VALUE=false 209 | SLOT117_COMMAND=Off 210 | SLOT82_COMMAND=Off 211 | SLOT83_MIDI_CHANNEL=0 212 | SLOT57_NUMBER=37 213 | SLOT90_NUMBER=0 214 | SLOT38_COMMAND=Off 215 | SLOT52_NUMBER=0 216 | SLOT129_TYPE=-1 217 | SLOT177_TYPE=-1 218 | SLOT96_NUMBER=0 219 | SLOT170_SEND_VALUE=false 220 | SLOT180_TYPE=-1 221 | SLOT95_NUMBER=0 222 | SLOT147_TYPE=-1 223 | SLOT57_COMMAND=Browser\: Select Previous Filter in Column 2 224 | SLOT74_KNOB_MODE=0 225 | SLOT187_NUMBER=0 226 | SLOT6_MIDI_CHANNEL=0 227 | SLOT130_SEND_VALUE=false 228 | SLOT111_COMMAND=Off 229 | SLOT74_MIDI_CHANNEL=0 230 | SLOT147_KNOB_MODE=0 231 | SLOT161_KNOB_MODE=0 232 | SLOT35_KNOB_MODE=0 233 | SLOT22_KNOB_MODE=0 234 | SLOT82_TYPE=-1 235 | SLOT128_COMMAND=Off 236 | SLOT183_MIDI_CHANNEL=0 237 | SLOT6_COMMAND=Device\: Set Parameter 7 238 | SLOT6_SEND_VALUE=true 239 | SLOT84_TYPE=-1 240 | SLOT21_COMMAND=Device\: Toggle Window 241 | SLOT81_COMMAND=Off 242 | SLOT63_MIDI_CHANNEL=1 243 | SLOT172_MIDI_CHANNEL=0 244 | SLOT104_TYPE=-1 245 | SLOT199_KNOB_MODE=0 246 | SLOT186_KNOB_MODE=0 247 | SLOT94_MIDI_CHANNEL=0 248 | SLOT160_KNOB_MODE=0 249 | SLOT99_COMMAND=Off 250 | SLOT84_SEND_VALUE=false 251 | SLOT137_SEND_VALUE=false 252 | SLOT46_NUMBER=26 253 | SLOT31_SEND_VALUE=true 254 | SLOT44_SEND_VALUE=false 255 | SLOT68_NUMBER=48 256 | SLOT174_KNOB_MODE=0 257 | SLOT16_TYPE=0 258 | SLOT26_COMMAND=Global\: Undo 259 | SLOT177_SEND_VALUE=false 260 | SLOT195_TYPE=-1 261 | SLOT26_TYPE=0 262 | SLOT99_TYPE=-1 263 | SLOT122_TYPE=-1 264 | SLOT189_COMMAND=Off 265 | SLOT168_SEND_VALUE=false 266 | SLOT153_COMMAND=Off 267 | SLOT62_KNOB_MODE=0 268 | SLOT24_NUMBER=44 269 | SLOT119_TYPE=-1 270 | SLOT84_MIDI_CHANNEL=0 271 | SLOT146_KNOB_MODE=0 272 | SLOT165_COMMAND=Off 273 | SLOT170_TYPE=-1 274 | SLOT75_KNOB_MODE=0 275 | SLOT159_KNOB_MODE=0 276 | SLOT13_NUMBER=33 277 | SLOT88_KNOB_MODE=0 278 | SLOT51_COMMAND=Off 279 | SLOT71_SEND_VALUE=false 280 | SLOT135_KNOB_MODE=0 281 | SLOT104_COMMAND=Off 282 | SLOT36_NUMBER=0 283 | SLOT12_SEND_VALUE=false 284 | SLOT5_NUMBER=25 285 | SLOT174_MIDI_CHANNEL=0 286 | SLOT44_TYPE=-1 287 | SLOT140_TYPE=-1 288 | SLOT72_SEND_VALUE=false 289 | SLOT162_MIDI_CHANNEL=0 290 | SLOT59_COMMAND=Browser\: Select Previous Filter in Column 4 291 | SLOT76_MIDI_CHANNEL=0 292 | SLOT92_SEND_VALUE=false 293 | SLOT27_COMMAND=Global\: Redo 294 | SLOT139_TYPE=-1 295 | SLOT142_KNOB_MODE=0 296 | SLOT187_KNOB_MODE=0 297 | SLOT27_TYPE=0 298 | SLOT77_NUMBER=0 299 | SLOT156_TYPE=-1 300 | SLOT185_MIDI_CHANNEL=0 301 | SLOT105_SEND_VALUE=false 302 | SLOT161_NUMBER=0 303 | SLOT90_TYPE=-1 304 | SLOT54_KNOB_MODE=0 305 | SLOT135_SEND_VALUE=false 306 | SLOT154_COMMAND=Off 307 | SLOT53_MIDI_CHANNEL=1 308 | SLOT73_TYPE=-1 309 | SLOT189_KNOB_MODE=0 310 | SLOT196_KNOB_MODE=0 311 | SLOT144_KNOB_MODE=0 312 | SLOT165_SEND_VALUE=false 313 | SLOT185_SEND_VALUE=false 314 | SLOT123_TYPE=-1 315 | SLOT155_SEND_VALUE=false 316 | SLOT183_COMMAND=Off 317 | SLOT65_MIDI_CHANNEL=1 318 | SLOT42_MIDI_CHANNEL=1 319 | SLOT49_KNOB_MODE=0 320 | SLOT56_COMMAND=Browser\: Select Previous Filter in Column 1 321 | SLOT40_MIDI_CHANNEL=1 322 | SLOT66_NUMBER=46 323 | SLOT24_COMMAND=Track\: Select Previous Track 324 | SLOT29_SEND_VALUE=true 325 | SLOT127_TYPE=-1 326 | SLOT39_SEND_VALUE=false 327 | SLOT137_KNOB_MODE=0 328 | SLOT88_NUMBER=0 329 | SLOT77_SEND_VALUE=false 330 | SLOT61_KNOB_MODE=0 331 | SLOT163_MIDI_CHANNEL=0 332 | SLOT57_SEND_VALUE=false 333 | SLOT198_MIDI_CHANNEL=0 334 | SLOT196_MIDI_CHANNEL=0 335 | SLOT40_TYPE=-1 336 | SLOT152_TYPE=-1 337 | SLOT172_NUMBER=0 338 | SLOT48_COMMAND=Off 339 | SLOT89_MIDI_CHANNEL=0 340 | SLOT124_NUMBER=0 341 | SLOT198_KNOB_MODE=0 342 | SLOT135_NUMBER=0 343 | SLOT146_NUMBER=0 344 | SLOT87_MIDI_CHANNEL=0 345 | SLOT117_KNOB_MODE=0 346 | SLOT81_KNOB_MODE=0 347 | SLOT59_SEND_VALUE=false 348 | SLOT151_COMMAND=Off 349 | SLOT89_SEND_VALUE=false 350 | SLOT113_NUMBER=0 351 | SLOT151_MIDI_CHANNEL=0 352 | SLOT56_KNOB_MODE=0 353 | SLOT56_TYPE=0 354 | SLOT123_SEND_VALUE=false 355 | SLOT55_NUMBER=35 356 | SLOT192_KNOB_MODE=0 357 | SLOT92_NUMBER=0 358 | SLOT194_COMMAND=Off 359 | SLOT97_TYPE=-1 360 | SLOT58_NUMBER=38 361 | SLOT62_MIDI_CHANNEL=1 362 | SLOT169_KNOB_MODE=0 363 | SLOT50_NUMBER=0 364 | SLOT100_SEND_VALUE=false 365 | SLOT58_KNOB_MODE=0 366 | SLOT130_COMMAND=Off 367 | SLOT193_TYPE=-1 368 | SLOT175_COMMAND=Off 369 | SLOT183_NUMBER=0 370 | SLOT70_TYPE=0 371 | SLOT99_NUMBER=0 372 | SLOT143_COMMAND=Off 373 | SLOT120_SEND_VALUE=false 374 | SLOT188_NUMBER=0 375 | SLOT180_NUMBER=0 376 | SLOT107_MIDI_CHANNEL=0 377 | SLOT183_SEND_VALUE=false 378 | SLOT160_MIDI_CHANNEL=0 379 | SLOT30_SEND_VALUE=true 380 | SLOT20_MIDI_CHANNEL=0 381 | SLOT140_COMMAND=Off 382 | SLOT29_KNOB_MODE=0 383 | SLOT150_NUMBER=0 384 | SLOT159_TYPE=-1 385 | SLOT16_COMMAND=Device\: Select Previous 386 | SLOT10_SEND_VALUE=false 387 | SLOT47_SEND_VALUE=false 388 | SLOT51_MIDI_CHANNEL=0 389 | SLOT27_SEND_VALUE=true 390 | SLOT120_TYPE=-1 391 | SLOT14_NUMBER=34 392 | SLOT171_MIDI_CHANNEL=0 393 | SLOT197_COMMAND=Off 394 | SLOT95_COMMAND=Off 395 | SLOT105_NUMBER=0 396 | SLOT25_NUMBER=45 397 | SLOT116_NUMBER=0 398 | SLOT96_MIDI_CHANNEL=0 399 | SLOT47_NUMBER=27 400 | SLOT199_NUMBER=0 401 | SLOT86_TYPE=-1 402 | SLOT118_COMMAND=Off 403 | SLOT61_NUMBER=41 404 | SLOT140_MIDI_CHANNEL=0 405 | SLOT71_COMMAND=Browser\: Select Next Filter in Column 8 406 | SLOT182_TYPE=-1 407 | SLOT171_KNOB_MODE=0 408 | SLOT74_SEND_VALUE=false 409 | SLOT37_COMMAND=Off 410 | SLOT13_COMMAND=Off 411 | SLOT54_SEND_VALUE=false 412 | SLOT147_SEND_VALUE=false 413 | SLOT77_TYPE=-1 414 | SLOT31_KNOB_MODE=0 415 | SLOT69_NUMBER=49 416 | SLOT191_NUMBER=0 417 | SLOT110_KNOB_MODE=0 418 | SLOT115_KNOB_MODE=0 419 | SLOT177_NUMBER=0 420 | SLOT189_TYPE=-1 421 | SLOT167_SEND_VALUE=false 422 | SLOT139_COMMAND=Off 423 | SLOT92_COMMAND=Off 424 | SLOT138_SEND_VALUE=false 425 | SLOT158_SEND_VALUE=false 426 | SLOT106_TYPE=-1 427 | SLOT52_KNOB_MODE=0 428 | SLOT23_TYPE=0 429 | SLOT5_COMMAND=Device\: Set Parameter 6 430 | SLOT108_KNOB_MODE=0 431 | SLOT154_MIDI_CHANNEL=0 432 | SLOT24_KNOB_MODE=0 433 | SLOT67_COMMAND=Browser\: Select Next Filter in Column 4 434 | SLOT90_SEND_VALUE=false 435 | SLOT115_COMMAND=Off 436 | SLOT31_NUMBER=51 437 | SLOT31_MIDI_CHANNEL=0 438 | SLOT20_NUMBER=40 439 | SLOT173_TYPE=-1 440 | SLOT45_SEND_VALUE=false 441 | SLOT72_NUMBER=7 442 | SLOT178_MIDI_CHANNEL=0 443 | SLOT15_SEND_VALUE=false 444 | SLOT132_COMMAND=Off 445 | SLOT0_NUMBER=20 446 | SLOT2_NUMBER=22 447 | SLOT60_MIDI_CHANNEL=1 448 | SLOT165_KNOB_MODE=0 449 | SLOT85_KNOB_MODE=0 450 | SLOT166_NUMBER=0 451 | SLOT186_TYPE=-1 452 | SLOT25_KNOB_MODE=0 453 | SLOT18_MIDI_CHANNEL=0 454 | SLOT168_NUMBER=0 455 | SLOT105_MIDI_CHANNEL=0 456 | SLOT113_KNOB_MODE=0 457 | SLOT166_KNOB_MODE=0 458 | SLOT43_TYPE=-1 459 | SLOT70_NUMBER=50 460 | SLOT1_SEND_VALUE=true 461 | SLOT173_COMMAND=Off 462 | SLOT78_COMMAND=Off 463 | SLOT93_TYPE=-1 464 | SLOT126_COMMAND=Off 465 | SLOT153_TYPE=-1 466 | SLOT57_TYPE=0 467 | SLOT108_SEND_VALUE=false 468 | SLOT164_KNOB_MODE=0 469 | SLOT199_COMMAND=Off 470 | SLOT60_TYPE=0 471 | SLOT112_KNOB_MODE=0 472 | SLOT69_MIDI_CHANNEL=1 473 | SLOT95_SEND_VALUE=false 474 | SLOT126_TYPE=-1 475 | SLOT130_NUMBER=0 476 | SLOT129_NUMBER=0 477 | SLOT8_COMMAND=Off 478 | SLOT81_NUMBER=0 479 | SLOT143_TYPE=-1 480 | SLOT79_KNOB_MODE=0 481 | SLOT9_MIDI_CHANNEL=0 482 | SLOT50_TYPE=-1 483 | SLOT44_NUMBER=24 484 | SLOT196_TYPE=-1 485 | SLOT162_SEND_VALUE=false 486 | SLOT111_KNOB_MODE=0 487 | SLOT26_KNOB_MODE=0 488 | SLOT47_TYPE=0 489 | SLOT167_COMMAND=Off 490 | SLOT71_MIDI_CHANNEL=1 491 | SLOT137_COMMAND=Off 492 | SLOT157_NUMBER=0 493 | SLOT73_COMMAND=Off 494 | SLOT58_MIDI_CHANNEL=1 495 | SLOT194_NUMBER=0 496 | SLOT41_COMMAND=Off 497 | SLOT136_TYPE=-1 498 | SLOT180_MIDI_CHANNEL=0 499 | SLOT56_MIDI_CHANNEL=1 500 | SLOT11_COMMAND=Off 501 | SLOT90_COMMAND=Off 502 | SLOT179_NUMBER=0 503 | SLOT141_SEND_VALUE=false 504 | SLOT84_KNOB_MODE=0 505 | SLOT3_COMMAND=Device\: Set Parameter 4 506 | SLOT168_KNOB_MODE=0 507 | SLOT167_MIDI_CHANNEL=0 508 | SLOT180_SEND_VALUE=false 509 | SLOT165_MIDI_CHANNEL=0 510 | SLOT132_SEND_VALUE=false 511 | SLOT22_NUMBER=42 512 | SLOT33_NUMBER=0 513 | SLOT53_TYPE=0 514 | SLOT102_NUMBER=0 515 | SLOT114_KNOB_MODE=0 516 | SLOT171_SEND_VALUE=false 517 | SLOT30_KNOB_MODE=4 518 | SLOT116_MIDI_CHANNEL=0 519 | SLOT146_TYPE=-1 520 | SLOT153_SEND_VALUE=false 521 | SLOT176_MIDI_CHANNEL=0 522 | SLOT78_MIDI_CHANNEL=0 523 | SLOT162_COMMAND=Off 524 | SLOT2_MIDI_CHANNEL=0 525 | SLOT89_COMMAND=Off 526 | SLOT150_SEND_VALUE=false 527 | SLOT139_KNOB_MODE=0 528 | SLOT145_MIDI_CHANNEL=0 529 | SLOT28_KNOB_MODE=4 530 | SLOT133_TYPE=-1 531 | SLOT82_KNOB_MODE=0 532 | SLOT187_MIDI_CHANNEL=0 533 | SLOT4_TYPE=0 534 | SLOT86_SEND_VALUE=false 535 | SLOT107_NUMBER=0 536 | SLOT16_MIDI_CHANNEL=0 537 | SLOT67_MIDI_CHANNEL=1 538 | SLOT35_COMMAND=Off 539 | SLOT138_KNOB_MODE=0 540 | SLOT17_TYPE=0 541 | SLOT126_SEND_VALUE=false 542 | SLOT27_NUMBER=47 543 | SLOT83_KNOB_MODE=0 544 | SLOT16_NUMBER=36 545 | SLOT181_COMMAND=Off 546 | SLOT118_NUMBER=0 547 | SLOT102_COMMAND=Off 548 | SLOT167_KNOB_MODE=0 549 | SLOT98_MIDI_CHANNEL=0 550 | SLOT84_COMMAND=Off 551 | SLOT27_MIDI_CHANNEL=0 552 | SLOT51_SEND_VALUE=false 553 | SLOT166_TYPE=-1 554 | SLOT117_SEND_VALUE=false 555 | SLOT10_TYPE=-1 556 | SLOT54_COMMAND=Browser\: Commit Selection 557 | SLOT107_COMMAND=Off 558 | SLOT113_TYPE=-1 559 | SLOT24_SEND_VALUE=true 560 | SLOT60_COMMAND=Browser\: Select Previous Filter in Column 5 561 | SLOT125_MIDI_CHANNEL=0 562 | SLOT156_COMMAND=Off 563 | SLOT140_KNOB_MODE=0 564 | SLOT186_COMMAND=Off 565 | SLOT30_COMMAND=Transport\: Play 566 | SLOT60_SEND_VALUE=false 567 | SLOT103_TYPE=-1 568 | SLOT197_SEND_VALUE=false 569 | SLOT20_TYPE=0 570 | SLOT33_SEND_VALUE=false 571 | SLOT29_COMMAND=Transport\: Stop 572 | SLOT156_MIDI_CHANNEL=0 573 | SLOT176_TYPE=-1 574 | SLOT80_MIDI_CHANNEL=0 575 | SLOT27_KNOB_MODE=0 576 | SLOT188_SEND_VALUE=false 577 | SLOT83_TYPE=-1 578 | SLOT179_SEND_VALUE=false 579 | SLOT42_SEND_VALUE=false 580 | SLOT194_KNOB_MODE=0 581 | SLOT47_MIDI_CHANNEL=1 582 | SLOT30_TYPE=0 583 | SLOT177_COMMAND=Off 584 | SLOT188_KNOB_MODE=0 585 | SLOT147_MIDI_CHANNEL=0 586 | SLOT26_MIDI_CHANNEL=0 587 | SLOT4_SEND_VALUE=true 588 | SLOT167_NUMBER=0 589 | SLOT150_KNOB_MODE=0 590 | SLOT13_TYPE=-1 591 | SLOT159_MIDI_CHANNEL=0 592 | SLOT7_NUMBER=27 593 | SLOT160_COMMAND=Off 594 | SLOT55_KNOB_MODE=0 595 | SLOT124_MIDI_CHANNEL=0 596 | SLOT75_NUMBER=0 597 | SLOT1_COMMAND=Device\: Set Parameter 2 598 | SLOT135_MIDI_CHANNEL=0 599 | SLOT136_MIDI_CHANNEL=0 600 | SLOT33_COMMAND=Off 601 | SLOT142_TYPE=-1 602 | SLOT4_COMMAND=Device\: Set Parameter 5 603 | SLOT14_MIDI_CHANNEL=0 604 | SLOT15_MIDI_CHANNEL=0 605 | SLOT87_TYPE=-1 606 | SLOT97_COMMAND=Off 607 | SLOT34_NUMBER=0 608 | SLOT64_KNOB_MODE=0 609 | SLOT199_TYPE=-1 610 | SLOT83_COMMAND=Off 611 | SLOT141_KNOB_MODE=0 612 | SLOT149_TYPE=-1 613 | SLOT86_COMMAND=Off 614 | SLOT197_NUMBER=0 615 | SLOT163_COMMAND=Off 616 | SLOT45_NUMBER=25 617 | SLOT63_TYPE=0 618 | SLOT12_KNOB_MODE=0 619 | SLOT145_KNOB_MODE=0 620 | SLOT158_TYPE=-1 621 | SLOT175_TYPE=-1 622 | SLOT193_KNOB_MODE=0 623 | SLOT46_TYPE=0 624 | SLOT39_COMMAND=Off 625 | SLOT38_MIDI_CHANNEL=0 626 | SLOT110_COMMAND=Off 627 | SLOT36_MIDI_CHANNEL=0 628 | SLOT8_KNOB_MODE=0 629 | SLOT46_KNOB_MODE=1 630 | SLOT94_COMMAND=Off 631 | SLOT108_TYPE=-1 632 | SLOT112_MIDI_CHANNEL=0 633 | SLOT113_COMMAND=Off 634 | SLOT102_MIDI_CHANNEL=0 635 | SLOT36_COMMAND=Off 636 | SLOT15_NUMBER=35 637 | SLOT100_MIDI_CHANNEL=0 638 | SLOT114_MIDI_CHANNEL=0 639 | SLOT37_TYPE=-1 640 | SLOT169_MIDI_CHANNEL=0 641 | SLOT7_COMMAND=Device\: Set Parameter 8 642 | SLOT127_KNOB_MODE=0 643 | SLOT48_MIDI_CHANNEL=1 644 | SLOT25_COMMAND=Track\: Select Next Track 645 | SLOT56_NUMBER=36 646 | SLOT189_SEND_VALUE=false 647 | SLOT28_MIDI_CHANNEL=0 648 | SLOT101_TYPE=-1 649 | SLOT156_SEND_VALUE=false 650 | SLOT196_SEND_VALUE=false 651 | SLOT184_KNOB_MODE=0 652 | SLOT24_MIDI_CHANNEL=0 653 | SLOT53_NUMBER=33 654 | SLOT176_SEND_VALUE=false 655 | SLOT116_TYPE=-1 656 | SLOT129_SEND_VALUE=false 657 | SLOT157_MIDI_CHANNEL=0 658 | SLOT97_NUMBER=0 659 | SLOT103_MIDI_CHANNEL=0 660 | SLOT110_MIDI_CHANNEL=0 661 | SLOT109_SEND_VALUE=false 662 | SLOT94_NUMBER=0 663 | SLOT59_MIDI_CHANNEL=1 664 | SLOT188_COMMAND=Off 665 | SLOT102_KNOB_MODE=0 666 | SLOT133_MIDI_CHANNEL=0 667 | SLOT96_SEND_VALUE=false 668 | SLOT83_SEND_VALUE=false 669 | SLOT137_MIDI_CHANNEL=0 670 | SLOT60_KNOB_MODE=0 671 | SLOT109_KNOB_MODE=0 672 | SLOT56_SEND_VALUE=false 673 | SLOT76_SEND_VALUE=false 674 | SLOT138_MIDI_CHANNEL=0 675 | SLOT73_KNOB_MODE=0 676 | SLOT71_TYPE=0 677 | SLOT185_COMMAND=Off 678 | SLOT23_NUMBER=43 679 | SLOT152_COMMAND=Off 680 | SLOT16_SEND_VALUE=false 681 | SLOT36_SEND_VALUE=false 682 | SLOT121_COMMAND=Off 683 | SLOT134_TYPE=-1 684 | SLOT95_TYPE=-1 685 | SLOT116_SEND_VALUE=false 686 | SLOT166_COMMAND=Off 687 | SLOT51_KNOB_MODE=0 688 | SLOT22_TYPE=0 689 | SLOT12_NUMBER=32 690 | SLOT136_SEND_VALUE=false 691 | SLOT134_MIDI_CHANNEL=0 692 | SLOT64_NUMBER=44 693 | SLOT127_MIDI_CHANNEL=0 694 | SLOT123_MIDI_CHANNEL=0 695 | SLOT22_COMMAND=Device\: Select Previous Parameter Page 696 | SLOT197_KNOB_MODE=0 697 | SLOT98_KNOB_MODE=0 698 | SLOT148_MIDI_CHANNEL=0 699 | SLOT42_NUMBER=22 700 | SLOT25_MIDI_CHANNEL=0 701 | SLOT163_KNOB_MODE=0 702 | SLOT183_TYPE=-1 703 | SLOT158_MIDI_CHANNEL=0 704 | SLOT86_NUMBER=0 705 | SLOT169_COMMAND=Off 706 | SLOT38_TYPE=-1 707 | SLOT58_COMMAND=Browser\: Select Previous Filter in Column 3 708 | SLOT83_NUMBER=0 709 | SLOT124_COMMAND=Off 710 | SLOT144_MIDI_CHANNEL=0 711 | SLOT4_KNOB_MODE=0 712 | SLOT39_MIDI_CHANNEL=0 713 | SLOT63_SEND_VALUE=false 714 | SLOT192_TYPE=-1 715 | SLOT96_TYPE=-1 716 | SLOT35_MIDI_CHANNEL=0 717 | SLOT125_TYPE=-1 718 | SLOT127_COMMAND=Off 719 | SLOT149_KNOB_MODE=0 720 | SLOT43_SEND_VALUE=false 721 | SLOT136_KNOB_MODE=0 722 | SLOT29_TYPE=0 723 | SLOT123_KNOB_MODE=0 724 | SLOT23_SEND_VALUE=true 725 | SLOT100_TYPE=-1 726 | SLOT80_COMMAND=Off 727 | SLOT182_COMMAND=Off 728 | SLOT149_SEND_VALUE=false 729 | SLOT113_MIDI_CHANNEL=0 730 | SLOT37_KNOB_MODE=0 731 | SLOT168_MIDI_CHANNEL=0 732 | SLOT169_SEND_VALUE=false 733 | SLOT49_MIDI_CHANNEL=0 734 | SLOT80_TYPE=-1 735 | SLOT39_NUMBER=0 736 | SLOT128_MIDI_CHANNEL=0 737 | SLOT7_SEND_VALUE=true 738 | SLOT107_TYPE=-1 739 | SLOT4_NUMBER=24 740 | SLOT45_MIDI_CHANNEL=1 741 | SLOT120_KNOB_MODE=0 742 | SLOT28_TYPE=0 743 | SLOT105_KNOB_MODE=0 744 | SLOT120_MIDI_CHANNEL=0 745 | SLOT124_TYPE=-1 746 | SLOT158_KNOB_MODE=0 747 | SLOT22_MIDI_CHANNEL=0 748 | SLOT110_TYPE=-1 749 | SLOT164_NUMBER=0 750 | SLOT78_NUMBER=0 751 | SLOT141_COMMAND=Off 752 | SLOT143_MIDI_CHANNEL=0 753 | SLOT132_MIDI_CHANNEL=0 754 | SLOT86_KNOB_MODE=0 755 | SLOT132_NUMBER=0 756 | SLOT62_TYPE=0 757 | SLOT131_MIDI_CHANNEL=0 758 | SLOT167_TYPE=-1 759 | SLOT14_COMMAND=Off 760 | SLOT157_KNOB_MODE=0 761 | SLOT139_MIDI_CHANNEL=0 762 | SLOT0_KNOB_MODE=0 763 | SLOT77_KNOB_MODE=0 764 | SLOT106_KNOB_MODE=0 765 | SLOT64_COMMAND=Browser\: Select Next Filter in Column 1 766 | SLOT52_COMMAND=Off 767 | SLOT121_NUMBER=0 768 | SLOT29_MIDI_CHANNEL=0 769 | SLOT14_TYPE=-1 770 | SLOT189_MIDI_CHANNEL=0 771 | SLOT11_MIDI_CHANNEL=0 772 | SLOT44_MIDI_CHANNEL=1 773 | SLOT190_KNOB_MODE=0 774 | SLOT192_SEND_VALUE=false 775 | SLOT91_KNOB_MODE=0 776 | SLOT148_KNOB_MODE=0 777 | SLOT105_COMMAND=Off 778 | SLOT182_SEND_VALUE=false 779 | SLOT69_COMMAND=Browser\: Select Next Filter in Column 6 780 | SLOT76_KNOB_MODE=0 781 | SLOT175_NUMBER=0 782 | SLOT89_NUMBER=0 783 | SLOT69_TYPE=0 784 | SLOT67_NUMBER=47 785 | SLOT19_MIDI_CHANNEL=0 786 | SLOT179_MIDI_CHANNEL=0 787 | SLOT172_KNOB_MODE=0 788 | SLOT117_TYPE=-1 789 | SLOT118_MIDI_CHANNEL=0 790 | SLOT19_COMMAND=Device\: Expand 791 | SLOT32_MIDI_CHANNEL=0 792 | SLOT102_SEND_VALUE=false 793 | SLOT59_KNOB_MODE=0 794 | SLOT158_COMMAND=Off 795 | SLOT153_NUMBER=0 796 | SLOT34_MIDI_CHANNEL=0 797 | SLOT33_KNOB_MODE=0 798 | SLOT31_TYPE=0 799 | SLOT40_NUMBER=20 800 | SLOT142_SEND_VALUE=false 801 | SLOT112_SEND_VALUE=false 802 | SLOT152_SEND_VALUE=false 803 | SLOT162_KNOB_MODE=0 804 | SLOT175_KNOB_MODE=0 805 | SLOT146_COMMAND=Off 806 | SLOT196_COMMAND=Off 807 | SLOT153_MIDI_CHANNEL=0 808 | SLOT103_SEND_VALUE=false 809 | SLOT5_TYPE=0 810 | SLOT165_TYPE=-1 811 | SLOT72_TYPE=0 812 | SLOT21_KNOB_MODE=0 813 | SLOT43_MIDI_CHANNEL=1 814 | SLOT132_TYPE=-1 815 | SLOT36_TYPE=-1 816 | SLOT199_SEND_VALUE=false 817 | SLOT146_SEND_VALUE=false 818 | SLOT186_SEND_VALUE=false 819 | SLOT141_MIDI_CHANNEL=0 820 | SLOT122_MIDI_CHANNEL=0 821 | SLOT51_NUMBER=0 822 | SLOT133_SEND_VALUE=false 823 | SLOT102_TYPE=-1 824 | SLOT119_SEND_VALUE=false 825 | SLOT89_KNOB_MODE=0 826 | SLOT21_TYPE=0 827 | SLOT44_COMMAND=Off 828 | SLOT186_NUMBER=0 829 | SLOT181_NUMBER=0 830 | SLOT40_SEND_VALUE=false 831 | SLOT190_COMMAND=Off 832 | SLOT173_SEND_VALUE=false 833 | SLOT17_SEND_VALUE=true 834 | SLOT54_TYPE=0 835 | SLOT109_NUMBER=0 836 | SLOT143_NUMBER=0 837 | SLOT150_TYPE=-1 838 | SLOT171_COMMAND=Off 839 | SLOT93_SEND_VALUE=false 840 | SLOT54_MIDI_CHANNEL=1 841 | SLOT66_SEND_VALUE=false 842 | SLOT79_TYPE=-1 843 | SLOT132_KNOB_MODE=0 844 | SLOT154_NUMBER=0 845 | SLOT26_SEND_VALUE=true 846 | SLOT13_MIDI_CHANNEL=0 847 | SLOT110_NUMBER=0 848 | SLOT12_MIDI_CHANNEL=0 849 | SLOT149_MIDI_CHANNEL=0 850 | SLOT106_SEND_VALUE=false 851 | SLOT18_NUMBER=38 852 | SLOT147_COMMAND=Off 853 | SLOT116_COMMAND=Off 854 | SLOT129_MIDI_CHANNEL=0 855 | SLOT29_NUMBER=49 856 | SLOT34_KNOB_MODE=0 857 | SLOT121_MIDI_CHANNEL=0 858 | SLOT135_COMMAND=Off 859 | SLOT118_KNOB_MODE=0 860 | SLOT19_KNOB_MODE=0 861 | SLOT192_NUMBER=0 862 | SLOT159_NUMBER=0 863 | SLOT23_MIDI_CHANNEL=0 864 | SLOT3_TYPE=0 865 | SLOT75_COMMAND=Off 866 | SLOT109_TYPE=-1 867 | SLOT142_MIDI_CHANNEL=0 868 | SLOT160_TYPE=-1 869 | SLOT170_NUMBER=0 870 | SLOT90_KNOB_MODE=0 871 | SLOT126_NUMBER=0 872 | SLOT119_MIDI_CHANNEL=0 873 | SLOT53_SEND_VALUE=false 874 | SLOT137_NUMBER=0 875 | SLOT63_COMMAND=Browser\: Select Previous Filter in Column 8 876 | SLOT80_SEND_VALUE=false 877 | SLOT148_NUMBER=0 878 | SLOT33_MIDI_CHANNEL=0 879 | SLOT111_MIDI_CHANNEL=0 880 | SLOT1_KNOB_MODE=0 881 | SLOT101_MIDI_CHANNEL=0 882 | SLOT62_SEND_VALUE=false 883 | SLOT13_SEND_VALUE=false 884 | SLOT104_NUMBER=0 885 | SLOT133_KNOB_MODE=0 886 | SLOT157_TYPE=-1 887 | SLOT159_SEND_VALUE=false 888 | SLOT22_SEND_VALUE=true 889 | SLOT115_NUMBER=0 890 | SLOT64_TYPE=0 891 | SLOT152_MIDI_CHANNEL=0 892 | SLOT41_MIDI_CHANNEL=1 893 | SLOT61_TYPE=0 894 | SLOT47_KNOB_MODE=1 895 | SLOT1_NUMBER=21 896 | SLOT99_MIDI_CHANNEL=0 897 | SLOT10_COMMAND=Off 898 | SLOT185_TYPE=-1 899 | SLOT89_TYPE=-1 900 | SLOT136_COMMAND=Off 901 | SLOT63_KNOB_MODE=0 902 | SLOT82_SEND_VALUE=false 903 | SLOT168_COMMAND=Off 904 | SLOT165_NUMBER=0 905 | SLOT169_NUMBER=0 906 | SLOT9_NUMBER=29 907 | SLOT128_KNOB_MODE=0 908 | SLOT109_MIDI_CHANNEL=0 909 | SLOT9_KNOB_MODE=0 910 | SLOT42_COMMAND=Off 911 | SLOT74_COMMAND=Off 912 | SLOT73_NUMBER=0 913 | SLOT197_MIDI_CHANNEL=0 914 | SLOT99_KNOB_MODE=0 915 | SLOT186_MIDI_CHANNEL=0 916 | SLOT115_SEND_VALUE=false 917 | SLOT45_COMMAND=Off 918 | SLOT145_SEND_VALUE=false 919 | SLOT125_SEND_VALUE=false 920 | SLOT52_MIDI_CHANNEL=0 921 | SLOT151_KNOB_MODE=0 922 | SLOT175_SEND_VALUE=false 923 | SLOT9_TYPE=-1 924 | SLOT64_MIDI_CHANNEL=1 925 | SLOT195_SEND_VALUE=false 926 | SLOT32_NUMBER=7 927 | SLOT119_KNOB_MODE=0 928 | SLOT70_KNOB_MODE=0 929 | SLOT11_TYPE=-1 930 | SLOT80_NUMBER=0 931 | SLOT62_NUMBER=42 932 | SLOT118_TYPE=-1 933 | SLOT175_MIDI_CHANNEL=0 934 | SLOT19_SEND_VALUE=true 935 | SLOT173_MIDI_CHANNEL=0 936 | SLOT190_TYPE=-1 937 | SLOT38_KNOB_MODE=0 938 | SLOT158_NUMBER=0 939 | SLOT97_SEND_VALUE=false 940 | SLOT77_MIDI_CHANNEL=0 941 | SLOT87_SEND_VALUE=false 942 | SLOT85_TYPE=-1 943 | SLOT172_COMMAND=Off 944 | SLOT84_NUMBER=0 945 | SLOT5_SEND_VALUE=true 946 | SLOT75_MIDI_CHANNEL=0 947 | SLOT108_MIDI_CHANNEL=0 948 | SLOT197_TYPE=-1 949 | SLOT161_MIDI_CHANNEL=0 950 | SLOT176_NUMBER=0 951 | SLOT67_SEND_VALUE=false 952 | SLOT111_TYPE=-1 953 | SLOT117_NUMBER=0 954 | SLOT142_NUMBER=0 955 | SLOT131_NUMBER=0 956 | SLOT185_KNOB_MODE=0 957 | SLOT99_SEND_VALUE=false 958 | SLOT97_KNOB_MODE=0 959 | SLOT20_KNOB_MODE=0 960 | SLOT77_COMMAND=Off 961 | SLOT122_COMMAND=Off 962 | SLOT15_TYPE=-1 963 | SLOT69_SEND_VALUE=false 964 | SLOT79_SEND_VALUE=false 965 | SLOT168_TYPE=-1 966 | SLOT49_SEND_VALUE=false 967 | SLOT94_TYPE=-1 968 | SLOT139_NUMBER=0 969 | SLOT180_COMMAND=Off 970 | SLOT178_KNOB_MODE=0 971 | SLOT3_SEND_VALUE=true 972 | SLOT2_TYPE=0 973 | SLOT101_COMMAND=Off 974 | SLOT30_MIDI_CHANNEL=0 975 | SLOT101_KNOB_MODE=0 976 | SLOT128_NUMBER=0 977 | SLOT120_NUMBER=0 978 | SLOT179_COMMAND=Off 979 | SLOT181_TYPE=-1 980 | SLOT85_COMMAND=Off 981 | SLOT91_NUMBER=0 982 | SLOT195_MIDI_CHANNEL=0 983 | SLOT5_KNOB_MODE=0 984 | SLOT124_KNOB_MODE=0 985 | SLOT53_COMMAND=Browser\: Cancel Selection 986 | SLOT143_SEND_VALUE=false 987 | SLOT52_TYPE=-1 988 | SLOT97_MIDI_CHANNEL=0 989 | SLOT160_SEND_VALUE=false 990 | SLOT6_TYPE=0 991 | SLOT131_KNOB_MODE=0 992 | SLOT164_MIDI_CHANNEL=0 993 | SLOT176_KNOB_MODE=0 994 | SLOT55_MIDI_CHANNEL=1 995 | SLOT163_SEND_VALUE=false 996 | SLOT199_MIDI_CHANNEL=0 997 | SLOT140_SEND_VALUE=false 998 | SLOT36_KNOB_MODE=0 999 | SLOT19_TYPE=0 1000 | SLOT2_COMMAND=Device\: Set Parameter 3 1001 | SLOT157_COMMAND=Off 1002 | SLOT112_COMMAND=Off 1003 | SLOT183_KNOB_MODE=0 1004 | SLOT130_MIDI_CHANNEL=0 1005 | SLOT164_TYPE=-1 1006 | SLOT184_MIDI_CHANNEL=0 1007 | SLOT31_COMMAND=Transport\: Toggle Record 1008 | SLOT147_NUMBER=0 1009 | SLOT68_TYPE=0 1010 | SLOT50_COMMAND=Off 1011 | SLOT66_MIDI_CHANNEL=1 1012 | SLOT115_TYPE=-1 1013 | SLOT94_SEND_VALUE=false 1014 | SLOT188_MIDI_CHANNEL=0 1015 | SLOT103_KNOB_MODE=0 1016 | SLOT133_COMMAND=Off 1017 | SLOT72_KNOB_MODE=0 1018 | SLOT135_TYPE=-1 1019 | SLOT188_TYPE=-1 1020 | SLOT161_COMMAND=Off 1021 | SLOT45_KNOB_MODE=0 1022 | SLOT39_TYPE=-1 1023 | SLOT127_SEND_VALUE=false 1024 | SLOT144_TYPE=-1 1025 | SLOT21_MIDI_CHANNEL=0 1026 | SLOT14_SEND_VALUE=false 1027 | SLOT191_COMMAND=Off 1028 | SLOT187_SEND_VALUE=false 1029 | SLOT32_TYPE=0 1030 | SLOT34_SEND_VALUE=false 1031 | SLOT88_COMMAND=Off 1032 | SLOT50_SEND_VALUE=false 1033 | SLOT86_MIDI_CHANNEL=0 1034 | SLOT178_SEND_VALUE=false 1035 | SLOT65_KNOB_MODE=0 1036 | SLOT198_TYPE=-1 1037 | SLOT70_SEND_VALUE=false 1038 | SLOT11_KNOB_MODE=0 1039 | SLOT198_SEND_VALUE=false 1040 | SLOT52_SEND_VALUE=false 1041 | SLOT150_MIDI_CHANNEL=0 1042 | SLOT117_MIDI_CHANNEL=0 1043 | SLOT28_NUMBER=48 1044 | SLOT48_TYPE=-1 1045 | SLOT17_NUMBER=37 1046 | SLOT32_SEND_VALUE=false 1047 | SLOT34_COMMAND=Off 1048 | SLOT55_COMMAND=Browser\: Browse Presets 1049 | SLOT138_TYPE=-1 1050 | SLOT37_NUMBER=0 1051 | SLOT55_SEND_VALUE=false 1052 | SLOT6_NUMBER=26 1053 | SLOT149_COMMAND=Off 1054 | SLOT93_KNOB_MODE=0 1055 | SLOT23_COMMAND=Device\: Select Next Parameter Page 1056 | SLOT40_KNOB_MODE=1 1057 | SLOT141_TYPE=-1 1058 | SLOT8_MIDI_CHANNEL=0 1059 | SLOT76_NUMBER=0 1060 | SLOT88_TYPE=-1 1061 | SLOT180_KNOB_MODE=0 1062 | SLOT57_MIDI_CHANNEL=1 1063 | SLOT108_COMMAND=Off 1064 | SLOT16_KNOB_MODE=0 1065 | SLOT134_NUMBER=0 1066 | SLOT41_KNOB_MODE=0 1067 | SLOT118_SEND_VALUE=false 1068 | SLOT114_COMMAND=Off 1069 | SLOT68_MIDI_CHANNEL=1 1070 | SLOT85_SEND_VALUE=false 1071 | SLOT123_NUMBER=0 1072 | SLOT10_MIDI_CHANNEL=0 1073 | SLOT170_MIDI_CHANNEL=0 1074 | SLOT150_COMMAND=Off 1075 | SLOT0_SEND_VALUE=true 1076 | SLOT193_COMMAND=Off 1077 | SLOT174_TYPE=-1 1078 | SLOT15_KNOB_MODE=0 1079 | SLOT46_MIDI_CHANNEL=1 1080 | SLOT78_TYPE=-1 1081 | SLOT177_MIDI_CHANNEL=0 1082 | SLOT79_MIDI_CHANNEL=0 1083 | SLOT172_SEND_VALUE=false 1084 | SLOT61_MIDI_CHANNEL=1 1085 | SLOT28_COMMAND=Transport\: Toggle Repeat 1086 | SLOT48_NUMBER=35 1087 | SLOT104_MIDI_CHANNEL=0 1088 | SLOT105_TYPE=-1 1089 | SLOT81_TYPE=-1 1090 | SLOT106_MIDI_CHANNEL=0 1091 | SLOT190_NUMBER=0 1092 | SLOT182_KNOB_MODE=0 1093 | SLOT191_TYPE=-1 1094 | SLOT101_SEND_VALUE=false 1095 | SLOT187_COMMAND=Off 1096 | SLOT12_TYPE=-1 1097 | SLOT155_COMMAND=Off 1098 | SLOT155_KNOB_MODE=0 1099 | SLOT61_COMMAND=Browser\: Select Previous Filter in Column 6 1100 | SLOT106_NUMBER=0 1101 | SLOT190_SEND_VALUE=false 1102 | SLOT131_SEND_VALUE=false 1103 | SLOT1_MIDI_CHANNEL=0 1104 | SLOT94_KNOB_MODE=0 1105 | SLOT122_SEND_VALUE=false 1106 | SLOT155_MIDI_CHANNEL=0 1107 | SLOT91_TYPE=-1 1108 | SLOT69_KNOB_MODE=0 1109 | SLOT181_SEND_VALUE=false 1110 | SLOT184_TYPE=-1 1111 | SLOT26_NUMBER=46 1112 | SLOT43_KNOB_MODE=0 1113 | SLOT119_COMMAND=Off 1114 | SLOT166_SEND_VALUE=false 1115 | SLOT126_MIDI_CHANNEL=0 1116 | SLOT54_NUMBER=34 1117 | SLOT189_NUMBER=0 1118 | SLOT113_SEND_VALUE=false 1119 | SLOT59_NUMBER=39 1120 | SLOT93_NUMBER=0 1121 | SLOT110_SEND_VALUE=false 1122 | SLOT13_KNOB_MODE=0 1123 | SLOT138_COMMAND=Off 1124 | SLOT12_COMMAND=Off 1125 | SLOT184_NUMBER=0 1126 | SLOT72_COMMAND=Master\: Set Volume 1127 | SLOT98_NUMBER=0 1128 | SLOT193_SEND_VALUE=false 1129 | SLOT35_TYPE=-1 1130 | SLOT125_COMMAND=Off 1131 | SLOT194_TYPE=-1 1132 | SLOT91_COMMAND=Off 1133 | SLOT73_SEND_VALUE=false 1134 | SLOT20_SEND_VALUE=true 1135 | SLOT67_KNOB_MODE=0 1136 | SLOT50_MIDI_CHANNEL=0 1137 | SLOT6_KNOB_MODE=0 1138 | SLOT65_TYPE=0 1139 | SLOT47_COMMAND=Browser\: Scroll presets 1140 | SLOT148_TYPE=-1 1141 | SLOT8_SEND_VALUE=false 1142 | SLOT156_NUMBER=0 1143 | SLOT17_MIDI_CHANNEL=0 1144 | SLOT37_SEND_VALUE=false 1145 | SLOT145_NUMBER=0 1146 | SLOT161_TYPE=-1 1147 | SLOT66_COMMAND=Browser\: Select Next Filter in Column 3 1148 | SLOT125_KNOB_MODE=0 1149 | SLOT46_SEND_VALUE=false 1150 | SLOT96_KNOB_MODE=0 1151 | SLOT98_TYPE=-1 1152 | SLOT101_NUMBER=0 1153 | SLOT10_NUMBER=30 1154 | SLOT131_TYPE=-1 1155 | SLOT21_NUMBER=41 1156 | SLOT112_NUMBER=0 1157 | SLOT154_KNOB_MODE=0 1158 | SLOT82_NUMBER=0 1159 | SLOT9_COMMAND=Off 1160 | SLOT65_NUMBER=45 1161 | SLOT91_SEND_VALUE=false 1162 | SLOT43_NUMBER=23 1163 | SLOT146_MIDI_CHANNEL=0 1164 | SLOT195_NUMBER=0 1165 | SLOT55_TYPE=0 1166 | SLOT7_KNOB_MODE=0 1167 | SLOT64_SEND_VALUE=false 1168 | SLOT126_KNOB_MODE=0 1169 | SLOT157_SEND_VALUE=false 1170 | SLOT87_NUMBER=0 1171 | SLOT144_COMMAND=Off 1172 | SLOT100_KNOB_MODE=0 1173 | SLOT174_COMMAND=Off 1174 | SLOT11_SEND_VALUE=false 1175 | SLOT60_NUMBER=40 1176 | SLOT90_MIDI_CHANNEL=0 1177 | SLOT179_KNOB_MODE=0 1178 | SLOT42_KNOB_MODE=0 1179 | SLOT173_NUMBER=0 1180 | SLOT128_TYPE=-1 1181 | SLOT95_KNOB_MODE=0 1182 | SLOT68_KNOB_MODE=0 1183 | SLOT178_NUMBER=0 1184 | SLOT37_MIDI_CHANNEL=0 1185 | SLOT148_SEND_VALUE=false 1186 | SLOT153_KNOB_MODE=0 1187 | SLOT151_NUMBER=0 1188 | SLOT162_NUMBER=0 1189 | SLOT14_KNOB_MODE=0 1190 | SLOT166_MIDI_CHANNEL=0 1191 | SLOT70_MIDI_CHANNEL=1 1192 | SLOT140_NUMBER=0 1193 | SLOT88_MIDI_CHANNEL=0 1194 | SLOT198_COMMAND=Off 1195 | SLOT45_TYPE=-1 1196 | SLOT96_COMMAND=Off 1197 | SLOT139_SEND_VALUE=false 1198 | SLOT120_COMMAND=Off 1199 | SLOT151_TYPE=-1 1200 | SLOT115_MIDI_CHANNEL=0 1201 | SLOT17_COMMAND=Device\: Select Next 1202 | SLOT181_KNOB_MODE=0 1203 | -------------------------------------------------------------------------------- /Axyz Gems.littlefoot: -------------------------------------------------------------------------------- 1 | /* 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | */ 65 | 66 | 67 | // heapsize: ((1 + samples) * (gems * axyz * signif) TODO 1/5 68 | #heapsize: ((1 + 4) * (5 * 3 * 2)) 69 | 70 | /* 71 | * Heap layout is as follows: 72 | * gems 0 - 4, per axyz (x,y,z) 2 bytes 73 | * byte 0 MSB 74 | * byte 1 LSB 75 | * 76 | */ 77 | 78 | int maxSamples; 79 | int maxGems; 80 | int maxAxyz; 81 | int maxSignif; 82 | 83 | int heapOffset(int sample, int gem, int axyz, int signif) 84 | { 85 | int result = 0; 86 | 87 | if (sample >= 0 && sample < maxSamples && gem >=0 && gem < maxGems && axyz >=0 && axyz < maxAxyz && signif >= 0 && signif < maxSignif) { 88 | result = (sample * maxGems * maxAxyz * maxSignif) + (gem * maxAxyz * maxSignif) + (axyz * maxSignif) + signif; 89 | } 90 | return result; 91 | } 92 | 93 | 94 | bool gammaCorrected; 95 | 96 | int repaintCounter; 97 | int performStamp; 98 | int buttonStamp; 99 | int breathCounter; 100 | int clockStamp; 101 | int clockCounter; 102 | int beatCounter; 103 | int pulseCounter; 104 | bool playing; 105 | int touching; 106 | int touchBits; 107 | int sampleIndex; 108 | bool playback; 109 | int recordCount; 110 | 111 | bool beat4; 112 | bool beat8; 113 | bool beat16; 114 | 115 | int send; 116 | bool beat; 117 | bool setup; 118 | 119 | void initialise() 120 | { 121 | maxSamples = 5; // 1 + (4 * beat) 122 | maxGems = 5; 123 | maxAxyz = 3; 124 | maxSignif = 2; 125 | 126 | repaintCounter = 0; 127 | performStamp = 0; 128 | clockStamp = 0; 129 | beatCounter = -1; 130 | sampleIndex = -1; 131 | clockCounter = 0; 132 | pulseCounter = -1; 133 | playing = false; 134 | beat4 = false; 135 | beat8 = false; 136 | beat16 = false; 137 | touching = 0; 138 | touchBits = 0; 139 | playback = false; 140 | recordCount = ((recorder == 1) ? 4 : ((recorder == 2) ? 8 : 0)); 141 | 142 | ensurePrimariIsActive(); 143 | 144 | send = 0; 145 | beat = false; 146 | setup = false; 147 | 148 | for (int i = 0; i < 32; ++i) { 149 | setLocalConfigActiveState (i, false, false); 150 | } 151 | 152 | setLocalConfig (33, 1); 153 | gammaCorrected = getLocalConfig (33); 154 | 155 | clearData(); 156 | } 157 | 158 | /* gem is 1-based */ 159 | bool isActive(int gem) { 160 | if (active == 0) { // All Gems 161 | if (gem >= 1 && gem <= 5) return true; 162 | } else if (active == 1) { // Gem 1 163 | if (gem == 1) return true; 164 | } else if (active == 2) { // Gem 2 165 | if (gem == 2) return true; 166 | } else if (active == 3) { // Gem 3 167 | if (gem == 3) return true; 168 | } else if (active == 4) { // Gem 4 169 | if (gem == 4) return true; 170 | } else if (active == 5) { // Gem 5 171 | if (gem == 5) return true; 172 | } else if (active == 6) { // Only Gems 2-5 173 | if (gem >= 2 && gem <= 5) return true; 174 | // } else if (active == 7) { // MultiPad Gems 2-5 175 | // if (gem >= 2 && gem <= 5) return true; 176 | } 177 | return false; 178 | } 179 | 180 | /* index is 1-based */ 181 | int index2gem(int index) { 182 | int result = 0; 183 | if (active == 0) { // All Gems 184 | if (index >= 1 && index <= 5) result = index; 185 | } else if (active == 1) { // Gem 1 186 | if (index == 1) result = 1; 187 | } else if (active == 2) { // Gem 2 188 | if (index == 1) result = 2; 189 | } else if (active == 3) { // Gem 3 190 | if (index == 1) result = 3; 191 | } else if (active == 4) { // Gem 4 192 | if (index == 1) result = 4; 193 | } else if (active == 5) { // Gem 5 194 | if (index == 1) result = 5; 195 | } else if (active == 6) { // Only Gems 2-5 196 | if (index >= 1 && index <= 4) result = index + 1; 197 | // } else if (active == 7) { // MultiPad Gems 2-5 198 | // if (index == 1) result = index + 1; 199 | } 200 | 201 | if (result) { 202 | result = ((((active == 0?(primary - 1):(active == 6?(primary - 2):0)) + result) - 1) % 5) + 1; 203 | int count=0; 204 | while (!isActive(result) && count outMax ? outMax : mapped) ); 354 | } 355 | 356 | void performCC (float v, int cc, float inMin, float inMax, bool invert, int axyz, bool output, int index) 357 | { 358 | int value = (mapTouchToRange (v, inMin, inMax, 16383.0)); 359 | 360 | // if (axyz == 0 && index==1) { 361 | // log ((value >> 7) & 0x7F); 362 | // log ((value >> 0) & 0x7F); 363 | // log(99999999); 364 | // output=true; 365 | // } else { 366 | // output=false; 367 | // } 368 | // 369 | // 370 | 371 | if (invert) value = value + 1; 372 | int valueMSB = (value >> 7) & 0x7F; 373 | if (invert) valueMSB = 127 - valueMSB; 374 | if (sampleIndex>=0) setHeapByte( heapOffset(sampleIndex+1, index, axyz, 0), valueMSB); 375 | int offsetMSB = heapOffset(0, index, axyz, 0); // (index * 3 * 2) + (axyz * 2) + 0; 376 | int oldMSB = getHeapByte(offsetMSB); 377 | if (oldMSB != valueMSB) { 378 | setHeapByte( offsetMSB, valueMSB); 379 | if (output) sendCC((channel - 1), cc, valueMSB); 380 | } 381 | 382 | int valueLSB = (value >> 0) & 0x7F; 383 | if (invert) valueLSB = 127 - valueLSB; 384 | if (sampleIndex>=0) setHeapByte( heapOffset(sampleIndex+1, index, axyz, 1), valueLSB); 385 | int offsetLSB = heapOffset(0, index, axyz, 1); // (index * 3 * 2) + (axyz * 2) + 1; 386 | int oldLSB = getHeapByte(offsetLSB); 387 | if (oldLSB != valueLSB) { 388 | setHeapByte( offsetLSB, valueLSB); 389 | if (output && highres && cc < 32) sendCC((channel - 1), cc + 32, valueLSB); 390 | } 391 | performStamp = repaintCounter; 392 | } 393 | 394 | 395 | void handleGem(int g, float x, float y, float z, float vz) 396 | { 397 | if (g >= 0 && g < 5) { 398 | if (z > 0.0 && zscale != 0.0 && z > zthreshold) { 399 | if (( (1.0 - zthreshold) / (z - zthreshold) ) != 0.0 ) { 400 | float scale = 1.0 + (zscale * ( 1.0 / ( (1.0 - zthreshold) / (z - zthreshold) ) ) ); 401 | 402 | x = min(max (((x - 1.0) * scale) + 1.0, 0.0), 2.0 - 0.07); 403 | y = min(max (((y - 1.0) * scale) + 1.0, 0.0), 2.0 - 0.07); 404 | } 405 | } 406 | 407 | performCC(x, getXCC(g), 0.0 + 7.0, 200.0 - 7.0, false, 0, true, g); 408 | performCC(y, getYCC(g), 0.0 + 7.0, 200.0 - 7.0, true, 1, true, g); 409 | performCC(z, getZCC(g), 0.0, 100.0, false, 2, true, g); 410 | } 411 | } 412 | 413 | 414 | void handleSetup(float x, float y) 415 | { 416 | int px = int(map(x, 0.07, 1.93, 0.0, 14.0)); 417 | int py = int(map(y, 0.07, 1.93, 0.0, 14.0)); 418 | int pg = -1; 419 | 420 | if (px == 0) { 421 | if (py < 4) { // Beat toggle 422 | beat = !beat; 423 | setup = false; 424 | } else if (py < 8) { // Reset Gems (center) 425 | resetToCenter(); 426 | setup = false; 427 | } else if (py < 12) { // Multitouch toggle 428 | multitouch = !multitouch; 429 | setup = false; 430 | } 431 | } else if (px == 14) { 432 | if (py < 4) { // Record Off 433 | recorder = 0; 434 | recordCount = 0; 435 | sampleIndex = 0; 436 | playing = false; 437 | setup = false; 438 | } else if (py < 8) { // Record On (4) 439 | recorder = 1; 440 | recordCount = 4; 441 | setup = false; 442 | } else if (py < 12) { 443 | // recorder = 2; 444 | // recordCount = 8; 445 | // setup = false; 446 | } 447 | } else { 448 | if (py < 6 ) { 449 | if ( px < 6) { 450 | send = 1; 451 | } else if (px < 10) { 452 | send = 2; 453 | } else if (px < 14) { 454 | send = 3; 455 | } 456 | } else if (py < 11) { 457 | if (px < 8) { 458 | pg = 1; 459 | 460 | } else { 461 | pg = 3; 462 | } 463 | } else { 464 | if (px < 5) { 465 | pg = 0; 466 | } else if (px < 10) { 467 | pg = 2; 468 | } else { 469 | pg = 4; 470 | } 471 | } 472 | } 473 | if (pg>=0 && isActive(pg+1)) { 474 | primary = pg + 1; 475 | /* only send the MSB values */ 476 | if (send ==0 || send ==1) sendCC((channel - 1), getXCC(pg), 64); 477 | if (send ==0 || send ==2) sendCC((channel - 1), getYCC(pg), 64); 478 | if (send ==0 || send ==3) sendCC((channel - 1), getZCC(pg), 64); 479 | } 480 | } 481 | 482 | void resetToCenter() 483 | { 484 | for (int gem = 1; gem <= maxGems; gem++) { 485 | if (isActive(gem)) handleGem(gem-1, 1.0, 1.0, 0.0, 0.0); 486 | } 487 | clearData(); 488 | } 489 | 490 | void clearData() 491 | { 492 | for (int s = 0; s <= maxSamples; s++) { 493 | for (int g = 0; g < maxGems; g++) { 494 | for (int a = 0; a < maxAxyz; a++) { 495 | for (int b = 0; b < maxSignif; b++) { 496 | setHeapByte( heapOffset(s,g,a,b), 0xFF); 497 | } 498 | } 499 | } 500 | } 501 | } 502 | 503 | void handleTouch(int index, float x, float y, float z, float vz, bool start) 504 | { 505 | if (index == 1 && x < 0.079 && y < 0.079) { 506 | if (start && repaintCounter > (performStamp + 7)) { 507 | primary = primary == 2 ? 0 : 2; 508 | ensurePrimariIsActive(); 509 | performStamp = repaintCounter; 510 | } 511 | } else if (index == 1 && x < 0.079 && y > 1.923) { 512 | if (start && repaintCounter > (performStamp + 7)) { 513 | primary = primary == 4 ? 0 : 4; 514 | ensurePrimariIsActive(); 515 | performStamp = repaintCounter; 516 | } 517 | } else if (index == 1 && x > 1.923 && y < 0.079) { 518 | if (start && repaintCounter > (performStamp + 7)) { 519 | primary = primary == 3 ? 0 : 3; 520 | ensurePrimariIsActive(); 521 | performStamp = repaintCounter; 522 | } 523 | } else if (index == 1 && x > 1.923 && y > 1.923) { 524 | if (start && repaintCounter > (performStamp + 7)) { 525 | primary = primary == 5 ? 0 : 5; 526 | ensurePrimariIsActive(); 527 | performStamp = repaintCounter; 528 | } 529 | } else { 530 | int gem = index2gem(index); 531 | if (gem) { 532 | handleGem(gem-1, x, y, z, vz); 533 | fadePressureMap(); 534 | } 535 | } 536 | } 537 | 538 | void touchStart (int index, float x, float y, float z, float vz) 539 | { 540 | touching ++; 541 | if (index >= 1 && index <= 5 && index2gem(index)) { 542 | if (index==1 || multitouch) { 543 | touchBits = touchBits | (1 << (index - 1)); 544 | // log(touchBits); 545 | if (!setup) { 546 | handleTouch(index, rotateX(x, y, 0.0, 2.0, 0), rotateY(x, y, 0.0, 2.0, 0), z, vz, true); 547 | } 548 | } 549 | } 550 | } 551 | 552 | void touchMove (int index, float x, float y, float z, float vz) 553 | { 554 | if (index >= 1 && index <= 5 && index2gem(index)) { 555 | if (index==1 || multitouch) { 556 | touchBits = touchBits | (1 << (index - 1)); 557 | // log(touchBits); 558 | if (!setup) { 559 | handleTouch(index, rotateX(x, y, 0.0, 2.0, 0), rotateY(x, y, 0.0, 2.0, 0), z, vz, false); 560 | } 561 | } 562 | } 563 | } 564 | 565 | void touchEnd(int index, float x, float y, float z, float vz) 566 | { 567 | touching --; 568 | if (((multitouch && index >= 1 && index <= 5) || (!multitouch && index==1)) && index2gem(index)) { 569 | touchBits = touchBits & ~(1 << (index - 1)); 570 | //// log(touchBits); 571 | if (setup) { 572 | handleSetup(rotateX(x, y, 0.0, 2.0, 0), rotateY(x, y, 0.0, 2.00, 0)); 573 | } 574 | } else { 575 | if (((multitouch && (index < 1 || index > (active == 6 ? 4 : 5) )) || (!multitouch && index>2))) resetToCenter(); 576 | } 577 | } 578 | 579 | void handleButtonDown(int index) { 580 | if (setup) { 581 | setup = false; 582 | } else { 583 | buttonStamp = repaintCounter; 584 | } 585 | } 586 | 587 | void ensurePrimariIsActive() { 588 | int count=0; 589 | while (!isActive(primary) && count < maxGems) { 590 | count++; 591 | primary++; 592 | } 593 | } 594 | 595 | void handleButtonUp(int index) { 596 | if ((repaintCounter - buttonStamp) <=12) { 597 | primary = primary >= 5 ? 1 : primary + 1; 598 | ensurePrimariIsActive(); 599 | } 600 | buttonStamp = 0; 601 | } 602 | 603 | 604 | void drawDot(int c,int a,int x,int y) 605 | { 606 | if (x < 0) x = 0; 607 | if (x > 14) x = 14; 608 | if (y < 0) y = 0; 609 | if (y > 14) y = 14; 610 | blendPixel(c | (a << 24), int(rotateX(float(x), float(y), 0.0, 14.0, 1)), int(rotateY(float(x), float(y), 0.0, 14.0, 1))); 611 | } 612 | 613 | 614 | int getColourVariation(int index) 615 | { 616 | int c = getColour(index); 617 | int max = 0xFFFFFF; 618 | int rnd = getRnd(index); 619 | if (clockCounter>=0) { 620 | if (beat4) { 621 | rnd = getRandomInt(max); 622 | setRnd(index,rnd); 623 | } 624 | } else { 625 | if (!(repaintCounter % 25)) { 626 | rnd = getRandomInt(max); 627 | setRnd(index,rnd); 628 | } 629 | } 630 | int b0 = (c >> 24) & 0xFF; 631 | int b1 = (c >> 16) & 0xFF; 632 | int b2 = (c >> 8) & 0xFF; 633 | int b3 = (c >> 0) & 0xFF; 634 | 635 | 636 | int delta = 4; 637 | if ((rnd % 4) == 0) b0 = b0 + ((rnd % delta) - (delta / 2)); 638 | if ((rnd % 4) == 1) b1 = b1 + ((rnd % delta) - (delta / 2)); 639 | if ((rnd % 4) == 2) b2 = b2 + ((rnd % delta) - (delta / 2)); 640 | if ((rnd % 4) == 3) b3 = b3 + ((rnd % delta) - (delta / 2)); 641 | 642 | return c; 643 | } 644 | 645 | int getColour(int index) 646 | { 647 | if (index == 0) return dot1; 648 | if (index == 1) return dot2; 649 | if (index == 2) return dot3; 650 | if (index == 3) return dot4; 651 | if (index == 4) return dot5; 652 | 653 | return 0xFFFFFF; 654 | } 655 | 656 | void drawSetup() 657 | { 658 | int xo = 2; 659 | int yo = 1; 660 | //drawNumber (99, 0x7FFFFFFF, 0, 0); 661 | 662 | int c = 0xFFFFFF; 663 | int a; 664 | 665 | a = (send == 1) ? 0xFF : 0x7F; 666 | 667 | // X shape 668 | drawDot(c, a, xo + 0, yo + 0); 669 | drawDot(c, a, xo + 2, yo + 0); 670 | drawDot(c, a, xo + 0, yo + 1); 671 | drawDot(c, a, xo + 2, yo + 1); 672 | drawDot(c, a, xo + 1, yo + 2); 673 | drawDot(c, a, xo + 0, yo + 3); 674 | drawDot(c, a, xo + 2, yo + 3); 675 | drawDot(c, a, xo + 0, yo + 4); 676 | drawDot(c, a, xo + 2, yo + 4); 677 | 678 | 679 | xo += 4; 680 | a = (send == 2) ? 0xFF : 0x7F; 681 | 682 | // Y shape 683 | drawDot(c, a, xo + 0, yo + 0); 684 | drawDot(c, a, xo + 2, yo + 0); 685 | drawDot(c, a, xo + 0, yo + 1); 686 | drawDot(c, a, xo + 2, yo + 1); 687 | drawDot(c, a, xo + 1, yo + 2); 688 | drawDot(c, a, xo + 1, yo + 3); 689 | drawDot(c, a, xo + 1, yo + 4); 690 | 691 | xo += 4; 692 | a = (send == 3) ? 0xFF : 0x7F; 693 | 694 | // Y shape 695 | drawDot(c, a, xo + 0, yo + 0); 696 | drawDot(c, a, xo + 1, yo + 0); 697 | drawDot(c, a, xo + 2, yo + 0); 698 | drawDot(c, a, xo + 2, yo + 1); 699 | drawDot(c, a, xo + 1, yo + 2); 700 | drawDot(c, a, xo + 0, yo + 3); 701 | drawDot(c, a, xo + 0, yo + 4); 702 | drawDot(c, a, xo + 1, yo + 4); 703 | drawDot(c, a, xo + 2, yo + 4); 704 | 705 | drawDot(0x00FF7F00, 0x4F, 0, 1); 706 | drawDot(0x00FF7F00, 0x7F, 0, 2); 707 | drawDot(0x00FF7F00, 0x4F, 0, 3); 708 | 709 | drawDot(0x00FFFF00, 0x4F, 0, 5); 710 | drawDot(0x00FFFF00, 0x7F, 0, 6); 711 | drawDot(0x00FFFF00, 0x4F, 0, 7); 712 | 713 | drawDot(0x0000FFFF, 0x4F, 0, 9); 714 | drawDot(0x0000FFFF, 0x7F, 0, 10); 715 | drawDot(0x0000FFFF, 0x4F, 0, 11); 716 | 717 | drawDot(0x000000FF, 0x4F, 14, 1); 718 | drawDot(0x000000FF, 0x7F, 14, 2); 719 | drawDot(0x000000FF, 0x4F, 14, 3); 720 | 721 | drawDot(0x0000FF00, 0x4F, 14, 5); 722 | drawDot(0x0000FF00, 0x7F, 14, 6); 723 | drawDot(0x0000FF00, 0x4F, 14, 7); 724 | 725 | // drawDot(0x000000FF, 0x4F, 14, 9); 726 | // drawDot(0x000000FF, 0x7F, 14, 10); 727 | // drawDot(0x000000FF, 0x4F, 14, 11); 728 | 729 | drawPressureMap(); 730 | for (int p = 0; p<5; p++) { 731 | float flame = getFlame(p); 732 | if (!(repaintCounter % 5)) { 733 | flame = getRandomFloat(); 734 | setFlame(p,flame); 735 | } 736 | float xf = map(((2.0 / 5)*p)+0.1, 0.0, 2.0, 0.07, 1.93); 737 | float yf = (p % 2) ? 1.1 : 1.65; 738 | addPressurePoint(getColourVariation(p), rotateX(xf, yf, 0.07, 1.93, 1), rotateY(xf, yf, 0.07, 1.93, 1), (((4 ) * 5.0) + (flame * 5)) + (0.3 * 75.0) ); 739 | if (p == (primary - 1)) { 740 | xf *= 7.5; 741 | yf *= 7.5; 742 | blendCircle(0xFFFFFFFF,rotateX(xf, yf, 0.0, 15.0, 1), rotateY(xf, yf, 0.0, 15.0, 1), 0.4, true); 743 | } 744 | 745 | } 746 | fadePressureMap(); 747 | } 748 | 749 | 750 | void drawGems() 751 | { 752 | if (primary == 2) { 753 | drawDot(getColour(primary-1), 0x4F, 0, 0); 754 | } else if (primary == 4) { 755 | drawDot(getColour(primary-1), 0x4F, 0, 14); 756 | } else if (primary == 3) { 757 | drawDot(getColour(primary-1), 0x4F, 14, 0); 758 | } else if (primary == 5) { 759 | drawDot(getColour(primary-1), 0x4F, 14, 14); 760 | } 761 | // if (active == 7) { 762 | // for (int x=0;x<15;x++) drawDot(0xFFFFFF, 0x4F, x, 8); 763 | // } 764 | 765 | for (int o=4; o>=0; o--) { 766 | int p = ((primary - 1) + o) % 5; 767 | 768 | float flame = getFlame(p); 769 | if (clockCounter>=0) { 770 | if (!(clockCounter % 3)) { 771 | flame = getRandomFloat(); 772 | setFlame(p,flame); 773 | } 774 | } else { 775 | if (!(repaintCounter % 3)) { 776 | flame = getRandomFloat(); 777 | setFlame(p,flame); 778 | } 779 | } 780 | 781 | int x = getHeapByte( heapOffset(0, p, 0, 0) ); 782 | int y = getHeapByte( heapOffset(0, p, 1, 0) ); 783 | int z = getHeapByte( heapOffset(0, p, 2, 0) ); 784 | 785 | if (x > 127 && y > 127) continue; 786 | if (x > 127) x = 63; 787 | if (y > 127) y = 63; 788 | if (z > 127) z = 0; 789 | 790 | float xf = map(float(x), 0.0, 127.0, 0.07, 1.93); 791 | float yf = map(float(y), 0.0, 127.0, 1.93, 0.07); 792 | float zf = map(float(z), 0.0, 127.0, 0.0, 1.0); 793 | 794 | float scale = (((4 - o) * 8.0) + (flame * 24)) + (zf * 75.0); 795 | if (beat4) { 796 | addPressurePoint (getColourVariation(p), rotateX(xf, yf, 0.07, 1.93, 1), rotateY(xf, yf, 0.07, 1.93, 1), (((5 - o) * 16.0) + (flame * 24)) + (zf * 75.0)); 797 | } else { 798 | addPressurePoint (getColourVariation(p), rotateX(xf, yf, 0.07, 1.93, 1), rotateY(xf, yf, 0.07, 1.93, 1), scale ); 799 | } 800 | } 801 | 802 | 803 | drawPressureMap(); 804 | fadePressureMap(); 805 | 806 | for (int o=4; o>=0; o--) { 807 | int p = ((primary - 1) + o) % 5; 808 | 809 | int x = getHeapByte( heapOffset(0, p, 0, 0) ); 810 | int y = getHeapByte( heapOffset(0, p, 1, 0) ); 811 | 812 | if (x > 127 && y > 127) continue; 813 | if (x > 127) x = 63; 814 | if (y > 127) y = 63; 815 | 816 | float xf = map(float(x), 0.0, 127.0, 0.0, 14.0); 817 | float yf = map(float(y), 0.0, 127.0, 14.0, 0.0); 818 | blendCircle(0xFFFFFF | ( ((225 - ((o+1)*31)) + (getRnd(p) % 16)) << 24), rotateX(xf, yf, 0.0, 14.0, 1), rotateY(xf, yf, 0.0, 14.0, 1), 0.4, true); 819 | } 820 | } 821 | 822 | void centerNumber(int value,int colour) 823 | { 824 | drawNumber(value,colour,(value<100?3:0) + (value < 10 ? 3 : 0) + (value == 1 ? -1 : 0),4); 825 | } 826 | 827 | 828 | void repaint() 829 | { 830 | int colour = getColour(primary-1); 831 | int r = ((colour & 0xFF0000) >> 16); 832 | int g = ((colour & 0x00FF00) >> 8); 833 | int b = ((colour & 0x0000FF) >> 0); 834 | float factor = 8; 835 | int background = ((int(r / factor) & 0xFF) << 16) | ((int(g / factor) & 0xFF) << 8) | ((int(b / factor) & 0xFF) << 0); 836 | fillRect((primary == 1) ? 0xFF000000 : background, 0, 0, 15, 15); 837 | 838 | if (buttonStamp && (repaintCounter - buttonStamp) > 12) { 839 | setup = !setup; 840 | buttonStamp = 0; 841 | } 842 | 843 | if (setup) { 844 | drawSetup(); 845 | } else { 846 | drawGems(); 847 | } 848 | 849 | if (!setup) { 850 | if (recordCount && sampleIndex>=0 && playing) { 851 | centerNumber(sampleIndex + 1,0x7FFFFFFF); 852 | } 853 | if (beat && beat4) { 854 | drawDot(0xFFFFFF, 0xFF, 7, 0); 855 | } 856 | if (playback) { 857 | drawDot(0x0000FF, 0xFF, 7, 14); // ? 858 | } 859 | } 860 | 861 | 862 | if (beat4) beat4 = false; 863 | if (beat8) beat8 = false; 864 | if (beat16) beat16 = false; 865 | 866 | repaintCounter++; 867 | breathCounter++; 868 | } 869 | 870 | int getValue(int s, int g, int a) 871 | { 872 | int value = 0xFFFF; 873 | int valueMSB = getHeapByte(heapOffset(s + 1,g,a,0)); 874 | if (valueMSB >=0 && valueMSB <= 127) { 875 | value = valueMSB << 7; 876 | int valueLSB = getHeapByte(heapOffset(s + 1,g,a,1)); 877 | if (valueLSB >=0 && valueLSB <= 127) { 878 | value = value | valueLSB; 879 | } 880 | 881 | } 882 | return value; 883 | } 884 | 885 | void handleMIDI(int byte0, int byte1, int byte2) 886 | { 887 | if ((byte0 & 240) == 176) { // MIDI Control Change 888 | if ((repaintCounter - performStamp) < 12) return; // prevent feedback 889 | int ch = byte0 & 15; 890 | if ( (channel - 1) == ch) { 891 | int cc = byte1; 892 | int value = byte2; 893 | int ofst=-1; 894 | int ofstA=-1; 895 | int xx; 896 | int yy; 897 | float x=-1; 898 | float y=-1; 899 | for (int p = 0; p < 5; p++) { 900 | if (isActive(p+1)) { 901 | if (getXCC(p) == cc) { 902 | ofst =heapOffset(0, p, 0, 0); 903 | ofstA = heapOffset(0, p, 1, 0); 904 | xx = value; 905 | yy = getHeapByte(ofstA); 906 | x = map(float(xx), 0.0, 127.0, 0.0, 2.0); 907 | y = map(float(yy), 0.0, 127.0, 2.0, 0.0); 908 | if (clearOnCenter && (xx == 63 || xx == 64 || xx == 0xFF) && (yy == 63 || yy == 64 || yy == 0xFF)) { 909 | setHeapByte(ofstA, 0xFF); 910 | value=0xFF; 911 | } 912 | } else if (getYCC(p) == cc) { 913 | ofst = heapOffset(0, p, 1, 0); 914 | ofstA = heapOffset(0, p, 0, 0); 915 | xx = getHeapByte(ofstA); 916 | yy = value; 917 | x = map(float(xx), 0.0, 127.0, 0.0, 2.0); 918 | y = map(float(yy), 0.0, 127.0, 2.0, 0.0); 919 | if (clearOnCenter && (xx == 63 || xx == 64 || xx == 0xFF) && (yy == 63 || yy == 64 || yy == 0xFF)) { 920 | setHeapByte(ofstA, 0xFF); 921 | value=0xFF; 922 | } 923 | } else if (getZCC(p) == cc) { 924 | ofst = heapOffset(0, p, 2, 0); 925 | } else if (getXCC(p) == (cc + 32) ) { 926 | ofst = heapOffset(0, p, 0, 1); 927 | } else if (getYCC(p) == (cc + 32)) { 928 | ofst = heapOffset(0, p, 1, 1); 929 | } else if (getZCC(p) == (cc + 32)) { 930 | ofst = heapOffset(0, p, 2, 1); 931 | } 932 | } 933 | } 934 | if (ofst >= 0) { 935 | if (getHeapByte(ofst) != value) { 936 | setHeapByte(ofst, value); 937 | } 938 | } 939 | } 940 | } else if (byte0 == 248) { // MIDI clock 941 | clockCounter++; 942 | clockStamp = repaintCounter; 943 | 944 | pulseCounter = (clockCounter % 24); 945 | 946 | if (!pulseCounter && playing) { 947 | beat4 = true; 948 | beatCounter = (clockCounter / 24); 949 | 950 | if (recordCount || playback) { 951 | sampleIndex = beatCounter % recordCount; 952 | int s = beatCounter % recordCount; 953 | for (int g=0; g < maxGems; g++) { 954 | if ((touchBits & (1 << g))== 0) { 955 | for (int a=0; a < maxAxyz; a++) { 956 | for (int b=0; b < maxSignif; b++) { 957 | int value = getHeapByte(heapOffset(s + 1,g,a,b)); 958 | if (value > 0 && value <= 127) { 959 | if (getHeapByte(heapOffset(0,g,a,b)) != value) { 960 | if (isActive(g+1)) { 961 | int cc = ((a == 0) ? getXCC(g) : ((a == 1) ? getYCC(g) : getZCC(g))) + (b * 32) ; 962 | if (!b || (highres && cc >= 32 && cc < 64 ) ) sendCC((channel - 1), cc, value); 963 | } 964 | setHeapByte(heapOffset(0,g,a,b),value); 965 | } 966 | } else { 967 | setHeapByte(heapOffset(s + 1,g,a,b),getHeapByte(heapOffset(0,g,a,b))); 968 | } 969 | } 970 | } 971 | } 972 | } 973 | } 974 | } 975 | 976 | if (playing && recordCount && clockCounter >= 0) { 977 | int s = beatCounter % recordCount; 978 | // s = (s > 0) ? (s - 1) : (recordCount - 1); 979 | 980 | int n = s < (recordCount - 1) ? (s + 1) : 0; 981 | 982 | for (int g=0; g < maxGems; g++) { 983 | //log((touchBits & (1 << g))); 984 | if ((touchBits & (1 << g)) == 0) { 985 | for (int a=0; a < maxAxyz; a++) { 986 | int thisBeatValue = getValue(s,g,a); 987 | int nextBeatValue = getValue(n,g,a); 988 | 989 | if (thisBeatValue <= 16383 && nextBeatValue <= 16383) { 990 | 991 | int diff = (nextBeatValue - thisBeatValue); 992 | float step = float(diff) / 24; // ppqn 993 | int value = int(float(thisBeatValue) + (step * pulseCounter)); 994 | 995 | int valueMSB = (value >> 7) & 0x7F; 996 | 997 | if (getHeapByte(heapOffset(0,g,a,0)) != valueMSB) { 998 | int cc = ((a == 0) ? getXCC(g) : ((a == 1) ? getYCC(g) : getZCC(g))); 999 | setHeapByte(heapOffset(0,g,a,0), valueMSB); 1000 | sendCC((channel - 1), cc, valueMSB); 1001 | 1002 | int valueLSB = (value >> 0) & 0x7F; 1003 | if (getHeapByte(heapOffset(0,g,a,1)) != valueLSB) { 1004 | setHeapByte(heapOffset(0,g,a,1), valueLSB); 1005 | if (highres && cc < 32) sendCC((channel - 1), cc + 32, valueLSB); 1006 | } 1007 | } 1008 | } 1009 | } 1010 | } 1011 | } 1012 | } 1013 | if (!((clockCounter+12)%12)) beat8 = true; 1014 | if (!((clockCounter+12)%6)) beat16 = true; 1015 | } else if (byte0 == 242) { // MIDI Song Position 1016 | clockCounter = byte1 | (byte2 << 7); 1017 | beatCounter = (clockCounter / 24); 1018 | sampleIndex = beatCounter % recordCount; 1019 | } else if (byte0 == 250) { // MIDI start 1020 | playing = true; 1021 | } else if (byte0 == 251) { // MIDI continue 1022 | playing = true; 1023 | } else if (byte0 == 252) { // MIDI stop 1024 | playing = false; 1025 | 1026 | } 1027 | } 1028 | 1029 | 1030 | /* 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | 1042 | 1043 | 1044 | 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | 1063 | 1064 | 1065 | 1066 | 1067 | 1068 | 1069 | 1070 | 1071 | 1072 | 1073 | 1074 | 1075 | 1076 | 1077 | 1078 | 1079 | 1080 | 1081 | 1082 | 1083 | 1084 | 1085 | 1086 | 1087 | 1088 | 1089 | 1090 | 1091 | 1092 | 1093 | 1094 | 1095 | 1096 | 1097 | 1098 | 1099 | 1100 | 1101 | 1102 | 1103 | 1104 | 1105 | 1106 | 1107 | 1108 | 1109 | 1110 | 1111 | 1112 | 1113 | 1114 | 1115 | 1116 | 1117 | 1118 | 1119 | 1120 | 1121 | 1122 | 1123 | 1124 | 1125 | 1126 | 1127 | 1128 | 1129 | 1130 | 1131 | 1132 | 1133 | 1134 | 1135 | 1136 | 1137 | 1138 | 1139 | 1140 | 1141 | 1142 | 1143 | 1144 | 1145 | 1146 | 1147 | 1148 | 1149 | 1150 | 1151 | 1152 | 1153 | 1154 | 1155 | 1156 | 1157 | 1158 | 1159 | 1160 | 1161 | 1162 | 1163 | 1164 | 1165 | 1166 | 1167 | 1168 | 1169 | 1170 | 1171 | 1172 | 1173 | 1174 | 1175 | 1176 | 1177 | 1178 | 1179 | 1180 | 1181 | 1182 | 1183 | 1184 | 1185 | 1186 | 1187 | 1188 | 1189 | 1190 | 1191 | 1192 | 1193 | 1194 | 1195 | 1196 | 1197 | 1198 | 1199 | 1200 | 1201 | 1202 | 1203 | 1204 | 1205 | 1206 | 1207 | 1208 | 1209 | 1210 | 1211 | 1212 | 1213 | 1214 | 1215 | 1216 | 1217 | 1218 | 1219 | 1220 | 1221 | 1222 | 1223 | 1224 | 1225 | 1226 | 1227 | 1228 | 1229 | 1230 | 1231 | 1232 | 1233 | 1234 | 1235 | 1236 | 1237 | 1238 | 1239 | 1240 | 1241 | 1242 | 1243 | 1244 | 1245 | 1246 | 1247 | 1248 | 1249 | 1250 | 1251 | 1252 | 1253 | 1254 | 1255 | 1256 | 1257 | 1258 | 1259 | 1260 | */ 1261 | 1262 | --------------------------------------------------------------------------------