[{"id":0,"type":"script","device_selection_follows_track_selection":true,"global_feedback":"default","global_feedback_active":"False","global_LED_on":127,"global_LED_off":0,"name":"GVFR Using Relative Encoders","script_id":45,"script_attach_id":71149,"modifiers":[{"id":"m1","name":"m1","tokenisedCode":"self.get_modifier_value(\"m1\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m2","name":"m2","tokenisedCode":"self.get_modifier_value(\"m2\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m3","name":"m3","tokenisedCode":"self.get_modifier_value(\"m3\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m4","name":"m4","tokenisedCode":"self.get_modifier_value(\"m4\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m5","name":"m5","tokenisedCode":"self.get_modifier_value(\"m5\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m6","name":"m6","tokenisedCode":"self.get_modifier_value(\"m6\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m7","name":"m7","tokenisedCode":"self.get_modifier_value(\"m7\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m8","name":"m8","tokenisedCode":"self.get_modifier_value(\"m8\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m9","name":"m9","tokenisedCode":"self.get_modifier_value(\"m9\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m10","name":"m10","tokenisedCode":"self.get_modifier_value(\"m10\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m11","name":"m11","tokenisedCode":"self.get_modifier_value(\"m11\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m12","name":"m12","tokenisedCode":"self.get_modifier_value(\"m12\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m13","name":"m13","tokenisedCode":"self.get_modifier_value(\"m13\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m14","name":"m14","tokenisedCode":"self.get_modifier_value(\"m14\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m15","name":"m15","tokenisedCode":"self.get_modifier_value(\"m15\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m16","name":"m16","tokenisedCode":"self.get_modifier_value(\"m16\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m17","name":"m17","tokenisedCode":"self.get_modifier_value(\"m17\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m18","name":"m18","tokenisedCode":"self.get_modifier_value(\"m18\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m19","name":"m19","tokenisedCode":"self.get_modifier_value(\"m19\")","initialValue":0,"cat":"modifier","valueType":"all"},{"id":"m20","name":"m20","tokenisedCode":"self.get_modifier_value(\"m20\")","initialValue":0,"cat":"modifier","valueType":"all"}],"lists":[{"id":"list1","name":"list1","tokenisedCode":"self.get_list(\"list1\")","initialValue":"[]","cat":"custom list","valueType":"list"},{"id":"list2","name":"list2","tokenisedCode":"self.get_list(\"list2\")","initialValue":"[]","cat":"custom list","valueType":"list"},{"id":"list3","name":"list3","tokenisedCode":"self.get_list(\"list3\")","initialValue":"[]","cat":"custom list","valueType":"list"},{"id":"list4","name":"list4","tokenisedCode":"self.get_list(\"list4\")","initialValue":"[]","cat":"custom list","valueType":"list"},{"id":"list5","name":"list5","tokenisedCode":"self.get_list(\"list5\")","initialValue":"[]","cat":"custom list","valueType":"list"},{"id":"list6","name":"list6","tokenisedCode":"self.get_list(\"list6\")","initialValue":"[]","cat":"custom list","valueType":"list"},{"id":"list7","name":"list7","tokenisedCode":"self.get_list(\"list7\")","initialValue":"[]","cat":"custom list","valueType":"list"},{"id":"list8","name":"list8","tokenisedCode":"self.get_list(\"list8\")","initialValue":"[]","cat":"custom list","valueType":"list"},{"id":"list9","name":"list9","tokenisedCode":"self.get_list(\"list9\")","initialValue":"[]","cat":"custom list","valueType":"list"},{"id":"list10","name":"list10","tokenisedCode":"self.get_list(\"list10\")","initialValue":"[]","cat":"custom list","valueType":"list"}],"errors":"","allChips":["button","Encoder"],"python_version":"3","modes_ordered":[{"id":1,"name":"mode 0","isGlobal":true},{"id":3,"name":"mode 2","isGlobal":false},{"id":2,"name":"mode 1","isGlobal":false}],"notes":"This script uses a combination of Get Value From Ranges and Modifiers to control Ableton's Clip Trigger Quantization menu\nUsing a Relative Encoder OR 2 buttons","noteHeight":"40px"},{"type":{"id":68,"name":"Reaction","type":"Reaction_v2","parent":0,"has_child":0,"level":1,"icon":"question_answer"},"chips":["Encoder"],"name":"Increase m1 with Relative Encoder","mode_id":1,"LED_mapping_type_needs_feedback":false,"reaction_action_blocks":[{"showConditions":true,"showActions":true,"showBlock":true,"loop":{"full_code":"","set_to_custom":false,"loopActive":false,"code":""},"conditionGroups":[[{"showCondition":true,"full_code":"self.get_modifier_value(\"m1\") < 127","set_to_custom":false,"left_menu":{"selectionMenuName":"modifierList","code":"self.get_modifier_value(\"m1\")","selectionObj":{"id":"m1","name":"m1","tokenisedCode":"self.get_modifier_value(\"m1\")","initialValue":0,"cat":"modifier","valueType":"all"},"extraFields":[]},"operator":{"selectionMenuName":"conditionOperators","code":"#left-menu# < #right-val#","selectionObj":{"id":"is_less_than","name":"is less than","tokenisedCode":"#left-menu# < #right-val#","type":"number","valueTypes":["int","float","double","long"]},"extraFields":[]},"right_val":{"code":"#number#","selectionObj":{"id":"enter_number","name":"Number","cat":"Custom","Parent":"Custom","tokenisedCode":"#number#","extraFields":["number"],"desc":"Enter number","valueType":"int","notes":null},"selectionMenuName":"customOptions","extraFields":[{"id":"number","name":"Number","desc":null,"used in functions (for reference only)":null,"placeholder":"Enter number","buttonDisplayName":null,"defaultType":"number","type":"number","include_range_value_option":"y","value":127,"strReplace":"#number#","tweakVal":null,"isOptional":null,"includeTheseMenus":["lomValues","inputVelocity","modifierList","loopValues","scriptValues","customCode"],"selectionOptions":[],"displayIf":null}],"value":"127"},"customCodeHeight":"44px"},{"showCondition":true,"full_code":"self.midi_cc_ch_0_val_1.cur_val >= 65","set_to_custom":false,"left_menu":{"selectionMenuName":"elementInputsCurrent","code":"self.midi_cc_ch_0_val_1.cur_val","selectionObj":{"id":"knob_3","name":"Knob 3's latest velocity value","MIDI_type":"cc","MIDI_channel":0,"MIDI_value":1,"tokenisedCode":"self.midi_cc_ch_0_val_1.cur_val","valueType":"int","value":"control_id=3","extraFields":[],"menutype":"elementInputsCurrent","filterCat":"Latest MIDI Input"},"extraFields":[]},"operator":{"selectionMenuName":"conditionOperators","code":"#left-menu# >= #right-val#","selectionObj":{"id":"is_greater_than_or_equal_to","name":"is greater than or equal to","tokenisedCode":"#left-menu# >= #right-val#","type":"number","valueTypes":["int","float","double","long"]},"extraFields":[]},"right_val":{"code":"#number#","selectionObj":{"id":"enter_number","name":"Number","cat":"Custom","Parent":"Custom","tokenisedCode":"#number#","extraFields":["number"],"desc":"Enter number","valueType":"int","notes":null},"selectionMenuName":"customOptions","extraFields":[{"id":"number","name":"Number","desc":null,"used in functions (for reference only)":null,"placeholder":"Enter number","buttonDisplayName":null,"defaultType":"number","type":"number","include_range_value_option":"y","value":65,"strReplace":"#number#","tweakVal":null,"isOptional":null,"includeTheseMenus":["lomValues","inputVelocity","modifierList","loopValues","scriptValues","customCode"],"selectionOptions":[],"displayIf":null}],"value":"65"}}]],"actions":[{"showAction":true,"full_code":"self.set_modifier_value(\"m1\", self.get_modifier_value(\"m1\") + 1)","set_to_custom":false,"element_menu":{"selectionMenuName":"scriptFunctions","code":"self.set_modifier_value(#modifier-name#, #value-to-set#)","selectionObj":{"id":"set_modifier_value","name":"modifiers - set the value of a modifier","cat":"script","Parent":"script","tokenisedCode":"self.set_modifier_value(#modifier-name#, #value-to-set#)","extraFields":[],"parameters":["modifier_name","value_to_set"],"multitude_cats":[],"desc":"Set the value of a Modifier","returnsValueOfType":null,"notes":null},"extraFields":[]},"extra_parameters":{"code":"","parameters":[{"parameterObj":{"id":"modifier_name","name":"Modifier","desc":"The modifier that will be updated","used in functions (for reference only)":"set_modifier_value","placeholder":null,"buttonDisplayName":"m1","defaultType":"select","type":"button","include_range_value_option":"y","value":"\"m1\"","strReplace":"#modifier-name#","tweakVal":null,"isOptional":null,"includeTheseMenus":["modifierName"],"selectionOptions":[],"displayIf":null},"value":"\"m1\"","selectionObj":{"id":"m1","name":"m1","tokenisedCode":"\"m1\"","initialValue":0,"cat":"modifier","valueType":"all"},"selectionMenuName":"modifierNameList","extraFields":[]},{"parameterObj":{"id":"value_to_set","name":"Value To Set","desc":"This will be set as the value of the modifier","used in functions (for reference only)":null,"placeholder":"Enter custom code","defaultType":"number","type":"custom","include_range_value_option":"y","value":"self.get_modifier_value(\"m1\")","strReplace":"#value-to-set#","tweakVal":null,"isOptional":null,"includeTheseMenus":["text","lomValues","inputVelocity","modifierList","loopValues","scriptValues","customCode"],"selectionOptions":[],"displayIf":null},"value":"self.get_modifier_value(\"m1\") + 1","extraFields":[]}]}}],"showNotes":true,"notes":"Increase M1 value if turning encoder to the right (velocity 66 is received)","noteHeight":"20px"}],"reaction_listeners":[{"set_to_custom":false,"reaction_listener":"control_id=3","custom_lom_listener":"","showlistener":true,"selectionObj":{"id":"knob_3","name":"Knob 3 was turned","MIDI_type":"cc","MIDI_channel":0,"MIDI_value":1,"tokenisedCode":"self.midi_cc_ch_0_val_1","valueType":"int","value":"control_id=3","desc":"Knob 3 was turned"}}],"reaction_listeners_show_listeners":true,"control":"default","control_type":"Absolute","control_type_takeover_mode":"None","control_type_on":127,"on_condition":"isEqualTo","off_condition":"isEqualTo","control_type_off":0,"control_type_first":0,"control_type_last":127,"control_type_reverse_mode":"False","control_type_left":0,"control_type_right":127,"control_type_steps":1,"control_type_switch":"Momentary","control_type_delay_amount":0.5,"controller_input_id":3,"id":9,"get_mode_name":"mode 0","get_type_name":"Reaction_v2","get_chips_array":["Encoder"],"disabled":false,"get_disabled":"isEnabled","errors":""},{"type":{"id":68,"name":"Reaction","type":"Reaction_v2","parent":0,"has_child":0,"level":1,"icon":"question_answer"},"chips":["Encoder"],"name":"Decrease m1 with Relative Encoder","mode_id":1,"LED_mapping_type_needs_feedback":false,"reaction_action_blocks":[{"showConditions":true,"showActions":true,"showBlock":true,"loop":{"full_code":"","set_to_custom":false,"loopActive":false,"code":""},"conditionGroups":[[{"showCondition":true,"full_code":"self.get_modifier_value(\"m1\") > 0","set_to_custom":false,"left_menu":{"selectionMenuName":"modifierList","code":"self.get_modifier_value(\"m1\")","selectionObj":{"id":"m1","name":"m1","tokenisedCode":"self.get_modifier_value(\"m1\")","initialValue":0,"cat":"modifier","valueType":"all"},"extraFields":[]},"operator":{"selectionMenuName":"conditionOperators","code":"#left-menu# > #right-val#","selectionObj":{"id":"is_greater_than","name":"is greater than","tokenisedCode":"#left-menu# > #right-val#","type":"number","valueTypes":["int","float","double","long"]},"extraFields":[]},"right_val":{"code":"#number#","selectionObj":{"id":"enter_number","name":"Number","cat":"Custom","Parent":"Custom","tokenisedCode":"#number#","extraFields":["number"],"desc":"Enter number","valueType":"int","notes":null},"selectionMenuName":"customOptions","extraFields":[{"id":"number","name":"Number","desc":null,"used in functions (for reference only)":null,"placeholder":"Enter number","buttonDisplayName":null,"defaultType":"number","type":"number","include_range_value_option":"y","value":0,"strReplace":"#number#","tweakVal":null,"isOptional":null,"includeTheseMenus":["lomValues","inputVelocity","modifierList","loopValues","scriptValues","customCode"],"selectionOptions":[],"displayIf":null}],"value":"0"},"customCodeHeight":"44px"},{"showCondition":true,"full_code":"self.midi_cc_ch_0_val_1.cur_val <= 63","set_to_custom":false,"left_menu":{"selectionMenuName":"elementInputsCurrent","code":"self.midi_cc_ch_0_val_1.cur_val","selectionObj":{"id":"knob_3","name":"Knob 3's latest velocity value","MIDI_type":"cc","MIDI_channel":0,"MIDI_value":1,"tokenisedCode":"self.midi_cc_ch_0_val_1.cur_val","valueType":"int","value":"control_id=3","extraFields":[],"menutype":"elementInputsCurrent","filterCat":"Latest MIDI Input"},"extraFields":[]},"operator":{"selectionMenuName":"conditionOperators","code":"#left-menu# <= #right-val#","selectionObj":{"id":"is_less_than_or_equal_to","name":"is less than or equal to","tokenisedCode":"#left-menu# <= #right-val#","type":"number","valueTypes":["int","float","double","long"]},"extraFields":[]},"right_val":{"code":"#number#","selectionObj":{"id":"enter_number","name":"Number","cat":"Custom","Parent":"Custom","tokenisedCode":"#number#","extraFields":["number"],"desc":"Enter number","valueType":"int","notes":null},"selectionMenuName":"customOptions","extraFields":[{"id":"number","name":"Number","desc":null,"used in functions (for reference only)":null,"placeholder":"Enter number","buttonDisplayName":null,"defaultType":"number","type":"number","include_range_value_option":"y","value":63,"strReplace":"#number#","tweakVal":null,"isOptional":null,"includeTheseMenus":["lomValues","inputVelocity","modifierList","loopValues","scriptValues","customCode"],"selectionOptions":[],"displayIf":null}],"value":"63"}}]],"actions":[{"showAction":true,"full_code":"self.set_modifier_value(\"m1\", self.get_modifier_value(\"m1\") - 1)","set_to_custom":false,"element_menu":{"selectionMenuName":"scriptFunctions","code":"self.set_modifier_value(#modifier-name#, #value-to-set#)","selectionObj":{"id":"set_modifier_value","name":"modifiers - set the value of a modifier","cat":"script","Parent":"script","tokenisedCode":"self.set_modifier_value(#modifier-name#, #value-to-set#)","extraFields":[],"parameters":["modifier_name","value_to_set"],"multitude_cats":[],"desc":"Set the value of a Modifier","returnsValueOfType":null,"notes":null},"extraFields":[]},"extra_parameters":{"code":"","parameters":[{"parameterObj":{"id":"modifier_name","name":"Modifier","desc":"The modifier that will be updated","used in functions (for reference only)":"set_modifier_value","placeholder":null,"buttonDisplayName":"m1","defaultType":"select","type":"button","include_range_value_option":"y","value":"\"m1\"","strReplace":"#modifier-name#","tweakVal":null,"isOptional":null,"includeTheseMenus":["modifierName"],"selectionOptions":[],"displayIf":null},"value":"\"m1\"","selectionObj":{"id":"m1","name":"m1","tokenisedCode":"\"m1\"","initialValue":0,"cat":"modifier","valueType":"all"},"selectionMenuName":"modifierNameList","extraFields":[]},{"parameterObj":{"id":"value_to_set","name":"Value To Set","desc":"This will be set as the value of the modifier","used in functions (for reference only)":null,"placeholder":"Enter custom code","defaultType":"number","type":"custom","include_range_value_option":"y","value":"self.get_modifier_value(\"m1\")","strReplace":"#value-to-set#","tweakVal":null,"isOptional":null,"includeTheseMenus":["text","lomValues","inputVelocity","modifierList","loopValues","scriptValues","customCode"],"selectionOptions":[],"displayIf":null},"value":"self.get_modifier_value(\"m1\") - 1","extraFields":[]}]}}],"showNotes":true,"notes":"Increase M1 value if turning encoder to the right (velocity 66 is received)","noteHeight":"20px"}],"reaction_listeners":[{"set_to_custom":false,"reaction_listener":"control_id=3","custom_lom_listener":"","showlistener":true,"selectionObj":{"id":"knob_3","name":"Knob 3 was turned","MIDI_type":"cc","MIDI_channel":0,"MIDI_value":1,"tokenisedCode":"self.midi_cc_ch_0_val_1","valueType":"int","value":"control_id=3","desc":"Knob 3 was turned"}}],"reaction_listeners_show_listeners":true,"control":"default","control_type":"Absolute","control_type_takeover_mode":"None","control_type_on":127,"on_condition":"isEqualTo","off_condition":"isEqualTo","control_type_off":0,"control_type_first":0,"control_type_last":127,"control_type_reverse_mode":"False","control_type_left":0,"control_type_right":127,"control_type_steps":1,"control_type_switch":"Momentary","control_type_delay_amount":0.5,"controller_input_id":3,"id":10,"get_mode_name":"mode 0","get_type_name":"Reaction_v2","get_chips_array":["Encoder"],"disabled":false,"get_disabled":"isEnabled","errors":""},{"type":{"id":68,"name":"Reaction","type":"Reaction_v2","parent":0,"has_child":0,"level":1,"icon":"question_answer"},"chips":["Encoder"],"name":"Set m1 value on init","mode_id":1,"LED_mapping_type_needs_feedback":false,"reaction_action_blocks":[{"showConditions":false,"showActions":true,"showBlock":true,"loop":{"full_code":"","set_to_custom":false,"loopActive":false,"code":""},"conditionGroups":[],"actions":[{"showAction":true,"full_code":"self.set_modifier_value(\"m1\", self.get_value_from_ranges(False, 14, False, self.song().clip_trigger_quantization, 0, 13, 0, 0, 127, 0, False))","set_to_custom":false,"element_menu":{"selectionMenuName":"scriptFunctions","code":"self.set_modifier_value(#modifier-name#, #value-to-set#)","selectionObj":{"id":"set_modifier_value","name":"modifiers - set the value of a modifier","cat":"script","Parent":"script","tokenisedCode":"self.set_modifier_value(#modifier-name#, #value-to-set#)","extraFields":[],"parameters":["modifier_name","value_to_set"],"multitude_cats":[],"desc":"Set the value of a Modifier","returnsValueOfType":null,"notes":null},"extraFields":[]},"extra_parameters":{"code":"","parameters":[{"parameterObj":{"id":"modifier_name","name":"Modifier","desc":"The modifier that will be updated","used in functions (for reference only)":"set_modifier_value","placeholder":null,"buttonDisplayName":"m1","defaultType":"select","type":"button","include_range_value_option":"y","value":"\"m1\"","strReplace":"#modifier-name#","tweakVal":null,"isOptional":null,"includeTheseMenus":["modifierName"],"selectionOptions":[],"displayIf":null},"value":"\"m1\"","selectionObj":{"id":"m1","name":"m1","tokenisedCode":"\"m1\"","initialValue":0,"cat":"modifier","valueType":"all"},"selectionMenuName":"modifierNameList","extraFields":[]},{"parameterObj":{"id":"value_to_set","name":"Value To Set","desc":"This will be set as the value of the modifier","used in functions (for reference only)":null,"placeholder":"Enter a value","defaultType":"number","type":"custom","include_range_value_option":"y","value":null,"strReplace":"#value-to-set#","tweakVal":null,"isOptional":null,"includeTheseMenus":["text","lomValues","inputVelocity","modifierList","loopValues","scriptValues","customCode"],"selectionOptions":[],"displayIf":null},"use_value_from_ranges":true,"extraFields":[],"value_range":[[{"classes":"","name":"number of steps","defaultType":"number","type":"number","initialValue":10,"value":"14","strReplace":"#b2#","desc":"How many steps should the ranges have between their min and max values?"},{"classes":"","group":1,"name":"Round down","defaultType":"checkbox","type":"checkbox","initialValue":"False","value":"False","strReplace":"#c3#","desc":"If 'current input value' is between 2 steps then if set to 'yes' it will round down to closest step (rounds up by default)"},{"classes":"","name":"log data","defaultType":"checkbox","type":"checkbox","defaultValue":"False","value":"False","strReplace":"#a1#","desc":"output data in the log window (Note: only turn on while testing and clear the log often)"}],[{"group":2,"name":"current input value","defaultType":"number","type":"button","initialValue":15,"value":"self.song().clip_trigger_quantization","strReplace":"#d4#","desc":"the value which the input range is currently set as","selectionObj":{"id":"song_clip_trigger_quantization","name":"clip trigger quantization","cat":"Song","parent":"Song","type":"property","tokenisedCode":"self.song().clip_trigger_quantization","get":"y","set":"y","observe":"y","valueType":"int","desc":"Reflects the quantization setting in the transport bar. 0: None, 1: 8 Bars, 2: 4 Bars, 3: 2 Bars, 4: 1 Bar, 5: 1/2, 6: 1/2T, 7: 1/4, 8: 1/4T, 9: 1/8, 10: 1/8T, 11: 1/16, 12: 1/16T, 13: 1/32","extraFields":[],"originalCode":null,"dev":null},"selectionMenuName":"lomList","extraFields":[]},{"group":2,"name":"input min","defaultType":"number","type":"number","initialValue":0,"value":0,"strReplace":"#e5#","desc":"Set the minimum value for the input range"},{"group":2,"name":"input max","defaultType":"number","type":"number","initialValue":127,"value":"13","strReplace":"#f6#","desc":"Set the maximum value for the input range"},{"group":2,"name":"input decimal places","defaultType":"number","type":"number","initialValue":2,"value":"0","strReplace":"#g7#","desc":"set the decimal place limit for input range values"}],[{"group":3,"name":"output min","defaultType":"number","type":"number","initialValue":0,"value":0,"strReplace":"#h8#","desc":"Set the minimum value for the output range"},{"group":3,"name":"output max","defaultType":"number","type":"number","initialValue":127,"value":127,"strReplace":"#i9#","desc":"Set the maximum value for the output range"},{"group":1,"name":"output decimal places","defaultType":"number","type":"number","initialValue":2,"value":"0","strReplace":"#j10#","desc":"Set the decimal place limit for output range values"},{"group":1,"name":"reverse output range","defaultType":"checkbox","type":"checkbox","initialValue":"False","value":"False","strReplace":"#k11#","desc":"Reverse the direction of the output range. It will instead go from max to min"}]],"value_range_expanded":true,"value":"self.get_value_from_ranges(False, 14, False, self.song().clip_trigger_quantization, 0, 13, 0, 0, 127, 0, False)"}]}}]}],"reaction_listeners":[{"set_to_custom":false,"reaction_listener":"script_listener={\"reaction_name\":\"script_was_initialised\"}","custom_lom_listener":"","showlistener":true,"selectionObj":{"id":"script_was_initialised","reaction_name":"script_was_initialised","name":"script is initialised","include_mode_id":"n","include_param2":"n","desc":"When the script is first initialised, note: this listener is not mode specific (it will always fire when the script is loaded regardless of the active mode)","menutype":"scriptListener","filterCat":"script"},"selectionMenuName":"scriptListeners","extraFields":[],"code":""}],"reaction_listeners_show_listeners":true,"control":"default","control_type":"Absolute","control_type_takeover_mode":"None","control_type_on":127,"on_condition":"isEqualTo","off_condition":"isEqualTo","control_type_off":0,"control_type_first":0,"control_type_last":127,"control_type_reverse_mode":"False","control_type_left":0,"control_type_right":127,"control_type_steps":1,"control_type_switch":"Momentary","control_type_delay_amount":0.5,"notes":"To avoid a value jump when you first update the modifier m1, we need to set m1 to the equivalent range value when the script loads","noteHeight":"20px","id":7,"get_mode_name":"mode 0","get_type_name":"Reaction_v2","get_chips_array":["Encoder"],"disabled":false,"get_disabled":"isEnabled","errors":""},{"type":{"id":68,"name":"Reaction","type":"Reaction_v2","parent":0,"has_child":0,"level":1,"icon":"question_answer"},"chips":["Encoder"],"name":"get value from ranges","mode_id":1,"LED_mapping_type_needs_feedback":false,"reaction_action_blocks":[{"showConditions":false,"showActions":true,"showBlock":true,"loop":{"full_code":"","set_to_custom":false,"loopActive":false,"code":""},"conditionGroups":[],"actions":[{"showAction":true,"full_code":"self.song().clip_trigger_quantization = self.get_value_from_ranges(False, 14, False, self.get_modifier_value(\"m1\"), 0, 127, 0, 0, 13, 0, False)","set_to_custom":false,"element_menu":{"selectionMenuName":"lomFunctionsList","code":"self.song().clip_trigger_quantization = #int#","selectionObj":{"id":"set_song_clip_trigger_quantization","name":"set clip trigger quantization","cat":"Song","Parent":"Song","tokenisedCode":"self.song().clip_trigger_quantization = #int#","extraFields":[],"parameters":["int"],"multitude_cats":[],"desc":"Reflects the quantization setting in the transport bar. 0: None, 1: 8 Bars, 2: 4 Bars, 3: 2 Bars, 4: 1 Bar, 5: 1/2, 6: 1/2T, 7: 1/4, 8: 1/4T, 9: 1/8, 10: 1/8T, 11: 1/16, 12: 1/16T, 13: 1/32","returnsValueOfType":null,"notes":null,"menutype":"lomFunctionsList","filterCat":"Song"},"extraFields":[]},"extra_parameters":{"code":"","parameters":[{"parameterObj":{"id":"int","name":"Number (Int)","desc":"A number value","used in functions (for reference only)":null,"placeholder":null,"defaultType":"number","type":"custom","include_range_value_option":"y","value":null,"strReplace":"#int#","tweakVal":null,"isOptional":null,"includeTheseMenus":["modifierList","customCode"],"selectionOptions":[],"displayIf":null},"use_value_from_ranges":true,"extraFields":[],"value_range":[[{"classes":"","name":"number of steps","defaultType":"number","type":"number","initialValue":10,"value":"14","strReplace":"#b2#","desc":"How many steps should the ranges have between their min and max values?"},{"classes":"","group":1,"name":"Round down","defaultType":"checkbox","type":"checkbox","initialValue":"False","value":"False","strReplace":"#c3#","desc":"If 'current input value' is between 2 steps then if set to 'yes' it will round down to closest step (rounds up by default)"},{"classes":"","name":"log data","defaultType":"checkbox","type":"checkbox","defaultValue":"False","value":"False","strReplace":"#a1#","desc":"output data in the log window (Note: only turn on while testing and clear the log often)"}],[{"group":2,"name":"current input value","defaultType":"number","type":"button","initialValue":15,"value":"self.get_modifier_value(\"m1\")","strReplace":"#d4#","desc":"the value which the input range is currently set as","selectionObj":{"id":"m1","name":"m1","tokenisedCode":"self.get_modifier_value(\"m1\")","initialValue":0,"cat":"modifier","valueType":"all"},"selectionMenuName":"modifierList","extraFields":[]},{"group":2,"name":"input min","defaultType":"number","type":"number","initialValue":0,"value":0,"strReplace":"#e5#","desc":"Set the minimum value for the input range"},{"group":2,"name":"input max","defaultType":"number","type":"number","initialValue":127,"value":127,"strReplace":"#f6#","desc":"Set the maximum value for the input range"},{"group":2,"name":"input decimal places","defaultType":"number","type":"number","initialValue":2,"value":"0","strReplace":"#g7#","desc":"set the decimal place limit for input range values"}],[{"group":3,"name":"output min","defaultType":"number","type":"number","initialValue":0,"value":0,"strReplace":"#h8#","desc":"Set the minimum value for the output range"},{"group":3,"name":"output max","defaultType":"number","type":"number","initialValue":127,"value":"13","strReplace":"#i9#","desc":"Set the maximum value for the output range"},{"group":1,"name":"output decimal places","defaultType":"number","type":"number","initialValue":2,"value":"0","strReplace":"#j10#","desc":"Set the decimal place limit for output range values"},{"group":1,"name":"reverse output range","defaultType":"checkbox","type":"checkbox","initialValue":"False","value":"False","strReplace":"#k11#","desc":"Reverse the direction of the output range. It will instead go from max to min"}]],"value_range_expanded":true,"value":"self.get_value_from_ranges(False, 14, False, self.get_modifier_value(\"m1\"), 0, 127, 0, 0, 13, 0, False)"}]}}]}],"reaction_listeners":[{"set_to_custom":false,"reaction_listener":"script_listener={\"param2\":\"m1\",\"reaction_name\":\"modifier_was_updated\"}","custom_lom_listener":"","showlistener":true,"selectionObj":{"id":"m1","name":"m1 modifier was updated","tokenisedCode":"self.get_modifier_value(\"m1\")","initialValue":0,"cat":"modifier","valueType":"all","reaction_name":"modifier_was_updated","param2":"m1","include_mode_id":"y","include_param_2":"y"},"selectionMenuName":"modifierListListeners","extraFields":[],"code":""}],"reaction_listeners_show_listeners":true,"control":"default","control_type":"Absolute","control_type_takeover_mode":"None","control_type_on":127,"on_condition":"isEqualTo","off_condition":"isEqualTo","control_type_off":0,"control_type_first":0,"control_type_last":127,"control_type_reverse_mode":"False","control_type_left":0,"control_type_right":127,"control_type_steps":1,"control_type_switch":"Momentary","control_type_delay_amount":0.5,"id":5,"get_mode_name":"mode 0","get_type_name":"Reaction_v2","get_chips_array":["Encoder"],"disabled":false,"get_disabled":"isEnabled","errors":"","controller_input_id":3},{"LED_feedback":"custom","LED_feedback_active":false,"LED_mapping_type_needs_feedback":false,"LED_off":0,"LED_on":127,"LED_send_feedback_to_selected":["Knob 1"],"has_child":1,"id":1,"level":0,"name":"mode 0","isGlobal":true,"parent_id":0,"type":{"id":0,"name":"Mode","type":"Mode","parent":null,"has_child":1,"level":0,"icon":"fa-layer-group"},"get_mode_name":"","get_type_name":"Mode","disabled":false,"get_disabled":"isEnabled","errors":""},{"LED_feedback":"custom","LED_feedback_active":false,"LED_mapping_type_needs_feedback":false,"LED_off":0,"LED_on":127,"LED_send_feedback_to_selected":["Knob 1"],"has_child":1,"id":3,"level":0,"name":"mode 2","isGlobal":false,"parent_id":0,"type":{"id":0,"name":"Mode","type":"Mode","parent":null,"has_child":1,"level":0,"icon":"fa-layer-group"},"get_mode_name":"","get_type_name":"Mode","disabled":false,"get_disabled":"isEnabled","errors":""},{"LED_feedback":"custom","LED_feedback_active":false,"LED_mapping_type_needs_feedback":false,"LED_off":0,"LED_on":127,"LED_send_feedback_to_selected":["Knob 1"],"has_child":1,"id":2,"level":0,"name":"mode 1","isGlobal":false,"parent_id":0,"type":{"id":0,"name":"Mode","type":"Mode","parent":null,"has_child":1,"level":0,"icon":"fa-layer-group"},"get_mode_name":"","get_type_name":"Mode","disabled":false,"get_disabled":"isEnabled","errors":""}]