diff options
Diffstat (limited to 'Desktop Editor/src')
-rw-r--r-- | Desktop Editor/src/App.vue | 26 | ||||
-rw-r--r-- | Desktop Editor/src/assets/decoded_preset_example.json | 4044 | ||||
-rw-r--r-- | Desktop Editor/src/assets/logo.png | bin | 0 -> 6849 bytes | |||
-rw-r--r-- | Desktop Editor/src/assets/setlist_example.json | 4126 | ||||
-rw-r--r-- | Desktop Editor/src/assets/setlist_example.xml | 1034 | ||||
-rw-r--r-- | Desktop Editor/src/components/PresetBlock.vue | 191 | ||||
-rw-r--r-- | Desktop Editor/src/components/PresetChain.vue | 142 | ||||
-rw-r--r-- | Desktop Editor/src/components/PresetGrid.vue | 80 | ||||
-rw-r--r-- | Desktop Editor/src/main.ts | 31 | ||||
-rw-r--r-- | Desktop Editor/src/models/Presets/Preset_pb.d.ts | 661 | ||||
-rw-r--r-- | Desktop Editor/src/models/Presets/Preset_pb.js | 5296 | ||||
-rw-r--r-- | Desktop Editor/src/models/Presets/index.ts | 1 | ||||
-rw-r--r-- | Desktop Editor/src/protos/Preset.proto | 157 | ||||
-rw-r--r-- | Desktop Editor/src/shims-vue.d.ts | 6 | ||||
-rw-r--r-- | Desktop Editor/src/store.ts | 38 | ||||
-rw-r--r-- | Desktop Editor/src/views/PresetBrowserView.vue | 174 | ||||
-rw-r--r-- | Desktop Editor/src/views/PresetViewer.vue | 63 |
17 files changed, 16070 insertions, 0 deletions
diff --git a/Desktop Editor/src/App.vue b/Desktop Editor/src/App.vue new file mode 100644 index 0000000..3feca32 --- /dev/null +++ b/Desktop Editor/src/App.vue @@ -0,0 +1,26 @@ +<template> + <router-view></router-view> +</template> + +<script lang="ts"> +import { Vue } from 'vue-class-component'; + + +export default class App extends Vue {} +</script> + +<style> +#app { + font-family: Avenir, Helvetica, Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-align: center; + color: #ffffff; + margin-top: 60px; + box-sizing: border-box; +} + +body { + background-color: #1d1c1c; +} +</style> diff --git a/Desktop Editor/src/assets/decoded_preset_example.json b/Desktop Editor/src/assets/decoded_preset_example.json new file mode 100644 index 0000000..57e4a87 --- /dev/null +++ b/Desktop Editor/src/assets/decoded_preset_example.json @@ -0,0 +1,4044 @@ +{ + "hash": 264918185, + "date": "2022-09-09T17:09:07Z", + "volume": 1, + "pan": 0.5, + "authorName": "[email protected]", + "authorId": "937ed671-fe7c-4972-94c4-433038f4d560", + "tempo": 89, + "chains": [ + { + "inPortid": 1, + "outPortid": 19, + "models": [ + { + "hash": 3007, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.429999977350235 + }, + { + "floatValue": 0.429999977350235 + }, + { + "floatValue": 0.429999977350235 + }, + { + "floatValue": 0.429999977350235 + }, + { + "floatValue": 0.429999977350235 + }, + { + "floatValue": 0.429999977350235 + }, + { + "floatValue": 0.429999977350235 + }, + { + "floatValue": 0.429999977350235 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5199999809265137 + }, + { + "floatValue": 0.5199999809265137 + }, + { + "floatValue": 0.5199999809265137 + }, + { + "floatValue": 0.5199999809265137 + }, + { + "floatValue": 0.5199999809265137 + }, + { + "floatValue": 0.5199999809265137 + }, + { + "floatValue": 0.5199999809265137 + }, + { + "floatValue": 0.5199999809265137 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5299999117851257 + }, + { + "floatValue": 0.5299999117851257 + }, + { + "floatValue": 0.5299999117851257 + }, + { + "floatValue": 0.5299999117851257 + }, + { + "floatValue": 0.5299999117851257 + }, + { + "floatValue": 0.5299999117851257 + }, + { + "floatValue": 0.5299999117851257 + }, + { + "floatValue": 0.5299999117851257 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ] + }, + { + "hash": 0 + }, + { + "hash": 14000, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.6000077128410339 + }, + { + "floatValue": 0.6000077128410339 + }, + { + "floatValue": 0.6000077128410339 + }, + { + "floatValue": 0.6000077128410339 + }, + { + "floatValue": 0.6000077128410339 + }, + { + "floatValue": 0.6000077128410339 + }, + { + "floatValue": 0.6000077128410339 + }, + { + "floatValue": 0.6000077128410339 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.619999885559082 + }, + { + "floatValue": 0.619999885559082 + }, + { + "floatValue": 0.619999885559082 + }, + { + "floatValue": 0.619999885559082 + }, + { + "floatValue": 0.619999885559082 + }, + { + "floatValue": 0.619999885559082 + }, + { + "floatValue": 0.619999885559082 + }, + { + "floatValue": 0.619999885559082 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5099999904632568 + }, + { + "floatValue": 0.5099999904632568 + }, + { + "floatValue": 0.5099999904632568 + }, + { + "floatValue": 0.5099999904632568 + }, + { + "floatValue": 0.5099999904632568 + }, + { + "floatValue": 0.5099999904632568 + }, + { + "floatValue": 0.5099999904632568 + }, + { + "floatValue": 0.5099999904632568 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5800078511238098 + }, + { + "floatValue": 0.5800078511238098 + }, + { + "floatValue": 0.5800078511238098 + }, + { + "floatValue": 0.5800078511238098 + }, + { + "floatValue": 0.5800078511238098 + }, + { + "floatValue": 0.5800078511238098 + }, + { + "floatValue": 0.5800078511238098 + }, + { + "floatValue": 0.5800078511238098 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.4799998998641968 + }, + { + "floatValue": 0.4799998998641968 + }, + { + "floatValue": 0.4799998998641968 + }, + { + "floatValue": 0.4799998998641968 + }, + { + "floatValue": 0.4799998998641968 + }, + { + "floatValue": 0.4799998998641968 + }, + { + "floatValue": 0.4799998998641968 + }, + { + "floatValue": 0.4799998998641968 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "stringValue": "cc00b44a16c96854096d818d94cc4c90f392981a0bfddaddb8a74a40d49fe2edCA M6Rifle 8" + }, + { + "stringValue": "cc00b44a16c96854096d818d94cc4c90f392981a0bfddaddb8a74a40d49fe2edCA M6Rifle 8" + }, + { + "stringValue": "cc00b44a16c96854096d818d94cc4c90f392981a0bfddaddb8a74a40d49fe2edCA M6Rifle 8" + }, + { + "stringValue": "cc00b44a16c96854096d818d94cc4c90f392981a0bfddaddb8a74a40d49fe2edCA M6Rifle 8" + }, + { + "stringValue": "cc00b44a16c96854096d818d94cc4c90f392981a0bfddaddb8a74a40d49fe2edCA M6Rifle 8" + }, + { + "stringValue": "cc00b44a16c96854096d818d94cc4c90f392981a0bfddaddb8a74a40d49fe2edCA M6Rifle 8" + }, + { + "stringValue": "cc00b44a16c96854096d818d94cc4c90f392981a0bfddaddb8a74a40d49fe2edCA M6Rifle 8" + }, + { + "stringValue": "cc00b44a16c96854096d818d94cc4c90f392981a0bfddaddb8a74a40d49fe2edCA M6Rifle 8" + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ] + }, + { + "hash": 26001, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.47624942660331726 + }, + { + "floatValue": 0.47624942660331726 + }, + { + "floatValue": 0.47624942660331726 + }, + { + "floatValue": 0.47624942660331726 + }, + { + "floatValue": 0.47624942660331726 + }, + { + "floatValue": 0.47624942660331726 + }, + { + "floatValue": 0.47624942660331726 + }, + { + "floatValue": 0.47624942660331726 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.30149441957473755 + }, + { + "floatValue": 0.30149441957473755 + }, + { + "floatValue": 0.30149441957473755 + }, + { + "floatValue": 0.30149441957473755 + }, + { + "floatValue": 0.30149441957473755 + }, + { + "floatValue": 0.30149441957473755 + }, + { + "floatValue": 0.30149441957473755 + }, + { + "floatValue": 0.30149441957473755 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + }, + { + "floatValue": 0.6621649265289307 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ] + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 21003, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "stringValue": "NG_810 Amped SVT Aln 70s_Dynamic 57" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Dynamic 57" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Dynamic 57" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Dynamic 57" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Dynamic 57" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Dynamic 57" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Dynamic 57" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Dynamic 57" + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "stringValue": "NG_810 Amped SVT Aln 70s_Ribbon 10" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Ribbon 10" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Ribbon 10" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Ribbon 10" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Ribbon 10" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Ribbon 10" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Ribbon 10" + }, + { + "stringValue": "NG_810 Amped SVT Aln 70s_Ribbon 10" + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + }, + { + "floatValue": 0.50206458568573 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ] + } + ], + "splitControlPoints": [ + { + "split": -1, + "mix": -1 + } + ], + "splitter": [ + { + "hash": 10002, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ] + } + ], + "mixer": [ + { + "hash": 11000, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ] + } + ], + "outputControl": [ + { + "hash": 23000, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ], + "expressionBypassInfo": [ + { + "type": 2, + "delayMs": 600 + }, + { + "type": 2, + "delayMs": 600 + } + ] + } + ], + "splitBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "mixBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "combinedSplitter": [ + { + "hash": 10004, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ] + } + ], + "inputControl": [ + { + "hash": 28000, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.29699987173080444 + }, + { + "floatValue": 0.29699987173080444 + }, + { + "floatValue": 0.29699987173080444 + }, + { + "floatValue": 0.29699987173080444 + }, + { + "floatValue": 0.29699987173080444 + }, + { + "floatValue": 0.29699987173080444 + }, + { + "floatValue": 0.29699987173080444 + }, + { + "floatValue": 0.29699987173080444 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ], + "expressionBypassInfo": [ + { + "type": 2, + "delayMs": 600 + } + ] + } + ] + }, + { + "inPortid": 0, + "outPortid": 0, + "models": [ + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + } + ], + "outputControl": [ + { + "hash": 23000, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ], + "expressionBypassInfo": [ + { + "type": 2, + "delayMs": 600 + }, + { + "type": 2, + "delayMs": 600 + } + ] + } + ], + "inputControl": [ + { + "hash": 28000, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ], + "expressionBypassInfo": [ + { + "type": 2, + "delayMs": 600 + } + ] + } + ] + }, + { + "inPortid": 0, + "outPortid": 0, + "models": [ + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + } + ], + "splitControlPoints": [ + { + "split": -1, + "mix": -1 + } + ], + "splitter": [ + { + "hash": 10002, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ] + } + ], + "mixer": [ + { + "hash": 11000, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ] + } + ], + "outputControl": [ + { + "hash": 23000, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ], + "expressionBypassInfo": [ + { + "type": 2, + "delayMs": 600 + }, + { + "type": 2, + "delayMs": 600 + } + ] + } + ], + "splitBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "mixBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "combinedSplitter": [ + { + "hash": 10004, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + }, + { + "floatValue": 0.49547526240348816 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ] + } + ], + "inputControl": [ + { + "hash": 28000, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ], + "expressionBypassInfo": [ + { + "type": 2, + "delayMs": 600 + } + ] + } + ] + }, + { + "inPortid": 0, + "outPortid": 0, + "models": [ + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + }, + { + "hash": 0 + } + ], + "outputControl": [ + { + "hash": 23000, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + }, + { + "floatValue": 0.7692307829856873 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + }, + { + "floatValue": 0.5 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ], + "expressionBypassInfo": [ + { + "type": 2, + "delayMs": 600 + }, + { + "type": 2, + "delayMs": 600 + } + ] + } + ], + "inputControl": [ + { + "hash": 28000, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + }, + { + "floatValue": 0.30000001192092896 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + }, + { + "floatValue": 1 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ], + "expressionBypassInfo": [ + { + "type": 2, + "delayMs": 600 + } + ] + } + ] + } + ], + "tags": [ + "Not Mandatory" + ], + "sceneTempo": [ + 120, + 120, + 120, + 120, + 120, + 120, + 120, + 120 + ], + "sceneLabels": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "midiMessages": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "midiMessagesGeneral": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "bypass": [ + { + "colBypass": [ + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + } + ] + }, + { + "colBypass": [ + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + } + ] + }, + { + "colBypass": [ + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + } + ] + }, + { + "colBypass": [ + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + }, + { + "sceneBypass": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ] + } + ] + } + ], + "tempoProgramData": [ + { + "hash": 25000, + "params": [ + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + }, + { + "floatValue": 0.4000000059604645 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + }, + { + "expression": 0, + "expressionMin": 0, + "expressionMax": 1, + "sceneMode": false, + "paramValues": [ + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + }, + { + "floatValue": 0 + } + ] + } + ], + "bypassExpression": [ + { + "expressionMax": 1 + } + ] + } + ], + "layoutCode_1": [ + 15 + ], + "layoutCode_2": [ + 0 + ], + "createdVersion": [ + "1.3.3" + ], + "modifiedVersion": [ + "1.4.0" + ], + "oldestCompatibleVersion": [ + "1.4.0" + ], + "cloudId": [ + "" + ], + "description": [ + "" + ], + "stompModeAssignments": [ + {}, + { + "column": 3, + "stompIndex": 6 + }, + { + "column": 7, + "stompIndex": 1 + } + ] +}
\ No newline at end of file diff --git a/Desktop Editor/src/assets/logo.png b/Desktop Editor/src/assets/logo.png Binary files differnew file mode 100644 index 0000000..f3d2503 --- /dev/null +++ b/Desktop Editor/src/assets/logo.png diff --git a/Desktop Editor/src/assets/setlist_example.json b/Desktop Editor/src/assets/setlist_example.json new file mode 100644 index 0000000..2709371 --- /dev/null +++ b/Desktop Editor/src/assets/setlist_example.json @@ -0,0 +1,4126 @@ +{ + "Setlists": { + "Setlist": [ + { + "Preset": [ + { + "_hash": "697494485", + "_path": "/media/p4/Presets/My Presets/Nameless Slapper.pb" + }, + { + "_hash": "2848806090", + "_path": "/media/p4/Presets/My Presets/Cannibal.pb" + }, + { + "_hash": "1684646864", + "_path": "/media/p4/Presets/My Presets/Metallica.pb" + }, + { + "_hash": "2063471668", + "_path": "/media/p4/Presets/My Presets/Engl.pb" + }, + { + "_hash": "797150659", + "_path": "/media/p4/Presets/My Presets/Randall Satan Fortin.pb" + }, + { + "_hash": "1171927217", + "_path": "/media/p4/Presets/My Presets/Green Day Humbucker.pb" + }, + { + "_hash": "2547308107", + "_path": "/media/p4/Presets/My Presets/Fried Metal.pb" + }, + { + "_hash": "1986382787", + "_path": "/media/p4/Presets/My Presets/Hector.pb" + }, + { + "_hash": "629270769", + "_path": "/media/p4/Presets/My Presets/JCM800 Rock.pb" + }, + { + "_hash": "3867493555", + "_path": "/media/p4/Presets/My Presets/Slaughter.pb" + }, + { + "_hash": "2437793901", + "_path": "/media/p4/Presets/My Presets/GOAT.pb" + }, + { + "_hash": "3959616889", + "_path": "/media/p4/Presets/My Presets/Chug_5150.pb" + }, + { + "_hash": "1246696834", + "_path": "/media/p4/Presets/My Presets/Mayer.pb" + }, + { + "_hash": "750500687", + "_path": "/media/p4/Presets/My Presets/Fortin NTS Suite.pb" + }, + { + "_hash": "99714316", + "_path": "/media/p4/Presets/My Presets/Twin Sister Patch.pb" + }, + { + "_hash": "2656952353", + "_path": "/media/p4/Presets/My Presets/Screamin Sisters.pb" + }, + { + "_hash": "1626326589", + "_path": "/media/p4/Presets/My Presets/Bass Guitar What.pb" + }, + { + "_hash": "1366777887", + "_path": "/media/p4/Presets/My Presets/Revv.pb" + }, + { + "_hash": "1441963394", + "_path": "/media/p4/Presets/My Presets/Synthesque Bass.pb" + }, + { + "_hash": "3337358135", + "_path": "/media/p4/Presets/My Presets/Synth Bass.pb" + }, + { + "_hash": "1816976375", + "_path": "/media/p4/Presets/My Presets/Power.pb" + }, + { + "_hash": "1950257017", + "_path": "/media/p4/Presets/My Presets/5150.pb" + }, + { + "_hash": "896624363", + "_path": "/media/p4/Presets/My Presets/Two Rock Gigging.pb" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "2323719245", + "_path": "/media/p4/Presets/My Presets/Twin Crunch.pb" + }, + { + "_hash": "4028279899", + "_path": "/media/p4/Presets/My Presets/Acdc.pb" + }, + { + "_hash": "3226492391", + "_path": "/media/p4/Presets/My Presets/Fat Rockabilly.pb" + }, + { + "_hash": "3377673212", + "_path": "/media/p4/Presets/My Presets/Acoustic Sim.pb" + }, + { + "_hash": "3671648184", + "_path": "/media/p4/Presets/My Presets/Voice Over.pb" + }, + { + "_hash": "1023911697", + "_path": "/media/p4/Presets/My Presets/Petru Gian.pb" + }, + { + "_hash": "2934210149", + "_path": "/media/p4/Presets/My Presets/Plugin.pb" + }, + { + "_hash": "3888883938", + "_path": "/media/p4/Presets/My Presets/Behemoth.pb" + }, + { + "_hash": "2172773384", + "_path": "/media/p4/Presets/My Presets/Slayer KK.pb" + }, + { + "_hash": "143138298", + "_path": "/media/p4/Presets/My Presets/Say It Aint So.pb" + }, + { + "_hash": "3056582249", + "_path": "/media/p4/Presets/My Presets/VULGAR.pb" + }, + { + "_hash": "2558212119", + "_path": "/media/p4/Presets/My Presets/Dookie.pb" + }, + { + "_hash": "2616924965", + "_path": "/media/p4/Presets/My Presets/Lamb Of God.pb" + }, + { + "_hash": "3947449986", + "_path": "/media/p4/Presets/My Presets/RATM.pb" + }, + { + "_hash": "3200977930", + "_path": "/media/p4/Presets/My Presets/Death.pb" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "4076457719", + "_path": "/media/p4/Presets/My Presets/Antartica.pb" + }, + { + "_hash": "2221205868", + "_path": "/media/p4/Presets/My Presets/Public Image.pb" + }, + { + "_hash": "35021882", + "_path": "/media/p4/Presets/My Presets/Planet Claire.pb" + }, + { + "_hash": "2030801184", + "_path": "/media/p4/Presets/My Presets/Transmission.pb" + }, + { + "_hash": "2472823430", + "_path": "/media/p4/Presets/My Presets/Sanctuary.pb" + }, + { + "_hash": "2256205320", + "_path": "/media/p4/Presets/My Presets/Travel.pb" + }, + { + "_hash": "1202528361", + "_path": "/media/p4/Presets/My Presets/Bela Lugosi.pb" + }, + { + "_hash": "946343925", + "_path": "/media/p4/Presets/My Presets/Escape.pb" + }, + { + "_hash": "1296285866", + "_path": "/media/p4/Presets/My Presets/Be Your Dog.pb" + }, + { + "_hash": "3458765098", + "_path": "/media/p4/Presets/My Presets/Told You.pb" + }, + { + "_hash": "1233346854", + "_path": "/media/p4/Presets/My Presets/Suzy Q.pb" + }, + { + "_hash": "2736191419", + "_path": "/media/p4/Presets/My Presets/Blitzkrieg.pb" + }, + { + "_hash": "1147839917", + "_path": "/media/p4/Presets/My Presets/Bro Hymn.pb" + }, + { + "_hash": "3391359005", + "_path": "/media/p4/Presets/My Presets/Gutta.pb" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "3234630282", + "_path": "/media/p4/Presets/My Presets/Be Your Dog_1.pb" + }, + { + "_hash": "1258491658", + "_path": "/media/p4/Presets/My Presets/Told You_1.pb" + }, + { + "_hash": "1981484558", + "_path": "/media/p4/Presets/My Presets/Suzy Q_1.pb" + }, + { + "_hash": "3946158899", + "_path": "/media/p4/Presets/My Presets/Blitzkrieg_1.pb" + }, + { + "_hash": "3577334621", + "_path": "/media/p4/Presets/My Presets/Bro Hym_1.pb" + }, + { + "_hash": "3044158937", + "_path": "/media/p4/Presets/My Presets/Gutta_1.pb" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "2432124282", + "_path": "/media/p4/Presets/My Presets/Dookie V1.pb" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + } + ], + "_hash": "2691287807", + "_path": "/media/p4/Presets/My Presets" + }, + { + "Preset": [ + { + "_hash": "1876202349", + "_path": "/media/p4/Presets/Not Mandatory/Antartica.pb" + }, + { + "_hash": "1737015190", + "_path": "/media/p4/Presets/Not Mandatory/Public Image.pb" + }, + { + "_hash": "1062593608", + "_path": "/media/p4/Presets/Not Mandatory/Planet Claire.pb" + }, + { + "_hash": "434154202", + "_path": "/media/p4/Presets/Not Mandatory/Transmission.pb" + }, + { + "_hash": "4123583880", + "_path": "/media/p4/Presets/Not Mandatory/Sanctuary.pb" + }, + { + "_hash": "1099402007", + "_path": "/media/p4/Presets/Not Mandatory/Vienna.pb" + }, + { + "_hash": "3991834150", + "_path": "/media/p4/Presets/Not Mandatory/Travel.pb" + }, + { + "_hash": "4082999507", + "_path": "/media/p4/Presets/Not Mandatory/Bela Lugosi.pb" + }, + { + "_hash": "3798791403", + "_path": "/media/p4/Presets/Not Mandatory/Escape.pb" + }, + { + "_hash": "2907777472", + "_path": "/media/p4/Presets/Not Mandatory/Be Your Dog.pb" + }, + { + "_hash": "2062595200", + "_path": "/media/p4/Presets/Not Mandatory/Told You.pb" + }, + { + "_hash": "1493298100", + "_path": "/media/p4/Presets/Not Mandatory/Suzy Q.pb" + }, + { + "_hash": "2137209845", + "_path": "/media/p4/Presets/Not Mandatory/Blitzkrieg.pb" + }, + { + "_hash": "2006669379", + "_path": "/media/p4/Presets/Not Mandatory/Bro Hymn.pb" + }, + { + "_hash": "2841656115", + "_path": "/media/p4/Presets/Not Mandatory/Gutta.pb" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + } + ], + "_hash": "3023396721", + "_path": "/media/p4/Presets/Not Mandatory" + }, + { + "Preset": [ + { + "_hash": "1746704674", + "_path": "/media/p4/Presets/Cuttermess/Madness (E).pb" + }, + { + "_hash": "3319417662", + "_path": "/media/p4/Presets/Cuttermess/Mass Formation (E).pb" + }, + { + "_hash": "3415339828", + "_path": "/media/p4/Presets/Cuttermess/Resort 2 Violence F#.pb" + }, + { + "_hash": "1537339889", + "_path": "/media/p4/Presets/Cuttermess/Claws (E).pb" + }, + { + "_hash": "3543533890", + "_path": "/media/p4/Presets/Cuttermess/Guillotine (D).pb" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + }, + { + "_hash": "0", + "_path": "" + } + ], + "_hash": "3121655502", + "_path": "/media/p4/Presets/Cuttermess" + }, + { + "Preset": [ + { + "_hash": "137189267", + "_path": "/opt/neuraldsp/Factory Library/Brit 2203.pb" + }, + { + "_hash": "4204141790", + "_path": "/opt/neuraldsp/Factory Library/Brit Plexi100 Normal.pb" + }, + { + "_hash": "960249623", + "_path": "/opt/neuraldsp/Factory Library/US TWN Vibrato.pb" + }, + { + "_hash": "2534007328", + "_path": "/opt/neuraldsp/Factory Library/Rols Jazz CH120.pb" + }, + { + "_hash": "760885263", + "_path": "/opt/neuraldsp/Factory Library/California Tremo Red.pb" + }, + { + "_hash": "1651882496", + "_path": "/opt/neuraldsp/Factory Library/EV101III Red.pb" + }, + { + "_hash": "1163973570", + "_path": "/opt/neuraldsp/Factory Library/Freeman 100 Rhythm.pb" + }, + { + "_hash": "2567047354", + "_path": "/opt/neuraldsp/Factory Library/D-Cell H4 Ch3.pb" + }, + { + "_hash": "4095197445", + "_path": "/opt/neuraldsp/Factory Library/Brit Plexi 50 Patch.pb" + }, + { + "_hash": "3943835888", + "_path": "/opt/neuraldsp/Factory Library/Brit TM45 Bright.pb" + }, + { + "_hash": "3587053413", + "_path": "/opt/neuraldsp/Factory Library/OneStar Clean Tweed.pb" + }, + { + "_hash": "3209320923", + "_path": "/opt/neuraldsp/Factory Library/PV505 Lead.pb" + }, + { + "_hash": "616453951", + "_path": "/opt/neuraldsp/Factory Library/Solo 100 Lead.pb" + }, + { + "_hash": "1977076557", + "_path": "/opt/neuraldsp/Factory Library/UK C30 TopBoost.pb" + }, + { + "_hash": "1462238152", + "_path": "/opt/neuraldsp/Factory Library/US DLX Vibrato.pb" + }, + { + "_hash": "1505259591", + "_path": "/opt/neuraldsp/Factory Library/US SPR Normal.pb" + }, + { + "_hash": "3239223608", + "_path": "/opt/neuraldsp/Factory Library/Bass FlipTop 6464.pb" + }, + { + "_hash": "3761674568", + "_path": "/opt/neuraldsp/Factory Library/Bass FlipTop 6666.pb" + }, + { + "_hash": "2139363073", + "_path": "/opt/neuraldsp/Factory Library/Bass Super Valve.pb" + }, + { + "_hash": "1121127321", + "_path": "/opt/neuraldsp/Factory Library/Brit Bass 50 Normal.pb" + }, + { + "_hash": "1819885242", + "_path": "/opt/neuraldsp/Factory Library/Brit Bass 50 Patch.pb" + }, + { + "_hash": "368623654", + "_path": "/opt/neuraldsp/Factory Library/California Bass 400.pb" + }, + { + "_hash": "2698166262", + "_path": "/opt/neuraldsp/Factory Library/G800K Bass.pb" + }, + { + "_hash": "1285884048", + "_path": "/opt/neuraldsp/Factory Library/Watt Bass Bright.pb" + }, + { + "_hash": "1212830112", + "_path": "/opt/neuraldsp/Factory Library/One Amp Does It All.pb" + }, + { + "_hash": "2801363880", + "_path": "/opt/neuraldsp/Factory Library/Bogna Vishnu Clean.pb" + }, + { + "_hash": "3812345853", + "_path": "/opt/neuraldsp/Factory Library/Pushed 20w.pb" + }, + { + "_hash": "3094016952", + "_path": "/opt/neuraldsp/Factory Library/Captain 50.pb" + }, + { + "_hash": "3534574901", + "_path": "/opt/neuraldsp/Factory Library/Free Man.pb" + }, + { + "_hash": "1843882634", + "_path": "/opt/neuraldsp/Factory Library/D-Cell H4.pb" + }, + { + "_hash": "1670609786", + "_path": "/opt/neuraldsp/Factory Library/UK Twang.pb" + }, + { + "_hash": "3664240002", + "_path": "/opt/neuraldsp/Factory Library/Dual Amps And Cabs.pb" + }, + { + "_hash": "395147131", + "_path": "/opt/neuraldsp/Factory Library/Brit UBL Lead.pb" + }, + { + "_hash": "592720957", + "_path": "/opt/neuraldsp/Factory Library/Strat Ambience.pb" + }, + { + "_hash": "1117853397", + "_path": "/opt/neuraldsp/Factory Library/Airy Reverbs.pb" + }, + { + "_hash": "1728421328", + "_path": "/opt/neuraldsp/Factory Library/California Dream.pb" + }, + { + "_hash": "3910973927", + "_path": "/opt/neuraldsp/Factory Library/Nashville Session.pb" + }, + { + "_hash": "3142868727", + "_path": "/opt/neuraldsp/Factory Library/Everything I Need.pb" + }, + { + "_hash": "785973087", + "_path": "/opt/neuraldsp/Factory Library/Swiss Knife.pb" + }, + { + "_hash": "73374903", + "_path": "/opt/neuraldsp/Factory Library/Cinematic Shimmer.pb" + }, + { + "_hash": "3905744680", + "_path": "/opt/neuraldsp/Factory Library/Moody Clean.pb" + }, + { + "_hash": "3311593258", + "_path": "/opt/neuraldsp/Factory Library/Toxic Synth.pb" + }, + { + "_hash": "2121349155", + "_path": "/opt/neuraldsp/Factory Library/Grimacemonger.pb" + }, + { + "_hash": "1023241484", + "_path": "/opt/neuraldsp/Factory Library/Captain Morgue.pb" + }, + { + "_hash": "3949891348", + "_path": "/opt/neuraldsp/Factory Library/Looper X.pb" + }, + { + "_hash": "3659313856", + "_path": "/opt/neuraldsp/Factory Library/Freeze Me.pb" + }, + { + "_hash": "2425479863", + "_path": "/opt/neuraldsp/Factory Library/Angels And Rainbows.pb" + }, + { + "_hash": "3960432154", + "_path": "/opt/neuraldsp/Factory Library/Acoustic Sim 1.pb" + }, + { + "_hash": "375122376", + "_path": "/opt/neuraldsp/Factory Library/John's Amp.pb" + }, + { + "_hash": "3659761933", + "_path": "/opt/neuraldsp/Factory Library/Big Waves.pb" + }, + { + "_hash": "1180796003", + "_path": "/opt/neuraldsp/Factory Library/Classic Pedalboard.pb" + }, + { + "_hash": "567255709", + "_path": "/opt/neuraldsp/Factory Library/Capture This.pb" + }, + { + "_hash": "3219910194", + "_path": "/opt/neuraldsp/Factory Library/Father and Son.pb" + }, + { + "_hash": "3952878863", + "_path": "/opt/neuraldsp/Factory Library/Necromangust.pb" + }, + { + "_hash": "1701900000", + "_path": "/opt/neuraldsp/Factory Library/The Great Preset.pb" + }, + { + "_hash": "1125671029", + "_path": "/opt/neuraldsp/Factory Library/Doom United.pb" + }, + { + "_hash": "972966216", + "_path": "/opt/neuraldsp/Factory Library/Inferno.pb" + }, + { + "_hash": "3457265027", + "_path": "/opt/neuraldsp/Factory Library/Numb Synth.pb" + }, + { + "_hash": "17258780", + "_path": "/opt/neuraldsp/Factory Library/Berlin Nights.pb" + }, + { + "_hash": "1328380816", + "_path": "/opt/neuraldsp/Factory Library/Pitched Delays.pb" + }, + { + "_hash": "4264685012", + "_path": "/opt/neuraldsp/Factory Library/CA Rec Shootout.pb" + }, + { + "_hash": "1350103111", + "_path": "/opt/neuraldsp/Factory Library/Brit Plexi Shootout.pb" + }, + { + "_hash": "4142393860", + "_path": "/opt/neuraldsp/Factory Library/SISO Shootout.pb" + }, + { + "_hash": "2405114498", + "_path": "/opt/neuraldsp/Factory Library/US Shootout.pb" + }, + { + "_hash": "115689116", + "_path": "/opt/neuraldsp/Factory Library/Dual Jazz.pb" + }, + { + "_hash": "3317373551", + "_path": "/opt/neuraldsp/Factory Library/Intimate Clean.pb" + }, + { + "_hash": "570966927", + "_path": "/opt/neuraldsp/Factory Library/Squeaky Dream.pb" + }, + { + "_hash": "404259725", + "_path": "/opt/neuraldsp/Factory Library/Baritone Ambience.pb" + }, + { + "_hash": "341413910", + "_path": "/opt/neuraldsp/Factory Library/Straight To Chorus.pb" + }, + { + "_hash": "4199606174", + "_path": "/opt/neuraldsp/Factory Library/Secret Service.pb" + }, + { + "_hash": "832646453", + "_path": "/opt/neuraldsp/Factory Library/Fish Out Of Water.pb" + }, + { + "_hash": "3554053293", + "_path": "/opt/neuraldsp/Factory Library/Double Deputy.pb" + }, + { + "_hash": "3375279738", + "_path": "/opt/neuraldsp/Factory Library/Hot EL34.pb" + }, + { + "_hash": "1870666791", + "_path": "/opt/neuraldsp/Factory Library/Major Strat Vibes.pb" + }, + { + "_hash": "4253896444", + "_path": "/opt/neuraldsp/Factory Library/Crunchy 2203.pb" + }, + { + "_hash": "4269717604", + "_path": "/opt/neuraldsp/Factory Library/Squid Vs Vixen.pb" + }, + { + "_hash": "1841105618", + "_path": "/opt/neuraldsp/Factory Library/Guess Who.pb" + }, + { + "_hash": "1187875650", + "_path": "/opt/neuraldsp/Factory Library/Free Dry Wet.pb" + }, + { + "_hash": "3157197763", + "_path": "/opt/neuraldsp/Factory Library/JayMP Bass.pb" + }, + { + "_hash": "3740694808", + "_path": "/opt/neuraldsp/Factory Library/Fuzz This.pb" + }, + { + "_hash": "3677910063", + "_path": "/opt/neuraldsp/Factory Library/Single Coil Rock.pb" + }, + { + "_hash": "994711943", + "_path": "/opt/neuraldsp/Factory Library/Stereo Lead.pb" + }, + { + "_hash": "2637538634", + "_path": "/opt/neuraldsp/Factory Library/Shredful Day.pb" + }, + { + "_hash": "3531117441", + "_path": "/opt/neuraldsp/Factory Library/Brother In Arms.pb" + }, + { + "_hash": "3941308022", + "_path": "/opt/neuraldsp/Factory Library/Solo Jam.pb" + }, + { + "_hash": "193814995", + "_path": "/opt/neuraldsp/Factory Library/HellFat.pb" + }, + { + "_hash": "756108156", + "_path": "/opt/neuraldsp/Factory Library/Write Your Best Riff.pb" + }, + { + "_hash": "309819184", + "_path": "/opt/neuraldsp/Factory Library/Fat And Forgiving.pb" + }, + { + "_hash": "4272331389", + "_path": "/opt/neuraldsp/Factory Library/Voolish.pb" + }, + { + "_hash": "1882476272", + "_path": "/opt/neuraldsp/Factory Library/Clear Lead.pb" + }, + { + "_hash": "2222063882", + "_path": "/opt/neuraldsp/Factory Library/3Xs Madness.pb" + }, + { + "_hash": "2618952968", + "_path": "/opt/neuraldsp/Factory Library/Tight Metal X.pb" + }, + { + "_hash": "3901805154", + "_path": "/opt/neuraldsp/Factory Library/Nestruction 1.pb" + }, + { + "_hash": "3340468169", + "_path": "/opt/neuraldsp/Factory Library/Nestruction 2.pb" + }, + { + "_hash": "3646971441", + "_path": "/opt/neuraldsp/Factory Library/Modern Power.pb" + }, + { + "_hash": "3912832017", + "_path": "/opt/neuraldsp/Factory Library/Double Cabs.pb" + }, + { + "_hash": "2296151218", + "_path": "/opt/neuraldsp/Factory Library/Banger Fish.pb" + }, + { + "_hash": "3898452366", + "_path": "/opt/neuraldsp/Factory Library/Balls With Power.pb" + }, + { + "_hash": "2377403244", + "_path": "/opt/neuraldsp/Factory Library/Cat From Hell.pb" + }, + { + "_hash": "253090086", + "_path": "/opt/neuraldsp/Factory Library/Cali 3Axes.pb" + }, + { + "_hash": "242250328", + "_path": "/opt/neuraldsp/Factory Library/Cali HiGain Preamps.pb" + }, + { + "_hash": "3720924442", + "_path": "/opt/neuraldsp/Factory Library/Cali M2CPlus.pb" + }, + { + "_hash": "3066400140", + "_path": "/opt/neuraldsp/Factory Library/Cali M3 Redstripe.pb" + }, + { + "_hash": "3567605943", + "_path": "/opt/neuraldsp/Factory Library/Colossal Calis.pb" + }, + { + "_hash": "434193604", + "_path": "/opt/neuraldsp/Factory Library/Fryed Sigmund.pb" + }, + { + "_hash": "863609581", + "_path": "/opt/neuraldsp/Factory Library/Crank Me Up.pb" + }, + { + "_hash": "3218397312", + "_path": "/opt/neuraldsp/Factory Library/Cravin X.pb" + }, + { + "_hash": "3128508817", + "_path": "/opt/neuraldsp/Factory Library/Comet.pb" + }, + { + "_hash": "1268821033", + "_path": "/opt/neuraldsp/Factory Library/Custom 3SE.pb" + }, + { + "_hash": "1634312573", + "_path": "/opt/neuraldsp/Factory Library/NoMatch.pb" + }, + { + "_hash": "1153910218", + "_path": "/opt/neuraldsp/Factory Library/Paul's Lunchbox.pb" + }, + { + "_hash": "1852286492", + "_path": "/opt/neuraldsp/Factory Library/Prince Bender.pb" + }, + { + "_hash": "29790712", + "_path": "/opt/neuraldsp/Factory Library/Range Rocker.pb" + }, + { + "_hash": "1645119636", + "_path": "/opt/neuraldsp/Factory Library/Uber Madness.pb" + }, + { + "_hash": "2479658975", + "_path": "/opt/neuraldsp/Factory Library/VH Signature.pb" + }, + { + "_hash": "2621834862", + "_path": "/opt/neuraldsp/Factory Library/Victor's Marshal.pb" + }, + { + "_hash": "2791581992", + "_path": "/opt/neuraldsp/Factory Library/Victor's Mega Squid.pb" + }, + { + "_hash": "790840088", + "_path": "/opt/neuraldsp/Factory Library/We Love Herbie.pb" + }, + { + "_hash": "2809072789", + "_path": "/opt/neuraldsp/Factory Library/Wet Rocker.pb" + }, + { + "_hash": "1294862799", + "_path": "/opt/neuraldsp/Factory Library/Wet Thunder.pb" + }, + { + "_hash": "437646228", + "_path": "/opt/neuraldsp/Factory Library/Pres And Power 1.pb" + }, + { + "_hash": "1541418743", + "_path": "/opt/neuraldsp/Factory Library/Pres And Power 2.pb" + }, + { + "_hash": "2220712094", + "_path": "/opt/neuraldsp/Factory Library/Pres And Power 3.pb" + }, + { + "_hash": "103284929", + "_path": "/opt/neuraldsp/Factory Library/Pres And Power 4.pb" + }, + { + "_hash": "3049646416", + "_path": "/opt/neuraldsp/Factory Library/Pres And Power 5.pb" + }, + { + "_hash": "2500065811", + "_path": "/opt/neuraldsp/Factory Library/Pres And Power 6.pb" + }, + { + "_hash": "3264659386", + "_path": "/opt/neuraldsp/Factory Library/Pres And Power 7.pb" + }, + { + "_hash": "1067154877", + "_path": "/opt/neuraldsp/Factory Library/Pres And Power 8.pb" + }, + { + "_hash": "1027294925", + "_path": "/opt/neuraldsp/Factory Library/Carolina Reaper.pb" + }, + { + "_hash": "437453513", + "_path": "/opt/neuraldsp/Factory Library/Godzilla.pb" + }, + { + "_hash": "3057610632", + "_path": "/opt/neuraldsp/Factory Library/Sad But True.pb" + }, + { + "_hash": "4115954153", + "_path": "/opt/neuraldsp/Factory Library/Forbidden Riff.pb" + }, + { + "_hash": "1684323371", + "_path": "/opt/neuraldsp/Factory Library/Cliffs Of Dover.pb" + }, + { + "_hash": "1119694316", + "_path": "/opt/neuraldsp/Factory Library/Far Beyond The Sun.pb" + }, + { + "_hash": "1361725212", + "_path": "/opt/neuraldsp/Factory Library/Message In A Bottle.pb" + }, + { + "_hash": "242989259", + "_path": "/opt/neuraldsp/Factory Library/Rosanna.pb" + }, + { + "_hash": "4006148401", + "_path": "/opt/neuraldsp/Factory Library/Nameless Streets.pb" + }, + { + "_hash": "480775470", + "_path": "/opt/neuraldsp/Factory Library/Jambi.pb" + }, + { + "_hash": "1007811929", + "_path": "/opt/neuraldsp/Factory Library/Appetite.pb" + }, + { + "_hash": "1989495662", + "_path": "/opt/neuraldsp/Factory Library/Frankenstrat.pb" + }, + { + "_hash": "3004453653", + "_path": "/opt/neuraldsp/Factory Library/Austin Lead.pb" + }, + { + "_hash": "3807187706", + "_path": "/opt/neuraldsp/Factory Library/Racer XOXO.pb" + }, + { + "_hash": "2109823622", + "_path": "/opt/neuraldsp/Factory Library/Rain In Blood.pb" + }, + { + "_hash": "34841953", + "_path": "/opt/neuraldsp/Factory Library/Texas Blues.pb" + }, + { + "_hash": "2727108962", + "_path": "/opt/neuraldsp/Factory Library/You Have.pb" + }, + { + "_hash": "2797348411", + "_path": "/opt/neuraldsp/Factory Library/The Impostor.pb" + }, + { + "_hash": "1813564315", + "_path": "/opt/neuraldsp/Factory Library/Powerslave.pb" + }, + { + "_hash": "2481331049", + "_path": "/opt/neuraldsp/Factory Library/Elegance.pb" + }, + { + "_hash": "2094507428", + "_path": "/opt/neuraldsp/Factory Library/Helsinki Complex.pb" + }, + { + "_hash": "3477665023", + "_path": "/opt/neuraldsp/Factory Library/Air Raid Vehicle.pb" + }, + { + "_hash": "1462054067", + "_path": "/opt/neuraldsp/Factory Library/Expanse Anomality.pb" + }, + { + "_hash": "2495655967", + "_path": "/opt/neuraldsp/Factory Library/Still Got The Blues.pb" + }, + { + "_hash": "2845717593", + "_path": "/opt/neuraldsp/Factory Library/High Voltage.pb" + }, + { + "_hash": "483336894", + "_path": "/opt/neuraldsp/Factory Library/Free Spirit Fantasy.pb" + }, + { + "_hash": "2019908977", + "_path": "/opt/neuraldsp/Factory Library/RATM.pb" + }, + { + "_hash": "1019811906", + "_path": "/opt/neuraldsp/Factory Library/Heavy Halen.pb" + }, + { + "_hash": "1974436270", + "_path": "/opt/neuraldsp/Factory Library/Perfect World.pb" + }, + { + "_hash": "2925095914", + "_path": "/opt/neuraldsp/Factory Library/Piece of Mind.pb" + }, + { + "_hash": "972968084", + "_path": "/opt/neuraldsp/Factory Library/Unleash The Fury.pb" + }, + { + "_hash": "578947210", + "_path": "/opt/neuraldsp/Factory Library/Painkiller.pb" + }, + { + "_hash": "1922710111", + "_path": "/opt/neuraldsp/Factory Library/La Forever.pb" + }, + { + "_hash": "2108627065", + "_path": "/opt/neuraldsp/Factory Library/Future Horn.pb" + }, + { + "_hash": "232334950", + "_path": "/opt/neuraldsp/Factory Library/Miller High Life.pb" + }, + { + "_hash": "904306008", + "_path": "/opt/neuraldsp/Factory Library/Miller Lite.pb" + }, + { + "_hash": "2694458852", + "_path": "/opt/neuraldsp/Factory Library/Cory Wong Clean Rig.pb" + }, + { + "_hash": "183050284", + "_path": "/opt/neuraldsp/Factory Library/Cory Wong DI Rig.pb" + }, + { + "_hash": "1871106557", + "_path": "/opt/neuraldsp/Factory Library/Multi Amp Pleasure.pb" + }, + { + "_hash": "3205469259", + "_path": "/opt/neuraldsp/Factory Library/Smackwound.pb" + }, + { + "_hash": "2164929685", + "_path": "/opt/neuraldsp/Factory Library/Egyptian Dream.pb" + }, + { + "_hash": "78993182", + "_path": "/opt/neuraldsp/Factory Library/Wet Dry Wet.pb" + }, + { + "_hash": "4050820986", + "_path": "/opt/neuraldsp/Factory Library/Bright Brit.pb" + }, + { + "_hash": "2165735999", + "_path": "/opt/neuraldsp/Factory Library/Super Wet Dry.pb" + }, + { + "_hash": "1527192349", + "_path": "/opt/neuraldsp/Factory Library/Sparkly Meets Nosey.pb" + }, + { + "_hash": "2104685449", + "_path": "/opt/neuraldsp/Factory Library/Dano Sol.pb" + }, + { + "_hash": "2190354114", + "_path": "/opt/neuraldsp/Factory Library/Dual Trverb.pb" + }, + { + "_hash": "771964319", + "_path": "/opt/neuraldsp/Factory Library/Soul Collector.pb" + }, + { + "_hash": "3627600426", + "_path": "/opt/neuraldsp/Factory Library/The Kick.pb" + }, + { + "_hash": "232704470", + "_path": "/opt/neuraldsp/Factory Library/Space Pulse Synth.pb" + }, + { + "_hash": "2386644609", + "_path": "/opt/neuraldsp/Factory Library/Helium Layers.pb" + }, + { + "_hash": "4065895900", + "_path": "/opt/neuraldsp/Factory Library/Saruman.pb" + }, + { + "_hash": "1073656033", + "_path": "/opt/neuraldsp/Factory Library/Cosmic Event.pb" + }, + { + "_hash": "3704742656", + "_path": "/opt/neuraldsp/Factory Library/Inception.pb" + }, + { + "_hash": "3655583379", + "_path": "/opt/neuraldsp/Factory Library/Gravity.pb" + }, + { + "_hash": "2454912258", + "_path": "/opt/neuraldsp/Factory Library/Ambient Clean.pb" + }, + { + "_hash": "303260171", + "_path": "/opt/neuraldsp/Factory Library/Dreams.pb" + }, + { + "_hash": "4008223362", + "_path": "/opt/neuraldsp/Factory Library/Sunken Ships.pb" + }, + { + "_hash": "3038962334", + "_path": "/opt/neuraldsp/Factory Library/Annoying Flute.pb" + }, + { + "_hash": "4227693926", + "_path": "/opt/neuraldsp/Factory Library/Swell Canvas.pb" + }, + { + "_hash": "1604991162", + "_path": "/opt/neuraldsp/Factory Library/Arctic Cave.pb" + }, + { + "_hash": "316469171", + "_path": "/opt/neuraldsp/Factory Library/Patch Send1 to Ret1.pb" + }, + { + "_hash": "798752723", + "_path": "/opt/neuraldsp/Factory Library/Loop Climber Express.pb" + }, + { + "_hash": "3689864664", + "_path": "/opt/neuraldsp/Factory Library/Loop Shimmer Express.pb" + }, + { + "_hash": "1370334244", + "_path": "/opt/neuraldsp/Factory Library/Wild Buffalo.pb" + }, + { + "_hash": "180726169", + "_path": "/opt/neuraldsp/Factory Library/Brut Bass.pb" + }, + { + "_hash": "1797324046", + "_path": "/opt/neuraldsp/Factory Library/Stereo Fuzz.pb" + }, + { + "_hash": "1718568300", + "_path": "/opt/neuraldsp/Factory Library/Scoop My Amped.pb" + }, + { + "_hash": "1662967338", + "_path": "/opt/neuraldsp/Factory Library/CA 400 Ch2.pb" + }, + { + "_hash": "3739742069", + "_path": "/opt/neuraldsp/Factory Library/Watt Bass Normal.pb" + }, + { + "_hash": "1842563330", + "_path": "/opt/neuraldsp/Factory Library/Bass FlipTop 6466.pb" + }, + { + "_hash": "1249773138", + "_path": "/opt/neuraldsp/Factory Library/Bass FlipTop 6664.pb" + }, + { + "_hash": "2735435796", + "_path": "/opt/neuraldsp/Factory Library/Light Touch.pb" + }, + { + "_hash": "2313092864", + "_path": "/opt/neuraldsp/Factory Library/Kick In The Subs.pb" + }, + { + "_hash": "298499191", + "_path": "/opt/neuraldsp/Factory Library/Blast.pb" + }, + { + "_hash": "1983735095", + "_path": "/opt/neuraldsp/Factory Library/Don't Cross Me.pb" + }, + { + "_hash": "1531254533", + "_path": "/opt/neuraldsp/Factory Library/SuperMegaMassiveBass.pb" + }, + { + "_hash": "4171361918", + "_path": "/opt/neuraldsp/Factory Library/Grinder.pb" + }, + { + "_hash": "3297755213", + "_path": "/opt/neuraldsp/Factory Library/Goliath.pb" + }, + { + "_hash": "201890304", + "_path": "/opt/neuraldsp/Factory Library/Hard Hitter.pb" + }, + { + "_hash": "4094612427", + "_path": "/opt/neuraldsp/Factory Library/Amped SV.pb" + }, + { + "_hash": "2613739913", + "_path": "/opt/neuraldsp/Factory Library/Amped SV & Rodent.pb" + }, + { + "_hash": "3455290020", + "_path": "/opt/neuraldsp/Factory Library/Amped V4B.pb" + }, + { + "_hash": "2251177144", + "_path": "/opt/neuraldsp/Factory Library/Amped V4B & Rodent.pb" + }, + { + "_hash": "3638502732", + "_path": "/opt/neuraldsp/Factory Library/Cali Basswalk.pb" + }, + { + "_hash": "2785264346", + "_path": "/opt/neuraldsp/Factory Library/Cali BB750.pb" + }, + { + "_hash": "2575702895", + "_path": "/opt/neuraldsp/Factory Library/Cali M6Rifle.pb" + }, + { + "_hash": "640574913", + "_path": "/opt/neuraldsp/Factory Library/Darkglass AO900 1.pb" + }, + { + "_hash": "3801949370", + "_path": "/opt/neuraldsp/Factory Library/Darkglass AO900 2.pb" + }, + { + "_hash": "3537005317", + "_path": "/opt/neuraldsp/Factory Library/Darkglass MT 900.pb" + }, + { + "_hash": "2659291420", + "_path": "/opt/neuraldsp/Factory Library/Sin City.pb" + }, + { + "_hash": "1907759519", + "_path": "/opt/neuraldsp/Factory Library/Tangerine Growl.pb" + }, + { + "_hash": "1687299277", + "_path": "/opt/neuraldsp/Factory Library/Snakehair Bassmix 1.pb" + }, + { + "_hash": "2116536454", + "_path": "/opt/neuraldsp/Factory Library/Snakehair Bassmix 2.pb" + }, + { + "_hash": "1682894239", + "_path": "/opt/neuraldsp/Factory Library/Snakehair Bassmix 3.pb" + }, + { + "_hash": "2202654520", + "_path": "/opt/neuraldsp/Factory Library/Snakehair Bassmix 4.pb" + }, + { + "_hash": "1329690966", + "_path": "/opt/neuraldsp/Factory Library/Deep Underground.pb" + }, + { + "_hash": "1736792192", + "_path": "/opt/neuraldsp/Factory Library/Run Steve Run.pb" + }, + { + "_hash": "1729355440", + "_path": "/opt/neuraldsp/Factory Library/Hysteria.pb" + }, + { + "_hash": "564987006", + "_path": "/opt/neuraldsp/Factory Library/Murder One.pb" + }, + { + "_hash": "2388746107", + "_path": "/opt/neuraldsp/Factory Library/The Bass Tolls.pb" + }, + { + "_hash": "4208043023", + "_path": "/opt/neuraldsp/Factory Library/Duff Bass.pb" + }, + { + "_hash": "2346691174", + "_path": "/opt/neuraldsp/Factory Library/Hurry Geddy.pb" + }, + { + "_hash": "2383813252", + "_path": "/opt/neuraldsp/Factory Library/Triple Bass.pb" + }, + { + "_hash": "3460241340", + "_path": "/opt/neuraldsp/Factory Library/One Note Arpeggiator.pb" + }, + { + "_hash": "3870850962", + "_path": "/opt/neuraldsp/Factory Library/One Note Is A Chord.pb" + }, + { + "_hash": "4021283706", + "_path": "/opt/neuraldsp/Factory Library/12 String Bass.pb" + }, + { + "_hash": "3746658789", + "_path": "/opt/neuraldsp/Factory Library/Square Wave.pb" + }, + { + "_hash": "4057358867", + "_path": "/opt/neuraldsp/Factory Library/Synthesque Bass.pb" + }, + { + "_hash": "3185581081", + "_path": "/opt/neuraldsp/Factory Library/Jeremy.pb" + }, + { + "_hash": "3790957169", + "_path": "/opt/neuraldsp/Factory Library/Spooky Bass.pb" + }, + { + "_hash": "382049922", + "_path": "/opt/neuraldsp/Factory Library/AutoWah.pb" + }, + { + "_hash": "1616918305", + "_path": "/opt/neuraldsp/Factory Library/Vocal 58.pb" + }, + { + "_hash": "3523156222", + "_path": "/opt/neuraldsp/Factory Library/Voc58 Piezo Acc.pb" + }, + { + "_hash": "3239978968", + "_path": "/opt/neuraldsp/Factory Library/Vocal Synth.pb" + }, + { + "_hash": "958881053", + "_path": "/opt/neuraldsp/Factory Library/AcGtr & Vocal.pb" + }, + { + "_hash": "4140874114", + "_path": "/opt/neuraldsp/Factory Library/AcGtr Multiband.pb" + }, + { + "_hash": "1947499888", + "_path": "/opt/neuraldsp/Factory Library/Poor Man's Double.pb" + }, + { + "_hash": "2728252696", + "_path": "/opt/neuraldsp/Factory Library/12 String Gtr.pb" + }, + { + "_hash": "1573999727", + "_path": "/opt/neuraldsp/Factory Library/AcGtr & Bass.pb" + }, + { + "_hash": "3264173293", + "_path": "/opt/neuraldsp/Factory Library/Go To Scene Mode.pb" + }, + { + "_hash": "4095450004", + "_path": "/opt/neuraldsp/Factory Library/Go To Stomp Mode.pb" + }, + { + "_hash": "2240416404", + "_path": "/opt/neuraldsp/Factory Library/Splitters And Mixers.pb" + }, + { + "_hash": "2666894461", + "_path": "/opt/neuraldsp/Factory Library/4 Cable Method.pb" + }, + { + "_hash": "300674124", + "_path": "/opt/neuraldsp/Factory Library/7 Cable Method.pb" + }, + { + "_hash": "4082387638", + "_path": "/opt/neuraldsp/Factory Library/9 Cable Method.pb" + }, + { + "_hash": "3176147181", + "_path": "/opt/neuraldsp/Factory Library/2 Gtrs Switching.pb" + }, + { + "_hash": "2305614952", + "_path": "/opt/neuraldsp/Factory Library/Reamp Example.pb" + } + ], + "_hash": "3341647416", + "_path": "/opt/neuraldsp/Factory Library" + } + ] + } +}
\ No newline at end of file diff --git a/Desktop Editor/src/assets/setlist_example.xml b/Desktop Editor/src/assets/setlist_example.xml new file mode 100644 index 0000000..80b7894 --- /dev/null +++ b/Desktop Editor/src/assets/setlist_example.xml @@ -0,0 +1,1034 @@ +<Setlists> + <Setlist hash="2691287807" path="/media/p4/Presets/My Presets"> + <Preset hash="697494485" path="/media/p4/Presets/My Presets/Nameless Slapper.pb"/> + <Preset hash="2848806090" path="/media/p4/Presets/My Presets/Cannibal.pb"/> + <Preset hash="1684646864" path="/media/p4/Presets/My Presets/Metallica.pb"/> + <Preset hash="2063471668" path="/media/p4/Presets/My Presets/Engl.pb"/> + <Preset hash="797150659" path="/media/p4/Presets/My Presets/Randall Satan Fortin.pb"/> + <Preset hash="1171927217" path="/media/p4/Presets/My Presets/Green Day Humbucker.pb"/> + <Preset hash="2547308107" path="/media/p4/Presets/My Presets/Fried Metal.pb"/> + <Preset hash="1986382787" path="/media/p4/Presets/My Presets/Hector.pb"/> + <Preset hash="629270769" path="/media/p4/Presets/My Presets/JCM800 Rock.pb"/> + <Preset hash="3867493555" path="/media/p4/Presets/My Presets/Slaughter.pb"/> + <Preset hash="2437793901" path="/media/p4/Presets/My Presets/GOAT.pb"/> + <Preset hash="3959616889" path="/media/p4/Presets/My Presets/Chug_5150.pb"/> + <Preset hash="1246696834" path="/media/p4/Presets/My Presets/Mayer.pb"/> + <Preset hash="750500687" path="/media/p4/Presets/My Presets/Fortin NTS Suite.pb"/> + <Preset hash="99714316" path="/media/p4/Presets/My Presets/Twin Sister Patch.pb"/> + <Preset hash="2656952353" path="/media/p4/Presets/My Presets/Screamin Sisters.pb"/> + <Preset hash="1626326589" path="/media/p4/Presets/My Presets/Bass Guitar What.pb"/> + <Preset hash="1366777887" path="/media/p4/Presets/My Presets/Revv.pb"/> + <Preset hash="1441963394" path="/media/p4/Presets/My Presets/Synthesque Bass.pb"/> + <Preset hash="3337358135" path="/media/p4/Presets/My Presets/Synth Bass.pb"/> + <Preset hash="1816976375" path="/media/p4/Presets/My Presets/Power.pb"/> + <Preset hash="1950257017" path="/media/p4/Presets/My Presets/5150.pb"/> + <Preset hash="896624363" path="/media/p4/Presets/My Presets/Two Rock Gigging.pb"/> + <Preset hash="0" path=""/> + <Preset hash="2323719245" path="/media/p4/Presets/My Presets/Twin Crunch.pb"/> + <Preset hash="4028279899" path="/media/p4/Presets/My Presets/Acdc.pb"/> + <Preset hash="3226492391" path="/media/p4/Presets/My Presets/Fat Rockabilly.pb"/> + <Preset hash="3377673212" path="/media/p4/Presets/My Presets/Acoustic Sim.pb"/> + <Preset hash="3671648184" path="/media/p4/Presets/My Presets/Voice Over.pb"/> + <Preset hash="1023911697" path="/media/p4/Presets/My Presets/Petru Gian.pb"/> + <Preset hash="2934210149" path="/media/p4/Presets/My Presets/Plugin.pb"/> + <Preset hash="3888883938" path="/media/p4/Presets/My Presets/Behemoth.pb"/> + <Preset hash="2172773384" path="/media/p4/Presets/My Presets/Slayer KK.pb"/> + <Preset hash="143138298" path="/media/p4/Presets/My Presets/Say It Aint So.pb"/> + <Preset hash="3056582249" path="/media/p4/Presets/My Presets/VULGAR.pb"/> + <Preset hash="2558212119" path="/media/p4/Presets/My Presets/Dookie.pb"/> + <Preset hash="2616924965" path="/media/p4/Presets/My Presets/Lamb Of God.pb"/> + <Preset hash="3947449986" path="/media/p4/Presets/My Presets/RATM.pb"/> + <Preset hash="3200977930" path="/media/p4/Presets/My Presets/Death.pb"/> + <Preset hash="0" path=""/> + <Preset hash="4076457719" path="/media/p4/Presets/My Presets/Antartica.pb"/> + <Preset hash="2221205868" path="/media/p4/Presets/My Presets/Public Image.pb"/> + <Preset hash="35021882" path="/media/p4/Presets/My Presets/Planet Claire.pb"/> + <Preset hash="2030801184" path="/media/p4/Presets/My Presets/Transmission.pb"/> + <Preset hash="2472823430" path="/media/p4/Presets/My Presets/Sanctuary.pb"/> + <Preset hash="2256205320" path="/media/p4/Presets/My Presets/Travel.pb"/> + <Preset hash="1202528361" path="/media/p4/Presets/My Presets/Bela Lugosi.pb"/> + <Preset hash="946343925" path="/media/p4/Presets/My Presets/Escape.pb"/> + <Preset hash="1296285866" path="/media/p4/Presets/My Presets/Be Your Dog.pb"/> + <Preset hash="3458765098" path="/media/p4/Presets/My Presets/Told You.pb"/> + <Preset hash="1233346854" path="/media/p4/Presets/My Presets/Suzy Q.pb"/> + <Preset hash="2736191419" path="/media/p4/Presets/My Presets/Blitzkrieg.pb"/> + <Preset hash="1147839917" path="/media/p4/Presets/My Presets/Bro Hymn.pb"/> + <Preset hash="3391359005" path="/media/p4/Presets/My Presets/Gutta.pb"/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="3234630282" path="/media/p4/Presets/My Presets/Be Your Dog_1.pb"/> + <Preset hash="1258491658" path="/media/p4/Presets/My Presets/Told You_1.pb"/> + <Preset hash="1981484558" path="/media/p4/Presets/My Presets/Suzy Q_1.pb"/> + <Preset hash="3946158899" path="/media/p4/Presets/My Presets/Blitzkrieg_1.pb"/> + <Preset hash="3577334621" path="/media/p4/Presets/My Presets/Bro Hym_1.pb"/> + <Preset hash="3044158937" path="/media/p4/Presets/My Presets/Gutta_1.pb"/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="2432124282" path="/media/p4/Presets/My Presets/Dookie V1.pb"/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + </Setlist> + <Setlist hash="3023396721" path="/media/p4/Presets/Not Mandatory"> + <Preset hash="1876202349" path="/media/p4/Presets/Not Mandatory/Antartica.pb"/> + <Preset hash="1737015190" path="/media/p4/Presets/Not Mandatory/Public Image.pb"/> + <Preset hash="1062593608" path="/media/p4/Presets/Not Mandatory/Planet Claire.pb"/> + <Preset hash="434154202" path="/media/p4/Presets/Not Mandatory/Transmission.pb"/> + <Preset hash="4123583880" path="/media/p4/Presets/Not Mandatory/Sanctuary.pb"/> + <Preset hash="1099402007" path="/media/p4/Presets/Not Mandatory/Vienna.pb"/> + <Preset hash="3991834150" path="/media/p4/Presets/Not Mandatory/Travel.pb"/> + <Preset hash="4082999507" path="/media/p4/Presets/Not Mandatory/Bela Lugosi.pb"/> + <Preset hash="3798791403" path="/media/p4/Presets/Not Mandatory/Escape.pb"/> + <Preset hash="2907777472" path="/media/p4/Presets/Not Mandatory/Be Your Dog.pb"/> + <Preset hash="2062595200" path="/media/p4/Presets/Not Mandatory/Told You.pb"/> + <Preset hash="1493298100" path="/media/p4/Presets/Not Mandatory/Suzy Q.pb"/> + <Preset hash="2137209845" path="/media/p4/Presets/Not Mandatory/Blitzkrieg.pb"/> + <Preset hash="2006669379" path="/media/p4/Presets/Not Mandatory/Bro Hymn.pb"/> + <Preset hash="2841656115" path="/media/p4/Presets/Not Mandatory/Gutta.pb"/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + </Setlist> + <Setlist hash="3121655502" path="/media/p4/Presets/Cuttermess"> + <Preset hash="1746704674" path="/media/p4/Presets/Cuttermess/Madness (E).pb"/> + <Preset hash="3319417662" path="/media/p4/Presets/Cuttermess/Mass Formation (E).pb"/> + <Preset hash="3415339828" path="/media/p4/Presets/Cuttermess/Resort 2 Violence F#.pb"/> + <Preset hash="1537339889" path="/media/p4/Presets/Cuttermess/Claws (E).pb"/> + <Preset hash="3543533890" path="/media/p4/Presets/Cuttermess/Guillotine (D).pb"/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + <Preset hash="0" path=""/> + </Setlist> + <Setlist hash="3341647416" path="/opt/neuraldsp/Factory Library"> + <Preset hash="137189267" path="/opt/neuraldsp/Factory Library/Brit 2203.pb"/> + <Preset hash="4204141790" path="/opt/neuraldsp/Factory Library/Brit Plexi100 Normal.pb"/> + <Preset hash="960249623" path="/opt/neuraldsp/Factory Library/US TWN Vibrato.pb"/> + <Preset hash="2534007328" path="/opt/neuraldsp/Factory Library/Rols Jazz CH120.pb"/> + <Preset hash="760885263" path="/opt/neuraldsp/Factory Library/California Tremo Red.pb"/> + <Preset hash="1651882496" path="/opt/neuraldsp/Factory Library/EV101III Red.pb"/> + <Preset hash="1163973570" path="/opt/neuraldsp/Factory Library/Freeman 100 Rhythm.pb"/> + <Preset hash="2567047354" path="/opt/neuraldsp/Factory Library/D-Cell H4 Ch3.pb"/> + <Preset hash="4095197445" path="/opt/neuraldsp/Factory Library/Brit Plexi 50 Patch.pb"/> + <Preset hash="3943835888" path="/opt/neuraldsp/Factory Library/Brit TM45 Bright.pb"/> + <Preset hash="3587053413" path="/opt/neuraldsp/Factory Library/OneStar Clean Tweed.pb"/> + <Preset hash="3209320923" path="/opt/neuraldsp/Factory Library/PV505 Lead.pb"/> + <Preset hash="616453951" path="/opt/neuraldsp/Factory Library/Solo 100 Lead.pb"/> + <Preset hash="1977076557" path="/opt/neuraldsp/Factory Library/UK C30 TopBoost.pb"/> + <Preset hash="1462238152" path="/opt/neuraldsp/Factory Library/US DLX Vibrato.pb"/> + <Preset hash="1505259591" path="/opt/neuraldsp/Factory Library/US SPR Normal.pb"/> + <Preset hash="3239223608" path="/opt/neuraldsp/Factory Library/Bass FlipTop 6464.pb"/> + <Preset hash="3761674568" path="/opt/neuraldsp/Factory Library/Bass FlipTop 6666.pb"/> + <Preset hash="2139363073" path="/opt/neuraldsp/Factory Library/Bass Super Valve.pb"/> + <Preset hash="1121127321" path="/opt/neuraldsp/Factory Library/Brit Bass 50 Normal.pb"/> + <Preset hash="1819885242" path="/opt/neuraldsp/Factory Library/Brit Bass 50 Patch.pb"/> + <Preset hash="368623654" path="/opt/neuraldsp/Factory Library/California Bass 400.pb"/> + <Preset hash="2698166262" path="/opt/neuraldsp/Factory Library/G800K Bass.pb"/> + <Preset hash="1285884048" path="/opt/neuraldsp/Factory Library/Watt Bass Bright.pb"/> + <Preset hash="1212830112" path="/opt/neuraldsp/Factory Library/One Amp Does It All.pb"/> + <Preset hash="2801363880" path="/opt/neuraldsp/Factory Library/Bogna Vishnu Clean.pb"/> + <Preset hash="3812345853" path="/opt/neuraldsp/Factory Library/Pushed 20w.pb"/> + <Preset hash="3094016952" path="/opt/neuraldsp/Factory Library/Captain 50.pb"/> + <Preset hash="3534574901" path="/opt/neuraldsp/Factory Library/Free Man.pb"/> + <Preset hash="1843882634" path="/opt/neuraldsp/Factory Library/D-Cell H4.pb"/> + <Preset hash="1670609786" path="/opt/neuraldsp/Factory Library/UK Twang.pb"/> + <Preset hash="3664240002" path="/opt/neuraldsp/Factory Library/Dual Amps And Cabs.pb"/> + <Preset hash="395147131" path="/opt/neuraldsp/Factory Library/Brit UBL Lead.pb"/> + <Preset hash="592720957" path="/opt/neuraldsp/Factory Library/Strat Ambience.pb"/> + <Preset hash="1117853397" path="/opt/neuraldsp/Factory Library/Airy Reverbs.pb"/> + <Preset hash="1728421328" path="/opt/neuraldsp/Factory Library/California Dream.pb"/> + <Preset hash="3910973927" path="/opt/neuraldsp/Factory Library/Nashville Session.pb"/> + <Preset hash="3142868727" path="/opt/neuraldsp/Factory Library/Everything I Need.pb"/> + <Preset hash="785973087" path="/opt/neuraldsp/Factory Library/Swiss Knife.pb"/> + <Preset hash="73374903" path="/opt/neuraldsp/Factory Library/Cinematic Shimmer.pb"/> + <Preset hash="3905744680" path="/opt/neuraldsp/Factory Library/Moody Clean.pb"/> + <Preset hash="3311593258" path="/opt/neuraldsp/Factory Library/Toxic Synth.pb"/> + <Preset hash="2121349155" path="/opt/neuraldsp/Factory Library/Grimacemonger.pb"/> + <Preset hash="1023241484" path="/opt/neuraldsp/Factory Library/Captain Morgue.pb"/> + <Preset hash="3949891348" path="/opt/neuraldsp/Factory Library/Looper X.pb"/> + <Preset hash="3659313856" path="/opt/neuraldsp/Factory Library/Freeze Me.pb"/> + <Preset hash="2425479863" path="/opt/neuraldsp/Factory Library/Angels And Rainbows.pb"/> + <Preset hash="3960432154" path="/opt/neuraldsp/Factory Library/Acoustic Sim 1.pb"/> + <Preset hash="375122376" path="/opt/neuraldsp/Factory Library/John's Amp.pb"/> + <Preset hash="3659761933" path="/opt/neuraldsp/Factory Library/Big Waves.pb"/> + <Preset hash="1180796003" path="/opt/neuraldsp/Factory Library/Classic Pedalboard.pb"/> + <Preset hash="567255709" path="/opt/neuraldsp/Factory Library/Capture This.pb"/> + <Preset hash="3219910194" path="/opt/neuraldsp/Factory Library/Father and Son.pb"/> + <Preset hash="3952878863" path="/opt/neuraldsp/Factory Library/Necromangust.pb"/> + <Preset hash="1701900000" path="/opt/neuraldsp/Factory Library/The Great Preset.pb"/> + <Preset hash="1125671029" path="/opt/neuraldsp/Factory Library/Doom United.pb"/> + <Preset hash="972966216" path="/opt/neuraldsp/Factory Library/Inferno.pb"/> + <Preset hash="3457265027" path="/opt/neuraldsp/Factory Library/Numb Synth.pb"/> + <Preset hash="17258780" path="/opt/neuraldsp/Factory Library/Berlin Nights.pb"/> + <Preset hash="1328380816" path="/opt/neuraldsp/Factory Library/Pitched Delays.pb"/> + <Preset hash="4264685012" path="/opt/neuraldsp/Factory Library/CA Rec Shootout.pb"/> + <Preset hash="1350103111" path="/opt/neuraldsp/Factory Library/Brit Plexi Shootout.pb"/> + <Preset hash="4142393860" path="/opt/neuraldsp/Factory Library/SISO Shootout.pb"/> + <Preset hash="2405114498" path="/opt/neuraldsp/Factory Library/US Shootout.pb"/> + <Preset hash="115689116" path="/opt/neuraldsp/Factory Library/Dual Jazz.pb"/> + <Preset hash="3317373551" path="/opt/neuraldsp/Factory Library/Intimate Clean.pb"/> + <Preset hash="570966927" path="/opt/neuraldsp/Factory Library/Squeaky Dream.pb"/> + <Preset hash="404259725" path="/opt/neuraldsp/Factory Library/Baritone Ambience.pb"/> + <Preset hash="341413910" path="/opt/neuraldsp/Factory Library/Straight To Chorus.pb"/> + <Preset hash="4199606174" path="/opt/neuraldsp/Factory Library/Secret Service.pb"/> + <Preset hash="832646453" path="/opt/neuraldsp/Factory Library/Fish Out Of Water.pb"/> + <Preset hash="3554053293" path="/opt/neuraldsp/Factory Library/Double Deputy.pb"/> + <Preset hash="3375279738" path="/opt/neuraldsp/Factory Library/Hot EL34.pb"/> + <Preset hash="1870666791" path="/opt/neuraldsp/Factory Library/Major Strat Vibes.pb"/> + <Preset hash="4253896444" path="/opt/neuraldsp/Factory Library/Crunchy 2203.pb"/> + <Preset hash="4269717604" path="/opt/neuraldsp/Factory Library/Squid Vs Vixen.pb"/> + <Preset hash="1841105618" path="/opt/neuraldsp/Factory Library/Guess Who.pb"/> + <Preset hash="1187875650" path="/opt/neuraldsp/Factory Library/Free Dry Wet.pb"/> + <Preset hash="3157197763" path="/opt/neuraldsp/Factory Library/JayMP Bass.pb"/> + <Preset hash="3740694808" path="/opt/neuraldsp/Factory Library/Fuzz This.pb"/> + <Preset hash="3677910063" path="/opt/neuraldsp/Factory Library/Single Coil Rock.pb"/> + <Preset hash="994711943" path="/opt/neuraldsp/Factory Library/Stereo Lead.pb"/> + <Preset hash="2637538634" path="/opt/neuraldsp/Factory Library/Shredful Day.pb"/> + <Preset hash="3531117441" path="/opt/neuraldsp/Factory Library/Brother In Arms.pb"/> + <Preset hash="3941308022" path="/opt/neuraldsp/Factory Library/Solo Jam.pb"/> + <Preset hash="193814995" path="/opt/neuraldsp/Factory Library/HellFat.pb"/> + <Preset hash="756108156" path="/opt/neuraldsp/Factory Library/Write Your Best Riff.pb"/> + <Preset hash="309819184" path="/opt/neuraldsp/Factory Library/Fat And Forgiving.pb"/> + <Preset hash="4272331389" path="/opt/neuraldsp/Factory Library/Voolish.pb"/> + <Preset hash="1882476272" path="/opt/neuraldsp/Factory Library/Clear Lead.pb"/> + <Preset hash="2222063882" path="/opt/neuraldsp/Factory Library/3Xs Madness.pb"/> + <Preset hash="2618952968" path="/opt/neuraldsp/Factory Library/Tight Metal X.pb"/> + <Preset hash="3901805154" path="/opt/neuraldsp/Factory Library/Nestruction 1.pb"/> + <Preset hash="3340468169" path="/opt/neuraldsp/Factory Library/Nestruction 2.pb"/> + <Preset hash="3646971441" path="/opt/neuraldsp/Factory Library/Modern Power.pb"/> + <Preset hash="3912832017" path="/opt/neuraldsp/Factory Library/Double Cabs.pb"/> + <Preset hash="2296151218" path="/opt/neuraldsp/Factory Library/Banger Fish.pb"/> + <Preset hash="3898452366" path="/opt/neuraldsp/Factory Library/Balls With Power.pb"/> + <Preset hash="2377403244" path="/opt/neuraldsp/Factory Library/Cat From Hell.pb"/> + <Preset hash="253090086" path="/opt/neuraldsp/Factory Library/Cali 3Axes.pb"/> + <Preset hash="242250328" path="/opt/neuraldsp/Factory Library/Cali HiGain Preamps.pb"/> + <Preset hash="3720924442" path="/opt/neuraldsp/Factory Library/Cali M2CPlus.pb"/> + <Preset hash="3066400140" path="/opt/neuraldsp/Factory Library/Cali M3 Redstripe.pb"/> + <Preset hash="3567605943" path="/opt/neuraldsp/Factory Library/Colossal Calis.pb"/> + <Preset hash="434193604" path="/opt/neuraldsp/Factory Library/Fryed Sigmund.pb"/> + <Preset hash="863609581" path="/opt/neuraldsp/Factory Library/Crank Me Up.pb"/> + <Preset hash="3218397312" path="/opt/neuraldsp/Factory Library/Cravin X.pb"/> + <Preset hash="3128508817" path="/opt/neuraldsp/Factory Library/Comet.pb"/> + <Preset hash="1268821033" path="/opt/neuraldsp/Factory Library/Custom 3SE.pb"/> + <Preset hash="1634312573" path="/opt/neuraldsp/Factory Library/NoMatch.pb"/> + <Preset hash="1153910218" path="/opt/neuraldsp/Factory Library/Paul's Lunchbox.pb"/> + <Preset hash="1852286492" path="/opt/neuraldsp/Factory Library/Prince Bender.pb"/> + <Preset hash="29790712" path="/opt/neuraldsp/Factory Library/Range Rocker.pb"/> + <Preset hash="1645119636" path="/opt/neuraldsp/Factory Library/Uber Madness.pb"/> + <Preset hash="2479658975" path="/opt/neuraldsp/Factory Library/VH Signature.pb"/> + <Preset hash="2621834862" path="/opt/neuraldsp/Factory Library/Victor's Marshal.pb"/> + <Preset hash="2791581992" path="/opt/neuraldsp/Factory Library/Victor's Mega Squid.pb"/> + <Preset hash="790840088" path="/opt/neuraldsp/Factory Library/We Love Herbie.pb"/> + <Preset hash="2809072789" path="/opt/neuraldsp/Factory Library/Wet Rocker.pb"/> + <Preset hash="1294862799" path="/opt/neuraldsp/Factory Library/Wet Thunder.pb"/> + <Preset hash="437646228" path="/opt/neuraldsp/Factory Library/Pres And Power 1.pb"/> + <Preset hash="1541418743" path="/opt/neuraldsp/Factory Library/Pres And Power 2.pb"/> + <Preset hash="2220712094" path="/opt/neuraldsp/Factory Library/Pres And Power 3.pb"/> + <Preset hash="103284929" path="/opt/neuraldsp/Factory Library/Pres And Power 4.pb"/> + <Preset hash="3049646416" path="/opt/neuraldsp/Factory Library/Pres And Power 5.pb"/> + <Preset hash="2500065811" path="/opt/neuraldsp/Factory Library/Pres And Power 6.pb"/> + <Preset hash="3264659386" path="/opt/neuraldsp/Factory Library/Pres And Power 7.pb"/> + <Preset hash="1067154877" path="/opt/neuraldsp/Factory Library/Pres And Power 8.pb"/> + <Preset hash="1027294925" path="/opt/neuraldsp/Factory Library/Carolina Reaper.pb"/> + <Preset hash="437453513" path="/opt/neuraldsp/Factory Library/Godzilla.pb"/> + <Preset hash="3057610632" path="/opt/neuraldsp/Factory Library/Sad But True.pb"/> + <Preset hash="4115954153" path="/opt/neuraldsp/Factory Library/Forbidden Riff.pb"/> + <Preset hash="1684323371" path="/opt/neuraldsp/Factory Library/Cliffs Of Dover.pb"/> + <Preset hash="1119694316" path="/opt/neuraldsp/Factory Library/Far Beyond The Sun.pb"/> + <Preset hash="1361725212" path="/opt/neuraldsp/Factory Library/Message In A Bottle.pb"/> + <Preset hash="242989259" path="/opt/neuraldsp/Factory Library/Rosanna.pb"/> + <Preset hash="4006148401" path="/opt/neuraldsp/Factory Library/Nameless Streets.pb"/> + <Preset hash="480775470" path="/opt/neuraldsp/Factory Library/Jambi.pb"/> + <Preset hash="1007811929" path="/opt/neuraldsp/Factory Library/Appetite.pb"/> + <Preset hash="1989495662" path="/opt/neuraldsp/Factory Library/Frankenstrat.pb"/> + <Preset hash="3004453653" path="/opt/neuraldsp/Factory Library/Austin Lead.pb"/> + <Preset hash="3807187706" path="/opt/neuraldsp/Factory Library/Racer XOXO.pb"/> + <Preset hash="2109823622" path="/opt/neuraldsp/Factory Library/Rain In Blood.pb"/> + <Preset hash="34841953" path="/opt/neuraldsp/Factory Library/Texas Blues.pb"/> + <Preset hash="2727108962" path="/opt/neuraldsp/Factory Library/You Have.pb"/> + <Preset hash="2797348411" path="/opt/neuraldsp/Factory Library/The Impostor.pb"/> + <Preset hash="1813564315" path="/opt/neuraldsp/Factory Library/Powerslave.pb"/> + <Preset hash="2481331049" path="/opt/neuraldsp/Factory Library/Elegance.pb"/> + <Preset hash="2094507428" path="/opt/neuraldsp/Factory Library/Helsinki Complex.pb"/> + <Preset hash="3477665023" path="/opt/neuraldsp/Factory Library/Air Raid Vehicle.pb"/> + <Preset hash="1462054067" path="/opt/neuraldsp/Factory Library/Expanse Anomality.pb"/> + <Preset hash="2495655967" path="/opt/neuraldsp/Factory Library/Still Got The Blues.pb"/> + <Preset hash="2845717593" path="/opt/neuraldsp/Factory Library/High Voltage.pb"/> + <Preset hash="483336894" path="/opt/neuraldsp/Factory Library/Free Spirit Fantasy.pb"/> + <Preset hash="2019908977" path="/opt/neuraldsp/Factory Library/RATM.pb"/> + <Preset hash="1019811906" path="/opt/neuraldsp/Factory Library/Heavy Halen.pb"/> + <Preset hash="1974436270" path="/opt/neuraldsp/Factory Library/Perfect World.pb"/> + <Preset hash="2925095914" path="/opt/neuraldsp/Factory Library/Piece of Mind.pb"/> + <Preset hash="972968084" path="/opt/neuraldsp/Factory Library/Unleash The Fury.pb"/> + <Preset hash="578947210" path="/opt/neuraldsp/Factory Library/Painkiller.pb"/> + <Preset hash="1922710111" path="/opt/neuraldsp/Factory Library/La Forever.pb"/> + <Preset hash="2108627065" path="/opt/neuraldsp/Factory Library/Future Horn.pb"/> + <Preset hash="232334950" path="/opt/neuraldsp/Factory Library/Miller High Life.pb"/> + <Preset hash="904306008" path="/opt/neuraldsp/Factory Library/Miller Lite.pb"/> + <Preset hash="2694458852" path="/opt/neuraldsp/Factory Library/Cory Wong Clean Rig.pb"/> + <Preset hash="183050284" path="/opt/neuraldsp/Factory Library/Cory Wong DI Rig.pb"/> + <Preset hash="1871106557" path="/opt/neuraldsp/Factory Library/Multi Amp Pleasure.pb"/> + <Preset hash="3205469259" path="/opt/neuraldsp/Factory Library/Smackwound.pb"/> + <Preset hash="2164929685" path="/opt/neuraldsp/Factory Library/Egyptian Dream.pb"/> + <Preset hash="78993182" path="/opt/neuraldsp/Factory Library/Wet Dry Wet.pb"/> + <Preset hash="4050820986" path="/opt/neuraldsp/Factory Library/Bright Brit.pb"/> + <Preset hash="2165735999" path="/opt/neuraldsp/Factory Library/Super Wet Dry.pb"/> + <Preset hash="1527192349" path="/opt/neuraldsp/Factory Library/Sparkly Meets Nosey.pb"/> + <Preset hash="2104685449" path="/opt/neuraldsp/Factory Library/Dano Sol.pb"/> + <Preset hash="2190354114" path="/opt/neuraldsp/Factory Library/Dual Trverb.pb"/> + <Preset hash="771964319" path="/opt/neuraldsp/Factory Library/Soul Collector.pb"/> + <Preset hash="3627600426" path="/opt/neuraldsp/Factory Library/The Kick.pb"/> + <Preset hash="232704470" path="/opt/neuraldsp/Factory Library/Space Pulse Synth.pb"/> + <Preset hash="2386644609" path="/opt/neuraldsp/Factory Library/Helium Layers.pb"/> + <Preset hash="4065895900" path="/opt/neuraldsp/Factory Library/Saruman.pb"/> + <Preset hash="1073656033" path="/opt/neuraldsp/Factory Library/Cosmic Event.pb"/> + <Preset hash="3704742656" path="/opt/neuraldsp/Factory Library/Inception.pb"/> + <Preset hash="3655583379" path="/opt/neuraldsp/Factory Library/Gravity.pb"/> + <Preset hash="2454912258" path="/opt/neuraldsp/Factory Library/Ambient Clean.pb"/> + <Preset hash="303260171" path="/opt/neuraldsp/Factory Library/Dreams.pb"/> + <Preset hash="4008223362" path="/opt/neuraldsp/Factory Library/Sunken Ships.pb"/> + <Preset hash="3038962334" path="/opt/neuraldsp/Factory Library/Annoying Flute.pb"/> + <Preset hash="4227693926" path="/opt/neuraldsp/Factory Library/Swell Canvas.pb"/> + <Preset hash="1604991162" path="/opt/neuraldsp/Factory Library/Arctic Cave.pb"/> + <Preset hash="316469171" path="/opt/neuraldsp/Factory Library/Patch Send1 to Ret1.pb"/> + <Preset hash="798752723" path="/opt/neuraldsp/Factory Library/Loop Climber Express.pb"/> + <Preset hash="3689864664" path="/opt/neuraldsp/Factory Library/Loop Shimmer Express.pb"/> + <Preset hash="1370334244" path="/opt/neuraldsp/Factory Library/Wild Buffalo.pb"/> + <Preset hash="180726169" path="/opt/neuraldsp/Factory Library/Brut Bass.pb"/> + <Preset hash="1797324046" path="/opt/neuraldsp/Factory Library/Stereo Fuzz.pb"/> + <Preset hash="1718568300" path="/opt/neuraldsp/Factory Library/Scoop My Amped.pb"/> + <Preset hash="1662967338" path="/opt/neuraldsp/Factory Library/CA 400 Ch2.pb"/> + <Preset hash="3739742069" path="/opt/neuraldsp/Factory Library/Watt Bass Normal.pb"/> + <Preset hash="1842563330" path="/opt/neuraldsp/Factory Library/Bass FlipTop 6466.pb"/> + <Preset hash="1249773138" path="/opt/neuraldsp/Factory Library/Bass FlipTop 6664.pb"/> + <Preset hash="2735435796" path="/opt/neuraldsp/Factory Library/Light Touch.pb"/> + <Preset hash="2313092864" path="/opt/neuraldsp/Factory Library/Kick In The Subs.pb"/> + <Preset hash="298499191" path="/opt/neuraldsp/Factory Library/Blast.pb"/> + <Preset hash="1983735095" path="/opt/neuraldsp/Factory Library/Don't Cross Me.pb"/> + <Preset hash="1531254533" path="/opt/neuraldsp/Factory Library/SuperMegaMassiveBass.pb"/> + <Preset hash="4171361918" path="/opt/neuraldsp/Factory Library/Grinder.pb"/> + <Preset hash="3297755213" path="/opt/neuraldsp/Factory Library/Goliath.pb"/> + <Preset hash="201890304" path="/opt/neuraldsp/Factory Library/Hard Hitter.pb"/> + <Preset hash="4094612427" path="/opt/neuraldsp/Factory Library/Amped SV.pb"/> + <Preset hash="2613739913" path="/opt/neuraldsp/Factory Library/Amped SV & Rodent.pb"/> + <Preset hash="3455290020" path="/opt/neuraldsp/Factory Library/Amped V4B.pb"/> + <Preset hash="2251177144" path="/opt/neuraldsp/Factory Library/Amped V4B & Rodent.pb"/> + <Preset hash="3638502732" path="/opt/neuraldsp/Factory Library/Cali Basswalk.pb"/> + <Preset hash="2785264346" path="/opt/neuraldsp/Factory Library/Cali BB750.pb"/> + <Preset hash="2575702895" path="/opt/neuraldsp/Factory Library/Cali M6Rifle.pb"/> + <Preset hash="640574913" path="/opt/neuraldsp/Factory Library/Darkglass AO900 1.pb"/> + <Preset hash="3801949370" path="/opt/neuraldsp/Factory Library/Darkglass AO900 2.pb"/> + <Preset hash="3537005317" path="/opt/neuraldsp/Factory Library/Darkglass MT 900.pb"/> + <Preset hash="2659291420" path="/opt/neuraldsp/Factory Library/Sin City.pb"/> + <Preset hash="1907759519" path="/opt/neuraldsp/Factory Library/Tangerine Growl.pb"/> + <Preset hash="1687299277" path="/opt/neuraldsp/Factory Library/Snakehair Bassmix 1.pb"/> + <Preset hash="2116536454" path="/opt/neuraldsp/Factory Library/Snakehair Bassmix 2.pb"/> + <Preset hash="1682894239" path="/opt/neuraldsp/Factory Library/Snakehair Bassmix 3.pb"/> + <Preset hash="2202654520" path="/opt/neuraldsp/Factory Library/Snakehair Bassmix 4.pb"/> + <Preset hash="1329690966" path="/opt/neuraldsp/Factory Library/Deep Underground.pb"/> + <Preset hash="1736792192" path="/opt/neuraldsp/Factory Library/Run Steve Run.pb"/> + <Preset hash="1729355440" path="/opt/neuraldsp/Factory Library/Hysteria.pb"/> + <Preset hash="564987006" path="/opt/neuraldsp/Factory Library/Murder One.pb"/> + <Preset hash="2388746107" path="/opt/neuraldsp/Factory Library/The Bass Tolls.pb"/> + <Preset hash="4208043023" path="/opt/neuraldsp/Factory Library/Duff Bass.pb"/> + <Preset hash="2346691174" path="/opt/neuraldsp/Factory Library/Hurry Geddy.pb"/> + <Preset hash="2383813252" path="/opt/neuraldsp/Factory Library/Triple Bass.pb"/> + <Preset hash="3460241340" path="/opt/neuraldsp/Factory Library/One Note Arpeggiator.pb"/> + <Preset hash="3870850962" path="/opt/neuraldsp/Factory Library/One Note Is A Chord.pb"/> + <Preset hash="4021283706" path="/opt/neuraldsp/Factory Library/12 String Bass.pb"/> + <Preset hash="3746658789" path="/opt/neuraldsp/Factory Library/Square Wave.pb"/> + <Preset hash="4057358867" path="/opt/neuraldsp/Factory Library/Synthesque Bass.pb"/> + <Preset hash="3185581081" path="/opt/neuraldsp/Factory Library/Jeremy.pb"/> + <Preset hash="3790957169" path="/opt/neuraldsp/Factory Library/Spooky Bass.pb"/> + <Preset hash="382049922" path="/opt/neuraldsp/Factory Library/AutoWah.pb"/> + <Preset hash="1616918305" path="/opt/neuraldsp/Factory Library/Vocal 58.pb"/> + <Preset hash="3523156222" path="/opt/neuraldsp/Factory Library/Voc58 Piezo Acc.pb"/> + <Preset hash="3239978968" path="/opt/neuraldsp/Factory Library/Vocal Synth.pb"/> + <Preset hash="958881053" path="/opt/neuraldsp/Factory Library/AcGtr & Vocal.pb"/> + <Preset hash="4140874114" path="/opt/neuraldsp/Factory Library/AcGtr Multiband.pb"/> + <Preset hash="1947499888" path="/opt/neuraldsp/Factory Library/Poor Man's Double.pb"/> + <Preset hash="2728252696" path="/opt/neuraldsp/Factory Library/12 String Gtr.pb"/> + <Preset hash="1573999727" path="/opt/neuraldsp/Factory Library/AcGtr & Bass.pb"/> + <Preset hash="3264173293" path="/opt/neuraldsp/Factory Library/Go To Scene Mode.pb"/> + <Preset hash="4095450004" path="/opt/neuraldsp/Factory Library/Go To Stomp Mode.pb"/> + <Preset hash="2240416404" path="/opt/neuraldsp/Factory Library/Splitters And Mixers.pb"/> + <Preset hash="2666894461" path="/opt/neuraldsp/Factory Library/4 Cable Method.pb"/> + <Preset hash="300674124" path="/opt/neuraldsp/Factory Library/7 Cable Method.pb"/> + <Preset hash="4082387638" path="/opt/neuraldsp/Factory Library/9 Cable Method.pb"/> + <Preset hash="3176147181" path="/opt/neuraldsp/Factory Library/2 Gtrs Switching.pb"/> + <Preset hash="2305614952" path="/opt/neuraldsp/Factory Library/Reamp Example.pb"/> + </Setlist> +</Setlists> diff --git a/Desktop Editor/src/components/PresetBlock.vue b/Desktop Editor/src/components/PresetBlock.vue new file mode 100644 index 0000000..5e59787 --- /dev/null +++ b/Desktop Editor/src/components/PresetBlock.vue @@ -0,0 +1,191 @@ +<template> + <div class="block"> + <button class="block-btn" + :class="{ isEmpty: model.hash == 0 }" + :style="{ background: blockColor }" + @click="showParams"> + <!-- <img src="rsquare.png" alt="block"> --> + {{ modelData.model._attributes.name }} + </button> + </div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; +import store from '@/store'; + +export default defineComponent({ + props: { + model: { + type: Object, + required: true + }, + }, + + emits: ['show-params'], + + data(){ + return { + modelData: {} as any, + blockColor: "rgb(0, 162, 255)", + + blockColorLut: { + "Guitar Overdrive": "yellow", + "Guitar Amplifier": "red", + "Bass Amplifier": "red", + "Bass Overdrive": "yellow", + "Equalizer": "CornflowerBlue", + "Compressor": "green", + "Delay": "white", + "Modulation": "purple", + "Reverb": "white", + "Wah": "white", + "Splitter": "white", + "Mixer": "white", + "Cabsim Guitar": "CornflowerBlue", + "FX Loop": "white", + "Neural Capture": "gray", + "Tuner": "white", + "Utility": "white", + "Pitch": "yellow", + "Utility_Deprecated": "black", + "Neural Capture Internal": "black", + "Cabsim Bass": "CornflowerBlue", + "Internal Routing": "black", + "Lane output control": "black", + "Filter": "white", + "Tempo control": "black", + "Morph": "white", + "Loopers": "red", + "InputGateControl": "black", + } as any + } + }, + + created(){ + this.modelData = this.getModelFromRepo(this.model.hash); + this.setBlockColor(); + }, + + methods: { + getModelFromRepo(hash: number): any{ + + const modelRepo = store.state.modelRepo as any; + //const model = modelRepo.find((model) => model.hash == hash); + let category; + let model = { + _attributes: { + id: hash.toString(), + } + }; + + if(hash != 0){ + for (let i = 0; i < modelRepo.Category.length; i++){ + const repoCategory = modelRepo.Category[i]; + const categoryModels: any = repoCategory.Model; + + + if(categoryModels == undefined) { + if(repoCategory._attributes.id == hash){ + console.log("undefined", repoCategory, hash) + category = "Tuner"; + model = repoCategory; + break; + } + } + + else{ + + // Check if categoryModels is an object or an array + if(categoryModels._attributes != undefined){ + if(categoryModels._attributes.id == hash){ + category = repoCategory; + model = categoryModels; + break; + } + } + + // Check if the categoryModels object contains an array + for (let j = 0; j < categoryModels.length; j++){ + + + if(categoryModels[j]._attributes.id == hash){ + category = repoCategory; + model = categoryModels[j] + break; + } + } + } + } + } + + return { + model: model, + category: category + }; + }, + + setBlockColor(){ + // Check the model category + if(this.modelData.category){ + const category = this.modelData.category._attributes.name; + this.blockColor = this.blockColorLut[category]; + } + else{ + this.blockColor = "rgba(0,0,0,0)"; + } + }, + + showParams(){ + // Emit back to the parent component + this.$emit('show-params', this.model, this.modelData); + } + } +}); +</script> + +<style scoped lang="scss"> +.block{ + width: 4rem; + height: 4rem; + + + border-radius: 1rem; + + justify-content: center; + align-items: center; + + border: none; + padding: 0; + z-index: 1; + + .block-btn{ + width: 100%; + height: 100%; + border-radius: 1rem; + display: flex; + justify-content: center; + align-items: center; + font-size: 2rem; + font-weight: bold; + border: none; + background-color: rgba(0, 162, 255, 0); + font-size: 1rem; + + &:hover{ + cursor: pointer; + transform: scale(1.1); + transition: transform 0.2s ease-in-out; + } + &.isEmpty:hover{ + background-color: rgba(0, 162, 255, 0.2) !important; + } + } + + img{ + display: flex; + width: 100%; + height: 100%; + } +} +</style>
\ No newline at end of file diff --git a/Desktop Editor/src/components/PresetChain.vue b/Desktop Editor/src/components/PresetChain.vue new file mode 100644 index 0000000..9e5357e --- /dev/null +++ b/Desktop Editor/src/components/PresetChain.vue @@ -0,0 +1,142 @@ +<template> + <div class="chain"> + <!-- The chain contains the input block, the line acros the screen, and the output block --> + <button class="io-block">+</button> + <div class="track"> + <div class="chain-objects" v-for="chainObject in chainObjects" :key="chainObject"> + <PresetBlock + v-if="chainObject.hash !== undefined" + :model="chainObject" + @show-params="showParams"> + </PresetBlock> + <div + class="control-point" + v-else-if="chainObject.type == 'controlPoint'" :class="{ isControlpoint: chainObject.value > 0}"> + {{ chainObject.loc }} + </div> + </div> + </div> + + + <hr class="row-line"> + + <button class="io-block">+</button> + + </div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; +import PresetBlock from '@/components/PresetBlock.vue'; + +export default defineComponent({ + components: { + PresetBlock + }, + + props: { + chain: { + type: Object, + required: true + } + }, + + emits: ['show-params'], + + data(){ + return{ + chainObjects: [] as any + } + }, + mounted(){ + const models: any = this.chain.models; + const controlPoint = {"type": "controlPoint", "value": 0, "loc": 0}; + const chainSplitControlPoints = this.chain.splitControlPoints; + + this.chainObjects.push(controlPoint); + for(let i = 0; i < models.length; i++){ + this.chainObjects.push(models[i]); + let cp = {"type": "controlPoint", "value": 0, "loc": i}; + cp.loc = i + 1; + + for(let j = 0; j < chainSplitControlPoints.length; j++){ + if(chainSplitControlPoints[j].split == i + 1){ + cp.value = 1; + } + else if(chainSplitControlPoints[j].mix == i + 1){ + cp.value = 2; + } + } + + this.chainObjects.push(cp); + } + }, + + methods:{ + showParams(model: any, modelData: any){ + this.$emit('show-params', model, modelData); + } + } +}) +</script> + +<style scoped lang="scss"> +.chain { + /* Space the content evenly horizontal */ + position: relative; + display: flex; + flex-direction: row; + justify-content: space-evenly; + align-items: center; + padding: 0 2rem; + + .io-block { + width: 3rem; + height: 4rem; + background-color: rgb(41, 41, 41); + color: rgb(255, 255, 255); + border-radius: 1rem; + display: flex; + justify-content: center; + align-items: center; + font-size: 2rem; + font-weight: bold; + border: none; + z-index: 1; + } + .io-block:hover { + background-color: rgb(255, 255, 255); + color: rgb(41, 41, 41); + cursor: pointer; + } + .row-line { + position: absolute; + width: calc(100% - 8rem); + margin: 0; + z-index: 0; + border: 1px solid rgb(255, 255, 255); + } + .track { + display: flex; + flex-direction: row; + justify-content: space-evenly; + align-items: center; + width: 100%; + height: 4rem; + z-index: 1; + + .isControlpoint{ + color: yellow; + } + } + + +} + + + + + + + +</style>
\ No newline at end of file diff --git a/Desktop Editor/src/components/PresetGrid.vue b/Desktop Editor/src/components/PresetGrid.vue new file mode 100644 index 0000000..482d0af --- /dev/null +++ b/Desktop Editor/src/components/PresetGrid.vue @@ -0,0 +1,80 @@ +<template> + <div class="preset-title"> + <div class="preset-location"> + <div class="preset-bank">1</div> + <div class="preset-letter">A</div> + </div> + <div class="preset-name" >{{ preset.name }}</div> + </div> + + <div v-if="preset" class="grid"> + <chain :chain="preset.chains[0]" @show-params="showParams"></chain> + <chain :chain="preset.chains[1]" @show-params="showParams"></chain> + <chain :chain="preset.chains[2]" @show-params="showParams"></chain> + <chain :chain="preset.chains[3]" @show-params="showParams"></chain> + </div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; +import Chain from '@/components/PresetChain.vue'; + +export default defineComponent({ + name: 'PresetGrid', + components: { + Chain + }, + + emits: ['show-params'], + + props: { + preset: { + type: Object, + required: true + } + }, + + methods: { + showParams(model: any, modelData: any){ + this.$emit('show-params', model, modelData); + } + }, +}) +</script> + +<style> +.grid { + background-color: rgb(0, 0, 0); + color: rgb(255, 255, 255); + width: 100%; + height: 400px; + + /* Space the content evenly vertical */ + display: flex; + flex-direction: column; + justify-content: space-evenly; + + margin-bottom: 2rem; + +} + +.preset-name { + text-align: start; +} + +.preset-title { + display: flex; + flex-direction: row; + align-items: center; + font-size: 3rem; + font-weight: bold; + padding-bottom: 1rem; +} + +.preset-location { + display: flex; + flex-direction: row; + margin-right: 1rem; +} + +</style>
\ No newline at end of file diff --git a/Desktop Editor/src/main.ts b/Desktop Editor/src/main.ts new file mode 100644 index 0000000..4d89664 --- /dev/null +++ b/Desktop Editor/src/main.ts @@ -0,0 +1,31 @@ +import { createApp } from 'vue' +import App from './App.vue' +import { createRouter, createWebHistory } from 'vue-router' +import PresetViewer from './views/PresetViewer.vue' +import PresetBrowserView from './views/PresetBrowserView.vue' + +// Define routes +const routes = [ + { path: '/', component: App }, + { + path: '/browser', + component: PresetBrowserView, + }, + { + name: 'Preset viewer', + path: '/viewer', + component: PresetViewer, + }, +] + +// Create router +const router = createRouter({ + history: createWebHistory(), + routes, +}) + +const app = createApp(App); + +app.use(router); + +app.mount('#app'); diff --git a/Desktop Editor/src/models/Presets/Preset_pb.d.ts b/Desktop Editor/src/models/Presets/Preset_pb.d.ts new file mode 100644 index 0000000..1bf823d --- /dev/null +++ b/Desktop Editor/src/models/Presets/Preset_pb.d.ts @@ -0,0 +1,661 @@ +import * as jspb from 'google-protobuf' + + + +export class BinaryPreset extends jspb.Message { + getName(): string; + setName(value: string): BinaryPreset; + + getHash(): number; + setHash(value: number): BinaryPreset; + + getDate(): string; + setDate(value: string): BinaryPreset; + + getVolume(): number; + setVolume(value: number): BinaryPreset; + + getPan(): number; + setPan(value: number): BinaryPreset; + + getDefaultScene(): number; + setDefaultScene(value: number): BinaryPreset; + + getAuthorName(): string; + setAuthorName(value: string): BinaryPreset; + + getAuthorId(): string; + setAuthorId(value: string): BinaryPreset; + + getTempo(): number; + setTempo(value: number): BinaryPreset; + + getChainsList(): Array<Chain>; + setChainsList(value: Array<Chain>): BinaryPreset; + clearChainsList(): BinaryPreset; + addChains(value?: Chain, index?: number): Chain; + + getTagsList(): Array<string>; + setTagsList(value: Array<string>): BinaryPreset; + clearTagsList(): BinaryPreset; + addTags(value: string, index?: number): BinaryPreset; + + getLegacyStompModeStompDataList(): Array<LegacyStompModeStompData>; + setLegacyStompModeStompDataList(value: Array<LegacyStompModeStompData>): BinaryPreset; + clearLegacyStompModeStompDataList(): BinaryPreset; + addLegacyStompModeStompData(value?: LegacyStompModeStompData, index?: number): LegacyStompModeStompData; + + getSceneTempoList(): Array<number>; + setSceneTempoList(value: Array<number>): BinaryPreset; + clearSceneTempoList(): BinaryPreset; + addSceneTempo(value: number, index?: number): BinaryPreset; + + getSceneLabelsList(): Array<string>; + setSceneLabelsList(value: Array<string>): BinaryPreset; + clearSceneLabelsList(): BinaryPreset; + addSceneLabels(value: string, index?: number): BinaryPreset; + + getMidiMessagesList(): Array<MidiMessageInfo>; + setMidiMessagesList(value: Array<MidiMessageInfo>): BinaryPreset; + clearMidiMessagesList(): BinaryPreset; + addMidiMessages(value?: MidiMessageInfo, index?: number): MidiMessageInfo; + + getMidiMessagesGeneralList(): Array<MidiMessageInfo>; + setMidiMessagesGeneralList(value: Array<MidiMessageInfo>): BinaryPreset; + clearMidiMessagesGeneralList(): BinaryPreset; + addMidiMessagesGeneral(value?: MidiMessageInfo, index?: number): MidiMessageInfo; + + getBypassList(): Array<Bypass>; + setBypassList(value: Array<Bypass>): BinaryPreset; + clearBypassList(): BinaryPreset; + addBypass(value?: Bypass, index?: number): Bypass; + + getTempoprogramdataList(): Array<Model>; + setTempoprogramdataList(value: Array<Model>): BinaryPreset; + clearTempoprogramdataList(): BinaryPreset; + addTempoprogramdata(value?: Model, index?: number): Model; + + getLayoutCode1List(): Array<number>; + setLayoutCode1List(value: Array<number>): BinaryPreset; + clearLayoutCode1List(): BinaryPreset; + addLayoutCode1(value: number, index?: number): BinaryPreset; + + getLayoutCode2List(): Array<number>; + setLayoutCode2List(value: Array<number>): BinaryPreset; + clearLayoutCode2List(): BinaryPreset; + addLayoutCode2(value: number, index?: number): BinaryPreset; + + getCreatedVersionList(): Array<string>; + setCreatedVersionList(value: Array<string>): BinaryPreset; + clearCreatedVersionList(): BinaryPreset; + addCreatedVersion(value: string, index?: number): BinaryPreset; + + getModifiedVersionList(): Array<string>; + setModifiedVersionList(value: Array<string>): BinaryPreset; + clearModifiedVersionList(): BinaryPreset; + addModifiedVersion(value: string, index?: number): BinaryPreset; + + getOldestCompatibleVersionList(): Array<string>; + setOldestCompatibleVersionList(value: Array<string>): BinaryPreset; + clearOldestCompatibleVersionList(): BinaryPreset; + addOldestCompatibleVersion(value: string, index?: number): BinaryPreset; + + getCloudIdList(): Array<string>; + setCloudIdList(value: Array<string>): BinaryPreset; + clearCloudIdList(): BinaryPreset; + addCloudId(value: string, index?: number): BinaryPreset; + + getDescriptionList(): Array<string>; + setDescriptionList(value: Array<string>): BinaryPreset; + clearDescriptionList(): BinaryPreset; + addDescription(value: string, index?: number): BinaryPreset; + + getStompModeAssignmentsList(): Array<StompModeAssignment>; + setStompModeAssignmentsList(value: Array<StompModeAssignment>): BinaryPreset; + clearStompModeAssignmentsList(): BinaryPreset; + addStompModeAssignments(value?: StompModeAssignment, index?: number): StompModeAssignment; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): BinaryPreset.AsObject; + static toObject(includeInstance: boolean, msg: BinaryPreset): BinaryPreset.AsObject; + static serializeBinaryToWriter(message: BinaryPreset, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): BinaryPreset; + static deserializeBinaryFromReader(message: BinaryPreset, reader: jspb.BinaryReader): BinaryPreset; +} + +export namespace BinaryPreset { + export type AsObject = { + name: string, + hash: number, + date: string, + volume: number, + pan: number, + defaultScene: number, + authorName: string, + authorId: string, + tempo: number, + chainsList: Array<Chain.AsObject>, + tagsList: Array<string>, + legacyStompModeStompDataList: Array<LegacyStompModeStompData.AsObject>, + sceneTempoList: Array<number>, + sceneLabelsList: Array<string>, + midiMessagesList: Array<MidiMessageInfo.AsObject>, + midiMessagesGeneralList: Array<MidiMessageInfo.AsObject>, + bypassList: Array<Bypass.AsObject>, + tempoprogramdataList: Array<Model.AsObject>, + layoutCode1List: Array<number>, + layoutCode2List: Array<number>, + createdVersionList: Array<string>, + modifiedVersionList: Array<string>, + oldestCompatibleVersionList: Array<string>, + cloudIdList: Array<string>, + descriptionList: Array<string>, + stompModeAssignmentsList: Array<StompModeAssignment.AsObject>, + } +} + +export class Chain extends jspb.Message { + getModelsList(): Array<Model>; + setModelsList(value: Array<Model>): Chain; + clearModelsList(): Chain; + addModels(value?: Model, index?: number): Model; + + getSplitControlPointsList(): Array<SplitControlPoints>; + setSplitControlPointsList(value: Array<SplitControlPoints>): Chain; + clearSplitControlPointsList(): Chain; + addSplitControlPoints(value?: SplitControlPoints, index?: number): SplitControlPoints; + + getSplitterList(): Array<Model>; + setSplitterList(value: Array<Model>): Chain; + clearSplitterList(): Chain; + addSplitter(value?: Model, index?: number): Model; + + getMixerList(): Array<Model>; + setMixerList(value: Array<Model>): Chain; + clearMixerList(): Chain; + addMixer(value?: Model, index?: number): Model; + + getOutputControlList(): Array<Model>; + setOutputControlList(value: Array<Model>): Chain; + clearOutputControlList(): Chain; + addOutputControl(value?: Model, index?: number): Model; + + getSplitbypassList(): Array<SceneBypass>; + setSplitbypassList(value: Array<SceneBypass>): Chain; + clearSplitbypassList(): Chain; + addSplitbypass(value?: SceneBypass, index?: number): SceneBypass; + + getMixbypassList(): Array<SceneBypass>; + setMixbypassList(value: Array<SceneBypass>): Chain; + clearMixbypassList(): Chain; + addMixbypass(value?: SceneBypass, index?: number): SceneBypass; + + getCombinedSplitterList(): Array<Model>; + setCombinedSplitterList(value: Array<Model>): Chain; + clearCombinedSplitterList(): Chain; + addCombinedSplitter(value?: Model, index?: number): Model; + + getInputControlList(): Array<Model>; + setInputControlList(value: Array<Model>): Chain; + clearInputControlList(): Chain; + addInputControl(value?: Model, index?: number): Model; + + getInPortid(): number; + setInPortid(value: number): Chain; + + getOutPortid(): number; + setOutPortid(value: number): Chain; + + getRow(): number; + setRow(value: number): Chain; + + getInPortidCase(): Chain.InPortidCase; + + getOutPortidCase(): Chain.OutPortidCase; + + getRowCase(): Chain.RowCase; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Chain.AsObject; + static toObject(includeInstance: boolean, msg: Chain): Chain.AsObject; + static serializeBinaryToWriter(message: Chain, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Chain; + static deserializeBinaryFromReader(message: Chain, reader: jspb.BinaryReader): Chain; +} + +export namespace Chain { + export type AsObject = { + modelsList: Array<Model.AsObject>, + splitControlPointsList: Array<SplitControlPoints.AsObject>, + splitterList: Array<Model.AsObject>, + mixerList: Array<Model.AsObject>, + outputControlList: Array<Model.AsObject>, + splitbypassList: Array<SceneBypass.AsObject>, + mixbypassList: Array<SceneBypass.AsObject>, + combinedSplitterList: Array<Model.AsObject>, + inputControlList: Array<Model.AsObject>, + inPortid: number, + outPortid: number, + row: number, + } + + export enum InPortidCase { + _IN_PORTID_NOT_SET = 0, + IN_PORTID = 1, + } + + export enum OutPortidCase { + _OUT_PORTID_NOT_SET = 0, + OUT_PORTID = 2, + } + + export enum RowCase { + _ROW_NOT_SET = 0, + ROW = 14, + } +} + +export class Model extends jspb.Message { + getParamsList(): Array<Param>; + setParamsList(value: Array<Param>): Model; + clearParamsList(): Model; + addParams(value?: Param, index?: number): Param; + + getBypassExpressionList(): Array<Expression>; + setBypassExpressionList(value: Array<Expression>): Model; + clearBypassExpressionList(): Model; + addBypassExpression(value?: Expression, index?: number): Expression; + + getExpressionBypassInfoList(): Array<ExpressionBypassInfo>; + setExpressionBypassInfoList(value: Array<ExpressionBypassInfo>): Model; + clearExpressionBypassInfoList(): Model; + addExpressionBypassInfo(value?: ExpressionBypassInfo, index?: number): ExpressionBypassInfo; + + getHash(): number; + setHash(value: number): Model; + + getColumn(): number; + setColumn(value: number): Model; + + getHashCase(): Model.HashCase; + + getColumnCase(): Model.ColumnCase; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Model.AsObject; + static toObject(includeInstance: boolean, msg: Model): Model.AsObject; + static serializeBinaryToWriter(message: Model, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Model; + static deserializeBinaryFromReader(message: Model, reader: jspb.BinaryReader): Model; +} + +export namespace Model { + export type AsObject = { + paramsList: Array<Param.AsObject>, + bypassExpressionList: Array<Expression.AsObject>, + expressionBypassInfoList: Array<ExpressionBypassInfo.AsObject>, + hash: number, + column: number, + } + + export enum HashCase { + _HASH_NOT_SET = 0, + HASH = 1, + } + + export enum ColumnCase { + _COLUMN_NOT_SET = 0, + COLUMN = 5, + } +} + +export class SplitControlPoints extends jspb.Message { + getSplit(): number; + setSplit(value: number): SplitControlPoints; + + getMix(): number; + setMix(value: number): SplitControlPoints; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): SplitControlPoints.AsObject; + static toObject(includeInstance: boolean, msg: SplitControlPoints): SplitControlPoints.AsObject; + static serializeBinaryToWriter(message: SplitControlPoints, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): SplitControlPoints; + static deserializeBinaryFromReader(message: SplitControlPoints, reader: jspb.BinaryReader): SplitControlPoints; +} + +export namespace SplitControlPoints { + export type AsObject = { + split: number, + mix: number, + } +} + +export class Bypass extends jspb.Message { + getColbypassList(): Array<ColBypass>; + setColbypassList(value: Array<ColBypass>): Bypass; + clearColbypassList(): Bypass; + addColbypass(value?: ColBypass, index?: number): ColBypass; + + getRow(): number; + setRow(value: number): Bypass; + + getRowCase(): Bypass.RowCase; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Bypass.AsObject; + static toObject(includeInstance: boolean, msg: Bypass): Bypass.AsObject; + static serializeBinaryToWriter(message: Bypass, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Bypass; + static deserializeBinaryFromReader(message: Bypass, reader: jspb.BinaryReader): Bypass; +} + +export namespace Bypass { + export type AsObject = { + colbypassList: Array<ColBypass.AsObject>, + row: number, + } + + export enum RowCase { + _ROW_NOT_SET = 0, + ROW = 2, + } +} + +export class ColBypass extends jspb.Message { + getScenebypassList(): Array<SceneBypass>; + setScenebypassList(value: Array<SceneBypass>): ColBypass; + clearScenebypassList(): ColBypass; + addScenebypass(value?: SceneBypass, index?: number): SceneBypass; + + getColumn(): number; + setColumn(value: number): ColBypass; + + getColumnCase(): ColBypass.ColumnCase; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ColBypass.AsObject; + static toObject(includeInstance: boolean, msg: ColBypass): ColBypass.AsObject; + static serializeBinaryToWriter(message: ColBypass, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ColBypass; + static deserializeBinaryFromReader(message: ColBypass, reader: jspb.BinaryReader): ColBypass; +} + +export namespace ColBypass { + export type AsObject = { + scenebypassList: Array<SceneBypass.AsObject>, + column: number, + } + + export enum ColumnCase { + _COLUMN_NOT_SET = 0, + COLUMN = 2, + } +} + +export class SceneBypass extends jspb.Message { + getBypass(): boolean; + setBypass(value: boolean): SceneBypass; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): SceneBypass.AsObject; + static toObject(includeInstance: boolean, msg: SceneBypass): SceneBypass.AsObject; + static serializeBinaryToWriter(message: SceneBypass, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): SceneBypass; + static deserializeBinaryFromReader(message: SceneBypass, reader: jspb.BinaryReader): SceneBypass; +} + +export namespace SceneBypass { + export type AsObject = { + bypass: boolean, + } +} + +export class Param extends jspb.Message { + getParamValuesList(): Array<ParamValue>; + setParamValuesList(value: Array<ParamValue>): Param; + clearParamValuesList(): Param; + addParamValues(value?: ParamValue, index?: number): ParamValue; + + getExpression(): number; + setExpression(value: number): Param; + + getExpressionMin(): number; + setExpressionMin(value: number): Param; + + getExpressionMax(): number; + setExpressionMax(value: number): Param; + + getSceneMode(): boolean; + setSceneMode(value: boolean): Param; + + getIndex(): number; + setIndex(value: number): Param; + + getExpressionCase(): Param.ExpressionCase; + + getExpressionMinCase(): Param.ExpressionMinCase; + + getExpressionMaxCase(): Param.ExpressionMaxCase; + + getSceneModeCase(): Param.SceneModeCase; + + getIndexCase(): Param.IndexCase; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Param.AsObject; + static toObject(includeInstance: boolean, msg: Param): Param.AsObject; + static serializeBinaryToWriter(message: Param, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Param; + static deserializeBinaryFromReader(message: Param, reader: jspb.BinaryReader): Param; +} + +export namespace Param { + export type AsObject = { + paramValuesList: Array<ParamValue.AsObject>, + expression: number, + expressionMin: number, + expressionMax: number, + sceneMode: boolean, + index: number, + } + + export enum ExpressionCase { + _EXPRESSION_NOT_SET = 0, + EXPRESSION = 1, + } + + export enum ExpressionMinCase { + _EXPRESSION_MIN_NOT_SET = 0, + EXPRESSION_MIN = 2, + } + + export enum ExpressionMaxCase { + _EXPRESSION_MAX_NOT_SET = 0, + EXPRESSION_MAX = 3, + } + + export enum SceneModeCase { + _SCENE_MODE_NOT_SET = 0, + SCENE_MODE = 4, + } + + export enum IndexCase { + _INDEX_NOT_SET = 0, + INDEX = 6, + } +} + +export class ParamValue extends jspb.Message { + getIntValue(): number; + setIntValue(value: number): ParamValue; + + getFloatValue(): number; + setFloatValue(value: number): ParamValue; + + getStringValue(): string; + setStringValue(value: string): ParamValue; + + getValueCase(): ParamValue.ValueCase; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ParamValue.AsObject; + static toObject(includeInstance: boolean, msg: ParamValue): ParamValue.AsObject; + static serializeBinaryToWriter(message: ParamValue, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ParamValue; + static deserializeBinaryFromReader(message: ParamValue, reader: jspb.BinaryReader): ParamValue; +} + +export namespace ParamValue { + export type AsObject = { + intValue: number, + floatValue: number, + stringValue: string, + } + + export enum ValueCase { + VALUE_NOT_SET = 0, + INT_VALUE = 1, + FLOAT_VALUE = 2, + STRING_VALUE = 3, + } +} + +export class LegacyStompModeStompData extends jspb.Message { + getRow(): number; + setRow(value: number): LegacyStompModeStompData; + + getColumn(): number; + setColumn(value: number): LegacyStompModeStompData; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): LegacyStompModeStompData.AsObject; + static toObject(includeInstance: boolean, msg: LegacyStompModeStompData): LegacyStompModeStompData.AsObject; + static serializeBinaryToWriter(message: LegacyStompModeStompData, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): LegacyStompModeStompData; + static deserializeBinaryFromReader(message: LegacyStompModeStompData, reader: jspb.BinaryReader): LegacyStompModeStompData; +} + +export namespace LegacyStompModeStompData { + export type AsObject = { + row: number, + column: number, + } +} + +export class StompModeAssignment extends jspb.Message { + getRow(): number; + setRow(value: number): StompModeAssignment; + + getColumn(): number; + setColumn(value: number): StompModeAssignment; + + getStompIndex(): number; + setStompIndex(value: number): StompModeAssignment; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): StompModeAssignment.AsObject; + static toObject(includeInstance: boolean, msg: StompModeAssignment): StompModeAssignment.AsObject; + static serializeBinaryToWriter(message: StompModeAssignment, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): StompModeAssignment; + static deserializeBinaryFromReader(message: StompModeAssignment, reader: jspb.BinaryReader): StompModeAssignment; +} + +export namespace StompModeAssignment { + export type AsObject = { + row: number, + column: number, + stompIndex: number, + } +} + +export class MidiMessageInfo extends jspb.Message { + getType(): number; + setType(value: number): MidiMessageInfo; + + getChannel(): number; + setChannel(value: number): MidiMessageInfo; + + getParam1(): number; + setParam1(value: number): MidiMessageInfo; + + getParam2(): number; + setParam2(value: number): MidiMessageInfo; + + getParam3(): number; + setParam3(value: number): MidiMessageInfo; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): MidiMessageInfo.AsObject; + static toObject(includeInstance: boolean, msg: MidiMessageInfo): MidiMessageInfo.AsObject; + static serializeBinaryToWriter(message: MidiMessageInfo, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): MidiMessageInfo; + static deserializeBinaryFromReader(message: MidiMessageInfo, reader: jspb.BinaryReader): MidiMessageInfo; +} + +export namespace MidiMessageInfo { + export type AsObject = { + type: number, + channel: number, + param1: number, + param2: number, + param3: number, + } +} + +export class Expression extends jspb.Message { + getExpression(): number; + setExpression(value: number): Expression; + + getExpressionMin(): number; + setExpressionMin(value: number): Expression; + + getExpressionMax(): number; + setExpressionMax(value: number): Expression; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Expression.AsObject; + static toObject(includeInstance: boolean, msg: Expression): Expression.AsObject; + static serializeBinaryToWriter(message: Expression, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Expression; + static deserializeBinaryFromReader(message: Expression, reader: jspb.BinaryReader): Expression; +} + +export namespace Expression { + export type AsObject = { + expression: number, + expressionMin: number, + expressionMax: number, + } +} + +export class ExpressionBypassInfo extends jspb.Message { + getType(): number; + setType(value: number): ExpressionBypassInfo; + + getInvert(): boolean; + setInvert(value: boolean): ExpressionBypassInfo; + + getDelayMs(): number; + setDelayMs(value: number): ExpressionBypassInfo; + + getLatchEmulation(): boolean; + setLatchEmulation(value: boolean): ExpressionBypassInfo; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ExpressionBypassInfo.AsObject; + static toObject(includeInstance: boolean, msg: ExpressionBypassInfo): ExpressionBypassInfo.AsObject; + static serializeBinaryToWriter(message: ExpressionBypassInfo, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ExpressionBypassInfo; + static deserializeBinaryFromReader(message: ExpressionBypassInfo, reader: jspb.BinaryReader): ExpressionBypassInfo; +} + +export namespace ExpressionBypassInfo { + export type AsObject = { + type: number, + invert: boolean, + delayMs: number, + latchEmulation: boolean, + } +} + diff --git a/Desktop Editor/src/models/Presets/Preset_pb.js b/Desktop Editor/src/models/Presets/Preset_pb.js new file mode 100644 index 0000000..a2d8be7 --- /dev/null +++ b/Desktop Editor/src/models/Presets/Preset_pb.js @@ -0,0 +1,5296 @@ +// source: NDSP/Presets/Preset.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { + if (this) { return this; } + if (typeof window !== 'undefined') { return window; } + if (typeof global !== 'undefined') { return global; } + if (typeof self !== 'undefined') { return self; } + return Function('return this')(); +}.call(null)); + +goog.exportSymbol('proto.BinaryPreset', null, global); +goog.exportSymbol('proto.Bypass', null, global); +goog.exportSymbol('proto.Bypass.RowCase', null, global); +goog.exportSymbol('proto.Chain', null, global); +goog.exportSymbol('proto.Chain.InPortidCase', null, global); +goog.exportSymbol('proto.Chain.OutPortidCase', null, global); +goog.exportSymbol('proto.Chain.RowCase', null, global); +goog.exportSymbol('proto.ColBypass', null, global); +goog.exportSymbol('proto.ColBypass.ColumnCase', null, global); +goog.exportSymbol('proto.Expression', null, global); +goog.exportSymbol('proto.ExpressionBypassInfo', null, global); +goog.exportSymbol('proto.LegacyStompModeStompData', null, global); +goog.exportSymbol('proto.MidiMessageInfo', null, global); +goog.exportSymbol('proto.Model', null, global); +goog.exportSymbol('proto.Model.ColumnCase', null, global); +goog.exportSymbol('proto.Model.HashCase', null, global); +goog.exportSymbol('proto.Param', null, global); +goog.exportSymbol('proto.Param.ExpressionCase', null, global); +goog.exportSymbol('proto.Param.ExpressionMaxCase', null, global); +goog.exportSymbol('proto.Param.ExpressionMinCase', null, global); +goog.exportSymbol('proto.Param.IndexCase', null, global); +goog.exportSymbol('proto.Param.SceneModeCase', null, global); +goog.exportSymbol('proto.ParamValue', null, global); +goog.exportSymbol('proto.ParamValue.ValueCase', null, global); +goog.exportSymbol('proto.SceneBypass', null, global); +goog.exportSymbol('proto.SplitControlPoints', null, global); +goog.exportSymbol('proto.StompModeAssignment', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.BinaryPreset = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.BinaryPreset.repeatedFields_, null); +}; +goog.inherits(proto.BinaryPreset, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.BinaryPreset.displayName = 'proto.BinaryPreset'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.Chain = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.Chain.repeatedFields_, proto.Chain.oneofGroups_); +}; +goog.inherits(proto.Chain, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.Chain.displayName = 'proto.Chain'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.Model = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.Model.repeatedFields_, proto.Model.oneofGroups_); +}; +goog.inherits(proto.Model, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.Model.displayName = 'proto.Model'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.SplitControlPoints = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.SplitControlPoints, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.SplitControlPoints.displayName = 'proto.SplitControlPoints'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.Bypass = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.Bypass.repeatedFields_, proto.Bypass.oneofGroups_); +}; +goog.inherits(proto.Bypass, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.Bypass.displayName = 'proto.Bypass'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.ColBypass = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.ColBypass.repeatedFields_, proto.ColBypass.oneofGroups_); +}; +goog.inherits(proto.ColBypass, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.ColBypass.displayName = 'proto.ColBypass'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.SceneBypass = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.SceneBypass, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.SceneBypass.displayName = 'proto.SceneBypass'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.Param = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.Param.repeatedFields_, proto.Param.oneofGroups_); +}; +goog.inherits(proto.Param, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.Param.displayName = 'proto.Param'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.ParamValue = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.ParamValue.oneofGroups_); +}; +goog.inherits(proto.ParamValue, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.ParamValue.displayName = 'proto.ParamValue'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.LegacyStompModeStompData = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.LegacyStompModeStompData, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.LegacyStompModeStompData.displayName = 'proto.LegacyStompModeStompData'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.StompModeAssignment = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.StompModeAssignment, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.StompModeAssignment.displayName = 'proto.StompModeAssignment'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.MidiMessageInfo = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.MidiMessageInfo, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.MidiMessageInfo.displayName = 'proto.MidiMessageInfo'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.Expression = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.Expression, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.Expression.displayName = 'proto.Expression'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.ExpressionBypassInfo = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.ExpressionBypassInfo, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.ExpressionBypassInfo.displayName = 'proto.ExpressionBypassInfo'; +} + +/** + * List of repeated fields within this message type. + * @private {!Array<number>} + * @const + */ +proto.BinaryPreset.repeatedFields_ = [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.BinaryPreset.prototype.toObject = function(opt_includeInstance) { + return proto.BinaryPreset.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.BinaryPreset} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.BinaryPreset.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + hash: jspb.Message.getFieldWithDefault(msg, 3, 0), + date: jspb.Message.getFieldWithDefault(msg, 4, ""), + volume: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0.0), + pan: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0.0), + defaultScene: jspb.Message.getFieldWithDefault(msg, 7, 0), + authorName: jspb.Message.getFieldWithDefault(msg, 8, ""), + authorId: jspb.Message.getFieldWithDefault(msg, 9, ""), + tempo: jspb.Message.getFieldWithDefault(msg, 10, 0), + chainsList: jspb.Message.toObjectList(msg.getChainsList(), + proto.Chain.toObject, includeInstance), + tagsList: (f = jspb.Message.getRepeatedField(msg, 12)) == null ? undefined : f, + legacyStompModeStompDataList: jspb.Message.toObjectList(msg.getLegacyStompModeStompDataList(), + proto.LegacyStompModeStompData.toObject, includeInstance), + sceneTempoList: (f = jspb.Message.getRepeatedField(msg, 14)) == null ? undefined : f, + sceneLabelsList: (f = jspb.Message.getRepeatedField(msg, 15)) == null ? undefined : f, + midiMessagesList: jspb.Message.toObjectList(msg.getMidiMessagesList(), + proto.MidiMessageInfo.toObject, includeInstance), + midiMessagesGeneralList: jspb.Message.toObjectList(msg.getMidiMessagesGeneralList(), + proto.MidiMessageInfo.toObject, includeInstance), + bypassList: jspb.Message.toObjectList(msg.getBypassList(), + proto.Bypass.toObject, includeInstance), + tempoprogramdataList: jspb.Message.toObjectList(msg.getTempoprogramdataList(), + proto.Model.toObject, includeInstance), + layoutCode1List: (f = jspb.Message.getRepeatedField(msg, 20)) == null ? undefined : f, + layoutCode2List: (f = jspb.Message.getRepeatedField(msg, 21)) == null ? undefined : f, + createdVersionList: (f = jspb.Message.getRepeatedField(msg, 22)) == null ? undefined : f, + modifiedVersionList: (f = jspb.Message.getRepeatedField(msg, 23)) == null ? undefined : f, + oldestCompatibleVersionList: (f = jspb.Message.getRepeatedField(msg, 24)) == null ? undefined : f, + cloudIdList: (f = jspb.Message.getRepeatedField(msg, 25)) == null ? undefined : f, + descriptionList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, + stompModeAssignmentsList: jspb.Message.toObjectList(msg.getStompModeAssignmentsList(), + proto.StompModeAssignment.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.BinaryPreset} + */ +proto.BinaryPreset.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.BinaryPreset; + return proto.BinaryPreset.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.BinaryPreset} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.BinaryPreset} + */ +proto.BinaryPreset.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint32()); + msg.setHash(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setDate(value); + break; + case 5: + var value = /** @type {number} */ (reader.readFloat()); + msg.setVolume(value); + break; + case 6: + var value = /** @type {number} */ (reader.readFloat()); + msg.setPan(value); + break; + case 7: + var value = /** @type {number} */ (reader.readUint32()); + msg.setDefaultScene(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setAuthorName(value); + break; + case 9: + var value = /** @type {string} */ (reader.readString()); + msg.setAuthorId(value); + break; + case 10: + var value = /** @type {number} */ (reader.readUint32()); + msg.setTempo(value); + break; + case 11: + var value = new proto.Chain; + reader.readMessage(value,proto.Chain.deserializeBinaryFromReader); + msg.addChains(value); + break; + case 12: + var value = /** @type {string} */ (reader.readString()); + msg.addTags(value); + break; + case 13: + var value = new proto.LegacyStompModeStompData; + reader.readMessage(value,proto.LegacyStompModeStompData.deserializeBinaryFromReader); + msg.addLegacyStompModeStompData(value); + break; + case 14: + var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint32() : [reader.readUint32()]); + for (var i = 0; i < values.length; i++) { + msg.addSceneTempo(values[i]); + } + break; + case 15: + var value = /** @type {string} */ (reader.readString()); + msg.addSceneLabels(value); + break; + case 16: + var value = new proto.MidiMessageInfo; + reader.readMessage(value,proto.MidiMessageInfo.deserializeBinaryFromReader); + msg.addMidiMessages(value); + break; + case 17: + var value = new proto.MidiMessageInfo; + reader.readMessage(value,proto.MidiMessageInfo.deserializeBinaryFromReader); + msg.addMidiMessagesGeneral(value); + break; + case 18: + var value = new proto.Bypass; + reader.readMessage(value,proto.Bypass.deserializeBinaryFromReader); + msg.addBypass(value); + break; + case 19: + var value = new proto.Model; + reader.readMessage(value,proto.Model.deserializeBinaryFromReader); + msg.addTempoprogramdata(value); + break; + case 20: + var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint32() : [reader.readUint32()]); + for (var i = 0; i < values.length; i++) { + msg.addLayoutCode1(values[i]); + } + break; + case 21: + var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint32() : [reader.readUint32()]); + for (var i = 0; i < values.length; i++) { + msg.addLayoutCode2(values[i]); + } + break; + case 22: + var value = /** @type {string} */ (reader.readString()); + msg.addCreatedVersion(value); + break; + case 23: + var value = /** @type {string} */ (reader.readString()); + msg.addModifiedVersion(value); + break; + case 24: + var value = /** @type {string} */ (reader.readString()); + msg.addOldestCompatibleVersion(value); + break; + case 25: + var value = /** @type {string} */ (reader.readString()); + msg.addCloudId(value); + break; + case 26: + var value = /** @type {string} */ (reader.readString()); + msg.addDescription(value); + break; + case 27: + var value = new proto.StompModeAssignment; + reader.readMessage(value,proto.StompModeAssignment.deserializeBinaryFromReader); + msg.addStompModeAssignments(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.BinaryPreset.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.BinaryPreset.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.BinaryPreset} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.BinaryPreset.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getHash(); + if (f !== 0) { + writer.writeUint32( + 3, + f + ); + } + f = message.getDate(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getVolume(); + if (f !== 0.0) { + writer.writeFloat( + 5, + f + ); + } + f = message.getPan(); + if (f !== 0.0) { + writer.writeFloat( + 6, + f + ); + } + f = message.getDefaultScene(); + if (f !== 0) { + writer.writeUint32( + 7, + f + ); + } + f = message.getAuthorName(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } + f = message.getAuthorId(); + if (f.length > 0) { + writer.writeString( + 9, + f + ); + } + f = message.getTempo(); + if (f !== 0) { + writer.writeUint32( + 10, + f + ); + } + f = message.getChainsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 11, + f, + proto.Chain.serializeBinaryToWriter + ); + } + f = message.getTagsList(); + if (f.length > 0) { + writer.writeRepeatedString( + 12, + f + ); + } + f = message.getLegacyStompModeStompDataList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 13, + f, + proto.LegacyStompModeStompData.serializeBinaryToWriter + ); + } + f = message.getSceneTempoList(); + if (f.length > 0) { + writer.writePackedUint32( + 14, + f + ); + } + f = message.getSceneLabelsList(); + if (f.length > 0) { + writer.writeRepeatedString( + 15, + f + ); + } + f = message.getMidiMessagesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 16, + f, + proto.MidiMessageInfo.serializeBinaryToWriter + ); + } + f = message.getMidiMessagesGeneralList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 17, + f, + proto.MidiMessageInfo.serializeBinaryToWriter + ); + } + f = message.getBypassList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 18, + f, + proto.Bypass.serializeBinaryToWriter + ); + } + f = message.getTempoprogramdataList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 19, + f, + proto.Model.serializeBinaryToWriter + ); + } + f = message.getLayoutCode1List(); + if (f.length > 0) { + writer.writePackedUint32( + 20, + f + ); + } + f = message.getLayoutCode2List(); + if (f.length > 0) { + writer.writePackedUint32( + 21, + f + ); + } + f = message.getCreatedVersionList(); + if (f.length > 0) { + writer.writeRepeatedString( + 22, + f + ); + } + f = message.getModifiedVersionList(); + if (f.length > 0) { + writer.writeRepeatedString( + 23, + f + ); + } + f = message.getOldestCompatibleVersionList(); + if (f.length > 0) { + writer.writeRepeatedString( + 24, + f + ); + } + f = message.getCloudIdList(); + if (f.length > 0) { + writer.writeRepeatedString( + 25, + f + ); + } + f = message.getDescriptionList(); + if (f.length > 0) { + writer.writeRepeatedString( + 26, + f + ); + } + f = message.getStompModeAssignmentsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 27, + f, + proto.StompModeAssignment.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.BinaryPreset.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional uint32 hash = 3; + * @return {number} + */ +proto.BinaryPreset.prototype.getHash = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setHash = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); +}; + + +/** + * optional string date = 4; + * @return {string} + */ +proto.BinaryPreset.prototype.getDate = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setDate = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional float volume = 5; + * @return {number} + */ +proto.BinaryPreset.prototype.getVolume = function() { + return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0.0)); +}; + + +/** + * @param {number} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setVolume = function(value) { + return jspb.Message.setProto3FloatField(this, 5, value); +}; + + +/** + * optional float pan = 6; + * @return {number} + */ +proto.BinaryPreset.prototype.getPan = function() { + return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0.0)); +}; + + +/** + * @param {number} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setPan = function(value) { + return jspb.Message.setProto3FloatField(this, 6, value); +}; + + +/** + * optional uint32 default_scene = 7; + * @return {number} + */ +proto.BinaryPreset.prototype.getDefaultScene = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setDefaultScene = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + + +/** + * optional string author_name = 8; + * @return {string} + */ +proto.BinaryPreset.prototype.getAuthorName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** + * @param {string} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setAuthorName = function(value) { + return jspb.Message.setProto3StringField(this, 8, value); +}; + + +/** + * optional string author_id = 9; + * @return {string} + */ +proto.BinaryPreset.prototype.getAuthorId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); +}; + + +/** + * @param {string} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setAuthorId = function(value) { + return jspb.Message.setProto3StringField(this, 9, value); +}; + + +/** + * optional uint32 tempo = 10; + * @return {number} + */ +proto.BinaryPreset.prototype.getTempo = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setTempo = function(value) { + return jspb.Message.setProto3IntField(this, 10, value); +}; + + +/** + * repeated Chain chains = 11; + * @return {!Array<!proto.Chain>} + */ +proto.BinaryPreset.prototype.getChainsList = function() { + return /** @type{!Array<!proto.Chain>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.Chain, 11)); +}; + + +/** + * @param {!Array<!proto.Chain>} value + * @return {!proto.BinaryPreset} returns this +*/ +proto.BinaryPreset.prototype.setChainsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 11, value); +}; + + +/** + * @param {!proto.Chain=} opt_value + * @param {number=} opt_index + * @return {!proto.Chain} + */ +proto.BinaryPreset.prototype.addChains = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.Chain, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearChainsList = function() { + return this.setChainsList([]); +}; + + +/** + * repeated string tags = 12; + * @return {!Array<string>} + */ +proto.BinaryPreset.prototype.getTagsList = function() { + return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 12)); +}; + + +/** + * @param {!Array<string>} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setTagsList = function(value) { + return jspb.Message.setField(this, 12, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.addTags = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 12, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearTagsList = function() { + return this.setTagsList([]); +}; + + +/** + * repeated LegacyStompModeStompData legacy_stomp_mode_stomp_data = 13; + * @return {!Array<!proto.LegacyStompModeStompData>} + */ +proto.BinaryPreset.prototype.getLegacyStompModeStompDataList = function() { + return /** @type{!Array<!proto.LegacyStompModeStompData>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.LegacyStompModeStompData, 13)); +}; + + +/** + * @param {!Array<!proto.LegacyStompModeStompData>} value + * @return {!proto.BinaryPreset} returns this +*/ +proto.BinaryPreset.prototype.setLegacyStompModeStompDataList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 13, value); +}; + + +/** + * @param {!proto.LegacyStompModeStompData=} opt_value + * @param {number=} opt_index + * @return {!proto.LegacyStompModeStompData} + */ +proto.BinaryPreset.prototype.addLegacyStompModeStompData = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 13, opt_value, proto.LegacyStompModeStompData, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearLegacyStompModeStompDataList = function() { + return this.setLegacyStompModeStompDataList([]); +}; + + +/** + * repeated uint32 scene_tempo = 14; + * @return {!Array<number>} + */ +proto.BinaryPreset.prototype.getSceneTempoList = function() { + return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 14)); +}; + + +/** + * @param {!Array<number>} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setSceneTempoList = function(value) { + return jspb.Message.setField(this, 14, value || []); +}; + + +/** + * @param {number} value + * @param {number=} opt_index + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.addSceneTempo = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 14, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearSceneTempoList = function() { + return this.setSceneTempoList([]); +}; + + +/** + * repeated string scene_labels = 15; + * @return {!Array<string>} + */ +proto.BinaryPreset.prototype.getSceneLabelsList = function() { + return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 15)); +}; + + +/** + * @param {!Array<string>} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setSceneLabelsList = function(value) { + return jspb.Message.setField(this, 15, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.addSceneLabels = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 15, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearSceneLabelsList = function() { + return this.setSceneLabelsList([]); +}; + + +/** + * repeated MidiMessageInfo midi_messages = 16; + * @return {!Array<!proto.MidiMessageInfo>} + */ +proto.BinaryPreset.prototype.getMidiMessagesList = function() { + return /** @type{!Array<!proto.MidiMessageInfo>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.MidiMessageInfo, 16)); +}; + + +/** + * @param {!Array<!proto.MidiMessageInfo>} value + * @return {!proto.BinaryPreset} returns this +*/ +proto.BinaryPreset.prototype.setMidiMessagesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 16, value); +}; + + +/** + * @param {!proto.MidiMessageInfo=} opt_value + * @param {number=} opt_index + * @return {!proto.MidiMessageInfo} + */ +proto.BinaryPreset.prototype.addMidiMessages = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 16, opt_value, proto.MidiMessageInfo, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearMidiMessagesList = function() { + return this.setMidiMessagesList([]); +}; + + +/** + * repeated MidiMessageInfo midi_messages_general = 17; + * @return {!Array<!proto.MidiMessageInfo>} + */ +proto.BinaryPreset.prototype.getMidiMessagesGeneralList = function() { + return /** @type{!Array<!proto.MidiMessageInfo>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.MidiMessageInfo, 17)); +}; + + +/** + * @param {!Array<!proto.MidiMessageInfo>} value + * @return {!proto.BinaryPreset} returns this +*/ +proto.BinaryPreset.prototype.setMidiMessagesGeneralList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 17, value); +}; + + +/** + * @param {!proto.MidiMessageInfo=} opt_value + * @param {number=} opt_index + * @return {!proto.MidiMessageInfo} + */ +proto.BinaryPreset.prototype.addMidiMessagesGeneral = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 17, opt_value, proto.MidiMessageInfo, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearMidiMessagesGeneralList = function() { + return this.setMidiMessagesGeneralList([]); +}; + + +/** + * repeated Bypass bypass = 18; + * @return {!Array<!proto.Bypass>} + */ +proto.BinaryPreset.prototype.getBypassList = function() { + return /** @type{!Array<!proto.Bypass>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.Bypass, 18)); +}; + + +/** + * @param {!Array<!proto.Bypass>} value + * @return {!proto.BinaryPreset} returns this +*/ +proto.BinaryPreset.prototype.setBypassList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 18, value); +}; + + +/** + * @param {!proto.Bypass=} opt_value + * @param {number=} opt_index + * @return {!proto.Bypass} + */ +proto.BinaryPreset.prototype.addBypass = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 18, opt_value, proto.Bypass, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearBypassList = function() { + return this.setBypassList([]); +}; + + +/** + * repeated Model tempoProgramData = 19; + * @return {!Array<!proto.Model>} + */ +proto.BinaryPreset.prototype.getTempoprogramdataList = function() { + return /** @type{!Array<!proto.Model>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.Model, 19)); +}; + + +/** + * @param {!Array<!proto.Model>} value + * @return {!proto.BinaryPreset} returns this +*/ +proto.BinaryPreset.prototype.setTempoprogramdataList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 19, value); +}; + + +/** + * @param {!proto.Model=} opt_value + * @param {number=} opt_index + * @return {!proto.Model} + */ +proto.BinaryPreset.prototype.addTempoprogramdata = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 19, opt_value, proto.Model, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearTempoprogramdataList = function() { + return this.setTempoprogramdataList([]); +}; + + +/** + * repeated uint32 layout_code_1 = 20; + * @return {!Array<number>} + */ +proto.BinaryPreset.prototype.getLayoutCode1List = function() { + return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 20)); +}; + + +/** + * @param {!Array<number>} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setLayoutCode1List = function(value) { + return jspb.Message.setField(this, 20, value || []); +}; + + +/** + * @param {number} value + * @param {number=} opt_index + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.addLayoutCode1 = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 20, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearLayoutCode1List = function() { + return this.setLayoutCode1List([]); +}; + + +/** + * repeated uint32 layout_code_2 = 21; + * @return {!Array<number>} + */ +proto.BinaryPreset.prototype.getLayoutCode2List = function() { + return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 21)); +}; + + +/** + * @param {!Array<number>} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setLayoutCode2List = function(value) { + return jspb.Message.setField(this, 21, value || []); +}; + + +/** + * @param {number} value + * @param {number=} opt_index + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.addLayoutCode2 = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 21, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearLayoutCode2List = function() { + return this.setLayoutCode2List([]); +}; + + +/** + * repeated string created_version = 22; + * @return {!Array<string>} + */ +proto.BinaryPreset.prototype.getCreatedVersionList = function() { + return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 22)); +}; + + +/** + * @param {!Array<string>} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setCreatedVersionList = function(value) { + return jspb.Message.setField(this, 22, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.addCreatedVersion = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 22, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearCreatedVersionList = function() { + return this.setCreatedVersionList([]); +}; + + +/** + * repeated string modified_version = 23; + * @return {!Array<string>} + */ +proto.BinaryPreset.prototype.getModifiedVersionList = function() { + return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 23)); +}; + + +/** + * @param {!Array<string>} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setModifiedVersionList = function(value) { + return jspb.Message.setField(this, 23, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.addModifiedVersion = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 23, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearModifiedVersionList = function() { + return this.setModifiedVersionList([]); +}; + + +/** + * repeated string oldest_compatible_version = 24; + * @return {!Array<string>} + */ +proto.BinaryPreset.prototype.getOldestCompatibleVersionList = function() { + return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 24)); +}; + + +/** + * @param {!Array<string>} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setOldestCompatibleVersionList = function(value) { + return jspb.Message.setField(this, 24, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.addOldestCompatibleVersion = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 24, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearOldestCompatibleVersionList = function() { + return this.setOldestCompatibleVersionList([]); +}; + + +/** + * repeated string cloud_id = 25; + * @return {!Array<string>} + */ +proto.BinaryPreset.prototype.getCloudIdList = function() { + return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 25)); +}; + + +/** + * @param {!Array<string>} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setCloudIdList = function(value) { + return jspb.Message.setField(this, 25, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.addCloudId = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 25, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearCloudIdList = function() { + return this.setCloudIdList([]); +}; + + +/** + * repeated string description = 26; + * @return {!Array<string>} + */ +proto.BinaryPreset.prototype.getDescriptionList = function() { + return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 26)); +}; + + +/** + * @param {!Array<string>} value + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.setDescriptionList = function(value) { + return jspb.Message.setField(this, 26, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.addDescription = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 26, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearDescriptionList = function() { + return this.setDescriptionList([]); +}; + + +/** + * repeated StompModeAssignment stomp_mode_assignments = 27; + * @return {!Array<!proto.StompModeAssignment>} + */ +proto.BinaryPreset.prototype.getStompModeAssignmentsList = function() { + return /** @type{!Array<!proto.StompModeAssignment>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.StompModeAssignment, 27)); +}; + + +/** + * @param {!Array<!proto.StompModeAssignment>} value + * @return {!proto.BinaryPreset} returns this +*/ +proto.BinaryPreset.prototype.setStompModeAssignmentsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 27, value); +}; + + +/** + * @param {!proto.StompModeAssignment=} opt_value + * @param {number=} opt_index + * @return {!proto.StompModeAssignment} + */ +proto.BinaryPreset.prototype.addStompModeAssignments = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 27, opt_value, proto.StompModeAssignment, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.BinaryPreset} returns this + */ +proto.BinaryPreset.prototype.clearStompModeAssignmentsList = function() { + return this.setStompModeAssignmentsList([]); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array<number>} + * @const + */ +proto.Chain.repeatedFields_ = [5,6,7,8,9,10,11,12,13]; + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array<!Array<number>>} + * @const + */ +proto.Chain.oneofGroups_ = [[1],[2],[14]]; + +/** + * @enum {number} + */ +proto.Chain.InPortidCase = { + _IN_PORTID_NOT_SET: 0, + IN_PORTID: 1 +}; + +/** + * @return {proto.Chain.InPortidCase} + */ +proto.Chain.prototype.getInPortidCase = function() { + return /** @type {proto.Chain.InPortidCase} */(jspb.Message.computeOneofCase(this, proto.Chain.oneofGroups_[0])); +}; + +/** + * @enum {number} + */ +proto.Chain.OutPortidCase = { + _OUT_PORTID_NOT_SET: 0, + OUT_PORTID: 2 +}; + +/** + * @return {proto.Chain.OutPortidCase} + */ +proto.Chain.prototype.getOutPortidCase = function() { + return /** @type {proto.Chain.OutPortidCase} */(jspb.Message.computeOneofCase(this, proto.Chain.oneofGroups_[1])); +}; + +/** + * @enum {number} + */ +proto.Chain.RowCase = { + _ROW_NOT_SET: 0, + ROW: 14 +}; + +/** + * @return {proto.Chain.RowCase} + */ +proto.Chain.prototype.getRowCase = function() { + return /** @type {proto.Chain.RowCase} */(jspb.Message.computeOneofCase(this, proto.Chain.oneofGroups_[2])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.Chain.prototype.toObject = function(opt_includeInstance) { + return proto.Chain.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.Chain} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.Chain.toObject = function(includeInstance, msg) { + var f, obj = { + modelsList: jspb.Message.toObjectList(msg.getModelsList(), + proto.Model.toObject, includeInstance), + splitControlPointsList: jspb.Message.toObjectList(msg.getSplitControlPointsList(), + proto.SplitControlPoints.toObject, includeInstance), + splitterList: jspb.Message.toObjectList(msg.getSplitterList(), + proto.Model.toObject, includeInstance), + mixerList: jspb.Message.toObjectList(msg.getMixerList(), + proto.Model.toObject, includeInstance), + outputControlList: jspb.Message.toObjectList(msg.getOutputControlList(), + proto.Model.toObject, includeInstance), + splitbypassList: jspb.Message.toObjectList(msg.getSplitbypassList(), + proto.SceneBypass.toObject, includeInstance), + mixbypassList: jspb.Message.toObjectList(msg.getMixbypassList(), + proto.SceneBypass.toObject, includeInstance), + combinedSplitterList: jspb.Message.toObjectList(msg.getCombinedSplitterList(), + proto.Model.toObject, includeInstance), + inputControlList: jspb.Message.toObjectList(msg.getInputControlList(), + proto.Model.toObject, includeInstance), + inPortid: jspb.Message.getFieldWithDefault(msg, 1, 0), + outPortid: jspb.Message.getFieldWithDefault(msg, 2, 0), + row: jspb.Message.getFieldWithDefault(msg, 14, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.Chain} + */ +proto.Chain.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.Chain; + return proto.Chain.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.Chain} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.Chain} + */ +proto.Chain.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 5: + var value = new proto.Model; + reader.readMessage(value,proto.Model.deserializeBinaryFromReader); + msg.addModels(value); + break; + case 6: + var value = new proto.SplitControlPoints; + reader.readMessage(value,proto.SplitControlPoints.deserializeBinaryFromReader); + msg.addSplitControlPoints(value); + break; + case 7: + var value = new proto.Model; + reader.readMessage(value,proto.Model.deserializeBinaryFromReader); + msg.addSplitter(value); + break; + case 8: + var value = new proto.Model; + reader.readMessage(value,proto.Model.deserializeBinaryFromReader); + msg.addMixer(value); + break; + case 9: + var value = new proto.Model; + reader.readMessage(value,proto.Model.deserializeBinaryFromReader); + msg.addOutputControl(value); + break; + case 10: + var value = new proto.SceneBypass; + reader.readMessage(value,proto.SceneBypass.deserializeBinaryFromReader); + msg.addSplitbypass(value); + break; + case 11: + var value = new proto.SceneBypass; + reader.readMessage(value,proto.SceneBypass.deserializeBinaryFromReader); + msg.addMixbypass(value); + break; + case 12: + var value = new proto.Model; + reader.readMessage(value,proto.Model.deserializeBinaryFromReader); + msg.addCombinedSplitter(value); + break; + case 13: + var value = new proto.Model; + reader.readMessage(value,proto.Model.deserializeBinaryFromReader); + msg.addInputControl(value); + break; + case 1: + var value = /** @type {number} */ (reader.readUint32()); + msg.setInPortid(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setOutPortid(value); + break; + case 14: + var value = /** @type {number} */ (reader.readUint32()); + msg.setRow(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.Chain.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.Chain.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.Chain} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.Chain.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getModelsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 5, + f, + proto.Model.serializeBinaryToWriter + ); + } + f = message.getSplitControlPointsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 6, + f, + proto.SplitControlPoints.serializeBinaryToWriter + ); + } + f = message.getSplitterList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 7, + f, + proto.Model.serializeBinaryToWriter + ); + } + f = message.getMixerList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 8, + f, + proto.Model.serializeBinaryToWriter + ); + } + f = message.getOutputControlList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 9, + f, + proto.Model.serializeBinaryToWriter + ); + } + f = message.getSplitbypassList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 10, + f, + proto.SceneBypass.serializeBinaryToWriter + ); + } + f = message.getMixbypassList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 11, + f, + proto.SceneBypass.serializeBinaryToWriter + ); + } + f = message.getCombinedSplitterList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 12, + f, + proto.Model.serializeBinaryToWriter + ); + } + f = message.getInputControlList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 13, + f, + proto.Model.serializeBinaryToWriter + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeUint32( + 1, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeUint32( + 2, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 14)); + if (f != null) { + writer.writeUint32( + 14, + f + ); + } +}; + + +/** + * repeated Model models = 5; + * @return {!Array<!proto.Model>} + */ +proto.Chain.prototype.getModelsList = function() { + return /** @type{!Array<!proto.Model>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.Model, 5)); +}; + + +/** + * @param {!Array<!proto.Model>} value + * @return {!proto.Chain} returns this +*/ +proto.Chain.prototype.setModelsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 5, value); +}; + + +/** + * @param {!proto.Model=} opt_value + * @param {number=} opt_index + * @return {!proto.Model} + */ +proto.Chain.prototype.addModels = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.Model, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.clearModelsList = function() { + return this.setModelsList([]); +}; + + +/** + * repeated SplitControlPoints split_control_points = 6; + * @return {!Array<!proto.SplitControlPoints>} + */ +proto.Chain.prototype.getSplitControlPointsList = function() { + return /** @type{!Array<!proto.SplitControlPoints>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.SplitControlPoints, 6)); +}; + + +/** + * @param {!Array<!proto.SplitControlPoints>} value + * @return {!proto.Chain} returns this +*/ +proto.Chain.prototype.setSplitControlPointsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 6, value); +}; + + +/** + * @param {!proto.SplitControlPoints=} opt_value + * @param {number=} opt_index + * @return {!proto.SplitControlPoints} + */ +proto.Chain.prototype.addSplitControlPoints = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.SplitControlPoints, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.clearSplitControlPointsList = function() { + return this.setSplitControlPointsList([]); +}; + + +/** + * repeated Model splitter = 7; + * @return {!Array<!proto.Model>} + */ +proto.Chain.prototype.getSplitterList = function() { + return /** @type{!Array<!proto.Model>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.Model, 7)); +}; + + +/** + * @param {!Array<!proto.Model>} value + * @return {!proto.Chain} returns this +*/ +proto.Chain.prototype.setSplitterList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 7, value); +}; + + +/** + * @param {!proto.Model=} opt_value + * @param {number=} opt_index + * @return {!proto.Model} + */ +proto.Chain.prototype.addSplitter = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, proto.Model, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.clearSplitterList = function() { + return this.setSplitterList([]); +}; + + +/** + * repeated Model mixer = 8; + * @return {!Array<!proto.Model>} + */ +proto.Chain.prototype.getMixerList = function() { + return /** @type{!Array<!proto.Model>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.Model, 8)); +}; + + +/** + * @param {!Array<!proto.Model>} value + * @return {!proto.Chain} returns this +*/ +proto.Chain.prototype.setMixerList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 8, value); +}; + + +/** + * @param {!proto.Model=} opt_value + * @param {number=} opt_index + * @return {!proto.Model} + */ +proto.Chain.prototype.addMixer = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.Model, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.clearMixerList = function() { + return this.setMixerList([]); +}; + + +/** + * repeated Model output_control = 9; + * @return {!Array<!proto.Model>} + */ +proto.Chain.prototype.getOutputControlList = function() { + return /** @type{!Array<!proto.Model>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.Model, 9)); +}; + + +/** + * @param {!Array<!proto.Model>} value + * @return {!proto.Chain} returns this +*/ +proto.Chain.prototype.setOutputControlList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 9, value); +}; + + +/** + * @param {!proto.Model=} opt_value + * @param {number=} opt_index + * @return {!proto.Model} + */ +proto.Chain.prototype.addOutputControl = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 9, opt_value, proto.Model, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.clearOutputControlList = function() { + return this.setOutputControlList([]); +}; + + +/** + * repeated SceneBypass splitBypass = 10; + * @return {!Array<!proto.SceneBypass>} + */ +proto.Chain.prototype.getSplitbypassList = function() { + return /** @type{!Array<!proto.SceneBypass>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.SceneBypass, 10)); +}; + + +/** + * @param {!Array<!proto.SceneBypass>} value + * @return {!proto.Chain} returns this +*/ +proto.Chain.prototype.setSplitbypassList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 10, value); +}; + + +/** + * @param {!proto.SceneBypass=} opt_value + * @param {number=} opt_index + * @return {!proto.SceneBypass} + */ +proto.Chain.prototype.addSplitbypass = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 10, opt_value, proto.SceneBypass, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.clearSplitbypassList = function() { + return this.setSplitbypassList([]); +}; + + +/** + * repeated SceneBypass mixBypass = 11; + * @return {!Array<!proto.SceneBypass>} + */ +proto.Chain.prototype.getMixbypassList = function() { + return /** @type{!Array<!proto.SceneBypass>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.SceneBypass, 11)); +}; + + +/** + * @param {!Array<!proto.SceneBypass>} value + * @return {!proto.Chain} returns this +*/ +proto.Chain.prototype.setMixbypassList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 11, value); +}; + + +/** + * @param {!proto.SceneBypass=} opt_value + * @param {number=} opt_index + * @return {!proto.SceneBypass} + */ +proto.Chain.prototype.addMixbypass = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.SceneBypass, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.clearMixbypassList = function() { + return this.setMixbypassList([]); +}; + + +/** + * repeated Model combined_splitter = 12; + * @return {!Array<!proto.Model>} + */ +proto.Chain.prototype.getCombinedSplitterList = function() { + return /** @type{!Array<!proto.Model>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.Model, 12)); +}; + + +/** + * @param {!Array<!proto.Model>} value + * @return {!proto.Chain} returns this +*/ +proto.Chain.prototype.setCombinedSplitterList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 12, value); +}; + + +/** + * @param {!proto.Model=} opt_value + * @param {number=} opt_index + * @return {!proto.Model} + */ +proto.Chain.prototype.addCombinedSplitter = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.Model, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.clearCombinedSplitterList = function() { + return this.setCombinedSplitterList([]); +}; + + +/** + * repeated Model input_control = 13; + * @return {!Array<!proto.Model>} + */ +proto.Chain.prototype.getInputControlList = function() { + return /** @type{!Array<!proto.Model>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.Model, 13)); +}; + + +/** + * @param {!Array<!proto.Model>} value + * @return {!proto.Chain} returns this +*/ +proto.Chain.prototype.setInputControlList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 13, value); +}; + + +/** + * @param {!proto.Model=} opt_value + * @param {number=} opt_index + * @return {!proto.Model} + */ +proto.Chain.prototype.addInputControl = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 13, opt_value, proto.Model, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.clearInputControlList = function() { + return this.setInputControlList([]); +}; + + +/** + * optional uint32 in_portid = 1; + * @return {number} + */ +proto.Chain.prototype.getInPortid = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.setInPortid = function(value) { + return jspb.Message.setOneofField(this, 1, proto.Chain.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.clearInPortid = function() { + return jspb.Message.setOneofField(this, 1, proto.Chain.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.Chain.prototype.hasInPortid = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional uint32 out_portid = 2; + * @return {number} + */ +proto.Chain.prototype.getOutPortid = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.setOutPortid = function(value) { + return jspb.Message.setOneofField(this, 2, proto.Chain.oneofGroups_[1], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.clearOutPortid = function() { + return jspb.Message.setOneofField(this, 2, proto.Chain.oneofGroups_[1], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.Chain.prototype.hasOutPortid = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional uint32 row = 14; + * @return {number} + */ +proto.Chain.prototype.getRow = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 14, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.setRow = function(value) { + return jspb.Message.setOneofField(this, 14, proto.Chain.oneofGroups_[2], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.Chain} returns this + */ +proto.Chain.prototype.clearRow = function() { + return jspb.Message.setOneofField(this, 14, proto.Chain.oneofGroups_[2], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.Chain.prototype.hasRow = function() { + return jspb.Message.getField(this, 14) != null; +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array<number>} + * @const + */ +proto.Model.repeatedFields_ = [2,3,4]; + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array<!Array<number>>} + * @const + */ +proto.Model.oneofGroups_ = [[1],[5]]; + +/** + * @enum {number} + */ +proto.Model.HashCase = { + _HASH_NOT_SET: 0, + HASH: 1 +}; + +/** + * @return {proto.Model.HashCase} + */ +proto.Model.prototype.getHashCase = function() { + return /** @type {proto.Model.HashCase} */(jspb.Message.computeOneofCase(this, proto.Model.oneofGroups_[0])); +}; + +/** + * @enum {number} + */ +proto.Model.ColumnCase = { + _COLUMN_NOT_SET: 0, + COLUMN: 5 +}; + +/** + * @return {proto.Model.ColumnCase} + */ +proto.Model.prototype.getColumnCase = function() { + return /** @type {proto.Model.ColumnCase} */(jspb.Message.computeOneofCase(this, proto.Model.oneofGroups_[1])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.Model.prototype.toObject = function(opt_includeInstance) { + return proto.Model.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.Model} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.Model.toObject = function(includeInstance, msg) { + var f, obj = { + paramsList: jspb.Message.toObjectList(msg.getParamsList(), + proto.Param.toObject, includeInstance), + bypassExpressionList: jspb.Message.toObjectList(msg.getBypassExpressionList(), + proto.Expression.toObject, includeInstance), + expressionBypassInfoList: jspb.Message.toObjectList(msg.getExpressionBypassInfoList(), + proto.ExpressionBypassInfo.toObject, includeInstance), + hash: jspb.Message.getFieldWithDefault(msg, 1, 0), + column: jspb.Message.getFieldWithDefault(msg, 5, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.Model} + */ +proto.Model.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.Model; + return proto.Model.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.Model} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.Model} + */ +proto.Model.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 2: + var value = new proto.Param; + reader.readMessage(value,proto.Param.deserializeBinaryFromReader); + msg.addParams(value); + break; + case 3: + var value = new proto.Expression; + reader.readMessage(value,proto.Expression.deserializeBinaryFromReader); + msg.addBypassExpression(value); + break; + case 4: + var value = new proto.ExpressionBypassInfo; + reader.readMessage(value,proto.ExpressionBypassInfo.deserializeBinaryFromReader); + msg.addExpressionBypassInfo(value); + break; + case 1: + var value = /** @type {number} */ (reader.readUint32()); + msg.setHash(value); + break; + case 5: + var value = /** @type {number} */ (reader.readUint32()); + msg.setColumn(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.Model.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.Model.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.Model} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.Model.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getParamsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 2, + f, + proto.Param.serializeBinaryToWriter + ); + } + f = message.getBypassExpressionList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 3, + f, + proto.Expression.serializeBinaryToWriter + ); + } + f = message.getExpressionBypassInfoList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 4, + f, + proto.ExpressionBypassInfo.serializeBinaryToWriter + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeUint32( + 1, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 5)); + if (f != null) { + writer.writeUint32( + 5, + f + ); + } +}; + + +/** + * repeated Param params = 2; + * @return {!Array<!proto.Param>} + */ +proto.Model.prototype.getParamsList = function() { + return /** @type{!Array<!proto.Param>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.Param, 2)); +}; + + +/** + * @param {!Array<!proto.Param>} value + * @return {!proto.Model} returns this +*/ +proto.Model.prototype.setParamsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 2, value); +}; + + +/** + * @param {!proto.Param=} opt_value + * @param {number=} opt_index + * @return {!proto.Param} + */ +proto.Model.prototype.addParams = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.Param, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Model} returns this + */ +proto.Model.prototype.clearParamsList = function() { + return this.setParamsList([]); +}; + + +/** + * repeated Expression bypass_expression = 3; + * @return {!Array<!proto.Expression>} + */ +proto.Model.prototype.getBypassExpressionList = function() { + return /** @type{!Array<!proto.Expression>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.Expression, 3)); +}; + + +/** + * @param {!Array<!proto.Expression>} value + * @return {!proto.Model} returns this +*/ +proto.Model.prototype.setBypassExpressionList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 3, value); +}; + + +/** + * @param {!proto.Expression=} opt_value + * @param {number=} opt_index + * @return {!proto.Expression} + */ +proto.Model.prototype.addBypassExpression = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.Expression, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Model} returns this + */ +proto.Model.prototype.clearBypassExpressionList = function() { + return this.setBypassExpressionList([]); +}; + + +/** + * repeated ExpressionBypassInfo expression_bypass_info = 4; + * @return {!Array<!proto.ExpressionBypassInfo>} + */ +proto.Model.prototype.getExpressionBypassInfoList = function() { + return /** @type{!Array<!proto.ExpressionBypassInfo>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.ExpressionBypassInfo, 4)); +}; + + +/** + * @param {!Array<!proto.ExpressionBypassInfo>} value + * @return {!proto.Model} returns this +*/ +proto.Model.prototype.setExpressionBypassInfoList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 4, value); +}; + + +/** + * @param {!proto.ExpressionBypassInfo=} opt_value + * @param {number=} opt_index + * @return {!proto.ExpressionBypassInfo} + */ +proto.Model.prototype.addExpressionBypassInfo = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.ExpressionBypassInfo, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Model} returns this + */ +proto.Model.prototype.clearExpressionBypassInfoList = function() { + return this.setExpressionBypassInfoList([]); +}; + + +/** + * optional uint32 hash = 1; + * @return {number} + */ +proto.Model.prototype.getHash = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.Model} returns this + */ +proto.Model.prototype.setHash = function(value) { + return jspb.Message.setOneofField(this, 1, proto.Model.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.Model} returns this + */ +proto.Model.prototype.clearHash = function() { + return jspb.Message.setOneofField(this, 1, proto.Model.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.Model.prototype.hasHash = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional uint32 column = 5; + * @return {number} + */ +proto.Model.prototype.getColumn = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.Model} returns this + */ +proto.Model.prototype.setColumn = function(value) { + return jspb.Message.setOneofField(this, 5, proto.Model.oneofGroups_[1], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.Model} returns this + */ +proto.Model.prototype.clearColumn = function() { + return jspb.Message.setOneofField(this, 5, proto.Model.oneofGroups_[1], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.Model.prototype.hasColumn = function() { + return jspb.Message.getField(this, 5) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.SplitControlPoints.prototype.toObject = function(opt_includeInstance) { + return proto.SplitControlPoints.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.SplitControlPoints} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.SplitControlPoints.toObject = function(includeInstance, msg) { + var f, obj = { + split: jspb.Message.getFieldWithDefault(msg, 1, 0), + mix: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.SplitControlPoints} + */ +proto.SplitControlPoints.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.SplitControlPoints; + return proto.SplitControlPoints.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.SplitControlPoints} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.SplitControlPoints} + */ +proto.SplitControlPoints.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setSplit(value); + break; + case 2: + var value = /** @type {number} */ (reader.readInt32()); + msg.setMix(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.SplitControlPoints.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.SplitControlPoints.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.SplitControlPoints} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.SplitControlPoints.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getSplit(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getMix(); + if (f !== 0) { + writer.writeInt32( + 2, + f + ); + } +}; + + +/** + * optional int32 split = 1; + * @return {number} + */ +proto.SplitControlPoints.prototype.getSplit = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.SplitControlPoints} returns this + */ +proto.SplitControlPoints.prototype.setSplit = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional int32 mix = 2; + * @return {number} + */ +proto.SplitControlPoints.prototype.getMix = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.SplitControlPoints} returns this + */ +proto.SplitControlPoints.prototype.setMix = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array<number>} + * @const + */ +proto.Bypass.repeatedFields_ = [1]; + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array<!Array<number>>} + * @const + */ +proto.Bypass.oneofGroups_ = [[2]]; + +/** + * @enum {number} + */ +proto.Bypass.RowCase = { + _ROW_NOT_SET: 0, + ROW: 2 +}; + +/** + * @return {proto.Bypass.RowCase} + */ +proto.Bypass.prototype.getRowCase = function() { + return /** @type {proto.Bypass.RowCase} */(jspb.Message.computeOneofCase(this, proto.Bypass.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.Bypass.prototype.toObject = function(opt_includeInstance) { + return proto.Bypass.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.Bypass} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.Bypass.toObject = function(includeInstance, msg) { + var f, obj = { + colbypassList: jspb.Message.toObjectList(msg.getColbypassList(), + proto.ColBypass.toObject, includeInstance), + row: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.Bypass} + */ +proto.Bypass.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.Bypass; + return proto.Bypass.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.Bypass} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.Bypass} + */ +proto.Bypass.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.ColBypass; + reader.readMessage(value,proto.ColBypass.deserializeBinaryFromReader); + msg.addColbypass(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setRow(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.Bypass.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.Bypass.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.Bypass} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.Bypass.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getColbypassList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.ColBypass.serializeBinaryToWriter + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeUint32( + 2, + f + ); + } +}; + + +/** + * repeated ColBypass colBypass = 1; + * @return {!Array<!proto.ColBypass>} + */ +proto.Bypass.prototype.getColbypassList = function() { + return /** @type{!Array<!proto.ColBypass>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.ColBypass, 1)); +}; + + +/** + * @param {!Array<!proto.ColBypass>} value + * @return {!proto.Bypass} returns this +*/ +proto.Bypass.prototype.setColbypassList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.ColBypass=} opt_value + * @param {number=} opt_index + * @return {!proto.ColBypass} + */ +proto.Bypass.prototype.addColbypass = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.ColBypass, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Bypass} returns this + */ +proto.Bypass.prototype.clearColbypassList = function() { + return this.setColbypassList([]); +}; + + +/** + * optional uint32 row = 2; + * @return {number} + */ +proto.Bypass.prototype.getRow = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.Bypass} returns this + */ +proto.Bypass.prototype.setRow = function(value) { + return jspb.Message.setOneofField(this, 2, proto.Bypass.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.Bypass} returns this + */ +proto.Bypass.prototype.clearRow = function() { + return jspb.Message.setOneofField(this, 2, proto.Bypass.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.Bypass.prototype.hasRow = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array<number>} + * @const + */ +proto.ColBypass.repeatedFields_ = [1]; + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array<!Array<number>>} + * @const + */ +proto.ColBypass.oneofGroups_ = [[2]]; + +/** + * @enum {number} + */ +proto.ColBypass.ColumnCase = { + _COLUMN_NOT_SET: 0, + COLUMN: 2 +}; + +/** + * @return {proto.ColBypass.ColumnCase} + */ +proto.ColBypass.prototype.getColumnCase = function() { + return /** @type {proto.ColBypass.ColumnCase} */(jspb.Message.computeOneofCase(this, proto.ColBypass.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.ColBypass.prototype.toObject = function(opt_includeInstance) { + return proto.ColBypass.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.ColBypass} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.ColBypass.toObject = function(includeInstance, msg) { + var f, obj = { + scenebypassList: jspb.Message.toObjectList(msg.getScenebypassList(), + proto.SceneBypass.toObject, includeInstance), + column: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.ColBypass} + */ +proto.ColBypass.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.ColBypass; + return proto.ColBypass.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.ColBypass} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.ColBypass} + */ +proto.ColBypass.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.SceneBypass; + reader.readMessage(value,proto.SceneBypass.deserializeBinaryFromReader); + msg.addScenebypass(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setColumn(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.ColBypass.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.ColBypass.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.ColBypass} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.ColBypass.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getScenebypassList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.SceneBypass.serializeBinaryToWriter + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeUint32( + 2, + f + ); + } +}; + + +/** + * repeated SceneBypass sceneBypass = 1; + * @return {!Array<!proto.SceneBypass>} + */ +proto.ColBypass.prototype.getScenebypassList = function() { + return /** @type{!Array<!proto.SceneBypass>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.SceneBypass, 1)); +}; + + +/** + * @param {!Array<!proto.SceneBypass>} value + * @return {!proto.ColBypass} returns this +*/ +proto.ColBypass.prototype.setScenebypassList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.SceneBypass=} opt_value + * @param {number=} opt_index + * @return {!proto.SceneBypass} + */ +proto.ColBypass.prototype.addScenebypass = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.SceneBypass, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.ColBypass} returns this + */ +proto.ColBypass.prototype.clearScenebypassList = function() { + return this.setScenebypassList([]); +}; + + +/** + * optional uint32 column = 2; + * @return {number} + */ +proto.ColBypass.prototype.getColumn = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.ColBypass} returns this + */ +proto.ColBypass.prototype.setColumn = function(value) { + return jspb.Message.setOneofField(this, 2, proto.ColBypass.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.ColBypass} returns this + */ +proto.ColBypass.prototype.clearColumn = function() { + return jspb.Message.setOneofField(this, 2, proto.ColBypass.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.ColBypass.prototype.hasColumn = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.SceneBypass.prototype.toObject = function(opt_includeInstance) { + return proto.SceneBypass.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.SceneBypass} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.SceneBypass.toObject = function(includeInstance, msg) { + var f, obj = { + bypass: jspb.Message.getBooleanFieldWithDefault(msg, 1, false) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.SceneBypass} + */ +proto.SceneBypass.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.SceneBypass; + return proto.SceneBypass.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.SceneBypass} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.SceneBypass} + */ +proto.SceneBypass.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setBypass(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.SceneBypass.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.SceneBypass.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.SceneBypass} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.SceneBypass.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getBypass(); + if (f) { + writer.writeBool( + 1, + f + ); + } +}; + + +/** + * optional bool bypass = 1; + * @return {boolean} + */ +proto.SceneBypass.prototype.getBypass = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.SceneBypass} returns this + */ +proto.SceneBypass.prototype.setBypass = function(value) { + return jspb.Message.setProto3BooleanField(this, 1, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array<number>} + * @const + */ +proto.Param.repeatedFields_ = [5]; + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array<!Array<number>>} + * @const + */ +proto.Param.oneofGroups_ = [[1],[2],[3],[4],[6]]; + +/** + * @enum {number} + */ +proto.Param.ExpressionCase = { + _EXPRESSION_NOT_SET: 0, + EXPRESSION: 1 +}; + +/** + * @return {proto.Param.ExpressionCase} + */ +proto.Param.prototype.getExpressionCase = function() { + return /** @type {proto.Param.ExpressionCase} */(jspb.Message.computeOneofCase(this, proto.Param.oneofGroups_[0])); +}; + +/** + * @enum {number} + */ +proto.Param.ExpressionMinCase = { + _EXPRESSION_MIN_NOT_SET: 0, + EXPRESSION_MIN: 2 +}; + +/** + * @return {proto.Param.ExpressionMinCase} + */ +proto.Param.prototype.getExpressionMinCase = function() { + return /** @type {proto.Param.ExpressionMinCase} */(jspb.Message.computeOneofCase(this, proto.Param.oneofGroups_[1])); +}; + +/** + * @enum {number} + */ +proto.Param.ExpressionMaxCase = { + _EXPRESSION_MAX_NOT_SET: 0, + EXPRESSION_MAX: 3 +}; + +/** + * @return {proto.Param.ExpressionMaxCase} + */ +proto.Param.prototype.getExpressionMaxCase = function() { + return /** @type {proto.Param.ExpressionMaxCase} */(jspb.Message.computeOneofCase(this, proto.Param.oneofGroups_[2])); +}; + +/** + * @enum {number} + */ +proto.Param.SceneModeCase = { + _SCENE_MODE_NOT_SET: 0, + SCENE_MODE: 4 +}; + +/** + * @return {proto.Param.SceneModeCase} + */ +proto.Param.prototype.getSceneModeCase = function() { + return /** @type {proto.Param.SceneModeCase} */(jspb.Message.computeOneofCase(this, proto.Param.oneofGroups_[3])); +}; + +/** + * @enum {number} + */ +proto.Param.IndexCase = { + _INDEX_NOT_SET: 0, + INDEX: 6 +}; + +/** + * @return {proto.Param.IndexCase} + */ +proto.Param.prototype.getIndexCase = function() { + return /** @type {proto.Param.IndexCase} */(jspb.Message.computeOneofCase(this, proto.Param.oneofGroups_[4])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.Param.prototype.toObject = function(opt_includeInstance) { + return proto.Param.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.Param} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.Param.toObject = function(includeInstance, msg) { + var f, obj = { + paramValuesList: jspb.Message.toObjectList(msg.getParamValuesList(), + proto.ParamValue.toObject, includeInstance), + expression: jspb.Message.getFieldWithDefault(msg, 1, 0), + expressionMin: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0), + expressionMax: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0), + sceneMode: jspb.Message.getBooleanFieldWithDefault(msg, 4, false), + index: jspb.Message.getFieldWithDefault(msg, 6, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.Param} + */ +proto.Param.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.Param; + return proto.Param.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.Param} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.Param} + */ +proto.Param.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 5: + var value = new proto.ParamValue; + reader.readMessage(value,proto.ParamValue.deserializeBinaryFromReader); + msg.addParamValues(value); + break; + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setExpression(value); + break; + case 2: + var value = /** @type {number} */ (reader.readFloat()); + msg.setExpressionMin(value); + break; + case 3: + var value = /** @type {number} */ (reader.readFloat()); + msg.setExpressionMax(value); + break; + case 4: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setSceneMode(value); + break; + case 6: + var value = /** @type {number} */ (reader.readUint32()); + msg.setIndex(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.Param.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.Param.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.Param} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.Param.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getParamValuesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 5, + f, + proto.ParamValue.serializeBinaryToWriter + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeInt32( + 1, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeFloat( + 2, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeFloat( + 3, + f + ); + } + f = /** @type {boolean} */ (jspb.Message.getField(message, 4)); + if (f != null) { + writer.writeBool( + 4, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 6)); + if (f != null) { + writer.writeUint32( + 6, + f + ); + } +}; + + +/** + * repeated ParamValue param_values = 5; + * @return {!Array<!proto.ParamValue>} + */ +proto.Param.prototype.getParamValuesList = function() { + return /** @type{!Array<!proto.ParamValue>} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.ParamValue, 5)); +}; + + +/** + * @param {!Array<!proto.ParamValue>} value + * @return {!proto.Param} returns this +*/ +proto.Param.prototype.setParamValuesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 5, value); +}; + + +/** + * @param {!proto.ParamValue=} opt_value + * @param {number=} opt_index + * @return {!proto.ParamValue} + */ +proto.Param.prototype.addParamValues = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.ParamValue, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.Param} returns this + */ +proto.Param.prototype.clearParamValuesList = function() { + return this.setParamValuesList([]); +}; + + +/** + * optional int32 expression = 1; + * @return {number} + */ +proto.Param.prototype.getExpression = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.Param} returns this + */ +proto.Param.prototype.setExpression = function(value) { + return jspb.Message.setOneofField(this, 1, proto.Param.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.Param} returns this + */ +proto.Param.prototype.clearExpression = function() { + return jspb.Message.setOneofField(this, 1, proto.Param.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.Param.prototype.hasExpression = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional float expression_min = 2; + * @return {number} + */ +proto.Param.prototype.getExpressionMin = function() { + return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0)); +}; + + +/** + * @param {number} value + * @return {!proto.Param} returns this + */ +proto.Param.prototype.setExpressionMin = function(value) { + return jspb.Message.setOneofField(this, 2, proto.Param.oneofGroups_[1], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.Param} returns this + */ +proto.Param.prototype.clearExpressionMin = function() { + return jspb.Message.setOneofField(this, 2, proto.Param.oneofGroups_[1], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.Param.prototype.hasExpressionMin = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional float expression_max = 3; + * @return {number} + */ +proto.Param.prototype.getExpressionMax = function() { + return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0)); +}; + + +/** + * @param {number} value + * @return {!proto.Param} returns this + */ +proto.Param.prototype.setExpressionMax = function(value) { + return jspb.Message.setOneofField(this, 3, proto.Param.oneofGroups_[2], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.Param} returns this + */ +proto.Param.prototype.clearExpressionMax = function() { + return jspb.Message.setOneofField(this, 3, proto.Param.oneofGroups_[2], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.Param.prototype.hasExpressionMax = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional bool scene_mode = 4; + * @return {boolean} + */ +proto.Param.prototype.getSceneMode = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.Param} returns this + */ +proto.Param.prototype.setSceneMode = function(value) { + return jspb.Message.setOneofField(this, 4, proto.Param.oneofGroups_[3], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.Param} returns this + */ +proto.Param.prototype.clearSceneMode = function() { + return jspb.Message.setOneofField(this, 4, proto.Param.oneofGroups_[3], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.Param.prototype.hasSceneMode = function() { + return jspb.Message.getField(this, 4) != null; +}; + + +/** + * optional uint32 index = 6; + * @return {number} + */ +proto.Param.prototype.getIndex = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.Param} returns this + */ +proto.Param.prototype.setIndex = function(value) { + return jspb.Message.setOneofField(this, 6, proto.Param.oneofGroups_[4], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.Param} returns this + */ +proto.Param.prototype.clearIndex = function() { + return jspb.Message.setOneofField(this, 6, proto.Param.oneofGroups_[4], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.Param.prototype.hasIndex = function() { + return jspb.Message.getField(this, 6) != null; +}; + + + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array<!Array<number>>} + * @const + */ +proto.ParamValue.oneofGroups_ = [[1,2,3]]; + +/** + * @enum {number} + */ +proto.ParamValue.ValueCase = { + VALUE_NOT_SET: 0, + INT_VALUE: 1, + FLOAT_VALUE: 2, + STRING_VALUE: 3 +}; + +/** + * @return {proto.ParamValue.ValueCase} + */ +proto.ParamValue.prototype.getValueCase = function() { + return /** @type {proto.ParamValue.ValueCase} */(jspb.Message.computeOneofCase(this, proto.ParamValue.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.ParamValue.prototype.toObject = function(opt_includeInstance) { + return proto.ParamValue.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.ParamValue} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.ParamValue.toObject = function(includeInstance, msg) { + var f, obj = { + intValue: jspb.Message.getFieldWithDefault(msg, 1, 0), + floatValue: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0), + stringValue: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.ParamValue} + */ +proto.ParamValue.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.ParamValue; + return proto.ParamValue.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.ParamValue} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.ParamValue} + */ +proto.ParamValue.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setIntValue(value); + break; + case 2: + var value = /** @type {number} */ (reader.readFloat()); + msg.setFloatValue(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setStringValue(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.ParamValue.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.ParamValue.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.ParamValue} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.ParamValue.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = /** @type {number} */ (jspb.Message.getField(message, 1)); + if (f != null) { + writer.writeInt32( + 1, + f + ); + } + f = /** @type {number} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeFloat( + 2, + f + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional int32 int_value = 1; + * @return {number} + */ +proto.ParamValue.prototype.getIntValue = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.ParamValue} returns this + */ +proto.ParamValue.prototype.setIntValue = function(value) { + return jspb.Message.setOneofField(this, 1, proto.ParamValue.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.ParamValue} returns this + */ +proto.ParamValue.prototype.clearIntValue = function() { + return jspb.Message.setOneofField(this, 1, proto.ParamValue.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.ParamValue.prototype.hasIntValue = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional float float_value = 2; + * @return {number} + */ +proto.ParamValue.prototype.getFloatValue = function() { + return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0)); +}; + + +/** + * @param {number} value + * @return {!proto.ParamValue} returns this + */ +proto.ParamValue.prototype.setFloatValue = function(value) { + return jspb.Message.setOneofField(this, 2, proto.ParamValue.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.ParamValue} returns this + */ +proto.ParamValue.prototype.clearFloatValue = function() { + return jspb.Message.setOneofField(this, 2, proto.ParamValue.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.ParamValue.prototype.hasFloatValue = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional string string_value = 3; + * @return {string} + */ +proto.ParamValue.prototype.getStringValue = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.ParamValue} returns this + */ +proto.ParamValue.prototype.setStringValue = function(value) { + return jspb.Message.setOneofField(this, 3, proto.ParamValue.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.ParamValue} returns this + */ +proto.ParamValue.prototype.clearStringValue = function() { + return jspb.Message.setOneofField(this, 3, proto.ParamValue.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.ParamValue.prototype.hasStringValue = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.LegacyStompModeStompData.prototype.toObject = function(opt_includeInstance) { + return proto.LegacyStompModeStompData.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.LegacyStompModeStompData} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.LegacyStompModeStompData.toObject = function(includeInstance, msg) { + var f, obj = { + row: jspb.Message.getFieldWithDefault(msg, 1, 0), + column: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.LegacyStompModeStompData} + */ +proto.LegacyStompModeStompData.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.LegacyStompModeStompData; + return proto.LegacyStompModeStompData.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.LegacyStompModeStompData} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.LegacyStompModeStompData} + */ +proto.LegacyStompModeStompData.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint32()); + msg.setRow(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setColumn(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.LegacyStompModeStompData.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.LegacyStompModeStompData.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.LegacyStompModeStompData} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.LegacyStompModeStompData.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRow(); + if (f !== 0) { + writer.writeUint32( + 1, + f + ); + } + f = message.getColumn(); + if (f !== 0) { + writer.writeUint32( + 2, + f + ); + } +}; + + +/** + * optional uint32 row = 1; + * @return {number} + */ +proto.LegacyStompModeStompData.prototype.getRow = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.LegacyStompModeStompData} returns this + */ +proto.LegacyStompModeStompData.prototype.setRow = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional uint32 column = 2; + * @return {number} + */ +proto.LegacyStompModeStompData.prototype.getColumn = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.LegacyStompModeStompData} returns this + */ +proto.LegacyStompModeStompData.prototype.setColumn = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.StompModeAssignment.prototype.toObject = function(opt_includeInstance) { + return proto.StompModeAssignment.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.StompModeAssignment} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.StompModeAssignment.toObject = function(includeInstance, msg) { + var f, obj = { + row: jspb.Message.getFieldWithDefault(msg, 1, 0), + column: jspb.Message.getFieldWithDefault(msg, 2, 0), + stompIndex: jspb.Message.getFieldWithDefault(msg, 3, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.StompModeAssignment} + */ +proto.StompModeAssignment.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.StompModeAssignment; + return proto.StompModeAssignment.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.StompModeAssignment} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.StompModeAssignment} + */ +proto.StompModeAssignment.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint32()); + msg.setRow(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setColumn(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint32()); + msg.setStompIndex(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.StompModeAssignment.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.StompModeAssignment.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.StompModeAssignment} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.StompModeAssignment.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRow(); + if (f !== 0) { + writer.writeUint32( + 1, + f + ); + } + f = message.getColumn(); + if (f !== 0) { + writer.writeUint32( + 2, + f + ); + } + f = message.getStompIndex(); + if (f !== 0) { + writer.writeUint32( + 3, + f + ); + } +}; + + +/** + * optional uint32 row = 1; + * @return {number} + */ +proto.StompModeAssignment.prototype.getRow = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.StompModeAssignment} returns this + */ +proto.StompModeAssignment.prototype.setRow = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional uint32 column = 2; + * @return {number} + */ +proto.StompModeAssignment.prototype.getColumn = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.StompModeAssignment} returns this + */ +proto.StompModeAssignment.prototype.setColumn = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional uint32 stomp_index = 3; + * @return {number} + */ +proto.StompModeAssignment.prototype.getStompIndex = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.StompModeAssignment} returns this + */ +proto.StompModeAssignment.prototype.setStompIndex = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.MidiMessageInfo.prototype.toObject = function(opt_includeInstance) { + return proto.MidiMessageInfo.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.MidiMessageInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.MidiMessageInfo.toObject = function(includeInstance, msg) { + var f, obj = { + type: jspb.Message.getFieldWithDefault(msg, 1, 0), + channel: jspb.Message.getFieldWithDefault(msg, 2, 0), + param1: jspb.Message.getFieldWithDefault(msg, 3, 0), + param2: jspb.Message.getFieldWithDefault(msg, 4, 0), + param3: jspb.Message.getFieldWithDefault(msg, 5, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.MidiMessageInfo} + */ +proto.MidiMessageInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.MidiMessageInfo; + return proto.MidiMessageInfo.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.MidiMessageInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.MidiMessageInfo} + */ +proto.MidiMessageInfo.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint32()); + msg.setType(value); + break; + case 2: + var value = /** @type {number} */ (reader.readUint32()); + msg.setChannel(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint32()); + msg.setParam1(value); + break; + case 4: + var value = /** @type {number} */ (reader.readUint32()); + msg.setParam2(value); + break; + case 5: + var value = /** @type {number} */ (reader.readUint32()); + msg.setParam3(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.MidiMessageInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.MidiMessageInfo.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.MidiMessageInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.MidiMessageInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getType(); + if (f !== 0) { + writer.writeUint32( + 1, + f + ); + } + f = message.getChannel(); + if (f !== 0) { + writer.writeUint32( + 2, + f + ); + } + f = message.getParam1(); + if (f !== 0) { + writer.writeUint32( + 3, + f + ); + } + f = message.getParam2(); + if (f !== 0) { + writer.writeUint32( + 4, + f + ); + } + f = message.getParam3(); + if (f !== 0) { + writer.writeUint32( + 5, + f + ); + } +}; + + +/** + * optional uint32 type = 1; + * @return {number} + */ +proto.MidiMessageInfo.prototype.getType = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.MidiMessageInfo} returns this + */ +proto.MidiMessageInfo.prototype.setType = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional uint32 channel = 2; + * @return {number} + */ +proto.MidiMessageInfo.prototype.getChannel = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.MidiMessageInfo} returns this + */ +proto.MidiMessageInfo.prototype.setChannel = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional uint32 param1 = 3; + * @return {number} + */ +proto.MidiMessageInfo.prototype.getParam1 = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.MidiMessageInfo} returns this + */ +proto.MidiMessageInfo.prototype.setParam1 = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); +}; + + +/** + * optional uint32 param2 = 4; + * @return {number} + */ +proto.MidiMessageInfo.prototype.getParam2 = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.MidiMessageInfo} returns this + */ +proto.MidiMessageInfo.prototype.setParam2 = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional uint32 param3 = 5; + * @return {number} + */ +proto.MidiMessageInfo.prototype.getParam3 = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.MidiMessageInfo} returns this + */ +proto.MidiMessageInfo.prototype.setParam3 = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.Expression.prototype.toObject = function(opt_includeInstance) { + return proto.Expression.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.Expression} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.Expression.toObject = function(includeInstance, msg) { + var f, obj = { + expression: jspb.Message.getFieldWithDefault(msg, 1, 0), + expressionMin: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0), + expressionMax: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.Expression} + */ +proto.Expression.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.Expression; + return proto.Expression.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.Expression} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.Expression} + */ +proto.Expression.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setExpression(value); + break; + case 2: + var value = /** @type {number} */ (reader.readFloat()); + msg.setExpressionMin(value); + break; + case 3: + var value = /** @type {number} */ (reader.readFloat()); + msg.setExpressionMax(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.Expression.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.Expression.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.Expression} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.Expression.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getExpression(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getExpressionMin(); + if (f !== 0.0) { + writer.writeFloat( + 2, + f + ); + } + f = message.getExpressionMax(); + if (f !== 0.0) { + writer.writeFloat( + 3, + f + ); + } +}; + + +/** + * optional int32 expression = 1; + * @return {number} + */ +proto.Expression.prototype.getExpression = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.Expression} returns this + */ +proto.Expression.prototype.setExpression = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional float expression_min = 2; + * @return {number} + */ +proto.Expression.prototype.getExpressionMin = function() { + return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0)); +}; + + +/** + * @param {number} value + * @return {!proto.Expression} returns this + */ +proto.Expression.prototype.setExpressionMin = function(value) { + return jspb.Message.setProto3FloatField(this, 2, value); +}; + + +/** + * optional float expression_max = 3; + * @return {number} + */ +proto.Expression.prototype.getExpressionMax = function() { + return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0)); +}; + + +/** + * @param {number} value + * @return {!proto.Expression} returns this + */ +proto.Expression.prototype.setExpressionMax = function(value) { + return jspb.Message.setProto3FloatField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.ExpressionBypassInfo.prototype.toObject = function(opt_includeInstance) { + return proto.ExpressionBypassInfo.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.ExpressionBypassInfo} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.ExpressionBypassInfo.toObject = function(includeInstance, msg) { + var f, obj = { + type: jspb.Message.getFieldWithDefault(msg, 1, 0), + invert: jspb.Message.getBooleanFieldWithDefault(msg, 2, false), + delayMs: jspb.Message.getFieldWithDefault(msg, 3, 0), + latchEmulation: jspb.Message.getBooleanFieldWithDefault(msg, 4, false) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.ExpressionBypassInfo} + */ +proto.ExpressionBypassInfo.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.ExpressionBypassInfo; + return proto.ExpressionBypassInfo.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.ExpressionBypassInfo} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.ExpressionBypassInfo} + */ +proto.ExpressionBypassInfo.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint32()); + msg.setType(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setInvert(value); + break; + case 3: + var value = /** @type {number} */ (reader.readUint32()); + msg.setDelayMs(value); + break; + case 4: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setLatchEmulation(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.ExpressionBypassInfo.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.ExpressionBypassInfo.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.ExpressionBypassInfo} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.ExpressionBypassInfo.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getType(); + if (f !== 0) { + writer.writeUint32( + 1, + f + ); + } + f = message.getInvert(); + if (f) { + writer.writeBool( + 2, + f + ); + } + f = message.getDelayMs(); + if (f !== 0) { + writer.writeUint32( + 3, + f + ); + } + f = message.getLatchEmulation(); + if (f) { + writer.writeBool( + 4, + f + ); + } +}; + + +/** + * optional uint32 type = 1; + * @return {number} + */ +proto.ExpressionBypassInfo.prototype.getType = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.ExpressionBypassInfo} returns this + */ +proto.ExpressionBypassInfo.prototype.setType = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional bool invert = 2; + * @return {boolean} + */ +proto.ExpressionBypassInfo.prototype.getInvert = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.ExpressionBypassInfo} returns this + */ +proto.ExpressionBypassInfo.prototype.setInvert = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional uint32 delay_ms = 3; + * @return {number} + */ +proto.ExpressionBypassInfo.prototype.getDelayMs = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.ExpressionBypassInfo} returns this + */ +proto.ExpressionBypassInfo.prototype.setDelayMs = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); +}; + + +/** + * optional bool latch_emulation = 4; + * @return {boolean} + */ +proto.ExpressionBypassInfo.prototype.getLatchEmulation = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.ExpressionBypassInfo} returns this + */ +proto.ExpressionBypassInfo.prototype.setLatchEmulation = function(value) { + return jspb.Message.setProto3BooleanField(this, 4, value); +}; + + +goog.object.extend(exports, proto); diff --git a/Desktop Editor/src/models/Presets/index.ts b/Desktop Editor/src/models/Presets/index.ts new file mode 100644 index 0000000..669931b --- /dev/null +++ b/Desktop Editor/src/models/Presets/index.ts @@ -0,0 +1 @@ +export * from './Preset_pb' diff --git a/Desktop Editor/src/protos/Preset.proto b/Desktop Editor/src/protos/Preset.proto new file mode 100644 index 0000000..5fd8174 --- /dev/null +++ b/Desktop Editor/src/protos/Preset.proto @@ -0,0 +1,157 @@ +syntax = "proto3"; + +message BinaryPreset { + string name = 2; + uint32 hash = 3; + string date = 4; + float volume = 5; + float pan = 6; + uint32 default_scene = 7; + string author_name = 8; + string author_id = 9; + uint32 tempo = 10; + repeated Chain chains = 11; + repeated string tags = 12; + repeated LegacyStompModeStompData legacy_stomp_mode_stomp_data = 13; + repeated uint32 scene_tempo = 14; + repeated string scene_labels = 15; + repeated MidiMessageInfo midi_messages = 16; + repeated MidiMessageInfo midi_messages_general = 17; + repeated Bypass bypass = 18; + repeated Model tempoProgramData = 19; + repeated uint32 layout_code_1 = 20; + repeated uint32 layout_code_2 = 21; + repeated string created_version = 22; + repeated string modified_version = 23; + repeated string oldest_compatible_version = 24; + repeated string cloud_id = 25; + repeated string description = 26; + repeated StompModeAssignment stomp_mode_assignments = 27; +} + +message Chain { + repeated Model models = 5; + repeated SplitControlPoints split_control_points = 6; + repeated Model splitter = 7; + repeated Model mixer = 8; + repeated Model output_control = 9; + repeated SceneBypass splitBypass = 10; + repeated SceneBypass mixBypass = 11; + repeated Model combined_splitter = 12; + repeated Model input_control = 13; + + oneof _in_portid { + uint32 in_portid = 1; + } + + oneof _out_portid { + uint32 out_portid = 2; + } + + oneof _row { + uint32 row = 14; + } +} + +message Model { + repeated Param params = 2; + repeated Expression bypass_expression = 3; + repeated ExpressionBypassInfo expression_bypass_info = 4; + + oneof _hash { + uint32 hash = 1; + } + + oneof _column { + uint32 column = 5; + } +} + +message SplitControlPoints { + int32 split = 1; + int32 mix = 2; +} + +message Bypass { + repeated ColBypass colBypass = 1; + + oneof _row { + uint32 row = 2; + } +} + +message ColBypass { + repeated SceneBypass sceneBypass = 1; + + oneof _column { + uint32 column = 2; + } +} + +message SceneBypass { + bool bypass = 1; +} + +message Param { + repeated ParamValue param_values = 5; + + oneof _expression { + int32 expression = 1; + } + + oneof _expression_min { + float expression_min = 2; + } + + oneof _expression_max { + float expression_max = 3; + } + + oneof _scene_mode { + bool scene_mode = 4; + } + + oneof _index { + uint32 index = 6; + } +} + +message ParamValue { + oneof value { + int32 int_value = 1; + float float_value = 2; + string string_value = 3; + } +} + +message LegacyStompModeStompData { + uint32 row = 1; + uint32 column = 2; +} + +message StompModeAssignment { + uint32 row = 1; + uint32 column = 2; + uint32 stomp_index = 3; +} + +message MidiMessageInfo { + uint32 type = 1; + uint32 channel = 2; + uint32 param1 = 3; + uint32 param2 = 4; + uint32 param3 = 5; +} + +message Expression { + int32 expression = 1; + float expression_min = 2; + float expression_max = 3; +} + +message ExpressionBypassInfo { + uint32 type = 1; + bool invert = 2; + uint32 delay_ms = 3; + bool latch_emulation = 4; +} diff --git a/Desktop Editor/src/shims-vue.d.ts b/Desktop Editor/src/shims-vue.d.ts new file mode 100644 index 0000000..3804a43 --- /dev/null +++ b/Desktop Editor/src/shims-vue.d.ts @@ -0,0 +1,6 @@ +/* eslint-disable */ +declare module '*.vue' { + import type { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +} diff --git a/Desktop Editor/src/store.ts b/Desktop Editor/src/store.ts new file mode 100644 index 0000000..976d9eb --- /dev/null +++ b/Desktop Editor/src/store.ts @@ -0,0 +1,38 @@ +import { createStore } from 'vuex' + + +export default createStore({ + state: { + currentPreset: null, + currentSetlits: null, + modelRepo: null, + }, + getters: { + currentPreset: state => state.currentPreset, + currentSetlits: state => state.currentSetlits, + modelRepo: state => state.modelRepo, + }, + mutations: { + SET_PRESET(state, preset) { + state.currentPreset = preset; + }, + SET_SETLIST(state, setlits) { + state.currentSetlits = setlits; + }, + SET_MODEL_REPO(state, modelRepo) { + state.modelRepo = modelRepo; + } + }, + actions: { + setSelectedPreset(context, preset) { + context.commit('SET_PRESET', preset); + }, + setSelectedSetlist(context, setlits) { + context.commit('SET_SETLIST', setlits); + }, + setModelRepo(context, modelRepo) { + context.commit('SET_MODEL_REPO', modelRepo); + } + }, +}) + diff --git a/Desktop Editor/src/views/PresetBrowserView.vue b/Desktop Editor/src/views/PresetBrowserView.vue new file mode 100644 index 0000000..8dcd3a7 --- /dev/null +++ b/Desktop Editor/src/views/PresetBrowserView.vue @@ -0,0 +1,174 @@ +<template> + <h1>Quad Cortex preset browser</h1> + <!-- Add a list that contains all prestets --> + <ul> + <li v-for="sl in presets.Setlist" :key="sl"> + <h2>{{ PathToFile(sl._attributes.path) }}</h2> + <p v-for="p in sl.Preset" :key="p"> + <button + v-if="p._attributes.path != ''" + :data-path="p._attributes.path" + @click="OpenPreset(p, sl.Preset)"> + {{ PathToFile(p._attributes.path, true) }} + </button> + </p> + </li> + </ul> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; +import axios from 'axios'; +import xmljs from 'xml-js'; +import protobuf from 'protobufjs'; +import store from '@/store'; +import BinaryPreset from '../models/Presets/Preset_pb'; + +export default defineComponent({ + name: 'PresetBrowserView', + components: { + }, + data(){ + return { + presets: {} as any, + modelRepo: {} as any + } + }, + async mounted() { + // First check if the environment is development or production + // If the environment is development, load the example xml file + // If the environment is production, load the xml file from the Quad Cortex + let presetXMLPath = ''; + let modelRepoXMLPath = ''; + + if(process.env.NODE_ENV === 'development'){ + presetXMLPath = 'setlist_example.xml'; + modelRepoXMLPath = 'ModelRepo[1.4.1].xml'; + } else { + // The setlist file is an XML but doesn't contain the extension for some reason + presetXMLPath = '/media/p4/Presets/setlists'; + modelRepoXMLPath = '/opt/neuraldsp/ModelRepo.xml'; + } + + console.log("Loading presets from: " + presetXMLPath); + this.loadXML(presetXMLPath).then((json) => { + this.presets = json.Setlists; + console.log(this.presets); + }); + + console.log("Loading model repo from: " + modelRepoXMLPath); + this.loadXML(modelRepoXMLPath).then((json) => { + this.modelRepo = json.Models; + store.dispatch('setModelRepo', this.modelRepo); + console.log(this.modelRepo); + }); + }, + methods: { + async loadXML(presetXMLPath: string) { + // Load the xml file from the presetXMLPath + // Convert the xml to json + let response = await axios.get(presetXMLPath); + const xml = response.data; + const json = xmljs.xml2json(xml, {compact: true, spaces: 4}); + + // The json is a string, so we need to parse it + const parsedJson = JSON.parse(json); + + return parsedJson; + }, + + objectToXML(object: any) { + // Convert the object to xml + // Return the xml + const xml2 = xmljs.js2xml(object, {compact: true, spaces: 4}); + console.log(xml2); + }, + + PathToFile(path: string, removeExtension: boolean = false) { + // Convert the path to a file + // Return the file + let file = path.split('/').pop(); + + if (removeExtension) { + return file!.split('.').shift(); + } + return file; + }, + + async OpenPreset(preset: Object){ + const presetPath = (preset as any)._attributes.path; + // const presetLocation = this.GetPresetLocation(preset, setlist); + // Go to the preset viewer and pass the presets as a prop + // const decodedPreset = await this.DecodePreset(presetPath, presetLocation); + this.DecodePreset("Vienna.pb").then((decodedPreset) => { + console.log("decoded", decodedPreset) + console.log("preset path: ", presetPath) + store.dispatch('setSelectedPreset', decodedPreset); + this.$router.push({ + name: 'Preset viewer', + }); + }); + //, params: { preset: decodedPreset } + + }, + + async DecodePreset(presetPath: string): Promise<BinaryPreset.BinaryPreset.AsObject>{ + return new Promise((resolve, reject) => { + protobuf.load('protos/Preset.proto', async (err) => { + if (err) return reject(err); + + // Get the .pb file Antartica.pb from the public folder and decode it + // Do this without using the fs module + const response = await fetch(presetPath); + const arrayBuffer = await response.arrayBuffer(); + + // Decode an Uint8Array (browser) or Buffer (node) to a message + const preset: BinaryPreset.BinaryPreset = BinaryPreset.BinaryPreset.deserializeBinary(new Uint8Array(arrayBuffer)); + const object: BinaryPreset.BinaryPreset.AsObject = preset.toObject(); + + resolve(object); + }); + }); + }, + + + GetPresetLocation(preset: any, setlist: Array<any>){ + console.log("setlist", setlist) + console.log("setlists", this.presets.Setlist) + // Get the index of the preset in the setlist + + const presetIndex = setlist.indexOf(preset); + let setlistIndex = 0; + + for(let i = 0; i < this.presets.Setlist.length; i++){ + if(this.presets.Setlist[i].Preset == setlist){ + setlistIndex = i; + } + } + + // The presets are stored per 8 presets per bank + // So we need to calculate the bank and the preset index + // The preset index is the preset index % 8 + + const presetIndexInBank = presetIndex % 8; + // Convert the index to the letter in the alphabet + const presetLetter = String.fromCharCode(65 + presetIndexInBank); + + // Every 8 presets the bank has to be increased by 1 + // The bank is the preset index / 8 + const bank = Math.floor(presetIndex / 8) + 1; + + return { + bank: bank, + preset: presetLetter, + presetIndex: presetIndex, + setlistIndex: setlistIndex + }; + } + }, +}) + +</script> + +<style scoped> +</style>
\ No newline at end of file diff --git a/Desktop Editor/src/views/PresetViewer.vue b/Desktop Editor/src/views/PresetViewer.vue new file mode 100644 index 0000000..7016c87 --- /dev/null +++ b/Desktop Editor/src/views/PresetViewer.vue @@ -0,0 +1,63 @@ + + +<template> + <h1>Preset viewer</h1> + <div class="content-container"> + <PresetGrid + v-if="preset" + :preset="preset" + @show-params="showParams" + ></PresetGrid> + + <div v-if="selectedModel"> + <div v-for="(param, index) in selectedModel.params" :key="param"> + <p>{{ selectedModelStructure.model.Parameter[index]._attributes.name }}</p> + <input type="range" min="0" max="100" :value="param.paramValues[0].floatValue * 100" > + </div> + </div> + </div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; +import PresetGrid from '@/components/PresetGrid.vue'; +import store from '@/store'; + +export default defineComponent({ + name: 'PresetBrowserView', + components: { + PresetGrid + }, + + data(){ + return { + preset: null as any, + selectedModel: null as any, + selectedModelStructure: null as any + } + }, + + async mounted() { + this.preset = store.state.currentPreset; + }, + methods: { + showParams(model: any, modelData: any){ + console.log(model, modelData); + this.selectedModel = model; + this.selectedModelStructure = modelData; + } + }, +}) + +</script> + +<style scoped lang="scss"> +.content-container { + max-width: 1200px; + margin: 0 auto; + + .preset-grid{ + margin-bottom: 3rem; + } +} +</style>
\ No newline at end of file |