├── .gitignore ├── media └── chromatik-transparent.png ├── Max 4 Live ├── Chromatik MIDI Relay.amxd ├── Chromatik Tempo Relay.amxd ├── Chromatik Pattern Control.amxd ├── Chromatik Parameter Control.amxd └── Chromatik Discrete Parameter Control.amxd ├── README.md ├── LICENSE └── Reaper └── Chromatik.ReaperOSC /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | -------------------------------------------------------------------------------- /media/chromatik-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heronarts/Chromatik/HEAD/media/chromatik-transparent.png -------------------------------------------------------------------------------- /Max 4 Live/Chromatik MIDI Relay.amxd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heronarts/Chromatik/HEAD/Max 4 Live/Chromatik MIDI Relay.amxd -------------------------------------------------------------------------------- /Max 4 Live/Chromatik Tempo Relay.amxd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heronarts/Chromatik/HEAD/Max 4 Live/Chromatik Tempo Relay.amxd -------------------------------------------------------------------------------- /Max 4 Live/Chromatik Pattern Control.amxd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heronarts/Chromatik/HEAD/Max 4 Live/Chromatik Pattern Control.amxd -------------------------------------------------------------------------------- /Max 4 Live/Chromatik Parameter Control.amxd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heronarts/Chromatik/HEAD/Max 4 Live/Chromatik Parameter Control.amxd -------------------------------------------------------------------------------- /Max 4 Live/Chromatik Discrete Parameter Control.amxd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heronarts/Chromatik/HEAD/Max 4 Live/Chromatik Discrete Parameter Control.amxd -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Chromatik 2 | 3 | [Chromatik](http://chromatik.co/) (formerly known as LX Studio) is a next-generation digital lighting workstation. It brings concepts from digital audio workstations and modular synthesis into the realm of LED lighting control. Generative patterns, interactive inputs, and flexible parameter-driven modulation — a rich environment for lighting composition and performance. 4 | 5 | ### Getting Started ### 6 | 7 | All information and a complete user guide for Chromatik can be found at [https://chromatik.co](https://chromatik.co) 8 | 9 | ### Contact and Collaboration ### 10 | 11 | Building a big cool project? I'm probably interested in hearing about it! Want to solicit some help, request new framework features, or just ask a random question? Feel free to open a GitHub issue directly on this project, drop me a line at mark@chromatik.co or [join the Discord](https://chromatik.co/discord). 12 | 13 | --- 14 | 15 | **BY DOWNLOADING OR USING THE CHROMATIK SOFTWARE OR ANY PART THEREOF, YOU AGREE TO THE TERMS AND CONDITIONS OF THE [CHROMATIK / LX SOFTWARE LICENSE AND DISTRIBUTION AGREEMENT](http://chromatik.co/license/).** 16 | 17 | Please note that Chromatik is not open-source software. If the licensing is obstructive to your needs or you are unclear as to whether your desired use case is compliant, contact me to discuss proprietary licensing: licensing@chromatik.co 18 | 19 | --- 20 | 21 | HERON ARTS MAKES NO WARRANTY, EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, AND SPECIFICALLY DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2013-2024 Mark C. Slee, Heron Arts LLC 2 | 3 | CHROMATIK / LX SOFTWARE LICENSE AND DISTRIBUTION AGREEMENT 4 | 5 | This Software License and Distribution Agreement (the "Agreement") is entered 6 | into by and between Heron Arts LLC, with offices at 7 Heron Street, San 7 | Francisco, CA 94103 ("Heron Arts") and you ("Licensee"). By downloading or 8 | using the Software (as defined below), you agree to the following terms: 9 | 10 | 1. Definitions. 11 | 12 | 1.1. "Application" means a Licensee installation or project that includes the 13 | Software, in object code or executable form only. 14 | 15 | 1.2. "Effective Date" means the date you first obtain a copy of the Software. 16 | 17 | 1.3. "Revenue Limit" means the gross revenue accrued by Licensee in connection 18 | with all Licensee Applications, taken together, for any 12-month period during 19 | the term of this Agreement, with no deductions. 20 | 21 | 1.4. "Software" means the Heron Arts LX, GLX, Chromatik, and LX Studio software libraries, including all 22 | Updates supplied by Heron Arts under this Agreement. 23 | 24 | 1.5. "Update" means any correction, update, upgrade, patch or other 25 | modification or addition to the Software made available to Licensee by Heron 26 | Arts. 27 | 28 | 2. License. 29 | 30 | 2.1. Grant. Subject to the limitations of this Section 2, Heron Arts hereby 31 | grants to Licensee a nonexclusive, worldwide, non-transferable, 32 | non-sublicenseable license, during the term of this Agreement: (i) to modify 33 | the Software to create Applications that add substantial value to the Software; 34 | (ii) to distribute copies of the Software, in object code form only, only as 35 | part of Applications in accordance with this Section 2; (iii) to use the 36 | Software to run Applications, including to provide a service consisting of 37 | display of the Applications; and (iv) to reproduce copies of the Software, 38 | solely as necessary to exercise the rights granted in clauses (i) through (iv). 39 | Licensee may not sublicense any of these rights or licenses to any third party. 40 | Licensee shall not provide any third party with access to the source code for 41 | the Software without Heron Arts' prior written permission. 42 | 43 | The license granted in this Section 2.1 is subject to a Revenue Limit of 44 | $25,000 and is only valid for Applications that fall within such Revenue Limit. 45 | The license granted herein is royalty free, in consideration of the Revenue 46 | Limit being a condition of the license granted herein. 47 | 48 | 2.2. End User Licensing. If the Application is distributed, provided or sold 49 | pursuant to an agreement between Licensee and an end user, Licensee shall 50 | distribute each copy of the Software with an end user license agreement on the 51 | same licensing terms applicable to the remainder of the Application, but that 52 | is at least as favorable to Heron Arts as this Agreement. 53 | 54 | 2.3. Proprietary Notices. On each Software copy, Licensee shall reproduce all 55 | copyright or other proprietary notices contained on the Software, as provided 56 | by Heron Arts. Licensee shall not alter or remove or in any other way obscure 57 | or hide from display any any Heron Arts, Chromatik, or LX Studio logo or proprietary notice 58 | from the Application user interface or in the Software. 59 | 60 | 2.4. Third Party Open Source Software. Notwithstanding Section 2.1, Licensee 61 | acknowledges that certain components of the Software may be covered by 62 | so-called "open source" software licenses ("Open Source Components"), which 63 | means any software licenses approved as open source licenses by the Open Source 64 | Initiative or any substantially similar licenses. To the extent required by the 65 | licenses covering Open Source Components, the terms of such licenses will apply 66 | to such Open Source Components in lieu of the terms of this Agreement. To the 67 | extent the terms of the licenses applicable to Open Source Components prohibit 68 | any of the restrictions in this Agreement with respect to such Open Source 69 | Component, such restrictions will not apply to such Open Source Component. To 70 | the extent the terms of the licenses applicable to Open Source Components 71 | require Licensor to make an offer to provide source code or related information 72 | in connection with the Open Source Components, such offer is hereby made. 73 | 74 | 3. Ownership. As between the parties, Heron Arts will retain all right, title, 75 | and interest in the Software, and all intellectual property rights therein. 76 | 77 | 4. Use of Heron Arts Trademarks. Licensee shall state that the Application 78 | includes the Software and may use such applicable trademarks, trade names and 79 | logos of Heron Arts (including the Chromatik and LX Studio trademarks) as required to do so 80 | (collectively, the "Heron Arts Trademarks"). Any and all good will arising from 81 | Licensee's use of the Heron Arts Trademarks will inure solely to the benefit of 82 | Heron Arts. Licensee shall not assert any claim to the Heron Arts Trademarks 83 | (or any confusingly similar mark) or such good will. Licensee shall not 84 | register any Heron Arts Trademark, or any mark confusingly similar to any Heron 85 | Arts Trademark, in any jurisdiction. 86 | 87 | 5. Heron Arts Portfolio. (i) Licensee hereby grants to Heron Arts the right to 88 | publicize Licensee's use of the Software and (ii) Heron Arts may use Licensee's 89 | logo on the Chromatik or LX Studio website in areas naming licensees of the software, and in 90 | Chromatik or LX Studio portfolios or marketing presentations listing licensees of the 91 | Software. 92 | 93 | 6. Term and Termination. 94 | 95 | 6.1. Term. This Agreement will commence on the Effective Date and continue 96 | unless and until terminated as described herein. 97 | 98 | 6.2. Default. If Licensee defaults in the performance of any of its material 99 | obligations hereunder this Agreement and the licenses granted herein will 100 | automatically terminate. 101 | 102 | 6.3. Insolvency. This Agreement and the licenses granted herein will 103 | automatically terminate, (i) upon the institution by Licensee of insolvency, 104 | receivership or bankruptcy proceedings or any other proceedings for the 105 | settlement of its debts, (ii) upon the institution of such proceedings against 106 | Licensee, which are not dismissed or otherwise resolved in its favor within 60 107 | days thereafter, (iii) upon Licensee making a general assignment for the 108 | benefit of creditors, or (iv) upon Licensee's dissolution or ceasing to conduct 109 | business in the ordinary course. 110 | 111 | 6.4. Survival. The parties' rights and obligations of Sections 1, 3, 4, 5, 6.4, 112 | 7, 8 and 9 will survive any termination or expiration of this Agreement. Upon 113 | expiration or termination of this Agreement, all of Licensee's rights and 114 | licenses with respect to the Software will terminate, except each Software end 115 | user license properly granted as part of an Application before the effective 116 | date of termination will survive in accordance with its terms. 117 | 118 | 7. Warranty Disclaimer. 119 | 120 | 7.1. DISCLAIMER. HERON ARTS MAKES NO WARRANTY, EXPRESS, IMPLIED, STATUTORY, OR 121 | OTHERWISE, AND SPECIFICALLY DISCLAIMS ANY WARRANTY OF MERCHANTABILITY, 122 | NON-INFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE 123 | SOFTWARE. 124 | 125 | 8. LIMITATION OF LIABILITY. HERON ARTS'S LIABILITY ARISING OUT OF THIS 126 | AGREEMENT WILL NOT EXCEED $50. HERON ARTS WILL NOT BE LIABLE FOR LOST PROFITS 127 | OR ANY CONSEQUENTIAL, SPECIAL, INCIDENTAL, OR INDIRECT DAMAGES, HOWEVER CAUSED 128 | AND ON ANY THEORY OF LIABILITY, ARISING OUT OF THIS AGREEMENT. LICENSEE 129 | ACKNOWLEDGES THAT THE ROYALTY-FREE NATURE OF THE LICENSE HEREIN IS BASED IN 130 | PART UPON THESE LIMITATIONS, AND THAT THESE LIMITATIONS WILL APPLY 131 | NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY. 132 | 133 | 9. General. This Agreement is the entire agreement between the parties on the 134 | subject matter hereof. No amendment or modification hereof will be valid or 135 | binding upon the parties unless made in writing and signed by the duly 136 | authorized representatives of both parties. The relationship of the parties 137 | hereunder is that of independent contractors, and this Agreement will not be 138 | construed to imply that either party is the agent, employee, or joint venturer 139 | of the other. In the event that any provision of this Agreement is held to be 140 | unenforceable, this Agreement will continue in full force and effect and will 141 | be interpreted to reflect the original intent of the parties. This Agreement 142 | will be governed by the laws of the State of California, without regard to its 143 | conflict of laws principles. The parties consent to the personal and exclusive 144 | jurisdiction of courts located in San Francisco, California. Licensee may not 145 | assign this Agreement (by operation of law or otherwise) without the prior 146 | written consent of Heron Arts, and any prohibited assignment will be null and 147 | void. Heron Arts may assign this Agreement without consent in its sole 148 | discretion. This Agreement will be binding upon and will inure to the benefit 149 | of the parties permitted successors and assignees. Waiver by either party of a 150 | breach of any provision of this Agreement or the failure by either party to 151 | exercise any right hereunder will not operate or be construed as a waiver of 152 | any subsequent breach of that right or as a waiver of any other right. 153 | -------------------------------------------------------------------------------- /Reaper/Chromatik.ReaperOSC: -------------------------------------------------------------------------------- 1 | # OSC pattern config file. 2 | 3 | # Make a copy of this file, rename it, and edit the file to create a 4 | # custom pattern configuration. 5 | 6 | # For basic information about OSC and REAPER, see 7 | # http://www.cockos.com/reaper/sdk/osc/osc.php . 8 | 9 | # ---------------------------------------------------------------- 10 | 11 | # Default settings for how this device displays information. 12 | 13 | # (these can all be overridden by the device sending OSC messages, search for these 14 | # names below to see the messages) 15 | # 16 | # DEVICE_TRACK_COUNT is how many tracks this device can display at once 17 | # (the track bank size). 18 | # DEVICE_SEND_COUNT/DEVICE_RECEIVE_COUNT is how many sends and receives this 19 | # device can display at once. 20 | # DEVICE_FX_COUNT is how many track insert FX this device can display at once. 21 | # DEVICE_FX_PARAM_COUNT is how many FX parameters this device can display at once 22 | # (the FX parameter bank size). 23 | # DEVICE_FX_INST_PARAM_COUNT is how many FX instrument parameters this device can 24 | # display at once (the FX instrument parameter bank size). 25 | # DEVICE_MARKER_COUNT is how many markers for which this device would like to 26 | # receive information 27 | # DEVICE_REGION_COUNT is how many regions for which this device would like to 28 | # receive information 29 | 30 | DEVICE_TRACK_COUNT 16 31 | DEVICE_SEND_COUNT 0 32 | DEVICE_RECEIVE_COUNT 0 33 | DEVICE_FX_COUNT 0 34 | DEVICE_FX_PARAM_COUNT 0 35 | DEVICE_FX_INST_PARAM_COUNT 0 36 | DEVICE_MARKER_COUNT 0 37 | DEVICE_REGION_COUNT 0 38 | 39 | # ---------------------------------------------------------------- 40 | 41 | # Default values for how this device behaves. The device has a selected track, bank 42 | # of tracks, and FX, which are not necessarily the same as the selected track or FX 43 | # in the REAPER window. 44 | 45 | # REAPER_TRACK_FOLLOWS determines whether the selected track in REAPER changes 46 | # only when the user changes it in the REAPER window, or if it follows the track 47 | # currently selected in the OSC device. 48 | # Allowed values: REAPER, DEVICE 49 | 50 | # DEVICE_TRACK_FOLLOWS determines whether the selected track in the device changes 51 | # only when the device changes it, or if it follows the last touched track in the 52 | # REAPER window. 53 | # Allowed values: DEVICE, LAST_TOUCHED 54 | 55 | # DEVICE_TRACK_BANK_FOLLOWS determines whether the selected track bank in the device 56 | # changes only when the device changes it, or if it follows the REAPER mixer view. 57 | # Allowed values: DEVICE, MIXER 58 | 59 | # DEVICE_FX_FOLLOWS determines whether the selected FX in the device changes only 60 | # when the device changes it, or if it follows the last touched or currently focused 61 | # FX in the REAPER window. 62 | # Allowed values: DEVICE, LAST_TOUCHED, FOCUSED 63 | 64 | # DEVICE_EQ determines whether sending any FX_EQ message will automatically insert 65 | # ReaEQ on the target track if it does not exist, or the message will only affect 66 | # an existing instance of ReaEQ. 67 | # Allowed values: INSERT, EXISTING 68 | 69 | # DEVICE_ROTARY_CENTER defines the argument that represents no change, for rotary 70 | # controls. 71 | # Allowed values: 0, 0.5 72 | 73 | DEVICE_TRACK_FOLLOWS DEVICE 74 | DEVICE_TRACK_BANK_FOLLOWS DEVICE 75 | DEVICE_FX_FOLLOWS DEVICE 76 | 77 | # ---------------------------------------------------------------- 78 | 79 | # Each line below is an action description in all caps, followed by a number of OSC 80 | # message patterns. You can add, remove, or change patterns, delete lines, or comment 81 | # out lines by adding '#', but do not change the action descriptions. 82 | 83 | # The patterns following the action are the messages that REAPER will send and receive 84 | # to and from the OSC device. An action can have no patterns (and will be ignored), 85 | # one pattern, or many patterns. 86 | 87 | # The patterns may contain the wildcard character '@'. (This is REAPER-only, not part 88 | # of the OSC specification.) The '@' wildcard is used to specify the action target. 89 | 90 | # ---------------------------------------------------------------- 91 | 92 | # The OSC device sends patterns to trigger actions, and REAPER sends patterns to the 93 | # device as feedback. OSC patterns can include arguments, which are be interpreted 94 | # in various ways, defined by a flag immediately before the pattern. 95 | 96 | # n: normalized floating-point argument. 0 means the minimum value, and 1 means the 97 | # maximum value. This can be used for continous controls like sliders and knobs. 98 | 99 | # Example: TRACK_VOLUME n/track/volume n/track/@/volume 100 | # The device sends /track/3/volume 0.5 to set the volume to 0.5 for track 3, or 101 | # /track/volume 0.5 to set the volume for the track that is currently selected in 102 | # the device. REAPER sends /track/3/volume 0.5 when track 3 volume changes to 0.5. 103 | # If track 3 is currently selected in the device, REAPER will also send 104 | # /track/volume 0.5. The floating-point argument represents as the track fader 105 | # position in the REAPER window. 0 sets the fader all the way down, 1 sets the fader 106 | # all the way up, 0.5 sets the fader exactly in the middle. Therefore, the actual 107 | # volume that is set depends on the REAPER track fader preference settings. 108 | 109 | # f: raw floating-point argument. The argument is interpreted directly, to set or 110 | # report a value. 111 | 112 | # Example: TEMPO f/tempo/raw 113 | # The device sends /tempo/raw 100.351 to change the REAPER tempo to 100.351 bpm. 114 | # REAPER sends /tempo/raw 120 when the tempo changes to 120 bpm. 115 | 116 | # Normalized and raw floating-point arguments also support multiple parameters 117 | # sent from the device. 118 | # Example: FX_PARAM_VALUE n/track/@/fx/@/fxparam/@/value 119 | # The device can send /track/3/fx/1,2,5/fxparam/6,7,7/value 0.25 0.5 0.75 120 | # to set three FX parameter values at once, to 0.25, 0.5, 0.75 respectively. 121 | 122 | # b: binary argument, either 0 or 1. The device sets or clears the state when 123 | # sending the message. Can be used to emulate switches or momentary controls. 124 | 125 | # Example: TRACK_MUTE b/track/mute b/track/@/mute 126 | # The device sends /track/3/mute 1 to mute track 3, or /track/mute 1 to mute the 127 | # track that is currently selected in the device. /track/3/mute 0 will unmute 128 | # track 3. REAPER sends /track/3/mute 1 when track 3 is muted, and /track/3/mute 0 129 | # when track 3 is unmuted. If track 3 is currently selected in the device, REAPER 130 | # will also send /track/mute 1 and /track/mute 0. 131 | 132 | # Example: REWIND b/rewind 133 | # The device sends /rewind 1 to begin rewinding, and sends /rewind 0 to stop 134 | # rewinding. REAPER sends /rewind 1 when the rewind button in the REAPER window is 135 | # pressed, and /rewind 0 when the button is released. 136 | 137 | # t: trigger or toggle message. The device triggers the action, or toggles the 138 | # state, when the pattern is sent with no arguments, or with an argument of 1. 139 | # The feedback values REAPER sends are identical to those sent for binary 140 | # arguments. 141 | 142 | # Example: METRONOME t/click 143 | # The device sends /click or /click 1 to toggle the metronome on or off. REAPER 144 | # sends /click 1 when the metronome is enabled, and /click 0 when the metronome 145 | # is disabled. 146 | 147 | # r: rotary. The device triggers the action in the forward direction when sent 148 | # with an argument greater than ROTARY_CENTER, and in the reverse direction when 149 | # sent with an argument less than ROTARY_CENTER. For some messages, the magnitude 150 | # of the argument affects the rate of change. REAPER does not send feedback for 151 | # these messages. 152 | 153 | # Example: SCRUB r/scrub 154 | # The device sends /scrub 1 to scrub forward, and /scrub -1 to scrub in reverse 155 | # (if ROTARY_CENTER is 0). 156 | 157 | # s: string. These messages include a string argument. Many of these messages 158 | # are sent from REAPER to the device for feedback/display, but some can be sent 159 | # from the device to REAPER. 160 | 161 | # Example: TRACK_NAME s/track/name s/track/@/name 162 | # The device sends /track/3/name "vox" to rename track 3 in REAPER, or /track/name 163 | # "vox" to rename the track that is currently selected in the device. REAPER sends 164 | # /track/3/name "vox" to report that name of track 3 is "vox". If track 3 is 165 | # currently selected in the device, REAPER will also send /track/name "vox". 166 | 167 | # Example: DEVICE_FX_FOLLOWS s/fxfollows 168 | # The device sends /fxfollows "FOCUSED" to inform REAPER that the selected FX in the 169 | # device will now follow the FX that is focused in the REAPER window. 170 | 171 | # i: integer. These messages include an integer argument, and are sent from the 172 | # device to REAPER. 173 | 174 | # Example: ACTION i/action t/action/@ 175 | # The device sends /action 40757 or /action/40757 to trigger the REAPER action 176 | # "split items at edit cursor". See the REAPER actions window for a complete list 177 | # of action command ID numbers. 178 | 179 | # Example: DEVICE_TRACK_BANK_SELECT i/bankedit t/bankedit/@ 180 | # The device sends /bankedit 2 or /bankedit/2 to inform REAPER that the active 181 | # track bank is bank 2. If NUM_TRACKS is 8, that means REAPER will now interpret 182 | # a message like /track/1/volume as targeting the volume for track 9, and REAPER 183 | # will only send the device feedback messages for tracks 9-16. 184 | 185 | # ---------------------------------------------------------------- 186 | 187 | # Note: the default configuration includes a lot of feedback messages, which can 188 | # flood the device. Avoid flooding by removing messages (by deleting the patterns, 189 | # or commenting out the lines) that the device does not want, especially the 190 | # TIME, BEAT, SAMPLES, FRAMES, VU, FX_PARAM, LAST_MARKER, LAST_REGION messages. 191 | 192 | # Note: FX parameter feedback will only be sent for the track that is currently 193 | # selected in the device. If messages exist that can target FX on other tracks, 194 | # feedback will be sent whenever the parameter values change. This can be a lot of 195 | # data, so only include those messages if you want the feedback. 196 | # Example: FX_PARAM_VALUE /fxparam/@/value /fx/@/fxparam/@/value 197 | # This action can only target FX on the currently selected track, so feedback will 198 | # only be sent for that track. 199 | # Example: FX_PARAM_VALUE /fxparam/@/value /fx/@/fxparam/@/value /track/@/fx/@/fxparam/@/value 200 | # This action can target FX on any track, so feedback will be sent for all tracks. 201 | 202 | # Note: multiple patterns for a given action can all be listed on the same line, 203 | # or split onto separate lines. 204 | 205 | # ---------------------------------------------------------------- 206 | 207 | # The default REAPER OSC pattern configuration follows. To create a custom 208 | # configuration, copy this file and edit the copy. 209 | 210 | 211 | SCROLL_X- b/scroll/x/- r/scroll/x 212 | SCROLL_X+ b/scroll/x/+ r/scroll/x 213 | SCROLL_Y- b/scroll/y/- r/scroll/y 214 | SCROLL_Y+ b/scroll/y/+ r/scroll/y 215 | ZOOM_X- b/zoom/x/- r/zoom/x 216 | ZOOM_X+ b/zoom/x/+ r/zoom/x 217 | ZOOM_Y- b/zoom/y/- r/zoom/y 218 | ZOOM_Y+ b/zoom/y/+ r/zoom/y 219 | 220 | TIME f/reaper/time s/reaper/time/str 221 | BEAT s/reaper/beat/str 222 | 223 | RECORD t/reaper/record 224 | STOP t/reaper/stop 225 | PLAY t/reaper/play 226 | PAUSE t/reaper/pause 227 | 228 | AUTO_REC_ARM t/reaper/autorecarm 229 | SOLO_RESET t/reaper/soloreset 230 | ANY_SOLO b/reaper/anysolo 231 | 232 | REWIND b/reaper/rewind 233 | FORWARD b/reaper/forward 234 | 235 | SCRUB r/reaper/scrub 236 | 237 | PLAY_RATE n/reaper/playrate f/reaper/playrate/raw r/reaper/playrate/rotary s/reaper/playrate/str 238 | TEMPO n/reaper/tempo f/reaper/tempo/raw r/reaper/tempo/rotary s/reaper/tempo/str 239 | 240 | MASTER_VOLUME n/reaper/master/volume s/reaper/master/volume/str 241 | MASTER_PAN n/reaper/master/pan s/reaper/master/pan/str 242 | MASTER_VU n/reaper/master/vu 243 | 244 | TRACK_VU n/reaper/track/vu n/reaper/track/@/vu 245 | 246 | --------------------------------------------------------------------------------