diff --git a/public/octatrack-modules/vector/0.2.5-experimental.mwrm b/public/octatrack-modules/vector/0.2.5-experimental.mwrm deleted file mode 100644 index 8a674e559..000000000 Binary files a/public/octatrack-modules/vector/0.2.5-experimental.mwrm and /dev/null differ diff --git a/public/octatrack-modules/vector/0.3.0-experimental.mwrm b/public/octatrack-modules/vector/0.3.0-experimental.mwrm new file mode 100644 index 000000000..be3bad634 Binary files /dev/null and b/public/octatrack-modules/vector/0.3.0-experimental.mwrm differ diff --git a/scripts/module-source.test.mjs b/scripts/module-source.test.mjs index 616b72cec..747ba6d01 100644 --- a/scripts/module-source.test.mjs +++ b/scripts/module-source.test.mjs @@ -27,7 +27,7 @@ describe('release package scope and reviewed source inventory', () => { expect(versions['midi-scenes']).toBe('0.2.5-experimental') expect(versions.miniverb).toBe('0.2.3-experimental') for (const id of verifiedRequested) { - expect(versions[id]).toBe(id === 'analog-bassdrum' ? '0.1.6-experimental' : id === 'vector' ? '0.2.5-experimental' : id === 'quantizer' ? '0.1.4-experimental' : id === 'synth' ? '0.1.2-experimental' : id === 'usb-audio-out-tracks-main-cue' ? '0.2.0-experimental' : '0.1.2-experimental') + expect(versions[id]).toBe(id === 'analog-bassdrum' ? '0.1.6-experimental' : id === 'vector' ? '0.3.0-experimental' : id === 'quantizer' ? '0.1.4-experimental' : id === 'synth' ? '0.1.2-experimental' : id === 'usb-audio-out-tracks-main-cue' ? '0.2.0-experimental' : '0.1.2-experimental') expect(paths).toContain('modules/' + id + '/manifest.py') } expect(paths).toContain('modules/midi-scenes/recipe.json') diff --git a/scripts/stock-copy-policy.mjs b/scripts/stock-copy-policy.mjs index 10f499072..1eead08ad 100644 --- a/scripts/stock-copy-policy.mjs +++ b/scripts/stock-copy-policy.mjs @@ -2,8 +2,9 @@ // Which stock copies a requested card package may carry (scripts/import-module-build.mjs). A copy is a zero // placeholder the builder fills from the user's verified OS at build time, matched by address, length and SHA-256, // so no stock byte is in the package. Two kinds are admitted: -// - replay spans: the four of USB MIDI's descriptor package and of VECTOR's and POLY8's replaying units, each -// the guarded span of a detour of the same group (USB MIDI: its 23-byte descriptor); +// - replay spans: the four of USB MIDI's descriptor package and of VECTOR's and POLY8's replaying units (VECTOR's +// fifth: MIDI NOTE SETUP's drawer, its MIDI generator list on a card), each the guarded span of a detour of the +// same group (USB MIDI: its 23-byte descriptor); // - data copies: any other package's copies, each a guard its module's import record declares under stockGuards // with kind guarded-local-cpu-read, so a reviewer sees every span a module reads from the OS. @@ -15,7 +16,7 @@ export function checkRequestedStockCopies(pkg, group, guards = []) { const copies = pkg.stockCopies if (!Array.isArray(copies)) throw new Error('Invalid inherited stock placeholder inventory') if (REPLAY_LABELS.includes(pkg.label)) { - if (copies.length !== 4) throw new Error('Invalid inherited stock placeholder inventory') + if (copies.length !== (pkg.label === 'vector' ? 5 : 4)) throw new Error('Invalid inherited stock placeholder inventory') for (const copy of copies) { if (pkg.label === 'usbmidi_cfg') { if (copy.bytes !== 23) throw new Error('Invalid inherited USB descriptor length') diff --git a/scripts/stock-copy-policy.test.mjs b/scripts/stock-copy-policy.test.mjs index 57948037e..e2a0481df 100644 --- a/scripts/stock-copy-policy.test.mjs +++ b/scripts/stock-copy-policy.test.mjs @@ -17,6 +17,12 @@ describe('stock copies a requested card package may carry', () => { it('refuses a replaying package without exactly four copies', () => { expect(() => checkRequestedStockCopies({ label: 'vector', stockCopies: replay(3) }, detours)).toThrow('Invalid inherited stock placeholder inventory') }) + it("accepts VECTOR's fifth replay span (its MIDI generator list on a card) and no other package's", () => { + const five = { detours: [0, 1, 2, 3, 4].map(i => ({ address: 0x40001000 + 16 * i, guardLength: 6, guardSha256: A })) } + expect(() => checkRequestedStockCopies({ label: 'vector', stockCopies: replay(5) }, five)).not.toThrow() + expect(() => checkRequestedStockCopies({ label: 'vector', stockCopies: replay(4) }, five)).toThrow('Invalid inherited stock placeholder inventory') + expect(() => checkRequestedStockCopies({ label: 'polyui', stockCopies: replay(5) }, five)).toThrow('Invalid inherited stock placeholder inventory') + }) it('refuses a replay span that differs from its detour guard', () => { const copies = replay(); copies[2] = copy(copies[2].source, 6, B, 16) expect(() => checkRequestedStockCopies({ label: 'polyui', stockCopies: copies }, detours)).toThrow('Inherited replay span must match its declared native detour guard') diff --git a/sdk/catalog.json b/sdk/catalog.json index 22e8c10c7..4e612bf40 100644 --- a/sdk/catalog.json +++ b/sdk/catalog.json @@ -109,7 +109,7 @@ }, { "id": "vector", - "version": "0.2.5-experimental", + "version": "0.3.0-experimental", "addedAt": "2026-10-06T08:02:00Z" }, { diff --git a/sdk/machines/octatrack/module-adapters/machine-ports.json b/sdk/machines/octatrack/module-adapters/machine-ports.json index c200c7af9..a2e08831a 100644 --- a/sdk/machines/octatrack/module-adapters/machine-ports.json +++ b/sdk/machines/octatrack/module-adapters/machine-ports.json @@ -151,8 +151,8 @@ }, "vector": { "sources": { - "sdk/octabam/modules/vector/control.s": "c4f829e437ffbde1275c00827031b694a86011013d37269077e4696818323471", - "sdk/octabam/modules/vector/manifest.py": "4d921f24256038797a99671534885b0bb9a27eaa79261b11136cf0a95a75af21" + "sdk/octabam/modules/vector/control.s": "e12b5f82744d14a5511a605fabc5ff0624387084164c59143f9ddccec1f207dd", + "sdk/octabam/modules/vector/manifest.py": "b9dec167f8bd4f1b691069cc89834f6c2a6717b874eb28629ef5c8c026d3d976" }, "contribute": [ { @@ -218,7 +218,8 @@ "st_name_replay", "st_main_replay", "st_edit_replay", - "st_draw_replay" + "st_draw_replay", + "mg_stock_note_draw" ], "why": "VECTOR's st_* chooser hooks and their stock replays are unreachable in the package; its registry functions are the descriptor's, and its SRC SETUP page 2 (st_setup_page, st_setup_knob, which its card build's st_setup_draw6 and st_setup_edit6 call) the SETUP_PAGE record's" }, diff --git a/sdk/machines/octatrack/module-adapters/machine-recipes.json b/sdk/machines/octatrack/module-adapters/machine-recipes.json index 392f25576..7b68a54a8 100644 --- a/sdk/machines/octatrack/module-adapters/machine-recipes.json +++ b/sdk/machines/octatrack/module-adapters/machine-recipes.json @@ -6,7 +6,7 @@ "schema": 1, "imageSha256": "642d27796f5ee0100eed8477266a7aff77d8614b40da50b554218170a19d49c5", "sources": { - "sdk/machines/octatrack/module-adapters/machine-ports.json": "59a501e0350538b626bfd38c24236bc1f9d3620e62c1dcef38f84d72d5b76b3e", + "sdk/machines/octatrack/module-adapters/machine-ports.json": "fc41b5ec896e452dd1b8d8db4afd04d1acb1f00ffbf331be036786360de71528", "sdk/machines/octatrack/module-adapters/machine_ports.py": "bbb91f0c54c27043b54a9156cad01053531f2ef78fb13cc73e2b45f7fc7e8d6f", "sdk/octabam/modules/poly8/manifest.py": "f8759dbcbb246b247c195e61f0c0464fd0cdc0dd40b68dd8f74c03b46c584afc", "sdk/octabam/modules/poly8/polyphony.s": "c86a3a783c46ecdbb3b44341098f0c094c65b9a8d11716835c2d28c2d2d6ecee", @@ -57,7 +57,7 @@ "schema": 1, "imageSha256": "13047ca2595493c2389ad2265f39f8c04287f5c9021991197a5fded08faf75d0", "sources": { - "sdk/machines/octatrack/module-adapters/machine-ports.json": "59a501e0350538b626bfd38c24236bc1f9d3620e62c1dcef38f84d72d5b76b3e", + "sdk/machines/octatrack/module-adapters/machine-ports.json": "fc41b5ec896e452dd1b8d8db4afd04d1acb1f00ffbf331be036786360de71528", "sdk/machines/octatrack/module-adapters/machine_ports.py": "bbb91f0c54c27043b54a9156cad01053531f2ef78fb13cc73e2b45f7fc7e8d6f", "sdk/machines/octatrack/module-adapters/quantizer_runtime.py": "61425221199f37adf4be1e8b9c5bb1346067c8f56540a9a15047b400ed84a1aa", "sdk/octabam/modules/quantizer/manifest.py": "e0841437a471b000b448ce8417c8fd25cba1cf155aec488d08d2888f4c249394", @@ -121,7 +121,7 @@ "imageSha256": "11afe489011aa243c5bc579a824635f7d1334b17f0a21d554d897ceec3d3fb1a", "sources": { "sdk/machines/octatrack/module-adapters/fm_runtime.py": "ecf39c395bd8231d1dda340e1c6bc26e8473ba548cfa422f9a4ae4ff2bd6807e", - "sdk/machines/octatrack/module-adapters/machine-ports.json": "59a501e0350538b626bfd38c24236bc1f9d3620e62c1dcef38f84d72d5b76b3e", + "sdk/machines/octatrack/module-adapters/machine-ports.json": "fc41b5ec896e452dd1b8d8db4afd04d1acb1f00ffbf331be036786360de71528", "sdk/machines/octatrack/module-adapters/machine_ports.py": "bbb91f0c54c27043b54a9156cad01053531f2ef78fb13cc73e2b45f7fc7e8d6f", "sdk/octabam/modules/synth/machine.s": "de9d849bf0b6e5d5ad747df32ae5806e7f9516674a14ac74b1c15d73d30d280a", "sdk/octabam/modules/synth/manifest.py": "7854330aca001d2841de2fb384f0ca8adb7497db49dacc56da2815c1f444c0e6", @@ -408,67 +408,95 @@ }, "vector": { "schema": 1, - "imageSha256": "70187665697dd57baefc9b65480a564e7514c75bdbce9c3c6f5519d2953684ab", + "imageSha256": "33c2db1c6fd9e3d28d7bb5aa95119a36c354a5d2f060086927944cd58e42c974", "sources": { - "sdk/machines/octatrack/module-adapters/machine-ports.json": "59a501e0350538b626bfd38c24236bc1f9d3620e62c1dcef38f84d72d5b76b3e", + "sdk/machines/octatrack/module-adapters/machine-ports.json": "fc41b5ec896e452dd1b8d8db4afd04d1acb1f00ffbf331be036786360de71528", "sdk/machines/octatrack/module-adapters/machine_ports.py": "bbb91f0c54c27043b54a9156cad01053531f2ef78fb13cc73e2b45f7fc7e8d6f", - "sdk/machines/octatrack/module-adapters/vector_runtime.py": "e5e8351f4be954b1028a7b455a977c1460864c85ad10d781dfe4aef4876ad6e3", - "sdk/octabam/modules/vector/control.s": "c4f829e437ffbde1275c00827031b694a86011013d37269077e4696818323471", - "sdk/octabam/modules/vector/manifest.py": "4d921f24256038797a99671534885b0bb9a27eaa79261b11136cf0a95a75af21", + "sdk/machines/octatrack/module-adapters/vector_runtime.py": "25212235bdd5871fba2d2587ac215b2546a63bd1317b468c79c1582c27398eac", + "sdk/octabam/modules/vector/control.s": "e12b5f82744d14a5511a605fabc5ff0624387084164c59143f9ddccec1f207dd", + "sdk/octabam/modules/vector/manifest.py": "b9dec167f8bd4f1b691069cc89834f6c2a6717b874eb28629ef5c8c026d3d976", "sdk/runtime/loader/build.py": "5131901224dcd037c07f0233cadabd67eec2a952878bef5a92274dd3d6236c7d" }, "copies": [ { - "offset": 3410, + "offset": 34, + "length": 20, + "address": 1073802002, + "sha256": "4c14741dff5ce18a933b30875f7e3a0ac8d633db0096af8f7a7a31a88e1313b0", + "purpose": "vector: authored bytes coinciding with stock (strict scan), reconstructed from the identical bytes of the user's OS; review" + }, + { + "offset": 2230, + "length": 13, + "address": 1073808978, + "sha256": "b8d6267fd976a1257142c8ba1ef20d072cc8a79fa80af4e402ec2cf85ce747b6", + "purpose": "vector: authored bytes coinciding with stock (strict scan), reconstructed from the identical bytes of the user's OS; review" + }, + { + "offset": 5156, "length": 14, "address": 1074149512, "sha256": "079db88a4b98775059e3e9b221b27a5436dfe7bfaaa30ec1d8a805faea0e9fd6", "purpose": "vector: authored bytes coinciding with stock (strict scan), reconstructed from the identical bytes of the user's OS; review" }, { - "offset": 5602, + "offset": 8256, + "length": 15, + "address": 1073934426, + "sha256": "532ccfdbeda1f24a92dff3bff914f0c178f143a4ba52c4c6f82a50696eabf852", + "purpose": "vector: authored bytes coinciding with stock (strict scan), reconstructed from the identical bytes of the user's OS; review" + }, + { + "offset": 8724, + "length": 15, + "address": 1073934426, + "sha256": "532ccfdbeda1f24a92dff3bff914f0c178f143a4ba52c4c6f82a50696eabf852", + "purpose": "vector: authored bytes coinciding with stock (strict scan), reconstructed from the identical bytes of the user's OS; review" + }, + { + "offset": 10220, "length": 14, "address": 1074073374, "sha256": "5f460b9d4661db855641f1e3d7cb71cf2c6b0a6e8ad754886d283c9f1a3c5299", "purpose": "vector: authored bytes coinciding with stock (strict scan), reconstructed from the identical bytes of the user's OS; review" }, { - "offset": 7166, + "offset": 11868, "length": 12, "address": 1073882466, "sha256": "f6838b012beac6d6395527d401c6eabefbded04cd643d14afbf356781cb4aeb6", "purpose": "vector: authored bytes coinciding with stock (strict scan), reconstructed from the identical bytes of the user's OS; review" }, { - "offset": 10032, + "offset": 14734, "length": 14, "address": 1074237950, "sha256": "0939a4ca02b038ba72eec962b17c37d00c17ed240b08a4400cc3d071c8ebbe31", "purpose": "vector: authored bytes coinciding with stock (strict scan), reconstructed from the identical bytes of the user's OS; review" }, { - "offset": 11262, - "length": 14, - "address": 1074235542, - "sha256": "4be6e9d8ab86bfb63e91b242f2d2824f061a003fabd5eeea29fc4f33af158a54", + "offset": 16364, + "length": 16, + "address": 1074178428, + "sha256": "44d6e7638702c28959b44309e5f7c04a2d9dbd313666960cc1fa9036d028678c", "purpose": "vector: authored bytes coinciding with stock (strict scan), reconstructed from the identical bytes of the user's OS; review" }, { - "offset": 11484, - "length": 20, - "address": 1073802002, - "sha256": "4c14741dff5ce18a933b30875f7e3a0ac8d633db0096af8f7a7a31a88e1313b0", + "offset": 16432, + "length": 16, + "address": 1074178428, + "sha256": "44d6e7638702c28959b44309e5f7c04a2d9dbd313666960cc1fa9036d028678c", "purpose": "vector: authored bytes coinciding with stock (strict scan), reconstructed from the identical bytes of the user's OS; review" }, { - "offset": 12200, + "offset": 21492, "length": 20, "address": 1074428104, "sha256": "96966986164a24f9ca5be84cca807a016a828da2bcc3167b831be52acad2a9a7", "purpose": "vector: authored bytes coinciding with stock (strict scan), reconstructed from the identical bytes of the user's OS; review" }, { - "offset": 12574, + "offset": 21866, "length": 12, "address": 1074100132, "sha256": "fa4871f504c0f71c15f06b76536f127ec74d257852ce50a1b9f16b3d14e8688c", @@ -483,7 +511,7 @@ "sources": { "sdk/machines/octatrack/module-adapters/analog_bd_runtime.py": "b9c0e0f96632a0d0ab5283387edaae1b604e4e82e27e26b3fdc1666867d31daf", "sdk/machines/octatrack/module-adapters/analog_bd_write_lease.py": "3e6a3766f32176e9be69627ef2b71272970f2d02a2088e77673946b640d365c7", - "sdk/machines/octatrack/module-adapters/machine-ports.json": "59a501e0350538b626bfd38c24236bc1f9d3620e62c1dcef38f84d72d5b76b3e", + "sdk/machines/octatrack/module-adapters/machine-ports.json": "fc41b5ec896e452dd1b8d8db4afd04d1acb1f00ffbf331be036786360de71528", "sdk/machines/octatrack/module-adapters/machine_ports.py": "bbb91f0c54c27043b54a9156cad01053531f2ef78fb13cc73e2b45f7fc7e8d6f", "sdk/machines/octatrack/module-adapters/stock_hook_write_lease.h": "ab14679a5faae84ef47d1ca37e46b3171da45252d12310e0b4458228be8334be", "sdk/octabam/modules/analog-bassdrum/control.s": "463dacf528e4996c7f21e97533391583329a2e3aabda95c87b7cd020dee7adb6", diff --git a/sdk/machines/octatrack/module-adapters/machine_composition_tests.py b/sdk/machines/octatrack/module-adapters/machine_composition_tests.py index 91caf30bc..d5ea444ba 100644 --- a/sdk/machines/octatrack/module-adapters/machine_composition_tests.py +++ b/sdk/machines/octatrack/module-adapters/machine_composition_tests.py @@ -159,7 +159,7 @@ def test_pair_has_one_owner_without_hidden_poly_or_unrelated_dedup(self): claims += [(r.addr, r.addr + 4, m.name) for r in m.symbol_refs] claims += [(p.addr, p.addr + len(p.write), m.name) for p in m.pokes] claims += [(addr, addr + 4, m.name) for table in m.tables for addr, _ in table.refs] - self.assertEqual(len(claims), 96) + self.assertEqual(len(claims), 100) # VECTOR 0.3.0 adds its four MIDI generator detours for previous, current in zip(sorted(claims), sorted(claims)[1:]): self.assertLessEqual(previous[1], current[0], (previous, current)) self.assertEqual(sum(r.symbol == 'mr_pb_table' for r in bridge.symbol_refs), 5) diff --git a/sdk/machines/octatrack/module-adapters/standalone-recipes.json b/sdk/machines/octatrack/module-adapters/standalone-recipes.json index d7ae0e1a5..236a92339 100644 --- a/sdk/machines/octatrack/module-adapters/standalone-recipes.json +++ b/sdk/machines/octatrack/module-adapters/standalone-recipes.json @@ -1,563 +1,563 @@ { - "schema": 1, - "ports": { - "playmodes": { - "schema": 1, - "imageSha256": "8791721bb6f20898600bba88e600ad8710531c2a35db41a8299516dbc99f63b4", - "sources": { - "sdk/octabam/modules/playmodes/hooks.s": "55899e51737e76e9da1886353cc2330beb0f5b499e96c70fdd621172337332a3", - "sdk/octabam/modules/playmodes/manifest.py": "d1fc7d07762faa32c9fdc782b1b4fdcc527d2d2aba4530df69f013a0a4c4a4b8", - "sdk/octabam/modules/playmodes/generate.py": "b4d9cb0b38d5a946c53e4ccbf629c0cf16f59047f6a95360464acb89d6bf52a5", - "sdk/octabam/modules/playmodes/playmodes.s": "34a2464faadfd583c4fd9c773cfefd6e77c8125c291016a9b90942a2bb91f001", - "sdk/octabam/modules/playmodes/test_playmode.c": "25857c24842be4797e6a3b584c991a04329691591baf3f70a2944f69012187b4", - "sdk/octabam/modules/playmodes/test_adapter.c": "6765da074aa8f293081a3b2c824f81a589a7d4629e4c682c646ceb66a0804eb9", - "sdk/octabam/modules/playmodes/octamod.module.json": "2b8bb40bd95b908e4ca3a5d02fa642a33e2e7ccab71173cb54ba316dbc896e0e", - "sdk/octabam/modules/playmodes/playmode.c": "3c414a2eb48d3c198c369ee8924ed6608a0b55cf4fa03f57e424184f8485968e", - "sdk/octabam/modules/playmodes/verify.py": "377cc8d573ac98b1d9ec430b05f9d488bc8a37b8841cf6d9fbb64badafbf15ca", - "sdk/octabam/modules/playmodes/adapter.c": "b8786b2bfbfa9ed8f8b87ba0bdd98fbf4ed6cc0f16da8811e5cdfa3aa442fe9f", - "sdk/octabam/modules/playmodes/playmode.h": "1ba24397d193a3ca0ad4ed43652d19eef6ad7b0049bc26eb1265a21c69950ccc", - "sdk/octabam/modules/playmodes/evidence/performance.json": "8ecca1d6a7b6bebf49d306768f1d2e145e18d46bcfb8ae5044f47eb87030d1bd", - "sdk/octabam/modules/playmodes/media/capture.json": "98be9c2b0fe1e899be7d8c76d2e384e75d0cba9324975aee74c93f1675fc8eff", - "sdk/octabam/tools/remix/platform_build.py": "e72b7a29b45851addecf135ad520db98b66f5e10c5cd354adf37fb52d6c2e42f", - "sdk/octabam/tools/remix/machine_composition.py": "6be0efdccc78a4fd1fafdba0cf39fcdb9cf510e72bd26aa22e7cdfe06d857783", - "sdk/octabam/tools/remix/stock_guard.py": "b05e115afaa11d1507273bdcd26e05c25e7a6424d3e0fb4eb21d797194e508b3", - "sdk/octabam/tools/remix/index.py": "29a0090afb78aa6f5142aa1e862c8563badeb9ff0c78c03a458d5b2ad6e6104c", - "sdk/octabam/tools/remix/registry.py": "f3b2fbfb90b97db33e360603ccf3eb0a703913dddaad78c681b9676287ee23e5", - "sdk/octabam/tools/remix/keep.py": "18e1f485900768bd896507da4f6669199bc52466e7af7a1102d7d9a2bc03d305", - "sdk/octabam/tools/remix/geom.py": "6bf3e107cd45c1213f0c071ae65c2ab0b9037241b0d2b974813757f0e08d2997", - "sdk/octabam/tools/remix/ledger.py": "73407d159a965671da2255aef5864bd0c745dfa2a600575918f48c40fc170f83", - "sdk/octabam/tools/remix/__init__.py": "c925cdb1d084a4e2bd02f8f13e87204bff38ff4c40087ec86a8f2fe1395f83f9", - "sdk/octabam/tools/remix/rig.py": "975ee01f9e925c0170602db2e9bd0427bc9e3fc5a5b2d85a8829a701b2d20691", - "sdk/octabam/tools/remix/stock.py": "11a41e3176719776712e4aa719bdeab6a319bd04186aa9b954063392d8be919f", - "sdk/octabam/tools/remix/audition.py": "98cae0606138b98878d9d1b18fd4ecd541e99332beeec0c7b4c7b0fb5b6dfd43", - "sdk/octabam/tools/remix/runtime_build.py": "27d2d73d56716f7088f174364f057e0c041f29741885d7cfbb7d91e49cc8b6ba", - "sdk/octabam/tools/remix/selftest.py": "78f46022e4537eccf204e2bc3a3fdb683fd86c6cf0ee87f78ae5fe804cb17853", - "sdk/octabam/tools/remix/dsp_ranges.py": "085aca1208a672c91e8db2ea620a5a17eaa2b577f16f074ecb89fdf2bc23c300", - "sdk/octabam/tools/remix/detour_guard.py": "0235a68c70127e72815be0ef65e3dbba7655b46fb027b77cf3b82a6f7111145c", - "sdk/octabam/tools/remix/app.py": "33b2bf8374192241c9e2cdb0667d9ac52c66cde6be0cb9afd3e0b96c78e51fd1", - "sdk/octabam/tools/remix/grains.py": "d7e39aac08497b56679d68155f234b374d08b326356bc5e4ccd3030128a246a2", - "sdk/octabam/tools/remix/stock_copies.py": "c593de7f68d5df584eefcbd75a120bb1d72258646d3444a5a8db7e81a290e4b4", - "sdk/octabam/tools/remix/state.py": "acad0b6cac5c852acf7c5efefd59180457213a03ff707f219b34cebd2289042b", - "sdk/octabam/tools/remix/arena.py": "41c84bd9ab84873bf5f17adb42c4d895b679e0890fb79d120e61906b2f793d65", - "sdk/octabam/tools/remix/compile_cache.py": "74d7d08cdbad8ebf6e56d8be7041c9603197b6f7b089962d8fccd880bb592504", - "sdk/octabam/tools/remix/schema.py": "6843e02b1baf24572d77f9ecc9cac4c51644b48ca949d6eee6524408741b0fb3", - "sdk/runtime/loader/build.py": "5131901224dcd037c07f0233cadabd67eec2a952878bef5a92274dd3d6236c7d", - "sdk/machines/octatrack/module-adapters/standalone_runtime.py": "b2841ad6c500e3f4731221267d86d032c92dacfa604ce9e9ab85f36cb6489af3", - "sdk/machines/octatrack/module-adapters/stock_recipe.py": "662b79d9dc612845cf85e5051fa2d711cad4f98244194357fdaaabca092d5ca5", - "upstream/elekloader/link.py": "2d950474a5bd9d54e62747bfe7f9be30a37a7857df24cd9594e2198b912204f7", - "upstream/elekloader/dsp.py": "9486d64eecee023670b716f6ae854996da02ee7c1a0efd5361cd963c756dbc69", - "upstream/elekloader/patch.py": "13cc7457aa9a9e6d8f40cd5add4d40b69a3fcedd2cc5f3d65fd1b9841cc8bd9f", - "upstream/elekloader/elemod.py": "a14188eff1975df98660fa2c4efc310a9d8bc24fa042cd796e0ac680453df9cd", - "upstream/elekloader/mkmod.py": "716d1c6ded9c254b4e9081b0c4b3ec4ccfb7a9095b7978b253abcce921452718", - "upstream/elekloader/__init__.py": "0fa4969f9803f886b7ce0d82d151037670981f155f89328635e30ba77b99579d", - "upstream/elekloader/syx.py": "af8ccc0949b82135d9c591e0f983b50966c629037105305021b316f224e51deb", - "upstream/elekloader/formats.py": "4300d7f6b8692d80e68072e37af15c7706c7ef4b2b5ece646c552bc87e61ab29", - "upstream/elekloader/gui.py": "c4e5727bdc47da37baf6eb57126715e4fe5ae4e20c447f72ac2912fc51d3b543", - "upstream/elekloader/__main__.py": "726cc8870ca878c56aedd9519aad980a91fba0d889e55ed8fb5b5321a009f2a1", - "upstream/elekloader/elek.py": "5012a2a9edd4ce1a03062d333da36b47f72f241e4a26ce04885a905043e3080f", - "upstream/elekloader/lint.py": "468fc0cfd177b7646a0a4dc24f633775a8bc9a350f8c6bf0af8b29c12c762674", - "upstream/elekloader/isa/__init__.py": "df27c3c73735bf160a930231d5c138d848653d0820e870bb7544223afa3c6b7f", - "upstream/elekloader/isa/coldfire.py": "7936cd81549113d32781e5ae96f91e35c62d756ebfc509655cfa06dd00fa58df", - "upstream/elekloader/codec/transport.py": "b8ac543de1ff1e8c94c268256cc02ec02203145d4f5a1b4d87d50a4a34156d77", - "upstream/elekloader/codec/__init__.py": "df27c3c73735bf160a930231d5c138d848653d0820e870bb7544223afa3c6b7f", - "upstream/elekloader/codec/aplib.py": "26c86226e4ae07597012a869f97f90fd9506aed401a823506e6f8b8fc13456a1", - "upstream/elekloader/codec/elz.py": "bace6db7e69acc766c16cc0b4bc0ed9b33e53b91bfbc56e2c650b9c6417d65ec", - "upstream/elekloader/sdk/build.py": "81b6e5426a74f51d529a2c05207502bb25207b037b0e32329cdc1c70ca61c505", - "upstream/elekloader/sdk/octabam.py": "18cafc9e8d91917017a78330c22c3f51a2e0529abea7c292ffe8a364273802b4", - "upstream/elekloader/sdk/__init__.py": "365832fc180371d7cd356994a0e3bbd6892ac7de6b1c1f1c0b337a947c3fd148", - "upstream/elekloader/sdk/elf.py": "0b897766f03ffe8e15eaadc25935822b95f7a78fea65a1de132267680148f766", - "upstream/elekloader/devices/digitakt_mk2.py": "e074140afb03958610c9d018064ba0b840db6ec0e4974b67b87627445f3f40b5", - "upstream/elekloader/devices/digitone_mk1.py": "8f86b2384f2aae8b34fcee6036c3c347bf77c2d55dc24677649baa09a2e4adc0", - "upstream/elekloader/devices/__init__.py": "724ebe0ecf4d9447a5d66bba3c10b168f5abe5d2d8296b4447d3562b66141bec", - "upstream/elekloader/devices/octatrack.py": "110dbea9e71046994d4ae1f05638dbf6f8ab72388dca5ffc590e5e978ea38975", - "upstream/elekloader/devices/digitakt_mk1.py": "2126ee25bb30f98246a03e93e1766376ec975de751cf2c9b8e24f987e77fc022" - }, - "copies": [ - { - "offset": 3198, - "length": 15, - "address": 1073909732, - "sha256": "6f0382a91ff044f6a464025c1d7f03bad8b822cb49dbce8cda3ab60535f848c7", - "purpose": "Authored pm_per_track instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/playmodes/playmodes.s", - "lines": [ - 1271, - 1281 - ], - "symbol": "pm_per_track", - "method": "native-unit" - } - }, - { - "offset": 3530, - "length": 14, - "address": 1073882006, - "sha256": "eb5a0a000b0368e2a23847c4251da29f3f28ada9b50cf71ca177e11ae65d2aaf", - "purpose": "Authored pm_track_length instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/playmodes/playmodes.s", - "lines": [ - 1393, - 1402 - ], - "symbol": "pm_track_length", - "method": "native-unit" - } - }, - { - "offset": 6008, - "length": 13, - "address": 1073972194, - "sha256": "db509240d0b12958fad1adbe414340a8580949e5116ed3ceecac4e3b5cc6c005", - "purpose": "Authored pm_key_updown instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/playmodes/playmodes.s", - "lines": [ - 2226, - 2234 - ], - "symbol": "pm_key_updown", - "method": "native-unit" - } - }, - { - "offset": 7138, - "length": 12, - "address": 1074056994, - "sha256": "1c5975330c0ddc7a32f1d70c5735118826981c8a68a7bf3397c92d094e0e5385", - "purpose": "Authored pm_key_entry instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/playmodes/playmodes.s", - "lines": [ - 2712, - 2714 - ], - "symbol": "pm_key_entry", - "method": "native-unit" - } - }, - { - "offset": 7605, - "length": 13, - "address": 1074305305, - "sha256": "55eada7b38d544499ed47966c271580737bf1f50409d06e8c38d4289f836929f", - "purpose": "Authored pm_proj_write instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/playmodes/playmodes.s", - "lines": [ - 2950, - 2953 - ], - "symbol": "pm_proj_write", - "method": "native-unit" - } - } + "schema": 1, + "ports": { + "playmodes": { + "schema": 1, + "imageSha256": "8791721bb6f20898600bba88e600ad8710531c2a35db41a8299516dbc99f63b4", + "sources": { + "sdk/octabam/modules/playmodes/hooks.s": "55899e51737e76e9da1886353cc2330beb0f5b499e96c70fdd621172337332a3", + "sdk/octabam/modules/playmodes/manifest.py": "d1fc7d07762faa32c9fdc782b1b4fdcc527d2d2aba4530df69f013a0a4c4a4b8", + "sdk/octabam/modules/playmodes/generate.py": "b4d9cb0b38d5a946c53e4ccbf629c0cf16f59047f6a95360464acb89d6bf52a5", + "sdk/octabam/modules/playmodes/playmodes.s": "34a2464faadfd583c4fd9c773cfefd6e77c8125c291016a9b90942a2bb91f001", + "sdk/octabam/modules/playmodes/test_playmode.c": "25857c24842be4797e6a3b584c991a04329691591baf3f70a2944f69012187b4", + "sdk/octabam/modules/playmodes/test_adapter.c": "6765da074aa8f293081a3b2c824f81a589a7d4629e4c682c646ceb66a0804eb9", + "sdk/octabam/modules/playmodes/octamod.module.json": "2b8bb40bd95b908e4ca3a5d02fa642a33e2e7ccab71173cb54ba316dbc896e0e", + "sdk/octabam/modules/playmodes/playmode.c": "3c414a2eb48d3c198c369ee8924ed6608a0b55cf4fa03f57e424184f8485968e", + "sdk/octabam/modules/playmodes/verify.py": "377cc8d573ac98b1d9ec430b05f9d488bc8a37b8841cf6d9fbb64badafbf15ca", + "sdk/octabam/modules/playmodes/adapter.c": "b8786b2bfbfa9ed8f8b87ba0bdd98fbf4ed6cc0f16da8811e5cdfa3aa442fe9f", + "sdk/octabam/modules/playmodes/playmode.h": "1ba24397d193a3ca0ad4ed43652d19eef6ad7b0049bc26eb1265a21c69950ccc", + "sdk/octabam/modules/playmodes/evidence/performance.json": "8ecca1d6a7b6bebf49d306768f1d2e145e18d46bcfb8ae5044f47eb87030d1bd", + "sdk/octabam/modules/playmodes/media/capture.json": "98be9c2b0fe1e899be7d8c76d2e384e75d0cba9324975aee74c93f1675fc8eff", + "sdk/octabam/tools/remix/platform_build.py": "e72b7a29b45851addecf135ad520db98b66f5e10c5cd354adf37fb52d6c2e42f", + "sdk/octabam/tools/remix/machine_composition.py": "6be0efdccc78a4fd1fafdba0cf39fcdb9cf510e72bd26aa22e7cdfe06d857783", + "sdk/octabam/tools/remix/stock_guard.py": "b05e115afaa11d1507273bdcd26e05c25e7a6424d3e0fb4eb21d797194e508b3", + "sdk/octabam/tools/remix/index.py": "29a0090afb78aa6f5142aa1e862c8563badeb9ff0c78c03a458d5b2ad6e6104c", + "sdk/octabam/tools/remix/registry.py": "f3b2fbfb90b97db33e360603ccf3eb0a703913dddaad78c681b9676287ee23e5", + "sdk/octabam/tools/remix/keep.py": "18e1f485900768bd896507da4f6669199bc52466e7af7a1102d7d9a2bc03d305", + "sdk/octabam/tools/remix/geom.py": "6bf3e107cd45c1213f0c071ae65c2ab0b9037241b0d2b974813757f0e08d2997", + "sdk/octabam/tools/remix/ledger.py": "73407d159a965671da2255aef5864bd0c745dfa2a600575918f48c40fc170f83", + "sdk/octabam/tools/remix/__init__.py": "c925cdb1d084a4e2bd02f8f13e87204bff38ff4c40087ec86a8f2fe1395f83f9", + "sdk/octabam/tools/remix/rig.py": "975ee01f9e925c0170602db2e9bd0427bc9e3fc5a5b2d85a8829a701b2d20691", + "sdk/octabam/tools/remix/stock.py": "11a41e3176719776712e4aa719bdeab6a319bd04186aa9b954063392d8be919f", + "sdk/octabam/tools/remix/audition.py": "98cae0606138b98878d9d1b18fd4ecd541e99332beeec0c7b4c7b0fb5b6dfd43", + "sdk/octabam/tools/remix/runtime_build.py": "27d2d73d56716f7088f174364f057e0c041f29741885d7cfbb7d91e49cc8b6ba", + "sdk/octabam/tools/remix/selftest.py": "78f46022e4537eccf204e2bc3a3fdb683fd86c6cf0ee87f78ae5fe804cb17853", + "sdk/octabam/tools/remix/dsp_ranges.py": "085aca1208a672c91e8db2ea620a5a17eaa2b577f16f074ecb89fdf2bc23c300", + "sdk/octabam/tools/remix/detour_guard.py": "0235a68c70127e72815be0ef65e3dbba7655b46fb027b77cf3b82a6f7111145c", + "sdk/octabam/tools/remix/app.py": "33b2bf8374192241c9e2cdb0667d9ac52c66cde6be0cb9afd3e0b96c78e51fd1", + "sdk/octabam/tools/remix/grains.py": "d7e39aac08497b56679d68155f234b374d08b326356bc5e4ccd3030128a246a2", + "sdk/octabam/tools/remix/stock_copies.py": "c593de7f68d5df584eefcbd75a120bb1d72258646d3444a5a8db7e81a290e4b4", + "sdk/octabam/tools/remix/state.py": "acad0b6cac5c852acf7c5efefd59180457213a03ff707f219b34cebd2289042b", + "sdk/octabam/tools/remix/arena.py": "41c84bd9ab84873bf5f17adb42c4d895b679e0890fb79d120e61906b2f793d65", + "sdk/octabam/tools/remix/compile_cache.py": "74d7d08cdbad8ebf6e56d8be7041c9603197b6f7b089962d8fccd880bb592504", + "sdk/octabam/tools/remix/schema.py": "6843e02b1baf24572d77f9ecc9cac4c51644b48ca949d6eee6524408741b0fb3", + "sdk/runtime/loader/build.py": "5131901224dcd037c07f0233cadabd67eec2a952878bef5a92274dd3d6236c7d", + "sdk/machines/octatrack/module-adapters/standalone_runtime.py": "b2841ad6c500e3f4731221267d86d032c92dacfa604ce9e9ab85f36cb6489af3", + "sdk/machines/octatrack/module-adapters/stock_recipe.py": "662b79d9dc612845cf85e5051fa2d711cad4f98244194357fdaaabca092d5ca5", + "upstream/elekloader/link.py": "2d950474a5bd9d54e62747bfe7f9be30a37a7857df24cd9594e2198b912204f7", + "upstream/elekloader/dsp.py": "9486d64eecee023670b716f6ae854996da02ee7c1a0efd5361cd963c756dbc69", + "upstream/elekloader/patch.py": "13cc7457aa9a9e6d8f40cd5add4d40b69a3fcedd2cc5f3d65fd1b9841cc8bd9f", + "upstream/elekloader/elemod.py": "a14188eff1975df98660fa2c4efc310a9d8bc24fa042cd796e0ac680453df9cd", + "upstream/elekloader/mkmod.py": "716d1c6ded9c254b4e9081b0c4b3ec4ccfb7a9095b7978b253abcce921452718", + "upstream/elekloader/__init__.py": "0fa4969f9803f886b7ce0d82d151037670981f155f89328635e30ba77b99579d", + "upstream/elekloader/syx.py": "af8ccc0949b82135d9c591e0f983b50966c629037105305021b316f224e51deb", + "upstream/elekloader/formats.py": "4300d7f6b8692d80e68072e37af15c7706c7ef4b2b5ece646c552bc87e61ab29", + "upstream/elekloader/gui.py": "c4e5727bdc47da37baf6eb57126715e4fe5ae4e20c447f72ac2912fc51d3b543", + "upstream/elekloader/__main__.py": "726cc8870ca878c56aedd9519aad980a91fba0d889e55ed8fb5b5321a009f2a1", + "upstream/elekloader/elek.py": "5012a2a9edd4ce1a03062d333da36b47f72f241e4a26ce04885a905043e3080f", + "upstream/elekloader/lint.py": "468fc0cfd177b7646a0a4dc24f633775a8bc9a350f8c6bf0af8b29c12c762674", + "upstream/elekloader/isa/__init__.py": "df27c3c73735bf160a930231d5c138d848653d0820e870bb7544223afa3c6b7f", + "upstream/elekloader/isa/coldfire.py": "7936cd81549113d32781e5ae96f91e35c62d756ebfc509655cfa06dd00fa58df", + "upstream/elekloader/codec/transport.py": "b8ac543de1ff1e8c94c268256cc02ec02203145d4f5a1b4d87d50a4a34156d77", + "upstream/elekloader/codec/__init__.py": "df27c3c73735bf160a930231d5c138d848653d0820e870bb7544223afa3c6b7f", + "upstream/elekloader/codec/aplib.py": "26c86226e4ae07597012a869f97f90fd9506aed401a823506e6f8b8fc13456a1", + "upstream/elekloader/codec/elz.py": "bace6db7e69acc766c16cc0b4bc0ed9b33e53b91bfbc56e2c650b9c6417d65ec", + "upstream/elekloader/sdk/build.py": "81b6e5426a74f51d529a2c05207502bb25207b037b0e32329cdc1c70ca61c505", + "upstream/elekloader/sdk/octabam.py": "18cafc9e8d91917017a78330c22c3f51a2e0529abea7c292ffe8a364273802b4", + "upstream/elekloader/sdk/__init__.py": "365832fc180371d7cd356994a0e3bbd6892ac7de6b1c1f1c0b337a947c3fd148", + "upstream/elekloader/sdk/elf.py": "0b897766f03ffe8e15eaadc25935822b95f7a78fea65a1de132267680148f766", + "upstream/elekloader/devices/digitakt_mk2.py": "e074140afb03958610c9d018064ba0b840db6ec0e4974b67b87627445f3f40b5", + "upstream/elekloader/devices/digitone_mk1.py": "8f86b2384f2aae8b34fcee6036c3c347bf77c2d55dc24677649baa09a2e4adc0", + "upstream/elekloader/devices/__init__.py": "724ebe0ecf4d9447a5d66bba3c10b168f5abe5d2d8296b4447d3562b66141bec", + "upstream/elekloader/devices/octatrack.py": "110dbea9e71046994d4ae1f05638dbf6f8ab72388dca5ffc590e5e978ea38975", + "upstream/elekloader/devices/digitakt_mk1.py": "2126ee25bb30f98246a03e93e1766376ec975de751cf2c9b8e24f987e77fc022" + }, + "copies": [ + { + "offset": 3198, + "length": 15, + "address": 1073909732, + "sha256": "6f0382a91ff044f6a464025c1d7f03bad8b822cb49dbce8cda3ab60535f848c7", + "purpose": "Authored pm_per_track instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/playmodes/playmodes.s", + "lines": [ + 1271, + 1281 ], - "fills": [] + "symbol": "pm_per_track", + "method": "native-unit" + } }, - "tapeecho": { - "schema": 1, - "imageSha256": "def1bc39f8bc9e998cf49b7df6ab36725f42f460b1e73c079238ebc4c25caded", - "sources": { - "sdk/octabam/modules/tapeecho/cpu_hooks.s": "d1d959af91fbd0759191c5e244b4396613d18c057c8e65281d76cb67beb73e34", - "sdk/octabam/modules/tapeecho/cpu.c": "bbb50e96305a64f99d72045defa40d09ab3e8fc910e717d8122dd1f070de35a7", - "sdk/octabam/modules/tapeecho/time_fmt.s": "f50337532bbd802f67bb3c93d975405c2e386ec2a75bf525a814b9f9756f9d15", - "sdk/octabam/modules/tapeecho/cpu_tables.h": "1d2e3e062651f021ca94fd19339dde824bcf49c4d867da790c20957dd24db9b2", - "sdk/octabam/modules/tapeecho/manifest.py": "8444fc496776df2c719401f6967aba44a5922e15f0906268286663d012dd94b8", - "sdk/octabam/modules/tapeecho/octamod.module.json": "9784954380cba4ec5d5f9440eb188dd65ff885d09192ed534a117a1a5f761d58", - "sdk/octabam/modules/tapeecho/cpu_kernels.s": "1cb1d400cbf0f0b7a75dc0ea13f6afc70b56221f2d45f424f7f58fa79ce6347f", - "sdk/octabam/modules/tapeecho/cpu.s": "783901f817efc5496c9b6178367459cfae1fe036adfd2a5be3a89d62e37906b6", - "sdk/octabam/modules/tapeecho/cpu_passthrough.asm": "68ef0beaa213de43e116d2feb367b437ef8c73c7f7b1c07328fde2d72edb3fdc", - "sdk/octabam/modules/tapeecho/cpu.h": "d07d496a62b95f23f8c2cbd893a0125e8a67071e83bf2c642e14251e48e69ff3", - "sdk/octabam/modules/tapeecho/generate_tables.py": "3461b659e2f22d7da776eb87755610094a4a3e72609c875e82902a8da9a8a69c", - "sdk/octabam/modules/tapeecho/generate_cpu.py": "09477f59af29dc6b68458454f818ec999339f4f4eefadb979cc13236ce431353", - "sdk/octabam/modules/tapeecho/media/capture.json": "8e0627d47f074322917978cd4abf505d82d9b53ece8e8c2b1ad280b69cd2902b", - "sdk/octabam/tools/remix/platform_build.py": "e72b7a29b45851addecf135ad520db98b66f5e10c5cd354adf37fb52d6c2e42f", - "sdk/octabam/tools/remix/machine_composition.py": "6be0efdccc78a4fd1fafdba0cf39fcdb9cf510e72bd26aa22e7cdfe06d857783", - "sdk/octabam/tools/remix/stock_guard.py": "b05e115afaa11d1507273bdcd26e05c25e7a6424d3e0fb4eb21d797194e508b3", - "sdk/octabam/tools/remix/index.py": "29a0090afb78aa6f5142aa1e862c8563badeb9ff0c78c03a458d5b2ad6e6104c", - "sdk/octabam/tools/remix/registry.py": "f3b2fbfb90b97db33e360603ccf3eb0a703913dddaad78c681b9676287ee23e5", - "sdk/octabam/tools/remix/keep.py": "18e1f485900768bd896507da4f6669199bc52466e7af7a1102d7d9a2bc03d305", - "sdk/octabam/tools/remix/geom.py": "6bf3e107cd45c1213f0c071ae65c2ab0b9037241b0d2b974813757f0e08d2997", - "sdk/octabam/tools/remix/ledger.py": "73407d159a965671da2255aef5864bd0c745dfa2a600575918f48c40fc170f83", - "sdk/octabam/tools/remix/__init__.py": "c925cdb1d084a4e2bd02f8f13e87204bff38ff4c40087ec86a8f2fe1395f83f9", - "sdk/octabam/tools/remix/rig.py": "975ee01f9e925c0170602db2e9bd0427bc9e3fc5a5b2d85a8829a701b2d20691", - "sdk/octabam/tools/remix/stock.py": "11a41e3176719776712e4aa719bdeab6a319bd04186aa9b954063392d8be919f", - "sdk/octabam/tools/remix/audition.py": "98cae0606138b98878d9d1b18fd4ecd541e99332beeec0c7b4c7b0fb5b6dfd43", - "sdk/octabam/tools/remix/runtime_build.py": "27d2d73d56716f7088f174364f057e0c041f29741885d7cfbb7d91e49cc8b6ba", - "sdk/octabam/tools/remix/selftest.py": "78f46022e4537eccf204e2bc3a3fdb683fd86c6cf0ee87f78ae5fe804cb17853", - "sdk/octabam/tools/remix/dsp_ranges.py": "085aca1208a672c91e8db2ea620a5a17eaa2b577f16f074ecb89fdf2bc23c300", - "sdk/octabam/tools/remix/detour_guard.py": "0235a68c70127e72815be0ef65e3dbba7655b46fb027b77cf3b82a6f7111145c", - "sdk/octabam/tools/remix/app.py": "33b2bf8374192241c9e2cdb0667d9ac52c66cde6be0cb9afd3e0b96c78e51fd1", - "sdk/octabam/tools/remix/grains.py": "d7e39aac08497b56679d68155f234b374d08b326356bc5e4ccd3030128a246a2", - "sdk/octabam/tools/remix/stock_copies.py": "c593de7f68d5df584eefcbd75a120bb1d72258646d3444a5a8db7e81a290e4b4", - "sdk/octabam/tools/remix/state.py": "acad0b6cac5c852acf7c5efefd59180457213a03ff707f219b34cebd2289042b", - "sdk/octabam/tools/remix/arena.py": "41c84bd9ab84873bf5f17adb42c4d895b679e0890fb79d120e61906b2f793d65", - "sdk/octabam/tools/remix/compile_cache.py": "74d7d08cdbad8ebf6e56d8be7041c9603197b6f7b089962d8fccd880bb592504", - "sdk/octabam/tools/remix/schema.py": "6843e02b1baf24572d77f9ecc9cac4c51644b48ca949d6eee6524408741b0fb3", - "sdk/runtime/loader/build.py": "5131901224dcd037c07f0233cadabd67eec2a952878bef5a92274dd3d6236c7d", - "sdk/machines/octatrack/module-adapters/standalone_runtime.py": "3a7559a330ae4f031c7c47b7cb67f679cd7fb4e4f2aa69f2e3971940be4c46ae", - "sdk/machines/octatrack/module-adapters/stock_recipe.py": "662b79d9dc612845cf85e5051fa2d711cad4f98244194357fdaaabca092d5ca5", - "scripts/octatrack-module-page.mjs": "8faa5b3822f2de023a8cad593d863bea36ed9bbd4c6d3c48b77c02d5844b672c", - "src/engine/menu-formatters.ts": "c90fa33acb37429e8f9d1f17adc569931467f686990f07ab34e3a1130468a48f", - "src/engine/rom-package.ts": "08a8a7329e11f431561546c09379b92ebca26903bd9c4d7cd81e95ad675dc060", - "src/engine/coldfire-elf.ts": "319ca0d835d1b0c602c8f4b06990016d0ebfe246cedbfc596cea3cc7adfe3cd2", - "src/engine/module-build.ts": "dcd8397b8cecf6fab61debd9aa2f86f612da0ca6ccf363c79d56033bc170b993", - "src/catalog/modules.ts": "e268c6d42e4d5093ab943aed5cf2263a72e6d5e1a7ac0e72efc8a7ec6c62b89b", - "src/engine/assets/dsp-packages.json": "39c8b95b6c8909841038fe7e79929dd83e2014d203746284f344815dadbf798e", - "src/engine/assets/descriptor-recipes.json": "6ac6d53faa5e784efbbfca7024d84f4c44bdb2285fc9a61f2af16910671555ba", - "src/engine/assets/menu-recipes.json": "43d552429e5b8f20c785ab40e0d0218105ac0b55099aa405283870ab287a90de", - "src/engine/assets/rom-packages.json": "c0bd9cbf1d626de22b1996b9676c7640ca7c31932a26a1e554ec308882e93b51", - "upstream/elekloader/link.py": "5d31157ccbe62807ff9f05fd47e1e55b54be0475ab53565e6607a56566603ba8", - "upstream/elekloader/dsp.py": "9486d64eecee023670b716f6ae854996da02ee7c1a0efd5361cd963c756dbc69", - "upstream/elekloader/patch.py": "77c0a74bf4b0ff8c5525d4c4b1bc42af765314a4601c0510577817a7487d8666", - "upstream/elekloader/store.py": "1f20970b0da2a89a64847c337045f4d33b43038d670cf542f4ad03c01ada296d", - "upstream/elekloader/elemod.py": "7536f9bee1e16876662bee03b1d80f81ca705e36b12b9f8ae060e1f8ae873228", - "upstream/elekloader/mkmod.py": "716d1c6ded9c254b4e9081b0c4b3ec4ccfb7a9095b7978b253abcce921452718", - "upstream/elekloader/__init__.py": "eb28d2a32bf87b72fe4f792e55ce37f50c23042f573cf75275f6983731ed8779", - "upstream/elekloader/syx.py": "0ef9a2154ab2c100ab1cd7d09b48923916aa663c722418b8f6f4d500a56084f6", - "upstream/elekloader/formats.py": "715b0ca1c6bb96e41ab73338a6e625f33949d95599f58d94cd37e86ad0544b4e", - "upstream/elekloader/gui.py": "0d9b289bf72e6b7b23280fe099a92ee80c7007ca484a72fadc37147a4f9e8056", - "upstream/elekloader/__main__.py": "726cc8870ca878c56aedd9519aad980a91fba0d889e55ed8fb5b5321a009f2a1", - "upstream/elekloader/elek.py": "5012a2a9edd4ce1a03062d333da36b47f72f241e4a26ce04885a905043e3080f", - "upstream/elekloader/lint.py": "8eeb918e9c2d0d8a20ffa26df326834ddff2676090624a587c1902d3dee76e9c", - "upstream/elekloader/sdk/build.py": "a602ea4c24d80a653c2c6f6786399016503a5294674d942e97e7895983108592", - "upstream/elekloader/sdk/coresites.py": "27c1c90ca6a96e0b7b9e9eaeae2e5709a991967eaf7db5199af955e9fe0e8589", - "upstream/elekloader/sdk/bounties.py": "55170aa1cf763e3dd1d5cef7b86ccbf12e6ec4beebb7f709ac42469f9f8020cd", - "upstream/elekloader/sdk/octabam.py": "26103cf846bc7a3d038ae5f213bef614b35144293539e3721e31affc0e4eda7a", - "upstream/elekloader/sdk/__init__.py": "365832fc180371d7cd356994a0e3bbd6892ac7de6b1c1f1c0b337a947c3fd148", - "upstream/elekloader/sdk/elf.py": "0b897766f03ffe8e15eaadc25935822b95f7a78fea65a1de132267680148f766", - "upstream/elekloader/devices/digitakt_mk2.py": "e074140afb03958610c9d018064ba0b840db6ec0e4974b67b87627445f3f40b5", - "upstream/elekloader/devices/digitone_mk1.py": "ddd084da185af114eeda708634a56e6601bf1d365c43d750a69b5c959d1c1900", - "upstream/elekloader/devices/__init__.py": "8b350354c5b1e1e2ffc0bb4f3a446b9267d29c807163a84da9312aa31a888208", - "upstream/elekloader/devices/model_samples.py": "2d441ab41233a228cf98894bede7e745d48eb56d85ff3d4fabe5a3045ff61e47", - "upstream/elekloader/devices/analog_rytm_mk2.py": "07cae57bf241981c9aee8f1953ac69f0f24b9bfd9764910fc85fbc8c761a953b", - "upstream/elekloader/devices/model_cycles.py": "cfa5b27f1075669589f892f65c1bb55433a6cf12477076f4612b6531fdf37cb7", - "upstream/elekloader/devices/analog_four_mk2.py": "60effb1531138bceafc93d5a99fb574da51c381c39679c2b5b9f229070761102", - "upstream/elekloader/devices/octatrack.py": "6d062387e822a88f9629ba88667f031c5a933098d206377d2b18190ff87e346b", - "upstream/elekloader/devices/digitakt_mk1.py": "ce3df4e8b65f4d8c2265a2c0fb224ab28640b139ffcf8c98731b9561b0aae07b", - "sdk/firmware_codec/__init__.py": "0864c063d8c45793479098c425dbd4ec34b7d14acf781c1eaa8f65805e5016ca", - "sdk/firmware_codec/aplib.py": "b1c6473b3bc81cfa4301f599693e7959c78fa0b033ba8c3d31f560fcc41e4d2a", - "sdk/firmware_codec/coldfire.py": "c3b3736273ced01afd89cd75dd7ba78f6a3b0e0800971173bbc16e89bf1f56be", - "sdk/firmware_codec/elz.py": "417eb28fbadcfdfb4f4efa56a7c88d7f4d248953f668fb308f56796acb37049f", - "sdk/firmware_codec/transport.py": "30f1b71c28cf4c57fdbe38c0e535465cc2f29503ef348888a68940f93f070ae5" - }, - "copies": [ - { - "offset": 676, - "length": 16, - "address": 1073984446, - "sha256": "2208dade979a9235783eacb36cdde6fac1f68a1c1e97629678e6ef71eaa7643b", - "purpose": "Authored free instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/tapeecho/time_fmt.s", - "lines": [ - 46, - 49 - ], - "symbol": "free", - "method": "native-formatter" - } - }, - { - "offset": 3076, - "length": 18, - "address": 1073753950, - "sha256": "1e998d15e30ac012a8b3cd88d4588e8f85d7921a2850b0551b2259a84752a995", - "purpose": "Authored render_head instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/tapeecho/cpu.s", - "lines": [ - 915, - 919 - ], - "symbol": "render_head", - "method": "native-unit" - } - }, - { - "offset": 3100, - "length": 26, - "address": 1074366192, - "sha256": "90dc32b1ff6203f13faaba47d8a89d606c770746e69ea8010df241e1241fd9c5", - "purpose": "Authored render_head instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/tapeecho/cpu.s", - "lines": [ - 921, - 927 - ], - "symbol": "render_head", - "method": "native-unit" - } - }, - { - "offset": 3462, - "length": 19, - "address": 1074375602, - "sha256": "3fd2ea50644e110d89a47a30180101283abeae689e44d39c646c941fea217965", - "purpose": "Authored te_target instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/tapeecho/cpu.s", - "lines": [ - 1055, - 1060 - ], - "symbol": "te_target", - "method": "native-unit" - } - }, - { - "offset": 7462, - "length": 13, - "address": 1073973354, - "sha256": "2393ebbe40716982dc0fc11a30e3e53f13d60755b68dc8f156a4cf02ec77c2f2", - "purpose": "Authored te_filter_block instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/tapeecho/cpu.s", - "lines": [ - 27285, - 27332 - ], - "symbol": "te_filter_block", - "method": "native-unit" - } - }, - { - "offset": 8940, - "length": 8, - "address": 1073897668, - "sha256": "8937904adb028ee826e1da6e9593b99222dd3fb141bbaa852b54ef596f94054f", - "purpose": "Authored te_tape_block instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/tapeecho/cpu.s", - "lines": [ - 27523, - 27524 - ], - "symbol": "te_tape_block", - "method": "native-unit" - } - }, - { - "offset": 8948, - "length": 16, - "address": 1073745896, - "sha256": "324b9e08fe60e608cbdebbbd690d3efdac6a0fc7a2ec6b9756fc1f64e1ef5281", - "purpose": "Authored te_read_linear instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/tapeecho/cpu.s", - "lines": [ - 27525, - 27545 - ], - "symbol": "te_read_linear", - "method": "native-unit" - } - } + { + "offset": 3530, + "length": 14, + "address": 1073882006, + "sha256": "eb5a0a000b0368e2a23847c4251da29f3f28ada9b50cf71ca177e11ae65d2aaf", + "purpose": "Authored pm_track_length instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/playmodes/playmodes.s", + "lines": [ + 1393, + 1402 ], - "fills": [] + "symbol": "pm_track_length", + "method": "native-unit" + } }, - "euclid": { - "schema": 1, - "imageSha256": "5fc73790f3419521044aa8dab4bf08e44436a9d89797cf157777923cbf7e442b", - "sources": { - "sdk/octabam/modules/euclid/control.s": "5a7881df366f6c7ec83c9b1a7cfe8825aedbe8af933ecf155c156223c744c263", - "sdk/octabam/modules/euclid/control.h": "3b46d1ec81f83942c0303bbb146cbd3509cabd7e030c4ed1d6ff7304181bb7b2", - "sdk/octabam/modules/euclid/hooks.s": "597006c7fd73fc9956170f284deb47a2ddd13c8f20e7a9669ef51fa469f767d1", - "sdk/octabam/modules/euclid/manifest.py": "e43eac70260eda028417be31773b2cd3abf4bf60698ca5968704de3774d1f31a", - "sdk/octabam/modules/euclid/octamod.module.json": "fec0b22a202a1e4a7f51d1fcab5e056841a603d3ffe49a00156cb19d36357eac", - "sdk/octabam/modules/euclid/control.c": "bb49a94ac7d63eb9d33258c995026d6ad8ac1843dbe8be1c2f944a6a38bd8333", - "sdk/octabam/modules/euclid/generate_control.py": "64e711025c513d5c3c933dbecf73a95e1193bb9a7ab31a11ad28906246dbf6fd", - "sdk/octabam/modules/euclid/filter.asm": "b0fef9bfb99aabc67de2bd452feba6ae045603340b7d56405140d2afc3a0f35e", - "sdk/octabam/modules/euclid/media/audio-preview.json": "566a6c339eaffab1936a40826ef2a9fdb552c519b635d1bfacec955a8b817b00", - "sdk/octabam/modules/euclid/media/capture.json": "787927d11f68c1e148032d2098e1ce9486cae7d2bc293595cc2308d105c5dd75", - "sdk/octabam/tools/remix/platform_build.py": "e72b7a29b45851addecf135ad520db98b66f5e10c5cd354adf37fb52d6c2e42f", - "sdk/octabam/tools/remix/machine_composition.py": "6be0efdccc78a4fd1fafdba0cf39fcdb9cf510e72bd26aa22e7cdfe06d857783", - "sdk/octabam/tools/remix/stock_guard.py": "b05e115afaa11d1507273bdcd26e05c25e7a6424d3e0fb4eb21d797194e508b3", - "sdk/octabam/tools/remix/index.py": "29a0090afb78aa6f5142aa1e862c8563badeb9ff0c78c03a458d5b2ad6e6104c", - "sdk/octabam/tools/remix/registry.py": "f3b2fbfb90b97db33e360603ccf3eb0a703913dddaad78c681b9676287ee23e5", - "sdk/octabam/tools/remix/keep.py": "18e1f485900768bd896507da4f6669199bc52466e7af7a1102d7d9a2bc03d305", - "sdk/octabam/tools/remix/geom.py": "6bf3e107cd45c1213f0c071ae65c2ab0b9037241b0d2b974813757f0e08d2997", - "sdk/octabam/tools/remix/ledger.py": "73407d159a965671da2255aef5864bd0c745dfa2a600575918f48c40fc170f83", - "sdk/octabam/tools/remix/__init__.py": "c925cdb1d084a4e2bd02f8f13e87204bff38ff4c40087ec86a8f2fe1395f83f9", - "sdk/octabam/tools/remix/rig.py": "975ee01f9e925c0170602db2e9bd0427bc9e3fc5a5b2d85a8829a701b2d20691", - "sdk/octabam/tools/remix/stock.py": "11a41e3176719776712e4aa719bdeab6a319bd04186aa9b954063392d8be919f", - "sdk/octabam/tools/remix/audition.py": "98cae0606138b98878d9d1b18fd4ecd541e99332beeec0c7b4c7b0fb5b6dfd43", - "sdk/octabam/tools/remix/runtime_build.py": "27d2d73d56716f7088f174364f057e0c041f29741885d7cfbb7d91e49cc8b6ba", - "sdk/octabam/tools/remix/selftest.py": "78f46022e4537eccf204e2bc3a3fdb683fd86c6cf0ee87f78ae5fe804cb17853", - "sdk/octabam/tools/remix/dsp_ranges.py": "085aca1208a672c91e8db2ea620a5a17eaa2b577f16f074ecb89fdf2bc23c300", - "sdk/octabam/tools/remix/detour_guard.py": "0235a68c70127e72815be0ef65e3dbba7655b46fb027b77cf3b82a6f7111145c", - "sdk/octabam/tools/remix/app.py": "33b2bf8374192241c9e2cdb0667d9ac52c66cde6be0cb9afd3e0b96c78e51fd1", - "sdk/octabam/tools/remix/grains.py": "d7e39aac08497b56679d68155f234b374d08b326356bc5e4ccd3030128a246a2", - "sdk/octabam/tools/remix/stock_copies.py": "c593de7f68d5df584eefcbd75a120bb1d72258646d3444a5a8db7e81a290e4b4", - "sdk/octabam/tools/remix/state.py": "acad0b6cac5c852acf7c5efefd59180457213a03ff707f219b34cebd2289042b", - "sdk/octabam/tools/remix/arena.py": "41c84bd9ab84873bf5f17adb42c4d895b679e0890fb79d120e61906b2f793d65", - "sdk/octabam/tools/remix/compile_cache.py": "74d7d08cdbad8ebf6e56d8be7041c9603197b6f7b089962d8fccd880bb592504", - "sdk/octabam/tools/remix/schema.py": "6843e02b1baf24572d77f9ecc9cac4c51644b48ca949d6eee6524408741b0fb3", - "sdk/runtime/loader/build.py": "5131901224dcd037c07f0233cadabd67eec2a952878bef5a92274dd3d6236c7d", - "sdk/machines/octatrack/module-adapters/standalone_runtime.py": "3a7559a330ae4f031c7c47b7cb67f679cd7fb4e4f2aa69f2e3971940be4c46ae", - "sdk/machines/octatrack/module-adapters/stock_recipe.py": "662b79d9dc612845cf85e5051fa2d711cad4f98244194357fdaaabca092d5ca5", - "scripts/octatrack-module-page.mjs": "8faa5b3822f2de023a8cad593d863bea36ed9bbd4c6d3c48b77c02d5844b672c", - "src/engine/menu-formatters.ts": "c90fa33acb37429e8f9d1f17adc569931467f686990f07ab34e3a1130468a48f", - "src/engine/rom-package.ts": "08a8a7329e11f431561546c09379b92ebca26903bd9c4d7cd81e95ad675dc060", - "src/engine/coldfire-elf.ts": "319ca0d835d1b0c602c8f4b06990016d0ebfe246cedbfc596cea3cc7adfe3cd2", - "src/engine/module-build.ts": "dcd8397b8cecf6fab61debd9aa2f86f612da0ca6ccf363c79d56033bc170b993", - "src/catalog/modules.ts": "e268c6d42e4d5093ab943aed5cf2263a72e6d5e1a7ac0e72efc8a7ec6c62b89b", - "src/engine/assets/dsp-packages.json": "39c8b95b6c8909841038fe7e79929dd83e2014d203746284f344815dadbf798e", - "src/engine/assets/descriptor-recipes.json": "6ac6d53faa5e784efbbfca7024d84f4c44bdb2285fc9a61f2af16910671555ba", - "src/engine/assets/menu-recipes.json": "43d552429e5b8f20c785ab40e0d0218105ac0b55099aa405283870ab287a90de", - "src/engine/assets/rom-packages.json": "c0bd9cbf1d626de22b1996b9676c7640ca7c31932a26a1e554ec308882e93b51", - "upstream/elekloader/link.py": "5d31157ccbe62807ff9f05fd47e1e55b54be0475ab53565e6607a56566603ba8", - "upstream/elekloader/dsp.py": "9486d64eecee023670b716f6ae854996da02ee7c1a0efd5361cd963c756dbc69", - "upstream/elekloader/patch.py": "77c0a74bf4b0ff8c5525d4c4b1bc42af765314a4601c0510577817a7487d8666", - "upstream/elekloader/store.py": "1f20970b0da2a89a64847c337045f4d33b43038d670cf542f4ad03c01ada296d", - "upstream/elekloader/elemod.py": "7536f9bee1e16876662bee03b1d80f81ca705e36b12b9f8ae060e1f8ae873228", - "upstream/elekloader/mkmod.py": "716d1c6ded9c254b4e9081b0c4b3ec4ccfb7a9095b7978b253abcce921452718", - "upstream/elekloader/__init__.py": "eb28d2a32bf87b72fe4f792e55ce37f50c23042f573cf75275f6983731ed8779", - "upstream/elekloader/syx.py": "0ef9a2154ab2c100ab1cd7d09b48923916aa663c722418b8f6f4d500a56084f6", - "upstream/elekloader/formats.py": "715b0ca1c6bb96e41ab73338a6e625f33949d95599f58d94cd37e86ad0544b4e", - "upstream/elekloader/gui.py": "0d9b289bf72e6b7b23280fe099a92ee80c7007ca484a72fadc37147a4f9e8056", - "upstream/elekloader/__main__.py": "726cc8870ca878c56aedd9519aad980a91fba0d889e55ed8fb5b5321a009f2a1", - "upstream/elekloader/elek.py": "5012a2a9edd4ce1a03062d333da36b47f72f241e4a26ce04885a905043e3080f", - "upstream/elekloader/lint.py": "8eeb918e9c2d0d8a20ffa26df326834ddff2676090624a587c1902d3dee76e9c", - "upstream/elekloader/sdk/build.py": "a602ea4c24d80a653c2c6f6786399016503a5294674d942e97e7895983108592", - "upstream/elekloader/sdk/coresites.py": "27c1c90ca6a96e0b7b9e9eaeae2e5709a991967eaf7db5199af955e9fe0e8589", - "upstream/elekloader/sdk/bounties.py": "55170aa1cf763e3dd1d5cef7b86ccbf12e6ec4beebb7f709ac42469f9f8020cd", - "upstream/elekloader/sdk/octabam.py": "26103cf846bc7a3d038ae5f213bef614b35144293539e3721e31affc0e4eda7a", - "upstream/elekloader/sdk/__init__.py": "365832fc180371d7cd356994a0e3bbd6892ac7de6b1c1f1c0b337a947c3fd148", - "upstream/elekloader/sdk/elf.py": "0b897766f03ffe8e15eaadc25935822b95f7a78fea65a1de132267680148f766", - "upstream/elekloader/devices/digitakt_mk2.py": "e074140afb03958610c9d018064ba0b840db6ec0e4974b67b87627445f3f40b5", - "upstream/elekloader/devices/digitone_mk1.py": "ddd084da185af114eeda708634a56e6601bf1d365c43d750a69b5c959d1c1900", - "upstream/elekloader/devices/__init__.py": "8b350354c5b1e1e2ffc0bb4f3a446b9267d29c807163a84da9312aa31a888208", - "upstream/elekloader/devices/model_samples.py": "2d441ab41233a228cf98894bede7e745d48eb56d85ff3d4fabe5a3045ff61e47", - "upstream/elekloader/devices/analog_rytm_mk2.py": "07cae57bf241981c9aee8f1953ac69f0f24b9bfd9764910fc85fbc8c761a953b", - "upstream/elekloader/devices/model_cycles.py": "cfa5b27f1075669589f892f65c1bb55433a6cf12477076f4612b6531fdf37cb7", - "upstream/elekloader/devices/analog_four_mk2.py": "60effb1531138bceafc93d5a99fb574da51c381c39679c2b5b9f229070761102", - "upstream/elekloader/devices/octatrack.py": "6d062387e822a88f9629ba88667f031c5a933098d206377d2b18190ff87e346b", - "upstream/elekloader/devices/digitakt_mk1.py": "ce3df4e8b65f4d8c2265a2c0fb224ab28640b139ffcf8c98731b9561b0aae07b", - "sdk/firmware_codec/__init__.py": "0864c063d8c45793479098c425dbd4ec34b7d14acf781c1eaa8f65805e5016ca", - "sdk/firmware_codec/aplib.py": "b1c6473b3bc81cfa4301f599693e7959c78fa0b033ba8c3d31f560fcc41e4d2a", - "sdk/firmware_codec/coldfire.py": "c3b3736273ced01afd89cd75dd7ba78f6a3b0e0800971173bbc16e89bf1f56be", - "sdk/firmware_codec/elz.py": "417eb28fbadcfdfb4f4efa56a7c88d7f4d248953f668fb308f56796acb37049f", - "sdk/firmware_codec/transport.py": "30f1b71c28cf4c57fdbe38c0e535465cc2f29503ef348888a68940f93f070ae5" - }, - "copies": [ - { - "offset": 994, - "length": 19, - "address": 1074538000, - "sha256": "d79549e480eda591c8bac253ca51f45f0e46adc1a974a11f3adb6f1058e35401", - "purpose": "Independently authored select-offset table emitted by strings(labels); not an inherited stock DSP table. Labels and emitter are exact source inputs.", - "authored": { - "source": "src/engine/menu-formatters.ts", - "lines": [ - 15, - 23 - ], - "symbol": "strings(labels): select-offset table", - "method": "authored-emitter" - } - }, - { - "offset": 1040, - "length": 17, - "address": 1074538052, - "sha256": "7ea3e88a66234442987a9d7c00de9cab4f5b489a50479af84d3885801cc658b1", - "purpose": "Independently authored select-offset table emitted by strings(labels); not an inherited stock DSP table. Labels and emitter are exact source inputs.", - "authored": { - "source": "src/engine/menu-formatters.ts", - "lines": [ - 15, - 23 - ], - "symbol": "strings(labels): select-offset table", - "method": "authored-emitter" - } - }, - { - "offset": 1764, - "length": 17, - "address": 1074538068, - "sha256": "c9fcad68135e071d2f2c2951f1549b882182e14996c0a40b446c76dad30be07b", - "purpose": "Independently authored select-offset table emitted by strings(labels); not an inherited stock DSP table. Labels and emitter are exact source inputs.", - "authored": { - "source": "src/engine/menu-formatters.ts", - "lines": [ - 15, - 23 - ], - "symbol": "strings(labels): select-offset table", - "method": "authored-emitter" - } - }, - { - "offset": 2847, - "length": 15, - "address": 1073823235, - "sha256": "e55084d95cae82126a193bb40a29bf95ccea984da71239f0921d8aa462575562", - "purpose": "Authored eu_pulse instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/euclid/control.s", - "lines": [ - 102, - 108 - ], - "symbol": "eu_pulse", - "method": "native-unit" - } - }, - { - "offset": 2862, - "length": 3, - "address": 1073904372, - "sha256": "4922ffe36e9e6bbf37fa5b0cede482d9d358e9298688f88d3b254e5abe701a60", - "purpose": "Authored eu_process instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/euclid/control.s", - "lines": [ - 114, - 114 - ], - "symbol": "eu_process", - "method": "native-unit" - } - }, - { - "offset": 2865, - "length": 5, - "address": 1073919575, - "sha256": "9cb0f53f6c3b6e0e99c6c40d3cc83e87812a0a09c922b793da49eb0da7b9ca0d", - "purpose": "Authored eu_process instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/euclid/control.s", - "lines": [ - 114, - 115 - ], - "symbol": "eu_process", - "method": "native-unit" - } - }, - { - "offset": 5164, - "length": 18, - "address": 1074195396, - "sha256": "bf3b0da00e1f3fe9aff66ca39625cb7e811d034b6d64f60c698215414126d8ed", - "purpose": "Authored eu_publish_frame instruction span; reconstructed identically from guarded stock coincidence", - "authored": { - "source": "sdk/octabam/modules/euclid/control.s", - "lines": [ - 939, - 951 - ], - "symbol": "eu_publish_frame", - "method": "native-unit" - } - } + { + "offset": 6008, + "length": 13, + "address": 1073972194, + "sha256": "db509240d0b12958fad1adbe414340a8580949e5116ed3ceecac4e3b5cc6c005", + "purpose": "Authored pm_key_updown instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/playmodes/playmodes.s", + "lines": [ + 2226, + 2234 ], - "fills": [] + "symbol": "pm_key_updown", + "method": "native-unit" + } + }, + { + "offset": 7138, + "length": 12, + "address": 1074056994, + "sha256": "1c5975330c0ddc7a32f1d70c5735118826981c8a68a7bf3397c92d094e0e5385", + "purpose": "Authored pm_key_entry instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/playmodes/playmodes.s", + "lines": [ + 2712, + 2714 + ], + "symbol": "pm_key_entry", + "method": "native-unit" + } + }, + { + "offset": 7605, + "length": 13, + "address": 1074305305, + "sha256": "55eada7b38d544499ed47966c271580737bf1f50409d06e8c38d4289f836929f", + "purpose": "Authored pm_proj_write instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/playmodes/playmodes.s", + "lines": [ + 2950, + 2953 + ], + "symbol": "pm_proj_write", + "method": "native-unit" + } + } + ], + "fills": [] + }, + "tapeecho": { + "schema": 1, + "imageSha256": "def1bc39f8bc9e998cf49b7df6ab36725f42f460b1e73c079238ebc4c25caded", + "sources": { + "sdk/octabam/modules/tapeecho/cpu_hooks.s": "d1d959af91fbd0759191c5e244b4396613d18c057c8e65281d76cb67beb73e34", + "sdk/octabam/modules/tapeecho/cpu.c": "bbb50e96305a64f99d72045defa40d09ab3e8fc910e717d8122dd1f070de35a7", + "sdk/octabam/modules/tapeecho/time_fmt.s": "f50337532bbd802f67bb3c93d975405c2e386ec2a75bf525a814b9f9756f9d15", + "sdk/octabam/modules/tapeecho/cpu_tables.h": "1d2e3e062651f021ca94fd19339dde824bcf49c4d867da790c20957dd24db9b2", + "sdk/octabam/modules/tapeecho/manifest.py": "8444fc496776df2c719401f6967aba44a5922e15f0906268286663d012dd94b8", + "sdk/octabam/modules/tapeecho/octamod.module.json": "9784954380cba4ec5d5f9440eb188dd65ff885d09192ed534a117a1a5f761d58", + "sdk/octabam/modules/tapeecho/cpu_kernels.s": "1cb1d400cbf0f0b7a75dc0ea13f6afc70b56221f2d45f424f7f58fa79ce6347f", + "sdk/octabam/modules/tapeecho/cpu.s": "783901f817efc5496c9b6178367459cfae1fe036adfd2a5be3a89d62e37906b6", + "sdk/octabam/modules/tapeecho/cpu_passthrough.asm": "68ef0beaa213de43e116d2feb367b437ef8c73c7f7b1c07328fde2d72edb3fdc", + "sdk/octabam/modules/tapeecho/cpu.h": "d07d496a62b95f23f8c2cbd893a0125e8a67071e83bf2c642e14251e48e69ff3", + "sdk/octabam/modules/tapeecho/generate_tables.py": "3461b659e2f22d7da776eb87755610094a4a3e72609c875e82902a8da9a8a69c", + "sdk/octabam/modules/tapeecho/generate_cpu.py": "09477f59af29dc6b68458454f818ec999339f4f4eefadb979cc13236ce431353", + "sdk/octabam/modules/tapeecho/media/capture.json": "8e0627d47f074322917978cd4abf505d82d9b53ece8e8c2b1ad280b69cd2902b", + "sdk/octabam/tools/remix/platform_build.py": "e72b7a29b45851addecf135ad520db98b66f5e10c5cd354adf37fb52d6c2e42f", + "sdk/octabam/tools/remix/machine_composition.py": "6be0efdccc78a4fd1fafdba0cf39fcdb9cf510e72bd26aa22e7cdfe06d857783", + "sdk/octabam/tools/remix/stock_guard.py": "b05e115afaa11d1507273bdcd26e05c25e7a6424d3e0fb4eb21d797194e508b3", + "sdk/octabam/tools/remix/index.py": "29a0090afb78aa6f5142aa1e862c8563badeb9ff0c78c03a458d5b2ad6e6104c", + "sdk/octabam/tools/remix/registry.py": "f3b2fbfb90b97db33e360603ccf3eb0a703913dddaad78c681b9676287ee23e5", + "sdk/octabam/tools/remix/keep.py": "18e1f485900768bd896507da4f6669199bc52466e7af7a1102d7d9a2bc03d305", + "sdk/octabam/tools/remix/geom.py": "6bf3e107cd45c1213f0c071ae65c2ab0b9037241b0d2b974813757f0e08d2997", + "sdk/octabam/tools/remix/ledger.py": "73407d159a965671da2255aef5864bd0c745dfa2a600575918f48c40fc170f83", + "sdk/octabam/tools/remix/__init__.py": "c925cdb1d084a4e2bd02f8f13e87204bff38ff4c40087ec86a8f2fe1395f83f9", + "sdk/octabam/tools/remix/rig.py": "975ee01f9e925c0170602db2e9bd0427bc9e3fc5a5b2d85a8829a701b2d20691", + "sdk/octabam/tools/remix/stock.py": "11a41e3176719776712e4aa719bdeab6a319bd04186aa9b954063392d8be919f", + "sdk/octabam/tools/remix/audition.py": "98cae0606138b98878d9d1b18fd4ecd541e99332beeec0c7b4c7b0fb5b6dfd43", + "sdk/octabam/tools/remix/runtime_build.py": "27d2d73d56716f7088f174364f057e0c041f29741885d7cfbb7d91e49cc8b6ba", + "sdk/octabam/tools/remix/selftest.py": "78f46022e4537eccf204e2bc3a3fdb683fd86c6cf0ee87f78ae5fe804cb17853", + "sdk/octabam/tools/remix/dsp_ranges.py": "085aca1208a672c91e8db2ea620a5a17eaa2b577f16f074ecb89fdf2bc23c300", + "sdk/octabam/tools/remix/detour_guard.py": "0235a68c70127e72815be0ef65e3dbba7655b46fb027b77cf3b82a6f7111145c", + "sdk/octabam/tools/remix/app.py": "33b2bf8374192241c9e2cdb0667d9ac52c66cde6be0cb9afd3e0b96c78e51fd1", + "sdk/octabam/tools/remix/grains.py": "d7e39aac08497b56679d68155f234b374d08b326356bc5e4ccd3030128a246a2", + "sdk/octabam/tools/remix/stock_copies.py": "c593de7f68d5df584eefcbd75a120bb1d72258646d3444a5a8db7e81a290e4b4", + "sdk/octabam/tools/remix/state.py": "acad0b6cac5c852acf7c5efefd59180457213a03ff707f219b34cebd2289042b", + "sdk/octabam/tools/remix/arena.py": "41c84bd9ab84873bf5f17adb42c4d895b679e0890fb79d120e61906b2f793d65", + "sdk/octabam/tools/remix/compile_cache.py": "74d7d08cdbad8ebf6e56d8be7041c9603197b6f7b089962d8fccd880bb592504", + "sdk/octabam/tools/remix/schema.py": "6843e02b1baf24572d77f9ecc9cac4c51644b48ca949d6eee6524408741b0fb3", + "sdk/runtime/loader/build.py": "5131901224dcd037c07f0233cadabd67eec2a952878bef5a92274dd3d6236c7d", + "sdk/machines/octatrack/module-adapters/standalone_runtime.py": "3a7559a330ae4f031c7c47b7cb67f679cd7fb4e4f2aa69f2e3971940be4c46ae", + "sdk/machines/octatrack/module-adapters/stock_recipe.py": "662b79d9dc612845cf85e5051fa2d711cad4f98244194357fdaaabca092d5ca5", + "scripts/octatrack-module-page.mjs": "8faa5b3822f2de023a8cad593d863bea36ed9bbd4c6d3c48b77c02d5844b672c", + "src/engine/menu-formatters.ts": "c90fa33acb37429e8f9d1f17adc569931467f686990f07ab34e3a1130468a48f", + "src/engine/rom-package.ts": "08a8a7329e11f431561546c09379b92ebca26903bd9c4d7cd81e95ad675dc060", + "src/engine/coldfire-elf.ts": "319ca0d835d1b0c602c8f4b06990016d0ebfe246cedbfc596cea3cc7adfe3cd2", + "src/engine/module-build.ts": "dcd8397b8cecf6fab61debd9aa2f86f612da0ca6ccf363c79d56033bc170b993", + "src/catalog/modules.ts": "e268c6d42e4d5093ab943aed5cf2263a72e6d5e1a7ac0e72efc8a7ec6c62b89b", + "src/engine/assets/dsp-packages.json": "5c4079c9c3873bf56978c8ea8b9b0c7ebe834b80f472362ca949867b754820ac", + "src/engine/assets/descriptor-recipes.json": "e5e8ec50ed28f38ae072dba255469d5472934e399bafa8310e9fb56f9011b514", + "src/engine/assets/menu-recipes.json": "32faddf1856f4bec60bcb15b6d5f1fcf75ef70c8b7841ab4c2b78e1a3ab9e74e", + "src/engine/assets/rom-packages.json": "6a3354fac4379a8c2011716b4deb25425257b46e93c871e3a9914fab4cc91cd1", + "upstream/elekloader/link.py": "5d31157ccbe62807ff9f05fd47e1e55b54be0475ab53565e6607a56566603ba8", + "upstream/elekloader/dsp.py": "9486d64eecee023670b716f6ae854996da02ee7c1a0efd5361cd963c756dbc69", + "upstream/elekloader/patch.py": "77c0a74bf4b0ff8c5525d4c4b1bc42af765314a4601c0510577817a7487d8666", + "upstream/elekloader/store.py": "1f20970b0da2a89a64847c337045f4d33b43038d670cf542f4ad03c01ada296d", + "upstream/elekloader/elemod.py": "7536f9bee1e16876662bee03b1d80f81ca705e36b12b9f8ae060e1f8ae873228", + "upstream/elekloader/mkmod.py": "716d1c6ded9c254b4e9081b0c4b3ec4ccfb7a9095b7978b253abcce921452718", + "upstream/elekloader/__init__.py": "eb28d2a32bf87b72fe4f792e55ce37f50c23042f573cf75275f6983731ed8779", + "upstream/elekloader/syx.py": "0ef9a2154ab2c100ab1cd7d09b48923916aa663c722418b8f6f4d500a56084f6", + "upstream/elekloader/formats.py": "715b0ca1c6bb96e41ab73338a6e625f33949d95599f58d94cd37e86ad0544b4e", + "upstream/elekloader/gui.py": "0d9b289bf72e6b7b23280fe099a92ee80c7007ca484a72fadc37147a4f9e8056", + "upstream/elekloader/__main__.py": "726cc8870ca878c56aedd9519aad980a91fba0d889e55ed8fb5b5321a009f2a1", + "upstream/elekloader/elek.py": "5012a2a9edd4ce1a03062d333da36b47f72f241e4a26ce04885a905043e3080f", + "upstream/elekloader/lint.py": "8eeb918e9c2d0d8a20ffa26df326834ddff2676090624a587c1902d3dee76e9c", + "upstream/elekloader/sdk/build.py": "a602ea4c24d80a653c2c6f6786399016503a5294674d942e97e7895983108592", + "upstream/elekloader/sdk/coresites.py": "27c1c90ca6a96e0b7b9e9eaeae2e5709a991967eaf7db5199af955e9fe0e8589", + "upstream/elekloader/sdk/bounties.py": "55170aa1cf763e3dd1d5cef7b86ccbf12e6ec4beebb7f709ac42469f9f8020cd", + "upstream/elekloader/sdk/octabam.py": "26103cf846bc7a3d038ae5f213bef614b35144293539e3721e31affc0e4eda7a", + "upstream/elekloader/sdk/__init__.py": "365832fc180371d7cd356994a0e3bbd6892ac7de6b1c1f1c0b337a947c3fd148", + "upstream/elekloader/sdk/elf.py": "0b897766f03ffe8e15eaadc25935822b95f7a78fea65a1de132267680148f766", + "upstream/elekloader/devices/digitakt_mk2.py": "e074140afb03958610c9d018064ba0b840db6ec0e4974b67b87627445f3f40b5", + "upstream/elekloader/devices/digitone_mk1.py": "ddd084da185af114eeda708634a56e6601bf1d365c43d750a69b5c959d1c1900", + "upstream/elekloader/devices/__init__.py": "8b350354c5b1e1e2ffc0bb4f3a446b9267d29c807163a84da9312aa31a888208", + "upstream/elekloader/devices/model_samples.py": "2d441ab41233a228cf98894bede7e745d48eb56d85ff3d4fabe5a3045ff61e47", + "upstream/elekloader/devices/analog_rytm_mk2.py": "07cae57bf241981c9aee8f1953ac69f0f24b9bfd9764910fc85fbc8c761a953b", + "upstream/elekloader/devices/model_cycles.py": "cfa5b27f1075669589f892f65c1bb55433a6cf12477076f4612b6531fdf37cb7", + "upstream/elekloader/devices/analog_four_mk2.py": "60effb1531138bceafc93d5a99fb574da51c381c39679c2b5b9f229070761102", + "upstream/elekloader/devices/octatrack.py": "6d062387e822a88f9629ba88667f031c5a933098d206377d2b18190ff87e346b", + "upstream/elekloader/devices/digitakt_mk1.py": "ce3df4e8b65f4d8c2265a2c0fb224ab28640b139ffcf8c98731b9561b0aae07b", + "sdk/firmware_codec/__init__.py": "0864c063d8c45793479098c425dbd4ec34b7d14acf781c1eaa8f65805e5016ca", + "sdk/firmware_codec/aplib.py": "b1c6473b3bc81cfa4301f599693e7959c78fa0b033ba8c3d31f560fcc41e4d2a", + "sdk/firmware_codec/coldfire.py": "c3b3736273ced01afd89cd75dd7ba78f6a3b0e0800971173bbc16e89bf1f56be", + "sdk/firmware_codec/elz.py": "417eb28fbadcfdfb4f4efa56a7c88d7f4d248953f668fb308f56796acb37049f", + "sdk/firmware_codec/transport.py": "30f1b71c28cf4c57fdbe38c0e535465cc2f29503ef348888a68940f93f070ae5" + }, + "copies": [ + { + "offset": 676, + "length": 16, + "address": 1073984446, + "sha256": "2208dade979a9235783eacb36cdde6fac1f68a1c1e97629678e6ef71eaa7643b", + "purpose": "Authored free instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/tapeecho/time_fmt.s", + "lines": [ + 46, + 49 + ], + "symbol": "free", + "method": "native-formatter" + } + }, + { + "offset": 3076, + "length": 18, + "address": 1073753950, + "sha256": "1e998d15e30ac012a8b3cd88d4588e8f85d7921a2850b0551b2259a84752a995", + "purpose": "Authored render_head instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/tapeecho/cpu.s", + "lines": [ + 915, + 919 + ], + "symbol": "render_head", + "method": "native-unit" + } + }, + { + "offset": 3100, + "length": 26, + "address": 1074366192, + "sha256": "90dc32b1ff6203f13faaba47d8a89d606c770746e69ea8010df241e1241fd9c5", + "purpose": "Authored render_head instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/tapeecho/cpu.s", + "lines": [ + 921, + 927 + ], + "symbol": "render_head", + "method": "native-unit" + } + }, + { + "offset": 3462, + "length": 19, + "address": 1074375602, + "sha256": "3fd2ea50644e110d89a47a30180101283abeae689e44d39c646c941fea217965", + "purpose": "Authored te_target instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/tapeecho/cpu.s", + "lines": [ + 1055, + 1060 + ], + "symbol": "te_target", + "method": "native-unit" + } + }, + { + "offset": 7462, + "length": 13, + "address": 1073973354, + "sha256": "2393ebbe40716982dc0fc11a30e3e53f13d60755b68dc8f156a4cf02ec77c2f2", + "purpose": "Authored te_filter_block instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/tapeecho/cpu.s", + "lines": [ + 27285, + 27332 + ], + "symbol": "te_filter_block", + "method": "native-unit" + } + }, + { + "offset": 8940, + "length": 8, + "address": 1073897668, + "sha256": "8937904adb028ee826e1da6e9593b99222dd3fb141bbaa852b54ef596f94054f", + "purpose": "Authored te_tape_block instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/tapeecho/cpu.s", + "lines": [ + 27523, + 27524 + ], + "symbol": "te_tape_block", + "method": "native-unit" + } + }, + { + "offset": 8948, + "length": 16, + "address": 1073745896, + "sha256": "324b9e08fe60e608cbdebbbd690d3efdac6a0fc7a2ec6b9756fc1f64e1ef5281", + "purpose": "Authored te_read_linear instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/tapeecho/cpu.s", + "lines": [ + 27525, + 27545 + ], + "symbol": "te_read_linear", + "method": "native-unit" + } + } + ], + "fills": [] + }, + "euclid": { + "schema": 1, + "imageSha256": "5fc73790f3419521044aa8dab4bf08e44436a9d89797cf157777923cbf7e442b", + "sources": { + "sdk/octabam/modules/euclid/control.s": "5a7881df366f6c7ec83c9b1a7cfe8825aedbe8af933ecf155c156223c744c263", + "sdk/octabam/modules/euclid/control.h": "3b46d1ec81f83942c0303bbb146cbd3509cabd7e030c4ed1d6ff7304181bb7b2", + "sdk/octabam/modules/euclid/hooks.s": "597006c7fd73fc9956170f284deb47a2ddd13c8f20e7a9669ef51fa469f767d1", + "sdk/octabam/modules/euclid/manifest.py": "e43eac70260eda028417be31773b2cd3abf4bf60698ca5968704de3774d1f31a", + "sdk/octabam/modules/euclid/octamod.module.json": "fec0b22a202a1e4a7f51d1fcab5e056841a603d3ffe49a00156cb19d36357eac", + "sdk/octabam/modules/euclid/control.c": "bb49a94ac7d63eb9d33258c995026d6ad8ac1843dbe8be1c2f944a6a38bd8333", + "sdk/octabam/modules/euclid/generate_control.py": "64e711025c513d5c3c933dbecf73a95e1193bb9a7ab31a11ad28906246dbf6fd", + "sdk/octabam/modules/euclid/filter.asm": "b0fef9bfb99aabc67de2bd452feba6ae045603340b7d56405140d2afc3a0f35e", + "sdk/octabam/modules/euclid/media/audio-preview.json": "566a6c339eaffab1936a40826ef2a9fdb552c519b635d1bfacec955a8b817b00", + "sdk/octabam/modules/euclid/media/capture.json": "787927d11f68c1e148032d2098e1ce9486cae7d2bc293595cc2308d105c5dd75", + "sdk/octabam/tools/remix/platform_build.py": "e72b7a29b45851addecf135ad520db98b66f5e10c5cd354adf37fb52d6c2e42f", + "sdk/octabam/tools/remix/machine_composition.py": "6be0efdccc78a4fd1fafdba0cf39fcdb9cf510e72bd26aa22e7cdfe06d857783", + "sdk/octabam/tools/remix/stock_guard.py": "b05e115afaa11d1507273bdcd26e05c25e7a6424d3e0fb4eb21d797194e508b3", + "sdk/octabam/tools/remix/index.py": "29a0090afb78aa6f5142aa1e862c8563badeb9ff0c78c03a458d5b2ad6e6104c", + "sdk/octabam/tools/remix/registry.py": "f3b2fbfb90b97db33e360603ccf3eb0a703913dddaad78c681b9676287ee23e5", + "sdk/octabam/tools/remix/keep.py": "18e1f485900768bd896507da4f6669199bc52466e7af7a1102d7d9a2bc03d305", + "sdk/octabam/tools/remix/geom.py": "6bf3e107cd45c1213f0c071ae65c2ab0b9037241b0d2b974813757f0e08d2997", + "sdk/octabam/tools/remix/ledger.py": "73407d159a965671da2255aef5864bd0c745dfa2a600575918f48c40fc170f83", + "sdk/octabam/tools/remix/__init__.py": "c925cdb1d084a4e2bd02f8f13e87204bff38ff4c40087ec86a8f2fe1395f83f9", + "sdk/octabam/tools/remix/rig.py": "975ee01f9e925c0170602db2e9bd0427bc9e3fc5a5b2d85a8829a701b2d20691", + "sdk/octabam/tools/remix/stock.py": "11a41e3176719776712e4aa719bdeab6a319bd04186aa9b954063392d8be919f", + "sdk/octabam/tools/remix/audition.py": "98cae0606138b98878d9d1b18fd4ecd541e99332beeec0c7b4c7b0fb5b6dfd43", + "sdk/octabam/tools/remix/runtime_build.py": "27d2d73d56716f7088f174364f057e0c041f29741885d7cfbb7d91e49cc8b6ba", + "sdk/octabam/tools/remix/selftest.py": "78f46022e4537eccf204e2bc3a3fdb683fd86c6cf0ee87f78ae5fe804cb17853", + "sdk/octabam/tools/remix/dsp_ranges.py": "085aca1208a672c91e8db2ea620a5a17eaa2b577f16f074ecb89fdf2bc23c300", + "sdk/octabam/tools/remix/detour_guard.py": "0235a68c70127e72815be0ef65e3dbba7655b46fb027b77cf3b82a6f7111145c", + "sdk/octabam/tools/remix/app.py": "33b2bf8374192241c9e2cdb0667d9ac52c66cde6be0cb9afd3e0b96c78e51fd1", + "sdk/octabam/tools/remix/grains.py": "d7e39aac08497b56679d68155f234b374d08b326356bc5e4ccd3030128a246a2", + "sdk/octabam/tools/remix/stock_copies.py": "c593de7f68d5df584eefcbd75a120bb1d72258646d3444a5a8db7e81a290e4b4", + "sdk/octabam/tools/remix/state.py": "acad0b6cac5c852acf7c5efefd59180457213a03ff707f219b34cebd2289042b", + "sdk/octabam/tools/remix/arena.py": "41c84bd9ab84873bf5f17adb42c4d895b679e0890fb79d120e61906b2f793d65", + "sdk/octabam/tools/remix/compile_cache.py": "74d7d08cdbad8ebf6e56d8be7041c9603197b6f7b089962d8fccd880bb592504", + "sdk/octabam/tools/remix/schema.py": "6843e02b1baf24572d77f9ecc9cac4c51644b48ca949d6eee6524408741b0fb3", + "sdk/runtime/loader/build.py": "5131901224dcd037c07f0233cadabd67eec2a952878bef5a92274dd3d6236c7d", + "sdk/machines/octatrack/module-adapters/standalone_runtime.py": "3a7559a330ae4f031c7c47b7cb67f679cd7fb4e4f2aa69f2e3971940be4c46ae", + "sdk/machines/octatrack/module-adapters/stock_recipe.py": "662b79d9dc612845cf85e5051fa2d711cad4f98244194357fdaaabca092d5ca5", + "scripts/octatrack-module-page.mjs": "8faa5b3822f2de023a8cad593d863bea36ed9bbd4c6d3c48b77c02d5844b672c", + "src/engine/menu-formatters.ts": "c90fa33acb37429e8f9d1f17adc569931467f686990f07ab34e3a1130468a48f", + "src/engine/rom-package.ts": "08a8a7329e11f431561546c09379b92ebca26903bd9c4d7cd81e95ad675dc060", + "src/engine/coldfire-elf.ts": "319ca0d835d1b0c602c8f4b06990016d0ebfe246cedbfc596cea3cc7adfe3cd2", + "src/engine/module-build.ts": "dcd8397b8cecf6fab61debd9aa2f86f612da0ca6ccf363c79d56033bc170b993", + "src/catalog/modules.ts": "e268c6d42e4d5093ab943aed5cf2263a72e6d5e1a7ac0e72efc8a7ec6c62b89b", + "src/engine/assets/dsp-packages.json": "5c4079c9c3873bf56978c8ea8b9b0c7ebe834b80f472362ca949867b754820ac", + "src/engine/assets/descriptor-recipes.json": "e5e8ec50ed28f38ae072dba255469d5472934e399bafa8310e9fb56f9011b514", + "src/engine/assets/menu-recipes.json": "32faddf1856f4bec60bcb15b6d5f1fcf75ef70c8b7841ab4c2b78e1a3ab9e74e", + "src/engine/assets/rom-packages.json": "6a3354fac4379a8c2011716b4deb25425257b46e93c871e3a9914fab4cc91cd1", + "upstream/elekloader/link.py": "5d31157ccbe62807ff9f05fd47e1e55b54be0475ab53565e6607a56566603ba8", + "upstream/elekloader/dsp.py": "9486d64eecee023670b716f6ae854996da02ee7c1a0efd5361cd963c756dbc69", + "upstream/elekloader/patch.py": "77c0a74bf4b0ff8c5525d4c4b1bc42af765314a4601c0510577817a7487d8666", + "upstream/elekloader/store.py": "1f20970b0da2a89a64847c337045f4d33b43038d670cf542f4ad03c01ada296d", + "upstream/elekloader/elemod.py": "7536f9bee1e16876662bee03b1d80f81ca705e36b12b9f8ae060e1f8ae873228", + "upstream/elekloader/mkmod.py": "716d1c6ded9c254b4e9081b0c4b3ec4ccfb7a9095b7978b253abcce921452718", + "upstream/elekloader/__init__.py": "eb28d2a32bf87b72fe4f792e55ce37f50c23042f573cf75275f6983731ed8779", + "upstream/elekloader/syx.py": "0ef9a2154ab2c100ab1cd7d09b48923916aa663c722418b8f6f4d500a56084f6", + "upstream/elekloader/formats.py": "715b0ca1c6bb96e41ab73338a6e625f33949d95599f58d94cd37e86ad0544b4e", + "upstream/elekloader/gui.py": "0d9b289bf72e6b7b23280fe099a92ee80c7007ca484a72fadc37147a4f9e8056", + "upstream/elekloader/__main__.py": "726cc8870ca878c56aedd9519aad980a91fba0d889e55ed8fb5b5321a009f2a1", + "upstream/elekloader/elek.py": "5012a2a9edd4ce1a03062d333da36b47f72f241e4a26ce04885a905043e3080f", + "upstream/elekloader/lint.py": "8eeb918e9c2d0d8a20ffa26df326834ddff2676090624a587c1902d3dee76e9c", + "upstream/elekloader/sdk/build.py": "a602ea4c24d80a653c2c6f6786399016503a5294674d942e97e7895983108592", + "upstream/elekloader/sdk/coresites.py": "27c1c90ca6a96e0b7b9e9eaeae2e5709a991967eaf7db5199af955e9fe0e8589", + "upstream/elekloader/sdk/bounties.py": "55170aa1cf763e3dd1d5cef7b86ccbf12e6ec4beebb7f709ac42469f9f8020cd", + "upstream/elekloader/sdk/octabam.py": "26103cf846bc7a3d038ae5f213bef614b35144293539e3721e31affc0e4eda7a", + "upstream/elekloader/sdk/__init__.py": "365832fc180371d7cd356994a0e3bbd6892ac7de6b1c1f1c0b337a947c3fd148", + "upstream/elekloader/sdk/elf.py": "0b897766f03ffe8e15eaadc25935822b95f7a78fea65a1de132267680148f766", + "upstream/elekloader/devices/digitakt_mk2.py": "e074140afb03958610c9d018064ba0b840db6ec0e4974b67b87627445f3f40b5", + "upstream/elekloader/devices/digitone_mk1.py": "ddd084da185af114eeda708634a56e6601bf1d365c43d750a69b5c959d1c1900", + "upstream/elekloader/devices/__init__.py": "8b350354c5b1e1e2ffc0bb4f3a446b9267d29c807163a84da9312aa31a888208", + "upstream/elekloader/devices/model_samples.py": "2d441ab41233a228cf98894bede7e745d48eb56d85ff3d4fabe5a3045ff61e47", + "upstream/elekloader/devices/analog_rytm_mk2.py": "07cae57bf241981c9aee8f1953ac69f0f24b9bfd9764910fc85fbc8c761a953b", + "upstream/elekloader/devices/model_cycles.py": "cfa5b27f1075669589f892f65c1bb55433a6cf12477076f4612b6531fdf37cb7", + "upstream/elekloader/devices/analog_four_mk2.py": "60effb1531138bceafc93d5a99fb574da51c381c39679c2b5b9f229070761102", + "upstream/elekloader/devices/octatrack.py": "6d062387e822a88f9629ba88667f031c5a933098d206377d2b18190ff87e346b", + "upstream/elekloader/devices/digitakt_mk1.py": "ce3df4e8b65f4d8c2265a2c0fb224ab28640b139ffcf8c98731b9561b0aae07b", + "sdk/firmware_codec/__init__.py": "0864c063d8c45793479098c425dbd4ec34b7d14acf781c1eaa8f65805e5016ca", + "sdk/firmware_codec/aplib.py": "b1c6473b3bc81cfa4301f599693e7959c78fa0b033ba8c3d31f560fcc41e4d2a", + "sdk/firmware_codec/coldfire.py": "c3b3736273ced01afd89cd75dd7ba78f6a3b0e0800971173bbc16e89bf1f56be", + "sdk/firmware_codec/elz.py": "417eb28fbadcfdfb4f4efa56a7c88d7f4d248953f668fb308f56796acb37049f", + "sdk/firmware_codec/transport.py": "30f1b71c28cf4c57fdbe38c0e535465cc2f29503ef348888a68940f93f070ae5" + }, + "copies": [ + { + "offset": 994, + "length": 19, + "address": 1074538000, + "sha256": "d79549e480eda591c8bac253ca51f45f0e46adc1a974a11f3adb6f1058e35401", + "purpose": "Independently authored select-offset table emitted by strings(labels); not an inherited stock DSP table. Labels and emitter are exact source inputs.", + "authored": { + "source": "src/engine/menu-formatters.ts", + "lines": [ + 15, + 23 + ], + "symbol": "strings(labels): select-offset table", + "method": "authored-emitter" + } + }, + { + "offset": 1040, + "length": 17, + "address": 1074538052, + "sha256": "7ea3e88a66234442987a9d7c00de9cab4f5b489a50479af84d3885801cc658b1", + "purpose": "Independently authored select-offset table emitted by strings(labels); not an inherited stock DSP table. Labels and emitter are exact source inputs.", + "authored": { + "source": "src/engine/menu-formatters.ts", + "lines": [ + 15, + 23 + ], + "symbol": "strings(labels): select-offset table", + "method": "authored-emitter" + } + }, + { + "offset": 1764, + "length": 17, + "address": 1074538068, + "sha256": "c9fcad68135e071d2f2c2951f1549b882182e14996c0a40b446c76dad30be07b", + "purpose": "Independently authored select-offset table emitted by strings(labels); not an inherited stock DSP table. Labels and emitter are exact source inputs.", + "authored": { + "source": "src/engine/menu-formatters.ts", + "lines": [ + 15, + 23 + ], + "symbol": "strings(labels): select-offset table", + "method": "authored-emitter" + } + }, + { + "offset": 2847, + "length": 15, + "address": 1073823235, + "sha256": "e55084d95cae82126a193bb40a29bf95ccea984da71239f0921d8aa462575562", + "purpose": "Authored eu_pulse instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/euclid/control.s", + "lines": [ + 102, + 108 + ], + "symbol": "eu_pulse", + "method": "native-unit" + } + }, + { + "offset": 2862, + "length": 3, + "address": 1073904372, + "sha256": "4922ffe36e9e6bbf37fa5b0cede482d9d358e9298688f88d3b254e5abe701a60", + "purpose": "Authored eu_process instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/euclid/control.s", + "lines": [ + 114, + 114 + ], + "symbol": "eu_process", + "method": "native-unit" + } + }, + { + "offset": 2865, + "length": 5, + "address": 1073919575, + "sha256": "9cb0f53f6c3b6e0e99c6c40d3cc83e87812a0a09c922b793da49eb0da7b9ca0d", + "purpose": "Authored eu_process instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/euclid/control.s", + "lines": [ + 114, + 115 + ], + "symbol": "eu_process", + "method": "native-unit" + } + }, + { + "offset": 5164, + "length": 18, + "address": 1074195396, + "sha256": "bf3b0da00e1f3fe9aff66ca39625cb7e811d034b6d64f60c698215414126d8ed", + "purpose": "Authored eu_publish_frame instruction span; reconstructed identically from guarded stock coincidence", + "authored": { + "source": "sdk/octabam/modules/euclid/control.s", + "lines": [ + 939, + 951 + ], + "symbol": "eu_publish_frame", + "method": "native-unit" + } } + ], + "fills": [] } + } } diff --git a/sdk/machines/octatrack/module-adapters/vector_runtime.py b/sdk/machines/octatrack/module-adapters/vector_runtime.py index b62004a35..8077d6004 100644 --- a/sdk/machines/octatrack/module-adapters/vector_runtime.py +++ b/sdk/machines/octatrack/module-adapters/vector_runtime.py @@ -4,32 +4,24 @@ import hashlib from pathlib import Path -CONTROL_SHA256 = 'c4f829e437ffbde1275c00827031b694a86011013d37269077e4696818323471' +CONTROL_SHA256 = 'e12b5f82744d14a5511a605fabc5ff0624387084164c59143f9ddccec1f207dd' ARITHMETIC = ( ('\tsub.l #staging-268525901,%a1', '\tadd.l #268525901,%a1\n\tsub.l #staging,%a1'), ('\tlea saved-1187503478,%a1', '\tlea saved,%a1\n\tsub.l #1187503478,%a1'), ('\tlea saved-1187503778,%a1', '\tlea saved,%a1\n\tsub.l #1187503778,%a1'), ) -# SRC SETUP's second page: the card build's st_setup_draw6 asks st_setup_page on chooser row 5 only, and st_setup_page -# also wants SRC SETUP's cursor (0x460d5c30) on row 5, the card's VECTOR row. Over USB VECTOR's row is wherever the -# base's table puts it (5-8), and the base asks the page only with the cursor on that row and the track a VECTOR track -# (machine_registry.c mw_setup_page, MODWERK_MACHINE_SETUP_PAGE), so the package drops the row-5 test. -SETUP_ROW = ('\tjne .L702\n\tmov3q.l #5,%d0\n\tcmp.l 1175280688.l,%d0\n\tjne .L702\n\tmove.l %d1,12(%sp)\n', - '\tjne .L702\n\tmove.l %d1,12(%sp)\n') def source_variant(original): - """Keep self-references inside the package; address arithmetic does not alter CCR. SRC SETUP's page is asked on - VECTOR's own row, wherever the base puts it.""" + """Keep self-references inside the package; address arithmetic does not alter CCR. Since VECTOR 0.2.6 the card + source asks SRC SETUP's page on VECTOR's own row itself (st_setup_page has no row-5 test), so the base's row works.""" if hashlib.sha256(original.encode()).hexdigest() != CONTROL_SHA256: raise ValueError('Reviewed VECTOR runtime source changed.') for before, after in ARITHMETIC: if original.count(before) != 1: raise ValueError('VECTOR address arithmetic seam changed.') original = original.replace(before, after) - if original.count(SETUP_ROW[0]) != 1: - raise ValueError('VECTOR SRC SETUP row seam changed.') - return original.replace(*SETUP_ROW) + return original def port(module, sdk_root, work): diff --git a/sdk/native-comparisons/vector.json b/sdk/native-comparisons/vector.json index 74891061c..b1f52d419 100644 --- a/sdk/native-comparisons/vector.json +++ b/sdk/native-comparisons/vector.json @@ -1,8 +1,8 @@ { "schemaVersion": 1, "moduleId": "vector", - "moduleVersion": "0.2.4-experimental", - "moduleSourceSha256": "1255e99133cbd8d6d2587c95f93462ea80fccbd169462a2acb02aedbd346cbd3", + "moduleVersion": "0.3.0-experimental", + "moduleSourceSha256": "5c6004d8adedf47888c70cb38ad9f0a2fb2cf6c61f6ac164f507cc77ef142015", "revision": "b8deefc88b2c3e5f3c6158e364eb741df1924e1d", "originalOsSha256": "164f31224bf61181e3f50e7dec40df9afcae5b16dbf6e4c0d0cc5e986af0a84e", "pool": [ @@ -11,6 +11,11 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "analog-bassdrum", "usb-audio-out-tracks-main-cue", "quantizer", @@ -21,14 +26,28 @@ "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "summary": { - "selections": 110, - "built": 46, + "selections": 186, + "built": 76, "identicalOutright": 0, - "identicalOutsidePlatformWrites": 46, - "refused": 64, + "identicalOutsidePlatformWrites": 76, + "refused": 110, "mismatches": 0 }, "selections": [ @@ -68,9 +87,9 @@ ] }, "native": { - "bytes": 1121076, - "osSha256": "d64284abbb02e1bedab13282218ac3d5d0c4e1c57fe165dce8148b5c5226ab95", - "maskedOsSha256": "c241d50a5a4728e097bcdae58e6a5b8afd7fdee4f6dfcc534d060ba668e489fe" + "bytes": 1127040, + "osSha256": "f9a56afc6ce1aeb513ecda5586af0392de950ec76439d3eba4e103268411a383", + "maskedOsSha256": "f5b2298b0f602f870ef3307927c655343374d2f80ee9e68a5e81e5a122ad9c21" }, "result": "masked" }, @@ -95,9 +114,9 @@ "fx2": [] }, "native": { - "bytes": 1121076, - "osSha256": "126e6076bba8ab056579d103fb0134365a7d49bd9eb25b499c2ce483a1502041", - "maskedOsSha256": "f914320de31a948195ca34a259355536d55ffd9791da78b6245b02a08251b9e8" + "bytes": 1127040, + "osSha256": "527f5bce02f9fd417663939a0e7c06042fb2e519ae8ba96333a9c8315e29a55f", + "maskedOsSha256": "5fa31cb44b07778f9887041de90da6db0defe2bbd81545b3c1bc4725e35223fa" }, "result": "masked" }, @@ -138,9 +157,9 @@ ] }, "native": { - "bytes": 1121076, - "osSha256": "f068bcae6efe65a85d63b827be494c0b6254727981042ca0bae38d83c2d9dc89", - "maskedOsSha256": "ce6451277d6c1310416d1b4e26b1028ac6d7b2fdb9616aa921f9f4bcb7c19042" + "bytes": 1127040, + "osSha256": "6b4d11a7b8f0bf1428495a73d3ccf882f3f889b0d0efd02c8e5df7fb30ffc7ba", + "maskedOsSha256": "1435daabc23c98b8b591e3ec01da90f3a82375c6fcc78a748a0c824233de6e01" }, "result": "masked" }, @@ -168,9 +187,9 @@ ] }, "native": { - "bytes": 1121076, - "osSha256": "71d39e3303944d88e40031975caaf69ef9a921c7a1bbbf2c8208944f21b06c62", - "maskedOsSha256": "89b2f94bc172feb9b233fad80e12be54da137a0026f802ce9dda4ef9b9ba9f0d" + "bytes": 1127040, + "osSha256": "efa368ca865f0d1edd57f165ce9a2a2786c4ae2d2bb4c5b0742577ddddd2bdc7", + "maskedOsSha256": "c019cc6003728c31a515df5bd253336894682a950341c20bdafb4eb2ffa218b9" }, "result": "masked" }, @@ -211,9 +230,9 @@ ] }, "native": { - "bytes": 1223252, - "osSha256": "305250f98daf17473d530cf43489ab23d244e36d137ae47319cd6c9cc79fba8c", - "maskedOsSha256": "3ddb91870a6f88b2ff2ef0ab48200a44c8557ededc73c615c792458f30dafaa4" + "bytes": 1229274, + "osSha256": "7ba60bd653e9ce5fec8125efe3dcbef63ef7fff02fd37809f7f7d58c4df14c52", + "maskedOsSha256": "f2e0b016c52132aade8d0af50bac4f66cbbe369f544de9c0b1822b693af45cf6" }, "result": "masked" }, @@ -241,9 +260,9 @@ ] }, "native": { - "bytes": 1223252, - "osSha256": "8b6191d5e60ac6aec4629c68c9acce1b141d9931a5ec942f4f5f2781617983a9", - "maskedOsSha256": "77542d1d8ab14a21223e8d2a2a1fa331cc67ba82b9e3c027a17c95d0a2928452" + "bytes": 1229274, + "osSha256": "4256ac59ddd9e0868a853995a87d751ff1f220130f0badaf8fb63057b3d6ea9a", + "maskedOsSha256": "5699764d233cf05c07a5b15878c18dfbb4cb4a6fed8f5fbd28c6b327f082be61" }, "result": "masked" }, @@ -285,9 +304,9 @@ ] }, "native": { - "bytes": 1123175, - "osSha256": "7aaa8e06e062e8c408a4be10e000cb1f0859e74543e19ab8ba584dd4a5f15a4a", - "maskedOsSha256": "41c87f90ba9e7382034a59c371ac5cf2ff01b05dff16b2ee14c2dad75e20e600" + "bytes": 1129144, + "osSha256": "f1729ad05f66f79f4173315145a5ca3607b3bcbe0098857844e5506f792f2185", + "maskedOsSha256": "058bf393baa5c72f70cb4a6c98633861ddb070edd27323a218f1dcbaa97d2cf6" }, "result": "masked" }, @@ -316,9 +335,9 @@ ] }, "native": { - "bytes": 1123175, - "osSha256": "b2b22a6ea9459738609db6449bbc1e726996a81bf1bfee6d1eec57098b0c745c", - "maskedOsSha256": "090340d9fe92d9d3ee0bf64ab87d2235bb522a3cf8f07a1f1427a0f81ce1efde" + "bytes": 1129144, + "osSha256": "9adcca8b16993f3a593f74598bc65a9cd31d8a8ea04954b0898d003559181915", + "maskedOsSha256": "38cb0b3d690a6f0662c688f3902c03935ae2259cd0fcc455441e1d9f9e55135e" }, "result": "masked" }, @@ -359,9 +378,9 @@ ] }, "native": { - "bytes": 1121076, - "osSha256": "5c33ae65e5c47be634050a87035b432257aea64c56459ae1d789d962559f3045", - "maskedOsSha256": "3e17b8d64ae9c0e18d05f13f26ddfa2b67e1bce9e607ab333d56c707f51746ef" + "bytes": 1127040, + "osSha256": "9d9c4fe089e0ca0bbeae3c4cbc36a4b40e639ca84a0aef934b5746216267ed28", + "maskedOsSha256": "90e1583106ff1b2cdf7d716703e4995568f00f0489bbeb943cb365ec5e822d64" }, "result": "masked" }, @@ -387,9 +406,9 @@ "fx2": [] }, "native": { - "bytes": 1121076, - "osSha256": "505d85d24e9ab863aa80167103ae87347143c995ab27d391b53e5fd06587f524", - "maskedOsSha256": "39cecd8164a36010255a687f0b84a69f752d4f798e02733156251f730ec6dac1" + "bytes": 1127040, + "osSha256": "fd2bf7ce8d7acae0423c09914c0a3251bfda28c8b53dbb062a6c7e1083a262a0", + "maskedOsSha256": "2388992bb7939581f0fb259258faade28eb81c05e0f79144e4f7fadba54eb1fc" }, "result": "masked" }, @@ -431,9 +450,9 @@ ] }, "native": { - "bytes": 1121076, - "osSha256": "bf446d211d655ecf42caf2fe9da95c6a63bce18a234cd8f27e6a046138988816", - "maskedOsSha256": "eb4c6163c3c464e99c00c6905c284a35e29ca905678b8f3f3cba519db90b484b" + "bytes": 1127040, + "osSha256": "c189ba36f84d12c5ee5e51076023739472e623ab82db18c91813098671c67c65", + "maskedOsSha256": "3fd9b53d7b662ed2de0fb9499d1df4e9cb6fb62a64f99948326990dd6dc683f6" }, "result": "masked" }, @@ -462,15 +481,15 @@ ] }, "native": { - "bytes": 1121076, - "osSha256": "0f7b4792fbe2b674f18a3492481aa9b894143ad4cc41c0244e680164cddf9b1c", - "maskedOsSha256": "3b55973ca75ea802d65ad6b7263ae259d525c1846a5f6d05bd23f4996cd9a69d" + "bytes": 1127040, + "osSha256": "dc24e5704f5561440073ffcda71f7b9ac40d6b7b4ab769acae70ab9329dd5de4", + "maskedOsSha256": "3138a39bfaddb679c903acf58f947ce7c72e1baab00bab81ee13b8d4727e4045" }, "result": "masked" }, { "moduleIds": [ - "analog-bassdrum", + "airwindows-chorus", "vector" ], "keepStockFx2": true, @@ -500,17 +519,20 @@ "LO-FI", "DELAY", "PLATE REV", - "DARK REV" + "DARK REV", + "AIR CHORUS" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: analog-bassdrum and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x40077b5c -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4006d784 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400791e4 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: analog-bassdrum (symbol ref abcontrol:ab_engine_left (LEFT from Analog BD engine pool to machine chooser)) and vector (symbol ref vector:st_pool_choice_left (LEFT returns from VECTOR pool choice to machines)) both claim 0x400ce10e -- both rewrite the same bytes\n poke site: analog-bassdrum (symbol ref abcontrol:ab_engine_right (RIGHT on Analog BD enters its engine pool)) and vector (symbol ref vector:st_pool_right (RIGHT on VECTOR opens its pool-choice modal)) both claim 0x400cf714 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser has six rows, ANALOG BD the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: analog-bassdrum (poke SRC SETUP name lookup admits AB) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser draws AB) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser highlights AB) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser persists AB) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" + "bytes": 1127040, + "osSha256": "a8945791e12e93d35e58a8699179de7be2493942945a9c2362db5e79596ec595", + "maskedOsSha256": "d417d21e23decad131242048deb57a67b11cc5c82e8c5b1f48da0e0dcc68a8df" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "analog-bassdrum", + "airwindows-chorus", "vector" ], "keepStockFx2": false, @@ -527,16 +549,20 @@ "COMPRESSOR", "LO-FI" ], - "fx2": [] + "fx2": [ + "AIR CHORUS" + ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: analog-bassdrum and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x40077b5c -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4006d784 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400791e4 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: analog-bassdrum (symbol ref abcontrol:ab_engine_left (LEFT from Analog BD engine pool to machine chooser)) and vector (symbol ref vector:st_pool_choice_left (LEFT returns from VECTOR pool choice to machines)) both claim 0x400ce10e -- both rewrite the same bytes\n poke site: analog-bassdrum (symbol ref abcontrol:ab_engine_right (RIGHT on Analog BD enters its engine pool)) and vector (symbol ref vector:st_pool_right (RIGHT on VECTOR opens its pool-choice modal)) both claim 0x400cf714 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser has six rows, ANALOG BD the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: analog-bassdrum (poke SRC SETUP name lookup admits AB) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser draws AB) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser highlights AB) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser persists AB) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" + "bytes": 1127040, + "osSha256": "52609c684c670f7fae344af282471f1c40a615016a7257d3337e10632fec9ad9", + "maskedOsSha256": "4e92d77959081a885d3c9f198de534335e238767e70bffa624d6984185960238" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "usb-audio-out-tracks-main-cue", + "everb", "vector" ], "keepStockFx2": true, @@ -566,20 +592,19 @@ "LO-FI", "DELAY", "PLATE REV", - "SPRING REV", - "DARK REV" + "EVERB" ] }, "native": { - "bytes": 1123770, - "osSha256": "e30261aaf95cc04ff36db5231782bce5e5afaeb3b7c4efaf4efe9db40a74db46", - "maskedOsSha256": "3e26f4a0e710da1b7b9a5ad597433a06d427247838a3c2a80fb67ade8193e8d2" + "bytes": 1127040, + "osSha256": "b44a0907e938e48e4938123093542e290c4711d81b98b1f3f824246566240203", + "maskedOsSha256": "3c4897bfe9051d40c94a686b6b1c42f1ce7b0242e197b98011990d0d231c8982" }, "result": "masked" }, { "moduleIds": [ - "usb-audio-out-tracks-main-cue", + "everb", "vector" ], "keepStockFx2": false, @@ -596,18 +621,20 @@ "COMPRESSOR", "LO-FI" ], - "fx2": [] + "fx2": [ + "EVERB" + ] }, "native": { - "bytes": 1123770, - "osSha256": "4d4e9655c64934adf6fd9e5b5abfaa7649ad678aa6523f100b3ea9dd9921cd16", - "maskedOsSha256": "59778a2b644e631ea86cfaad3c5003b2c901ff7c8e8cdf7acaec58fe3082826c" + "bytes": 1127040, + "osSha256": "8eb5aadbb5e05a7d7e12844eec29983ee9f97cc7e27ecb577a5eb7ad354dbcb7", + "maskedOsSha256": "e4f492222cd3ebdb1366137ae22687dafeb2cfea1e36b282e8ce2767dd03cc30" }, "result": "masked" }, { "moduleIds": [ - "quantizer", + "bbd", "vector" ], "keepStockFx2": true, @@ -636,21 +663,20 @@ "COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "SPRING REV", - "DARK REV" + "DARK REV", + "BBD" ] }, "native": { - "bytes": 1123257, - "osSha256": "2647acc08f00f3267667d3f86d26937d7b1510176a521fa6d5f0f6a07daef2c9", - "maskedOsSha256": "bcd68bc8fa9902d295c3621f04842e4cd73225b5feb22053d0b315c70dcfaf33" + "bytes": 1127061, + "osSha256": "8d5c87bdb5d4f8e8c76168fec6f0005f95e6794bdb948723eab9d8ea4820740e", + "maskedOsSha256": "6ef69e1b1ce637535a04fef62098c3e22f51ef1a55c461eb4966b6679bb82a41" }, "result": "masked" }, { "moduleIds": [ - "quantizer", + "bbd", "vector" ], "keepStockFx2": false, @@ -667,18 +693,20 @@ "COMPRESSOR", "LO-FI" ], - "fx2": [] + "fx2": [ + "BBD" + ] }, "native": { - "bytes": 1123257, - "osSha256": "d693782164a4b125dbdc61802b741441580d766c908ea54ef74e11a35351dc35", - "maskedOsSha256": "09618100b11c04717a4c5674a78b78608ff063c86b9a753974dcc1e63d39a91a" + "bytes": 1127061, + "osSha256": "22c14535ec12b5a5f7dfbbcb0c20b728b6e01b6f375f17379b5ce3688159b0a5", + "maskedOsSha256": "386e54230fc86dc69186d50b8b9ffe8c0a71ff4b61eb249a6ffdc45a1bfecb43" }, "result": "masked" }, { "moduleIds": [ - "synth", + "lofi2", "vector" ], "keepStockFx2": true, @@ -707,19 +735,20 @@ "COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "SPRING REV", - "DARK REV" + "DARK REV", + "LOFI2" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" + "bytes": 1127040, + "osSha256": "2a239d55552849d0d7ae128be8139923be2dba217055a48128e0e46e4af3d973", + "maskedOsSha256": "27e334b481e9d17d69d92733e4981a4cd1ddfa24db559c4874cb4018524251d7" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "synth", + "lofi2", "vector" ], "keepStockFx2": false, @@ -736,16 +765,20 @@ "COMPRESSOR", "LO-FI" ], - "fx2": [] + "fx2": [ + "LOFI2" + ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" + "bytes": 1127040, + "osSha256": "1489ff867dd53f520dc67ebabdd9b3d567b70c4f775a9ae994c8bdc63571a367", + "maskedOsSha256": "e19d01b3d1d01a02ec3b010d822c71c79d4d2d0b6644d07c3682fb55feb4b890" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "previewvol", + "ring-sc", "vector" ], "keepStockFx2": true, @@ -760,7 +793,8 @@ "SPATIALIZER", "COMB FILTER", "COMPRESSOR", - "LO-FI" + "LO-FI", + "RING_SC" ], "fx2": [ "FILTER", @@ -775,20 +809,20 @@ "LO-FI", "DELAY", "PLATE REV", - "SPRING REV", - "DARK REV" + "DARK REV", + "RING_SC" ] }, "native": { - "bytes": 1121076, - "osSha256": "19ada0c4f27e961b74f79042b20d8056d8f3e48db420e7a02c268c00c1bcac42", - "maskedOsSha256": "2cc05d3afa0bf1071744b997e75327884f20f5d45ff9e79ebc7f1c974bc042ba" + "bytes": 1127040, + "osSha256": "9b0404b5ba11318b354ad4d6b57501375876357aafd6c5faa0ef57f22115aebf", + "maskedOsSha256": "7f528ba85d3ded57e6acdaf60aeeb936474d5f6dfa3ac7845702d93dd6afec54" }, "result": "masked" }, { "moduleIds": [ - "previewvol", + "ring-sc", "vector" ], "keepStockFx2": false, @@ -803,20 +837,23 @@ "SPATIALIZER", "COMB FILTER", "COMPRESSOR", - "LO-FI" + "LO-FI", + "RING_SC" ], - "fx2": [] + "fx2": [ + "RING_SC" + ] }, "native": { - "bytes": 1121076, - "osSha256": "b53d1e2732c20799ae69ca26233dad4ee0aa19327a5487bf58ee669a40158a77", - "maskedOsSha256": "4d1c8031035796b08d832c6fd102f29deaa4ea707d191b0115fc466c89df3cc7" + "bytes": 1127040, + "osSha256": "5599d1ab96a84c84dd7625a8085b2360691bb1d4b767c23bdd10e2c8ce378424", + "maskedOsSha256": "077849b195e96650c3d219643abbb66b5d85fa56ad30626500047526f31a0deb" }, "result": "masked" }, { "moduleIds": [ - "cc-map", + "analog-bassdrum", "vector" ], "keepStockFx2": true, @@ -846,20 +883,17 @@ "LO-FI", "DELAY", "PLATE REV", - "SPRING REV", "DARK REV" ] }, "native": { - "bytes": 1121076, - "osSha256": "3d75381ddf4e2899104fe84ab4af3d7ed1e8acac2c19428d9bbc8918a5868c6c", - "maskedOsSha256": "2293d81bda7804a8b93623ebfead516a4538a98beb68f65a7a9fe37591e4ff58" + "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: analog-bassdrum and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x40077b5c -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4006d784 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400791e4 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: analog-bassdrum (symbol ref abcontrol:ab_engine_left (LEFT from Analog BD engine pool to machine chooser)) and vector (symbol ref vector:st_pool_choice_left (LEFT returns from VECTOR pool choice to machines)) both claim 0x400ce10e -- both rewrite the same bytes\n poke site: analog-bassdrum (symbol ref abcontrol:ab_engine_right (RIGHT on Analog BD enters its engine pool)) and vector (symbol ref vector:st_pool_right (RIGHT on VECTOR opens its pool-choice modal)) both claim 0x400cf714 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser has six rows, ANALOG BD the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: analog-bassdrum (poke SRC SETUP name lookup admits AB) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser draws AB) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser highlights AB) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser persists AB) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ - "cc-map", + "analog-bassdrum", "vector" ], "keepStockFx2": false, @@ -879,15 +913,13 @@ "fx2": [] }, "native": { - "bytes": 1121076, - "osSha256": "a3efb6516d3e9e165fa8ad3b0176c74f593d1c215e2ef4697d2dc83c46dd298a", - "maskedOsSha256": "92f2940e80041e8dd8e96fdcf2cceae03bd97d10701c16608be747a96393c60b" + "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: analog-bassdrum and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x40077b5c -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4006d784 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400791e4 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: analog-bassdrum and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: analog-bassdrum (symbol ref abcontrol:ab_engine_left (LEFT from Analog BD engine pool to machine chooser)) and vector (symbol ref vector:st_pool_choice_left (LEFT returns from VECTOR pool choice to machines)) both claim 0x400ce10e -- both rewrite the same bytes\n poke site: analog-bassdrum (symbol ref abcontrol:ab_engine_right (RIGHT on Analog BD enters its engine pool)) and vector (symbol ref vector:st_pool_right (RIGHT on VECTOR opens its pool-choice modal)) both claim 0x400cf714 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser has six rows, ANALOG BD the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: analog-bassdrum (poke SRC SETUP name lookup admits AB) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser draws AB) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser highlights AB) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: analog-bassdrum (poke machine chooser persists AB) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ - "sidechain-compressor", + "usb-audio-out-tracks-main-cue", "vector" ], "keepStockFx2": true, @@ -901,7 +933,7 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "SIDECHAIN_COMPRESSOR", + "COMPRESSOR", "LO-FI" ], "fx2": [ @@ -913,23 +945,24 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "SIDECHAIN_COMPRESSOR", + "COMPRESSOR", "LO-FI", "DELAY", "PLATE REV", + "SPRING REV", "DARK REV" ] }, "native": { - "bytes": 1121076, - "osSha256": "ee71fcbabc9f1b4fd3cea0124c5c57763d4b43c80d14d71753f151ed0489d032", - "maskedOsSha256": "6ee934c7e13114cb180d260151e0b1c6344cdb7982ec709e182abef6e9ffde02" + "bytes": 1129771, + "osSha256": "d4a5f533a573d1fcd8fdca180ba9082b81104cf01b7b48e5df4031ed7f5151cf", + "maskedOsSha256": "195e72b7290312153fe4cf6ff1576cb6f1a97f59b29a8570801c50e03e4e1c12" }, "result": "masked" }, { "moduleIds": [ - "sidechain-compressor", + "usb-audio-out-tracks-main-cue", "vector" ], "keepStockFx2": false, @@ -943,24 +976,22 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "SIDECHAIN_COMPRESSOR", + "COMPRESSOR", "LO-FI" ], - "fx2": [ - "SIDECHAIN_COMPRESSOR" - ] + "fx2": [] }, "native": { - "bytes": 1121076, - "osSha256": "2a94dbd7522f9a287434e1426645d231e0ae5bb18283a8151cdfa10a78ea35d6", - "maskedOsSha256": "9f0c4dc5bb60f69d27c0c4e7eebc2cfa145f96cf8829ed51d4b3a121b9c26a1a" + "bytes": 1129771, + "osSha256": "4f722762b67c9a77c183791a8e4deaffd830de6d4d5e5a91aff8abf2c5bf9241", + "maskedOsSha256": "dbca4406f38ea89d419a6189a25936249042ffaecb0cf83582473573e5a13a48" }, "result": "masked" }, { "moduleIds": [ - "vector", - "playmodes" + "quantizer", + "vector" ], "keepStockFx2": true, "menu": { @@ -994,16 +1025,16 @@ ] }, "native": { - "bytes": 1126060, - "osSha256": "9670a635132678ed36bc8bd870a8fac3eed43d1c8c53af1d06764d6d48c25a95", - "maskedOsSha256": "6e3c0e7407d8319611d285ca8e40021bdc24bb1ff86a2cc35cbf65ea374a9403" + "bytes": 1130367, + "osSha256": "38e7fe08e4e7cee056db6ab4c1ebe9510a1efcf7c39afd4093fc064f4743ac11", + "maskedOsSha256": "a019282da249f6a5a37e84daac362adcd5cae4901c4a2c464ebbb1b663f2652e" }, "result": "masked" }, { "moduleIds": [ - "vector", - "playmodes" + "quantizer", + "vector" ], "keepStockFx2": false, "menu": { @@ -1022,16 +1053,16 @@ "fx2": [] }, "native": { - "bytes": 1126060, - "osSha256": "b99c38b9439ecf7ccd3c870c18f37b54ab6dd2c8f9bdd4cb710e65838223bf4e", - "maskedOsSha256": "8885f608310c20b7c500a5aadf840f5b14941f982641013c8f1cbd1e0d5f4813" + "bytes": 1130367, + "osSha256": "945c66d4b5243d635e8042ac6f4486f57281f50331907cd4e206866549f4d8e6", + "maskedOsSha256": "5ac7d8c874be7c127da3a69a5279dfd735f3778eeaedd534575261ce5a5e0f41" }, "result": "masked" }, { "moduleIds": [ - "vector", - "mute-modes" + "synth", + "vector" ], "keepStockFx2": true, "menu": { @@ -1065,16 +1096,14 @@ ] }, "native": { - "bytes": 1121076, - "osSha256": "eaa66566c2d4e65dbce06bd6039f13ee387d10219533f24cf503db677a343822", - "maskedOsSha256": "2bde26522210f50bec01d0afea15ce50527136208567bd3da44c7b5476cd3b84" + "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ - "vector", - "mute-modes" + "synth", + "vector" ], "keepStockFx2": false, "menu": { @@ -1093,16 +1122,14 @@ "fx2": [] }, "native": { - "bytes": 1121076, - "osSha256": "e2c128002dab843d292aed69d8b0b3f50036fa58c7282cc19834bd05ef3bf712", - "maskedOsSha256": "b234bc77d48f1c11be30ca235a48cb0c918a1266fc42f3f805ea6932fbd45d04" + "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ - "vector", - "recorder-loop-fix" + "previewvol", + "vector" ], "keepStockFx2": true, "menu": { @@ -1136,17 +1163,16 @@ ] }, "native": { - "bytes": 1121076, - "osSha256": "5f835ea60132690436e9fe3d86a3ea6ef0fbf19f4bedc6a5fe1894bc9559afa9", - "maskedOsSha256": "15d92f62181155fbb0af7787a20cf54f37eb3bc634e50ad7f09e246acfb20df7", - "platformArena": true + "bytes": 1127040, + "osSha256": "2dd5ac79ef57b3ac9aa8ddc11ae4499f4a55c6482ff294b5ce1a8a6b58aa9fef", + "maskedOsSha256": "2dbc2d1798c1fc9fb9befd94de580386e0bc965d06138defde1d385c0d1cb655" }, "result": "masked" }, { "moduleIds": [ - "vector", - "recorder-loop-fix" + "previewvol", + "vector" ], "keepStockFx2": false, "menu": { @@ -1165,30 +1191,16 @@ "fx2": [] }, "native": { - "bytes": 1121076, - "osSha256": "2abb458625042e846120d716d81dd785aa30af5ed50ec4fde171822996cec364", - "maskedOsSha256": "7992234753800aff7b6f7ac93a415cf5258757d7ea7c36dfe1992ef87adf0064", - "platformArena": true + "bytes": 1127040, + "osSha256": "a5ecb256d3bbf5c4416ccec41451265e5c24af9439bd95d801a161df71dfec56", + "maskedOsSha256": "057272e2c9006073daba8ba20af1b3c0df05795b36dadaf9f36d6c4183ea6d7e" }, "result": "masked" }, { "moduleIds": [ - "miniverb", - "tapeecho", - "euclid", - "repitch", - "tapehead", - "usb-audio-out-tracks-main-cue", - "quantizer", - "synth", - "previewvol", "cc-map", - "sidechain-compressor", - "vector", - "playmodes", - "mute-modes", - "recorder-loop-fix" + "vector" ], "keepStockFx2": true, "menu": { @@ -1201,10 +1213,8 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "SIDECHAIN_COMPRESSOR", - "LO-FI", - "EUCLID", - "TAPEHEAD" + "COMPRESSOR", + "LO-FI" ], "fx2": [ "FILTER", @@ -1215,38 +1225,25 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "SIDECHAIN_COMPRESSOR", + "COMPRESSOR", "LO-FI", "DELAY", "PLATE REV", - "MINIVERB", - "TAPE ECHO", - "EUCLID", - "TAPEHEAD" + "SPRING REV", + "DARK REV" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "bytes": 1127040, + "osSha256": "f7d05ba9ac94bdd2d5cc4523bb38c91b719e796db4cee229a96eb0d99e63a47d", + "maskedOsSha256": "7ae4775435135e6d38af493ab271c8088a3e62f2a2e0a3fb6071c99e83b8f437" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "miniverb", - "tapeecho", - "euclid", - "repitch", - "tapehead", - "usb-audio-out-tracks-main-cue", - "quantizer", - "synth", - "previewvol", "cc-map", - "sidechain-compressor", - "vector", - "playmodes", - "mute-modes", - "recorder-loop-fix" + "vector" ], "keepStockFx2": false, "menu": { @@ -1259,40 +1256,22 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "SIDECHAIN_COMPRESSOR", - "LO-FI", - "EUCLID", - "TAPEHEAD" + "COMPRESSOR", + "LO-FI" ], - "fx2": [ - "MINIVERB", - "TAPE ECHO", - "EUCLID", - "TAPEHEAD", - "SIDECHAIN_COMPRESSOR" - ] + "fx2": [] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "bytes": 1127040, + "osSha256": "ed40dbe68d7440dc50f5b0df1e84bc787f1977edf664166cd50ace21c38d4aa7", + "maskedOsSha256": "c0c72d19bedd209c693b4b928b4af5e5f7e598d5d7840f18a840d21f3dd9707b" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "tapeecho", - "euclid", - "repitch", - "tapehead", - "usb-audio-out-tracks-main-cue", - "quantizer", - "synth", - "previewvol", - "cc-map", "sidechain-compressor", - "vector", - "playmodes", - "mute-modes", - "recorder-loop-fix" + "vector" ], "keepStockFx2": true, "menu": { @@ -1306,9 +1285,7 @@ "SPATIALIZER", "COMB FILTER", "SIDECHAIN_COMPRESSOR", - "LO-FI", - "EUCLID", - "TAPEHEAD" + "LO-FI" ], "fx2": [ "FILTER", @@ -1322,33 +1299,21 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "DARK REV", - "TAPE ECHO", - "EUCLID", - "TAPEHEAD" + "PLATE REV", + "DARK REV" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "bytes": 1127040, + "osSha256": "c5e8d4dd7bcf0c8a26876d4ee780a5c71eb49644c6aa6a2e4121897097d4c800", + "maskedOsSha256": "8fd7baa1c3e1f599e98dc3e24b4adacd38369159311e9c428ad0dbe47d15696c" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "tapeecho", - "euclid", - "repitch", - "tapehead", - "usb-audio-out-tracks-main-cue", - "quantizer", - "synth", - "previewvol", - "cc-map", "sidechain-compressor", - "vector", - "playmodes", - "mute-modes", - "recorder-loop-fix" + "vector" ], "keepStockFx2": false, "menu": { @@ -1362,38 +1327,23 @@ "SPATIALIZER", "COMB FILTER", "SIDECHAIN_COMPRESSOR", - "LO-FI", - "EUCLID", - "TAPEHEAD" + "LO-FI" ], "fx2": [ - "TAPE ECHO", - "EUCLID", - "TAPEHEAD", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "bytes": 1127040, + "osSha256": "942460ce20fa08f89cc576222a5beefdb0433efe0c3d1bbe2390946271511bc4", + "maskedOsSha256": "7dbd86c397abd5d0e2cf14cf0a62ee01a625075ecddbc15531dcfb937b779118" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "miniverb", - "euclid", - "repitch", - "tapehead", - "usb-audio-out-tracks-main-cue", - "quantizer", - "synth", - "previewvol", - "cc-map", - "sidechain-compressor", "vector", - "playmodes", - "mute-modes", - "recorder-loop-fix" + "playmodes" ], "keepStockFx2": true, "menu": { @@ -1406,10 +1356,8 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "SIDECHAIN_COMPRESSOR", - "LO-FI", - "EUCLID", - "TAPEHEAD" + "COMPRESSOR", + "LO-FI" ], "fx2": [ "FILTER", @@ -1420,26 +1368,4296 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "SIDECHAIN_COMPRESSOR", + "COMPRESSOR", "LO-FI", "DELAY", "PLATE REV", - "MINIVERB", - "EUCLID", - "TAPEHEAD" + "SPRING REV", + "DARK REV" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "bytes": 1132802, + "osSha256": "d111b25f263558d729e43affc65f4978718db04fb69d0eb42e61694a2b25f74b", + "maskedOsSha256": "221d22d16beb513f9392794fb81e88c7a63d6b2045ae986edd6efb19d7dbf05f" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "miniverb", - "euclid", + "vector", + "playmodes" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1132802, + "osSha256": "7c1488e975c9d776497ea2892af4059ac6a588ffa3f7b04b75aeb539bedb6574", + "maskedOsSha256": "d2ce36b7b73e044858663dfb1ecb0c9d2eab129bac31957849ce7d4f033488c2" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "mute-modes" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1127040, + "osSha256": "d5f71f4d0a39000bb74dd2584b67669c09be42bdc75f54d1e7820922fec83533", + "maskedOsSha256": "c6095a3b3c09eb2b168298166a4cdaaf714850037f52e66e7430e0de93542f5b" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "mute-modes" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1127040, + "osSha256": "a473d18c175b55ea10e2d9a71126d3afdada02b257274ec44134040708f29a98", + "maskedOsSha256": "bf9b0a91075e6afeff0abedc61f58fe16dde9458a22e55a90286fde824620e74" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "recorder-loop-fix" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1127040, + "osSha256": "6d9266f5eb450e6cc8bfcd2e03e112e2bbb3095a184f6a523a20e0b6f269d7a9", + "maskedOsSha256": "5193543ebfe2da05f34a75cb0dac729b45b0e9ab0d082144add3a8e8af1f8565", + "platformArena": true + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "recorder-loop-fix" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1127040, + "osSha256": "6161facac2e4d630d503116d4399678e909072140685e1727b345c3f18d36757", + "maskedOsSha256": "411646415bfdfe8fb168ca038d9e7bd0623043fd1da6ffca76b67ca37c1a04dd", + "platformArena": true + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "poly8" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1140133, + "osSha256": "ed74883ac481d38ee66342962415043c249d72f9465cbb7c303cec1475897362", + "maskedOsSha256": "99baa0eb2d049e81cb4d894a60c6bb34a0851b3e2d13ab7805a21b57d7627a6d" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "poly8" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1140133, + "osSha256": "667c563177e01d0be7d346a1003d2fc4f1a5f3fd6501e936227d25586879b13f", + "maskedOsSha256": "fe98e19e5bcfea72c3275c0948391aeb343bef29dc9b5a490127fb84792c0912" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "output-matrix" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1128223, + "osSha256": "4d5addf8398242af22589f8151e69464b40c73c45aa955f5563ee03a5e6b7857", + "maskedOsSha256": "a9fec7ff98125fc9b5aede2e349191aac1f1ebaf28711fd55bbf3e0844dfaf6f" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "output-matrix" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1128223, + "osSha256": "098cd4d2fcfdfb9b22bd98515c16e83fc9fd3c863d360f964cf32442b3b2cf0a", + "maskedOsSha256": "421abe6e81374f8914157c2ef2e1cfa6ac8463760dde14368c2a52596c23ad06" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "quantize-live-rec-toggle" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1127040, + "osSha256": "3c9e87403b02d4f4f8810f1cb488f6707271ce09aac6868a7392deb94e7d90f7", + "maskedOsSha256": "7346423ce81e1b4926376842a4c0186871fd95b55dbfa74b298d39d93666a6f3" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "quantize-live-rec-toggle" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1127040, + "osSha256": "172b86c13710c0e74673f6f4efa7f2be1c30b1565830ac4bb4d193418f5b87b1", + "maskedOsSha256": "9ff7dca1ed52c108c78aadfb90799c1dd98d88bd8e8c6f0ea6b26d0c33110f78" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "apply-scene" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1128259, + "osSha256": "2756eda09402c10fa0438de07921be106779d137cba4c28d9200aeb17911d139", + "maskedOsSha256": "a07ab252b826f6a4d2c5454fcc437add42e5a29904a1faee574671e1dcbc2f5c" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "apply-scene" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1128259, + "osSha256": "5408fd5d29b7fba91250d00d230c1885f8e3d422218998f1c359415b199f467b", + "maskedOsSha256": "7ff7ed75c03d4443b8088e98ab0a25eeda44f8c39a0f4008e11fc63d87168498" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "direct-jump-kyoti" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1128413, + "osSha256": "52f731938d972f7d9e1492e569e6ceebf9e619a55edd25b1fd9b3192bb1fe6d4", + "maskedOsSha256": "3e409429e4e218f5b473962936d397aef92df7d09d7d1d7997471d20a1f198a7" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "direct-jump-kyoti" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1128413, + "osSha256": "30dbc01bf5b989bb346e5b366618a76eafdd497c59642c4048556862d32e4d34", + "maskedOsSha256": "5487d0d405a5b4b8099cb7f14a46ee2352e597071d1bcabf765f6e1fbcbf7d13" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "dejavu" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1128634, + "osSha256": "46163cfb5d1a68a38cd2e6b2207bd697866bb85b249077fd12a27f8b0dbde55b", + "maskedOsSha256": "45f73ee34dff046bc0fb318b1b51119b54b65a7d07da8768c575ac4721d702e7" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "dejavu" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1128634, + "osSha256": "8256b40b30eb9bb3a6f8f4ab2120f686276bad1610ad7919ed9265b0516851fc", + "maskedOsSha256": "ad7f8ebdb1b512cdaaeeb88592e3c1b121d0ef2367bb9d3fb573185c43c6a91a" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "arp-key-locks" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1129930, + "osSha256": "37325661abe54203ecf83b4cee6a62fd3a207925b60b4364688daefc9ef770b6", + "maskedOsSha256": "10fedd7456c0048b8c9c4dae879a4dbf35321dc458da9c49677c1868429622b2" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "arp-key-locks" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1129930, + "osSha256": "931150d17d2e4f66b7ff63a70a49dc92bd7abb4e7a011a5092b406b7599a136d", + "maskedOsSha256": "3b038e63ec0dba3d6e89a443b729b39817a152a9f5c1ad5521d54ed0724e485d" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "temp-save" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1127599, + "osSha256": "5db89164f08611414372be3981ce67744007ec786f5257290b64a9add43d030c", + "maskedOsSha256": "f2623713527e326dbf0254a1475e5333d7f3fefa2338369f73630bfb5bf1d29c" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "temp-save" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1127599, + "osSha256": "6bbad701e3d80a426098398014b50c612b4158cd2cb4a3d9cc968ef59611ea79", + "maskedOsSha256": "62185b344ed89f1e86b2e774d2834f68d687c0053d3bfc0b986efa19538866d3" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "beat-slicer" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1127040, + "osSha256": "f9a56afc6ce1aeb513ecda5586af0392de950ec76439d3eba4e103268411a383", + "maskedOsSha256": "f5b2298b0f602f870ef3307927c655343374d2f80ee9e68a5e81e5a122ad9c21" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "beat-slicer" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1127040, + "osSha256": "527f5bce02f9fd417663939a0e7c06042fb2e519ae8ba96333a9c8315e29a55f", + "maskedOsSha256": "5fa31cb44b07778f9887041de90da6db0defe2bbd81545b3c1bc4725e35223fa" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "tuner" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1129001, + "osSha256": "528e8aa2857ce73ddc2f6606295e2020dd71785bb5b305e89a9b65df494eed4e", + "maskedOsSha256": "2ae910dda790cf0e14a610f138908449561473b77c452d88ee88ac9e44b4cc63" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "tuner" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1129001, + "osSha256": "59cab3569ab7ee47ce622cc0ac14d6b9742b500bf9d59b6d6f71160d19547f25", + "maskedOsSha256": "12c14e257f6d01a1cc7f93d36d920f841ee00564f16e62497f680a289ea1785c" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "slow-lfo" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1127148, + "osSha256": "c6475ae3816ee11181784af1d23d550ca596b1dc7436cda418d8e30bdf9c7aa0", + "maskedOsSha256": "0627ef503d1a969525c981441cbfabe8e7faa34c1c84f98d1e40580a9f2cc495" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "slow-lfo" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1127148, + "osSha256": "67d223b8721e7a071347c5ea3ecb2c4bdd9613b9262738e7e08203524162afce", + "maskedOsSha256": "d8b5c1935218be99fdecc1f57fef61958ad14861d2e45a4350cdebb0cdb7f457" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "bar-led" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1127079, + "osSha256": "b9093614b328a06e1b21e06ce0b1d4f6e9fd7114e96263928278d6031bc561e5", + "maskedOsSha256": "69d187dac73a879a8520f604751d0db5cc874bf40cf2124f837221bd1e324c74" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "bar-led" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1127079, + "osSha256": "12835cb4a11e3573d1e01e764d86b4a1703b18c78d3725b1c80021377e6d9210", + "maskedOsSha256": "9bfe73ea27c644ee25a937259ceb8ab4e6420d828ecacce16090c8581beb97b3" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "stem-rec" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1135380, + "osSha256": "de975279520512e8181fe05163323ba6a540641e82773d3a17f85b4aa4e06ef2", + "maskedOsSha256": "31fc192b30005cb3ee8b35219b4c1b5f4b64d590c1cbdce2ad3331a7dddfe9a4" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "stem-rec" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1135380, + "osSha256": "db7ecee09eb0450226851ec5de6b65767ea13809116fcc424bb3ab0258b26b4f", + "maskedOsSha256": "74c0a8efbc81b5561b3282a8fd5fe5849f293aaa6b124f68c63381ac8bbbe826" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "PLATE REV", + "SPRING REV", + "DARK REV" + ] + }, + "native": { + "bytes": 1127040, + "osSha256": "f9a56afc6ce1aeb513ecda5586af0392de950ec76439d3eba4e103268411a383", + "maskedOsSha256": "f5b2298b0f602f870ef3307927c655343374d2f80ee9e68a5e81e5a122ad9c21" + }, + "result": "masked" + }, + { + "moduleIds": [ + "vector", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI" + ], + "fx2": [] + }, + "native": { + "bytes": 1127040, + "osSha256": "527f5bce02f9fd417663939a0e7c06042fb2e519ae8ba96333a9c8315e29a55f", + "maskedOsSha256": "5fa31cb44b07778f9887041de90da6db0defe2bbd81545b3c1bc4725e35223fa" + }, + "result": "masked" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SCALE QUANTIZER qzc at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "MUTE_MODES mm_menu at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "MUTE_MODES mm_menu at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400449be -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 8 rows (SCALE, ROOT, GLIDE, TRACK, FOLLOW (2.22); 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", @@ -1449,7 +5667,20 @@ "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -1465,17 +5696,24 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", + "TAPE ECHO", "EUCLID", "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400449be -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 8 rows (SCALE, ROOT, GLIDE, TRACK, FOLLOW (2.22); 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" }, "result": "refused" }, @@ -1483,8 +5721,14 @@ "moduleIds": [ "miniverb", "tapeecho", + "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", @@ -1494,7 +5738,20 @@ "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -1509,7 +5766,9 @@ "COMB FILTER", "SIDECHAIN_COMPRESSOR", "LO-FI", - "TAPEHEAD" + "EUCLID", + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -1523,14 +5782,19 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "DARK REV", "MINIVERB", "TAPE ECHO", - "TAPEHEAD" + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, @@ -1538,8 +5802,14 @@ "moduleIds": [ "miniverb", "tapeecho", + "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", @@ -1549,7 +5819,20 @@ "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -1564,17 +5847,25 @@ "COMB FILTER", "SIDECHAIN_COMPRESSOR", "LO-FI", - "TAPEHEAD" + "EUCLID", + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", + "EUCLID", "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" }, "result": "refused" }, @@ -1583,7 +5874,13 @@ "miniverb", "tapeecho", "euclid", + "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", @@ -1593,7 +5890,20 @@ "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -1609,7 +5919,8 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -1623,15 +5934,19 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", "MINIVERB", "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, @@ -1640,7 +5955,13 @@ "miniverb", "tapeecho", "euclid", + "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", @@ -1650,7 +5971,20 @@ "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -1666,18 +6000,24 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", "EUCLID", "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" }, "result": "refused" }, @@ -1687,6 +6027,12 @@ "tapeecho", "euclid", "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", @@ -1696,7 +6042,20 @@ "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -1711,7 +6070,9 @@ "COMB FILTER", "SIDECHAIN_COMPRESSOR", "LO-FI", - "EUCLID" + "EUCLID", + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -1725,14 +6086,19 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "DARK REV", "MINIVERB", "TAPE ECHO", - "EUCLID" + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, @@ -1742,6 +6108,12 @@ "tapeecho", "euclid", "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", @@ -1751,7 +6123,20 @@ "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -1766,17 +6151,25 @@ "COMB FILTER", "SIDECHAIN_COMPRESSOR", "LO-FI", - "EUCLID" + "EUCLID", + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" }, "result": "refused" }, @@ -1787,6 +6180,12 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", "quantizer", "synth", "previewvol", @@ -1795,7 +6194,20 @@ "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -1811,7 +6223,8 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -1825,15 +6238,19 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", "MINIVERB", "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, @@ -1844,6 +6261,12 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", "quantizer", "synth", "previewvol", @@ -1852,7 +6275,20 @@ "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -1868,18 +6304,24 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", "EUCLID", "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" }, "result": "refused" }, @@ -1890,7 +6332,13 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", + "quantizer", "synth", "previewvol", "cc-map", @@ -1898,7 +6346,20 @@ "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -1914,7 +6375,8 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -1928,15 +6390,19 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", "MINIVERB", "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, @@ -1947,7 +6413,13 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", + "quantizer", "synth", "previewvol", "cc-map", @@ -1955,7 +6427,20 @@ "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -1971,18 +6456,24 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", "EUCLID", "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" }, "result": "refused" }, @@ -1993,15 +6484,34 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", + "synth", "previewvol", "cc-map", "sidechain-compressor", "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -2017,7 +6527,8 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -2031,15 +6542,19 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", "MINIVERB", "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "MUTE_MODES mm_softmute at 0x400d7880 not free" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, @@ -2050,15 +6565,34 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", + "synth", "previewvol", "cc-map", "sidechain-compressor", "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -2074,18 +6608,24 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", "EUCLID", "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "MUTE_MODES mm_softmute at 0x400d7880 not free" + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" }, "result": "refused" }, @@ -2096,15 +6636,34 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", + "previewvol", "cc-map", "sidechain-compressor", "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -2120,7 +6679,8 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -2134,15 +6694,19 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", "MINIVERB", "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, @@ -2153,15 +6717,34 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", + "previewvol", "cc-map", "sidechain-compressor", "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -2177,18 +6760,24 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", "EUCLID", "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" }, "result": "refused" }, @@ -2199,15 +6788,34 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", "previewvol", + "cc-map", "sidechain-compressor", "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -2223,7 +6831,8 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -2237,15 +6846,19 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", "MINIVERB", "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, @@ -2256,15 +6869,34 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", "previewvol", + "cc-map", "sidechain-compressor", "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -2280,18 +6912,24 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", "EUCLID", "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" }, "result": "refused" }, @@ -2302,15 +6940,34 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", "previewvol", "cc-map", + "sidechain-compressor", "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -2323,10 +6980,11 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -2337,18 +6995,174 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "DELAY", + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" + ] + }, + "native": { + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": false, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" + ] + }, + "native": { + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" + }, + "result": "refused" + }, + { + "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "cc-map", + "sidechain-compressor", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "bar-led", + "stem-rec", + "tiempos" + ], + "keepStockFx2": true, + "menu": { + "fx1": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" + ], + "fx2": [ + "FILTER", + "EQUALIZER", + "DJ EQ", + "PHASER", + "FLANGER", + "CHORUS", + "SPATIALIZER", + "COMB FILTER", + "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "DARK REV", "MINIVERB", "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, @@ -2359,15 +7173,34 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", "previewvol", "cc-map", + "sidechain-compressor", "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -2380,20 +7213,27 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" }, "result": "refused" }, @@ -2404,6 +7244,11 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", @@ -2411,8 +7256,22 @@ "cc-map", "sidechain-compressor", "vector", + "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -2428,7 +7287,8 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -2442,15 +7302,19 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", "MINIVERB", "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, @@ -2461,6 +7325,11 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", @@ -2468,8 +7337,22 @@ "cc-map", "sidechain-compressor", "vector", + "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -2485,18 +7368,24 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", "EUCLID", "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" }, "result": "refused" }, @@ -2507,6 +7396,11 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", @@ -2515,7 +7409,21 @@ "sidechain-compressor", "vector", "playmodes", - "recorder-loop-fix" + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -2531,7 +7439,8 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -2545,15 +7454,19 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", "MINIVERB", "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, @@ -2564,6 +7477,11 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", @@ -2572,7 +7490,21 @@ "sidechain-compressor", "vector", "playmodes", - "recorder-loop-fix" + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -2588,18 +7520,24 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", "EUCLID", "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" }, "result": "refused" }, @@ -2610,6 +7548,11 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", @@ -2618,7 +7561,21 @@ "sidechain-compressor", "vector", "playmodes", - "mute-modes" + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec" ], "keepStockFx2": true, "menu": { @@ -2634,7 +7591,8 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -2648,15 +7606,19 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", "MINIVERB", "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, @@ -2667,6 +7629,11 @@ "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", @@ -2675,7 +7642,21 @@ "sidechain-compressor", "vector", "playmodes", - "mute-modes" + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec" ], "keepStockFx2": false, "menu": { @@ -2691,33 +7672,35 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", "EUCLID", "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" }, "result": "refused" }, { "moduleIds": [ - "miniverb", - "tapeecho", - "euclid", "repitch", - "synth", - "previewvol", - "cc-map", + "ring-sc", + "quantizer", "vector", - "playmodes", - "mute-modes" + "recorder-loop-fix", + "apply-scene" ], "keepStockFx2": true, "menu": { @@ -2732,7 +7715,7 @@ "COMB FILTER", "COMPRESSOR", "LO-FI", - "EUCLID" + "RING_SC" ], "fx2": [ "FILTER", @@ -2747,29 +7730,26 @@ "LO-FI", "DELAY", "PLATE REV", - "SPRING REV", - "MINIVERB", - "TAPE ECHO", - "EUCLID" + "DARK REV", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" + "bytes": 1131582, + "osSha256": "abcf0515851746e2fad310e3adad043929c5ca4299870f77b2cc0e1d94303522", + "maskedOsSha256": "78aec39547d47c4bf55d112a63a43b0b010fa31a147fc58167d86d857199d197", + "platformArena": true }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "miniverb", - "tapeecho", - "euclid", "repitch", - "synth", - "previewvol", - "cc-map", + "ring-sc", + "quantizer", "vector", - "playmodes", - "mute-modes" + "recorder-loop-fix", + "apply-scene" ], "keepStockFx2": false, "menu": { @@ -2784,24 +7764,42 @@ "COMB FILTER", "COMPRESSOR", "LO-FI", - "EUCLID" + "RING_SC" ], "fx2": [ - "MINIVERB", - "TAPE ECHO", - "EUCLID" + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" + "bytes": 1131582, + "osSha256": "08cd84ae272a3434ccc3e8b924addb28b0322a5b82e9be49309efb0392520495", + "maskedOsSha256": "86570d202d6620c5cdeb14813474db4d814c3f73ed1a5578f04392f989091967", + "platformArena": true }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "tapeecho", - "cc-map", - "vector" + "miniverb", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "bbd", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "direct-jump-kyoti", + "temp-save", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -2815,7 +7813,10 @@ "SPATIALIZER", "COMB FILTER", "COMPRESSOR", - "LO-FI" + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -2829,23 +7830,41 @@ "COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "DARK REV", - "TAPE ECHO" + "MINIVERB", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "BBD", + "RING_SC" ] }, "native": { - "bytes": 1223252, - "osSha256": "8ea327c84b0d3d3cd4978653f6468d1a0a6eeaf814b6f8644e67e369f7dae055", - "maskedOsSha256": "9575d013c2ae1dc7cde267a4b7e5d10177929495e0d3cead5684c3c663629a7b" + "refused": "hold cave (crossfade guard): 118 B fits neither the clone window (from 0x400d7b80) nor the overflow run" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ - "tapeecho", - "cc-map", - "vector" + "miniverb", + "euclid", + "repitch", + "tapehead", + "airwindows-chorus", + "bbd", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "vector", + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "direct-jump-kyoti", + "temp-save", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -2859,32 +7878,48 @@ "SPATIALIZER", "COMB FILTER", "COMPRESSOR", - "LO-FI" + "LO-FI", + "EUCLID", + "TAPEHEAD", + "RING_SC" ], "fx2": [ - "TAPE ECHO" + "MINIVERB", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "BBD", + "RING_SC" ] }, "native": { - "bytes": 1223252, - "osSha256": "c250f5a5510ee45f2f4af080220487b00d9e7467f7d3ecadca9574b53df084b3", - "maskedOsSha256": "97d896c88c7c39874878b86a7e260d3b10ed19121b40141edfdd064d1a5d9c06" + "refused": "SCALE QUANTIZER table SEQUENCER getters at 0x400d7c80 not free" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ "miniverb", "tapeecho", - "euclid", "tapehead", + "bbd", + "ring-sc", "usb-audio-out-tracks-main-cue", - "quantizer", - "synth", + "cc-map", "sidechain-compressor", "vector", "playmodes", - "mute-modes" + "mute-modes", + "output-matrix", + "quantize-live-rec-toggle", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -2899,8 +7934,8 @@ "COMB FILTER", "SIDECHAIN_COMPRESSOR", "LO-FI", - "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -2914,15 +7949,15 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", "MINIVERB", "TAPE ECHO", - "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "BBD", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "MUTE_MODES mm_softmute at 0x400d7a80 not free" }, "result": "refused" }, @@ -2930,15 +7965,25 @@ "moduleIds": [ "miniverb", "tapeecho", - "euclid", "tapehead", + "bbd", + "ring-sc", "usb-audio-out-tracks-main-cue", - "quantizer", - "synth", + "cc-map", "sidechain-compressor", "vector", "playmodes", - "mute-modes" + "mute-modes", + "output-matrix", + "quantize-live-rec-toggle", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -2953,35 +7998,33 @@ "COMB FILTER", "SIDECHAIN_COMPRESSOR", "LO-FI", - "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", - "EUCLID", "TAPEHEAD", + "BBD", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "MUTE_MODES mm_softmute at 0x400d7a80 not free" }, "result": "refused" }, { "moduleIds": [ - "miniverb", - "tapeecho", - "euclid", - "repitch", - "usb-audio-out-tracks-main-cue", - "quantizer", - "previewvol", - "cc-map", + "bbd", + "ring-sc", "vector", "mute-modes", - "recorder-loop-fix" + "poly8", + "quantize-live-rec-toggle", + "apply-scene", + "beat-slicer" ], "keepStockFx2": true, "menu": { @@ -2996,7 +8039,7 @@ "COMB FILTER", "COMPRESSOR", "LO-FI", - "EUCLID" + "RING_SC" ], "fx2": [ "FILTER", @@ -3011,30 +8054,27 @@ "LO-FI", "DELAY", "PLATE REV", - "SPRING REV", - "MINIVERB", - "TAPE ECHO", - "EUCLID" + "BBD", + "RING_SC" ] }, "native": { - "refused": "CC->FX2/FX1 page-2 cave + dispatch repoint: 724 B fits neither the clone window (from 0x400d7a00) nor the overflow run" + "bytes": 1141967, + "osSha256": "ae18a331d5150fa0f8cb3b240c29cc98c0c8a80d272788667bfc5c162861368e", + "maskedOsSha256": "c553e77fdd4012014acc36059201811d934b611d55614090b7cde5f2bb4b7488" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "miniverb", - "tapeecho", - "euclid", - "repitch", - "usb-audio-out-tracks-main-cue", - "quantizer", - "previewvol", - "cc-map", + "bbd", + "ring-sc", "vector", "mute-modes", - "recorder-loop-fix" + "poly8", + "quantize-live-rec-toggle", + "apply-scene", + "beat-slicer" ], "keepStockFx2": false, "menu": { @@ -3049,33 +8089,53 @@ "COMB FILTER", "COMPRESSOR", "LO-FI", - "EUCLID" + "RING_SC" ], "fx2": [ - "MINIVERB", - "TAPE ECHO", - "EUCLID" + "BBD", + "RING_SC" ] }, "native": { - "refused": "CC->FX2/FX1 page-2 cave + dispatch repoint: 724 B fits neither the clone window (from 0x400d7a00) nor the overflow run" + "bytes": 1141967, + "osSha256": "9af68b1c795cfccd43c9ea9f5ccb6d496573dec4386b36c5eeaa080de4524afc", + "maskedOsSha256": "b26ee29a4528f82f154bded3abca3161440685494cd7aa73bff9cefac14bef23" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ "miniverb", - "tapeecho", + "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", + "previewvol", "cc-map", + "sidechain-compressor", "vector", - "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -3088,9 +8148,11 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", - "TAPEHEAD" + "EUCLID", + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -3101,35 +8163,57 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "SPRING REV", "MINIVERB", - "TAPE ECHO", - "TAPEHEAD" + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" }, "result": "refused" }, { "moduleIds": [ "miniverb", - "tapeecho", + "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", "quantizer", "synth", + "previewvol", "cc-map", + "sidechain-compressor", "vector", - "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -3142,30 +8226,39 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", - "TAPEHEAD" + "EUCLID", + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", - "TAPE ECHO", - "TAPEHEAD" + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, { "moduleIds": [ - "tapeecho", - "euclid", - "tapehead", - "quantizer", - "synth", + "airwindows-chorus", + "everb", + "ring-sc", "vector", - "mute-modes" + "output-matrix", + "dejavu", + "beat-slicer", + "stem-rec" ], "keepStockFx2": true, "menu": { @@ -3180,8 +8273,7 @@ "COMB FILTER", "COMPRESSOR", "LO-FI", - "EUCLID", - "TAPEHEAD" + "RING_SC" ], "fx2": [ "FILTER", @@ -3195,27 +8287,26 @@ "COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "SPRING REV", - "TAPE ECHO", - "EUCLID", - "TAPEHEAD" + "AIR CHORUS", + "EVERB", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "payload A: OUTPUT MATRIX overruns the region (3068 > 2724 words)" }, "result": "refused" }, { "moduleIds": [ - "tapeecho", - "euclid", - "tapehead", - "quantizer", - "synth", + "airwindows-chorus", + "everb", + "ring-sc", "vector", - "mute-modes" + "output-matrix", + "dejavu", + "beat-slicer", + "stem-rec" ], "keepStockFx2": false, "menu": { @@ -3230,25 +8321,26 @@ "COMB FILTER", "COMPRESSOR", "LO-FI", - "EUCLID", - "TAPEHEAD" + "RING_SC" ], "fx2": [ - "TAPE ECHO", - "EUCLID", - "TAPEHEAD" + "AIR CHORUS", + "EVERB", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "payload A: OUTPUT MATRIX overruns the region (3068 > 2724 words)" }, "result": "refused" }, { "moduleIds": [ - "synth", + "euclid", + "repitch", + "quantizer", "vector", - "playmodes" + "slow-lfo" ], "keepStockFx2": true, "menu": { @@ -3262,7 +8354,8 @@ "SPATIALIZER", "COMB FILTER", "COMPRESSOR", - "LO-FI" + "LO-FI", + "EUCLID" ], "fx2": [ "FILTER", @@ -3277,20 +8370,24 @@ "LO-FI", "DELAY", "PLATE REV", - "SPRING REV", - "DARK REV" + "DARK REV", + "EUCLID" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" + "bytes": 1132585, + "osSha256": "dd4aba1ee411fd315532633ce064b20f006df88f649979a5ff605e5f46131b75", + "maskedOsSha256": "bdae27b584e3b385623844047822966914cd63159561ebf1aa9fff5e320f5546" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "synth", + "euclid", + "repitch", + "quantizer", "vector", - "playmodes" + "slow-lfo" ], "keepStockFx2": false, "menu": { @@ -3304,29 +8401,52 @@ "SPATIALIZER", "COMB FILTER", "COMPRESSOR", - "LO-FI" + "LO-FI", + "EUCLID" ], - "fx2": [] + "fx2": [ + "EUCLID" + ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" + "bytes": 1132585, + "osSha256": "d9a436f76b2e15cbb67460b13853f7b6019527f278182d141171768b51a637ed", + "maskedOsSha256": "3bfa1d5aae81b5bb63d5a1fa23e3c9500dc24975812609591d364ca356d36227" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ "miniverb", "tapeecho", + "euclid", "repitch", "tapehead", - "usb-audio-out-tracks-main-cue", + "everb", + "bbd", + "lofi2", + "ring-sc", "quantizer", "synth", - "previewvol", + "cc-map", "sidechain-compressor", "vector", "playmodes", - "mute-modes" + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -3341,7 +8461,9 @@ "COMB FILTER", "SIDECHAIN_COMPRESSOR", "LO-FI", - "TAPEHEAD" + "EUCLID", + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -3355,14 +8477,18 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "DARK REV", "MINIVERB", "TAPE ECHO", - "TAPEHEAD" + "EUCLID", + "TAPEHEAD", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" }, "result": "refused" }, @@ -3370,16 +8496,34 @@ "moduleIds": [ "miniverb", "tapeecho", + "euclid", "repitch", "tapehead", - "usb-audio-out-tracks-main-cue", + "everb", + "bbd", + "lofi2", + "ring-sc", "quantizer", "synth", - "previewvol", + "cc-map", "sidechain-compressor", "vector", "playmodes", - "mute-modes" + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -3394,33 +8538,46 @@ "COMB FILTER", "SIDECHAIN_COMPRESSOR", "LO-FI", - "TAPEHEAD" + "EUCLID", + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", + "EUCLID", "TAPEHEAD", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b00 not free" }, "result": "refused" }, { "moduleIds": [ - "tapeecho", + "miniverb", "euclid", - "repitch", - "tapehead", - "usb-audio-out-tracks-main-cue", + "bbd", + "lofi2", + "ring-sc", "quantizer", - "cc-map", "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "output-matrix", + "apply-scene", + "direct-jump-kyoti", + "temp-save", + "tuner", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -3436,7 +8593,7 @@ "COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "RING_SC" ], "fx2": [ "FILTER", @@ -3450,31 +8607,37 @@ "COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "SPRING REV", - "TAPE ECHO", + "MINIVERB", "EUCLID", - "TAPEHEAD" + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "CC->FX2/FX1 page-2 cave + dispatch repoint: 724 B fits neither the clone window (from 0x400d7980) nor the overflow run" + "refused": "MUTE_MODES table PERSONALIZE getters at 0x400d7b80 not free" }, "result": "refused" }, { "moduleIds": [ - "tapeecho", + "miniverb", "euclid", - "repitch", - "tapehead", - "usb-audio-out-tracks-main-cue", + "bbd", + "lofi2", + "ring-sc", "quantizer", - "cc-map", "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "output-matrix", + "apply-scene", + "direct-jump-kyoti", + "temp-save", + "tuner", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -3490,24 +8653,35 @@ "COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "RING_SC" ], "fx2": [ - "TAPE ECHO", + "MINIVERB", "EUCLID", - "TAPEHEAD" + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "CC->FX2/FX1 page-2 cave + dispatch repoint: 724 B fits neither the clone window (from 0x400d7980) nor the overflow run" + "refused": "MUTE_MODES table PERSONALIZE setters at 0x400d7c00 not free" }, "result": "refused" }, { "moduleIds": [ + "repitch", + "airwindows-chorus", + "everb", + "ring-sc", + "usb-audio-out-tracks-main-cue", "synth", + "previewvol", + "cc-map", "vector", - "recorder-loop-fix" + "recorder-loop-fix", + "apply-scene", + "tuner" ], "keepStockFx2": true, "menu": { @@ -3521,7 +8695,8 @@ "SPATIALIZER", "COMB FILTER", "COMPRESSOR", - "LO-FI" + "LO-FI", + "RING_SC" ], "fx2": [ "FILTER", @@ -3535,9 +8710,9 @@ "COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "SPRING REV", - "DARK REV" + "AIR CHORUS", + "EVERB", + "RING_SC" ] }, "native": { @@ -3547,9 +8722,18 @@ }, { "moduleIds": [ + "repitch", + "airwindows-chorus", + "everb", + "ring-sc", + "usb-audio-out-tracks-main-cue", "synth", + "previewvol", + "cc-map", "vector", - "recorder-loop-fix" + "recorder-loop-fix", + "apply-scene", + "tuner" ], "keepStockFx2": false, "menu": { @@ -3563,9 +8747,14 @@ "SPATIALIZER", "COMB FILTER", "COMPRESSOR", - "LO-FI" + "LO-FI", + "RING_SC" ], - "fx2": [] + "fx2": [ + "AIR CHORUS", + "EVERB", + "RING_SC" + ] }, "native": { "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" @@ -3574,13 +8763,32 @@ }, { "moduleIds": [ + "tapeecho", "euclid", - "usb-audio-out-tracks-main-cue", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "lofi2", + "quantizer", + "synth", "previewvol", - "cc-map", "sidechain-compressor", "vector", - "playmodes" + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "beat-slicer", + "tuner", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -3595,7 +8803,8 @@ "COMB FILTER", "SIDECHAIN_COMPRESSOR", "LO-FI", - "EUCLID" + "EUCLID", + "TAPEHEAD" ], "fx2": [ "FILTER", @@ -3609,27 +8818,47 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "DARK REV", - "EUCLID" + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "LOFI2" ] }, "native": { - "bytes": 1130864, - "osSha256": "2e828cbf86ea8aa38916287c928c52a63682e2d6ade321b54618244631a1c195", - "maskedOsSha256": "3384eabab0f942511a3a72d4e8179999e4d1ea679616af296386fd552ee0a8c2" + "refused": "SIDECHAIN_COMPRESSOR sc_ui at 0x400d7980 not free" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ + "tapeecho", "euclid", - "usb-audio-out-tracks-main-cue", + "repitch", + "tapehead", + "airwindows-chorus", + "everb", + "lofi2", + "quantizer", + "synth", "previewvol", - "cc-map", "sidechain-compressor", "vector", - "playmodes" + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "beat-slicer", + "tuner", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -3644,26 +8873,30 @@ "COMB FILTER", "SIDECHAIN_COMPRESSOR", "LO-FI", - "EUCLID" + "EUCLID", + "TAPEHEAD" ], "fx2": [ + "TAPE ECHO", "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "LOFI2", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "bytes": 1130864, - "osSha256": "41a2e4e9c697cbcdb43d59b3e5775949477b32d00e08f1567fce7e055804b42a", - "maskedOsSha256": "714912dbd2db3d074f110a76611f0630797d9a721218e53a67107f998f1fe953" + "refused": "SIDECHAIN_COMPRESSOR sc_ui at 0x400d7b00 not free" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ - "euclid", - "repitch", - "quantizer", - "vector" + "ring-sc", + "synth", + "vector", + "slow-lfo" ], "keepStockFx2": true, "menu": { @@ -3678,7 +8911,7 @@ "COMB FILTER", "COMPRESSOR", "LO-FI", - "EUCLID" + "RING_SC" ], "fx2": [ "FILTER", @@ -3694,22 +8927,20 @@ "DELAY", "PLATE REV", "DARK REV", - "EUCLID" + "RING_SC" ] }, "native": { - "bytes": 1125357, - "osSha256": "a2f14d6ce374ada0ebffbee8a9a711f95b371ba70972812f8bad57ae42f62245", - "maskedOsSha256": "aa1dc951f6b07c6492c5db8b10dbe9f3c4a2093661ff1090c2774bc311ae5e3b" + "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ - "euclid", - "repitch", - "quantizer", - "vector" + "ring-sc", + "synth", + "vector", + "slow-lfo" ], "keepStockFx2": false, "menu": { @@ -3724,30 +8955,43 @@ "COMB FILTER", "COMPRESSOR", "LO-FI", - "EUCLID" + "RING_SC" ], "fx2": [ - "EUCLID" + "RING_SC" ] }, "native": { - "bytes": 1125357, - "osSha256": "e68df50a26b040ffd7d828984819643319d965a92ca3c464a06963fc33d1a966", - "maskedOsSha256": "6235642661a29570b259c6f65182d858ed634d6479ebb02de17b09339b928e5b" + "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ "miniverb", "tapeecho", "euclid", - "tapehead", + "repitch", + "everb", + "bbd", + "ring-sc", "quantizer", "previewvol", + "sidechain-compressor", "vector", + "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "arp-key-locks", + "beat-slicer", + "tuner", + "slow-lfo", + "stem-rec" ], "keepStockFx2": true, "menu": { @@ -3760,10 +9004,10 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "RING_SC" ], "fx2": [ "FILTER", @@ -3774,18 +9018,19 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "DARK REV", "MINIVERB", "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "EVERB", + "BBD", + "RING_SC" ] }, "native": { - "refused": "hold cave (copy) not free" + "refused": "SIDECHAIN_COMPRESSOR sc_ui at 0x400d7980 not free" }, "result": "refused" }, @@ -3794,12 +9039,27 @@ "miniverb", "tapeecho", "euclid", - "tapehead", + "repitch", + "everb", + "bbd", + "ring-sc", "quantizer", "previewvol", + "sidechain-compressor", "vector", + "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "arp-key-locks", + "beat-slicer", + "tuner", + "slow-lfo", + "stem-rec" ], "keepStockFx2": false, "menu": { @@ -3812,32 +9072,40 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "RING_SC" ], "fx2": [ "MINIVERB", "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "EVERB", + "BBD", + "RING_SC", + "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "past the stock zero run (or into the long chooser list)" + "refused": "SIDECHAIN_COMPRESSOR sc_ui at 0x400d7b00 not free" }, "result": "refused" }, { "moduleIds": [ - "tapehead", - "quantizer", - "previewvol", + "repitch", + "lofi2", + "ring-sc", + "synth", + "cc-map", "sidechain-compressor", "vector", - "playmodes", - "recorder-loop-fix" + "mute-modes", + "recorder-loop-fix", + "output-matrix", + "arp-key-locks", + "stem-rec" ], "keepStockFx2": true, "menu": { @@ -3852,7 +9120,7 @@ "COMB FILTER", "SIDECHAIN_COMPRESSOR", "LO-FI", - "TAPEHEAD" + "RING_SC" ], "fx2": [ "FILTER", @@ -3866,28 +9134,29 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "DARK REV", - "TAPEHEAD" + "LOFI2", + "RING_SC" ] }, "native": { - "bytes": 1128231, - "osSha256": "e67a74c4618cb562bad8565e5931266c7ee5ff1980f3bb7a1fb9886da0b82ee7", - "maskedOsSha256": "994ab9682662c583ef95830b872f70c03ec355b8edcd4f03e3f06021253ba7e8", - "platformArena": true + "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ - "tapehead", - "quantizer", - "previewvol", + "repitch", + "lofi2", + "ring-sc", + "synth", + "cc-map", "sidechain-compressor", "vector", - "playmodes", - "recorder-loop-fix" + "mute-modes", + "recorder-loop-fix", + "output-matrix", + "arp-key-locks", + "stem-rec" ], "keepStockFx2": false, "menu": { @@ -3902,30 +9171,52 @@ "COMB FILTER", "SIDECHAIN_COMPRESSOR", "LO-FI", - "TAPEHEAD" + "RING_SC" ], "fx2": [ - "TAPEHEAD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "bytes": 1128231, - "osSha256": "241a2ce4fdd91595ce6d6b0a958bafa37cc9146bf3da3f8b777c156014120c7b", - "maskedOsSha256": "08f2e74fa724899adc4c7fbb18c66b48d449fca8dfde43926a702b9c47edbafd", - "platformArena": true + "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ - "tapeecho", + "miniverb", "euclid", "repitch", "tapehead", - "cc-map", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "sidechain-compressor", "vector", - "mute-modes" + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -3938,10 +9229,11 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -3952,30 +9244,57 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "SPRING REV", - "TAPE ECHO", + "MINIVERB", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "MUTE_MODES table PERSONALIZE labels at 0x400d7b80 not free" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" }, "result": "refused" }, { "moduleIds": [ - "tapeecho", + "miniverb", "euclid", "repitch", "tapehead", - "cc-map", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", + "previewvol", + "sidechain-compressor", "vector", - "mute-modes" + "playmodes", + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -3988,28 +9307,44 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ - "TAPE ECHO", + "MINIVERB", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "MUTE_MODES table PERSONALIZE getters at 0x400d7c00 not free" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, { "moduleIds": [ - "miniverb", "euclid", + "bbd", + "lofi2", + "usb-audio-out-tracks-main-cue", "quantizer", - "vector" + "previewvol", + "sidechain-compressor", + "vector", + "mute-modes", + "output-matrix", + "quantize-live-rec-toggle", + "arp-key-locks", + "tuner" ], "keepStockFx2": true, "menu": { @@ -4022,7 +9357,7 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID" ], @@ -4035,28 +9370,34 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "SPRING REV", - "MINIVERB", - "EUCLID" + "EUCLID", + "BBD", + "LOFI2" ] }, "native": { - "bytes": 1125357, - "osSha256": "d2618c547c287ff118c91f022762c102623b53465b22330eccc63040583ed4d9", - "maskedOsSha256": "139f4b8c577f5e92d3753fdf6b602c1c57b4f3f2d32f001d21f4e91be50e77ba" + "refused": "MUTE_MODES mm_softmute at 0x400d7900 not free" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ - "miniverb", "euclid", + "bbd", + "lofi2", + "usb-audio-out-tracks-main-cue", "quantizer", - "vector" + "previewvol", + "sidechain-compressor", + "vector", + "mute-modes", + "output-matrix", + "quantize-live-rec-toggle", + "arp-key-locks", + "tuner" ], "keepStockFx2": false, "menu": { @@ -4069,33 +9410,29 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID" ], "fx2": [ - "MINIVERB", - "EUCLID" + "EUCLID", + "BBD", + "LOFI2", + "SIDECHAIN_COMPRESSOR" ] }, "native": { - "bytes": 1125357, - "osSha256": "1184f9e4cdf525f48faea8f8714fc20c7c95683c24b355246d62208bb6b5dd3c", - "maskedOsSha256": "75f0fd1b7ae52139c6c74355bf179fc4ceee9203b7c98eb0fa2751172ec05025" + "refused": "MUTE_MODES mm_softmute at 0x400d7900 not free" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ - "tapeecho", - "euclid", - "repitch", - "tapehead", + "bbd", "usb-audio-out-tracks-main-cue", + "sidechain-compressor", "vector", - "playmodes", - "mute-modes", - "recorder-loop-fix" + "slow-lfo" ], "keepStockFx2": true, "menu": { @@ -4108,10 +9445,8 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", - "LO-FI", - "EUCLID", - "TAPEHEAD" + "SIDECHAIN_COMPRESSOR", + "LO-FI" ], "fx2": [ "FILTER", @@ -4122,32 +9457,27 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", "PLATE REV", - "SPRING REV", - "TAPE ECHO", - "EUCLID", - "TAPEHEAD" + "BBD" ] }, "native": { - "refused": "past the stock zero run (or into the long chooser list)" + "bytes": 1129919, + "osSha256": "6279b22306cc7aa877275f9bc53b6729a5cb3e4dc7854dbc6d454cf55a1ebcb6", + "maskedOsSha256": "001a25aadd4249d535ae79b1686644e3c5b0726c1789dd90d8da04a1c7d20bac" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ - "tapeecho", - "euclid", - "repitch", - "tapehead", + "bbd", "usb-audio-out-tracks-main-cue", + "sidechain-compressor", "vector", - "playmodes", - "mute-modes", - "recorder-loop-fix" + "slow-lfo" ], "keepStockFx2": false, "menu": { @@ -4160,30 +9490,30 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", - "LO-FI", - "EUCLID", - "TAPEHEAD" + "SIDECHAIN_COMPRESSOR", + "LO-FI" ], "fx2": [ - "TAPE ECHO", - "EUCLID", - "TAPEHEAD" + "BBD", + "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "past the stock zero run (or into the long chooser list)" + "bytes": 1129919, + "osSha256": "2dbdc799418ea255fdf60229488976a4ae0fe771e46ab6d2b9e042cf121f7484", + "maskedOsSha256": "15a9aca1638c1b7a2a263a58cc1a1e3334bd3ca9b8c8ffb8e459501ed3982d4c" }, - "result": "refused" + "result": "masked" }, { "moduleIds": [ + "repitch", "usb-audio-out-tracks-main-cue", - "previewvol", - "cc-map", "sidechain-compressor", "vector", - "playmodes" + "quantize-live-rec-toggle", + "direct-jump-kyoti", + "bar-led" ], "keepStockFx2": true, "menu": { @@ -4216,20 +9546,21 @@ ] }, "native": { - "bytes": 1128783, - "osSha256": "d1308c868b77c13ce6d7b95aab7010ee2f6b9324be62d6ce730443b0e4901dcd", - "maskedOsSha256": "6c5c54cedc954f7cedd4dabf7264799b5d94406258bebb61f02c4743c4ed8f98" + "bytes": 1131217, + "osSha256": "c37dce33c6388cf60ca70906c64735087596c1c71bc049e4a07ed93c9c453bfc", + "maskedOsSha256": "425f022a53a0bfc8aedb146fc54bd66ca9ab9b249f0f12d4d285a1ef138b3a0b" }, "result": "masked" }, { "moduleIds": [ + "repitch", "usb-audio-out-tracks-main-cue", - "previewvol", - "cc-map", "sidechain-compressor", "vector", - "playmodes" + "quantize-live-rec-toggle", + "direct-jump-kyoti", + "bar-led" ], "keepStockFx2": false, "menu": { @@ -4250,27 +9581,43 @@ ] }, "native": { - "bytes": 1128783, - "osSha256": "dc68b3445fdefde0c97fcf870f7be3d4853e70be119e48955d664c944476a42c", - "maskedOsSha256": "d2b01d16411e375df24bf8dba35f14c0277d8a9f021fdd5d9c8dafd4b8022581" + "bytes": 1131217, + "osSha256": "dba5c2e5e1590897f1c1bcd3f817341fc670cd7084ed863d8fec977e5a10ee47", + "maskedOsSha256": "4af8e12e9b2fd34776afc442b050342e3daedc983c1ca054dd876eb0a3df6484" }, "result": "masked" }, { "moduleIds": [ "miniverb", - "tapeecho", "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", + "quantizer", "synth", - "cc-map", + "previewvol", "sidechain-compressor", "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "slow-lfo", + "bar-led", + "stem-rec" ], "keepStockFx2": true, "menu": { @@ -4286,7 +9633,8 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -4300,33 +9648,52 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", "MINIVERB", - "TAPE ECHO", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" }, "result": "refused" }, { "moduleIds": [ "miniverb", - "tapeecho", "euclid", "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", "usb-audio-out-tracks-main-cue", + "quantizer", "synth", - "cc-map", + "previewvol", "sidechain-compressor", "vector", "playmodes", "mute-modes", - "recorder-loop-fix" + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "slow-lfo", + "bar-led", + "stem-rec" ], "keepStockFx2": false, "menu": { @@ -4342,29 +9709,45 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "EUCLID", - "TAPEHEAD" + "TAPEHEAD", + "RING_SC" ], "fx2": [ "MINIVERB", - "TAPE ECHO", "EUCLID", "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, { "moduleIds": [ "miniverb", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", "quantizer", - "previewvol", + "synth", "vector", - "playmodes", - "recorder-loop-fix" + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -4392,27 +9775,37 @@ "COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "DARK REV", - "MINIVERB" + "MINIVERB", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2" ] }, "native": { - "bytes": 1128231, - "osSha256": "d2bff104533227197adbf80dd2c4e96e85efa5756eb01103db0d5370f3ee3496", - "maskedOsSha256": "e621d471b4ce0a1c979c1b9ba9e295fc39484e7a9c2d9672eaf59335c260cee9", - "platformArena": true + "refused": "MUTE_MODES table PERSONALIZE labels at 0x400d7c00 not free" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ "miniverb", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", "quantizer", - "previewvol", + "synth", "vector", - "playmodes", - "recorder-loop-fix" + "mute-modes", + "recorder-loop-fix", + "poly8", + "output-matrix", + "beat-slicer", + "tuner", + "slow-lfo", + "bar-led", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -4429,25 +9822,37 @@ "LO-FI" ], "fx2": [ - "MINIVERB" + "MINIVERB", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2" ] }, "native": { - "bytes": 1128231, - "osSha256": "ec3123b9f8105d3c203795b05859b85f7662b9ad09dcaf2ddacc18ca66ce9f7f", - "maskedOsSha256": "62a33ae12d26326d58ccd6a4630bea0a76649282320c4ef2ec0070b0f1f57068", - "platformArena": true + "refused": "MUTE_MODES table PERSONALIZE labels at 0x400d7c00 not free" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ "miniverb", - "euclid", + "tapeecho", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "usb-audio-out-tracks-main-cue", "previewvol", - "cc-map", + "sidechain-compressor", "vector", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "apply-scene", + "dejavu", + "arp-key-locks", + "temp-save", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -4460,9 +9865,8 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", - "LO-FI", - "EUCLID" + "SIDECHAIN_COMPRESSOR", + "LO-FI" ], "fx2": [ "FILTER", @@ -4473,31 +9877,41 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "SPRING REV", "MINIVERB", - "EUCLID" + "TAPE ECHO", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2" ] }, "native": { - "bytes": 1123175, - "osSha256": "eefb3b4629743dad355ba7312375bd12ffde2807b665503a10c4d0e9a3987234", - "maskedOsSha256": "259cc4650e6790086ef4fc3020f71f1677ce17dd4958158fb472f5164c180210", - "platformArena": true + "refused": "SIDECHAIN_COMPRESSOR sc_ui at 0x400d7980 not free" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ "miniverb", - "euclid", + "tapeecho", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "usb-audio-out-tracks-main-cue", "previewvol", - "cc-map", + "sidechain-compressor", "vector", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "apply-scene", + "dejavu", + "arp-key-locks", + "temp-save", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -4510,29 +9924,52 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", - "LO-FI", - "EUCLID" + "SIDECHAIN_COMPRESSOR", + "LO-FI" ], "fx2": [ "MINIVERB", - "EUCLID" + "TAPE ECHO", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "SIDECHAIN_COMPRESSOR" ] }, "native": { - "bytes": 1123175, - "osSha256": "823fba6f60681dd71156c6dd8936c6efa689706bdbb91280acd9f0659e2c1ca7", - "maskedOsSha256": "410bae410ed9ecfd29dca346e7c70f82d375b34de0087ef48b1e62092d909d4c", - "platformArena": true + "refused": "SIDECHAIN_COMPRESSOR sc_ui at 0x400d7a00 not free" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "synth", + "previewvol", "cc-map", + "sidechain-compressor", "vector", - "recorder-loop-fix" + "playmodes", + "recorder-loop-fix", + "poly8", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -4545,9 +9982,11 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", - "TAPEHEAD" + "EUCLID", + "TAPEHEAD", + "RING_SC" ], "fx2": [ "FILTER", @@ -4558,28 +9997,53 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "DARK REV", - "TAPEHEAD" + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "bytes": 1121076, - "osSha256": "55e2fd79f377bdfb1b8cb179475fdbee4b5d2fdc6b42029f204bb1b59e3cae35", - "maskedOsSha256": "8bcd50128337779fabf693aac3502021b6d74bb8c692ab969c9f6540b2231b8e", - "platformArena": true + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ + "miniverb", + "tapeecho", + "euclid", + "repitch", "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", + "synth", + "previewvol", "cc-map", + "sidechain-compressor", "vector", - "recorder-loop-fix" + "playmodes", + "recorder-loop-fix", + "poly8", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "bar-led", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -4592,31 +10056,61 @@ "CHORUS", "SPATIALIZER", "COMB FILTER", - "COMPRESSOR", + "SIDECHAIN_COMPRESSOR", "LO-FI", - "TAPEHEAD" + "EUCLID", + "TAPEHEAD", + "RING_SC" ], "fx2": [ - "TAPEHEAD" + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", + "RING_SC", + "SIDECHAIN_COMPRESSOR" ] }, "native": { - "bytes": 1121076, - "osSha256": "0421c34d03636eea64a4593a0abe0e7800b64670709fa2bc0ebcd034f1deadaa", - "maskedOsSha256": "7c64618cc7726d2a3ecd836bc7a40faee6f92d52508e4faa4236f7c52ed28dd8", - "platformArena": true + "refused": "SYNTH MACHINE fm_qzc at 0x400d7b80 not free" }, - "result": "masked" + "result": "refused" }, { "moduleIds": [ - "repitch", + "miniverb", + "tapeecho", + "euclid", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", "previewvol", + "cc-map", "sidechain-compressor", "vector", - "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "stem-rec", + "tiempos" ], "keepStockFx2": true, "menu": { @@ -4630,7 +10124,9 @@ "SPATIALIZER", "COMB FILTER", "SIDECHAIN_COMPRESSOR", - "LO-FI" + "LO-FI", + "EUCLID", + "TAPEHEAD" ], "fx2": [ "FILTER", @@ -4644,24 +10140,52 @@ "SIDECHAIN_COMPRESSOR", "LO-FI", "DELAY", - "PLATE REV", - "DARK REV" + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2" ] }, "native": { - "refused": "MUTE_MODES table PERSONALIZE labels at 0x400d7b80 not free" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7a00 not free" }, "result": "refused" }, { "moduleIds": [ - "repitch", + "miniverb", + "tapeecho", + "euclid", + "tapehead", + "airwindows-chorus", + "everb", + "bbd", + "lofi2", + "usb-audio-out-tracks-main-cue", + "quantizer", + "synth", "previewvol", + "cc-map", "sidechain-compressor", "vector", - "playmodes", "mute-modes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "output-matrix", + "quantize-live-rec-toggle", + "apply-scene", + "direct-jump-kyoti", + "dejavu", + "arp-key-locks", + "temp-save", + "beat-slicer", + "tuner", + "stem-rec", + "tiempos" ], "keepStockFx2": false, "menu": { @@ -4675,28 +10199,49 @@ "SPATIALIZER", "COMB FILTER", "SIDECHAIN_COMPRESSOR", - "LO-FI" + "LO-FI", + "EUCLID", + "TAPEHEAD" ], "fx2": [ + "MINIVERB", + "TAPE ECHO", + "EUCLID", + "TAPEHEAD", + "AIR CHORUS", + "EVERB", + "BBD", + "LOFI2", "SIDECHAIN_COMPRESSOR" ] }, "native": { - "refused": "MUTE_MODES table PERSONALIZE getters at 0x400d7c00 not free" + "refused": "SIDECHAIN_COMPRESSOR sc_cf at 0x400d7b80 not free" }, "result": "refused" }, { "moduleIds": [ "miniverb", - "euclid", - "repitch", - "tapehead", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", "quantizer", "synth", + "previewvol", "vector", "playmodes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "quantize-live-rec-toggle", + "apply-scene", + "dejavu", + "temp-save", + "beat-slicer", + "slow-lfo", + "bar-led", + "stem-rec" ], "keepStockFx2": true, "menu": { @@ -4711,8 +10256,7 @@ "COMB FILTER", "COMPRESSOR", "LO-FI", - "EUCLID", - "TAPEHEAD" + "RING_SC" ], "fx2": [ "FILTER", @@ -4726,28 +10270,39 @@ "COMPRESSOR", "LO-FI", "DELAY", - "DARK REV", "MINIVERB", - "EUCLID", - "TAPEHEAD" + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "DEJAVU table LFO WAVE icons + DJV at 0x400d7b80 not free" }, "result": "refused" }, { "moduleIds": [ "miniverb", - "euclid", - "repitch", - "tapehead", + "bbd", + "lofi2", + "ring-sc", + "usb-audio-out-tracks-main-cue", "quantizer", "synth", + "previewvol", "vector", "playmodes", - "recorder-loop-fix" + "recorder-loop-fix", + "poly8", + "quantize-live-rec-toggle", + "apply-scene", + "dejavu", + "temp-save", + "beat-slicer", + "slow-lfo", + "bar-led", + "stem-rec" ], "keepStockFx2": false, "menu": { @@ -4762,17 +10317,17 @@ "COMB FILTER", "COMPRESSOR", "LO-FI", - "EUCLID", - "TAPEHEAD" + "RING_SC" ], "fx2": [ "MINIVERB", - "EUCLID", - "TAPEHEAD" + "BBD", + "LOFI2", + "RING_SC" ] }, "native": { - "refused": "remix 'octamod-composition-proof' has colliding modules:\n ColdFire cave: quantizer's linked unit qzk and synth's linked unit fm_qzk both claim 0x400d2cb0\n ColdFire cave: quantizer's linked unit qzs and synth's linked unit fm_qzs both claim 0x400d2ca8\n hook site: quantizer and synth both claim 0x40055170 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050e60 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc58 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbde -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fbfe -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fc94 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fce0 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd06 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x4004fd20 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40050254 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40045918 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40044968 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40065bca -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400866cc -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400867a2 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x400888aa -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40010212 -- the second jmp overwrites the first\n hook site: quantizer and synth both claim 0x40025ac2 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40002318 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400334d8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c928 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003d718 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4004c36a -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003c980 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400786c8 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x400585dc -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005221e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x40078886 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4007981c -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a616 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4005a850 -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003a52e -- the second jmp overwrites the first\n hook site: synth and vector both claim 0x4003cd98 -- the second jmp overwrites the first\n hook site: quantizer (detour CHROMATIC drawer: the octave number beside the keyboard is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) and synth (detour CHROMATIC drawer common argument push preserves MIDI stack; audio octave is qz_oct on a synth track, the position 0 / 1 / -1 on a sample track, with ROOT's name before it when a scale is on) both claim 0x400449be -- both rewrite the same instruction\n poke site: quantizer (table ref SEQUENCER labels) and synth (table ref SEQUENCER labels) both claim 0x40065bd8 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER getters) and synth (table ref SEQUENCER getters) both claim 0x40065bde -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065cc4 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d3e -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d58 -- both rewrite the same bytes\n poke site: quantizer (table ref SEQUENCER setters) and synth (table ref SEQUENCER setters) both claim 0x40065d72 -- both rewrite the same bytes\n poke site: quantizer (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) and synth (poke SEQUENCER window: 3 -> 6 rows (SCALE, ROOT, GLIDE; 3 visible, scrolls)) both claim 0x40065c7c -- both rewrite the same bytes\n poke site: synth (poke machine chooser has six rows, FM SYNTH the last) and vector (poke VECTOR is machine chooser row six) both claim 0x40079248 -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP selector has six rows) and vector (poke VECTOR is machine chooser row six) both claim 0x400585fa -- both rewrite the same bytes\n poke site: synth (poke SRC SETUP name lookup admits FM) and vector (poke VECTOR is machine chooser row six) both claim 0x4003c950 -- both rewrite the same bytes\n poke site: synth (poke machine chooser draws FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40078678 -- both rewrite the same bytes\n poke site: synth (poke machine chooser highlights FM) and vector (poke VECTOR is machine chooser row six) both claim 0x400786ce -- both rewrite the same bytes\n poke site: synth (poke machine chooser persists FM) and vector (poke VECTOR is machine chooser row six) both claim 0x40079904 -- both rewrite the same bytes\n grown table: quantizer's SEQUENCER labels and synth's SEQUENCER labels both claim stock array 0x400b27d0 -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER getters and synth's SEQUENCER getters both claim stock array 0x400b27dc -- each would relocate its own copy and repoint different refs\n grown table: quantizer's SEQUENCER setters and synth's SEQUENCER setters both claim stock array 0x400b282c -- each would relocate its own copy and repoint different refs" + "refused": "label formatters do not fit: BBD slot 6 needs 54 B; the clone window ends at 0x400d7c3c and the overflow run at 0x400d2ce0 (next free 0x400d2ce0)" }, "result": "refused" } diff --git a/sdk/octabam/modules/vector/README.md b/sdk/octabam/modules/vector/README.md index 90e654e9e..3dde9dc2c 100644 --- a/sdk/octabam/modules/vector/README.md +++ b/sdk/octabam/modules/vector/README.md @@ -1,8 +1,8 @@ # VECTOR -Version: `0.2.4-experimental` · author: @repeat98 / Octamod contributors. +Version: `0.3.0-experimental` · author: @repeat98 / Octamod contributors. -Native SRC generator for Flex and Static samples. Physical hardware remains untested; the owner approved release and closure with physical reboot/audio unverified on 9 October 2026. +Native SRC generator for Flex and Static samples, and from 0.3.0 a MIDI generator for the eight MIDI tracks. The MIDI generator ran on the owner's MKII over USB (21 October 2026, development bases); the sample machine's physical hardware testing remains owner-waived (9 October 2026). ![VECTOR phrase generator](presentation/thumbnail.svg) @@ -10,7 +10,7 @@ Native SRC generator for Flex and Static samples. Physical hardware remains unte VECTOR creates real note trigs and PTCH/HOLD/VOL locks for one Flex or Static sample. Turn a generator parameter on either native SRC page to commit the sequence immediately, including while playing. Knob edits keep the current seed; YES makes a fresh variation. The normal Octatrack track display, sample name, Part, native dials and sequencer remain in use. No generator window is allocated. -The algorithm is original, inspired by Iftah’s Sting 2; no Sting source or artwork was copied. It generates internal sample notes and emits no MIDI. STOP/PLAY preserves populated tracks. When native playback starts, VECTOR fills only empty tracks and refuses existing note, recorder, trigless, slide or lock data. +The algorithm is original, inspired by Iftah’s Sting 2; no Sting source or artwork was copied. On an audio track it generates internal sample notes and emits no MIDI; on a MIDI track it writes MIDI note trigs, which the stock sequencer sends ([VECTOR on MIDI tracks](#vector-on-midi-tracks)). STOP/PLAY preserves populated tracks. When native playback starts, VECTOR fills only empty tracks and refuses existing note, recorder, trigless, slide or lock data. ## Controls @@ -57,9 +57,38 @@ The Part’s unused NEIGHBOR slots store the marker and nine packed settings byt The modal uses the stock list controller and window chrome, as Analog BD does for 808/909. Confirming a stock sample slot preserves VECTOR, its generator parameters and the current phrase. NO cancels a pool choice without changing the backing pool. +## VECTOR on MIDI tracks + +VECTOR is the first entry of the MIDI generator list, which the Modwerk base (over USB) or VECTOR's own card build adds to MIDI mode. It writes real note trigs with NOTE, VEL and LEN locks into the MIDI track; the stock MIDI sequencer plays them, so tempo, track speed, swing, trig conditions, the track's channel and every note-off stay stock's. + +| Page | Encoder | Control | Default | On a MIDI track | +|---|---|---|---|---| +| SRC | A-F | TYPE, DENS, ROOT, SCAL, OCT, SEED | 11, 11, C, MIN, the track's octave, track + 1 | TYPE, DENS, ROOT, SCAL and SEED as on audio tracks. OCT is the track's NOTE: the root in that octave, shown as a note (C3); OCT and ROOT both set NOTE, so a trig placed by hand plays the root. The scale is built on the C of that octave. | +| AMP | A-F | VEL, ACNT, GATE, SPAN, OFST, RPT | the track's VEL and LEN, 48, 12, 0, OFF | VEL is the track's VEL, real MIDI velocity: strong notes get it, ACNT lowers the others. GATE is the track's LEN, in stock LEN units and shown as a note length; generated LEN locks range from half to all of it. SPAN, OFST and RPT as on audio tracks. | +| FUNC+AMP | A-D | ROT, DIR, PROB, HUMN | 0, FWD, OFF, 0 | ROT and DIR as on audio tracks. PROB gives every note off the beat (steps 2-4, 6-8, ...) a stock trig condition from 99% down to 1%; notes on the beat always play. HUMN moves every note by up to that many micro-timing units (stock's ±23) either way. Both come from the seed and the step, so turning another control keeps them. | + +1. Press MIDI and select a MIDI track. Double-tap its TRACK key (or double-tap SRC): MIDI NOTE SETUP opens with OFF and VECTOR on its left. Highlight VECTOR with DOWN and press YES. An empty track gets its first phrase at once. +2. Press SRC. The NOTE page now shows TYPE, DENS, ROOT, SCAL, OCT and SEED. Turn any of them to write a new phrase, also while playing. YES makes a fresh variation on any VECTOR page. +3. Press AMP for VEL, ACNT, GATE, SPAN, OFST and RPT, and FUNC+AMP for ROT, DIR, PROB and HUMN; FUNC+AMP or NO returns. Set the track's channel in MIDI NOTE SETUP (CHAN) to hear it. +4. To leave, open MIDI NOTE SETUP and choose OFF. The phrase stays on the track as ordinary trigs and locks. + +LFO, FX1 and FX2 stay stock's: the track's LFOs, PB, AT and CC1-10 work as on any MIDI track. FX1 and FX2 are kept for MIDI effects (planned, not built). + +Changes to stock flows, while a MIDI track runs VECTOR (the README's minor changes, owner-requested on 21 and 24 October 2026): + +- **Double-tap TRACK in MIDI mode** opens MIDI NOTE SETUP. Stock does nothing there; with no MIDI generator installed it still does nothing. +- **MIDI NOTE SETUP's empty left half** lists the generators. UP, DOWN and YES move and choose; YES also confirms the window's own values as before. CHAN, BANK, PROG and SBNK are unchanged. +- **The SRC page** shows VECTOR's controls instead of NOTE, VEL, LEN and NOT2-4. Choosing VECTOR sets NOTE to the C of its octave and turns NOT2-4 off (64), which have no place on VECTOR's page; VEL and LEN stay and are VECTOR's VEL and GATE. +- **The AMP page and FUNC+AMP** show VECTOR's controls instead of the arpeggiator's. Choosing VECTOR puts the track's arpeggiator back to stock's defaults with MODE OFF and keeps it off; its 16 arp note bytes then hold VECTOR's controls. +- Holding a trig or a scene shows stock's NOTE and ARP pages, so locks there stay stock's: hold a trig on SRC to change one generated note's NOTE, VEL or LEN. Choosing OFF restores stock's arpeggiator defaults and leaves NOTE, VEL and LEN as VECTOR set them. + +Where it is stored: the Part. The track's arp step mask holds 'M' and VECTOR's id (stock's validator never reads it), and its arp note bytes hold the controls other than OCT, VEL and GATE (value - 64, within the -64..63 stock's validator keeps). Without VECTOR the track reads as an ordinary MIDI track whose arpeggiator is off. If its ARP SETUP is edited then, the stored controls show there as arp notes, and turning MODE on would play them; installing VECTOR again turns MODE off. NOTE SETUP's two unused slots are not used: its encoders D and F edit them unseen. + +Cost, measured on the owner's MKII (21 October 2026, development base, PLAY running): the base's generator code takes 4-10 µs a UI tick, with no generator installed 2 µs. A control turn that rewrites all 64 steps takes 0.5 ms on the UI task (0.66 ms at most of 40); the longest time between audio frames stayed 406-417 µs while turning, and the MIDI notes kept their 125 ms grid within 1 ms. Nothing runs in an interrupt. [TESTING.md](TESTING.md#midi-generator-on-the-unit) has the method. + ## Compatibility and limitations -OS 1.40C is the local base. Captures and sequence checks use octemu’s MKII panel. Hardware and MKI support remain unverified. Generation runs on the UI task; the adapter uses native lock-index rebuilding and live track publication. This emulator result does not establish hardware race safety or an audio continuity guarantee. +OS 1.40C is the local base. Captures and sequence checks use octemu’s MKII panel; the MIDI generator ran on the owner's MKII. MKI support remains unverified. Generation runs on the UI task. From 0.3.0 it sets its own track's bit of stock's per-step lock index instead of calling stock's rebuild of every track (about 3 ms on the unit), then publishes the track with stock's routine. The emulator result does not establish hardware race safety or an audio continuity guarantee for the sample machine. Analog BD shares chooser/display hook sites and conflicts. Other combinations, including OctaKit, need explicit integration checks. Generator settings are not LFO, scene or p-lock destinations; the ordinary sample controls remain available through the edit view. Pitch is limited to ±12 semitones. diff --git a/sdk/octabam/modules/vector/TESTING.md b/sdk/octabam/modules/vector/TESTING.md index 4384bef3c..73bfb693d 100644 --- a/sdk/octabam/modules/vector/TESTING.md +++ b/sdk/octabam/modules/vector/TESTING.md @@ -1,5 +1,20 @@ # VECTOR tests and measurements +## SRC SETUP page 2 on VECTOR's own row (card builds, #1119; prepared as 0.2.6, released in 0.3.0) + +Report #1119 (also #842/#843): on a card build with POLY8, a double tap on SRC on a VECTOR track showed the stock Flex/Static setup (TSTR AUTO) instead of SEED/SPAN. Beside POLY8, VECTOR is machine row 6 or 7; POLY8's shared SRC SETUP hooks replace VECTOR's and never asked VECTOR, and `st_setup_page` itself also wanted SRC SETUP's cursor (0x460d5c30) on row 5. 0.2.6 drops that test: its callers already ask on VECTOR's row (row 5 in `hooks.s` alone, the base's row over USB, POLY8's row with POLY8 0.3.3). The USB adapter dropped the same test since 0.2.5, so `vector_runtime.py` no longer rewrites it; the package's control unit source is byte-identical to 0.2.5's and the 0.2.5 USB package stays published (`lagsBehind`). The 0.2.5 hardware report above that run covers those bytes. + +Emulator, 1 November 2026 (`ot_emu` built from upstream octabam, MKII panel, DSP on, empty scratch card; card images composed by the site's builder from packages built in the isolated toolchain; `scripts/capture-module-ui.py` with 50 ms keys: FUNC+SRC, DOWN to VECTOR, YES, YES on STATIC, NO, SRC, FUNC+SRC, encoder A +3, encoder E +2): + +| Image | Result | +| --- | --- | +| main (VECTOR 0.2.5, POLY8 0.3.2) + FM Synth | reproduces the report: SRC shows SRCâ–¸VECTOR with TYPE…ACNT, SRC SETUP shows LOOP SLIC LEN RATE TSTR(AUTO) TSNS | +| VECTOR 0.2.6 + POLY8 0.3.3 + FM Synth | SRC SETUP shows SEED 1, SPAN 12, OFST 0, ROT 0, RPT OFF, DIR FWD; encoder A gives SEED 4, encoder E RPT 2; cursor on POLY8 shows the stock setup | +| VECTOR 0.2.6 + POLY8 0.3.2 + FM Synth | not run; POLY8 0.3.2's shared hooks never call `st_setup_page`, so the stock setup stays as on main (code read) | +| VECTOR alone, 0.2.5 and 0.2.6 | all eight screens of the plan pixel-identical; page 2 on row 5, encoders A and E as above | + +`verify_native.py` passes in the pinned toolchain (sanitizer tests, `control.s` reproduces). Not tested: a unit, MKI, saving and reloading, a power cycle, listening. + ## 0.2.5 over USB on a MKII (SRC SETUP page 2, #972) Version `0.2.5-experimental` changes only the USB package: its `ot_machines` record is a `struct modwerk_machine_setup` (SETUP_PAGE) naming the card build's own `st_setup_page` and `st_setup_knob`, and the package's source variant drops `st_setup_page`'s test for SRC SETUP's cursor on row 5. The card source and every result in the sections below are 0.2.4's. @@ -50,8 +65,90 @@ Maximum observed native commit stack is 1,048 bytes; validation is 252. The 1,21 The current 110-profile VECTOR coverage matrix has 46 matching module-owned builds outside existing platform/logger writes and 64 matching refusals, zero mismatches. The changed original OS is refused. The source-only package build and complete importer inventory pass; `sdk/native-comparisons/vector.json` binds the current native source. Private VECT349A01 ELUP packaging round-trips to the exact tested MAIN; update SHA-256 `a2bc9e1892c5bda40083c61abe19c73c9ff64fd73ff9b88d975a2c0f5b456130`. The standard common worker and deployed download are verified separately during release completion. +## MIDI generator on the unit + +0.3.0 on the owner's MKII, 21 October 2026: development twins of the Modwerk base built from this branch (`build_core.py --dsp-loader --usb-midi --site-events --table-owners … --dev`), RAM-booted, VECTOR installed over USB as a runtime package (`try`), a disposable project (LIVE/PROJECT 261019), bank A, Part 1, MIDI track 1. Steps were sent with `scripts/device-send.py`; screens were read from `png:` captures; Part and pattern bytes with `mem:`. Not a card (non-USB) build on hardware: the card build was checked by octabam's native builder only (`module:verify`). + +| What | Result | +|---|---| +| No generator installed, MIDI mode, double-tap TRACK | nothing happens, as stock | +| VECTOR installed, double-tap T1 or SRC | MIDI NOTE SETUP opens with OFF and VECTOR in its left half; CHAN, BANK, PROG and SBNK unchanged; UP/DOWN move the highlight | +| YES on VECTOR | the arp step mask reads `4d56` ('M', 'V'); the arp note bytes hold the twelve defaults (value - 64) and the mark; MODE OFF | +| ARP page, FUNC+AMP, NO | TYPE, DENS, ROOT, SCAL, GATE, ACNT with their values; FUNC+AMP SEED, SPAN, OFST, ROT, RPT, DIR; NO back | +| DENS +2, then YES | 13 notes in 16 steps with NOTE/VEL/LEN locks (C minor around C3, VEL 100/81); YES gives seed 2 and a new phrase | +| PLAY with CHAN 1, MIDI recorded over USB (`midimon`) | the phrase as note-ons and note-offs on channel 1, the 16-step phrase repeating every 2 s at 120 BPM, accents and lengths as written | +| VECTOR removed on its own page | stock's ARP page and ARP SETUP return, no crash; reinstalled, the VECTOR page returns | +| MODE turned on while VECTOR was away, then VECTOR installed | MODE back to OFF (and a MODE 6 left from before: OFF on install) | +| Crash record during all of the above | unchanged (record 12, older than this work) | + +Layout A (the owner's choice of 24 October 2026: VECTOR on SRC and AMP, LFO, FX1 and FX2 stock's), on the owner's MKII, 24 October 2026: a development twin of the base built from this branch merged with `main` (base `4fd515ff…`), RAM-booted, VECTOR installed with `try`, the same disposable project (bank A, Part 1, pattern 16, MIDI track 1, CHAN 1, 132 BPM). MIDI recorded over USB with `midimon`. + +| What | Result | +|---|---| +| No generator installed, double-tap T1 in MIDI mode | nothing happens, as stock | +| VECTOR installed on a track still holding 21 October's layout | SRC shows TYPE 11, DENS 11, ROOT C, SCAL MIN, OCT C3, SEED 2; OFF then VECTOR again puts the new defaults in the arp note bytes (mark `V`, PROB and HUMN 0, byte 4 unused), NOTE 48, VEL 100, LEN 6, NOT2-4 64 | +| SRC, AMP, FUNC+AMP, LFO, FX1 | SRC: TYPE DENS ROOT SCAL OCT SEED; AMP: VEL ACNT GATE SPAN OFST RPT; FUNC+AMP: ROT DIR PROB HUMN and two empty slots; LFO and FX1 stock's, and LFO's SPD1 turns stock's value (32, 33, 32) | +| OCT +1, ROOT +2 | NOTE 48 to 62 (D4); the phrase's NOTE locks move into D (step 1: 36 to 50) | +| PROB +5 | stock's label 91%; every note off the beat gets condition 25, the notes on the beat none | +| PROB 21 (1%), PLAY 12 s | 27 note-ons, all on steps 1, 5, 9 and 13 at VEL 100; none of the 46 notes off the beat played | +| HUMN 23, PLAY 8 s | the 11 notes of each bar move by their written offsets: all 50 note-ons within 1.0 ms (mean 0.3 ms) of grid + offset x 1/24 step; a negative offset on the first step does not sound before PLAY, as stock | +| YES; VEL -20; GATE +4 | SEED 1 to 2 and a new phrase; the track's VEL 100 to 80 and LEN 6 to 10; strong notes VEL 80, others 64, LEN locks 5 to 10 | +| Grid recording, hold TRIG 1 on SRC | stock's NOTE page with the step's locks (D4, 80, 7); turning NOTE locks D#4; letting go shows VECTOR's page again | +| OFF; VECTOR again; module removed | stock's NOTE (D4, 80, 10) and ARP (MODE OFF) pages, arp step mask `ffff`; VECTOR again: its defaults, NOTE to C4; removed: stock's pages, nothing installed | +| Crash record | unchanged (record 12) | + +Cost with the 21 October method (pattern length 64, DENS 16, every step a note, PLAY, 40 turns of TYPE): 0.52 ms a turn on average, 0.69 ms the longest (0.51 and 0.66 ms on 21 October; the trig words for PROB and HUMN are new). The base's generator code took 10.5-11.9 µs a UI tick on VECTOR's page while playing. The MIDI notes kept their grid while turning: 59 note-ons 113.0-114.0 ms apart (113.6 ms at 132 BPM). The longest time between audio frames was 423-425 µs while turning and 422-424 µs playing without a turn, so this base's normal is a little higher than 21 October's (406-417 µs) and the turns add nothing measurable. + +Cost, with the base's development profile (`modwerk_cost[24]`-`[27]`, DTIM3 at 132 MHz, read over `mem` 5 s apart; `cost.py` in the session's private tools): + +| State | Base's MIDI generator code per UI tick (61 a second) | +|---|---| +| No generator installed | 2.2-2.4 µs | +| VECTOR installed, audio mode | 4.1-4.2 µs | +| MIDI mode: NOTE page, VECTOR page, NOTE SETUP with the list, playing | 7.3-10.2 µs | + +A control turn rewrites the phrase on the UI task. Worst case measured: pattern length 64, DENS 16 (every step a note), PLAY running, 40 turns of TYPE and ACNT in 4 s, MIDI recorded throughout: + +| Build | Mean | Longest | +|---|---|---| +| Stock's lock-index rebuild, record copied in and out | 3.92 ms | 4.24 ms | +| Own track's lock-index bit | 1.76 ms | 1.95 ms | +| Plus the scale's pitches once a phrase | 1.29 ms | 1.47 ms | +| Plus the record written in place (0.3.0) | 0.51 ms | 0.66 ms | + +A temporary probe (not shipped) split the 1.3 ms build by stage: copying the record in 331 µs, the phrase 268 µs, writing it 178 µs, committing and mirroring 434 µs, saving and publishing 31 µs. The longest time between audio frames stayed 406-417 µs (normal 380-420) through every burst, and the recorded MIDI kept its grid: 96 note-ons 124-126 ms apart, every two-step span 249-251 ms. The audio track's `generate_track` got the same lock-index change; its other costs are as in 0.2.4. VECTOR's own audio UI tick reads the battery-backed Part and track numbers once a tick (it read them about 20 times): with VECTOR installed the machine tick fell from about 50 to 41 µs. + +The hoisted scale lookup in `engine.c` gives the same phrases as 0.2.4 over 18,144,000 parameter sets (a throwaway host comparison of both engines), and `test_engine.c` passes. `sdk/tests/test_machine_events.py` checks the base's registry on the host (`test_midi_generators.c`), the package glue and the port's sources. + +Card builds and .bss, 8 November 2026 (found by `machine_composition_tests`, not on a unit): the base's generator registry, which a card build links into VECTOR, has statics without an initialiser, and the compiler put them (144 bytes) in .bss. octabam's native card builder never loads or zeroes a unit's .bss (`tools/remix/platform_build.py`), so there `mg_active` and the list's cursor would start as whatever the boot left; the site's card builder sizes the runtime past .bss (`src/engine/coldfire-link.ts`), so its images ship those bytes as zeros, and the USB loader zeroes a package's .bss (`sdk/runtime/loader/loader.c`). `prepare.py` now puts them in .data as zeros and stops if any .bss is left, so every path starts them at zero and the two-origin composition proof holds; the code is unchanged (22,314 text bytes), .data grows by 144. + +Not tested: a card build on the unit (layout A included); a physical power cycle with a VECTOR MIDI track (RAM boots kept it: the battery-backed bank restore and the Part validator pass); a project save and reload; scenes and LFOs on a VECTOR MIDI track; MKI. Two RAM boots of development twins out of about fifteen did not come back on USB (one stall record: frames stopped 41 s after a boot with no module installed); a power cycle recovered both, and the next boot of the same image worked. It matches the RAM-boot trap of 19 October 2026 and was not reproduced. + +## MIDI generator in the emulator (8 November 2026) + +Emulator results only, not hardware evidence: `ot_emu` (idle-adapted build, no DSP), MKII panel, a private copy of a Template Live card, VECTOR's exact USB package `b66a440e…` installed over emulated USB on the committed beta base, and a card image of this source composed by the site's builder (`composeSelection`). Steps checked against the Part and pattern bytes and LCD captures; MIDI out taken from a cold boot of the saved project. + +| What | USB package | Card image | +|---|---|---| +| Install, removal, reinstall over USB | passed | n/a | +| Boot with no crash or stall record | passed | passed | +| NOTE SETUP's list by double-tap SRC and double-tap TRACK; YES on VECTOR writes `4d56`, the defaults and NOTE/VEL/LEN 48/100/6 | passed | passed | +| Every encoder on SRC, AMP and FUNC+AMP (OCT moves every lock by 12; PROB conditions only off the beat; HUMN micro-timing; GATE the LEN locks); NO back | passed | passed | +| YES: new seed and phrase; held trig shows stock's NOTE page with the step's locks | passed | passed | +| A second MIDI track keeps its own settings and phrase | passed | passed | +| OFF: arp step mask `ffff`, arp defaults; after removal stock's page | passed | passed | +| Audio track: SRC SETUP page 2 (SEED…DIR) shows and edits | passed | passed | +| MIDI out: 71 note-ons in phrase order, one per 16th; no chord notes | passed | passed | +| MIDI out, PROB 1%: 29 note-ons in 7.6 bars, all on steps 1, 5, 9, 13 | passed | not run | +| MIDI out, HUMN 23: all 78 note-ons at step + k/24 (k -21..+19) within 0.002 step | passed | not run | +| Part switch | not run: needs DSP in the emulator | not run | + +On the base of #1332 (the list's first row ARP, scrolling, room 16) the same USB pass gave 31 passed and the Part switch skipped; ARP from VECTOR gives mask `ffff` and stock's ARPEGGIATOR page with MODE OFF. A card image composed before the .bss fix (`bd2af8c3d`) behaved the same in the emulator, which starts with zeroed memory. Footer: VECTOR's pages still read MIDI NOTE and MIDI ARPEGGIATOR (stock's page names), a known cosmetic gap. + ## Owner exception and remaining limits +For 0.3.0 the owner chose, on 8 November 2026, to release on the 24 October unit run of the MIDI generator ("MIDI generator on the unit" above: development base 4fd515ff, package 49dc25cc) and the emulator passes above, rather than a run of the released package; the manifest's hardware record names that run and what it does not cover. The paragraphs below are 0.2.4's exception, kept as history. + On 9 October 2026 the owner stated: "Approve release and closure with hardware reboot/audio unverified" after receiving the exact 0.2.4 private image and source patch. `sdk/vector-build-approval.json` binds this separate current-build-hardware exception to the source/image above. `hardwareStatus` stays `untested`; no physical reboot, audible playback, chip timing, maximum audio stress or hardware canary pass is claimed. The 0.2.3 approval remains historical and is not reused. Already reset projects need a known-good backup. The issue closure must name these limits and explain how to reopen. After main advanced to `32e27effdb32d5aaa49ee350daef95bc4c803003` (Analog BD 0.1.4), all non-VECTOR package payloads/recipes remain identical to that base. VECTOR native source is unchanged. The rebuilt reported-profile MAIN is `fc8c24c97ffd5ae7b613c8fcff10caf2f9ce62d03ca4014c2a9c14262f628125`; its common-worker saved update is 466764 bytes, SHA-256 `3e98ee1f5a1a71b674b682bef496b6fbe73e6df8a67d4b049ce07abfb3b7177a`. Both reported/solo images preserve the original failing battery state with advancing PLAY; the reported profile also restores the saved battery state. Global inventory/logger provenance changes the image identity, so this result is recorded separately from the qualified VECT349A01 private image. diff --git a/sdk/octabam/modules/vector/control.s b/sdk/octabam/modules/vector/control.s index 3590b056c..7470994c3 100644 --- a/sdk/octabam/modules/vector/control.s +++ b/sdk/octabam/modules/vector/control.s @@ -2,617 +2,839 @@ .file "vector.c" .text .align 2 - .type generator_page, @function -generator_page: - lea (-32,%sp),%sp - movem.l #15420,(%sp) - tst.l src_page_ready - jeq .L2 - move.l 36(%sp),%d0 - cmp.l src_page_source.l,%d0 - jeq .L3 -.L2: - lea src_page,%a0 - move.l 36(%sp),%a1 - sub.l %a0,%a1 + .type mg_dirty, @function +mg_dirty: + move.l %d2,-(%sp) + move.b 269161679,%d0 + mov3q.l #3,%d2 + move.l 1187521622,%a1 + add.l #610376,%a1 + move.b (%a1),%d1 + and.l %d0,%d2 + mov3q.l #1,%d0 + lsl.l %d2,%d0 + or.l %d0,%d1 + move.b %d1,(%a1) + move.b 269161566,%d1 + or.l %d1,%d0 + move.b %d0,269161566 + move.l 1187521622,%a0 + add.l #635698,%a0 + move.l (%sp)+,%d2 + mov3q.l #1,(%a0) + mov3q.l #1,269452696 + jmp 1073905152 + .size mg_dirty, .-mg_dirty + .align 2 + .type mg_forward, @function +mg_forward: + move.l %d2,-(%sp) + moveq #51,%d1 + move.l 8(%sp),%d0 + move.l 12(%sp),%a0 + cmp.l %d0,%d1 + jeq .L7 + moveq #32,%d2 + cmp.l %d0,%d2 + jeq .L8 + moveq #49,%d1 + cmp.l %d0,%d1 + jeq .L9 + moveq #50,%d2 + mov3q.l #3,%a1 + cmp.l %d0,%d2 + jeq .L4 +.L3: + move.l (%sp)+,%d2 + rts +.L7: + sub.l %a1,%a1 .L4: - move.b (%a1,%a0.l),%d0 - move.b %d0,(%a0)+ - cmp.l #src_page+402,%a0 - jne .L4 - lea vector_control_names,%a5 - clr.l %d2 - lea src_page+202,%a1 - lea (formats.2),%a4 - lea src_page+22,%a2 - move.l #src_page+28,%d1 -.L11: - move.l (%a5)+,%a3 - sub.l %a0,%a0 -.L5: - move.b (%a3,%a0.l),%d0 + mov3q.l #1,%d1 + cmp.l %a0,%d1 + jeq .L10 +.L14: + tst.l %a0 jeq .L6 - move.b %d0,(%a2,%a0.l) - addq.l #1,%a0 - mov3q.l #5,%d3 - cmp.l %a0,%d3 - jne .L5 + mov3q.l #2,%d1 .L6: - add.l %a2,%a0 + lea (%a1,%a1.l*2),%a1 + moveq #-3,%d2 + add.l %a1,%d1 + lea mg_saved,%a1 + move.l (%a1,%d1.l*4),%a1 + move.l %a1,%d1 + subq.l #1,%d1 + cmp.l %d1,%d2 + jcs .L3 + move.l %a0,12(%sp) + move.l %d0,8(%sp) + move.l (%sp)+,%d2 + jmp (%a1) +.L10: + clr.l %d1 + jra .L6 .L8: - clr.b (%a0)+ + mov3q.l #1,%a1 + mov3q.l #1,%d1 cmp.l %a0,%d1 - jne .L8 - move.l (%a4)+,%d0 - move.l %d0,%d3 - clr.w %d3 - swap %d3 - moveq #24,%d4 - move.l %d0,%d5 - lsr.l %d4,%d5 - move.l %d0,%d4 - lsr.l #8,%d4 - move.b %d0,3(%a1) - mov3q.l #5,%d0 - move.b %d5,(%a1) - move.b %d4,2(%a1) - move.b %d3,1(%a1) - cmp.l %d2,%d0 - jcs .L12 - move.l #generator_widget,%d0 - moveq #24,%d4 - move.l %d0,%d3 - move.l %d0,%d5 - clr.w %d3 - swap %d3 - lsr.l %d4,%d5 - move.l %d0,%d4 - lsr.l #8,%d4 - move.b %d0,51(%a1) - addq.l #4,%a1 - move.b %d5,44(%a1) - move.b %d4,46(%a1) - addq.l #1,%d2 - addq.l #6,%a2 - addq.l #6,%d1 - moveq #12,%d0 - move.b %d3,45(%a1) - cmp.l %d2,%d0 - jne .L11 -.L22: - mvz.w #21845,%d3 - move.l 36(%sp),%d0 - move.l #1431655765,%d4 - move.l %d4,src_page+398 - mov3q.l #1,src_page_ready - move.l %d3,src_page+394 - move.l %d0,src_page_source -.L3: - move.l #src_page,%d0 - movem.l (%sp),#15420 - lea (32,%sp),%sp - rts -.L12: - move.l #secondary_widget,%d0 - moveq #24,%d4 - move.l %d0,%d3 - move.l %d0,%d5 - clr.w %d3 - swap %d3 - lsr.l %d4,%d5 - move.l %d0,%d4 - lsr.l #8,%d4 - move.b %d0,51(%a1) - addq.l #4,%a1 - move.b %d5,44(%a1) - move.b %d4,46(%a1) - addq.l #1,%d2 - addq.l #6,%a2 - addq.l #6,%d1 - moveq #12,%d0 - move.b %d3,45(%a1) - cmp.l %d2,%d0 - jne .L11 - jra .L22 - .size generator_page, .-generator_page + jne .L14 + jra .L10 +.L9: + mov3q.l #2,%a1 + mov3q.l #1,%d1 + cmp.l %a0,%d1 + jne .L14 + jra .L10 + .size mg_forward, .-mg_forward .align 2 .type vector_generate.part.0, @function vector_generate.part.0: - lea (-968,%sp),%sp + lea (-960,%sp),%sp moveq #15,%d1 movem.l #31996,(%sp) - move.l 976(%sp),%a0 + move.l 968(%sp),%a0 mvz.b (%a0),%d0 - move.l %d0,62(%sp) + move.l %d0,78(%sp) cmp.l %d0,%d1 - jcc .L24 + jcc .L16 moveq #15,%d2 - move.l %d2,62(%sp) -.L24: + move.l %d2,78(%sp) +.L16: moveq #16,%d0 - move.l 976(%sp),%a0 + move.l 968(%sp),%a0 mvz.b 1(%a0),%d3 - move.l %d3,58(%sp) + move.l %d3,70(%sp) cmp.l %d3,%d0 - jcc .L25 + jcc .L17 moveq #16,%d1 - move.l %d1,58(%sp) -.L25: + move.l %d1,70(%sp) +.L17: moveq #11,%d0 - move.l 976(%sp),%a0 + move.l 968(%sp),%a0 mvz.b 2(%a0),%d2 - move.l %d2,74(%sp) + move.l %d2,66(%sp) cmp.l %d2,%d0 - jcc .L26 + jcc .L18 moveq #11,%d1 - move.l %d1,74(%sp) -.L26: + move.l %d1,66(%sp) +.L18: mov3q.l #4,%d0 - move.l 976(%sp),%a0 + move.l 968(%sp),%a0 mvz.b 3(%a0),%d2 - move.l %d2,66(%sp) + move.l %d2,82(%sp) cmp.l %d2,%d0 - jcc .L27 - mov3q.l #4,66(%sp) -.L27: - move.l 976(%sp),%a0 + jcc .L19 + mov3q.l #4,82(%sp) +.L19: + move.l 968(%sp),%a0 moveq #126,%d0 mvz.b 4(%a0),%d1 - move.l %d1,70(%sp) + move.l %d1,62(%sp) cmp.l %d1,%d0 - jcc .L28 + jcc .L20 moveq #126,%d1 - move.l %d1,70(%sp) -.L28: + move.l %d1,62(%sp) +.L20: moveq #127,%d0 - move.l 976(%sp),%a0 + move.l 968(%sp),%a0 mvz.b 5(%a0),%d2 - move.l %d2,78(%sp) + move.l %d2,86(%sp) cmp.l %d2,%d0 - jcc .L29 + jcc .L21 moveq #127,%d1 - move.l %d1,78(%sp) -.L29: + move.l %d1,86(%sp) +.L21: moveq #12,%d0 - move.l 976(%sp),%a0 + move.l 968(%sp),%a0 mvz.b 6(%a0),%d2 - move.l %d2,50(%sp) + move.l %d2,58(%sp) cmp.l %d2,%d0 - jcc .L30 + jcc .L22 moveq #12,%d1 - move.l %d1,50(%sp) -.L30: + move.l %d1,58(%sp) +.L22: moveq #24,%d1 - move.l 976(%sp),%a0 + move.l 968(%sp),%a0 move.b 8(%a0),%d0 mvz.b 7(%a0),%d2 - move.l %d2,54(%sp) - move.b %d0,95(%sp) + move.l %d2,%a6 + move.b %d0,91(%sp) cmp.l %d2,%d1 - jcc .L31 - moveq #24,%d2 - move.l %d2,54(%sp) -.L31: - move.l 976(%sp),%a0 - move.l 54(%sp),%a1 - move.l 980(%sp),%d4 + jcc .L23 + move.w #24,%a6 +.L23: + move.l 968(%sp),%a0 + lea (-12,%a6),%a1 + move.l 972(%sp),%d6 move.b 9(%a0),%d0 - lea (-12,%a1),%a1 - move.l %a1,82(%sp) + move.l %a1,74(%sp) tst.b %d0 - jeq .L32 + jeq .L24 moveq #64,%d1 - cmp.l %d4,%d1 - jcs .L105 + cmp.l %d6,%d1 + jcs .L95 mvz.b %d0,%d0 - cmp.l %d4,%d0 - jcs .L106 -.L32: - move.l 972(%sp),%a0 - lea (712,%sp),%a3 - lea (968,%sp),%a6 - move.b 983(%sp),256(%a0) - move.l %a0,96(%sp) - move.l %a3,%a1 -.L35: - st %d0 - clr.b (%a0) - move.b %d0,3(%a0) - move.b %d0,2(%a0) - move.b %d0,1(%a0) - move.l (%a0)+,(%a1)+ - cmp.l %a1,%a6 - jne .L35 - move.l 62(%sp),%d5 - moveq #11,%d1 - move.l #-1640531527,%d2 - clr.l %d6 - move.l #2146121005,%d7 - lsl.l %d1,%d5 - lea (200,%sp),%a2 - lea (456,%sp),%a4 - move.l %a2,%d3 - move.l %d5,%a6 - move.l 988(%sp),%d5 - move.l %d5,%d1 - eor.l %d2,%d1 + cmp.l %d6,%d0 + jcs .L96 +.L24: + move.l 964(%sp),%a0 + move.l %sp,%d0 + move.l 964(%sp),%a2 + add.l #960,%d0 + move.l %a2,%a1 + move.b 975(%sp),256(%a0) + lea (704,%sp),%a0 + move.l %a0,%a3 +.L27: + st %d1 + clr.b (%a1) + move.b %d1,3(%a1) + move.b %d1,2(%a1) + move.b %d1,1(%a1) + move.l (%a1)+,(%a3)+ + cmp.l %a3,%d0 + jne .L27 + move.l 980(%sp),%d1 + move.l #-1640531527,%d4 + move.l 78(%sp),%d7 + moveq #11,%d3 + clr.l %d2 + eor.l %d4,%d1 + lsl.l %d3,%d7 + moveq #15,%d3 + lea (192,%sp),%a1 + lea (448,%sp),%a5 + move.l %a1,%d5 move.l %d1,%d0 clr.w %d0 swap %d0 eor.l %d1,%d0 - muls.l %d7,%d0 - moveq #15,%d7 + move.l #2146121005,%d1 + muls.l %d1,%d0 move.l %d0,%d1 - lsr.l %d7,%d1 + lsr.l %d3,%d1 eor.l %d1,%d0 move.l #-2073254261,%d1 muls.l %d1,%d0 - move.l %d0,%d7 - clr.w %d7 - swap %d7 - eor.l %d0,%d7 + move.l %d0,%d3 + clr.w %d3 + swap %d3 + eor.l %d0,%d3 mov3q.l #3,%d0 - and.l %d6,%d0 - mvz.w %d7,%d7 + and.l %d2,%d0 + mvz.w %d3,%d3 tst.l %d0 - jeq .L36 -.L108: - add.l %a6,%d7 - move.l %d7,(%a4) -.L37: - move.l %d3,%a0 - move.l %d6,%d0 -.L39: - move.l -4(%a0),%d1 - lea (968,%sp),%a5 - lea (%a5,%d1.l*4),%a1 - cmp.l -512(%a1),%d7 - jcc .L38 - move.l %d1,(%a0) + jeq .L28 +.L98: + add.l %d7,%d3 + move.l %d3,(%a5) +.L29: + move.l %d5,%a3 + move.l %d2,%d0 + move.l %a0,50(%sp) +.L31: + move.l -4(%a3),%d1 + lea (960,%sp),%a0 + lea (%a0,%d1.l*4),%a4 + cmp.l -512(%a4),%d3 + jcc .L92 + move.l %d1,(%a3) subq.l #1,%d0 - subq.l #4,%a0 + subq.l #4,%a3 tst.l %d0 - jne .L39 -.L38: - lea (%sp,%d0.l*4),%a0 - move.l %d6,%a5 - add.l #-1640531527,%d2 - addq.l #1,%a5 - addq.l #4,%a4 - addq.l #4,%d3 - move.l %d6,200(%a0) - cmp.l %d4,%a5 - jeq .L107 -.L69: - move.l %d5,%d1 - move.l #2146121005,%d7 - eor.l %d2,%d1 - move.l %a5,%d6 + jne .L31 +.L92: + lea (%sp,%d0.l*4),%a3 + move.l %d2,%d3 + add.l #-1640531527,%d4 + move.l 50(%sp),%a0 + addq.l #1,%d3 + addq.l #4,%a5 + addq.l #4,%d5 + move.l %d2,192(%a3) + cmp.l %d6,%d3 + jeq .L97 +.L61: + move.l 980(%sp),%d1 + move.l %d3,%d2 + moveq #15,%d3 + eor.l %d4,%d1 move.l %d1,%d0 clr.w %d0 swap %d0 eor.l %d1,%d0 - muls.l %d7,%d0 - moveq #15,%d7 + move.l #2146121005,%d1 + muls.l %d1,%d0 move.l %d0,%d1 - lsr.l %d7,%d1 + lsr.l %d3,%d1 eor.l %d1,%d0 move.l #-2073254261,%d1 muls.l %d1,%d0 - move.l %d0,%d7 - clr.w %d7 - swap %d7 - eor.l %d0,%d7 + move.l %d0,%d3 + clr.w %d3 + swap %d3 + eor.l %d0,%d3 mov3q.l #3,%d0 - and.l %d6,%d0 - mvz.w %d7,%d7 + and.l %d2,%d0 + mvz.w %d3,%d3 tst.l %d0 - jne .L108 -.L36: - move.l %d7,(%a4) - tst.l %d6 - jne .L37 + jne .L98 +.L28: + move.l %d3,(%a5) + tst.l %d2 + jne .L29 clr.l %d0 - lea (%sp,%d0.l*4),%a0 - move.l %d6,%a5 - add.l #-1640531527,%d2 - addq.l #1,%a5 - addq.l #4,%a4 - addq.l #4,%d3 - move.l %d6,200(%a0) - cmp.l %d4,%a5 - jne .L69 -.L107: - move.w %a5,%d0 - mulu.w 60(%sp),%d0 + lea (%sp,%d0.l*4),%a3 + move.l %d2,%d3 + add.l #-1640531527,%d4 + addq.l #1,%d3 + addq.l #4,%a5 + addq.l #4,%d5 + move.l %d2,192(%a3) + cmp.l %d6,%d3 + jne .L61 +.L97: + move.l 82(%sp),%a5 + moveq #24,%d5 + lea scales,%a3 + moveq #100,%d7 + move.w #12,%a4 + mvz.w (%a3,%a5.l*2),%d4 + move.l 74(%sp),%a3 + moveq #-12,%d0 + move.l 74(%sp),%a5 + sub.l %a6,%a4 + sub.l 66(%sp),%d5 + sub.l 58(%sp),%a3 + add.l 58(%sp),%a5 + clr.l 54(%sp) + clr.l 50(%sp) + move.l %a0,82(%sp) + move.l %d2,46(%sp) +.L42: + move.l %d5,%d1 + moveq #12,%d2 + add.l %d0,%d1 + remu.l %d2,%d6:%d1 + btst %d6,%d4 + jeq .L34 +.L100: + cmp.l %a3,%d0 + jge .L35 + move.l %a4,%d1 + add.l %d0,%d1 + tst.l %d1 + jlt .L99 + cmp.l %d1,%d7 + jle .L37 +.L103: + move.l %d0,54(%sp) + moveq #12,%d2 + addq.l #1,%d0 + move.l %d1,%d7 + move.l %d5,%d1 + add.l %d0,%d1 + remu.l %d2,%d6:%d1 + btst %d6,%d4 + jne .L100 +.L34: + addq.l #1,%d0 + moveq #13,%d1 + cmp.l %d0,%d1 + jne .L42 +.L105: + move.w 72(%sp),%d0 + move.l 82(%sp),%a0 + move.l 46(%sp),%d2 + mulu.w %d3,%d0 addq.l #8,%d0 lsr.l #4,%d0 - jeq .L42 + jeq .L43 mvz.w %d0,%d0 - lea (%a2,%d0.l*4),%a1 -.L43: - move.l (%a2)+,%d0 - lea (%sp,%d0.l*4),%a0 + lea (%a1,%d0.l*4),%a4 +.L44: + move.l (%a1)+,%d0 + lea (%sp,%d0.l*4),%a3 moveq #1,%d0 - move.b %d0,712(%a0) - cmp.l %a1,%a2 - jne .L43 -.L42: + move.b %d0,704(%a3) + cmp.l %a1,%a4 + jne .L44 +.L43: moveq #12,%d1 - moveq #12,%d3 - move.l 74(%sp),%d0 + moveq #12,%d6 + move.l 66(%sp),%d0 addq.l #7,%d0 - remu.l %d1,%d2:%d0 + remu.l %d1,%d5:%d0 mvz.w #254,%d1 - sub.l 78(%sp),%d1 - mvz.w #254,%d7 - move.l 82(%sp),%a1 - moveq #12,%d4 + sub.l 86(%sp),%d1 + move.l 74(%sp),%a4 + move.l %d2,%a1 + move.l 74(%sp),%a5 + clr.l %d7 moveq #12,%d0 - sub.l 74(%sp),%d0 - move.l %d2,90(%sp) - mulu.w 986(%sp),%d1 - move.l 82(%sp),%a4 - add.l %d2,%d0 - remu.l %d3,%d2:%d0 - divu.l %d7,%d1 - move.w #24,%a0 - sub.l 50(%sp),%a1 - sub.l 74(%sp),%a0 - sub.l 54(%sp),%d4 + sub.l 66(%sp),%d0 + move.l %d5,70(%sp) + mulu.w 978(%sp),%d1 + add.l 58(%sp),%a5 + add.l %d5,%d0 + remu.l %d6,%d5:%d0 + mvz.w #254,%d6 + sub.l 58(%sp),%a4 + move.l %a5,74(%sp) + move.l 50(%sp),%d2 + move.l %d3,%a3 + divu.l %d6,%d1 + asr.l %d5,%d4 + move.l 78(%sp),%a5 + move.l %a2,82(%sp) + move.l 980(%sp),50(%sp) mov3q.l #1,%d0 - lsl.l %d2,%d0 - move.b %d1,89(%sp) - add.l 50(%sp),%a4 - clr.l 46(%sp) - move.l %a1,%a6 - move.l %a5,82(%sp) - move.l %d6,58(%sp) + and.l %d4,%d0 + move.b %d1,61(%sp) move.l %d0,78(%sp) -.L62: - move.l 46(%sp),%a5 - addq.l #1,46(%sp) - tst.b (%a3) - jeq .L44 - move.l #-2048144789,%d1 - clr.l %d3 - move.l 46(%sp),%d6 - clr.l %d5 - lea scales,%a1 - moveq #-12,%d0 - move.l 988(%sp),%d7 - muls.l %d1,%d6 - move.l 66(%sp),%a2 - move.l %a3,54(%sp) - mvz.w (%a1,%a2.l*2),%d2 - move.w #100,%a1 - eor.l %d7,%d6 - moveq #15,%d7 - eor.l #-1255572915,%d6 - move.l %d6,%d1 - clr.w %d1 - swap %d1 - eor.l %d6,%d1 - move.l #2146121005,%d6 - muls.l %d6,%d1 - move.l %d1,%d6 - lsr.l %d7,%d6 - eor.l %d6,%d1 - move.l #-2073254261,%d6 - muls.l %d6,%d1 - move.l %d1,%d6 - clr.w %d6 - swap %d6 - eor.l %d1,%d6 - move.l %d6,50(%sp) -.L53: - move.l %d0,%d1 - moveq #12,%d6 - add.l %a0,%d1 - remu.l %d6,%d7:%d1 - btst %d7,%d2 +.L54: + move.l %d7,%d6 + addq.l #1,%d7 + tst.b (%a0) jeq .L45 -.L110: - cmp.l %a6,%d0 - jge .L46 - move.l %d4,%d1 - add.l %d0,%d1 - tst.l %d1 - jlt .L109 - cmp.l %d1,%a1 - jle .L48 -.L113: - move.l %d0,%d3 - addq.l #1,%d0 - move.l %d1,%a1 - moveq #12,%d6 + move.l #-2048144789,%d1 + moveq #15,%d5 + muls.l %d7,%d1 + move.l 50(%sp),%d3 + move.l #2146121005,%d4 + eor.l %d3,%d1 + eor.l #-1255572915,%d1 + move.l %d1,%d0 + clr.w %d0 + swap %d0 + eor.l %d1,%d0 + muls.l %d4,%d0 move.l %d0,%d1 - add.l %a0,%d1 - remu.l %d6,%d7:%d1 - btst %d7,%d2 - jne .L110 -.L45: - addq.l #1,%d0 - moveq #13,%d1 - cmp.l %d0,%d1 - jne .L53 -.L115: - move.l 50(%sp),%d6 - move.l 54(%sp),%a3 - tst.l %d5 - jeq .L54 - move.l %d6,%d0 + lsr.l %d5,%d1 + eor.l %d1,%d0 + move.l #-2073254261,%d1 + muls.l %d1,%d0 + move.l %d0,%d1 + clr.w %d1 + swap %d1 + eor.l %d0,%d1 + tst.l %d2 + jeq .L62 + move.l %d1,%d0 lsr.l #8,%d0 - remu.l %d5,%d1:%d0 - lea (%sp,%d1.l*4),%a1 - move.l 100(%a1),%d3 - add.l #-12,%d3 -.L54: + remu.l %d2,%d4:%d0 + lea (%sp,%d4.l*4),%a6 + move.l 92(%a6),%d4 + add.l #-12,%d4 +.L46: moveq #15,%d0 - and.l %d6,%d0 - cmp.l 62(%sp),%d0 - jcc .L59 + and.l %d1,%d0 + cmp.l %a5,%d0 + jcc .L51 moveq #48,%d0 - and.l %d6,%d0 + and.l %d1,%d0 tst.l %d0 - jne .L71 - and.l 78(%sp),%d2 - tst.l %d2 - jne .L111 -.L71: - move.l 74(%sp),%d0 -.L56: - btst #6,%d6 - jeq .L57 + jne .L64 + tst.l 78(%sp) + jne .L101 +.L64: + move.l 66(%sp),%d0 +.L48: + btst #6,%d1 + jeq .L49 add.l #-12,%d0 -.L57: - cmp.l %a6,%d0 - jlt .L59 - cmp.l %d0,%a4 - jlt .L59 - move.l %d0,%d3 -.L59: - moveq #24,%d0 - mov3q.l #3,%d2 - move.l %d6,%d1 - lsr.l %d0,%d1 - muls.w #5,%d3 - remu.l %d2,%d0:%d1 - add.l #64,%d3 - move.b %d3,1(%a3) +.L49: + cmp.l %a4,%d0 + jlt .L51 + cmp.l 74(%sp),%d0 + jgt .L51 + move.l %d0,%d4 +.L51: + moveq #24,%d3 + move.l %d1,%d0 + lsr.l %d3,%d0 + mov3q.l #3,%d3 + muls.w #5,%d4 + move.l %d0,%d5 + remu.l %d3,%d0:%d5 + add.l #64,%d4 + move.b %d4,1(%a0) addq.l #2,%d0 - mulu.w 72(%sp),%d0 + mulu.w 64(%sp),%d0 lsr.l #2,%d0 - move.b %d0,2(%a3) - move.l %a5,%d0 - and.l %d2,%d0 + move.b %d0,2(%a0) + mov3q.l #3,%d0 + and.l %d6,%d0 tst.l %d0 - jeq .L60 - and.l #3145728,%d6 - tst.l %d6 - jeq .L60 - move.b 89(%sp),%d0 - move.b %d0,3(%a3) -.L44: - addq.l #4,%a3 - cmp.l 58(%sp),%a5 - jne .L62 - move.l 82(%sp),%a5 - tst.l 980(%sp) - jeq .L63 - mvz.b 95(%sp),%d0 - moveq #63,%d3 - cmp.l %d0,%d3 - jcs .L112 - move.l 980(%sp),%d6 - move.l %d6,%d1 - move.l 972(%sp),%a2 - move.l %d6,%d4 - move.l 976(%sp),%a0 - subq.l #1,%d4 - remu.l %d6,%d2:%d0 - move.b 10(%a0),%d3 - mvz.w %d6,%d0 - move.l 96(%sp),%a0 - move.l %d6,%d5 - lea (%a2,%d0.l*4),%a1 + jeq .L52 + and.l #3145728,%d1 + tst.l %d1 + jeq .L52 + move.b 61(%sp),%d0 + move.b %d0,3(%a0) +.L45: + addq.l #4,%a0 + cmp.l %a1,%d6 + jne .L54 + move.l 82(%sp),%a2 + move.l %a3,%d3 + tst.l 972(%sp) + jeq .L55 + mvz.b 91(%sp),%d0 + moveq #63,%d4 + cmp.l %d0,%d4 + jcs .L102 + move.l 972(%sp),%d5 + move.l 968(%sp),%a0 + move.l 964(%sp),%a3 + remu.l %d5,%d2:%d0 + move.b 10(%a0),%d4 + mvz.w %d5,%d0 + move.l 972(%sp),%d1 + subq.l #1,%d5 + lea (%a3,%d0.l*4),%a1 sub.l %d2,%d1 - move.l %a5,%d2 -.L66: + move.l 972(%sp),%d2 +.L58: move.l %d1,%d6 addq.l #1,%d1 - remu.l %d5,%d0:%d6 - tst.b %d3 - jeq .L65 - move.l %d4,%d6 + remu.l %d2,%d0:%d6 + tst.b %d4 + jeq .L57 + move.l %d5,%d6 sub.l %d0,%d6 move.l %d6,%d0 -.L65: - remu.l %d2,%d6:%d0 - lea (968,%sp),%a3 - lea (%a3,%d6.l*4),%a2 - move.l -256(%a2),(%a0)+ - cmp.l %a0,%a1 - jne .L66 -.L63: +.L57: + remu.l %d3,%d6:%d0 + lea (960,%sp),%a3 + lea (%a3,%d6.l*4),%a0 + move.l -256(%a0),(%a2)+ + cmp.l %a1,%a2 + jne .L58 +.L55: movem.l (%sp),#31996 mov3q.l #1,%d0 - lea (968,%sp),%sp + lea (960,%sp),%sp rts -.L109: +.L99: neg.l %d1 - cmp.l %d1,%a1 - jgt .L113 -.L48: + cmp.l %d1,%d7 + jgt .L103 +.L37: addq.l #1,%d0 - jra .L53 -.L46: - cmp.l %a4,%d0 - jgt .L50 - lea (%sp,%d5.l*4),%a2 - move.l %d0,%a3 - addq.l #1,%d5 - lea (12,%a3),%a3 - move.l %a3,100(%a2) -.L50: - move.l %d4,%d1 + jra .L42 +.L35: + cmp.l %a5,%d0 + jgt .L39 + move.l 50(%sp),%d1 + move.l %d0,%a0 + lea (12,%a0),%a0 + lea (%sp,%d1.l*4),%a6 + addq.l #1,%d1 + move.l %d1,50(%sp) + move.l %a0,92(%a6) +.L39: + move.l %a4,%d1 add.l %d0,%d1 tst.l %d1 - jlt .L114 -.L51: - cmp.l %d1,%a1 - jle .L45 - move.l %d1,%a1 - move.l %d0,%d3 - moveq #13,%d1 + jlt .L104 +.L40: + cmp.l %d1,%d7 + jle .L34 + move.l %d0,54(%sp) + move.l %d1,%d7 addq.l #1,%d0 + moveq #13,%d1 cmp.l %d0,%d1 - jne .L53 - jra .L115 -.L114: + jne .L42 + jra .L105 +.L104: neg.l %d1 - jra .L51 -.L60: - move.b 987(%sp),%d0 - move.b %d0,3(%a3) - jra .L44 -.L112: - move.l 980(%sp),%d6 + jra .L40 +.L52: + move.b 979(%sp),%d0 + move.b %d0,3(%a0) + jra .L45 +.L62: + move.l 54(%sp),%d4 + jra .L46 +.L102: + move.l 972(%sp),%d5 moveq #63,%d0 - move.l 976(%sp),%a0 - move.l %d6,%d1 - move.l 972(%sp),%a2 - move.l %d6,%d4 - remu.l %d6,%d2:%d0 - move.b 10(%a0),%d3 - mvz.w %d6,%d0 - move.l 96(%sp),%a0 - subq.l #1,%d4 - move.l %d6,%d5 + move.l 968(%sp),%a0 + move.l 964(%sp),%a3 + remu.l %d5,%d2:%d0 + move.l 972(%sp),%d1 + mvz.w %d5,%d0 + move.b 10(%a0),%d4 + subq.l #1,%d5 sub.l %d2,%d1 - lea (%a2,%d0.l*4),%a1 - move.l %a5,%d2 - jra .L66 -.L111: - move.l 90(%sp),%d0 - jra .L56 -.L106: - move.l 972(%sp),%a0 - move.l %d0,%d4 - lea (712,%sp),%a3 - lea (968,%sp),%a6 - move.b 983(%sp),256(%a0) - move.l %a0,96(%sp) - move.l %a3,%a1 - jra .L35 -.L105: + lea (%a3,%d0.l*4),%a1 + move.l 972(%sp),%d2 + jra .L58 +.L101: + move.l 70(%sp),%d0 + jra .L48 +.L96: + move.l 964(%sp),%a0 + move.l %d0,%d6 + move.l 964(%sp),%a2 + move.l %sp,%d0 + move.l %a2,%a1 + add.l #960,%d0 + move.b 975(%sp),256(%a0) + lea (704,%sp),%a0 + move.l %a0,%a3 + jra .L27 +.L95: mvz.b %d0,%d0 - moveq #64,%d4 - cmp.l %d4,%d0 - jcc .L32 - jra .L106 + moveq #64,%d6 + cmp.l %d6,%d0 + jcc .L24 + jra .L96 .size vector_generate.part.0, .-vector_generate.part.0 .align 2 + .type generator_page, @function +generator_page: + lea (-32,%sp),%sp + movem.l #15420,(%sp) + tst.l src_page_ready + jeq .L107 + move.l 36(%sp),%d0 + cmp.l src_page_source.l,%d0 + jeq .L108 +.L107: + lea src_page,%a0 + move.l 36(%sp),%a1 + sub.l %a0,%a1 +.L109: + move.b (%a1,%a0.l),%d0 + move.b %d0,(%a0)+ + cmp.l #src_page+402,%a0 + jne .L109 + lea vector_control_names,%a5 + clr.l %d2 + lea src_page+202,%a1 + lea (formats.7),%a4 + lea src_page+22,%a2 + move.l #src_page+28,%d1 +.L116: + move.l (%a5)+,%a3 + sub.l %a0,%a0 +.L110: + move.b (%a3,%a0.l),%d0 + jeq .L111 + move.b %d0,(%a2,%a0.l) + addq.l #1,%a0 + mov3q.l #5,%d3 + cmp.l %a0,%d3 + jne .L110 +.L111: + add.l %a2,%a0 +.L113: + clr.b (%a0)+ + cmp.l %a0,%d1 + jne .L113 + move.l (%a4)+,%d0 + move.l %d0,%d3 + clr.w %d3 + swap %d3 + moveq #24,%d4 + move.l %d0,%d5 + lsr.l %d4,%d5 + move.l %d0,%d4 + lsr.l #8,%d4 + move.b %d0,3(%a1) + mov3q.l #5,%d0 + move.b %d5,(%a1) + move.b %d4,2(%a1) + move.b %d3,1(%a1) + cmp.l %d2,%d0 + jcs .L117 + move.l #generator_widget,%d0 + moveq #24,%d4 + move.l %d0,%d3 + move.l %d0,%d5 + clr.w %d3 + swap %d3 + lsr.l %d4,%d5 + move.l %d0,%d4 + lsr.l #8,%d4 + move.b %d0,51(%a1) + addq.l #4,%a1 + move.b %d5,44(%a1) + move.b %d4,46(%a1) + addq.l #1,%d2 + addq.l #6,%a2 + addq.l #6,%d1 + moveq #12,%d0 + move.b %d3,45(%a1) + cmp.l %d2,%d0 + jne .L116 +.L127: + mvz.w #21845,%d3 + move.l 36(%sp),%d0 + move.l #1431655765,%d4 + move.l %d4,src_page+398 + mov3q.l #1,src_page_ready + move.l %d3,src_page+394 + move.l %d0,src_page_source +.L108: + move.l #src_page,%d0 + movem.l (%sp),#15420 + lea (32,%sp),%sp + rts +.L117: + move.l #secondary_widget,%d0 + moveq #24,%d4 + move.l %d0,%d3 + move.l %d0,%d5 + clr.w %d3 + swap %d3 + lsr.l %d4,%d5 + move.l %d0,%d4 + lsr.l #8,%d4 + move.b %d0,51(%a1) + addq.l #4,%a1 + move.b %d5,44(%a1) + move.b %d4,46(%a1) + addq.l #1,%d2 + addq.l #6,%a2 + addq.l #6,%d1 + moveq #12,%d0 + move.b %d3,45(%a1) + cmp.l %d2,%d0 + jne .L116 + jra .L127 + .size generator_page, .-generator_page + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "VEC" + .text + .align 2 + .type vector_midi_page, @function +vector_midi_page: + lea (-32,%sp),%sp + move.l 40(%sp),%d1 + movem.l #31772,(%sp) + move.l 36(%sp),%a1 + tst.l %d1 + jeq .L129 + mov3q.l #1,%d1 + and.l 44(%sp),%d1 + addq.l #1,%d1 +.L129: + lea 1(%a1,%d1.l),%a0 + move.l %d1,midi_view + move.l %a0,%d4 + tst.l src_page_ready + jne .L130 + cmp.l midi_page_built.l,%a0 + jeq .L131 +.L130: + lea src_page,%a0 + sub.l %a0,%a1 +.L132: + move.b (%a1,%a0.l),%d0 + move.b %d0,(%a0)+ + cmp.l #src_page+402,%a0 + jne .L132 + lea .LC0,%a1 + sub.l %a0,%a0 + lea src_page+4,%a2 +.L133: + move.b (%a1),%d0 + addq.l #1,%a1 + tst.b %d0 + jeq .L134 + move.b %d0,(%a2)+ + addq.l #1,%a0 + mov3q.l #5,%d0 + cmp.l %a0,%d0 + jne .L133 +.L134: + add.l #src_page+4,%a0 +.L136: + clr.b (%a0)+ + cmp.l #src_page+10,%a0 + jne .L136 + move.w %d1,%d2 + lea src_page+9,%a0 + mulu.w #13,%d2 + move.l %d2,%a1 + add.l #titles.2,%a1 +.L138: + move.b (%a1)+,(%a0)+ + cmp.l #src_page+22,%a0 + jne .L138 + move.w %d1,%d0 + lea (formats.1),%a6 + lea src_page+202,%a1 + move.l #src_page+28,%d1 + lea midi_names,%a3 + mulu.w #6,%d0 + move.l %d0,%a5 + add.l #midi_layout,%a5 +.L144: + mvz.b (%a5)+,%d0 + move.l %d1,%a2 + sub.l %a0,%a0 + subq.l #6,%a2 + move.l (%a3,%d0.l*4),%a4 +.L139: + move.b (%a4,%a0.l),%d0 + jeq .L140 + move.b %d0,(%a2,%a0.l) + addq.l #1,%a0 + mov3q.l #5,%d0 + cmp.l %a0,%d0 + jne .L139 +.L140: + add.l %a2,%a0 +.L142: + clr.b (%a0)+ + cmp.l %a0,%d1 + jne .L142 + moveq #64,%d2 + move.l (%a6)+,%d0 + moveq #24,%d1 + move.l %d0,%d3 + lsr.l %d1,%d3 + move.l %d0,%d1 + lsr.l #8,%d1 + move.b %d0,3(%a1) + addq.l #4,%a1 + move.b %d3,-4(%a1) + move.b %d1,-2(%a1) + moveq #103,%d1 + move.b %d2,44(%a1) + move.l %d0,%d2 + moveq #4,%d0 + clr.w %d2 + swap %d2 + move.b %d1,46(%a1) + move.l %a0,%d1 + addq.l #6,%d1 + move.b %d0,45(%a1) + moveq #-92,%d0 + move.b %d0,47(%a1) + move.b %d2,-3(%a1) + cmp.l #formats.1+24,%a6 + jne .L144 + mvz.w #21845,%d1 + move.l #1431655765,%d2 + move.l %d2,src_page+398 + clr.l src_page_ready + move.l %d1,src_page+394 + move.l %d4,midi_page_built +.L131: + move.l #src_page,%d0 + movem.l (%sp),#31772 + lea (32,%sp),%sp + rts + .size vector_midi_page, .-vector_midi_page + .align 2 .type settings, @function settings: lea (-44,%sp),%sp @@ -640,35 +862,35 @@ settings: mvz.b 62(%a0,%d0.l),%d1 subq.l #1,%d1 tst.l %d1 - jeq .L140 + jeq .L187 lea (23,%sp),%a6 sub.l %a1,%a1 -.L125: +.L172: move.l %a1,%d1 add.l #489,%d1 add.l %d0,%d1 mov3q.l #2,%d2 cmp.l %a1,%d2 - jcc .L141 -.L122: + jcc .L188 +.L169: move.b (%a0,%d1.l),(%a6) addq.l #1,%a1 moveq #9,%d1 cmp.l %a1,%d1 - jeq .L124 + jeq .L171 move.l %a1,%d1 add.l #489,%d1 addq.l #1,%a6 add.l %d0,%d1 mov3q.l #2,%d2 cmp.l %a1,%d2 - jcs .L122 -.L141: + jcs .L169 +.L188: lea 63(%a1,%d0.l),%a2 addq.l #1,%a1 move.b (%a0,%a2.l),(%a6)+ - jra .L125 -.L124: + jra .L172 +.L171: move.b 23(%sp),%d0 moveq #15,%d1 mov3q.l #4,%d2 @@ -678,7 +900,7 @@ settings: move.w %d0,%a0 move.b %d1,32(%sp) cmp.l %d0,%d2 - jcs .L142 + jcs .L189 move.w %a0,%d0 move.b 24(%sp),%d1 moveq #16,%d2 @@ -687,8 +909,8 @@ settings: and.l %d1,%d0 move.w %d0,%a0 cmp.l %d0,%d2 - jcs .L143 -.L127: + jcs .L190 +.L174: move.w %a0,%d2 move.b 25(%sp),%d0 lsr.l #5,%d1 @@ -702,54 +924,54 @@ settings: move.l %d2,%a0 moveq #11,%d2 cmp.l %a0,%d2 - jcs .L144 -.L128: + jcs .L191 +.L175: mvz.b %d0,%d0 lsr.l #4,%d0 move.b %d1,34(%sp) moveq #12,%d1 move.w %d0,%a0 cmp.l %d0,%d1 - jcs .L145 -.L129: + jcs .L192 +.L176: move.b 26(%sp),%d1 move.w %a0,%d2 mvz.b %d1,%d0 move.b %d2,38(%sp) moveq #126,%d2 cmp.l %d0,%d2 - jcs .L146 -.L130: + jcs .L193 +.L177: move.b 27(%sp),%d0 move.b %d1,36(%sp) tst.b %d0 - jlt .L147 -.L131: + jlt .L194 +.L178: move.b 28(%sp),%d1 move.b %d0,37(%sp) moveq #24,%d2 mvz.b %d1,%d0 cmp.l %d0,%d2 - jcs .L148 -.L132: + jcs .L195 +.L179: mvz.b 29(%sp),%d0 move.b %d1,39(%sp) moveq #63,%d1 cmp.l %d0,%d1 - jcs .L149 -.L133: + jcs .L196 +.L180: move.b 30(%sp),%d1 lsl.l #8,%d0 mvz.b %d1,%d2 move.l %d2,%a0 moveq #64,%d2 cmp.l %a0,%d2 - jcs .L150 -.L134: + jcs .L197 +.L181: move.b %d1,%d0 lea (32,%sp),%a3 move.w %d0,40(%sp) -.L120: +.L167: move.l 16(%sp),%a0 move.l %a0,%d0 move.l (%a3),(%a0)+ @@ -759,13 +981,13 @@ settings: move.b 42(%sp),(%a0) lea (44,%sp),%sp rts -.L150: +.L197: moveq #64,%d1 lea (32,%sp),%a3 move.b %d1,%d0 move.w %d0,40(%sp) - jra .L120 -.L149: + jra .L167 +.L196: move.b 30(%sp),%d1 moveq #63,%d0 lsl.l #8,%d0 @@ -773,33 +995,33 @@ settings: move.l %d2,%a0 moveq #64,%d2 cmp.l %a0,%d2 - jcc .L134 - jra .L150 -.L148: + jcc .L181 + jra .L197 +.L195: moveq #24,%d1 mvz.b 29(%sp),%d0 move.b %d1,39(%sp) moveq #63,%d1 cmp.l %d0,%d1 - jcc .L133 - jra .L149 -.L147: + jcc .L180 + jra .L196 +.L194: moveq #127,%d0 move.b 28(%sp),%d1 moveq #24,%d2 move.b %d0,37(%sp) mvz.b %d1,%d0 cmp.l %d0,%d2 - jcc .L132 - jra .L148 -.L146: + jcc .L179 + jra .L195 +.L193: moveq #126,%d1 move.b 27(%sp),%d0 move.b %d1,36(%sp) tst.b %d0 - jge .L131 - jra .L147 -.L145: + jge .L178 + jra .L194 +.L192: move.w #12,%a0 move.b 26(%sp),%d1 move.w %a0,%d2 @@ -807,9 +1029,9 @@ settings: move.b %d2,38(%sp) moveq #126,%d2 cmp.l %d0,%d2 - jcc .L130 - jra .L146 -.L144: + jcc .L177 + jra .L193 +.L191: moveq #11,%d1 mvz.b %d0,%d0 lsr.l #4,%d0 @@ -817,9 +1039,9 @@ settings: move.b %d1,34(%sp) moveq #12,%d1 cmp.l %d0,%d1 - jcc .L129 - jra .L145 -.L143: + jcc .L176 + jra .L192 +.L190: move.w #16,%a0 move.b 25(%sp),%d0 lsr.l #5,%d1 @@ -834,9 +1056,9 @@ settings: move.l %d2,%a0 moveq #11,%d2 cmp.l %a0,%d2 - jcc .L128 - jra .L144 -.L142: + jcc .L175 + jra .L191 +.L189: move.w #4,%a0 move.b 24(%sp),%d1 moveq #16,%d2 @@ -846,21 +1068,21 @@ settings: and.l %d1,%d0 move.w %d0,%a0 cmp.l %d0,%d2 - jcc .L127 - jra .L143 -.L140: + jcc .L174 + jra .L190 +.L187: lea (32,%sp),%a3 sub.l %a1,%a1 move.l %a3,%a2 -.L121: +.L168: move.l %a1,%d1 add.l #489,%d1 lea 63(%a1,%d0.l),%a6 add.l %d0,%d1 mov3q.l #2,%d2 cmp.l %a1,%d2 - jcs .L118 -.L151: + jcs .L165 +.L198: addq.l #1,%a1 move.b (%a0,%a6.l),(%a2)+ move.l %a1,%d1 @@ -869,621 +1091,898 @@ settings: add.l %d0,%d1 mov3q.l #2,%d2 cmp.l %a1,%d2 - jcc .L151 -.L118: + jcc .L198 +.L165: move.b (%a0,%d1.l),(%a2) addq.l #1,%a1 mov3q.l #6,%d1 cmp.l %a1,%d1 - jeq .L120 + jeq .L167 addq.l #1,%a2 - jra .L121 + jra .L168 .size settings, .-settings .align 2 - .type any_vector, @function -any_vector: - move.l 1187521622,%d0 - add.l #-1073741824,%d0 + .type midi_control, @function +midi_control: + subq.l #8,%sp + move.l %a2,-(%sp) move.l %d2,-(%sp) - cmp.l #133169151,%d0 - jhi .L157 - move.w #34,%a1 - moveq #60,%d1 -.L153: + moveq #15,%d2 + move.l 24(%sp),%a0 + move.l 1187521622,%d0 + move.b 269161679,%d1 + cmp.l %a0,%d2 + jcs .L208 mov3q.l #3,%d2 - move.l 1187521622,%a0 - add.l #585088,%a0 - move.b 269161679,%d0 - and.l %d2,%d0 + and.l %d2,%d1 + move.l 20(%sp),%d2 + add.l #585088,%d0 + lsl.l #5,%d2 + move.l %d2,%a1 mvz.w #6322,%d2 - muls.l %d2,%d0 - mov3q.l #1,%d2 - add.l %d0,%a0 - mvz.b (%a0,%a1.l),%d0 - add.l %d1,%a0 - addq.l #1,%a1 - add.l #30,%d1 - cmp.l %d0,%d2 - jcs .L155 - mvz.b (%a0),%d0 - moveq #83,%d2 - cmp.l %d0,%d2 - jeq .L168 -.L155: - cmp.l #300,%d1 - jne .L153 -.L157: - move.l (%sp)+,%d2 - clr.l %d0 - rts -.L168: - mvz.b 1(%a0),%d0 - moveq #50,%d2 - cmp.l %d0,%d2 - jne .L155 - mvz.b 2(%a0),%d0 - subq.l #1,%d0 - tst.l %d0 - jeq .L156 - mvz.b 2(%a0),%d0 - subq.l #2,%d0 - tst.l %d0 - jne .L155 -.L156: + lea (994,%a1),%a1 + muls.l %d2,%d1 + add.l %d1,%d0 + add.l %d0,%a1 + moveq #12,%d0 + cmp.l %a0,%d0 + jeq .L211 + moveq #13,%d0 + cmp.l %a0,%d0 + jeq .L212 + mov3q.l #4,%d1 + cmp.l %a0,%d1 + jne .L204 + mvz.b 2(%a1),%d1 +.L202: + lea midi_max,%a1 + mvz.b (%a1,%a0.l),%d0 + cmp.l %d0,%d1 + jcc .L199 + move.l %d1,%d0 +.L199: move.l (%sp)+,%d2 - mov3q.l #1,%d0 + move.l (%sp)+,%a2 + addq.l #8,%sp rts - .size any_vector, .-any_vector - .align 2 - .type draw_generator_widget.part.0, @function -draw_generator_widget.part.0: - lea (-12,%sp),%sp - move.l %a6,-(%sp) - move.l %d2,-(%sp) - mvz.b 269161676,%d0 - move.l 36(%sp),%a6 - move.l %d0,-(%sp) - lea (13,%sp),%a0 - jsr settings - addq.l #4,%sp - mov3q.l #6,%d0 - cmp.l %a6,%d0 - jeq .L177 - mov3q.l #5,%d2 - move.l %a6,%d0 - cmp.l %a6,%d2 - jcc .L172 - subq.l #1,%d0 -.L172: - mvz.b 9(%sp,%d0.l),%d0 - move.l %d0,%a0 -.L171: - move.l 48(%sp),-(%sp) - move.l 48(%sp),-(%sp) - moveq #-2,%d0 - and.l 48(%sp),%d0 - lea vector_control_max,%a1 - mvz.b (%a1,%a6.l),%d1 - move.l %d0,-(%sp) - move.l %d1,%d0 - cmp.l %d1,%a0 - jcc .L173 - move.l %a0,%d0 -.L173: - mulu.w #127,%d0 - divu.l %d1,%d0 - move.l %d0,-(%sp) - move.l 48(%sp),-(%sp) - move.l 48(%sp),-(%sp) - move.l 48(%sp),-(%sp) - jsr 1074035124 - lea (28,%sp),%sp +.L211: + mvz.b (%a1),%d1 + moveq #19,%d2 + mulu.w #43691,%d1 + lsr.l %d2,%d1 + jra .L202 +.L208: move.l (%sp)+,%d2 - move.l (%sp)+,%a6 - lea (12,%sp),%sp + clr.l %d0 + move.l (%sp)+,%a2 + addq.l #8,%sp rts -.L177: - move.b 269161676,%d0 +.L204: move.l 1187521622,%a1 mov3q.l #3,%d2 - move.b 269161679,%d1 + move.b 269161679,%d0 + move.l 20(%sp),%d1 add.l #585088,%a1 - mvz.b %d0,%d0 - and.l %d2,%d1 - mulu.w #30,%d0 - move.l %d0,%a0 - mvz.w #6322,%d0 - lea (497,%a0),%a0 - muls.l %d0,%d1 - add.l %d1,%a1 - move.b (%a1,%a0.l),%d0 - moveq #127,%d1 - and.l %d0,%d1 - move.l %d1,%a0 - jra .L171 - .size draw_generator_widget.part.0, .-draw_generator_widget.part.0 - .align 2 - .type secondary_widget, @function -secondary_widget: - subq.l #8,%sp - move.l %d2,-(%sp) - moveq #11,%d2 - move.l 24(%sp),%d0 - move.l %d0,%d1 - move.l 16(%sp),%a0 - addq.l #6,%d1 - move.l 20(%sp),%a1 - move.l 32(%sp),4(%sp) - move.l 36(%sp),8(%sp) - cmp.l %d1,%d2 - jcc .L182 + lsl.l #4,%d1 + and.l %d2,%d0 + mvz.w #6322,%d2 + move.l %d1,%a2 + lea (6206,%a2),%a2 + muls.l %d2,%d0 + moveq #22,%d2 + add.l %d0,%a1 + mvz.b (%a1,%a2.l),%d0 + cmp.l %d0,%d2 + jeq .L205 + mov3q.l #6,%d0 + cmp.l %a0,%d0 + jeq .L213 move.l (%sp)+,%d2 + lea (first.3),%a1 + mvz.b (%a1,%a0.l),%d0 + move.l (%sp)+,%a2 addq.l #8,%sp rts -.L182: - move.l 8(%sp),36(%sp) - move.l 4(%sp),32(%sp) - move.l %d1,28(%sp) - move.l %d0,24(%sp) - move.l %a1,20(%sp) - move.l %a0,16(%sp) - move.l (%sp)+,%d2 - addq.l #8,%sp - jra (draw_generator_widget.part.0) - .size secondary_widget, .-secondary_widget - .align 2 - .type generator_widget, @function -generator_widget: - subq.l #4,%sp - move.l %d2,-(%sp) - moveq #11,%d2 +.L212: + mvz.b 1(%a1),%d1 + jra .L202 +.L205: + move.l 1187521622,%d0 + add.l #585088,%d0 + move.b 269161679,%d2 + move.l %d0,12(%sp) + lea midi_byte,%a1 + mvz.b (%a1,%a0.l),%d0 + move.l %d0,%a1 + add.l %d1,%a1 + mov3q.l #3,%d1 + move.b %d2,%d0 + mvz.w #6322,%d2 + lea (6194,%a1),%a1 + and.l %d1,%d0 + muls.l %d2,%d0 + add.l 12(%sp),%d0 + move.b (%a1,%d0.l),%d1 + add.l #64,%d1 + mvz.b %d1,%d1 + jra .L202 +.L213: move.l 20(%sp),%d0 - move.l 12(%sp),%d1 - move.l 16(%sp),%a0 - move.l 28(%sp),%a1 - move.l 32(%sp),4(%sp) - cmp.l %d0,%d2 - jcc .L187 + addq.l #1,%d0 move.l (%sp)+,%d2 - addq.l #4,%sp + move.l (%sp)+,%a2 + addq.l #8,%sp rts -.L187: - move.l 4(%sp),32(%sp) - move.l %a1,28(%sp) - move.l %d0,24(%sp) - move.l %d0,20(%sp) - move.l %a0,16(%sp) - move.l %d1,12(%sp) - move.l (%sp)+,%d2 - addq.l #4,%sp - jra (draw_generator_widget.part.0) - .size generator_widget, .-generator_widget - .section .rodata.str1.1,"aMS",@progbits,1 -.LC0: - .string "FWD" + .size midi_control, .-midi_control + .section .rodata.str1.1 .LC1: .string "OFF" .LC2: + .string "FWD" +.LC3: + .string "" +.LC4: .string "REV" .text .align 2 - .type format_control, @function -format_control: - lea (-28,%sp),%sp - movem.l #16412,(%sp) - move.l 36(%sp),%d2 - lea (17,%sp),%a0 - mvz.b 269161676,%d0 - move.l %d0,-(%sp) - jsr settings - addq.l #4,%sp - mov3q.l #6,%d0 + .type midi_format, @function +midi_format: + lea (-24,%sp),%sp + movem.l #3100,(%sp) + move.l 32(%sp),%d2 + move.l 28(%sp),%a2 + mvz.b 269161676,%d3 + move.l %d2,-(%sp) + move.l %d3,-(%sp) + jsr midi_control + addq.l #8,%sp + move.l %d0,%d1 + mov3q.l #4,%d0 cmp.l %d2,%d0 - jeq .L216 - mov3q.l #5,%d0 + jeq .L249 + moveq #12,%d4 + cmp.l %d2,%d4 + jeq .L250 + mov3q.l #2,%d0 cmp.l %d2,%d0 - jcs .L191 - mvz.b 17(%sp,%d2.l),%d0 - move.l %d2,%d1 - mov3q.l #1,%d3 - subq.l #2,%d1 - cmp.l %d1,%d3 - jcs .L190 - subq.l #2,%d2 - tst.l %d2 - jeq .L217 - mov3q.l #5,%d3 - remu.l %d3,%d1:%d0 - lea vector_scale_names,%a0 - move.l 32(%sp),%a1 - move.l (%a0,%d1.l*4),%a0 -.L197: - move.b (%a0)+,%d0 - move.b %d0,(%a1)+ - jne .L197 -.L188: - movem.l (%sp),#16412 - lea (28,%sp),%sp - rts -.L191: - mvz.b 16(%sp,%d2.l),%d0 - moveq #11,%d4 + jeq .L251 + mov3q.l #3,%d3 + cmp.l %d2,%d3 + jeq .L252 + moveq #11,%d0 + cmp.l %d2,%d0 + jeq .L253 + moveq #10,%d3 + cmp.l %d2,%d3 + jeq .L254 + moveq #14,%d4 cmp.l %d2,%d4 - jne .L218 - tst.l %d0 - jeq .L208 - move.l 32(%sp),%a1 - lea .LC2,%a0 -.L201: + jeq .L255 + moveq #16,%d0 + cmp.l %d2,%d0 + jne .L256 + lea .LC3,%a0 +.L227: move.b (%a0)+,%d0 - move.b %d0,(%a1)+ - jeq .L188 + move.b %d0,(%a2)+ + jne .L227 +.L214: + movem.l (%sp),#3100 + lea (24,%sp),%sp + rts +.L251: + moveq #12,%d2 + remu.l %d2,%d0:%d1 + lea (roots.0),%a0 + move.l (%a0,%d0.l*4),%a0 move.b (%a0)+,%d0 - move.b %d0,(%a1)+ - jne .L201 - jra .L188 -.L216: - move.b 269161676,%d0 - move.l 1187521622,%a1 - mov3q.l #3,%d2 - move.b 269161679,%d1 - mvz.w #6322,%d3 - add.l #585088,%a1 - moveq #127,%d4 - mvz.b %d0,%d0 - and.l %d2,%d1 - mulu.w #30,%d0 - move.l %d0,%a0 - muls.l %d3,%d1 - lea (497,%a0),%a0 - add.l %d1,%a1 - move.b (%a1,%a0.l),%d0 - and.l %d4,%d0 -.L190: + move.b %d0,(%a2)+ + jne .L227 + jra .L214 +.L249: + move.l %a2,28(%sp) + movem.l (%sp),#3100 + move.l %d1,32(%sp) + move.l 1074609936,%a1 + lea (24,%sp),%sp + jmp (%a1) +.L254: + tst.l %d1 + jne .L245 +.L222: + lea .LC1,%a0 + move.b (%a0)+,%d0 + move.b %d0,(%a2)+ + jne .L227 + jra .L214 +.L256: + subq.l #8,%d2 + tst.l %d2 + jne .L245 + move.l %d1,%d0 + add.l #-12,%d0 + tst.l %d0 + jlt .L257 + move.l %d0,%d1 +.L245: + move.l %a2,%a1 + mov3q.l #1,%a0 + clr.l %d0 +.L230: moveq #99,%d3 - cmp.l %d0,%d3 - jcc .L209 -.L220: + cmp.l %d1,%d3 + jcc .L232 moveq #100,%d4 moveq #10,%d3 - move.l %d0,%d1 - mov3q.l #2,%a6 - divu.l %d4,%d1 - move.l 32(%sp),%a0 - mov3q.l #3,%a1 - add.l #48,%d1 - move.b %d1,(%a0)+ - move.l %d0,%d1 - divu.l %d3,%d1 - move.l %d1,%d2 + move.l %d1,%d0 + divu.l %d4,%d0 + add.l #48,%d0 + move.b %d0,(%a1) + move.l %d1,%d0 + divu.l %d3,%d0 + lea 1(%a2,%a0.l),%a1 + move.l %d0,%d2 remu.l %d3,%d4:%d2 - move.l %d4,%d1 - add.l #48,%d1 - move.b %d1,(%a0) - move.l 32(%sp),%a0 - add.l %a6,%a0 -.L206: + move.l %d4,%d0 + add.l #48,%d0 + move.b %d0,(%a2,%a0.l) + addq.l #2,%a0 +.L234: moveq #10,%d2 - remu.l %d2,%d1:%d0 + remu.l %d2,%d0:%d1 clr.b %d3 - add.l #48,%d1 - move.b %d1,(%a0) - move.l 32(%sp),%a0 - move.b %d3,(%a0,%a1.l) - movem.l (%sp),#16412 - lea (28,%sp),%sp + add.l #48,%d0 + move.b %d0,(%a1) + move.b %d3,(%a2,%a0.l) + movem.l (%sp),#3100 + lea (24,%sp),%sp rts -.L209: - move.l 32(%sp),%a0 - mov3q.l #1,%a1 - clr.l %d1 +.L232: moveq #9,%d2 - cmp.l %d0,%d2 - jcc .L206 -.L221: - move.l %a1,%a6 + cmp.l %d1,%d2 + jcc .L234 + move.l %d0,%a0 moveq #10,%d3 - move.l %d1,%a1 - move.l %d0,%d1 - divu.l %d3,%d1 - addq.l #2,%a1 - move.l %d1,%d2 + move.l %d1,%d0 + divu.l %d3,%d0 + lea 1(%a2,%a0.l),%a1 + move.l %d0,%d2 remu.l %d3,%d4:%d2 - move.l %d4,%d1 - add.l #48,%d1 - move.b %d1,(%a0) - move.l 32(%sp),%a0 - add.l %a6,%a0 - jra .L206 -.L208: - move.l 32(%sp),%a1 - lea .LC0,%a0 - jra .L201 -.L217: - moveq #12,%d2 - remu.l %d2,%d1:%d0 - lea (roots.1),%a0 - move.l 32(%sp),%a1 - move.l (%a0,%d1.l*4),%a0 - jra .L197 -.L218: - moveq #10,%d4 - cmp.l %d2,%d4 - jne .L199 - tst.l %d0 - jne .L190 - move.l 32(%sp),%a1 - lea .LC1,%a0 - jra .L201 -.L199: - subq.l #8,%d2 - tst.l %d2 - jne .L190 - move.l %d0,%d1 - add.l #-12,%d1 + move.l %d4,%d0 + add.l #48,%d0 + move.b %d0,(%a2,%a0.l) + addq.l #2,%a0 + jra .L234 +.L252: + mov3q.l #5,%d4 + remu.l %d4,%d0:%d1 + lea vector_scale_names,%a0 + move.l (%a0,%d0.l*4),%a0 + move.b (%a0)+,%d0 + move.b %d0,(%a2)+ + jne .L227 + jra .L214 +.L253: tst.l %d1 - jlt .L219 - move.l %d1,%d0 - moveq #99,%d3 - cmp.l %d0,%d3 - jcs .L220 - jra .L209 -.L219: - move.l 32(%sp),%a0 + jeq .L235 + lea .LC4,%a0 + move.b (%a0)+,%d0 + move.b %d0,(%a2)+ + jne .L227 + jra .L214 +.L250: + move.l 1074609928,%d2 + mov3q.l #2,-(%sp) + move.l %d3,-(%sp) + move.l %d1,28(%sp) + jsr midi_control + move.l %a2,36(%sp) + move.l 28(%sp),%d1 + move.l %d2,%a1 + muls.l %d4,%d1 + movem.l 8(%sp),#3100 + add.l %d0,%d1 + move.l %d1,40(%sp) + lea (32,%sp),%sp + jmp (%a1) +.L235: + lea .LC2,%a0 + move.b (%a0)+,%d0 + move.b %d0,(%a2)+ + jne .L227 + jra .L214 +.L257: moveq #12,%d2 - sub.l %d0,%d2 - move.l %d2,%d0 - mov3q.l #2,%a1 - move.b #45,(%a0)+ - mov3q.l #1,%d1 - moveq #9,%d2 - cmp.l %d0,%d2 - jcc .L206 - jra .L221 - .size format_control, .-format_control + mov3q.l #2,%a0 + move.l %a2,%a1 + sub.l %d1,%d2 + move.b #45,(%a1)+ + move.l %d2,%d1 + mov3q.l #1,%d0 + jra .L230 +.L255: + tst.l %d1 + jeq .L222 + move.l #268618112,%d0 + sub.l %d1,%d0 + lsl.l #2,%d0 + move.l %d0,%a1 + move.l (%a1),%a0 + tst.l %a0 + jne .L227 + move.l %a2,%a1 + mov3q.l #1,%a0 + clr.l %d0 + jra .L230 + .size midi_format, .-midi_format .align 2 - .type format_10, @function -format_10: - moveq #10,%d0 + .type midi_format_0, @function +midi_format_0: + move.l midi_view,%d0 + mov3q.l #6,%d1 + lea midi_layout,%a0 + muls.l %d1,%d0 + mvz.b (%a0,%d0.l),%d0 move.l %d0,8(%sp) - jra format_control - .size format_10, .-format_10 + jra midi_format + .size midi_format_0, .-midi_format_0 .align 2 - .type format_8, @function -format_8: - moveq #8,%d0 + .type midi_format_1, @function +midi_format_1: + move.l midi_view,%d0 + mov3q.l #6,%d1 + muls.l %d1,%d0 + move.l %d0,%a0 + add.l #midi_layout+1,%a0 + mvz.b (%a0),%d0 move.l %d0,8(%sp) - jra format_control - .size format_8, .-format_8 + jra midi_format + .size midi_format_1, .-midi_format_1 .align 2 - .type format_6, @function -format_6: - mov3q.l #6,8(%sp) - jra format_control - .size format_6, .-format_6 + .type midi_format_2, @function +midi_format_2: + move.l midi_view,%d0 + mov3q.l #6,%d1 + muls.l %d1,%d0 + move.l %d0,%a0 + add.l #midi_layout+2,%a0 + mvz.b (%a0),%d0 + move.l %d0,8(%sp) + jra midi_format + .size midi_format_2, .-midi_format_2 .align 2 - .type format_11, @function -format_11: - mvz.b 269161676,%d0 - lea (-12,%sp),%sp - lea (1,%sp),%a0 - move.l %d0,-(%sp) - jsr settings - addq.l #4,%sp - tst.b 11(%sp) - jeq .L231 - lea .LC2,%a0 - move.l 16(%sp),%a1 -.L230: - move.b (%a0)+,%d0 - move.b %d0,(%a1)+ - jne .L230 - lea (12,%sp),%sp - rts -.L231: - move.l 16(%sp),%a1 - lea .LC0,%a0 - jra .L230 - .size format_11, .-format_11 + .type midi_format_3, @function +midi_format_3: + move.l midi_view,%d0 + mov3q.l #6,%d1 + muls.l %d1,%d0 + move.l %d0,%a0 + add.l #midi_layout+3,%a0 + mvz.b (%a0),%d0 + move.l %d0,8(%sp) + jra midi_format + .size midi_format_3, .-midi_format_3 .align 2 - .type format_3, @function -format_3: - lea (-12,%sp),%sp - move.l %d2,-(%sp) - mvz.b 269161676,%d0 - lea (5,%sp),%a0 - mov3q.l #5,%d2 - move.l %d0,-(%sp) - jsr settings - mvz.b 12(%sp),%d0 - addq.l #4,%sp - lea vector_scale_names,%a0 - remu.l %d2,%d1:%d0 - move.l 20(%sp),%a1 - move.l (%a0,%d1.l*4),%a0 -.L236: - move.b (%a0)+,%d0 - move.b %d0,(%a1)+ - jne .L236 - move.l (%sp)+,%d2 - lea (12,%sp),%sp - rts - .size format_3, .-format_3 + .type midi_format_4, @function +midi_format_4: + move.l midi_view,%d0 + mov3q.l #6,%d1 + muls.l %d1,%d0 + move.l %d0,%a0 + add.l #midi_layout+4,%a0 + mvz.b (%a0),%d0 + move.l %d0,8(%sp) + jra midi_format + .size midi_format_4, .-midi_format_4 .align 2 - .type format_2, @function -format_2: - lea (-12,%sp),%sp - move.l %d2,-(%sp) - moveq #12,%d2 - mvz.b 269161676,%d0 - lea (5,%sp),%a0 - move.l %d0,-(%sp) - jsr settings - mvz.b 11(%sp),%d0 - addq.l #4,%sp - lea (roots.1),%a0 - remu.l %d2,%d1:%d0 - move.l 20(%sp),%a1 - move.l (%a0,%d1.l*4),%a0 -.L241: - move.b (%a0)+,%d0 - move.b %d0,(%a1)+ - jne .L241 + .type midi_format_5, @function +midi_format_5: + move.l midi_view,%d0 + mov3q.l #6,%d1 + muls.l %d1,%d0 + move.l %d0,%a0 + add.l #midi_layout+5,%a0 + mvz.b (%a0),%d0 + move.l %d0,8(%sp) + jra midi_format + .size midi_format_5, .-midi_format_5 + .align 2 + .type midi_page1, @function +midi_page1: + lea (-16,%sp),%sp + movem.l #3084,(%sp) + move.l 1187521622,%a0 + mov3q.l #3,%d3 + move.l 20(%sp),%d1 + move.l %d1,%d2 + lsl.l #5,%d2 + move.l 24(%sp),%a1 + add.l #585088,%a0 + lea (31,%sp),%a3 + move.l %d1,%a2 + add.l #-2147457426,%a2 + lea (994,%a1),%a1 + move.b 269161679,%d0 + add.l %d2,%a1 + mvz.w #6322,%d2 + and.l %d3,%d0 + muls.l %d2,%d0 + add.l %d0,%a0 + move.b (%a3),(%a0,%a1.l) + move.b 269161679,%d0 + and.l %d3,%d0 + muls.l %d2,%d0 + move.l %d0,%a0 + add.l #269110990,%a0 + move.b (%a3),(%a0,%a1.l) + move.b (%a2),%d0 + mvz.b -2147483646,%d2 + mvz.b %d0,%d0 + cmp.l %d0,%d2 + jeq .L274 +.L270: + movem.l (%sp),#3084 + lea (16,%sp),%sp + rts +.L274: + move.l %d1,%a0 + add.l #-2147457418,%a0 + move.b (%a0),%d0 + mvz.b -2147483645,%d2 + mvz.b %d0,%d0 + cmp.l %d0,%d2 + jne .L270 + moveq #68,%d0 + muls.l %d1,%d0 + move.l 24(%sp),%a0 + add.l #1187474880,%a0 + move.b (%a3),(%a0,%d0.l) + movem.l (%sp),#3084 + lea (16,%sp),%sp + rts + .size midi_page1, .-midi_page1 + .align 2 + .type mg_page_view, @function +mg_page_view: + move.l 1175262852,%d1 + mov3q.l #4,%d0 + move.l %a2,-(%sp) + move.l %d2,-(%sp) + cmp.l %d1,%d0 + jcs .L283 + tst.l 1175263034 + jne .L283 + tst.l 1175262868 + jne .L283 + move.l 24(%sp),%d0 + add.l #3089,%d0 + mvz.w %d0,%d0 + move.l 20(%sp),%a0 + lea (%a0,%d0.l*2),%a0 + move.b 1(%a0),%d0 + mvz.b (%a0),%d2 + move.l %d2,%a1 + moveq #77,%d2 + cmp.l %a1,%d2 + jne .L283 + tst.l 16(%sp) + jeq .L283 + mvz.b %d0,%d0 + move.l 12(%sp),%a2 + move.l %d0,%a1 + move.l (%a2),%d0 + move.l %d0,%a2 + cmp.l 8(%a2),%a1 + jeq .L287 + move.b (%a0),%d0 +.L283: move.l (%sp)+,%d2 - lea (12,%sp),%sp + clr.l %d0 + move.l (%sp)+,%a2 rts - .size format_2, .-format_2 +.L287: + mov3q.l #4,%d2 + or.l 12(%a2),%d2 + btst %d1,%d2 + jeq .L283 + move.l (%sp)+,%d2 + move.l (%sp)+,%a2 + rts + .size mg_page_view, .-mg_page_view .align 2 - .type format_9, @function -format_9: - lea (-36,%sp),%sp - movem.l #16412,(%sp) - move.l 40(%sp),%a6 - lea (25,%sp),%a0 + .type draw_generator_widget.part.0, @function +draw_generator_widget.part.0: + lea (-12,%sp),%sp + move.l %a6,-(%sp) + move.l %d2,-(%sp) mvz.b 269161676,%d0 + move.l 36(%sp),%a6 move.l %d0,-(%sp) + lea (13,%sp),%a0 jsr settings - mvz.b 37(%sp),%d0 addq.l #4,%sp - moveq #99,%d1 - cmp.l %d0,%d1 - jcc .L246 - moveq #100,%d2 - mov3q.l #2,%a0 - move.l %d0,%d1 - mov3q.l #3,%a1 - divu.l %d2,%d1 - moveq #10,%d2 - add.l %a6,%a0 - mov3q.l #1,16(%sp) - add.l #48,%d1 - move.b %d1,(%a6) + mov3q.l #6,%d0 + cmp.l %a6,%d0 + jeq .L296 + mov3q.l #5,%d2 + move.l %a6,%d0 + cmp.l %a6,%d2 + jcc .L291 + subq.l #1,%d0 +.L291: + mvz.b 9(%sp,%d0.l),%d0 + move.l %d0,%a0 +.L290: + move.l 48(%sp),-(%sp) + move.l 48(%sp),-(%sp) + moveq #-2,%d0 + and.l 48(%sp),%d0 + lea vector_control_max,%a1 + mvz.b (%a1,%a6.l),%d1 + move.l %d0,-(%sp) + move.l %d1,%d0 + cmp.l %d1,%a0 + jcc .L292 + move.l %a0,%d0 +.L292: + mulu.w #127,%d0 + divu.l %d1,%d0 + move.l %d0,-(%sp) + move.l 48(%sp),-(%sp) + move.l 48(%sp),-(%sp) + move.l 48(%sp),-(%sp) + jsr 1074035124 + lea (28,%sp),%sp + move.l (%sp)+,%d2 + move.l (%sp)+,%a6 + lea (12,%sp),%sp + rts +.L296: + move.b 269161676,%d0 + move.l 1187521622,%a1 + mov3q.l #3,%d2 + move.b 269161679,%d1 + add.l #585088,%a1 + mvz.b %d0,%d0 + and.l %d2,%d1 + mulu.w #30,%d0 + move.l %d0,%a0 + mvz.w #6322,%d0 + lea (497,%a0),%a0 + muls.l %d0,%d1 + add.l %d1,%a1 + move.b (%a1,%a0.l),%d0 + moveq #127,%d1 + and.l %d0,%d1 + move.l %d1,%a0 + jra .L290 + .size draw_generator_widget.part.0, .-draw_generator_widget.part.0 + .align 2 + .type secondary_widget, @function +secondary_widget: + subq.l #8,%sp + move.l %d2,-(%sp) + moveq #11,%d2 + move.l 24(%sp),%d0 move.l %d0,%d1 - divu.l %d2,%d1 - move.l %d1,%d4 - remu.l %d2,%d3:%d4 - move.l 16(%sp),%d4 - move.l %d3,%d1 - add.l #48,%d1 - move.b %d1,(%a6,%d4.l) -.L248: - moveq #10,%d2 - remu.l %d2,%d1:%d0 - clr.b %d3 - add.l #48,%d1 - move.b %d1,(%a0) - move.b %d3,(%a6,%a1.l) - movem.l (%sp),#16412 - lea (36,%sp),%sp + move.l 16(%sp),%a0 + addq.l #6,%d1 + move.l 20(%sp),%a1 + move.l 32(%sp),4(%sp) + move.l 36(%sp),8(%sp) + cmp.l %d1,%d2 + jcc .L301 + move.l (%sp)+,%d2 + addq.l #8,%sp rts -.L246: - moveq #9,%d4 - cmp.l %d0,%d4 - jcs .L252 - moveq #10,%d2 - mov3q.l #1,%a1 - remu.l %d2,%d1:%d0 - clr.b %d3 - move.l %a6,%a0 - add.l #48,%d1 - move.b %d1,(%a0) - move.b %d3,(%a6,%a1.l) - movem.l (%sp),#16412 - lea (36,%sp),%sp +.L301: + move.l 8(%sp),36(%sp) + move.l 4(%sp),32(%sp) + move.l %d1,28(%sp) + move.l %d0,24(%sp) + move.l %a1,20(%sp) + move.l %a0,16(%sp) + move.l (%sp)+,%d2 + addq.l #8,%sp + jra (draw_generator_widget.part.0) + .size secondary_widget, .-secondary_widget + .align 2 + .type generator_widget, @function +generator_widget: + subq.l #4,%sp + move.l %d2,-(%sp) + moveq #11,%d2 + move.l 20(%sp),%d0 + move.l 12(%sp),%d1 + move.l 16(%sp),%a0 + move.l 28(%sp),%a1 + move.l 32(%sp),4(%sp) + cmp.l %d0,%d2 + jcc .L306 + move.l (%sp)+,%d2 + addq.l #4,%sp rts -.L252: - moveq #10,%d2 - mov3q.l #1,%a0 - move.l %d0,%d1 - mov3q.l #2,%a1 - divu.l %d2,%d1 - clr.l 16(%sp) - add.l %a6,%a0 - move.l %d1,%d4 - remu.l %d2,%d3:%d4 - move.l 16(%sp),%d4 - move.l %d3,%d1 - add.l #48,%d1 - move.b %d1,(%a6,%d4.l) - jra .L248 - .size format_9, .-format_9 +.L306: + move.l 4(%sp),32(%sp) + move.l %a1,28(%sp) + move.l %d0,24(%sp) + move.l %d0,20(%sp) + move.l %a0,16(%sp) + move.l %d1,12(%sp) + move.l (%sp)+,%d2 + addq.l #4,%sp + jra (draw_generator_widget.part.0) + .size generator_widget, .-generator_widget .align 2 - .type format_7, @function -format_7: - lea (-36,%sp),%sp + .type format_control, @function +format_control: + lea (-28,%sp),%sp movem.l #16412,(%sp) - move.l 40(%sp),%a6 - lea (25,%sp),%a0 + move.l 36(%sp),%d2 + lea (17,%sp),%a0 mvz.b 269161676,%d0 move.l %d0,-(%sp) jsr settings - mvz.b 35(%sp),%d0 addq.l #4,%sp - moveq #99,%d1 - cmp.l %d0,%d1 - jcc .L254 - moveq #100,%d2 - mov3q.l #2,%a0 - move.l %d0,%d1 - mov3q.l #3,%a1 - divu.l %d2,%d1 - moveq #10,%d2 - add.l %a6,%a0 - mov3q.l #1,16(%sp) - add.l #48,%d1 - move.b %d1,(%a6) + mov3q.l #6,%d0 + cmp.l %d2,%d0 + jeq .L335 + mov3q.l #5,%d0 + cmp.l %d2,%d0 + jcs .L310 + mvz.b 17(%sp,%d2.l),%d0 + move.l %d2,%d1 + mov3q.l #1,%d3 + subq.l #2,%d1 + cmp.l %d1,%d3 + jcs .L309 + subq.l #2,%d2 + tst.l %d2 + jeq .L336 + mov3q.l #5,%d3 + remu.l %d3,%d1:%d0 + lea vector_scale_names,%a0 + move.l 32(%sp),%a1 + move.l (%a0,%d1.l*4),%a0 +.L316: + move.b (%a0)+,%d0 + move.b %d0,(%a1)+ + jne .L316 +.L307: + movem.l (%sp),#16412 + lea (28,%sp),%sp + rts +.L310: + mvz.b 16(%sp,%d2.l),%d0 + moveq #11,%d4 + cmp.l %d2,%d4 + jne .L337 + tst.l %d0 + jeq .L327 + move.l 32(%sp),%a1 + lea .LC4,%a0 +.L320: + move.b (%a0)+,%d0 + move.b %d0,(%a1)+ + jeq .L307 + move.b (%a0)+,%d0 + move.b %d0,(%a1)+ + jne .L320 + jra .L307 +.L335: + move.b 269161676,%d0 + move.l 1187521622,%a1 + mov3q.l #3,%d2 + move.b 269161679,%d1 + mvz.w #6322,%d3 + add.l #585088,%a1 + moveq #127,%d4 + mvz.b %d0,%d0 + and.l %d2,%d1 + mulu.w #30,%d0 + move.l %d0,%a0 + muls.l %d3,%d1 + lea (497,%a0),%a0 + add.l %d1,%a1 + move.b (%a1,%a0.l),%d0 + and.l %d4,%d0 +.L309: + moveq #99,%d3 + cmp.l %d0,%d3 + jcc .L328 +.L339: + moveq #100,%d4 + moveq #10,%d3 move.l %d0,%d1 - divu.l %d2,%d1 - move.l %d1,%d4 - remu.l %d2,%d3:%d4 - move.l 16(%sp),%d4 - move.l %d3,%d1 + mov3q.l #2,%a6 + divu.l %d4,%d1 + move.l 32(%sp),%a0 + mov3q.l #3,%a1 add.l #48,%d1 - move.b %d1,(%a6,%d4.l) -.L256: + move.b %d1,(%a0)+ + move.l %d0,%d1 + divu.l %d3,%d1 + move.l %d1,%d2 + remu.l %d3,%d4:%d2 + move.l %d4,%d1 + add.l #48,%d1 + move.b %d1,(%a0) + move.l 32(%sp),%a0 + add.l %a6,%a0 +.L325: moveq #10,%d2 remu.l %d2,%d1:%d0 clr.b %d3 add.l #48,%d1 move.b %d1,(%a0) - move.b %d3,(%a6,%a1.l) + move.l 32(%sp),%a0 + move.b %d3,(%a0,%a1.l) movem.l (%sp),#16412 - lea (36,%sp),%sp + lea (28,%sp),%sp rts -.L254: - moveq #9,%d4 - cmp.l %d0,%d4 - jcs .L260 - moveq #10,%d2 +.L328: + move.l 32(%sp),%a0 mov3q.l #1,%a1 - remu.l %d2,%d1:%d0 - clr.b %d3 - move.l %a6,%a0 + clr.l %d1 + moveq #9,%d2 + cmp.l %d0,%d2 + jcc .L325 +.L340: + move.l %a1,%a6 + moveq #10,%d3 + move.l %d1,%a1 + move.l %d0,%d1 + divu.l %d3,%d1 + addq.l #2,%a1 + move.l %d1,%d2 + remu.l %d3,%d4:%d2 + move.l %d4,%d1 add.l #48,%d1 move.b %d1,(%a0) - move.b %d3,(%a6,%a1.l) - movem.l (%sp),#16412 - lea (36,%sp),%sp - rts -.L260: - moveq #10,%d2 - mov3q.l #1,%a0 + move.l 32(%sp),%a0 + add.l %a6,%a0 + jra .L325 +.L327: + move.l 32(%sp),%a1 + lea .LC2,%a0 + jra .L320 +.L336: + moveq #12,%d2 + remu.l %d2,%d1:%d0 + lea (roots.6),%a0 + move.l 32(%sp),%a1 + move.l (%a0,%d1.l*4),%a0 + jra .L316 +.L337: + moveq #10,%d4 + cmp.l %d2,%d4 + jne .L318 + tst.l %d0 + jne .L309 + move.l 32(%sp),%a1 + lea .LC1,%a0 + jra .L320 +.L318: + subq.l #8,%d2 + tst.l %d2 + jne .L309 move.l %d0,%d1 + add.l #-12,%d1 + tst.l %d1 + jlt .L338 + move.l %d1,%d0 + moveq #99,%d3 + cmp.l %d0,%d3 + jcs .L339 + jra .L328 +.L338: + move.l 32(%sp),%a0 + moveq #12,%d2 + sub.l %d0,%d2 + move.l %d2,%d0 mov3q.l #2,%a1 - divu.l %d2,%d1 - clr.l 16(%sp) - add.l %a6,%a0 - move.l %d1,%d4 - remu.l %d2,%d3:%d4 - move.l 16(%sp),%d4 - move.l %d3,%d1 - add.l #48,%d1 - move.b %d1,(%a6,%d4.l) - jra .L256 - .size format_7, .-format_7 + move.b #45,(%a0)+ + mov3q.l #1,%d1 + moveq #9,%d2 + cmp.l %d0,%d2 + jcc .L325 + jra .L340 + .size format_control, .-format_control .align 2 - .type format_5, @function -format_5: + .type format_10, @function +format_10: + moveq #10,%d0 + move.l %d0,8(%sp) + jra format_control + .size format_10, .-format_10 + .align 2 + .type format_8, @function +format_8: + moveq #8,%d0 + move.l %d0,8(%sp) + jra format_control + .size format_8, .-format_8 + .align 2 + .type format_6, @function +format_6: + mov3q.l #6,8(%sp) + jra format_control + .size format_6, .-format_6 + .align 2 + .type format_11, @function +format_11: + mvz.b 269161676,%d0 + lea (-12,%sp),%sp + lea (1,%sp),%a0 + move.l %d0,-(%sp) + jsr settings + addq.l #4,%sp + tst.b 11(%sp) + jeq .L350 + lea .LC4,%a0 + move.l 16(%sp),%a1 +.L349: + move.b (%a0)+,%d0 + move.b %d0,(%a1)+ + jne .L349 + lea (12,%sp),%sp + rts +.L350: + move.l 16(%sp),%a1 + lea .LC2,%a0 + jra .L349 + .size format_11, .-format_11 + .align 2 + .type format_3, @function +format_3: + lea (-12,%sp),%sp + move.l %d2,-(%sp) + mvz.b 269161676,%d0 + lea (5,%sp),%a0 + mov3q.l #5,%d2 + move.l %d0,-(%sp) + jsr settings + mvz.b 12(%sp),%d0 + addq.l #4,%sp + lea vector_scale_names,%a0 + remu.l %d2,%d1:%d0 + move.l 20(%sp),%a1 + move.l (%a0,%d1.l*4),%a0 +.L355: + move.b (%a0)+,%d0 + move.b %d0,(%a1)+ + jne .L355 + move.l (%sp)+,%d2 + lea (12,%sp),%sp + rts + .size format_3, .-format_3 + .align 2 + .type format_2, @function +format_2: + lea (-12,%sp),%sp + move.l %d2,-(%sp) + moveq #12,%d2 + mvz.b 269161676,%d0 + lea (5,%sp),%a0 + move.l %d0,-(%sp) + jsr settings + mvz.b 11(%sp),%d0 + addq.l #4,%sp + lea (roots.6),%a0 + remu.l %d2,%d1:%d0 + move.l 20(%sp),%a1 + move.l (%a0,%d1.l*4),%a0 +.L360: + move.b (%a0)+,%d0 + move.b %d0,(%a1)+ + jne .L360 + move.l (%sp)+,%d2 + lea (12,%sp),%sp + rts + .size format_2, .-format_2 + .align 2 + .type format_9, @function +format_9: lea (-36,%sp),%sp movem.l #16412,(%sp) move.l 40(%sp),%a6 @@ -1491,11 +1990,11 @@ format_5: mvz.b 269161676,%d0 move.l %d0,-(%sp) jsr settings - mvz.b 34(%sp),%d0 + mvz.b 37(%sp),%d0 addq.l #4,%sp moveq #99,%d1 cmp.l %d0,%d1 - jcc .L262 + jcc .L365 moveq #100,%d2 mov3q.l #2,%a0 move.l %d0,%d1 @@ -1514,7 +2013,7 @@ format_5: move.l %d3,%d1 add.l #48,%d1 move.b %d1,(%a6,%d4.l) -.L264: +.L367: moveq #10,%d2 remu.l %d2,%d1:%d0 clr.b %d3 @@ -1524,10 +2023,10 @@ format_5: movem.l (%sp),#16412 lea (36,%sp),%sp rts -.L262: +.L365: moveq #9,%d4 cmp.l %d0,%d4 - jcs .L268 + jcs .L371 moveq #10,%d2 mov3q.l #1,%a1 remu.l %d2,%d1:%d0 @@ -1539,7 +2038,7 @@ format_5: movem.l (%sp),#16412 lea (36,%sp),%sp rts -.L268: +.L371: moveq #10,%d2 mov3q.l #1,%a0 move.l %d0,%d1 @@ -1553,11 +2052,11 @@ format_5: move.l %d3,%d1 add.l #48,%d1 move.b %d1,(%a6,%d4.l) - jra .L264 - .size format_5, .-format_5 + jra .L367 + .size format_9, .-format_9 .align 2 - .type format_4, @function -format_4: + .type format_7, @function +format_7: lea (-36,%sp),%sp movem.l #16412,(%sp) move.l 40(%sp),%a6 @@ -1565,11 +2064,11 @@ format_4: mvz.b 269161676,%d0 move.l %d0,-(%sp) jsr settings - mvz.b 33(%sp),%d0 + mvz.b 35(%sp),%d0 addq.l #4,%sp moveq #99,%d1 cmp.l %d0,%d1 - jcc .L270 + jcc .L373 moveq #100,%d2 mov3q.l #2,%a0 move.l %d0,%d1 @@ -1588,7 +2087,7 @@ format_4: move.l %d3,%d1 add.l #48,%d1 move.b %d1,(%a6,%d4.l) -.L272: +.L375: moveq #10,%d2 remu.l %d2,%d1:%d0 clr.b %d3 @@ -1598,10 +2097,158 @@ format_4: movem.l (%sp),#16412 lea (36,%sp),%sp rts -.L270: +.L373: + moveq #9,%d4 + cmp.l %d0,%d4 + jcs .L379 + moveq #10,%d2 + mov3q.l #1,%a1 + remu.l %d2,%d1:%d0 + clr.b %d3 + move.l %a6,%a0 + add.l #48,%d1 + move.b %d1,(%a0) + move.b %d3,(%a6,%a1.l) + movem.l (%sp),#16412 + lea (36,%sp),%sp + rts +.L379: + moveq #10,%d2 + mov3q.l #1,%a0 + move.l %d0,%d1 + mov3q.l #2,%a1 + divu.l %d2,%d1 + clr.l 16(%sp) + add.l %a6,%a0 + move.l %d1,%d4 + remu.l %d2,%d3:%d4 + move.l 16(%sp),%d4 + move.l %d3,%d1 + add.l #48,%d1 + move.b %d1,(%a6,%d4.l) + jra .L375 + .size format_7, .-format_7 + .align 2 + .type format_5, @function +format_5: + lea (-36,%sp),%sp + movem.l #16412,(%sp) + move.l 40(%sp),%a6 + lea (25,%sp),%a0 + mvz.b 269161676,%d0 + move.l %d0,-(%sp) + jsr settings + mvz.b 34(%sp),%d0 + addq.l #4,%sp + moveq #99,%d1 + cmp.l %d0,%d1 + jcc .L381 + moveq #100,%d2 + mov3q.l #2,%a0 + move.l %d0,%d1 + mov3q.l #3,%a1 + divu.l %d2,%d1 + moveq #10,%d2 + add.l %a6,%a0 + mov3q.l #1,16(%sp) + add.l #48,%d1 + move.b %d1,(%a6) + move.l %d0,%d1 + divu.l %d2,%d1 + move.l %d1,%d4 + remu.l %d2,%d3:%d4 + move.l 16(%sp),%d4 + move.l %d3,%d1 + add.l #48,%d1 + move.b %d1,(%a6,%d4.l) +.L383: + moveq #10,%d2 + remu.l %d2,%d1:%d0 + clr.b %d3 + add.l #48,%d1 + move.b %d1,(%a0) + move.b %d3,(%a6,%a1.l) + movem.l (%sp),#16412 + lea (36,%sp),%sp + rts +.L381: + moveq #9,%d4 + cmp.l %d0,%d4 + jcs .L387 + moveq #10,%d2 + mov3q.l #1,%a1 + remu.l %d2,%d1:%d0 + clr.b %d3 + move.l %a6,%a0 + add.l #48,%d1 + move.b %d1,(%a0) + move.b %d3,(%a6,%a1.l) + movem.l (%sp),#16412 + lea (36,%sp),%sp + rts +.L387: + moveq #10,%d2 + mov3q.l #1,%a0 + move.l %d0,%d1 + mov3q.l #2,%a1 + divu.l %d2,%d1 + clr.l 16(%sp) + add.l %a6,%a0 + move.l %d1,%d4 + remu.l %d2,%d3:%d4 + move.l 16(%sp),%d4 + move.l %d3,%d1 + add.l #48,%d1 + move.b %d1,(%a6,%d4.l) + jra .L383 + .size format_5, .-format_5 + .align 2 + .type format_4, @function +format_4: + lea (-36,%sp),%sp + movem.l #16412,(%sp) + move.l 40(%sp),%a6 + lea (25,%sp),%a0 + mvz.b 269161676,%d0 + move.l %d0,-(%sp) + jsr settings + mvz.b 33(%sp),%d0 + addq.l #4,%sp + moveq #99,%d1 + cmp.l %d0,%d1 + jcc .L389 + moveq #100,%d2 + mov3q.l #2,%a0 + move.l %d0,%d1 + mov3q.l #3,%a1 + divu.l %d2,%d1 + moveq #10,%d2 + add.l %a6,%a0 + mov3q.l #1,16(%sp) + add.l #48,%d1 + move.b %d1,(%a6) + move.l %d0,%d1 + divu.l %d2,%d1 + move.l %d1,%d4 + remu.l %d2,%d3:%d4 + move.l 16(%sp),%d4 + move.l %d3,%d1 + add.l #48,%d1 + move.b %d1,(%a6,%d4.l) +.L391: + moveq #10,%d2 + remu.l %d2,%d1:%d0 + clr.b %d3 + add.l #48,%d1 + move.b %d1,(%a0) + move.b %d3,(%a6,%a1.l) + movem.l (%sp),#16412 + lea (36,%sp),%sp + rts +.L389: moveq #9,%d4 cmp.l %d0,%d4 - jcs .L276 + jcs .L395 moveq #10,%d2 mov3q.l #1,%a1 remu.l %d2,%d1:%d0 @@ -1613,7 +2260,7 @@ format_4: movem.l (%sp),#16412 lea (36,%sp),%sp rts -.L276: +.L395: moveq #10,%d2 mov3q.l #1,%a0 move.l %d0,%d1 @@ -1627,7 +2274,7 @@ format_4: move.l %d3,%d1 add.l #48,%d1 move.b %d1,(%a6,%d4.l) - jra .L272 + jra .L391 .size format_4, .-format_4 .align 2 .type format_1, @function @@ -1643,7 +2290,7 @@ format_1: addq.l #4,%sp moveq #99,%d1 cmp.l %d0,%d1 - jcc .L278 + jcc .L397 moveq #100,%d2 mov3q.l #2,%a0 move.l %d0,%d1 @@ -1662,7 +2309,7 @@ format_1: move.l %d3,%d1 add.l #48,%d1 move.b %d1,(%a6,%d4.l) -.L280: +.L399: moveq #10,%d2 remu.l %d2,%d1:%d0 clr.b %d3 @@ -1672,10 +2319,10 @@ format_1: movem.l (%sp),#16412 lea (36,%sp),%sp rts -.L278: +.L397: moveq #9,%d4 cmp.l %d0,%d4 - jcs .L284 + jcs .L403 moveq #10,%d2 mov3q.l #1,%a1 remu.l %d2,%d1:%d0 @@ -1687,7 +2334,7 @@ format_1: movem.l (%sp),#16412 lea (36,%sp),%sp rts -.L284: +.L403: moveq #10,%d2 mov3q.l #1,%a0 move.l %d0,%d1 @@ -1701,7 +2348,7 @@ format_1: move.l %d3,%d1 add.l #48,%d1 move.b %d1,(%a6,%d4.l) - jra .L280 + jra .L399 .size format_1, .-format_1 .align 2 .type format_0, @function @@ -1717,7 +2364,7 @@ format_0: addq.l #4,%sp moveq #99,%d1 cmp.l %d0,%d1 - jcc .L286 + jcc .L405 moveq #100,%d2 mov3q.l #2,%a0 move.l %d0,%d1 @@ -1736,7 +2383,7 @@ format_0: move.l %d3,%d1 add.l #48,%d1 move.b %d1,(%a6,%d4.l) -.L288: +.L407: moveq #10,%d2 remu.l %d2,%d1:%d0 clr.b %d3 @@ -1746,10 +2393,10 @@ format_0: movem.l (%sp),#16412 lea (36,%sp),%sp rts -.L286: +.L405: moveq #9,%d4 cmp.l %d0,%d4 - jcs .L292 + jcs .L411 moveq #10,%d2 mov3q.l #1,%a1 remu.l %d2,%d1:%d0 @@ -1761,7 +2408,7 @@ format_0: movem.l (%sp),#16412 lea (36,%sp),%sp rts -.L292: +.L411: moveq #10,%d2 mov3q.l #1,%a0 move.l %d0,%d1 @@ -1775,434 +2422,1420 @@ format_0: move.l %d3,%d1 add.l #48,%d1 move.b %d1,(%a6,%d4.l) - jra .L288 + jra .L407 .size format_0, .-format_0 .align 2 - .globl vector_next_seed - .type vector_next_seed, @function -vector_next_seed: - move.l 4(%sp),%d0 - moveq #127,%d1 - addq.l #1,%d0 + .type midi_set_control, @function +midi_set_control: + lea (-44,%sp),%sp + moveq #12,%d0 + movem.l #1084,(%sp) + move.l 52(%sp),%d4 + move.l 48(%sp),%d2 + move.l 56(%sp),%d3 + cmp.l %d4,%d0 + jeq .L413 + mov3q.l #2,%d1 + cmp.l %d4,%d1 + jeq .L414 + moveq #13,%d5 + cmp.l %d4,%d5 + jeq .L415 + mov3q.l #4,%d0 + cmp.l %d4,%d0 + jeq .L431 +.L417: + move.l 1187521622,%a0 + mov3q.l #3,%d1 + move.b 269161679,%d0 + move.l %d2,%d5 + add.l #585088,%a0 + lsl.l #4,%d5 + and.l %d1,%d0 + mvz.w #6322,%d1 + move.l %d5,%a1 + moveq #22,%d5 + lea (6206,%a1),%a2 + move.l %a2,24(%sp) + muls.l %d1,%d0 + add.l %d0,%a0 + mvz.b (%a0,%a2.l),%d0 + cmp.l %d0,%d5 + jeq .L432 + lea midi_byte,%a0 + clr.l %d1 + lea (6194,%a1),%a1 + moveq #13,%d0 + move.l %a0,32(%sp) + move.l %a1,28(%sp) + cmp.l %d1,%d0 + jcs .L421 +.L433: + moveq #11,%d5 + cmp.l %d1,%d5 + jcs .L422 + mov3q.l #4,%d0 + cmp.l %d1,%d0 + jeq .L422 +.L423: + move.l %d1,-(%sp) + move.l #269161679,%a2 + move.l %d2,-(%sp) + move.l %d1,28(%sp) + jsr midi_control + mov3q.l #3,%d5 + move.l 1187521622,%a0 + add.l #585088,%a0 + move.b (%a2),51(%sp) + move.l 28(%sp),%d1 + move.l %d0,%a1 + move.l 40(%sp),%a2 + lea (-64,%a1),%a1 + move.l %a1,44(%sp) + mvz.b (%a2,%d1.l),%d0 + addq.l #8,%sp + lea (39,%sp),%a2 + move.l 28(%sp),%a1 + add.l %d0,%a1 + move.b 43(%sp),%d0 + and.l %d5,%d0 + mvz.w #6322,%d5 + muls.l %d5,%d0 + mov3q.l #3,%d5 + add.l %d0,%a0 + move.b (%a2),(%a0,%a1.l) + move.b 269161679,%d0 + and.l %d5,%d0 + mvz.w #6322,%d5 + muls.l %d5,%d0 + move.l %d0,%a0 + add.l #269110990,%a0 + move.b (%a2),(%a0,%a1.l) +.L422: + addq.l #1,%d1 + moveq #13,%d0 + cmp.l %d1,%d0 + jcc .L433 +.L421: + moveq #16,%d5 + cmp.l %d1,%d5 + jne .L423 + move.l 1187521622,%a0 + mov3q.l #3,%d1 + move.b 269161679,%d0 + mvz.w #6322,%d5 + add.l #585088,%a0 + move.l 24(%sp),%a1 + add.l #-64,%d3 + move.l 32(%sp),%a2 + mvz.b (%a2,%d4.l),%d2 + and.l %d1,%d0 + move.l 24(%sp),%d1 + muls.l %d5,%d0 + mov3q.l #3,%d5 + add.l %d0,%a0 + moveq #22,%d0 + move.b %d0,(%a0,%d1.l) + mvz.w #6322,%d1 + move.b 269161679,%d0 + and.l %d5,%d0 + moveq #22,%d5 + muls.l %d1,%d0 + mov3q.l #3,%d1 + move.l %d0,%a0 + add.l #269110990,%a0 + move.b %d5,(%a0,%a1.l) + mvz.w #6322,%d5 + move.l 28(%sp),%a1 + add.l %d2,%a1 + move.l 1187521622,%a0 + add.l #585088,%a0 + move.b 269161679,%d0 and.l %d1,%d0 + muls.l %d5,%d0 + add.l %d0,%a0 + move.b %d3,(%a0,%a1.l) + move.b 269161679,%d0 + and.l %d1,%d0 + muls.l %d5,%d0 + move.l %d0,%a0 + add.l #269110990,%a0 + move.b %d3,(%a0,%a1.l) + movem.l (%sp),#1084 + lea (44,%sp),%sp rts - .size vector_next_seed, .-vector_next_seed - .align 2 - .globl vector_pack - .type vector_pack, @function -vector_pack: - move.l %d3,-(%sp) +.L413: + mov3q.l #2,-(%sp) move.l %d2,-(%sp) - move.l 16(%sp),%a0 - mov3q.l #4,%d2 - move.l 12(%sp),%a1 - move.b 3(%a0),%d0 - mvz.b %d0,%d1 - cmp.l %d1,%d2 - jcc .L296 - moveq #4,%d0 -.L296: - move.b (%a0),%d1 - lsl.l #4,%d0 - moveq #15,%d3 - mvz.b %d1,%d2 - cmp.l %d2,%d3 - jcc .L297 - moveq #15,%d1 -.L297: - or.l %d1,%d0 - move.b %d0,(%a1) - move.b 10(%a0),%d0 - jeq .L298 - moveq #1,%d0 -.L298: - move.b 1(%a0),%d1 - lsl.l #5,%d0 - moveq #16,%d3 - mvz.b %d1,%d2 - cmp.l %d2,%d3 - jcc .L299 - moveq #16,%d1 -.L299: - or.l %d1,%d0 - moveq #12,%d2 - move.b %d0,1(%a1) - move.b 6(%a0),%d0 - mvz.b %d0,%d1 - cmp.l %d1,%d2 - jcc .L300 - moveq #12,%d0 -.L300: - move.b 2(%a0),%d1 - lsl.l #4,%d0 - moveq #11,%d3 - mvz.b %d1,%d2 - cmp.l %d2,%d3 - jcc .L301 - moveq #11,%d1 -.L301: - or.l %d1,%d0 - moveq #126,%d2 - move.b %d0,2(%a1) - move.b 4(%a0),%d0 - mvz.b %d0,%d1 - cmp.l %d1,%d2 - jcc .L302 - moveq #126,%d0 -.L302: - move.b %d0,3(%a1) - move.b 5(%a0),%d0 - jpl .L303 - moveq #127,%d0 -.L303: - move.b %d0,4(%a1) - moveq #24,%d3 - move.b 7(%a0),%d0 - mvz.b %d0,%d1 - cmp.l %d1,%d3 - jcc .L304 - moveq #24,%d0 -.L304: - move.b %d0,5(%a1) - moveq #63,%d2 - move.b 8(%a0),%d0 - mvz.b %d0,%d1 - cmp.l %d1,%d2 - jcc .L305 - moveq #63,%d0 -.L305: - move.b %d0,6(%a1) - moveq #64,%d3 - move.b 9(%a0),%d0 - mvz.b %d0,%d1 - cmp.l %d1,%d3 - jcc .L306 - moveq #64,%d0 -.L306: - moveq #127,%d1 - and.l 20(%sp),%d1 - move.b %d0,7(%a1) - move.b %d1,8(%a1) - move.l (%sp)+,%d2 - move.l (%sp)+,%d3 - rts - .size vector_pack, .-vector_pack - .align 2 - .type save_settings, @function -save_settings: - lea (-40,%sp),%sp - movem.l #23580,(%sp) - move.l 52(%sp),-(%sp) - move.l 52(%sp),-(%sp) - lea (39,%sp),%a4 - move.l %a4,-(%sp) - jsr vector_pack - move.w 58(%sp),%d3 - sub.l %a6,%a6 - lea (12,%sp),%sp - mulu.w #30,%d3 -.L315: - move.b (%a4)+,%d2 - mov3q.l #2,%d0 - cmp.l %a6,%d0 - jcc .L319 - move.l #269161679,%a3 - mov3q.l #3,%d4 - move.b (%a3),%d0 - move.l 1187521622,%a1 - add.l #585088,%a1 - move.b (%a3),%d1 - lea (489,%a6),%a2 - addq.l #1,%a6 - add.l %d3,%a2 - and.l %d4,%d0 - and.l %d4,%d1 - mvz.w #6322,%d4 - muls.l %d4,%d0 - muls.l %d4,%d1 - move.l %d0,%a0 - add.l #269110990,%a0 - moveq #9,%d0 - add.l %d1,%a1 - move.b %d2,(%a1,%a2.l) - move.b %d2,(%a0,%a2.l) - cmp.l %a6,%d0 - jne .L315 -.L320: - move.b (%a3),%d0 - move.l 1187521622,%a1 - mov3q.l #3,%d2 - move.b (%a3),%d1 - add.l #585088,%a1 - and.l %d2,%d0 - and.l %d2,%d1 - muls.l %d4,%d0 - muls.l %d4,%d1 - moveq #2,%d4 + jsr midi_control + move.l %d2,56(%sp) + clr.l 60(%sp) + moveq #12,%d1 + muls.l %d1,%d3 + add.l %d0,%d3 + move.l %d3,64(%sp) + movem.l 8(%sp),#1084 + lea (52,%sp),%sp + jra midi_page1 +.L415: + move.l %d3,56(%sp) + move.l %d2,48(%sp) + movem.l (%sp),#1084 + mov3q.l #1,52(%sp) + lea (44,%sp),%sp + jra midi_page1 +.L431: + move.l %d3,56(%sp) + move.l %d2,48(%sp) + movem.l (%sp),#1084 + mov3q.l #2,52(%sp) + lea (44,%sp),%sp + jra midi_page1 +.L432: + lea midi_byte,%a0 + mov3q.l #3,%d1 + move.l %a0,32(%sp) + lea (6194,%a1),%a1 + add.l #-64,%d3 + move.l 1187521622,%a0 + add.l #585088,%a0 + move.l %a1,28(%sp) + mvz.w #6322,%d5 + move.b 269161679,%d0 + move.l 32(%sp),%a2 + move.l 28(%sp),%a1 + mvz.b (%a2,%d4.l),%d2 + add.l %d2,%a1 + and.l %d1,%d0 + muls.l %d5,%d0 + add.l %d0,%a0 + move.b %d3,(%a0,%a1.l) + move.b 269161679,%d0 + and.l %d1,%d0 + muls.l %d5,%d0 move.l %d0,%a0 add.l #269110990,%a0 - add.l %d1,%a1 - move.b %d4,62(%a1,%d3.l) - move.b %d4,62(%a0,%d3.l) - movem.l (%sp),#23580 - lea (40,%sp),%sp + move.b %d3,(%a0,%a1.l) + movem.l (%sp),#1084 + lea (44,%sp),%sp rts -.L319: - move.l #269161679,%a3 - mov3q.l #3,%d4 - move.b (%a3),%d0 +.L414: move.l 1187521622,%a1 + mov3q.l #3,%d1 + move.b 269161679,%d0 + move.l %d2,%d5 add.l #585088,%a1 - move.b (%a3),%d1 - lea (63,%a6),%a2 - addq.l #1,%a6 - add.l %d3,%a2 - and.l %d4,%d0 - and.l %d4,%d1 - mvz.w #6322,%d4 - muls.l %d4,%d0 - muls.l %d4,%d1 - move.l %d0,%a0 - add.l #269110990,%a0 + lsl.l #5,%d5 + and.l %d1,%d0 + mvz.w #6322,%d1 + move.l %d5,%a0 + moveq #19,%d5 + lea (994,%a0),%a0 + muls.l %d1,%d0 + moveq #9,%d1 + add.l %d0,%a1 + mvz.b (%a1,%a0.l),%d0 + mulu.w #43691,%d0 + lsr.l %d5,%d0 + cmp.l %d0,%d1 + jcc .L418 moveq #9,%d0 - add.l %d1,%a1 - move.b %d2,(%a1,%a2.l) - move.b %d2,(%a0,%a2.l) - cmp.l %a6,%d0 - jne .L315 - jra .L320 - .size save_settings, .-save_settings - .align 2 - .globl vector_unpack - .type vector_unpack, @function -vector_unpack: +.L418: + mulu.w #12,%d0 + move.l %d0,%a0 + pea (%a0,%d3.l) + clr.l -(%sp) move.l %d2,-(%sp) - moveq #15,%d1 - move.l 16(%sp),%a0 - mov3q.l #4,%d2 - move.l 8(%sp),%a1 - move.b (%a0),%d0 - and.l %d1,%d0 - move.b %d0,(%a1) - mvz.b (%a0),%d0 - lsr.l #4,%d0 - move.b %d0,%d1 - cmp.l %d0,%d2 - jcc .L322 - moveq #4,%d1 -.L322: - move.b %d1,3(%a1) - moveq #31,%d1 - moveq #16,%d2 - move.b 1(%a0),%d0 - and.l %d1,%d0 - move.b %d0,%d1 - cmp.l %d0,%d2 - jcc .L323 - moveq #16,%d1 -.L323: - move.b %d1,1(%a1) - mov3q.l #1,%d1 - moveq #15,%d2 - mvz.b 1(%a0),%d0 - lsr.l #5,%d0 - and.l %d1,%d0 - move.b %d0,10(%a1) - move.b 2(%a0),%d0 - and.l %d2,%d0 - moveq #11,%d2 - move.b %d0,%d1 - cmp.l %d0,%d2 - jcc .L324 - moveq #11,%d1 -.L324: - move.b %d1,2(%a1) - moveq #12,%d2 - mvz.b 2(%a0),%d0 - lsr.l #4,%d0 - move.b %d0,%d1 - cmp.l %d0,%d2 - jcc .L325 - moveq #12,%d1 -.L325: - move.b %d1,6(%a1) - moveq #126,%d2 - move.b 3(%a0),%d0 - mvz.b %d0,%d1 - cmp.l %d1,%d2 - jcc .L326 - moveq #126,%d0 -.L326: - move.b %d0,4(%a1) - move.b 4(%a0),%d0 - jpl .L327 - moveq #127,%d0 -.L327: - move.b %d0,5(%a1) - moveq #24,%d2 - move.b 5(%a0),%d0 - mvz.b %d0,%d1 - cmp.l %d1,%d2 - jcc .L328 - moveq #24,%d0 -.L328: - move.b %d0,7(%a1) - moveq #63,%d2 - move.b 6(%a0),%d0 - mvz.b %d0,%d1 - cmp.l %d1,%d2 - jcc .L329 - moveq #63,%d0 -.L329: - move.b %d0,8(%a1) - moveq #64,%d2 - move.b 7(%a0),%d0 + jsr midi_page1 + lea (12,%sp),%sp + jra .L417 + .size midi_set_control, .-midi_set_control + .align 2 + .type midi_generate, @function +midi_generate: + link.w %fp,#-148 + movem.l #15612,(%sp) + move.b 269161680,%d0 + move.l 1187521622,%d1 + add.l #-1073741824,%d1 + cmp.l #133169151,%d1 + jhi .L441 + mov3q.l #7,%d1 + cmp.l 8(%fp),%d1 + jcs .L441 mvz.b %d0,%d1 + moveq #15,%d2 cmp.l %d1,%d2 - jcc .L330 - moveq #64,%d0 -.L330: - move.b %d0,9(%a1) - moveq #127,%d1 - move.b 8(%a0),%d0 - move.l 12(%sp),%a0 - move.l (%sp)+,%d2 - and.l %d0,%d1 - move.l %d1,(%a0) - rts - .size vector_unpack, .-vector_unpack - .align 2 - .globl vector_generate - .type vector_generate, @function -vector_generate: - subq.l #4,%sp - move.l %a2,-(%sp) + jcs .L441 + ext.w %d0 + mvz.w #2224,%d6 + move.l 1187521622,%d1 + move.l %d1,%a0 + move.l 8(%fp),%d4 + move.b 269161679,%d3 + mulu.w #36568,%d0 + muls.l %d6,%d4 + lea (18640,%a0),%a0 + move.l %d4,%a1 + add.l %d0,%a1 + move.b %d3,-61(%fp) + move.l %a1,-76(%fp) + lea (%a1,%a0.l),%a5 + tst.l 12(%fp) + jeq .L515 + move.l %d0,%a0 + move.l #36437,%a1 + add.l %d1,%a0 + tst.b (%a0,%a1.l) + jeq .L444 +.L519: + move.b 40(%a5),%d3 + clr.l %d2 + lea midi_control,%a2 + mvz.b %d3,%d3 +.L450: + mov3q.l #6,%d7 + cmp.l %d2,%d7 + jne .L446 + mov3q.l #7,%d2 +.L446: move.l %d2,-(%sp) - move.l 16(%sp),%d0 - move.l 20(%sp),%d1 - move.l 24(%sp),%a0 - tst.l %d0 - jeq .L335 + move.l 8(%fp),-(%sp) + jsr (%a2) + addq.l #8,%sp + mov3q.l #5,%d1 + cmp.l %d2,%d1 + jcc .L516 + move.b %d0,-52(%fp,%d2.l) + addq.l #1,%d2 + moveq #12,%d4 + cmp.l %d2,%d4 + jne .L450 + mov3q.l #6,-(%sp) + move.l 8(%fp),-(%sp) + jsr (%a2) + addq.l #8,%sp + move.l %d0,-72(%fp) + tst.l 16(%fp) + jeq .L451 + addq.l #1,%d0 + moveq #127,%d6 + and.l %d0,%d6 + move.l %d6,-72(%fp) +.L451: + move.l 1187521622,%d0 + move.l %d3,%a0 + move.b 269161679,%d1 + subq.l #1,%a0 + moveq #63,%d7 + cmp.l %a0,%d7 + jcs .L441 + mov3q.l #3,%d2 + and.l %d2,%d1 + move.l %d0,%a3 + add.l #585088,%a3 + move.l 8(%fp),%d0 + mvz.w #6322,%d4 + lsl.l #5,%d0 + muls.l %d4,%d1 + add.l #994,%d0 + add.l %d1,%a3 + add.l %d0,%a3 + tst.b 1(%a3) + jlt .L441 + mvz.b 1(%a3),%d0 + moveq #127,%d6 + cmp.l %d0,%d6 + jcs .L441 + move.l -72(%fp),-(%sp) + move.l %d0,-(%sp) + moveq #19,%d4 + move.l %d3,-(%sp) + pea -51(%fp) + pea phrase + jsr (vector_generate.part.0) + pea 15.w + move.l 8(%fp),-(%sp) + jsr (%a2) + pea 14.w + move.l 8(%fp),-(%sp) + move.l %d0,-92(%fp) + jsr (%a2) + move.b (%a3),%d3 + mvz.b (%a3),%d1 + lea (36,%sp),%sp + move.l %a5,%a0 + move.l %d0,-84(%fp) + move.w %d1,%d2 + move.l %fp,%d0 + add.l #-40,%d0 + sub.l %d0,%a0 + move.l %a0,-56(%fp) + move.l -56(%fp),%a1 + move.l %d0,%a0 + mvz.b %d3,%d3 + move.l %fp,-100(%fp) + mulu.w #43691,%d2 + lsr.l %d4,%d2 + muls.w #12,%d2 + sub.l %d2,%d1 + mvz.b %d1,%d1 + sub.l %d1,%d3 + move.l %d3,-88(%fp) +.L452: + move.b (%a1,%a0.l),%d1 + move.b %d1,(%a0)+ + cmp.l -100(%fp),%a0 + jne .L452 + move.l -72(%fp),%d1 + move.l #-1640531527,%d6 + addq.l #1,%d1 + muls.l %d1,%d6 + move.l #-2048144789,%d1 + moveq #30,%d7 + move.l %d1,-96(%fp) + move.l -92(%fp),%d1 + clr.l %d2 + sub.l -84(%fp),%d7 + move.l -76(%fp),%a4 + add.l #268546638,%a4 + lea phrase,%a1 + add.l %d1,%d1 + move.l -76(%fp),%a3 + add.l #268544592,%a3 + move.l %d6,-68(%fp) + lea (2097,%a5),%a2 + move.l %d7,-60(%fp) + lea (80,%a5),%a0 + addq.l #1,%d1 + move.l %d1,-80(%fp) +.L477: + mov3q.l #7,%d6 + and.l %d2,%d6 + move.l %d2,%d3 + lsr.l #3,%d3 + lea (-32,%a0),%a5 + mov3q.l #1,%d4 + move.l %a5,-104(%fp) + mov3q.l #7,%a5 + sub.l %d3,%a5 + add.l %d0,%a5 + move.l %a5,-108(%fp) + mvz.b (%a5),%d1 + asr.l %d6,%d1 + and.l %d4,%d1 + tst.b (%a1) + jeq .L453 + mvz.b 1(%a1),%d4 + mov3q.l #5,%d7 + add.l #-64,%d4 + divs.l %d7,%d4 + move.l -88(%fp),%d5 + add.l %d4,%d5 + tst.l %d5 + jlt .L487 + moveq #127,%d4 + cmp.l %d5,%d4 + jge .L454 + moveq #127,%d5 +.L454: + move.l -104(%fp),%a5 + mvz.b %d5,%d4 + mvz.b (%a5),%d7 + cmp.l %d4,%d7 + jeq .L483 +.L482: + move.l -104(%fp),%a5 + move.b %d5,(%a5) + move.b %d5,-2(%a3) + tst.b (%a1) + jeq .L455 +.L483: + move.b 3(%a1),%d4 + mvz.b -31(%a0),%d7 + lea (-31,%a0),%a5 + move.l %a5,-104(%fp) + mvz.b %d4,%d5 + cmp.l %d7,%d5 + jeq .L456 + move.l -104(%fp),%a5 + move.b %d4,(%a5) + move.b %d4,-1(%a3) + tst.b (%a1) + jne .L456 +.L457: + mvz.b -30(%a0),%d4 + lea (-30,%a0),%a5 + move.l %a5,-104(%fp) + cmp.l #255,%d4 + jeq .L517 + st %d4 +.L458: + mov3q.l #1,%d5 + move.l -104(%fp),%a5 + lsl.l %d6,%d5 + move.b %d4,(%a5) + move.b %d4,(%a3) + tst.b (%a1) + jeq .L460 + move.l -108(%fp),%a5 + move.b (%a5),%d4 + or.l %d5,%d4 +.L461: + move.l -108(%fp),%a5 + move.b %d4,(%a5) + move.b (%a1),%d4 tst.l %d1 - jeq .L335 - lea (-1,%a0),%a2 - moveq #63,%d2 - cmp.l %a2,%d2 - jcs .L335 - moveq #127,%d2 - cmp.l 28(%sp),%d2 - jcs .L335 - move.l %a0,24(%sp) - move.l %d1,20(%sp) - move.l %d0,16(%sp) - move.l (%sp)+,%d2 - move.l (%sp)+,%a2 + jne .L462 +.L520: + tst.b %d4 + jeq .L464 +.L463: + tst.l -92(%fp) + jeq .L490 + move.l -96(%fp),%d4 + moveq #15,%d6 + move.l -68(%fp),%d1 + move.l #739982445,%d7 + eor.l %d4,%d1 + move.l %d1,%d4 + lsr.l %d6,%d4 + moveq #12,%d6 + eor.l %d4,%d1 + muls.l %d7,%d1 + move.l -80(%fp),%d7 + move.l %d1,%d4 + lsr.l %d6,%d4 + eor.l %d4,%d1 + remu.l %d7,%d4:%d1 + move.l %d4,%d1 + sub.l -92(%fp),%d1 + lsl.l #7,%d1 + and.l #8064,%d1 +.L466: + tst.l -84(%fp) + jeq .L468 + mov3q.l #3,%d4 + and.l %d2,%d4 + tst.l %d4 + jeq .L468 + or.l -60(%fp),%d1 +.L468: + move.l %d1,%d4 + lsr.l #8,%d4 +.L465: + move.l %a2,%a5 + mvz.b -(%a5),%d7 + mvz.b %d4,%d6 + cmp.l %d7,%d6 + jeq .L470 + move.b %d4,(%a5) + move.b %d4,(%a4) +.L470: + mvz.b (%a2),%d6 + mvz.b %d1,%d4 + cmp.l %d6,%d4 + jeq .L471 + move.b %d1,(%a2) + move.b %d1,1(%a4) +.L471: + clr.l %d1 + sub.l %d3,%d1 + move.l %d1,%d4 + add.l %d0,%d4 + move.l %d4,%a5 + move.l %d5,%d6 + move.b 15(%a5),%d1 + not.l %d6 + sub.l %a5,%a5 + sub.l %d3,%a5 + move.l %a5,%d7 + move.l %d4,%a5 + add.l %d0,%d7 + and.l %d6,%d1 + move.b %d1,15(%a5) + move.l %d7,%a5 + move.b 39(%a5),%d1 + and.l %d6,%d1 + move.b %d1,39(%a5) + move.b (%a1),%d1 + jeq .L464 + lea (locked.4),%a5 + move.b %d1,(%a5,%d2.l) + move.w #23,%a5 + sub.l %d3,%a5 + add.l %d0,%a5 + move.b (%a5),%d1 + and.l %d6,%d1 +.L476: + move.b %d1,(%a5) + move.l #-2048144789,%d1 + addq.l #1,%d2 + addq.l #4,%a1 + addq.l #2,%a2 + addq.l #2,%a4 + add.l %d1,-96(%fp) + lea (32,%a3),%a3 + lea (32,%a0),%a0 + move.l #phrase+256,%d3 + cmp.l %d3,%a1 + jne .L477 + move.l #268544541,%a2 + sub.l %d0,%a2 + add.l -76(%fp),%a2 + move.l -56(%fp),%d1 + move.l %d0,%a0 + subq.l #1,%d1 +.L479: + move.b (%a0)+,%d0 + mvz.b (%a0,%d1.l),%d2 + mvz.b %d0,%d3 + cmp.l %d3,%d2 + jeq .L478 + move.b %d0,(%a0,%d1.l) + move.b %d0,(%a2,%a0.l) +.L478: + cmp.l -100(%fp),%a0 + jne .L479 + tst.l 16(%fp) + jne .L518 + move.b -61(%fp),%d0 + mov3q.l #3,%d4 + mov3q.l #1,%d2 + move.l 1187521622,%a0 + move.l %d2,%d1 + add.l #610376,%a0 + move.b (%a0),%d3 + and.l %d4,%d0 + lsl.l %d0,%d1 + or.l %d1,%d3 + move.b %d3,(%a0) + move.l #1187500772,%d3 + move.b 269161566,%d0 + or.l %d0,%d1 + move.b %d1,269161566 + move.l 1187521622,%a0 + add.l #635698,%a0 + mov3q.l #1,(%a0) + mov3q.l #1,269452696 + jsr 1073905152 + move.l 8(%fp),%d6 + move.l %d6,%d4 + lsl.l %d6,%d2 + lea (locked.4),%a0 + sub.l %a0,%d3 + not.l %d2 +.L481: + lea (%a0,%d3.l),%a1 + move.b (%a1),%d0 + move.b (%a0)+,%d1 + and.l %d2,%d0 + lsl.l %d4,%d1 + or.l %d1,%d0 + move.b %d0,(%a1) + cmp.l #locked.4+64,%a0 + jne .L481 + move.l 8(%fp),%a0 + pea 8(%a0) + jsr 1074387488 + movem.l -148(%fp),#15612 addq.l #4,%sp - jra (vector_generate.part.0) -.L335: - move.l (%sp)+,%d2 + mov3q.l #1,%d0 + unlk %fp + rts +.L441: + movem.l -148(%fp),#15612 clr.l %d0 - move.l (%sp)+,%a2 - addq.l #4,%sp + unlk %fp rts - .size vector_generate, .-vector_generate - .align 2 - .globl vector_track_empty - .type vector_track_empty, @function -vector_track_empty: - move.l 4(%sp),%d1 - tst.l %d1 - jeq .L345 - mvz.w #2329,%d0 - cmp.l 8(%sp),%d0 - jcc .L345 - move.l %d1,%d0 - move.l %d1,%a0 - add.l #64,%d0 -.L346: +.L444: + mvz.w #36435,%d0 + clr.l %d2 + lea midi_control,%a2 + move.b (%a0,%d0.l),%d3 + mvz.b %d3,%d3 + jra .L450 +.L515: + lea (24,%a5),%a1 + move.l %a5,%a0 +.L440: addq.l #1,%a0 tst.b -1(%a0) - jne .L345 - cmp.l %a0,%d0 - jne .L346 - move.l %d1,%a0 - move.l %d1,%d0 - lea (72,%a0),%a0 - add.l #80,%d0 -.L347: + jne .L441 + cmp.l %a1,%a0 + jne .L440 + lea (32,%a5),%a0 + lea (40,%a5),%a1 +.L442: addq.l #1,%a0 tst.b -1(%a0) - jne .L345 - cmp.l %a0,%d0 - jne .L347 - move.l %d1,%a0 - add.l #2137,%d1 - lea (89,%a0),%a0 -.L348: - mvz.b (%a0),%d0 + jne .L441 + cmp.l %a1,%a0 + jne .L442 + lea (48,%a5),%a0 + lea (2096,%a5),%a1 +.L443: + mvz.b (%a0),%d2 addq.l #1,%a0 - cmp.l #255,%d0 - jne .L345 - cmp.l %a0,%d1 - jne .L348 - mov3q.l #1,%d0 + cmp.l #255,%d2 + jne .L441 + cmp.l %a1,%a0 + jne .L443 + move.l %d0,%a0 + move.l #36437,%a1 + add.l %d1,%a0 + tst.b (%a0,%a1.l) + jeq .L444 + jra .L519 +.L516: + move.b %d0,-51(%fp,%d2.l) + addq.l #1,%d2 + jra .L450 +.L455: + mvz.b -31(%a0),%d4 + lea (-31,%a0),%a5 + move.l %a5,-104(%fp) + cmp.l #255,%d4 + jeq .L457 + st %d4 + move.l -104(%fp),%a5 + move.b %d4,(%a5) + move.b %d4,-1(%a3) + tst.b (%a1) + jeq .L457 + jra .L456 +.L517: + mov3q.l #1,%d5 + lsl.l %d6,%d5 +.L460: + move.l -108(%fp),%a5 + move.l %d5,%d6 + not.l %d6 + move.b (%a5),%d4 + move.l -108(%fp),%a5 + and.l %d6,%d4 + move.b %d4,(%a5) + move.b (%a1),%d4 + tst.l %d1 + jeq .L520 +.L462: + tst.b %d4 + jne .L463 + clr.b %d1 + jra .L465 +.L456: + move.b 2(%a1),%d4 + mvz.b -30(%a0),%d5 + lea (-30,%a0),%a5 + move.l %a5,-104(%fp) + mvz.b %d4,%d7 + cmp.l %d7,%d5 + jne .L458 + move.l -108(%fp),%a5 + mov3q.l #1,%d5 + lsl.l %d6,%d5 + move.b (%a5),%d4 + or.l %d5,%d4 + jra .L461 +.L464: + lea (-29,%a0),%a5 +.L474: + mvz.b (%a5),%d1 + addq.l #1,%a5 + cmp.l #255,%d1 + jne .L473 + cmp.l %a0,%a5 + jne .L474 + clr.b %d1 + lea (locked.4),%a5 + move.b %d1,(%a5,%d2.l) +.L512: + move.w #23,%a5 + move.l %d5,%d6 + not.l %d6 + sub.l %d3,%a5 + add.l %d0,%a5 + move.b (%a5),%d1 + and.l %d6,%d1 + jra .L476 +.L518: + move.l -72(%fp),-(%sp) + mov3q.l #6,-(%sp) + move.l 8(%fp),-(%sp) + jsr midi_set_control + mov3q.l #3,%d4 + mov3q.l #1,%d2 + lea (12,%sp),%sp + move.b -61(%fp),%d0 + move.l 1187521622,%a0 + move.l %d2,%d1 + add.l #610376,%a0 + move.b (%a0),%d3 + and.l %d4,%d0 + lsl.l %d0,%d1 + or.l %d1,%d3 + move.b %d3,(%a0) + move.l #1187500772,%d3 + move.b 269161566,%d0 + or.l %d0,%d1 + move.b %d1,269161566 + move.l 1187521622,%a0 + add.l #635698,%a0 + mov3q.l #1,(%a0) + mov3q.l #1,269452696 + jsr 1073905152 + move.l 8(%fp),%d6 + move.l %d6,%d4 + lsl.l %d6,%d2 + lea (locked.4),%a0 + sub.l %a0,%d3 + not.l %d2 + jra .L481 +.L473: + moveq #1,%d1 + lea (locked.4),%a5 + move.b %d1,(%a5,%d2.l) + tst.b (%a1) + jne .L512 + move.w #23,%a5 + sub.l %d3,%a5 + add.l %d0,%a5 + move.b (%a5),%d1 + or.l %d5,%d1 + jra .L476 +.L453: + move.l -104(%fp),%a5 + mvz.b (%a5),%d4 + cmp.l #255,%d4 + jeq .L455 + st %d5 + move.l -104(%fp),%a5 + move.b %d5,(%a5) + move.b %d5,-2(%a3) + tst.b (%a1) + jne .L483 + jra .L455 +.L487: + clr.b %d5 + move.l -104(%fp),%a5 + mvz.b (%a5),%d7 + mvz.b %d5,%d4 + cmp.l %d4,%d7 + jne .L482 + jra .L483 +.L490: + clr.l %d1 + jra .L466 + .size midi_generate, .-midi_generate + .section .rodata.str1.1 +.LC5: + .string "VECTOR GENERATED" +.LC6: + .string "NO CHANGE" + .text + .align 2 + .type vector_midi_yes, @function +vector_midi_yes: + move.b 269161676,%d0 + mov3q.l #1,-(%sp) + mov3q.l #1,-(%sp) + mvz.b %d0,%d0 + move.l %d0,-(%sp) + jsr midi_generate + lea (12,%sp),%sp + tst.l %d0 + jeq .L523 + move.l #.LC5,%d0 + pea 32.w + move.l %d0,-(%sp) + jsr 1074111160 + addq.l #8,%sp rts -.L345: - clr.l %d0 +.L523: + move.l #.LC6,%d0 + pea 32.w + move.l %d0,-(%sp) + jsr 1074111160 + addq.l #8,%sp rts - .size vector_track_empty, .-vector_track_empty + .size vector_midi_yes, .-vector_midi_yes .align 2 - .globl vector_write_phrase - .type vector_write_phrase, @function -vector_write_phrase: - lea (-40,%sp),%sp - movem.l #15612,(%sp) - move.l 44(%sp),%d3 - tst.l %d3 - jeq .L355 - move.l 48(%sp),%d0 - cmp.l #2329,%d0 - jls .L355 - tst.l 52(%sp) - jeq .L355 - move.l 52(%sp),%a0 - moveq #63,%d1 - move.b 256(%a0),%d4 - move.l %d4,%d0 - subq.l #1,%d0 - mvz.b %d0,%d0 - cmp.l %d0,%d1 - jcs .L355 - tst.l 56(%sp) - jne .L358 - move.l 48(%sp),-(%sp) - move.l %d3,-(%sp) - jsr vector_track_empty + .type vector_midi_knob, @function +vector_midi_knob: + lea (-16,%sp),%sp + move.l %d2,-(%sp) + move.l 28(%sp),%a1 + mov3q.l #5,%d2 + move.b 269161676,%d1 + move.l 24(%sp),%d0 + move.l 32(%sp),12(%sp) + cmp.l %a1,%d2 + jcs .L526 + tst.l %d0 + jeq .L528 + mov3q.l #1,%d0 + and.l 36(%sp),%d0 + addq.l #1,%d0 +.L528: + mov3q.l #6,%d2 + muls.l %d2,%d0 + moveq #15,%d2 + move.l %d0,%a0 + add.l #midi_layout,%a0 + mvz.b (%a0,%a1.l),%d0 + cmp.l %d0,%d2 + jcc .L537 +.L526: + move.l (%sp)+,%d2 + lea (16,%sp),%sp + rts +.L537: + mvz.b %d1,%d1 + move.l %d1,16(%sp) + move.l %d0,-(%sp) + move.l %d1,-(%sp) + move.l %d0,12(%sp) + jsr midi_control + move.l %d0,%a1 + add.l 20(%sp),%d0 addq.l #8,%sp + move.l 4(%sp),%a0 tst.l %d0 - jeq .L354 -.L358: - mvz.b %d4,%d4 - move.l 52(%sp),%a2 - clr.l %d1 - move.l %a2,%a0 -.L362: - move.b (%a0),%d0 - mov3q.l #1,%d5 - mvz.b %d0,%d2 - cmp.l %d2,%d5 - jcs .L355 - cmp.l %d4,%d1 - jcs .L359 - tst.b %d0 - jne .L355 -.L360: + jlt .L531 + move.l #midi_max,%d1 + mvz.b (%a0,%d1.l),%d1 + cmp.l %d1,%d0 + jge .L529 + move.l %d0,%d1 +.L529: + cmp.l %a1,%d1 + jeq .L526 + move.l %d1,-(%sp) + move.l %a0,-(%sp) + move.l 24(%sp),-(%sp) + move.l %a0,16(%sp) + move.l %a1,20(%sp) + jsr midi_set_control + clr.l -(%sp) + mov3q.l #1,-(%sp) + move.l 36(%sp),-(%sp) + jsr midi_generate + lea (24,%sp),%sp + move.l 4(%sp),%a0 + tst.l %d0 + jne .L526 + move.l 8(%sp),32(%sp) + move.l %a0,28(%sp) + move.l 16(%sp),24(%sp) + move.l (%sp)+,%d2 + lea (16,%sp),%sp + jra midi_set_control +.L531: + clr.l %d1 + jra .L529 + .size vector_midi_knob, .-vector_midi_knob + .align 2 + .type vector_midi_assign.part.0, @function +vector_midi_assign.part.0: + lea (-16,%sp),%sp + movem.l #1052,(%sp) + move.l 1187521622,%a0 + mov3q.l #3,%d2 + move.l 20(%sp),%d3 + move.l %d3,%d1 + lsl.l #5,%d1 + mvz.w #6322,%d4 + add.l #585088,%a0 + move.b 269161679,%d0 + move.l %d1,%a1 + lea (994,%a1),%a1 + and.l %d2,%d0 + muls.l %d4,%d0 + add.l %d0,%a0 + mvz.b (%a0,%a1.l),%d2 + move.l %d3,%a0 + pea 1(%a0) + mov3q.l #6,-(%sp) + move.l %d3,-(%sp) + jsr midi_set_control + lea (12,%sp),%sp + moveq #119,%d0 + cmp.l %d2,%d0 + jcs .L541 + move.l %d2,%d1 + moveq #12,%d4 + remu.l %d4,%d0:%d1 + lea midi_page1,%a2 + sub.l %d0,%d2 + move.l %d2,-(%sp) + clr.l -(%sp) + move.l %d3,-(%sp) + jsr (%a2) + lea (12,%sp),%sp + mov3q.l #3,%d2 +.L540: + pea 64.w + move.l %d2,-(%sp) + move.l %d3,-(%sp) + jsr (%a2) + addq.l #1,%d2 + lea (12,%sp),%sp + mov3q.l #6,%d0 + cmp.l %d2,%d0 + jne .L540 + clr.l -(%sp) + clr.l -(%sp) + move.l %d3,-(%sp) + jsr midi_generate + movem.l 12(%sp),#1052 + lea (28,%sp),%sp + rts +.L541: + moveq #108,%d2 + move.l %d2,-(%sp) + clr.l -(%sp) + move.l %d3,-(%sp) + lea midi_page1,%a2 + mov3q.l #3,%d2 + jsr (%a2) + lea (12,%sp),%sp + jra .L540 + .size vector_midi_assign.part.0, .-vector_midi_assign.part.0 + .align 2 + .type vector_midi_assign, @function +vector_midi_assign: + tst.l 8(%sp) + jne .L549 + rts +.L549: + jra (vector_midi_assign.part.0) + .size vector_midi_assign, .-vector_midi_assign + .align 2 + .globl vector_next_seed + .type vector_next_seed, @function +vector_next_seed: + move.l 4(%sp),%d0 + moveq #127,%d1 + addq.l #1,%d0 + and.l %d1,%d0 + rts + .size vector_next_seed, .-vector_next_seed + .align 2 + .globl vector_pack + .type vector_pack, @function +vector_pack: + move.l %d3,-(%sp) + move.l %d2,-(%sp) + move.l 16(%sp),%a0 + mov3q.l #4,%d2 + move.l 12(%sp),%a1 + move.b 3(%a0),%d0 + mvz.b %d0,%d1 + cmp.l %d1,%d2 + jcc .L553 + moveq #4,%d0 +.L553: + move.b (%a0),%d1 + lsl.l #4,%d0 + moveq #15,%d3 + mvz.b %d1,%d2 + cmp.l %d2,%d3 + jcc .L554 + moveq #15,%d1 +.L554: + or.l %d1,%d0 + move.b %d0,(%a1) + move.b 10(%a0),%d0 + jeq .L555 + moveq #1,%d0 +.L555: + move.b 1(%a0),%d1 + lsl.l #5,%d0 + moveq #16,%d3 + mvz.b %d1,%d2 + cmp.l %d2,%d3 + jcc .L556 + moveq #16,%d1 +.L556: + or.l %d1,%d0 + moveq #12,%d2 + move.b %d0,1(%a1) + move.b 6(%a0),%d0 + mvz.b %d0,%d1 + cmp.l %d1,%d2 + jcc .L557 + moveq #12,%d0 +.L557: + move.b 2(%a0),%d1 + lsl.l #4,%d0 + moveq #11,%d3 + mvz.b %d1,%d2 + cmp.l %d2,%d3 + jcc .L558 + moveq #11,%d1 +.L558: + or.l %d1,%d0 + moveq #126,%d2 + move.b %d0,2(%a1) + move.b 4(%a0),%d0 + mvz.b %d0,%d1 + cmp.l %d1,%d2 + jcc .L559 + moveq #126,%d0 +.L559: + move.b %d0,3(%a1) + move.b 5(%a0),%d0 + jpl .L560 + moveq #127,%d0 +.L560: + move.b %d0,4(%a1) + moveq #24,%d3 + move.b 7(%a0),%d0 + mvz.b %d0,%d1 + cmp.l %d1,%d3 + jcc .L561 + moveq #24,%d0 +.L561: + move.b %d0,5(%a1) + moveq #63,%d2 + move.b 8(%a0),%d0 + mvz.b %d0,%d1 + cmp.l %d1,%d2 + jcc .L562 + moveq #63,%d0 +.L562: + move.b %d0,6(%a1) + moveq #64,%d3 + move.b 9(%a0),%d0 + mvz.b %d0,%d1 + cmp.l %d1,%d3 + jcc .L563 + moveq #64,%d0 +.L563: + moveq #127,%d1 + and.l 20(%sp),%d1 + move.b %d0,7(%a1) + move.b %d1,8(%a1) + move.l (%sp)+,%d2 + move.l (%sp)+,%d3 + rts + .size vector_pack, .-vector_pack + .align 2 + .type save_settings, @function +save_settings: + lea (-40,%sp),%sp + movem.l #23580,(%sp) + move.l 52(%sp),-(%sp) + move.l 52(%sp),-(%sp) + lea (39,%sp),%a4 + move.l %a4,-(%sp) + jsr vector_pack + move.w 58(%sp),%d3 + sub.l %a6,%a6 + lea (12,%sp),%sp + mulu.w #30,%d3 +.L572: + move.b (%a4)+,%d2 + mov3q.l #2,%d0 + cmp.l %a6,%d0 + jcc .L576 + move.l #269161679,%a3 + mov3q.l #3,%d4 + move.b (%a3),%d0 + move.l 1187521622,%a1 + add.l #585088,%a1 + move.b (%a3),%d1 + lea (489,%a6),%a2 + addq.l #1,%a6 + add.l %d3,%a2 + and.l %d4,%d0 + and.l %d4,%d1 + mvz.w #6322,%d4 + muls.l %d4,%d0 + muls.l %d4,%d1 + move.l %d0,%a0 + add.l #269110990,%a0 + moveq #9,%d0 + add.l %d1,%a1 + move.b %d2,(%a1,%a2.l) + move.b %d2,(%a0,%a2.l) + cmp.l %a6,%d0 + jne .L572 +.L577: + move.b (%a3),%d0 + move.l 1187521622,%a1 + mov3q.l #3,%d2 + move.b (%a3),%d1 + add.l #585088,%a1 + and.l %d2,%d0 + and.l %d2,%d1 + muls.l %d4,%d0 + muls.l %d4,%d1 + moveq #2,%d4 + move.l %d0,%a0 + add.l #269110990,%a0 + add.l %d1,%a1 + move.b %d4,62(%a1,%d3.l) + move.b %d4,62(%a0,%d3.l) + movem.l (%sp),#23580 + lea (40,%sp),%sp + rts +.L576: + move.l #269161679,%a3 + mov3q.l #3,%d4 + move.b (%a3),%d0 + move.l 1187521622,%a1 + add.l #585088,%a1 + move.b (%a3),%d1 + lea (63,%a6),%a2 + addq.l #1,%a6 + add.l %d3,%a2 + and.l %d4,%d0 + and.l %d4,%d1 + mvz.w #6322,%d4 + muls.l %d4,%d0 + muls.l %d4,%d1 + move.l %d0,%a0 + add.l #269110990,%a0 + moveq #9,%d0 + add.l %d1,%a1 + move.b %d2,(%a1,%a2.l) + move.b %d2,(%a0,%a2.l) + cmp.l %a6,%d0 + jne .L572 + jra .L577 + .size save_settings, .-save_settings + .align 2 + .globl vector_unpack + .type vector_unpack, @function +vector_unpack: + move.l %d2,-(%sp) + moveq #15,%d1 + move.l 16(%sp),%a0 + mov3q.l #4,%d2 + move.l 8(%sp),%a1 + move.b (%a0),%d0 + and.l %d1,%d0 + move.b %d0,(%a1) + mvz.b (%a0),%d0 + lsr.l #4,%d0 + move.b %d0,%d1 + cmp.l %d0,%d2 + jcc .L579 + moveq #4,%d1 +.L579: + move.b %d1,3(%a1) + moveq #31,%d1 + moveq #16,%d2 + move.b 1(%a0),%d0 + and.l %d1,%d0 + move.b %d0,%d1 + cmp.l %d0,%d2 + jcc .L580 + moveq #16,%d1 +.L580: + move.b %d1,1(%a1) + mov3q.l #1,%d1 + moveq #15,%d2 + mvz.b 1(%a0),%d0 + lsr.l #5,%d0 + and.l %d1,%d0 + move.b %d0,10(%a1) + move.b 2(%a0),%d0 + and.l %d2,%d0 + moveq #11,%d2 + move.b %d0,%d1 + cmp.l %d0,%d2 + jcc .L581 + moveq #11,%d1 +.L581: + move.b %d1,2(%a1) + moveq #12,%d2 + mvz.b 2(%a0),%d0 + lsr.l #4,%d0 + move.b %d0,%d1 + cmp.l %d0,%d2 + jcc .L582 + moveq #12,%d1 +.L582: + move.b %d1,6(%a1) + moveq #126,%d2 + move.b 3(%a0),%d0 + mvz.b %d0,%d1 + cmp.l %d1,%d2 + jcc .L583 + moveq #126,%d0 +.L583: + move.b %d0,4(%a1) + move.b 4(%a0),%d0 + jpl .L584 + moveq #127,%d0 +.L584: + move.b %d0,5(%a1) + moveq #24,%d2 + move.b 5(%a0),%d0 + mvz.b %d0,%d1 + cmp.l %d1,%d2 + jcc .L585 + moveq #24,%d0 +.L585: + move.b %d0,7(%a1) + moveq #63,%d2 + move.b 6(%a0),%d0 + mvz.b %d0,%d1 + cmp.l %d1,%d2 + jcc .L586 + moveq #63,%d0 +.L586: + move.b %d0,8(%a1) + moveq #64,%d2 + move.b 7(%a0),%d0 + mvz.b %d0,%d1 + cmp.l %d1,%d2 + jcc .L587 + moveq #64,%d0 +.L587: + move.b %d0,9(%a1) + moveq #127,%d1 + move.b 8(%a0),%d0 + move.l 12(%sp),%a0 + move.l (%sp)+,%d2 + and.l %d0,%d1 + move.l %d1,(%a0) + rts + .size vector_unpack, .-vector_unpack + .align 2 + .globl vector_generate + .type vector_generate, @function +vector_generate: + subq.l #4,%sp + move.l %a2,-(%sp) + move.l %d2,-(%sp) + move.l 16(%sp),%d0 + move.l 20(%sp),%d1 + move.l 24(%sp),%a0 + tst.l %d0 + jeq .L592 + tst.l %d1 + jeq .L592 + lea (-1,%a0),%a2 + moveq #63,%d2 + cmp.l %a2,%d2 + jcs .L592 + moveq #127,%d2 + cmp.l 28(%sp),%d2 + jcs .L592 + move.l %a0,24(%sp) + move.l %d1,20(%sp) + move.l %d0,16(%sp) + move.l (%sp)+,%d2 + move.l (%sp)+,%a2 + addq.l #4,%sp + jra (vector_generate.part.0) +.L592: + move.l (%sp)+,%d2 + clr.l %d0 + move.l (%sp)+,%a2 + addq.l #4,%sp + rts + .size vector_generate, .-vector_generate + .align 2 + .globl vector_track_empty + .type vector_track_empty, @function +vector_track_empty: + move.l 4(%sp),%d1 + tst.l %d1 + jeq .L602 + mvz.w #2329,%d0 + cmp.l 8(%sp),%d0 + jcc .L602 + move.l %d1,%d0 + move.l %d1,%a0 + add.l #64,%d0 +.L603: + addq.l #1,%a0 + tst.b -1(%a0) + jne .L602 + cmp.l %a0,%d0 + jne .L603 + move.l %d1,%a0 + move.l %d1,%d0 + lea (72,%a0),%a0 + add.l #80,%d0 +.L604: + addq.l #1,%a0 + tst.b -1(%a0) + jne .L602 + cmp.l %a0,%d0 + jne .L604 + move.l %d1,%a0 + add.l #2137,%d1 + lea (89,%a0),%a0 +.L605: + mvz.b (%a0),%d0 + addq.l #1,%a0 + cmp.l #255,%d0 + jne .L602 + cmp.l %a0,%d1 + jne .L605 + mov3q.l #1,%d0 + rts +.L602: + clr.l %d0 + rts + .size vector_track_empty, .-vector_track_empty + .align 2 + .globl vector_write_phrase + .type vector_write_phrase, @function +vector_write_phrase: + lea (-40,%sp),%sp + movem.l #15612,(%sp) + move.l 44(%sp),%d3 + tst.l %d3 + jeq .L612 + move.l 48(%sp),%d0 + cmp.l #2329,%d0 + jls .L612 + tst.l 52(%sp) + jeq .L612 + move.l 52(%sp),%a0 + moveq #63,%d1 + move.b 256(%a0),%d4 + move.l %d4,%d0 + subq.l #1,%d0 + mvz.b %d0,%d0 + cmp.l %d0,%d1 + jcs .L612 + tst.l 56(%sp) + jne .L615 + move.l 48(%sp),-(%sp) + move.l %d3,-(%sp) + jsr vector_track_empty + addq.l #8,%sp + tst.l %d0 + jeq .L611 +.L615: + mvz.b %d4,%d4 + move.l 52(%sp),%a2 + clr.l %d1 + move.l %a2,%a0 +.L619: + move.b (%a0),%d0 + mov3q.l #1,%d5 + mvz.b %d0,%d2 + cmp.l %d2,%d5 + jcs .L612 + cmp.l %d4,%d1 + jcs .L616 + tst.b %d0 + jne .L612 +.L617: addq.l #1,%d1 addq.l #4,%a0 moveq #64,%d0 cmp.l %d1,%d0 - jne .L362 -.L395: + jne .L619 +.L652: move.l %d3,%a3 move.l %d3,%a1 move.l %d3,%a4 @@ -2210,7 +3843,7 @@ vector_write_phrase: lea (89,%a3),%a3 lea (121,%a1),%a1 lea (2202,%a4),%a4 -.L374: +.L631: mov3q.l #7,%d1 and.l %d5,%d1 move.l %d5,%d4 @@ -2223,33 +3856,33 @@ vector_write_phrase: asr.l %d1,%d0 and.l %d2,%d0 tst.b (%a2) - jeq .L375 + jeq .L632 move.b 1(%a2),%d2 -.L363: +.L620: move.b %d2,(%a3) tst.b (%a2) - jeq .L376 + jeq .L633 move.b 2(%a2),%d2 -.L364: +.L621: move.b %d2,13(%a3) tst.b (%a2) - jeq .L377 + jeq .L634 move.b 3(%a2),%d2 -.L365: +.L622: move.b %d2,15(%a3) mov3q.l #1,%d2 lsl.l %d1,%d2 move.b (%a0),%d1 tst.b (%a2) - jeq .L366 + jeq .L623 or.l %d2,%d1 -.L367: +.L624: move.b %d1,(%a0) tst.l %d0 - jne .L368 + jne .L625 tst.b (%a2) - jeq .L369 -.L368: + jeq .L626 +.L625: clr.b %d0 clr.b (%a4) move.w #15,%a5 @@ -2272,10 +3905,10 @@ vector_write_phrase: move.b (%a0,%d3.l),%d1 and.l %d1,%d0 move.b %d0,(%a0,%d3.l) -.L369: +.L626: move.l %a3,%a0 clr.l %d1 -.L370: +.L627: move.b (%a0)+,%d0 not.l %d0 tst.b %d0 @@ -2284,17 +3917,17 @@ vector_write_phrase: neg.l %d0 or.l %d0,%d1 cmp.l %a1,%a0 - jne .L370 + jne .L627 move.w #23,%a0 sub.l %d4,%a0 add.l %d3,%a0 move.b (%a0),%d0 tst.b (%a2) - jne .L371 + jne .L628 tst.l %d1 - jeq .L371 + jeq .L628 or.l %d0,%d2 -.L373: +.L630: move.b %d2,(%a0) addq.l #1,%d5 addq.l #4,%a2 @@ -2303,20 +3936,20 @@ vector_write_phrase: lea (32,%a1),%a1 moveq #64,%d0 cmp.l %d5,%d0 - jne .L374 + jne .L631 mov3q.l #1,%d0 -.L354: +.L611: movem.l (%sp),#15612 lea (40,%sp),%sp rts -.L355: +.L612: movem.l (%sp),#15612 clr.l %d0 lea (40,%sp),%sp rts -.L359: +.L616: tst.b %d0 - jeq .L360 + jeq .L617 move.b 1(%a0),%d0 moveq #120,%d5 mvz.b %d0,%d2 @@ -2324,41 +3957,41 @@ vector_write_phrase: mvz.b %d0,%d0 subq.l #4,%d2 cmp.l %d0,%d5 - jcs .L355 + jcs .L612 mov3q.l #5,%d5 rems.l %d5,%d0:%d2 tst.l %d0 - jne .L355 + jne .L612 mvz.b 2(%a0),%d2 moveq #126,%d5 cmp.l %d2,%d5 - jcs .L354 + jcs .L611 tst.b 3(%a0) - jlt .L354 + jlt .L611 addq.l #1,%d1 addq.l #4,%a0 moveq #64,%d0 cmp.l %d1,%d0 - jne .L362 - jra .L395 -.L371: + jne .L619 + jra .L652 +.L628: not.l %d2 and.l %d0,%d2 - jra .L373 -.L366: + jra .L630 +.L623: move.l %d2,%d7 not.l %d7 and.l %d7,%d1 - jra .L367 -.L377: + jra .L624 +.L634: st %d2 - jra .L365 -.L376: + jra .L622 +.L633: st %d2 - jra .L364 -.L375: + jra .L621 +.L632: st %d2 - jra .L363 + jra .L620 .size vector_write_phrase, .-vector_write_phrase .align 2 .globl vector_signed_track @@ -2369,31 +4002,31 @@ vector_signed_track: mov3q.l #7,%d1 move.l 8(%sp),%a0 cmp.l %d0,%d1 - jcs .L399 + jcs .L656 mvz.b 34(%a0,%d0.l),%d1 mov3q.l #1,%d2 cmp.l %d1,%d2 - jcs .L399 + jcs .L656 moveq #30,%d1 moveq #83,%d2 muls.l %d1,%d0 lea 60(%a0,%d0.l),%a0 mvz.b (%a0),%d0 cmp.l %d0,%d2 - jeq .L403 -.L399: + jeq .L660 +.L656: move.l (%sp)+,%d2 clr.l %d0 rts -.L403: +.L660: mvz.b 1(%a0),%d0 moveq #50,%d1 cmp.l %d0,%d1 - jne .L399 + jne .L656 mvz.b 2(%a0),%d0 subq.l #1,%d0 tst.l %d0 - jeq .L400 + jeq .L657 move.b 2(%a0),%d0 mov3q.l #2,%d1 move.l (%sp)+,%d2 @@ -2403,7 +4036,7 @@ vector_signed_track: mvs.b %d0,%d0 neg.l %d0 rts -.L400: +.L657: move.l (%sp)+,%d2 mov3q.l #1,%d0 rts @@ -2411,24 +4044,24 @@ vector_signed_track: .align 2 .type generate_track, @function generate_track: - lea (-56,%sp),%sp + lea (-60,%sp),%sp move.l 1187521622,%d0 add.l #-1073741824,%d0 - movem.l #17412,(%sp) + movem.l #17420,(%sp) cmp.l #133169151,%d0 - jls .L435 -.L417: + jls .L698 +.L678: clr.l %d0 -.L404: - movem.l (%sp),#17412 - lea (56,%sp),%sp +.L661: + movem.l (%sp),#17420 + lea (60,%sp),%sp rts -.L435: +.L698: move.l 1187521622,%a0 mov3q.l #3,%d1 move.b 269161679,%d0 mvz.w #6322,%d2 - move.l 60(%sp),-(%sp) + move.l 64(%sp),-(%sp) add.l #585088,%a0 and.l %d1,%d0 muls.l %d2,%d0 @@ -2436,194 +4069,227 @@ generate_track: jsr vector_signed_track addq.l #8,%sp tst.l %d0 - jeq .L404 + jeq .L661 move.b 269161680,%d0 - moveq #15,%d2 - mvz.b %d0,%d1 - move.l %d1,24(%sp) - cmp.l %d1,%d2 - jcs .L417 - move.w 62(%sp),%d1 - move.l 1187521622,%a1 + moveq #15,%d1 + mvz.b %d0,%d3 + move.l %d3,32(%sp) + cmp.l %d3,%d1 + jcs .L678 ext.w %d0 + move.l 1187521622,%d2 lea staging,%a0 - move.l %a1,28(%sp) - move.b 269161679,%d2 - move.l 28(%sp),%a2 - mulu.w #2330,%d1 - move.b %d2,39(%sp) - move.l %d1,%a6 move.w %d0,%d1 + move.l %d2,36(%sp) + move.b 269161679,%d3 + move.w 66(%sp),%d0 mulu.w #36568,%d1 - lea (%a6,%d1.l),%a1 - lea (%a2,%a1.l),%a6 - move.l %a1,32(%sp) + move.b %d3,47(%sp) + mulu.w #2330,%d0 + add.l %d1,%d0 + add.l %d0,%d2 + move.l %d2,%a6 sub.l %a0,%a6 -.L408: + move.l %d0,28(%sp) +.L665: move.b (%a0,%a6.l),%d0 move.b %d0,(%a0)+ cmp.l #staging+2330,%a0 - jne .L408 - tst.l 64(%sp) - jeq .L436 -.L409: + jne .L665 + tst.l 68(%sp) + jeq .L699 +.L666: mvz.w #36437,%d0 - move.l 28(%sp),%a0 + move.l 36(%sp),%a0 add.l %d1,%a0 tst.b (%a0,%d0.l) - jeq .L410 + jeq .L667 move.b staging+80,%d0 -.L411: +.L668: mvz.b %d0,%d0 moveq #63,%d2 move.l %d0,%d1 subq.l #1,%d1 cmp.l %d1,%d2 - jcs .L417 - move.l 60(%sp),-(%sp) - lea (49,%sp),%a0 - move.l %d0,16(%sp) + jcs .L678 + move.l 64(%sp),-(%sp) + lea (53,%sp),%a0 + move.l %d0,20(%sp) jsr settings - move.w 66(%sp),%d2 addq.l #4,%sp - move.l 1187521622,%a0 - add.l #585088,%a0 - move.b 269161679,%d1 + move.l 1187521622,%d1 + add.l #585088,%d1 + move.b 269161679,%d3 + move.w 66(%sp),%d2 + move.l 16(%sp),%d0 + move.w %d3,%a1 mulu.w #30,%d2 - move.l 12(%sp),%d0 - move.l %d2,%a1 + move.l %d2,%a0 mov3q.l #3,%d2 - and.l %d2,%d1 + lea (497,%a0),%a0 + move.l %a1,%d3 + and.l %d2,%d3 mvz.w #6322,%d2 - lea (497,%a1),%a1 - muls.l %d2,%d1 - moveq #127,%d2 - add.l %d1,%a0 - move.b (%a0,%a1.l),%d1 - and.l %d1,%d2 - move.l %d2,40(%sp) - tst.l 68(%sp) - jeq .L413 - move.l %d2,%d1 + muls.l %d2,%d3 + add.l %d3,%d1 + move.b (%a0,%d1.l),%d1 + moveq #127,%d3 + and.l %d1,%d3 + move.l %d3,40(%sp) + tst.l 72(%sp) + jeq .L670 + move.l %d3,%d1 moveq #127,%d2 addq.l #1,%d1 and.l %d1,%d2 move.l %d2,40(%sp) -.L413: - move.w 62(%sp),%d2 - move.l 1187521622,%a0 - add.l #585088,%a0 - move.b 269161679,%d1 +.L670: + move.l 1187521622,%d1 + add.l #585088,%d1 + move.b 269161679,%d3 + move.w 66(%sp),%d2 + move.w %d3,%a1 mulu.w #24,%d2 - move.l %d2,%a1 + move.l %d2,%a0 mov3q.l #3,%d2 - and.l %d2,%d1 + lea (291,%a0),%a0 + move.l %a1,%d3 + and.l %d2,%d3 mvz.w #6322,%d2 - lea (291,%a1),%a1 - muls.l %d2,%d1 - moveq #127,%d2 - add.l %d1,%a0 - mvz.b (%a0,%a1.l),%d1 - cmp.l %d1,%d2 - jcs .L417 + muls.l %d2,%d3 + add.l %d3,%d1 + moveq #127,%d3 + mvz.b (%a0,%d1.l),%d1 + cmp.l %d1,%d3 + jcs .L678 move.l 40(%sp),-(%sp) move.l %d1,-(%sp) move.l %d0,-(%sp) - pea 57(%sp) + pea 61(%sp) pea phrase jsr (vector_generate.part.0) - move.l 84(%sp),-(%sp) + move.l 88(%sp),-(%sp) pea phrase pea 2330.w pea staging jsr vector_write_phrase lea (36,%sp),%sp tst.l %d0 - jeq .L404 - move.l 28(%sp),%a1 + jeq .L661 + move.l 36(%sp),%a1 cmp.l 1187521622.l,%a1 - jne .L417 + jne .L678 mvz.b 269161680,%d1 - cmp.l 24(%sp),%d1 - jne .L417 - mvz.b 39(%sp),%d1 + cmp.l 32(%sp),%d1 + jne .L678 + mvz.b 47(%sp),%d1 mvz.b 269161679,%d2 cmp.l %d1,%d2 - jne .L417 - move.l 32(%sp),%a1 + jne .L678 + move.l 28(%sp),%a1 sub.l #staging-268525901,%a1 lea staging,%a0 - move.l %a1,24(%sp) -.L416: + move.l %a1,32(%sp) +.L673: lea (%a0,%a6.l),%a2 move.b (%a0)+,%d1 mvz.b (%a2),%d2 - move.l %a2,16(%sp) - move.l %d2,20(%sp) - mvz.b %d1,%d2 - cmp.l 20(%sp),%d2 - jeq .L415 + move.l %a2,20(%sp) + mvz.b %d1,%d3 + cmp.l %d2,%d3 + jeq .L672 move.b %d1,(%a2) - move.l 24(%sp),%a1 + move.l 32(%sp),%a1 lea (-1,%a0),%a2 move.b (%a2),(%a1,%a0.l) -.L415: +.L672: cmp.l #staging+2330,%a0 - jne .L416 + jne .L673 move.l 40(%sp),-(%sp) - pea 49(%sp) - move.l 68(%sp),-(%sp) - move.l %d0,24(%sp) + pea 53(%sp) + move.l 72(%sp),-(%sp) + move.l %d0,28(%sp) jsr save_settings mov3q.l #3,%d2 - move.b 51(%sp),%d1 - move.l 1187521622,%a6 - add.l #610376,%a6 - lea (12,%sp),%sp + mov3q.l #1,%a6 + move.l %a6,%d3 + move.b 59(%sp),%d1 + move.l 1187521622,%a1 + add.l #610376,%a1 and.l %d2,%d1 - move.b (%a6),%d2 - move.w %d2,%a1 - mov3q.l #1,%d2 - lsl.l %d1,%d2 - move.l %d2,%a0 - move.l %d2,%d1 - move.l %a1,%d2 - or.l %d2,%d1 - move.l %a0,%d2 - move.b %d1,(%a6) + move.l %d1,56(%sp) + move.l 56(%sp),%d2 + move.b (%a1),%d1 + lea (12,%sp),%sp + lsl.l %d2,%d3 + or.l %d3,%d1 + move.b %d1,(%a1) move.b 269161566,%d1 - or.l %d2,%d1 + or.l %d3,%d1 + move.l %a6,%d3 move.b %d1,269161566 move.l 1187521622,%a0 add.l #635698,%a0 mov3q.l #1,(%a0) mov3q.l #1,269452696 jsr 1073905152 - jsr 1073953240 - move.l 60(%sp),-(%sp) + move.l #1187501196,%a6 + move.l 64(%sp),%d1 + move.l 16(%sp),%d0 + lea staging+121,%a1 + lsl.l %d1,%d3 + move.l %d3,24(%sp) + not.l %d3 + move.b %d3,23(%sp) +.L674: + lea (-32,%a1),%a0 +.L676: + addq.l #1,%a0 + mvz.b -1(%a0),%d1 + cmp.l #255,%d1 + jne .L679 + cmp.l %a1,%a0 + jne .L676 + sub.l %a0,%a0 +.L675: + move.b (%a6),%d1 + move.b 23(%sp),%d3 + move.l %a0,%d2 + lea (32,%a1),%a1 + and.l %d3,%d1 + or.l %d2,%d1 + move.b %d1,(%a6)+ + cmp.l #1187501260,%a6 + jne .L674 + move.l 64(%sp),-(%sp) + move.l %d0,20(%sp) jsr 1074387488 addq.l #4,%sp - movem.l (%sp),#17412 mov3q.l #1,1187497772 - move.l 12(%sp),%d0 - lea (56,%sp),%sp + movem.l (%sp),#17420 + move.l 16(%sp),%d0 + lea (60,%sp),%sp rts -.L436: +.L699: pea 2330.w pea staging - move.l %d1,20(%sp) + move.l %d1,24(%sp) jsr vector_track_empty addq.l #8,%sp - move.l 12(%sp),%d1 + move.l 16(%sp),%d1 tst.l %d0 - jne .L409 - movem.l (%sp),#17412 - lea (56,%sp),%sp + jne .L666 + movem.l (%sp),#17420 + lea (60,%sp),%sp rts -.L410: +.L667: mvz.w #36435,%d0 move.b (%a0,%d0.l),%d0 - jra .L411 + jra .L668 +.L679: + move.b 27(%sp),%d2 + move.w %d2,%a0 + jra .L675 .size generate_track, .-generate_track .align 2 .type change_control, @function @@ -2659,27 +4325,27 @@ change_control: mov3q.l #5,%d0 mvz.b %d1,%d2 cmp.l 8(%fp),%d0 - jcs .L438 + jcs .L701 lea (-22,%fp),%a1 add.l 8(%fp),%a1 move.l 12(%fp),%a0 mvz.b (%a1),%d1 add.l %d1,%a0 tst.l %a0 - jlt .L458 -.L441: + jlt .L721 +.L704: move.l 8(%fp),%a2 move.l #vector_control_max,%d0 mvz.b (%a2,%d0.l),%d0 cmp.l %d0,%a0 - jge .L444 + jge .L707 move.l %a0,%d0 -.L444: +.L707: cmp.l %d1,%d0 - jeq .L437 + jeq .L700 move.b %d0,(%a1) move.l %d2,%d0 -.L447: +.L710: move.l %d0,-(%sp) pea -22(%fp) move.l -32(%fp),-(%sp) @@ -2693,36 +4359,36 @@ change_control: lea (24,%sp),%sp move.l -28(%fp),%a0 tst.l %d0 - jeq .L459 -.L448: + jeq .L722 +.L711: mov3q.l #-1,-(%sp) jsr 1074059592 mov3q.l #1,1187497772 addq.l #4,%sp -.L437: +.L700: move.l -40(%fp),%d2 move.l -36(%fp),%a2 unlk %fp rts -.L438: +.L701: mov3q.l #6,%d0 cmp.l 8(%fp),%d0 - jeq .L440 + jeq .L703 move.l 8(%fp),%d1 move.l 12(%fp),%a0 lea -23(%fp,%d1.l),%a1 mvz.b (%a1),%d1 add.l %d1,%a0 tst.l %a0 - jge .L441 -.L458: + jge .L704 +.L721: tst.l %d1 - jeq .L437 + jeq .L700 clr.b %d0 move.b %d0,(%a1) move.l %d2,%d0 - jra .L447 -.L459: + jra .L710 +.L722: move.l %d2,-(%sp) pea -11(%fp) move.l -32(%fp),-(%sp) @@ -2732,19 +4398,19 @@ change_control: jsr 1074059592 mov3q.l #1,1187497772 addq.l #4,%sp - jra .L437 -.L440: + jra .L700 +.L703: move.l 12(%fp),%d0 add.l %d2,%d0 tst.l %d0 - jlt .L445 + jlt .L708 moveq #127,%d1 cmp.l %d0,%d1 - jge .L446 + jge .L709 moveq #127,%d0 -.L446: +.L709: cmp.l %d2,%d0 - jeq .L437 + jeq .L700 move.l %d0,-(%sp) pea -22(%fp) move.l -32(%fp),-(%sp) @@ -2758,11 +4424,11 @@ change_control: lea (24,%sp),%sp move.l -28(%fp),%a0 tst.l %d0 - jne .L448 - jra .L459 -.L445: + jne .L711 + jra .L722 +.L708: tst.b %d1 - jeq .L437 + jeq .L700 clr.l %d0 move.l %d0,-(%sp) pea -22(%fp) @@ -2777,8 +4443,8 @@ change_control: lea (24,%sp),%sp move.l -28(%fp),%a0 tst.l %d0 - jne .L448 - jra .L459 + jne .L711 + jra .L722 .size change_control, .-change_control .align 2 .type generator_view, @function @@ -2787,15 +4453,15 @@ generator_view: add.l #-1073741824,%d0 move.l %d2,-(%sp) cmp.l #133169151,%d0 - jhi .L463 + jhi .L726 tst.b -2147483627.l - jeq .L471 -.L463: + jeq .L734 +.L726: clr.l %d0 -.L460: +.L723: move.l (%sp)+,%d2 rts -.L471: +.L734: move.b 269161676,%d1 move.l 1187521622,%a0 mov3q.l #3,%d2 @@ -2810,14 +4476,14 @@ generator_view: jsr vector_signed_track addq.l #8,%sp tst.l %d0 - jeq .L463 + jeq .L726 move.l edit_view,%d0 tst.l %d0 - jne .L463 + jne .L726 tst.b 1187502296.l - jne .L460 + jne .L723 tst.l 1175263034 - jne .L460 + jne .L723 tst.l 1175262868 seq %d0 move.l (%sp)+,%d2 @@ -2841,64 +4507,64 @@ vector_validate_part: move.l %a2,%a3 add.l #60,%d4 lea (34,%a4),%a4 -.L478: +.L741: mvz.b (%a4,%d1.l),%d0 mov3q.l #1,%d6 cmp.l %d0,%d6 - jcs .L476 + jcs .L739 lea (%a6,%d4.l),%a0 moveq #83,%d7 mvz.b (%a0),%d0 cmp.l %d0,%d7 - jeq .L503 -.L476: + jeq .L766 +.L739: addq.l #1,%d1 lea (30,%a6),%a6 lea (12,%a3),%a3 cmp.l #240,%a6 - jne .L478 + jne .L741 move.l %d2,-(%sp) move.l 148(%sp),%a0 clr.l %d5 jsr (%a0) addq.l #4,%sp sub.l %a0,%a0 -.L483: +.L746: btst %d5,%d3 - jne .L504 + jne .L767 addq.l #1,%d5 lea (30,%a0),%a0 lea (12,%a2),%a2 cmp.l #240,%a0 - jne .L483 -.L507: + jne .L746 +.L770: movem.l (%sp),#23804 lea (136,%sp),%sp rts -.L503: +.L766: mvz.b 1(%a0),%d0 moveq #50,%d6 cmp.l %d0,%d6 - jne .L476 + jne .L739 mvz.b 2(%a0),%d0 subq.l #1,%d0 tst.l %d0 - jeq .L474 + jeq .L737 mvz.b 2(%a0),%d0 subq.l #2,%d0 tst.l %d0 - jne .L476 -.L474: + jne .L739 +.L737: mov3q.l #1,%d0 lsl.l %d1,%d0 sub.l %a0,%a0 or.l %d0,%d3 -.L477: +.L740: lea 60(%a6,%a0.l),%a1 mov3q.l #5,%d7 cmp.l %a0,%d7 - jcc .L475 -.L505: + jcc .L738 +.L768: move.l %a0,%d6 mov3q.l #6,%d7 remu.l %d7,%d0:%d6 @@ -2910,25 +4576,25 @@ vector_validate_part: clr.b (%a1) addq.l #1,%a0 cmp.l %a0,%d0 - jeq .L476 + jeq .L739 lea 60(%a6,%a0.l),%a1 mov3q.l #5,%d7 cmp.l %a0,%d7 - jcs .L505 -.L475: + jcs .L768 +.L738: add.l %d2,%a1 move.b (%a1),(%a3,%a0.l) clr.b (%a1) addq.l #1,%a0 - jra .L477 -.L504: + jra .L740 +.L767: clr.l %d1 lea (%a0,%d2.l),%a3 -.L482: +.L745: mov3q.l #5,%d4 cmp.l %d1,%d4 - jcs .L480 -.L506: + jcs .L743 +.L769: lea (%a2,%d1.l),%a4 mov3q.l #5,%d4 move.l %d2,%a1 @@ -2936,8 +4602,8 @@ vector_validate_part: move.b (%a4),60(%a0,%a1.l) addq.l #1,%d1 cmp.l %d1,%d4 - jcc .L506 -.L480: + jcc .L769 +.L743: move.l %d1,%d6 mov3q.l #6,%d7 remu.l %d7,%d4:%d6 @@ -2947,13 +4613,13 @@ vector_validate_part: moveq #12,%d4 move.b (%a4),492(%a1) cmp.l %d1,%d4 - jne .L482 + jne .L745 addq.l #1,%d5 lea (30,%a0),%a0 lea (12,%a2),%a2 cmp.l #240,%a0 - jne .L483 - jra .L507 + jne .L746 + jra .L770 .size vector_validate_part, .-vector_validate_part .align 2 .globl st_validate_part @@ -2973,14 +4639,14 @@ st_selected: add.l #-1073741824,%d0 move.l %d2,-(%sp) cmp.l #133169151,%d0 - jhi .L513 + jhi .L776 tst.b -2147483627.l - jeq .L516 -.L513: + jeq .L779 +.L776: move.l (%sp)+,%d2 clr.l %d0 rts -.L516: +.L779: move.b 269161676,%d1 move.l 1187521622,%a0 mov3q.l #3,%d2 @@ -3002,27 +4668,21 @@ st_selected: pool_context: move.l pool_bank,%d0 cmp.l 1187521622.l,%d0 - jeq .L523 -.L519: + jeq .L786 +.L782: clr.l %d0 rts -.L523: +.L786: move.b 269161679,%d0 mov3q.l #3,%d1 and.l %d1,%d0 cmp.l pool_part.l,%d0 - jne .L519 + jne .L782 mvz.b 269161676,%d0 cmp.l pool_track.l,%d0 - jne .L519 - jra st_selected - .size pool_context, .-pool_context - .section .rodata.str1.1 -.LC3: - .string "VECTOR GENERATED" -.LC4: - .string "NO CHANGE" - .text + jne .L782 + jra st_selected + .size pool_context, .-pool_context .align 2 .globl st_key .type st_key, @function @@ -3039,18 +4699,18 @@ st_key: mvs.b %d1,%d1 neg.l %d1 cmp.l %a0,%d2 - jeq .L525 + jeq .L788 mov3q.l #1,%d0 lsl.l %d1,%d0 move.l mine,%d2 move.l %d2,20(%sp) and.l %d0,%d2 tst.l %d2 - jne .L540 + jne .L803 tst.l %a0 - jne .L534 + jne .L797 mov3q.l #1,%d0 -.L529: +.L792: move.l %d1,%a2 moveq #-3,%d2 lea (%a2,%d1.l*2),%a2 @@ -3060,8 +4720,8 @@ st_key: move.l %d0,%d1 subq.l #1,%d1 cmp.l %d1,%d2 - jcs .L524 -.L541: + jcs .L787 +.L804: move.l %a1,32(%sp) move.l %a0,36(%sp) move.l (%sp)+,%d2 @@ -3069,7 +4729,7 @@ st_key: move.l (%sp)+,%a2 lea (20,%sp),%sp jmp (%a1) -.L534: +.L797: move.l %d1,%a2 mov3q.l #2,%d0 lea (%a2,%d1.l*2),%a2 @@ -3080,1154 +4740,2368 @@ st_key: move.l %d0,%d1 subq.l #1,%d1 cmp.l %d1,%d2 - jcc .L541 -.L524: - move.l (%sp)+,%d2 - move.l (%sp)+,%a2 - lea (20,%sp),%sp - rts -.L540: - tst.l %a0 - jne .L524 - not.l %d0 - and.l 20(%sp),%d0 - move.l (%sp)+,%d2 - move.l (%sp)+,%a2 - move.l %d0,mine - lea (20,%sp),%sp - rts -.L525: - move.l %d1,16(%sp) - move.l %a0,8(%sp) - move.l %a1,12(%sp) - jsr st_selected - move.l 16(%sp),%d1 - move.l 8(%sp),%a0 - move.l 12(%sp),%a1 + jcc .L804 +.L787: + move.l (%sp)+,%d2 + move.l (%sp)+,%a2 + lea (20,%sp),%sp + rts +.L803: + tst.l %a0 + jne .L787 + not.l %d0 + and.l 20(%sp),%d0 + move.l (%sp)+,%d2 + move.l (%sp)+,%a2 + move.l %d0,mine + lea (20,%sp),%sp + rts +.L788: + move.l %d1,16(%sp) + move.l %a0,8(%sp) + move.l %a1,12(%sp) + jsr st_selected + move.l 16(%sp),%d1 + move.l 8(%sp),%a0 + move.l 12(%sp),%a1 + tst.l %d0 + jeq .L793 + move.b 1175456541,%d0 + btst #5,%d0 + jne .L793 + moveq #62,%d0 + cmp.l %a1,%d0 + jeq .L805 + moveq #49,%d2 + cmp.l %a1,%d2 + jne .L793 + move.l %d1,16(%sp) + move.l %a0,8(%sp) + move.l %a1,12(%sp) + jsr generator_view + move.l 16(%sp),%d1 + move.l 8(%sp),%a0 + move.l 12(%sp),%a1 + tst.l %d0 + jeq .L793 + mov3q.l #1,%d0 + or.l %d0,mine + move.b 269161676,%d0 + mov3q.l #1,-(%sp) + mov3q.l #1,-(%sp) + mvz.b %d0,%d0 + move.l %d0,-(%sp) + jsr generate_track + lea (12,%sp),%sp + tst.l %d0 + jeq .L796 + pea 32.w + move.l #.LC5,%d0 + move.l %d0,-(%sp) + jsr 1074111160 + mov3q.l #-1,-(%sp) + jsr 1074059592 + mov3q.l #1,1187497772 + lea (12,%sp),%sp +.L806: + move.l (%sp)+,%d2 + move.l (%sp)+,%a2 + lea (20,%sp),%sp + rts +.L793: + clr.l %d0 + jra .L792 +.L805: + tst.b 1187502296.l + jne .L793 + tst.l edit_view + seq %d0 + mov3q.l #2,%d1 + or.l %d1,mine + mov3q.l #-1,-(%sp) + mvs.b %d0,%d0 + neg.l %d0 + move.l %d0,edit_view + jsr 1074059592 + addq.l #4,%sp + move.l (%sp)+,%d2 + mov3q.l #1,1187497772 + move.l (%sp)+,%a2 + lea (20,%sp),%sp + rts +.L796: + pea 32.w + move.l #.LC6,%d0 + move.l %d0,-(%sp) + jsr 1074111160 + mov3q.l #-1,-(%sp) + jsr 1074059592 + mov3q.l #1,1187497772 + lea (12,%sp),%sp + jra .L806 + .size st_key, .-st_key + .align 2 + .type pool_flex, @function +pool_flex: + move.l pool_bank,%d0 + cmp.l 1187521622.l,%d0 + jeq .L814 +.L807: + rts +.L814: + move.b 269161679,%d0 + mov3q.l #3,%d1 + and.l %d1,%d0 + cmp.l pool_part.l,%d0 + jne .L807 + mvz.b 269161676,%d0 + cmp.l pool_track.l,%d0 + jne .L807 + jsr st_selected + tst.l %d0 + jeq .L807 + mov3q.l #1,pool_browse + mov3q.l #1,pool_direct + jsr st_stock_pool_open + mov3q.l #-1,-(%sp) + jsr 1074059592 + mov3q.l #1,1187497772 + addq.l #4,%sp + rts + .size pool_flex, .-pool_flex + .align 2 + .type pool_static, @function +pool_static: + move.l pool_bank,%d0 + cmp.l 1187521622.l,%d0 + jeq .L822 +.L815: + rts +.L822: + move.b 269161679,%d0 + mov3q.l #3,%d1 + and.l %d1,%d0 + cmp.l pool_part.l,%d0 + jne .L815 + mvz.b 269161676,%d0 + cmp.l pool_track.l,%d0 + jne .L815 + jsr st_selected + tst.l %d0 + jeq .L815 + clr.l pool_browse + mov3q.l #1,pool_direct + jsr st_stock_pool_open + mov3q.l #-1,-(%sp) + jsr 1074059592 + mov3q.l #1,1187497772 + addq.l #4,%sp + rts + .size pool_static, .-pool_static + .align 2 + .globl st_type + .type st_type, @function +st_type: + move.l 1187521622,%d0 + add.l #-1073741824,%d0 + move.l %d2,-(%sp) + cmp.l #133169151,%d0 + jhi .L825 + move.l 1187521622,%d0 + mov3q.l #3,%d2 + move.b 269161679,%d1 + add.l #585088,%d0 + move.l 12(%sp),%a0 + lea (-34,%a0),%a0 + and.l %d2,%d1 + mvz.w #6322,%d2 + muls.l %d2,%d1 + mov3q.l #7,%d2 + add.l %d1,%d0 + move.l %a0,%d1 + sub.l %d0,%d1 + cmp.l %d1,%d2 + jcc .L832 +.L825: + move.l 8(%sp),%d0 + move.l (%sp)+,%d2 + rts +.L832: + mov3q.l #1,%d2 + cmp.l 8(%sp),%d2 + jcs .L825 + move.l %d1,-(%sp) + move.l %d0,-(%sp) + jsr vector_signed_track + addq.l #8,%sp + tst.l %d0 + jeq .L825 + mov3q.l #5,8(%sp) + move.l 8(%sp),%d0 + move.l (%sp)+,%d2 + rts + .size st_type, .-st_type + .align 2 + .globl st_chooser_type + .type st_chooser_type, @function +st_chooser_type: + move.l %d3,-(%sp) + move.l %d2,-(%sp) + tst.l pool_direct + jeq .L837 + jsr pool_context + tst.l %d0 + jne .L847 +.L837: + move.l 1187521622,%d0 + add.l #-1073741824,%d0 + cmp.l #133169151,%d0 + jhi .L840 + move.l 1187521622,%d1 + mov3q.l #3,%d3 + move.b 269161679,%d0 + add.l #585088,%d1 + move.w %d0,%a0 + move.l 16(%sp),%d0 + add.l #-34,%d0 + move.l %a0,%d2 + and.l %d3,%d2 + mvz.w #6322,%d3 + muls.l %d3,%d2 + add.l %d2,%d1 + sub.l %d1,%d0 + mov3q.l #7,%d2 + cmp.l %d0,%d2 + jcc .L848 +.L840: + move.l 12(%sp),%d0 + move.l (%sp)+,%d2 + move.l (%sp)+,%d3 + rts +.L848: + mov3q.l #1,%d3 + cmp.l 12(%sp),%d3 + jcs .L840 + move.l %d0,-(%sp) + move.l %d1,-(%sp) + jsr vector_signed_track + addq.l #8,%sp + tst.l %d0 + jeq .L840 + move.l (%sp)+,%d2 + mov3q.l #5,%d0 + move.l (%sp)+,%d3 + rts +.L847: + move.l 1187521622,%d0 + mov3q.l #3,%d2 + move.b 269161679,%d1 + mvz.w #6322,%d3 + move.l pool_track,%a0 + add.l #585088,%d0 + lea (34,%a0),%a0 + and.l %d2,%d1 + muls.l %d3,%d1 + add.l %d1,%d0 + add.l %a0,%d0 + cmp.l 16(%sp),%d0 + jne .L837 + move.l (%sp)+,%d2 + move.l pool_browse,%d0 + move.l (%sp)+,%d3 + rts + .size st_chooser_type, .-st_chooser_type + .align 2 + .globl st_assign + .type st_assign, @function +st_assign: + lea (-60,%sp),%sp + move.l 1187521622,%d0 + add.l #-1073741824,%d0 + movem.l #19468,(%sp) + cmp.l #133169151,%d0 + jhi .L850 + mov3q.l #7,%d0 + cmp.l 68(%sp),%d0 + jcs .L850 + move.l 1187521622,%d1 + move.l 64(%sp),%a0 + sub.l %d1,%a0 + move.l %a0,%a6 + add.l #-585088,%a6 + move.l %d1,36(%sp) + mvz.w #6322,%d1 + move.l %a6,%d0 + remu.l %d1,%d2:%d0 + move.l %d2,%a0 + tst.l %d2 + jne .L850 + cmp.l #25287,%a6 + jhi .L850 + move.l 68(%sp),%d1 + mov3q.l #1,%d2 + move.l 64(%sp),%a2 + lea 34(%a2,%d1.l),%a1 + mvz.b (%a1),%d1 + cmp.l %d1,%d2 + jcc .L879 + mov3q.l #1,32(%sp) +.L851: + move.l 68(%sp),%d1 + moveq #30,%d0 + muls.l %d0,%d1 + tst.l 72(%sp) + jne .L852 + tst.l pool_direct + jeq .L853 + move.l %d1,20(%sp) + move.l %a0,24(%sp) + jsr pool_context + move.l 20(%sp),%d1 + move.l 24(%sp),%a0 tst.l %d0 - jeq .L530 - move.b 1175456541,%d0 - btst #5,%d0 - jne .L530 - moveq #62,%d0 - cmp.l %a1,%d0 - jeq .L542 - moveq #49,%d2 - cmp.l %a1,%d2 - jne .L530 - move.l %d1,16(%sp) - move.l %a0,8(%sp) - move.l %a1,12(%sp) - jsr generator_view - move.l 16(%sp),%d1 - move.l 8(%sp),%a0 - move.l 12(%sp),%a1 + jeq .L853 + move.l 1187521622,%d0 + add.l #585088,%d0 + move.b 269161679,%d2 + move.w %d2,%a1 + mov3q.l #3,%d2 + move.l %a1,%d3 + and.l %d2,%d3 + mvz.w #6322,%d2 + muls.l %d2,%d3 + add.l %d3,%d0 + cmp.l 64(%sp),%d0 + jne .L853 + move.l 68(%sp),%d3 + cmp.l pool_track.l,%d3 + jne .L853 + mov3q.l #2,72(%sp) +.L852: + move.l 68(%sp),-(%sp) + move.l 68(%sp),-(%sp) + move.l %d1,28(%sp) + move.l %a0,32(%sp) + jsr vector_signed_track + addq.l #8,%sp + move.l 20(%sp),%d1 + move.l 24(%sp),%a0 tst.l %d0 - jeq .L530 + jeq .L880 +.L855: + move.l 64(%sp),%a1 + move.l #268525902,%d0 + sub.l 36(%sp),%d0 + lea 60(%a1,%d1.l),%a0 + lea 66(%a1,%d1.l),%a1 + move.l %a1,%d1 + move.l #268526334,%a1 + sub.l 36(%sp),%a1 +.L862: + move.b (%a0),(%a0,%d0.l) + lea (432,%a0),%a2 + move.b (%a2),(%a1,%a0.l) + addq.l #1,%a0 + cmp.l %a0,%d1 + jne .L862 mov3q.l #1,%d0 - or.l %d0,mine - move.b 269161676,%d0 - mov3q.l #1,-(%sp) - mov3q.l #1,-(%sp) - mvz.b %d0,%d0 - move.l %d0,-(%sp) - jsr generate_track - lea (12,%sp),%sp + cmp.l 72(%sp),%d0 + jne .L849 + mvz.w #6322,%d1 + move.l %a6,%d0 + move.l #1187521622,%a0 + move.l (%a0),pool_bank + mov3q.l #1,pool_pending + divu.l %d1,%d0 + move.l 68(%sp),%d1 + move.l %d1,pool_track + move.l %d0,pool_part +.L849: + movem.l (%sp),#19468 + move.l 32(%sp),%d0 + lea (60,%sp),%sp + rts +.L850: + movem.l (%sp),#19468 + mov3q.l #1,32(%sp) + move.l 32(%sp),%d0 + lea (60,%sp),%sp + rts +.L853: + move.l 68(%sp),-(%sp) + move.l 68(%sp),-(%sp) + move.l %d1,28(%sp) + jsr vector_signed_track + addq.l #8,%sp + move.l 20(%sp),%d1 tst.l %d0 - jeq .L533 - pea 32.w - move.l #.LC3,%d0 + jeq .L855 + clr.b %d3 + move.l 64(%sp),%a0 + move.l #268525902,%d0 + move.l 64(%sp),%a1 + sub.l 36(%sp),%d0 + move.b %d3,62(%a0,%d1.l) + move.b %d3,61(%a0,%d1.l) + move.b %d3,60(%a0,%d1.l) + lea 60(%a1,%d1.l),%a0 + lea 66(%a1,%d1.l),%a1 + move.l %a1,%d1 + move.l #268526334,%a1 + sub.l 36(%sp),%a1 + jra .L862 +.L879: + mvz.b (%a1),%d3 + move.l %d3,32(%sp) + jra .L851 +.L880: + move.l 68(%sp),%a1 + moveq #50,%d2 + pea 1(%a1) + pea vector_defaults + move.l %sp,%d0 + add.l #59,%d0 move.l %d0,-(%sp) - jsr 1074111160 - mov3q.l #-1,-(%sp) - jsr 1074059592 - mov3q.l #1,1187497772 + move.l %d0,40(%sp) + move.l %d1,32(%sp) + move.l 76(%sp),%a2 + move.l %a0,36(%sp) + lea 60(%a2,%d1.l),%a2 + move.l %a2,52(%sp) + jsr vector_pack + move.b #83,(%a2) + move.l 76(%sp),%a1 + move.l 32(%sp),%d1 + move.l %d1,%a2 + lea (63,%a2),%a2 + move.b %d2,61(%a1,%d1.l) + moveq #2,%d2 + move.b %d2,62(%a1,%d1.l) + move.l %d1,%a1 + lea (489,%a1),%a1 + move.l 40(%sp),%d0 lea (12,%sp),%sp -.L543: - move.l (%sp)+,%d2 + move.l %a1,40(%sp) + move.l 24(%sp),%a0 + move.l %a2,44(%sp) +.L859: + move.l 40(%sp),%a1 + mov3q.l #2,%d2 + add.l %a0,%a1 + cmp.l %a0,%d2 + jcc .L881 + move.l %d0,%a3 + addq.l #1,%a0 + move.l 64(%sp),%a2 + moveq #9,%d2 + move.b (%a3),(%a2,%a1.l) + cmp.l %a0,%d2 + jeq .L855 + addq.l #1,%d0 + jra .L859 +.L881: + move.l 64(%sp),%a2 + move.l %d0,%a3 + move.l 44(%sp),%a1 + add.l %a0,%a1 + addq.l #1,%a0 + move.b (%a3)+,(%a2,%a1.l) + move.l %a3,%d0 + jra .L859 + .size st_assign, .-st_assign + .align 2 + .globl st_pool_choice_draw + .type st_pool_choice_draw, @function +st_pool_choice_draw: + subq.l #8,%sp + move.l 1175346736,%d0 + move.l %a3,-(%sp) + move.l %a2,-(%sp) + tst.l %d0 + jeq .L882 + lea pool_labels,%a3 + cmp.l 1175346732.l,%a3 + jeq .L893 + clr.l %d0 +.L882: move.l (%sp)+,%a2 - lea (20,%sp),%sp + move.l (%sp)+,%a3 + addq.l #8,%sp rts -.L530: +.L893: + move.l %d0,%a0 + lea (36,%a0),%a0 + move.l %a0,12(%sp) + move.l %a0,-(%sp) + move.l %d0,12(%sp) + jsr 1073960572 + move.l 12(%sp),%a1 + addq.l #4,%sp clr.l %d0 - jra .L529 -.L542: - tst.b 1187502296.l - jne .L530 - tst.l edit_view - seq %d0 - mov3q.l #2,%d1 - or.l %d1,mine + move.l 40(%a1),%a2 + move.l (%a3)+,-(%sp) mov3q.l #-1,-(%sp) - mvs.b %d0,%d0 - neg.l %d0 - move.l %d0,edit_view - jsr 1074059592 - addq.l #4,%sp - move.l (%sp)+,%d2 - mov3q.l #1,1187497772 + lea (-23,%a2),%a2 + move.l %a2,-(%sp) + mov3q.l #5,-(%sp) + move.l 28(%sp),-(%sp) + move.l #1074505846,-(%sp) + move.l %d0,32(%sp) + jsr 1073818584 + lea (24,%sp),%sp + move.l 8(%sp),%d0 + cmp.l 1175346752.l,%d0 + jeq .L894 +.L884: + subq.l #7,%a2 + mov3q.l #1,%d1 + cmp.l %d0,%d1 + jne .L887 +.L895: move.l (%sp)+,%a2 - lea (20,%sp),%sp + mov3q.l #1,1187497772 + move.l (%sp)+,%a3 + addq.l #8,%sp rts -.L533: - pea 32.w - move.l #.LC4,%d0 - move.l %d0,-(%sp) - jsr 1074111160 +.L894: + move.l 12(%sp),%a1 + move.l (%a1),%a0 + mov3q.l #-1,-(%sp) + pea 5(%a2) + pea -5(%a0) + pea -1(%a2) + mov3q.l #3,-(%sp) + move.l %a1,-(%sp) + move.l %d0,32(%sp) + jsr 1073816148 + lea (24,%sp),%sp + subq.l #7,%a2 + mov3q.l #1,%d1 + move.l 8(%sp),%d0 + cmp.l %d0,%d1 + jeq .L895 +.L887: + move.l (%a3)+,-(%sp) mov3q.l #-1,-(%sp) - jsr 1074059592 - mov3q.l #1,1187497772 - lea (12,%sp),%sp - jra .L543 - .size st_key, .-st_key + move.l %a2,-(%sp) + mov3q.l #5,-(%sp) + mov3q.l #1,%d0 + move.l 28(%sp),-(%sp) + move.l #1074505846,-(%sp) + move.l %d0,32(%sp) + jsr 1073818584 + lea (24,%sp),%sp + move.l 8(%sp),%d0 + cmp.l 1175346752.l,%d0 + jne .L884 + jra .L894 + .size st_pool_choice_draw, .-st_pool_choice_draw + .section .rodata.str1.1 +.LC7: + .string "\253 MACHINE:VECTOR \273" + .text .align 2 - .type pool_flex, @function -pool_flex: - move.l pool_bank,%d0 - cmp.l 1187521622.l,%d0 - jeq .L551 -.L544: - rts -.L551: + .globl st_pool_choice_open + .type st_pool_choice_open, @function +st_pool_choice_open: + jsr st_selected + tst.l %d0 + jeq .L896 + tst.l 1175346736 + jne .L896 + tst.l 1175351520 + jne .L896 + move.l #1187521622,%a0 + mov3q.l #3,%d1 + move.l (%a0),pool_bank move.b 269161679,%d0 + and.l %d0,%d1 + move.l %d1,pool_part + mvz.b 269161676,%d0 + mov3q.l #2,-(%sp) + mov3q.l #6,-(%sp) + move.l #1175346744,-(%sp) + move.l %d0,pool_track + clr.l pool_direct + clr.l pool_pending + jsr 1074261088 + lea (12,%sp),%sp + move.l 1187521622,%a0 mov3q.l #3,%d1 + move.b 269161679,%d0 + move.l pool_track,%a1 + add.l #585088,%a0 and.l %d1,%d0 - cmp.l pool_part.l,%d0 - jne .L544 - mvz.b 269161676,%d0 - cmp.l pool_track.l,%d0 - jne .L544 - jsr st_selected - tst.l %d0 - jeq .L544 - mov3q.l #1,pool_browse - mov3q.l #1,pool_direct - jsr st_stock_pool_open + mvz.w #6322,%d1 + muls.l %d1,%d0 + add.l %d0,%a0 + mvz.b 34(%a0,%a1.l),%d0 + move.l %d0,-(%sp) + move.l #1175346744,-(%sp) + jsr 1074261424 + lea (handlers.8),%a0 + move.l %a0,1175346728 + move.l #pool_labels,%d0 + move.l %d0,1175346732 + clr.l 1175346740 + move.l #1074190164,-(%sp) + mov3q.l #1,-(%sp) + clr.l -(%sp) mov3q.l #-1,-(%sp) - jsr 1074059592 - mov3q.l #1,1187497772 - addq.l #4,%sp + pea 64.w + pea 110.w + jsr 1074102940 + lea (32,%sp),%sp + move.l %d0,1175346736 + tst.l %d0 + jeq .L896 + clr.l -(%sp) + pea .LC7 + move.l %d0,-(%sp) + jsr 1074098360 + move.l #1074585796,-(%sp) + jsr 1073943700 + lea (16,%sp),%sp + jra st_pool_choice_draw +.L896: rts - .size pool_flex, .-pool_flex + .size st_pool_choice_open, .-st_pool_choice_open .align 2 - .type pool_static, @function -pool_static: - move.l pool_bank,%d0 - cmp.l 1187521622.l,%d0 - jeq .L559 -.L552: + .globl st_pool_choice_left + .type st_pool_choice_left, @function +st_pool_choice_left: + tst.l 1175346736 + jeq .L906 + move.l #pool_labels,%d0 + cmp.l 1175346732.l,%d0 + jeq .L913 +.L906: rts -.L559: - move.b 269161679,%d0 - mov3q.l #3,%d1 - and.l %d1,%d0 - cmp.l pool_part.l,%d0 - jne .L552 - mvz.b 269161676,%d0 - cmp.l pool_track.l,%d0 - jne .L552 - jsr st_selected +.L913: + jsr 1074190164 + clr.l pool_direct + jsr st_stock_pool_open + jmp 1074235708 + .size st_pool_choice_left, .-st_pool_choice_left + .align 2 + .globl st_pool_choice_right + .type st_pool_choice_right, @function +st_pool_choice_right: + subq.l #4,%sp + tst.l 1175346736 + jeq .L914 + move.l #pool_labels,%d0 + cmp.l 1175346732.l,%d0 + jeq .L927 +.L914: + addq.l #4,%sp + rts +.L927: + jsr pool_context tst.l %d0 - jeq .L552 - clr.l pool_browse + jeq .L914 + move.l 1175346752,%d1 + mov3q.l #1,%d0 + cmp.l %d1,%d0 + jcs .L914 + move.l %d1,(%sp) + jsr 1074190164 + jsr pool_context + tst.l %d0 + jeq .L914 + move.l (%sp),pool_browse mov3q.l #1,pool_direct jsr st_stock_pool_open mov3q.l #-1,-(%sp) jsr 1074059592 mov3q.l #1,1187497772 addq.l #4,%sp + addq.l #4,%sp rts - .size pool_static, .-pool_static - .align 2 - .globl st_type - .type st_type, @function -st_type: - move.l 1187521622,%d0 - add.l #-1073741824,%d0 - move.l %d2,-(%sp) - cmp.l #133169151,%d0 - jhi .L562 - move.l 1187521622,%d0 - mov3q.l #3,%d2 - move.b 269161679,%d1 - add.l #585088,%d0 - move.l 12(%sp),%a0 - lea (-34,%a0),%a0 - and.l %d2,%d1 - mvz.w #6322,%d2 - muls.l %d2,%d1 - mov3q.l #7,%d2 - add.l %d1,%d0 - move.l %a0,%d1 - sub.l %d0,%d1 - cmp.l %d1,%d2 - jcc .L569 -.L562: - move.l 8(%sp),%d0 - move.l (%sp)+,%d2 - rts -.L569: - mov3q.l #1,%d2 - cmp.l 8(%sp),%d2 - jcs .L562 - move.l %d1,-(%sp) - move.l %d0,-(%sp) - jsr vector_signed_track - addq.l #8,%sp - tst.l %d0 - jeq .L562 - mov3q.l #5,8(%sp) - move.l 8(%sp),%d0 - move.l (%sp)+,%d2 - rts - .size st_type, .-st_type + .size st_pool_choice_right, .-st_pool_choice_right .align 2 - .globl st_chooser_type - .type st_chooser_type, @function -st_chooser_type: - move.l %d3,-(%sp) - move.l %d2,-(%sp) + .globl st_pool_left + .type st_pool_left, @function +st_pool_left: + lea (-12,%sp),%sp + move.l 16(%sp),%d1 + move.l 20(%sp),%a0 + tst.l 1175351520 + jeq .L928 tst.l pool_direct - jeq .L574 + jne .L945 +.L930: + move.l %a0,20(%sp) + move.l %d1,16(%sp) + lea (12,%sp),%sp + jmp 1074235708 +.L945: + move.l %d1,4(%sp) + move.l %a0,(%sp) jsr pool_context + move.l 4(%sp),%d1 + move.l (%sp),%a0 tst.l %d0 - jne .L584 -.L574: - move.l 1187521622,%d0 - add.l #-1073741824,%d0 - cmp.l #133169151,%d0 - jhi .L577 - move.l 1187521622,%d1 - mov3q.l #3,%d3 - move.b 269161679,%d0 - add.l #585088,%d1 - move.w %d0,%a0 - move.l 16(%sp),%d0 - add.l #-34,%d0 - move.l %a0,%d2 - and.l %d3,%d2 - mvz.w #6322,%d3 - muls.l %d3,%d2 - add.l %d2,%d1 - sub.l %d1,%d0 - mov3q.l #7,%d2 - cmp.l %d0,%d2 - jcc .L585 -.L577: - move.l 12(%sp),%d0 - move.l (%sp)+,%d2 - move.l (%sp)+,%d3 + jeq .L930 + tst.l 1175351520 + jeq .L930 + move.l pool_browse,%d0 + move.l %d0,8(%sp) + jsr 1074235876 + clr.l pool_direct + jsr st_pool_choice_open + tst.l 1175346736 + jeq .L928 + move.l #pool_labels,%d0 + cmp.l 1175346732.l,%d0 + jne .L928 + move.l 8(%sp),-(%sp) + move.l #1175346744,-(%sp) + jsr 1074261424 + lea (20,%sp),%sp + jra st_pool_choice_draw +.L928: + lea (12,%sp),%sp rts -.L585: - mov3q.l #1,%d3 - cmp.l 12(%sp),%d3 - jcs .L577 - move.l %d0,-(%sp) - move.l %d1,-(%sp) - jsr vector_signed_track + .size st_pool_left, .-st_pool_left + .align 2 + .globl st_pool_right + .type st_pool_right, @function +st_pool_right: + subq.l #8,%sp + move.l 12(%sp),%d1 + move.l 16(%sp),%a0 + tst.l 1175351520 + jeq .L947 + tst.l 1175352218 + jne .L947 + mov3q.l #5,%d0 + cmp.l 1175352206.l,%d0 + jeq .L956 +.L947: + move.l %a0,16(%sp) + move.l %d1,12(%sp) + addq.l #8,%sp + jmp 1074237596 +.L956: + move.l %d1,4(%sp) + move.l %a0,(%sp) + jsr st_selected + move.l 4(%sp),%d1 + move.l (%sp),%a0 + tst.l %d0 + jeq .L947 + jsr 1074235876 addq.l #8,%sp + jra st_pool_choice_open + .size st_pool_right, .-st_pool_right + .align 2 + .globl st_draw_page + .type st_draw_page, @function +st_draw_page: + subq.l #4,%sp + jsr 1073946408 + move.l %d0,(%sp) + jsr st_selected tst.l %d0 - jeq .L577 - move.l (%sp)+,%d2 - mov3q.l #5,%d0 - move.l (%sp)+,%d3 - rts -.L584: - move.l 1187521622,%d0 - mov3q.l #3,%d2 - move.b 269161679,%d1 - mvz.w #6322,%d3 - move.l pool_track,%a0 - add.l #585088,%d0 - lea (34,%a0),%a0 - and.l %d2,%d1 - muls.l %d3,%d1 - add.l %d1,%d0 - add.l %a0,%d0 - cmp.l 16(%sp),%d0 - jne .L574 - move.l (%sp)+,%d2 - move.l pool_browse,%d0 - move.l (%sp)+,%d3 + jeq .L957 + tst.l edit_view + jne .L957 + tst.b 1187502296.l + jne .L957 + tst.l 1175263034 + jne .L957 + tst.l 1175262868 + jne .L957 + move.l (%sp),-(%sp) + jsr generator_page + move.l %d0,4(%sp) + addq.l #4,%sp +.L957: + move.l (%sp),%d0 + addq.l #4,%sp rts - .size st_chooser_type, .-st_chooser_type + .size st_draw_page, .-st_draw_page .align 2 - .globl st_assign - .type st_assign, @function -st_assign: - lea (-60,%sp),%sp + .globl st_setup_page + .type st_setup_page, @function +st_setup_page: + subq.l #4,%sp + move.l %d2,-(%sp) move.l 1187521622,%d0 add.l #-1073741824,%d0 - movem.l #19468,(%sp) + move.l 12(%sp),%d1 cmp.l #133169151,%d0 - jhi .L587 - mov3q.l #7,%d0 - cmp.l 68(%sp),%d0 - jcs .L587 - move.l 1187521622,%d1 - move.l 64(%sp),%a0 - sub.l %d1,%a0 - move.l %a0,%a6 - add.l #-585088,%a6 - move.l %d1,36(%sp) - mvz.w #6322,%d1 - move.l %a6,%d0 - remu.l %d1,%d2:%d0 - move.l %d2,%a0 - tst.l %d2 - jne .L587 - cmp.l #25287,%a6 - jhi .L587 - move.l 68(%sp),%d1 - mov3q.l #1,%d2 - move.l 64(%sp),%a2 - lea 34(%a2,%d1.l),%a1 - mvz.b (%a1),%d1 - cmp.l %d1,%d2 - jcc .L616 - mov3q.l #1,32(%sp) -.L588: - move.l 68(%sp),%d1 - moveq #30,%d0 - muls.l %d0,%d1 - tst.l 72(%sp) - jne .L589 - tst.l pool_direct - jeq .L590 - move.l %d1,20(%sp) - move.l %a0,24(%sp) - jsr pool_context - move.l 20(%sp),%d1 - move.l 24(%sp),%a0 - tst.l %d0 - jeq .L590 - move.l 1187521622,%d0 - add.l #585088,%d0 - move.b 269161679,%d2 - move.w %d2,%a1 + jhi .L965 + tst.b -2147483627.l + jeq .L972 +.L965: + move.l (%sp)+,%d2 + move.l %d1,%d0 + addq.l #4,%sp + rts +.L972: + move.b 269161676,%d0 + move.l 1187521622,%a0 + add.l #585088,%a0 + mvz.b %d0,%d2 + move.b 269161679,%d0 + move.l %d2,%a1 mov3q.l #3,%d2 - move.l %a1,%d3 - and.l %d2,%d3 + move.l %a1,-(%sp) + and.l %d2,%d0 mvz.w #6322,%d2 - muls.l %d2,%d3 - add.l %d3,%d0 - cmp.l 64(%sp),%d0 - jne .L590 - move.l 68(%sp),%d3 - cmp.l pool_track.l,%d3 - jne .L590 - mov3q.l #2,72(%sp) -.L589: - move.l 68(%sp),-(%sp) - move.l 68(%sp),-(%sp) - move.l %d1,28(%sp) - move.l %a0,32(%sp) - jsr vector_signed_track - addq.l #8,%sp - move.l 20(%sp),%d1 - move.l 24(%sp),%a0 - tst.l %d0 - jeq .L617 -.L592: - move.l 64(%sp),%a1 - move.l #268525902,%d0 - sub.l 36(%sp),%d0 - lea 60(%a1,%d1.l),%a0 - lea 66(%a1,%d1.l),%a1 - move.l %a1,%d1 - move.l #268526334,%a1 - sub.l 36(%sp),%a1 -.L599: - move.b (%a0),(%a0,%d0.l) - lea (432,%a0),%a2 - move.b (%a2),(%a1,%a0.l) - addq.l #1,%a0 - cmp.l %a0,%d1 - jne .L599 - mov3q.l #1,%d0 - cmp.l 72(%sp),%d0 - jne .L586 - mvz.w #6322,%d1 - move.l %a6,%d0 - move.l #1187521622,%a0 - move.l (%a0),pool_bank - mov3q.l #1,pool_pending - divu.l %d1,%d0 - move.l 68(%sp),%d1 - move.l %d1,pool_track - move.l %d0,pool_part -.L586: - movem.l (%sp),#19468 - move.l 32(%sp),%d0 - lea (60,%sp),%sp - rts -.L587: - movem.l (%sp),#19468 - mov3q.l #1,32(%sp) - move.l 32(%sp),%d0 - lea (60,%sp),%sp - rts -.L590: - move.l 68(%sp),-(%sp) - move.l 68(%sp),-(%sp) - move.l %d1,28(%sp) - jsr vector_signed_track - addq.l #8,%sp - move.l 20(%sp),%d1 - tst.l %d0 - jeq .L592 - clr.b %d3 - move.l 64(%sp),%a0 - move.l #268525902,%d0 - move.l 64(%sp),%a1 - sub.l 36(%sp),%d0 - move.b %d3,62(%a0,%d1.l) - move.b %d3,61(%a0,%d1.l) - move.b %d3,60(%a0,%d1.l) - lea 60(%a1,%d1.l),%a0 - lea 66(%a1,%d1.l),%a1 - move.l %a1,%d1 - move.l #268526334,%a1 - sub.l 36(%sp),%a1 - jra .L599 -.L616: - mvz.b (%a1),%d3 - move.l %d3,32(%sp) - jra .L588 -.L617: - move.l 68(%sp),%a1 - moveq #50,%d2 - pea 1(%a1) - pea vector_defaults - move.l %sp,%d0 - add.l #59,%d0 - move.l %d0,-(%sp) - move.l %d0,40(%sp) - move.l %d1,32(%sp) - move.l 76(%sp),%a2 - move.l %a0,36(%sp) - lea 60(%a2,%d1.l),%a2 - move.l %a2,52(%sp) - jsr vector_pack - move.b #83,(%a2) - move.l 76(%sp),%a1 - move.l 32(%sp),%d1 - move.l %d1,%a2 - lea (63,%a2),%a2 - move.b %d2,61(%a1,%d1.l) - moveq #2,%d2 - move.b %d2,62(%a1,%d1.l) - move.l %d1,%a1 - lea (489,%a1),%a1 - move.l 40(%sp),%d0 - lea (12,%sp),%sp - move.l %a1,40(%sp) - move.l 24(%sp),%a0 - move.l %a2,44(%sp) -.L596: - move.l 40(%sp),%a1 - mov3q.l #2,%d2 - add.l %a0,%a1 - cmp.l %a0,%d2 - jcc .L618 - move.l %d0,%a3 - addq.l #1,%a0 - move.l 64(%sp),%a2 - moveq #9,%d2 - move.b (%a3),(%a2,%a1.l) - cmp.l %a0,%d2 - jeq .L592 - addq.l #1,%d0 - jra .L596 -.L618: - move.l 64(%sp),%a2 - move.l %d0,%a3 - move.l 44(%sp),%a1 - add.l %a0,%a1 - addq.l #1,%a0 - move.b (%a3)+,(%a2,%a1.l) - move.l %a3,%d0 - jra .L596 - .size st_assign, .-st_assign - .align 2 - .globl st_pool_choice_draw - .type st_pool_choice_draw, @function -st_pool_choice_draw: - subq.l #8,%sp - move.l 1175346736,%d0 - move.l %a3,-(%sp) - move.l %a2,-(%sp) - tst.l %d0 - jeq .L619 - lea pool_labels,%a3 - cmp.l 1175346732.l,%a3 - jeq .L630 - clr.l %d0 -.L619: - move.l (%sp)+,%a2 - move.l (%sp)+,%a3 + muls.l %d2,%d0 + pea (%a0,%d0.l) + move.l %d1,12(%sp) + jsr vector_signed_track addq.l #8,%sp + move.l 4(%sp),%d1 + tst.l %d0 + jeq .L965 + tst.l edit_view + jne .L965 + move.l %d1,12(%sp) + move.l (%sp)+,%d2 + addq.l #4,%sp + jra generator_page + .size st_setup_page, .-st_setup_page + .align 2 + .globl st_knob + .type st_knob, @function +st_knob: + lea (-12,%sp),%sp + mov3q.l #5,%d0 + move.l %d2,-(%sp) + move.l 20(%sp),%d1 + move.l 24(%sp),%a0 + cmp.l %d1,%d0 + jcc .L980 +.L973: + move.l (%sp)+,%d2 + lea (12,%sp),%sp rts -.L630: - move.l %d0,%a0 - lea (36,%a0),%a0 +.L980: + move.l 1187521622,%d0 + add.l #-1073741824,%d0 + cmp.l #133169151,%d0 + jhi .L973 + tst.b -2147483627.l + jne .L973 + move.b 269161676,%d2 + move.l 1187521622,%a1 + add.l #585088,%a1 + move.b 269161679,%d0 + mvz.b %d2,%d2 + move.l %d2,12(%sp) + mov3q.l #3,%d2 + and.l %d2,%d0 + mvz.w #6322,%d2 + move.l 12(%sp),-(%sp) + muls.l %d2,%d0 + pea (%a1,%d0.l) + move.l %d1,16(%sp) move.l %a0,12(%sp) - move.l %a0,-(%sp) - move.l %d0,12(%sp) - jsr 1073960572 - move.l 12(%sp),%a1 - addq.l #4,%sp - clr.l %d0 - move.l 40(%a1),%a2 - move.l (%a3)+,-(%sp) - mov3q.l #-1,-(%sp) - lea (-23,%a2),%a2 - move.l %a2,-(%sp) - mov3q.l #5,-(%sp) - move.l 28(%sp),-(%sp) - move.l #1074505846,-(%sp) - move.l %d0,32(%sp) - jsr 1073818584 - lea (24,%sp),%sp - move.l 8(%sp),%d0 - cmp.l 1175346752.l,%d0 - jeq .L631 -.L621: - subq.l #7,%a2 - mov3q.l #1,%d1 - cmp.l %d0,%d1 - jne .L624 -.L632: - move.l (%sp)+,%a2 - mov3q.l #1,1187497772 - move.l (%sp)+,%a3 + jsr vector_signed_track addq.l #8,%sp - rts -.L631: - move.l 12(%sp),%a1 - move.l (%a1),%a0 - mov3q.l #-1,-(%sp) - pea 5(%a2) - pea -5(%a0) - pea -1(%a2) - mov3q.l #3,-(%sp) - move.l %a1,-(%sp) - move.l %d0,32(%sp) - jsr 1073816148 - lea (24,%sp),%sp - subq.l #7,%a2 - mov3q.l #1,%d1 - move.l 8(%sp),%d0 - cmp.l %d0,%d1 - jeq .L632 -.L624: - move.l (%a3)+,-(%sp) - mov3q.l #-1,-(%sp) - move.l %a2,-(%sp) - mov3q.l #5,-(%sp) - mov3q.l #1,%d0 - move.l 28(%sp),-(%sp) - move.l #1074505846,-(%sp) - move.l %d0,32(%sp) - jsr 1073818584 - lea (24,%sp),%sp - move.l 8(%sp),%d0 - cmp.l 1175346752.l,%d0 - jne .L621 - jra .L631 - .size st_pool_choice_draw, .-st_pool_choice_draw - .section .rodata.str1.1 -.LC5: - .string "\253 MACHINE:VECTOR \273" - .text - .align 2 - .globl st_pool_choice_open - .type st_pool_choice_open, @function -st_pool_choice_open: - jsr st_selected + move.l 8(%sp),%d1 tst.l %d0 - jeq .L633 - tst.l 1175346736 - jne .L633 - tst.l 1175351520 - jne .L633 - move.l #1187521622,%a0 - mov3q.l #3,%d1 - move.l (%a0),pool_bank - move.b 269161679,%d0 - and.l %d0,%d1 - move.l %d1,pool_part - mvz.b 269161676,%d0 - mov3q.l #2,-(%sp) - mov3q.l #6,-(%sp) - move.l #1175346744,-(%sp) - move.l %d0,pool_track - clr.l pool_direct - clr.l pool_pending - jsr 1074261088 + jeq .L973 + tst.l edit_view + jne .L973 + tst.b 1187502296.l + jne .L973 + tst.l 1175263034 + jne .L973 + tst.l 1175262868 + jne .L973 + tst.l st_layer + jne .L973 + move.l 4(%sp),24(%sp) + move.l %d1,20(%sp) + move.l (%sp)+,%d2 lea (12,%sp),%sp + jra change_control + .size st_knob, .-st_knob + .align 2 + .globl st_setup_knob + .type st_setup_knob, @function +st_setup_knob: + move.l %d2,-(%sp) + mov3q.l #5,%d0 + cmp.l 8(%sp),%d0 + jcc .L982 +.L984: + move.l (%sp)+,%d2 + clr.l %d0 + rts +.L982: + move.l 1187521622,%d0 + add.l #-1073741824,%d0 + cmp.l #133169151,%d0 + jhi .L984 + tst.b -2147483627.l + jne .L984 + move.b 269161676,%d1 move.l 1187521622,%a0 - mov3q.l #3,%d1 + mov3q.l #3,%d2 move.b 269161679,%d0 - move.l pool_track,%a1 add.l #585088,%a0 - and.l %d1,%d0 + mvz.b %d1,%d1 + and.l %d2,%d0 + move.l %d1,-(%sp) mvz.w #6322,%d1 muls.l %d1,%d0 - add.l %d0,%a0 - mvz.b 34(%a0,%a1.l),%d0 - move.l %d0,-(%sp) - move.l #1175346744,-(%sp) - jsr 1074261424 - lea (handlers.3),%a0 - move.l %a0,1175346728 - move.l #pool_labels,%d0 - move.l %d0,1175346732 - clr.l 1175346740 - move.l #1074190164,-(%sp) - mov3q.l #1,-(%sp) - clr.l -(%sp) - mov3q.l #-1,-(%sp) - pea 64.w - pea 110.w - jsr 1074102940 - lea (32,%sp),%sp - move.l %d0,1175346736 + pea (%a0,%d0.l) + jsr vector_signed_track + addq.l #8,%sp tst.l %d0 - jeq .L633 - clr.l -(%sp) - pea .LC5 + jeq .L984 + tst.l edit_view + jne .L984 + move.l 12(%sp),-(%sp) + move.l 12(%sp),%a0 + pea 6(%a0) + jsr change_control + addq.l #8,%sp + move.l (%sp)+,%d2 + mov3q.l #1,%d0 + rts + .size st_setup_knob, .-st_setup_knob + .align 2 + .globl mg_page + .type mg_page, @function +mg_page: + link.w %fp,#-64 + move.l #vector_midi,%d1 + move.l %d2,-(%sp) + move.l #mg_page_layer,%d2 + move.l 1074061804,%d0 + move.l %d1,-64(%fp) + cmp.l mg_active.l,%d2 + jeq .L1006 +.L992: + move.l 8(%fp),%d0 + move.l -68(%fp),%d2 + unlk %fp + rts +.L1006: + tst.l -2147483630 + jeq .L992 + move.l #1187521622,%a0 + move.l (%a0),%d1 + add.l #-1073741824,%d1 + cmp.l #133169151,%d1 + jhi .L992 + move.l #269161676,%a1 + mov3q.l #7,%d2 + mvz.b (%a1),%d1 + cmp.l %d1,%d2 + jcs .L992 + move.b (%a1),%d1 + move.l (%a0),%a0 + add.l #585088,%a0 + cmp.l #mg_page_site,%d0 + seq %d0 + mvz.b %d1,%d2 + move.b 269161679,%d1 + mvs.b %d0,%d0 + move.l %d2,%a1 + mov3q.l #3,%d2 + move.l %a1,-(%sp) + neg.l %d0 + and.l %d2,%d1 + mvz.w #6322,%d2 + muls.l %d2,%d1 + pea (%a0,%d1.l) move.l %d0,-(%sp) - jsr 1074098360 - move.l #1074585796,-(%sp) - jsr 1073943700 + pea -64(%fp) + jsr mg_page_view lea (16,%sp),%sp - jra st_pool_choice_draw -.L633: + tst.l %d0 + jeq .L992 + move.l %d0,%a1 + move.l 20(%a1),%a0 + tst.l %a0 + jeq .L992 + move.l mg_second,%d1 + move.l 1175262852,%d0 + cmp.l #vector_midi_page,%a0 + jne .L994 + move.l %d1,-(%sp) + move.l %d0,-(%sp) + move.l 8(%fp),-(%sp) + jsr (%a0) + lea (12,%sp),%sp + move.l -68(%fp),%d2 + move.l %d0,8(%fp) + move.l 8(%fp),%d0 + unlk %fp + rts +.L994: + move.l %d1,-(%sp) + move.l %d0,-(%sp) + move.l 8(%fp),-(%sp) + jsr (%a0) + lea (12,%sp),%sp + move.l -68(%fp),%d2 + move.l %d0,8(%fp) + move.l 8(%fp),%d0 + unlk %fp + rts + .size mg_page, .-mg_page + .align 2 + .globl mg_arp_setup + .type mg_arp_setup, @function +mg_arp_setup: + move.l 1074061804,%a1 + move.l -2147483630,%d0 + move.l %d2,-(%sp) + tst.l %d0 + jeq .L1007 + move.l 1187521622,%d0 + add.l #-1073741824,%d0 + cmp.l #133169151,%d0 + jhi .L1009 + move.l #269161676,%a0 + mov3q.l #7,%d1 + mvz.b (%a0),%d0 + cmp.l %d0,%d1 + jcs .L1009 + move.b (%a0),%d0 + move.l 1187521622,%a0 + mov3q.l #3,%d2 + move.b 269161679,%d1 + add.l #585088,%a0 + mvz.b %d0,%d0 + and.l %d2,%d1 + mvz.w #6322,%d2 + add.l #3089,%d0 + muls.l %d2,%d1 + moveq #77,%d2 + add.l %d1,%a0 + lea (%a0,%d0.l*2),%a0 + move.b 1(%a0),%d0 + mvz.b (%a0),%d1 + cmp.l %d1,%d2 + jne .L1009 + cmp.l #mg_page_site,%a1 + jne .L1009 + mvz.b %d0,%d0 + moveq #86,%d1 + cmp.l %d0,%d1 + jeq .L1011 + move.b (%a0),%d0 +.L1009: + clr.l %d0 +.L1007: + move.l (%sp)+,%d2 rts - .size st_pool_choice_open, .-st_pool_choice_open +.L1011: + mov3q.l #1,%d2 + eor.l %d2,mg_second + mov3q.l #-1,-(%sp) + jsr 1074059592 + addq.l #4,%sp + move.l (%sp)+,%d2 + mov3q.l #1,1187497772 + mov3q.l #1,%d0 + rts + .size mg_arp_setup, .-mg_arp_setup .align 2 - .globl st_pool_choice_left - .type st_pool_choice_left, @function -st_pool_choice_left: - tst.l 1175346736 - jeq .L643 - move.l #pool_labels,%d0 - cmp.l 1175346732.l,%d0 - jeq .L650 -.L643: + .globl mg_track_tap + .type mg_track_tap, @function +mg_track_tap: + mov3q.l #7,%d0 + cmp.l 4(%sp),%d0 + jcs .L1018 + move.l #mg_page_site,%d0 + cmp.l 1074061804.l,%d0 + jeq .L1022 +.L1018: rts -.L650: - jsr 1074190164 - clr.l pool_direct - jsr st_stock_pool_open - jmp 1074235708 - .size st_pool_choice_left, .-st_pool_choice_left +.L1022: + tst.l 1074513600 + jne .L1018 + clr.l 4(%sp) + jmp 1073947176 + .size mg_track_tap, .-mg_track_tap + .section .rodata.str1.1 +.LC8: + .string "ARP" +.LC9: + .string "VECTOR" + .text .align 2 - .globl st_pool_choice_right - .type st_pool_choice_right, @function -st_pool_choice_right: - subq.l #4,%sp - tst.l 1175346736 - jeq .L651 - move.l #pool_labels,%d0 - cmp.l 1175346732.l,%d0 - jeq .L664 -.L651: - addq.l #4,%sp + .globl mg_note_setup_draw + .type mg_note_setup_draw, @function +mg_note_setup_draw: + lea (-20,%sp),%sp + movem.l #1036,(%sp) + jsr mg_stock_note_draw + move.l 1074061804,%d0 + move.l 1074513600,%a0 + cmp.l #mg_page_site,%d0 + jne .L1023 + tst.l %a0 + jne .L1045 +.L1023: + movem.l (%sp),#1036 + lea (20,%sp),%sp rts -.L664: - jsr pool_context +.L1045: + tst.l -2147483630 + jeq .L1023 + move.l 1187521622,%d0 + add.l #-1073741824,%d0 + cmp.l #133169151,%d0 + jhi .L1023 + mvz.b 269161676,%d0 + mov3q.l #7,%d1 + cmp.l %d0,%d1 + jcs .L1023 + move.l mg_cursor,%d0 + mov3q.l #1,%d2 + cmp.l %d0,%d2 + jcs .L1025 + move.l mg_top,%d1 + mov3q.l #2,%d3 + addq.l #5,%d1 + cmp.l %d1,%d3 + jcs .L1046 +.L1026: + move.l 40(%a0),%a2 + move.l %a0,%d2 + clr.l -(%sp) + add.l #36,%d2 + pea -10(%a2) + pea 50.w + mov3q.l #2,-(%sp) + mov3q.l #3,-(%sp) + move.l %d2,-(%sp) + move.l %d0,mg_top + jsr 1073816148 + lea (24,%sp),%sp + mov3q.l #1,%d3 + move.l mg_top,%d0 + cmp.l %d0,%d3 + jcs .L1028 + lea (-20,%a2),%a2 + move.l %a2,16(%sp) tst.l %d0 - jeq .L651 - move.l 1175346752,%d1 + jne .L1030 + pea .LC8 + mov3q.l #-1,-(%sp) + move.l 24(%sp),-(%sp) + mov3q.l #5,-(%sp) + move.l %d2,-(%sp) + move.l #1074505846,-(%sp) + jsr 1073818584 + lea (24,%sp),%sp + move.l mg_cursor,%d0 + tst.l %d0 + jeq .L1032 +.L1029: + move.l mg_top,%d1 + mov3q.l #1,%d3 + move.l %d1,%d0 + addq.l #5,%d0 + cmp.l %d0,%d3 + jcc .L1028 mov3q.l #1,%d0 - cmp.l %d1,%d0 - jcs .L651 - move.l %d1,(%sp) - jsr 1074190164 - jsr pool_context + sub.l %d1,%d0 + lsl.l #3,%d0 + move.l 16(%sp),%a2 + sub.l %d0,%a2 +.L1030: + pea .LC9 + mov3q.l #-1,-(%sp) + move.l %a2,-(%sp) + mov3q.l #5,-(%sp) + move.l %d2,-(%sp) + move.l #1074505846,-(%sp) + jsr 1073818584 + lea (24,%sp),%sp + move.l mg_cursor,%d0 + mov3q.l #1,%d1 + cmp.l %d0,%d1 + jne .L1028 +.L1032: + mov3q.l #-1,-(%sp) + pea 6(%a2) + pea 50.w + pea -1(%a2) + mov3q.l #3,-(%sp) + move.l %d2,-(%sp) + move.l %d0,36(%sp) + jsr 1073816148 + lea (24,%sp),%sp + tst.l 12(%sp) + jeq .L1029 +.L1028: + movem.l (%sp),#1036 + mov3q.l #1,1187497772 + lea (20,%sp),%sp + rts +.L1025: + move.l mg_top,%d0 + mov3q.l #2,%d1 + addq.l #5,%d0 + cmp.l %d0,%d1 + scc %d0 + mov3q.l #1,mg_cursor + mvs.b %d0,%d0 + neg.l %d0 + jra .L1026 +.L1046: + clr.l %d0 + jra .L1026 + .size mg_note_setup_draw, .-mg_note_setup_draw + .align 2 + .globl mg_key + .type mg_key, @function +mg_key: + link.w %fp,#-128 + moveq #51,%d0 + movem.l #1036,(%sp) + move.l 12(%fp),%a1 + cmp.l 8(%fp),%d0 + jeq .L1077 + moveq #32,%d1 + cmp.l 8(%fp),%d1 + jeq .L1078 + moveq #49,%d2 + cmp.l 8(%fp),%d2 + jeq .L1079 + moveq #50,%d3 + cmp.l 8(%fp),%d3 + jeq .L1080 + move.l 1074061804,%d1 + mov3q.l #1,%d0 + lea vector_midi,%a0 + move.l %a0,-64(%fp) + cmp.l %a1,%d0 + jne .L1049 + cmp.l #mg_page_site,%d1 + seq %d0 + move.l mg_active,%a0 + moveq #16,%d2 + move.l %d2,-106(%fp) + mvs.b %d0,%d0 + neg.l %d0 + cmp.l #mg_list_layer,%a0 + jeq .L1128 +.L1054: + cmp.l #mg_page_layer,%a0 + jeq .L1129 +.L1049: + move.l %a1,-(%sp) + move.l 8(%fp),-(%sp) + jsr mg_forward + addq.l #8,%sp +.L1047: + movem.l -128(%fp),#1036 + unlk %fp + rts +.L1128: + cmp.l #mg_page_site,%d1 + jne .L1054 + tst.l -2147483630 + jeq .L1054 + move.l 1187521622,%d1 + add.l #-1073741824,%d1 + cmp.l #133169151,%d1 + jhi .L1054 + mvz.b 269161676,%d1 + mov3q.l #7,%d3 + cmp.l %d1,%d3 + jcs .L1054 + moveq #49,%d1 + cmp.l 8(%fp),%d1 + jeq .L1130 + moveq #51,%d1 + cmp.l 8(%fp),%d1 + jeq .L1071 + moveq #32,%d2 + cmp.l 8(%fp),%d2 + jne .L1054 + move.l -106(%fp),%d3 + or.l %d3,mg_mine + cmp.l mg_cursor.l,%d0 + jls .L1063 + mov3q.l #1,mg_cursor +.L1063: + jsr mg_note_setup_draw +.L1133: + movem.l -128(%fp),#1036 + unlk %fp + rts +.L1129: + tst.l -2147483630 + jeq .L1049 + move.l #1187521622,%a0 + move.l (%a0),%d1 + add.l #-1073741824,%d1 + cmp.l #133169151,%d1 + jhi .L1049 + move.l #269161676,%a2 + mov3q.l #7,%d2 + mvz.b (%a2),%d1 + cmp.l %d1,%d2 + jcs .L1049 + move.b (%a2),-102(%fp) + move.l (%a0),%a0 + mov3q.l #3,%d2 + add.l #585088,%a0 + move.b 269161679,%d1 + mvz.b -102(%fp),%d3 + move.l %d3,-(%sp) + mvz.w #6322,%d3 + and.l %d2,%d1 + muls.l %d3,%d1 + pea (%a0,%d1.l) + move.l %d0,-(%sp) + pea -64(%fp) + move.l %a1,-110(%fp) + jsr mg_page_view + lea (16,%sp),%sp + move.l -110(%fp),%a1 tst.l %d0 - jeq .L651 - move.l (%sp),pool_browse - mov3q.l #1,pool_direct - jsr st_stock_pool_open + jeq .L1049 + moveq #49,%d1 + cmp.l 8(%fp),%d1 + jeq .L1131 + moveq #50,%d0 + cmp.l 8(%fp),%d0 + jne .L1049 + tst.l mg_second + jeq .L1049 + move.l -106(%fp),%d1 mov3q.l #-1,-(%sp) + clr.l mg_second + or.l %d1,mg_mine jsr 1074059592 + movem.l -128(%fp),#1036 mov3q.l #1,1187497772 addq.l #4,%sp - addq.l #4,%sp + unlk %fp rts - .size st_pool_choice_right, .-st_pool_choice_right - .align 2 - .globl st_pool_left - .type st_pool_left, @function -st_pool_left: - lea (-12,%sp),%sp - move.l 16(%sp),%d1 - move.l 20(%sp),%a0 - tst.l 1175351520 - jeq .L665 - tst.l pool_direct - jne .L682 -.L667: - move.l %a0,20(%sp) - move.l %d1,16(%sp) +.L1077: + mov3q.l #1,-106(%fp) +.L1048: + mov3q.l #1,%d0 + cmp.l %a1,%d0 + jeq .L1051 + move.l mg_mine,%d0 + move.l -106(%fp),%d1 + and.l %d0,%d1 + tst.l %d1 + jne .L1132 + move.l 1074061804,%d0 + move.l #vector_midi,%d1 + move.l %a1,-(%sp) + move.l 8(%fp),-(%sp) + move.l %d1,-64(%fp) + jsr mg_forward + addq.l #8,%sp + jra .L1047 +.L1051: + move.l 1074061804,%d1 + move.l #vector_midi,%d2 + move.l mg_active,%a0 + move.l %d2,-64(%fp) + cmp.l #mg_page_site,%d1 + seq %d0 + mvs.b %d0,%d0 + neg.l %d0 + cmp.l #mg_list_layer,%a0 + jne .L1054 + jra .L1128 +.L1132: + tst.l %a1 + jne .L1047 + move.l -106(%fp),%d1 + not.l %d1 + and.l %d0,%d1 + movem.l -128(%fp),#1036 + move.l %d1,mg_mine + unlk %fp + rts +.L1078: + mov3q.l #2,-106(%fp) + jra .L1048 +.L1079: + mov3q.l #4,-106(%fp) + jra .L1048 +.L1080: + moveq #8,%d3 + move.l %d3,-106(%fp) + jra .L1048 +.L1131: + move.l %d0,%a2 + move.l 28(%a2),%a0 + tst.l %a0 + jeq .L1049 + move.l -106(%fp),%d1 + or.l %d1,mg_mine + move.l 1175262852,%d0 + cmp.l #vector_midi_yes,%a0 + jne .L1074 + move.b 269161676,%d0 + mov3q.l #1,-(%sp) + mov3q.l #1,-(%sp) + mvz.b %d0,%d0 + move.l %d0,-(%sp) + jsr midi_generate lea (12,%sp),%sp - jmp 1074235708 -.L682: - move.l %d1,4(%sp) - move.l %a0,(%sp) - jsr pool_context - move.l 4(%sp),%d1 - move.l (%sp),%a0 tst.l %d0 - jeq .L667 - tst.l 1175351520 - jeq .L667 - move.l pool_browse,%d0 - move.l %d0,8(%sp) - jsr 1074235876 - clr.l pool_direct - jsr st_pool_choice_open - tst.l 1175346736 - jeq .L665 - move.l #pool_labels,%d0 - cmp.l 1175346732.l,%d0 - jne .L665 - move.l 8(%sp),-(%sp) - move.l #1175346744,-(%sp) - jsr 1074261424 - lea (20,%sp),%sp - jra st_pool_choice_draw -.L665: - lea (12,%sp),%sp + jeq .L1086 + pea 32.w + move.l #.LC5,%d0 + move.l %d0,-(%sp) + jsr 1074111160 + addq.l #8,%sp +.L1076: + mov3q.l #-1,-(%sp) + jsr 1074059592 + mov3q.l #1,1187497772 + addq.l #4,%sp +.L1134: + movem.l -128(%fp),#1036 + unlk %fp rts - .size st_pool_left, .-st_pool_left - .align 2 - .globl st_pool_right - .type st_pool_right, @function -st_pool_right: - subq.l #8,%sp - move.l 12(%sp),%d1 - move.l 16(%sp),%a0 - tst.l 1175351520 - jeq .L684 - tst.l 1175352218 - jne .L684 - mov3q.l #5,%d0 - cmp.l 1175352206.l,%d0 - jeq .L693 -.L684: - move.l %a0,16(%sp) - move.l %d1,12(%sp) +.L1086: + pea 32.w + move.l #.LC6,%d0 + move.l %d0,-(%sp) + jsr 1074111160 addq.l #8,%sp - jmp 1074237596 -.L693: - move.l %d1,4(%sp) - move.l %a0,(%sp) - jsr st_selected - move.l 4(%sp),%d1 - move.l (%sp),%a0 + jra .L1076 +.L1071: + move.l -106(%fp),%d1 + move.l mg_cursor,%d0 + or.l %d1,mg_mine tst.l %d0 - jeq .L684 - jsr 1074235876 + jeq .L1063 + subq.l #1,%d0 + move.l %d0,mg_cursor + jsr mg_note_setup_draw + jra .L1133 +.L1074: + move.l %d0,-(%sp) + jsr (%a0) + addq.l #4,%sp + mov3q.l #-1,-(%sp) + jsr 1074059592 + mov3q.l #1,1187497772 + addq.l #4,%sp + jra .L1134 +.L1130: + mov3q.l #1,-(%sp) + pea 49.w + move.l %d0,-110(%fp) + jsr mg_forward addq.l #8,%sp - jra st_pool_choice_open - .size st_pool_right, .-st_pool_right - .align 2 - .globl st_draw_page - .type st_draw_page, @function -st_draw_page: - subq.l #4,%sp - jsr 1073946408 - move.l %d0,(%sp) - jsr st_selected + move.l mg_cursor,%d2 + mvz.b 269161676,%d1 + move.l -110(%fp),%d0 + move.l %d2,-106(%fp) + tst.l %d2 + jeq .L1081 + cmp.l %d2,%d0 + jcs .L1082 + move.l -64(%fp),%a0 + move.l %a0,-114(%fp) + tst.l %a0 + jeq .L1083 + move.l 8(%a0),%d2 + move.l %d2,-106(%fp) +.L1056: + move.l %d1,%a1 + lea (3089,%a1),%a1 + move.l %a1,%d2 + add.l %d2,%d2 + move.l 1187521622,%a0 + add.l #585088,%a0 + move.b 269161679,%d3 + move.l %d2,-98(%fp) + mov3q.l #3,%d2 + and.l %d2,%d3 + mvz.w #6322,%d2 + muls.l %d2,%d3 + add.l %d3,%a0 + add.l -98(%fp),%a0 + move.b 1(%a0),%d3 + mvz.b (%a0),%d2 + move.b %d3,-102(%fp) + moveq #77,%d3 + cmp.l %d2,%d3 + jne .L1058 tst.l %d0 - jeq .L694 - tst.l edit_view - jne .L694 - tst.b 1187502296.l - jne .L694 - tst.l 1175263034 - jne .L694 - tst.l 1175262868 - jne .L694 - move.l (%sp),-(%sp) - jsr generator_page - move.l %d0,4(%sp) - addq.l #4,%sp -.L694: - move.l (%sp),%d0 - addq.l #4,%sp - rts - .size st_draw_page, .-st_draw_page - .align 2 - .globl st_setup_page - .type st_setup_page, @function -st_setup_page: - subq.l #4,%sp - move.l %d2,-(%sp) - move.l 1187521622,%d0 - add.l #-1073741824,%d0 - move.l 12(%sp),%d1 - cmp.l #133169151,%d0 - jhi .L702 - tst.b -2147483627.l - jeq .L709 -.L702: - move.l (%sp)+,%d2 + jeq .L1058 + mvz.b -102(%fp),%d0 + move.l -64(%fp),%a1 + cmp.l 8(%a1),%d0 + jeq .L1059 + move.b (%a0),%d0 + tst.l -114(%fp) + jeq .L1060 +.L1061: + move.l %d1,%a0 + add.l #-2147457426,%a0 + move.b (%a0),%d0 + mvz.b -2147483646,%d2 + mvz.b %d0,%d0 + cmp.l %d0,%d2 + jeq .L1135 + move.w %d1,%d2 + move.l %d1,%d3 + move.l #mg_arp_page,%d0 + lsl.l #5,%d3 + lea mg_arp_setup_slots,%a0 + move.l %a0,-80(%fp) + clr.l -84(%fp) + mulu.w #68,%d2 + move.l %d3,%a1 + sub.l #mg_arp_page-1005,%d3 + move.l %d3,-68(%fp) + move.l %d2,%a0 + move.l #-1187473662,%d2 + sub.l %a1,%d2 + add.l #1187474924,%a0 + move.l %d2,-72(%fp) +.L1066: + move.l 1187521622,%a1 + move.l #269161679,%a2 + move.b (%a2),-99(%fp) + mov3q.l #3,%d3 + move.l %d0,%a2 + add.l #585088,%a1 + move.b (%a2)+,-85(%fp) + move.b -99(%fp),%d2 + move.l %a2,%d0 + move.l -68(%fp),%a2 + add.l %d0,%a2 + move.l %a2,-90(%fp) + and.l %d3,%d2 + mvz.w #6322,%d3 + muls.l %d3,%d2 + add.l %d2,%a1 + move.b -85(%fp),%d2 + move.b %d2,(%a1,%a2.l) + move.l #269161679,%a2 + move.b (%a2),%d3 + move.w %d3,%a1 + mov3q.l #3,%d3 + move.l %a1,%d2 + and.l %d3,%d2 + mvz.w #6322,%d3 + muls.l %d3,%d2 + move.l -90(%fp),%d3 + move.l %d2,%a1 + add.l #269110990,%a1 + move.b -85(%fp),%d2 + move.b %d2,(%a1,%d3.l) + mov3q.l #3,%d3 + move.l 1187521622,%a1 + add.l #585088,%a1 + move.b (%a2),-87(%fp) + move.l -80(%fp),%a2 + move.l %a1,-76(%fp) + addq.l #1,-80(%fp) + move.b (%a2)+,-102(%fp) + move.b -87(%fp),%d2 + move.l -72(%fp),%a2 + add.l %a0,%a2 + move.l %a2,-94(%fp) + and.l %d3,%d2 + mvz.w #6322,%d3 + muls.l %d3,%d2 + move.l %d2,%a1 + move.b -102(%fp),%d2 + add.l -76(%fp),%a1 + move.b %d2,(%a1,%a2.l) + move.b 269161679,%d3 + move.w %d3,%a1 + mov3q.l #3,%d3 + move.l %a1,%d2 + and.l %d3,%d2 + mvz.w #6322,%d3 + muls.l %d3,%d2 + move.l -94(%fp),%d3 + move.l %d2,%a1 + add.l #269110990,%a1 + move.b -102(%fp),%d2 + move.b %d2,(%a1,%d3.l) + tst.l -84(%fp) + jeq .L1065 + move.b -85(%fp),-32(%a0) +.L1065: + move.b -102(%fp),(%a0)+ + cmp.l #mg_arp_page+6,%d0 + jne .L1066 move.l %d1,%d0 - addq.l #4,%sp - rts -.L709: - move.b 269161676,%d0 + lsl.l #4,%d0 + move.l %d0,%a1 + add.l #6210,%d0 + lea (6194,%a1),%a1 + move.l %d0,-102(%fp) +.L1067: move.l 1187521622,%a0 + mov3q.l #3,%d3 + move.b 269161679,%d0 + mvz.w #6322,%d2 add.l #585088,%a0 - mvz.b %d0,%d2 + and.l %d3,%d0 + clr.b %d3 + muls.l %d2,%d0 + mov3q.l #3,%d2 + add.l %d0,%a0 + move.b %d3,(%a0,%a1.l) + mvz.w #6322,%d3 move.b 269161679,%d0 - move.l %d2,%a1 + and.l %d2,%d0 + muls.l %d3,%d0 + move.l %d0,%a0 + add.l #269110990,%a0 + clr.b %d0 + move.b %d0,(%a0,%a1.l) + addq.l #1,%a1 + cmp.l -102(%fp),%a1 + jne .L1067 + tst.l -114(%fp) + jeq .L1085 + move.l 1187521622,%a0 mov3q.l #3,%d2 - move.l %a1,-(%sp) + move.b 269161679,%d0 + move.w #77,%a1 + mvz.w #6322,%d3 + add.l #585088,%a0 + add.l -98(%fp),%a0 and.l %d2,%d0 + move.w %a1,%d2 + muls.l %d3,%d0 + mov3q.l #3,%d3 + move.b %d2,(%a0,%d0.l) mvz.w #6322,%d2 + move.l -98(%fp),%a0 + move.b 269161679,%d0 + and.l %d3,%d0 + move.w %a1,%d3 muls.l %d2,%d0 - pea (%a0,%d0.l) - move.l %d1,12(%sp) - jsr vector_signed_track - addq.l #8,%sp - move.l 4(%sp),%d1 - tst.l %d0 - jeq .L702 - tst.l edit_view - jne .L702 - mov3q.l #5,%d0 - cmp.l 1175280688.l,%d0 - jne .L702 - move.l %d1,12(%sp) - move.l (%sp)+,%d2 + add.l %d0,%a0 + add.l #269110990,%a0 + move.b %d3,(%a0) + tst.l -114(%fp) + jeq .L1136 +.L1069: + move.l 1187521622,%a0 + mov3q.l #3,%d2 + move.b 269161679,%d0 + move.l %d1,%d3 + add.l #591267,%a0 + add.l %d3,%d3 + lea (-103,%fp),%a1 + move.l #269117169,%a2 + and.l %d2,%d0 + mvz.w #6322,%d2 + add.l %d3,%a0 + add.l %d3,%a2 + mvz.w #6322,%d3 + muls.l %d2,%d0 + mov3q.l #3,%d2 + move.b (%a1),(%a0,%d0.l) + move.b 269161679,%d0 + and.l %d2,%d0 + muls.l %d3,%d0 + move.b (%a1),(%a2,%d0.l) + move.l %d1,-110(%fp) + jsr mg_dirty + move.l -110(%fp),%d1 + tst.l -114(%fp) + jeq .L1063 + move.l -114(%fp),%a1 + move.l 16(%a1),%a0 + tst.l %a0 + jeq .L1063 + cmp.l #vector_midi_assign,%a0 + jne .L1070 + move.l %d1,-(%sp) + jsr (vector_midi_assign.part.0) addq.l #4,%sp - jra generator_page - .size st_setup_page, .-st_setup_page - .align 2 - .globl st_knob - .type st_knob, @function -st_knob: - lea (-12,%sp),%sp - mov3q.l #5,%d0 - move.l %d2,-(%sp) - move.l 20(%sp),%d1 - move.l 24(%sp),%a0 - cmp.l %d1,%d0 - jcc .L717 -.L710: - move.l (%sp)+,%d2 - lea (12,%sp),%sp - rts -.L717: - move.l 1187521622,%d0 - add.l #-1073741824,%d0 - cmp.l #133169151,%d0 - jhi .L710 - tst.b -2147483627.l - jne .L710 - move.b 269161676,%d2 - move.l 1187521622,%a1 - add.l #585088,%a1 + jsr mg_note_setup_draw + jra .L1133 +.L1058: + tst.l -114(%fp) + jne .L1061 +.L1060: + move.l 1187521622,%a0 + mov3q.l #3,%d2 move.b 269161679,%d0 - mvz.b %d2,%d2 - move.l %d2,12(%sp) + mvz.w #6322,%d3 + add.l #585088,%a0 + add.l -98(%fp),%a0 + and.l %d2,%d0 + moveq #77,%d2 + muls.l %d3,%d0 + mvz.b (%a0,%d0.l),%d0 + cmp.l %d0,%d2 + jeq .L1061 + jsr mg_note_setup_draw + jra .L1133 +.L1136: + mvz.w #255,%d0 + move.l %d0,-106(%fp) + jra .L1069 +.L1081: + clr.l -114(%fp) + jra .L1056 +.L1082: + clr.l -114(%fp) + clr.l -106(%fp) + jra .L1056 +.L1135: + move.l %d1,%a0 + add.l #-2147457418,%a0 + move.b (%a0),%d0 + move.b -2147483645,%d3 + move.w %d3,%a0 + move.l %d1,%d3 + lsl.l #5,%d3 + move.l %a0,%d2 + eor.l %d2,%d0 + move.w %d1,%d2 + lea mg_arp_setup_slots,%a0 + move.l %a0,-80(%fp) + move.l %d3,%a1 + sub.l #mg_arp_page-1005,%d3 + move.l %d3,-68(%fp) + tst.b %d0 + seq %d0 + mulu.w #68,%d2 + move.l %d2,%a0 + move.l #-1187473662,%d2 + sub.l %a1,%d2 + mvs.b %d0,%d0 + add.l #1187474924,%a0 + move.l %d2,-72(%fp) + neg.l %d0 + move.l %d0,-84(%fp) + move.l #mg_arp_page,%d0 + jra .L1066 +.L1085: + move.l 1187521622,%a0 mov3q.l #3,%d2 + move.b 269161679,%d0 + move.w #-1,%a1 + mvz.w #6322,%d3 + add.l #585088,%a0 + add.l -98(%fp),%a0 and.l %d2,%d0 + move.w %a1,%d2 + muls.l %d3,%d0 + mov3q.l #3,%d3 + move.b %d2,(%a0,%d0.l) mvz.w #6322,%d2 - move.l 12(%sp),-(%sp) + move.l -98(%fp),%a0 + move.b 269161679,%d0 + and.l %d3,%d0 + move.w %a1,%d3 muls.l %d2,%d0 - pea (%a1,%d0.l) - move.l %d1,16(%sp) - move.l %a0,12(%sp) - jsr vector_signed_track + add.l %d0,%a0 + add.l #269110990,%a0 + move.b %d3,(%a0) + tst.l -114(%fp) + jne .L1069 + jra .L1136 +.L1059: + cmp.l -114(%fp),%a1 + jeq .L1063 + move.l 16(%a1),%a0 + tst.l %a0 + jeq .L1061 + cmp.l #vector_midi_assign,%a0 + jeq .L1061 + clr.l -(%sp) + move.l %d1,-(%sp) + move.l %d1,-110(%fp) + jsr (%a0) addq.l #8,%sp - move.l 8(%sp),%d1 - tst.l %d0 - jeq .L710 - tst.l edit_view - jne .L710 - tst.b 1187502296.l - jne .L710 - tst.l 1175263034 - jne .L710 - tst.l 1175262868 - jne .L710 - tst.l st_layer - jne .L710 - move.l 4(%sp),24(%sp) - move.l %d1,20(%sp) - move.l (%sp)+,%d2 - lea (12,%sp),%sp - jra change_control - .size st_knob, .-st_knob + move.l -110(%fp),%d1 + jra .L1061 +.L1070: + mov3q.l #1,-(%sp) + move.l %d1,-(%sp) + jsr (%a0) + addq.l #8,%sp + jsr mg_note_setup_draw + jra .L1133 +.L1083: + clr.l -106(%fp) + jra .L1056 + .size mg_key, .-mg_key .align 2 - .globl st_setup_knob - .type st_setup_knob, @function -st_setup_knob: + .globl mg_knob + .type mg_knob, @function +mg_knob: + link.w %fp,#-64 + move.l #vector_midi,%d1 move.l %d2,-(%sp) - mov3q.l #5,%d0 - cmp.l 8(%sp),%d0 - jcc .L719 -.L721: - move.l (%sp)+,%d2 - clr.l %d0 + move.l 1074061804,%d0 + mov3q.l #5,%d2 + move.l %d1,-64(%fp) + cmp.l 8(%fp),%d2 + jcs .L1137 + lea mg_page_layer,%a1 + cmp.l mg_active.l,%a1 + jeq .L1152 +.L1137: + move.l -68(%fp),%d2 + unlk %fp rts -.L719: - move.l 1187521622,%d0 +.L1152: + tst.l -2147483630 + jeq .L1137 + move.l #1187521622,%a0 + move.l (%a0),%d1 + add.l #-1073741824,%d1 + cmp.l #133169151,%d1 + jhi .L1137 + move.l #269161676,%a1 + mov3q.l #7,%d2 + mvz.b (%a1),%d1 + cmp.l %d1,%d2 + jcs .L1137 + move.b (%a1),%d1 + move.l (%a0),%a0 + add.l #585088,%a0 + cmp.l #mg_page_site,%d0 + seq %d0 + mvz.b %d1,%d2 + move.b 269161679,%d1 + mvs.b %d0,%d0 + move.l %d2,%a1 + mov3q.l #3,%d2 + move.l %a1,-(%sp) + neg.l %d0 + and.l %d2,%d1 + mvz.w #6322,%d2 + muls.l %d2,%d1 + pea (%a0,%d1.l) + move.l %d0,-(%sp) + pea -64(%fp) + jsr mg_page_view + lea (16,%sp),%sp + tst.l %d0 + jeq .L1137 + move.l %d0,%a1 + move.l 24(%a1),%a0 + tst.l %a0 + jeq .L1137 + move.l mg_second,%d1 + move.l 1175262852,%d0 + cmp.l #vector_midi_knob,%a0 + jne .L1139 + move.l %d1,-(%sp) + move.l 12(%fp),-(%sp) + move.l 8(%fp),-(%sp) + move.l %d0,-(%sp) + jsr (%a0) + lea (16,%sp),%sp + mov3q.l #-1,-(%sp) + jsr 1074059592 + mov3q.l #1,1187497772 + addq.l #4,%sp +.L1153: + move.l -68(%fp),%d2 + unlk %fp + rts +.L1139: + move.l %d1,-(%sp) + move.l 12(%fp),-(%sp) + move.l 8(%fp),-(%sp) + move.l %d0,-(%sp) + jsr (%a0) + lea (16,%sp),%sp + mov3q.l #-1,-(%sp) + jsr 1074059592 + mov3q.l #1,1187497772 + addq.l #4,%sp + jra .L1153 + .size mg_knob, .-mg_knob + .align 2 + .globl mg_tick + .type mg_tick, @function +mg_tick: + link.w %fp,#-92 + move.l #1187521622,%a1 + movem.l #7180,(%sp) + move.l 1074061804,%a2 + move.l #vector_midi,%d0 + moveq #28,%d3 + move.l (%a1),%a3 + move.l %d0,-64(%fp) + cmp.l #mg_page_site,%a2 + seq %d0 + move.b -2147483645,%d1 + mvs.b %d0,%d0 + neg.l %d0 + move.w %d1,%a0 + move.l mg_seen,%d1 + move.l %a0,%d2 + lsl.l %d3,%d2 + eor.l %d2,%d0 + move.l %a3,%d2 + eor.l %d2,%d0 + cmp.l #mg_page_site,%a2 + jne .L1155 + eor.l #vector_midi,%d0 + cmp.l %d0,%d1 + jeq .L1156 + move.l %d0,mg_seen + move.l (%a1),%d0 + add.l #-1073741824,%d0 + cmp.l #133169151,%d0 + jhi .L1156 + move.l (%a1),%a4 + mov3q.l #3,%d3 + mvz.w #6322,%d2 + move.b 269161679,%d0 + add.l #585088,%a4 + move.w #1008,%a2 + move.l #1187474894,%a3 + move.l #-2147457418,%d1 + and.l %d3,%d0 + muls.l %d2,%d0 + add.l %d0,%a4 + lea (6179,%a4),%a0 + move.l %a0,-72(%fp) +.L1160: + move.l -72(%fp),%a0 + move.l %a0,%a1 + moveq #77,%d3 + move.b (%a0),%d0 + mvz.b -(%a1),%d2 + cmp.l %d2,%d3 + jne .L1157 + mvz.b %d0,%d0 + move.l -64(%fp),%a0 + cmp.l 8(%a0),%d0 + jeq .L1158 + move.b (%a1),%d0 +.L1157: + addq.l #2,-72(%fp) + addq.l #1,%d1 + lea (68,%a3),%a3 + lea (32,%a2),%a2 + cmp.l #-2147457410,%d1 + jne .L1160 +.L1156: + tst.l -2147483630 + jeq .L1161 + move.l #1187521622,%a0 + move.l (%a0),%d0 add.l #-1073741824,%d0 cmp.l #133169151,%d0 - jhi .L721 - tst.b -2147483627.l - jne .L721 - move.b 269161676,%d1 + jhi .L1161 + mvz.b 269161676,%d1 + move.l (%a0),%d0 + mov3q.l #7,%d2 + move.b 269161679,%d3 + move.w %d3,%a0 + cmp.l %d1,%d2 + jcs .L1165 + move.l %a0,%d3 + mov3q.l #3,%d2 + and.l %d2,%d3 + mvz.w #6322,%d2 + add.l #585088,%d0 + muls.l %d2,%d3 + move.l %d3,%a0 + lea (%a0,%d0.l),%a2 + tst.l 1074513600 + jne .L1166 + move.l %d1,-(%sp) + move.l %a2,-(%sp) + mov3q.l #1,-(%sp) + pea -64(%fp) + move.l %d1,-68(%fp) + clr.l mg_opened + jsr mg_page_view + lea (16,%sp),%sp + move.l -68(%fp),%d1 + cmp.l mg_shown.l,%d1 + jeq .L1251 + clr.l mg_second + move.l %d1,mg_shown + tst.l %d0 + jeq .L1174 +.L1180: + lea mg_page_layer,%a2 +.L1181: + move.l mg_active,%a3 + cmp.l %a2,%a3 + jne .L1252 + tst.l (%a3) + jeq .L1154 + tst.l mg_mine + jne .L1154 + cmp.l #mg_page_layer,%a3 + seq %d0 + move.l %a3,-(%sp) + move.l %d0,%d1 + neg.l %d1 + move.l %d1,%a4 + jsr 1073943660 + clr.l mg_active + move.l 1175262812,%a0 + addq.l #4,%sp + cmp.l #mg_list_layer,%a3 + jeq .L1182 +.L1183: + tst.l %a0 + jeq .L1203 + tst.l (%a0) + jne .L1203 + lea mg_keys,%a0 + move.l %a0,-72(%fp) + lea mg_saved,%a2 +.L1194: + move.l -72(%fp),%a0 + addq.l #1,-72(%fp) + mvz.b (%a0)+,%d0 + sub.l %a0,%a0 + mulu.w #24,%d0 + move.l %d0,%a1 + add.l #1187502302,%a1 +.L1193: + move.l (%a1,%a0.l),%d0 + cmp.l #mg_key,%d0 + jeq .L1192 + move.l %d0,(%a2,%a0.l) +.L1192: + addq.l #4,%a0 + moveq #12,%d0 + cmp.l %a0,%d0 + jne .L1193 + lea (12,%a2),%a2 + cmp.l #mg_saved+48,%a2 + jne .L1194 + clr.l (%a3) + move.l %a3,-(%sp) + jsr 1073943700 + cmp.l #mg_page_layer,%a3 + seq %d0 + move.l %a3,mg_active + addq.l #4,%sp + neg.l %d0 +.L1190: + move.w %a4,%d2 + mvz.b %d0,%d0 + mvz.b %d2,%d1 + cmp.l %d0,%d1 + jeq .L1154 + mov3q.l #-1,-(%sp) + jsr 1074059592 + mov3q.l #1,1187497772 + addq.l #4,%sp +.L1154: + movem.l -92(%fp),#7180 + unlk %fp + rts +.L1158: + tst.b (%a4,%a2.l) + jeq .L1157 move.l 1187521622,%a0 mov3q.l #3,%d2 move.b 269161679,%d0 + mvz.w #6322,%d3 add.l #585088,%a0 - mvz.b %d1,%d1 and.l %d2,%d0 - move.l %d1,-(%sp) - mvz.w #6322,%d1 - muls.l %d1,%d0 - pea (%a0,%d0.l) - jsr vector_signed_track - addq.l #8,%sp + muls.l %d3,%d0 + add.l %d0,%a0 + clr.b %d0 + move.b %d0,(%a0,%a2.l) + move.b 269161679,%d0 + and.l %d2,%d0 + clr.b %d2 + muls.l %d3,%d0 + move.l %d0,%a0 + add.l #269110990,%a0 + move.b %d2,(%a0,%a2.l) + move.l %d1,%a0 + move.b -8(%a0),%d0 + mvz.b -2147483646,%d2 + mvz.b %d0,%d0 + cmp.l %d0,%d2 + jeq .L1253 +.L1159: + move.l %d1,-68(%fp) + jsr mg_dirty + move.l -68(%fp),%d1 +.L1255: + addq.l #1,%d1 + addq.l #2,-72(%fp) + lea (68,%a3),%a3 + lea (32,%a2),%a2 + cmp.l #-2147457410,%d1 + jne .L1160 + jra .L1156 +.L1155: + cmp.l %d0,%d1 + jeq .L1161 + move.l %d0,mg_seen +.L1161: + tst.l mg_active + jeq .L1254 + mvz.b 269161676,%d1 + move.l 1187521622,%d0 + move.b 269161679,%d0 +.L1165: + clr.l mg_opened + cmp.l mg_shown.l,%d1 + jeq .L1173 + clr.l mg_second + move.l %d1,mg_shown +.L1174: + move.l mg_active,%d0 tst.l %d0 - jeq .L721 - tst.l edit_view - jne .L721 - move.l 12(%sp),-(%sp) - move.l 12(%sp),%a0 - pea 6(%a0) - jsr change_control - addq.l #8,%sp - move.l (%sp)+,%d2 - mov3q.l #1,%d0 + jeq .L1154 + tst.l mg_mine + jne .L1154 + cmp.l #mg_page_layer,%d0 + seq %d1 + move.l %d0,-(%sp) + move.l %d1,%d2 + neg.l %d2 + jsr 1073943660 + clr.l mg_active + move.l 1175262812,%a0 + move.l %d2,%a4 + addq.l #4,%sp +.L1203: + clr.b %d0 + jra .L1190 +.L1253: + move.b (%a0),%d0 + mvz.b -2147483645,%d2 + mvz.b %d0,%d0 + cmp.l %d0,%d2 + jne .L1159 + clr.b (%a3) + move.l %d1,-68(%fp) + jsr mg_dirty + move.l -68(%fp),%d1 + jra .L1255 +.L1182: + tst.l 1074513572 + jne .L1203 + lea mg_keys,%a0 + lea mg_list_layer,%a3 + move.l %a0,-72(%fp) + lea mg_saved,%a2 + jra .L1194 +.L1252: + tst.l mg_mine + jne .L1154 + tst.l %a3 + jne .L1185 + move.l 1175262812,%a0 + cmp.l #mg_list_layer,%a2 + jeq .L1186 + tst.l %a0 + jeq .L1154 + tst.l (%a0) + jne .L1154 + sub.l %a4,%a4 + move.l %a2,%a3 +.L1258: + lea mg_keys,%a0 + move.l %a0,-72(%fp) + lea mg_saved,%a2 + jra .L1194 +.L1254: + movem.l -92(%fp),#7180 + clr.l mg_opened + clr.l mg_second + unlk %fp rts - .size st_setup_knob, .-st_setup_knob +.L1166: + move.l mg_opened,%a3 + tst.l %a3 + jeq .L1256 +.L1169: + move.l %d1,-(%sp) + move.l %a2,-(%sp) + mov3q.l #1,-(%sp) + pea -64(%fp) + move.l %d1,-68(%fp) + jsr mg_page_view + lea (16,%sp),%sp + move.l -68(%fp),%d1 + cmp.l mg_shown.l,%d1 + jeq .L1257 + clr.l mg_second + move.l %d1,mg_shown +.L1178: + lea mg_list_layer,%a2 + jra .L1181 +.L1173: + clr.l mg_second + jra .L1174 +.L1257: + tst.l %d0 + jeq .L1176 + mov3q.l #2,%d3 + cmp.l 1175262852.l,%d3 + jeq .L1178 +.L1176: + clr.l mg_second + lea mg_list_layer,%a2 + jra .L1181 +.L1256: + move.l %d1,%a0 + moveq #77,%d2 + lea (3089,%a0),%a0 + lea (%a2,%a0.l*2),%a1 + mov3q.l #1,mg_opened + move.b 1(%a1),%d0 + mvz.b (%a1),%d3 + cmp.l %d3,%d2 + jne .L1171 + mvz.b %d0,%d0 + move.l -64(%fp),%a0 + cmp.l 8(%a0),%d0 + jeq .L1200 + move.b (%a1),%d0 +.L1171: + move.l %d1,-68(%fp) + move.l %a3,mg_cursor + jsr mg_note_setup_draw + move.l -68(%fp),%d1 + jra .L1169 +.L1186: + tst.l 1074513572 + jne .L1154 + sub.l %a4,%a4 + move.l %a2,%a3 + jra .L1258 +.L1251: + tst.l %d0 + jeq .L1173 + mov3q.l #2,%d0 + cmp.l 1175262852.l,%d0 + jeq .L1180 + clr.l mg_second + lea mg_page_layer,%a2 + jra .L1181 +.L1200: + mov3q.l #1,%a3 + move.l %d1,-68(%fp) + move.l %a3,mg_cursor + jsr mg_note_setup_draw + move.l -68(%fp),%d1 + jra .L1169 +.L1185: + cmp.l #mg_page_layer,%a3 + seq %d0 + move.l %a3,-(%sp) + move.l %d0,%d3 + neg.l %d3 + jsr 1073943660 + clr.l mg_active + move.l 1175262812,%a0 + move.l %d3,%a4 + addq.l #4,%sp + cmp.l #mg_list_layer,%a2 + jeq .L1182 + move.l %a2,%a3 + tst.l %a2 + jne .L1183 + clr.b %d0 + jra .L1190 + .size mg_tick, .-mg_tick .align 2 .globl st_ui_tick .type st_ui_tick, @function st_ui_tick: - lea (-44,%sp),%sp - movem.l #23564,(%sp) + lea (-64,%sp),%sp + movem.l #19580,(%sp) + jsr mg_tick tst.l pool_direct - jeq .L728 + jeq .L1260 tst.l 1175351520 - jne .L807 + jne .L1347 clr.l pool_direct -.L728: +.L1260: tst.l pool_pending - jne .L808 -.L730: - move.l -2147457608,%a2 - mov3q.l #1,%d0 - cmp.l %a2,%d0 - jeq .L796 -.L814: - lea any_vector,%a3 -.L732: - move.l %a2,last_transport + jne .L1348 +.L1262: move.l 1187521622,%d0 add.l #-1073741824,%d0 cmp.l #133169151,%d0 - jhi .L734 - move.w #62,%a4 - sub.l %a6,%a6 - lea vector_signed_track,%a2 -.L736: - move.l 1187521622,%a0 - mov3q.l #3,%d3 - move.b 269161679,%d0 - mvz.w #6322,%d1 - move.l %a6,-(%sp) - add.l #585088,%a0 - and.l %d3,%d0 - muls.l %d1,%d0 - pea (%a0,%d0.l) - jsr (%a2) - addq.l #8,%sp - tst.l %d0 - jeq .L735 - move.l 1187521622,%a0 - add.l #585088,%a0 - move.b 269161679,%d0 - mvz.w #6322,%d2 - and.l %d3,%d0 - mov3q.l #1,%d3 - muls.l %d2,%d0 - add.l %d0,%a0 - mvz.b (%a0,%a4.l),%d0 - cmp.l %d0,%d3 - jeq .L809 -.L735: - addq.l #1,%a6 - lea (30,%a4),%a4 - moveq #8,%d0 - cmp.l %a6,%d0 - jne .L736 -.L812: - mvz.b 269161676,%d1 - mov3q.l #7,%d2 - cmp.l %d1,%d2 - jcs .L761 - move.l 1187521622,%a0 - mov3q.l #3,%d3 - move.b 269161679,%d0 - mvz.w #6322,%d2 - add.l #585088,%a0 - and.l %d3,%d0 - muls.l %d2,%d0 - add.l %d0,%a0 - tst.b 34(%a0,%d1.l) - jne .L761 - move.l #1074606108,%d0 - move.l %d0,1074618188 -.L734: - jsr (%a3) - move.l 1187521622,%a2 + jls .L1264 + mov3q.l #1,%d1 + move.l -2147457608,%d0 + cmp.l %d0,%d1 + jeq .L1349 + move.l %d0,last_transport +.L1344: + move.l 1187521622,%d3 + clr.l %d2 mvz.b 269161679,%d1 - mvz.b 269161676,%d3 - move.l %d0,%a6 - move.l layer_gen,%a3 + move.l %d1,40(%sp) + mvz.b 269161676,%d4 +.L1272: + move.l layer_gen,%a2 move.l active,%d0 - move.l %d3,%a4 - cmp.l shown_bank.l,%a2 - jeq .L810 -.L738: - tst.l %a3 - jeq .L740 - tst.l %d0 - jeq .L799 - move.l #st_layer,%d0 - tst.l mine - jeq .L811 -.L727: - movem.l (%sp),#23564 - lea (44,%sp),%sp - rts -.L740: - tst.l %d0 - jeq .L799 - move.l #st_edit_layer,%d0 - tst.l mine - jne .L727 - jra .L811 -.L809: - move.l %a6,-(%sp) - lea (37,%sp),%a0 - mov3q.l #3,%d2 - move.l %d0,32(%sp) - jsr settings - mvz.w #6322,%d3 - move.l 1187521622,%a0 - add.l #585088,%a0 - move.b 269161679,%d1 - lea (435,%a4),%a1 - lea (30,%a4),%a4 - and.l %d2,%d1 - moveq #127,%d2 - muls.l %d3,%d1 - add.l %d1,%a0 - move.b (%a0,%a1.l),%d1 - and.l %d1,%d2 - move.l %d2,(%sp) - pea 37(%sp) - move.l %a6,-(%sp) - jsr save_settings - lea (12,%sp),%sp - move.b 269161679,%d3 - move.l 28(%sp),%d0 - move.l 1187521622,%a1 - add.l #610376,%a1 - move.b (%a1),%d1 - move.w %d3,%a0 - mov3q.l #3,%d3 - move.l %a0,%d2 - and.l %d3,%d2 - lsl.l %d2,%d0 - or.l %d0,%d1 - move.b %d1,(%a1) - move.b 269161566,%d1 - or.l %d1,%d0 - move.b %d0,269161566 - move.l 1187521622,%a0 - add.l #635698,%a0 - mov3q.l #1,(%a0) - mov3q.l #1,269452696 - jsr 1073905152 - addq.l #1,%a6 - moveq #8,%d0 - cmp.l %a6,%d0 - jne .L736 - jra .L812 -.L810: - cmp.l shown_part.l,%d1 - jne .L738 - cmp.l shown_track.l,%d3 - jne .L738 - tst.l %a3 - jeq .L743 + cmp.l shown_bank.l,%d3 + jeq .L1350 +.L1279: + tst.l %a2 + jeq .L1286 tst.l %d0 - jeq .L745 - lea st_layer,%a0 - tst.l %a6 - jeq .L748 - tst.l st_layer - jeq .L747 -.L748: - tst.l mine - jne .L727 - move.l %a0,-(%sp) - move.l %d1,28(%sp) - jsr 1073943660 - clr.l active - move.l %a2,shown_bank - move.l %a4,shown_track - move.l 28(%sp),%d1 - addq.l #4,%sp - move.l %d1,shown_part -.L745: + jne .L1304 + move.l 40(%sp),%d5 + clr.l edit_view + move.l %d3,shown_bank + move.l %d5,shown_part + move.l %d4,shown_track +.L1281: move.l 1175262812,%a0 - tst.l %a6 - jeq .L727 + tst.l %d2 + jeq .L1259 tst.l %a0 - jeq .L727 + jeq .L1259 tst.l (%a0) - jne .L727 + jne .L1259 move.l #st_key,%d1 move.l #1187503478,%a0 lea saved-1187503478,%a1 -.L754: +.L1293: move.l (%a0),%d0 - cmp.l #st_key,%d0 - jeq .L753 + cmp.l %d1,%d0 + jeq .L1292 move.l %d0,(%a1,%a0.l) -.L753: +.L1292: addq.l #4,%a0 cmp.l #1187503490,%a0 - jne .L754 + jne .L1293 move.l #1187503790,%a0 lea saved-1187503778,%a1 -.L756: +.L1295: move.l (%a0),%d0 cmp.l %d1,%d0 - jeq .L755 + jeq .L1294 move.l %d0,(%a1,%a0.l) -.L755: +.L1294: addq.l #4,%a0 cmp.l #1187503802,%a0 - jne .L756 + jne .L1295 jsr generator_view move.l %d0,layer_gen tst.l %d0 - jeq .L766 + jeq .L1306 lea st_layer,%a0 clr.l (%a0) move.l %a0,-(%sp) @@ -4237,73 +7111,264 @@ st_ui_tick: jsr 1074059592 mov3q.l #1,1187497772 addq.l #8,%sp -.L815: - movem.l (%sp),#23564 - lea (44,%sp),%sp +.L1259: + movem.l (%sp),#19580 + lea (64,%sp),%sp rts -.L808: +.L1264: + move.l 1187521622,%a2 + mov3q.l #3,%d5 + move.b 269161679,%d0 + mvz.w #6322,%d6 + add.l #585088,%a2 + sub.l %a6,%a6 + clr.l %d2 + lea vector_signed_track,%a3 + and.l %d5,%d0 + muls.l %d6,%d0 + add.l %d0,%a2 +.L1268: + move.l %a6,-(%sp) + move.l %a2,-(%sp) + jsr (%a3) + addq.l #8,%sp + tst.l %d0 + jeq .L1267 + mov3q.l #1,%d0 + move.l %a6,%d1 + lsl.l %d1,%d0 + or.l %d0,%d2 +.L1267: + addq.l #1,%a6 + moveq #8,%d5 + cmp.l %a6,%d5 + jne .L1268 + move.l -2147457608,%d0 + mov3q.l #1,%d5 + cmp.l %d0,%d5 + jeq .L1351 +.L1273: + move.l %d0,last_transport + move.l 1187521622,%d3 + move.b 269161679,%d5 + move.b %d5,47(%sp) + mvz.b %d5,%d6 + mvz.b 269161676,%d4 + move.l %d6,40(%sp) +.L1299: + move.w #497,%a6 + clr.l %d0 + lea (-435,%a2),%a3 +.L1277: + btst %d0,%d2 + jeq .L1276 + mvz.b (%a3,%a6.l),%d1 + mov3q.l #1,%d5 + cmp.l %d1,%d5 + jeq .L1352 +.L1276: + addq.l #1,%d0 + lea (30,%a6),%a6 + moveq #8,%d1 + cmp.l %d0,%d1 + jne .L1277 +.L1353: + mov3q.l #7,%d5 + cmp.l %d4,%d5 + jcs .L1300 + tst.b 34(%a2,%d4.l) + jne .L1300 + move.l #1074606108,%d0 +.L1278: + move.l %d0,1074618188 + tst.l %d2 + jeq .L1272 + tst.l -2147483630 + seq %d2 + move.l layer_gen,%a2 + move.l active,%d0 + mvs.b %d2,%d2 + neg.l %d2 + cmp.l shown_bank.l,%d3 + jne .L1279 + jra .L1350 +.L1352: + move.l %d0,-(%sp) + lea (57,%sp),%a0 + move.l %d0,36(%sp) + move.l %d1,40(%sp) + jsr settings + move.l 1187521622,%a0 + add.l #585088,%a0 + move.b 269161679,%d5 + move.w %d5,%a1 + mov3q.l #3,%d5 + move.l %a1,%d6 + and.l %d5,%d6 + mvz.w #6322,%d5 + muls.l %d5,%d6 + add.l %d6,%a0 + move.b (%a0,%a6.l),%d6 + move.w %d6,%a0 + moveq #127,%d6 + move.l %a0,%d5 + and.l %d6,%d5 + mov3q.l #3,%d6 + move.l %d5,(%sp) + pea 57(%sp) + move.l 40(%sp),%d0 + move.l %d0,-(%sp) + move.l %d0,44(%sp) + jsr save_settings + move.b 59(%sp),%d5 + move.l 1187521622,%a1 + add.l #610376,%a1 + and.l %d6,%d5 + move.l %d5,60(%sp) + move.b (%a1),%d5 + move.l 48(%sp),%d1 + move.l 60(%sp),%d6 + lea (12,%sp),%sp + lsl.l %d6,%d1 + move.w %d5,%a0 + move.l %a0,%d5 + or.l %d1,%d5 + move.b %d5,(%a1) + move.b 269161566,%d6 + move.w %d6,%a0 + move.l %a0,%d5 + or.l %d5,%d1 + move.b %d1,269161566 + move.l 1187521622,%a0 + add.l #635698,%a0 + mov3q.l #1,(%a0) + mov3q.l #1,269452696 + jsr 1073905152 + lea (30,%a6),%a6 + move.l 32(%sp),%d0 + moveq #8,%d1 + addq.l #1,%d0 + cmp.l %d0,%d1 + jne .L1277 + jra .L1353 +.L1348: jsr pool_context tst.l %d0 - jeq .L813 + jeq .L1354 tst.l 1175346736 - jne .L730 + jne .L1262 tst.l 1175351520 - jne .L730 + jne .L1262 jsr st_pool_choice_open - move.l -2147457608,%a2 - mov3q.l #1,%d0 - cmp.l %a2,%d0 - jne .L814 -.L796: - mov3q.l #1,%d1 - lea any_vector,%a3 - cmp.l last_transport.l,%d1 - jeq .L732 - jsr (%a3) + jra .L1262 +.L1350: + move.l 40(%sp),%d6 + cmp.l shown_part.l,%d6 + jne .L1279 + cmp.l shown_track.l,%d4 + jne .L1279 + tst.l %a2 + jeq .L1280 tst.l %d0 - jeq .L732 - sub.l %a4,%a4 + jeq .L1281 + lea st_layer,%a3 + tst.l %d2 + jeq .L1284 + tst.l st_layer + jeq .L1283 +.L1284: + tst.l mine + jne .L1259 + move.l %a3,-(%sp) + jsr 1073943660 + clr.l active + move.l %d3,shown_bank + move.l %d4,shown_track + lea (44,%sp),%a1 + addq.l #4,%sp + move.l (%a1),shown_part + jra .L1281 +.L1351: + cmp.l last_transport.l,%d5 + jeq .L1273 + tst.l %d2 + jeq .L1274 + sub.l %a3,%a3 lea generate_track,%a6 -.L733: - clr.l -(%sp) - moveq #8,%d2 - clr.l -(%sp) - move.l %a4,-(%sp) - jsr (%a6) - addq.l #1,%a4 - lea (12,%sp),%sp - cmp.l %a4,%d2 - jeq .L732 +.L1275: clr.l -(%sp) - moveq #8,%d2 + moveq #8,%d6 clr.l -(%sp) - move.l %a4,-(%sp) + move.l %a3,-(%sp) jsr (%a6) - addq.l #1,%a4 + addq.l #1,%a3 lea (12,%sp),%sp - cmp.l %a4,%d2 - jne .L733 - jra .L732 -.L761: + cmp.l %a3,%d6 + jne .L1275 + mov3q.l #1,last_transport + move.l 1187521622,%d3 + move.b 269161679,%d0 + move.w #497,%a6 + lea (-435,%a2),%a3 + move.b %d0,47(%sp) + mvz.b %d0,%d1 + clr.l %d0 + mvz.b 269161676,%d4 + move.l %d1,40(%sp) + jra .L1277 +.L1300: move.l #1074606510,%d0 - move.l %d0,1074618188 - jra .L734 -.L799: + jra .L1278 +.L1286: + tst.l %d0 + jeq .L1355 + move.l #st_edit_layer,%d0 + tst.l mine + jne .L1259 +.L1356: + move.l %d0,-(%sp) + jsr 1073943660 + clr.l active + clr.l edit_view + move.l %d3,shown_bank + lea (44,%sp),%a0 + addq.l #4,%sp + move.l %d4,shown_track + move.l (%a0),shown_part + jra .L1281 +.L1355: + move.l 40(%sp),%d1 clr.l edit_view - move.l %a2,shown_bank + move.l %d3,shown_bank move.l %d1,shown_part - move.l %a4,shown_track - jra .L745 -.L807: + move.l %d4,shown_track + jra .L1281 +.L1304: + move.l #st_layer,%d0 + tst.l mine + jne .L1259 + jra .L1356 +.L1349: + mov3q.l #1,%d6 + cmp.l last_transport.l,%d6 + jeq .L1344 + mov3q.l #1,last_transport + move.l 1187521622,%d3 + clr.l %d2 + mvz.b 269161679,%d1 + move.l %d1,40(%sp) + mvz.b 269161676,%d4 + jra .L1272 +.L1347: jsr pool_context tst.l %d0 - jne .L728 + jne .L1260 clr.l pool_direct - jra .L728 -.L813: + jra .L1260 +.L1354: clr.l pool_pending - jra .L730 -.L766: + jra .L1262 +.L1306: lea st_edit_layer,%a0 clr.l (%a0) move.l %a0,-(%sp) @@ -4313,74 +7378,89 @@ st_ui_tick: jsr 1074059592 mov3q.l #1,1187497772 addq.l #8,%sp - jra .L815 -.L811: - move.l %d0,-(%sp) - move.l %d1,28(%sp) - jsr 1073943660 - clr.l active - clr.l edit_view - move.l %a2,shown_bank - move.l 28(%sp),%d1 - addq.l #4,%sp - move.l %a4,shown_track - move.l %d1,shown_part - jra .L745 -.L743: + jra .L1259 +.L1280: tst.l %d0 - jeq .L745 - lea st_edit_layer,%a0 - tst.l %a6 - jeq .L748 + jeq .L1281 + lea st_edit_layer,%a3 + tst.l %d2 + jeq .L1284 tst.l st_edit_layer - jne .L748 -.L747: - move.l %d1,24(%sp) - move.l %a0,28(%sp) + jne .L1284 +.L1283: jsr generator_view - move.l 24(%sp),%d1 - move.l 28(%sp),%a0 - cmp.l %a3,%d0 - jne .L748 - move.l %a2,shown_bank - movem.l (%sp),#23564 - lea (44,%sp),%sp + cmp.l %d0,%a2 + jne .L1284 + movem.l (%sp),#19580 + lea (64,%sp),%sp rts +.L1274: + mov3q.l #1,last_transport + move.l 1187521622,%d3 + move.b 269161679,%d5 + move.b %d5,47(%sp) + mvz.b %d5,%d6 + mvz.b 269161676,%d4 + move.l %d6,40(%sp) + jra .L1299 .size st_ui_tick, .-st_ui_tick + .section .rodata + .align 2 + .type formats.1, @object + .size formats.1, 24 +formats.1: + .long midi_format_0 + .long midi_format_1 + .long midi_format_2 + .long midi_format_3 + .long midi_format_4 + .long midi_format_5 + .type titles.2, @object + .size titles.2, 39 +titles.2: + .string "VECTOR SRC" + .zero 2 + .string "VECTOR AMP 1" + .string "VECTOR AMP 2" + .type first.3, @object + .size first.3, 16 +first.3: + .base64 "CwsAAQAwAQwMAAAAAAAAAA==" + .pushsection .data + .balign 1 +locked.4: + .zero 64 + .popsection .section .rodata.str1.1 -.LC6: +.LC10: .string "C" -.LC7: +.LC11: .string "C#" -.LC8: +.LC12: .string "D" -.LC9: +.LC13: .string "D#" -.LC10: +.LC14: .string "E" -.LC11: +.LC15: .string "F" -.LC12: +.LC16: .string "F#" -.LC13: +.LC17: .string "G" -.LC14: +.LC18: .string "G#" -.LC15: +.LC19: .string "A" -.LC16: +.LC20: .string "A#" -.LC17: +.LC21: .string "B" .section .rodata .align 2 - .type roots.1, @object - .size roots.1, 48 -roots.1: - .long .LC6 - .long .LC7 - .long .LC8 - .long .LC9 + .type roots.6, @object + .size roots.6, 48 +roots.6: .long .LC10 .long .LC11 .long .LC12 @@ -4389,10 +7469,15 @@ roots.1: .long .LC15 .long .LC16 .long .LC17 + .long .LC18 + .long .LC19 + .long .LC20 + .long .LC21 + .set roots.0,roots.6 .align 2 - .type formats.2, @object - .size formats.2, 48 -formats.2: + .type formats.7, @object + .size formats.7, 48 +formats.7: .long format_0 .long format_1 .long format_2 @@ -4406,23 +7491,176 @@ formats.2: .long format_10 .long format_11 .align 2 - .type handlers.3, @object - .size handlers.3, 8 -handlers.3: + .type handlers.8, @object + .size handlers.8, 8 +handlers.8: .long pool_static .long pool_flex + .type mg_keys, @object + .size mg_keys, 4 +mg_keys: + .ascii "3 12" + .pushsection .data + .balign 2 +mg_opened: + .zero 4 + .popsection + .pushsection .data + .balign 2 +mg_top: + .zero 4 + .popsection + .pushsection .data + .balign 2 +mg_cursor: + .zero 4 + .popsection + .pushsection .data + .balign 2 +mg_shown: + .zero 4 + .popsection + .pushsection .data + .balign 2 +mg_second: + .zero 4 + .popsection + .pushsection .data + .balign 2 +mg_mine: + .zero 4 + .popsection + .pushsection .data + .balign 2 +mg_saved: + .zero 48 + .popsection + .pushsection .data + .balign 2 +mg_active: + .zero 4 + .popsection + .pushsection .data + .balign 2 +mg_seen: + .zero 4 + .popsection + .type mg_arp_setup_slots, @object + .size mg_arp_setup_slots, 6 +mg_arp_setup_slots: + .base64 "AAAHAAAA" + .type mg_arp_page, @object + .size mg_arp_page, 6 +mg_arp_page: + .string "@" + .base64 "AAUABg==" + .globl vector_midi + .align 2 + .type vector_midi, @object + .size vector_midi, 36 +vector_midi: + .long 2 + .long .LC9 + .long 86 + .long 1 + .long vector_midi_assign + .long vector_midi_page + .long vector_midi_knob + .long vector_midi_yes + .long 0 + .pushsection .data + .balign 2 +midi_view: + .zero 4 + .popsection + .data + .align 2 + .type midi_page_built, @object + .size midi_page_built, 4 +midi_page_built: + .zero 4 + .section .rodata + .type midi_layout, @object + .size midi_layout, 18 +midi_layout: + .base64 "AAECAwwG" + .base64 "DQUEBwgK" + .base64 "CQsODxAQ" + .type midi_byte, @object + .size midi_byte, 16 +midi_byte: + .base64 "AAECAwQFBgcICQoLAAANDg==" + .type midi_max, @object + .size midi_max, 16 +midi_max: + .base64 "DxALBH5/fwwYP0ABCX8VFw==" .section .rodata.str1.1 -.LC18: +.LC22: + .string "TYPE" +.LC23: + .string "DENS" +.LC24: + .string "ROOT" +.LC25: + .string "SCAL" +.LC26: + .string "GATE" +.LC27: + .string "ACNT" +.LC28: + .string "SEED" +.LC29: + .string "SPAN" +.LC30: + .string "OFST" +.LC31: + .string "ROT" +.LC32: + .string "RPT" +.LC33: + .string "DIR" +.LC34: + .string "OCT" +.LC35: + .string "VEL" +.LC36: + .string "PROB" +.LC37: + .string "HUMN" + .section .rodata + .align 2 + .type midi_names, @object + .size midi_names, 68 +midi_names: + .long .LC22 + .long .LC23 + .long .LC24 + .long .LC25 + .long .LC26 + .long .LC27 + .long .LC28 + .long .LC29 + .long .LC30 + .long .LC31 + .long .LC32 + .long .LC33 + .long .LC34 + .long .LC35 + .long .LC36 + .long .LC37 + .long .LC3 + .section .rodata.str1.1 +.LC38: .string "001 STATIC" -.LC19: +.LC39: .string "002 FLEX" .section .rodata .align 2 .type pool_labels, @object .size pool_labels, 8 pool_labels: - .long .LC18 - .long .LC19 + .long .LC38 + .long .LC39 .data .align 2 .type pool_browse, @object @@ -4533,62 +7771,39 @@ scales: .word 1193 .globl vector_scale_names .section .rodata.str1.1 -.LC20: +.LC40: .string "CHR" -.LC21: +.LC41: .string "MIN" -.LC22: +.LC42: .string "MAJ" -.LC23: +.LC43: .string "DOR" -.LC24: +.LC44: .string "PENT" .section .rodata .align 2 .type vector_scale_names, @object .size vector_scale_names, 20 vector_scale_names: - .long .LC20 - .long .LC21 - .long .LC22 - .long .LC23 - .long .LC24 + .long .LC40 + .long .LC41 + .long .LC42 + .long .LC43 + .long .LC44 .globl vector_control_max .type vector_control_max, @object .size vector_control_max, 12 vector_control_max: .base64 "DxALBH5/fwwYP0AB" .globl vector_control_names - .section .rodata.str1.1 -.LC25: - .string "TYPE" -.LC26: - .string "DENS" -.LC27: - .string "ROOT" -.LC28: - .string "SCAL" -.LC29: - .string "GATE" -.LC30: - .string "ACNT" -.LC31: - .string "SEED" -.LC32: - .string "SPAN" -.LC33: - .string "OFST" -.LC34: - .string "ROT" -.LC35: - .string "RPT" -.LC36: - .string "DIR" - .section .rodata .align 2 .type vector_control_names, @object .size vector_control_names, 48 vector_control_names: + .long .LC22 + .long .LC23 + .long .LC24 .long .LC25 .long .LC26 .long .LC27 @@ -4598,9 +7813,6 @@ vector_control_names: .long .LC31 .long .LC32 .long .LC33 - .long .LC34 - .long .LC35 - .long .LC36 .globl vector_defaults .type vector_defaults, @object .size vector_defaults, 11 @@ -4899,6 +8111,99 @@ st_stock_validate: movem.l %d2-%d7/%a2-%fp,(%sp) jmp 0x40002320 +| SPDX-License-Identifier: MIT +| The sites of the MIDI generator registry (midi_generators.c, events.json ot_midi_generators): the base's, and a +| card build's generator module patches the same ones. Each replays its own instructions, never stock's bytes. + .text + .balign 2 + .global mg_tap_site, mg_page_site, mg_setup_site +| Double-tap TRACK (0x40083afc, 10 bytes): d2 is the tapped track, the current one. Stock asks for MIDI mode +| (0x40033970) and does nothing in it (0x40083b7e). +mg_tap_site: + jsr 0x40033970 + tst.l %d0 + beq.s 1f + lea -16(%sp),%sp + movem.l %d0-%d1/%a0-%a1,(%sp) + move.l %d2,-(%sp) + jsr mg_track_tap + addq.l #4,%sp + movem.l (%sp),%d0-%d1/%a0-%a1 + lea 16(%sp),%sp + jmp 0x40083b7e +1: jmp 0x40083b06 +| The main page drawer's MIDI arm (0x4004e1ea, 10 bytes): 0x40031ee0(-1, its page argument) is the descriptor; a +| generator's page replaces it. Stock pops the two arguments at 0x4004e1f4. +mg_page_site: + move.l 8(%fp),-(%sp) + pea -1.w + jsr 0x40031ee0 + lea -12(%sp),%sp + movem.l %d1/%a0-%a1,(%sp) + move.l %d0,-(%sp) + jsr mg_page + addq.l #4,%sp + movem.l (%sp),%d1/%a0-%a1 + lea 12(%sp),%sp + jmp 0x4004e1f4 +| The setup opener 0x40032228(page) in MIDI mode, page 2 (0x40032280, 8 bytes): ARP SETUP's open routine from its +| window record, then 0x400322ec calls it. The opener has no frame here, so rts returns to its caller. +mg_setup_site: + lea -16(%sp),%sp + movem.l %d0-%d1/%a0-%a1,(%sp) + jsr mg_arp_setup + tst.l %d0 + movem.l (%sp),%d0-%d1/%a0-%a1 | movem and lea keep the condition codes + lea 16(%sp),%sp + bne.s 1f + move.l 0x400cfeda,%a1 + jmp 0x400322ec +1: rts +| MIDI NOTE SETUP's drawer 0x40036548 (8 bytes): its displaced prologue, filled from the user's own OS (the base's +| modwerk_stock_ placeholders; a card build's StockCopy of the same span), then the rest of it. + .global mg_stock_note_draw +mg_stock_note_draw: + .globl modwerk_stock_40036548_8 +modwerk_stock_40036548_8: + .space 8 + jmp 0x40036550 + +| Input layers (stock's list at 0x460d165c: a pushed layer links last). Keys: code, then the press, release and +| repeat handlers; encoders A-F: the turn handler. + .data + .balign 4 + .global mg_list_layer, mg_page_layer +mg_list_layer: + .long 0,mg_list_keys,0,0,0,-1,-1 +mg_page_layer: + .long 0,mg_page_keys,mg_page_encs,0,0,-1,-1 +mg_list_keys: + .irp k,0x33,0x20,0x31 + .byte \k,0 + .long mg_key,mg_key,mg_key,0,0 + .word 0,0 + .endr + .byte 0xff,0 + .long 0,0,0,0,0 + .word 0,0 +mg_page_keys: + .irp k,0x31,0x32 + .byte \k,0 + .long mg_key,mg_key,mg_key,0,0 + .word 0,0 + .endr + .byte 0xff,0 + .long 0,0,0,0,0 + .word 0,0 +mg_page_encs: + .irp k,0,1,2,3,4,5 + .byte \k,0 + .long mg_knob,0,0,0,0 + .endr + .byte 0xff,0 + .long 0,0,0,0,0 + .text + .text .balign 2 st_name_replay: diff --git a/sdk/octabam/modules/vector/engine.c b/sdk/octabam/modules/vector/engine.c index a448e4fd9..5c43aadd5 100644 --- a/sdk/octabam/modules/vector/engine.c +++ b/sdk/octabam/modules/vector/engine.c @@ -31,18 +31,21 @@ void vector_unpack(VectorParams *p, uint32_t *seed, const uint8_t in[9]) { static int in_window(int pitch, unsigned span, int center) { return pitch>=center-(int)span && pitch<=center+(int)span; } -static int semitone(unsigned degree, unsigned root, unsigned scale, unsigned span, int center) { - unsigned allowed[25], n = 0; - int closest=0, distance=100; +/* The scale's pitches in the window, once a phrase (they depend on no step): `allowed` holds them, the result is + * their count; with none, *closest is the scale note nearest the window's centre. */ +static unsigned window_pitches(unsigned allowed[25], int *closest, unsigned root, unsigned scale, unsigned span, int center) { + unsigned n = 0; + int distance=100; + *closest=0; for (int pitch = -12; pitch <= 12; ++pitch) { unsigned pc = (unsigned)(pitch + 24 - (int)root) % 12; if ((scales[scale] >> pc) & 1u) { if(in_window(pitch,span,center)) allowed[n++] = (unsigned)(pitch + 12); int d=pitch-center; if(d<0) d=-d; - if(d ranks[i]) { order[j] = order[j - 1]; --j; } order[j] = i; } + unsigned allowed[25]; int closest; + const unsigned pitches = window_pitches(allowed, &closest, root, scale, span, center); unsigned count = (period * density + 8u) / 16u; for (unsigned i = 0; i < count; ++i) motif[order[i]].active = 1; for (unsigned i = 0; i < period; ++i) { VectorStep *s = &motif[i]; if (!s->active) continue; uint32_t r = mix(seed ^ (0x85ebca6bu * (i + 1u)) ^ 0xb5297a4du); - int pitch = semitone(r >> 8, root, scale, span, center); + int pitch = pitches ? (int)allowed[(r >> 8) % pitches] - 12 : closest; /* High TYPE prefers tonic and fifth; constrain the fifth to the scale * too (chromatic/root transposition must never break scale membership). */ if ((r & 15u) < type) { diff --git a/sdk/octabam/modules/vector/manifest.py b/sdk/octabam/modules/vector/manifest.py index 405445b09..7ae075242 100644 --- a/sdk/octabam/modules/vector/manifest.py +++ b/sdk/octabam/modules/vector/manifest.py @@ -12,6 +12,7 @@ StockCopy("st_main_replay", stock_guard(0x4007981c, 6, "89c50ac3ca041fdf5647ec5ee2c3580f9a67dd79f0b5cc15ceadda4b9e9bede0")), StockCopy("st_edit_replay", stock_guard(0x4003a52e, 8, "cae34bf50383462ed4f92d8044e3021247edb8bf69c17a9c7ead62f6edf79510")), StockCopy("st_draw_replay", stock_guard(0x4003cd98, 8, "ed71ef874312890edc87cef7e19cd8c0f8ac4ac9b90182c2364f78d3a4567f45")), + StockCopy("mg_stock_note_draw", stock_guard(0x40036548, 8, "e7935464f6aea76650f55814efc9b45785485164937f3bd5ed6f2a4d384b8d4b")), )),), symbol_refs=( SymbolRef(0x400ce128, 0, "vector", "st_pool_choice_right", note="RIGHT browses the highlighted backing pool without committing it"), @@ -40,6 +41,11 @@ Detour(0x4005a850, stock_guard(0x4005a850, 6, '7a7350a69423ec41ec468a189ba167059626cb7f499d9862394d2388a23c8b59'), 'vector', 'st_src_commit2', 'VECTOR native selection/editor access'), Detour(0x4003a52e, stock_guard(0x4003a52e, 8, 'cae34bf50383462ed4f92d8044e3021247edb8bf69c17a9c7ead62f6edf79510'), 'vector', 'st_setup_edit6', 'VECTOR native selection/editor access', pad_to=8), Detour(0x4003cd98, stock_guard(0x4003cd98, 8, 'ed71ef874312890edc87cef7e19cd8c0f8ac4ac9b90182c2364f78d3a4567f45'), 'vector', 'st_setup_draw6', 'VECTOR native selection/editor access', pad_to=8), + # The MIDI generator sites (the base's ot_midi_generators sites; on a card VECTOR is the one generator). + Detour(0x40083afc, stock_guard(0x40083afc, 10, 'd611d680ad5031e96fe61f954ea40fd87a76bbc961c6d2deefdfc55935dd9f1e'), 'vector', 'mg_tap_site', 'Double-tap TRACK in MIDI mode opens MIDI NOTE SETUP, with the generator list', pad_to=10), + Detour(0x4004e1ea, stock_guard(0x4004e1ea, 10, 'b40743bf9a64ff977ac996a4a3c34f6582d8fcda08b78cf52fdf634c94c54959'), 'vector', 'mg_page_site', 'VECTOR controls on a VECTOR MIDI track\'s ARP page', pad_to=10), + Detour(0x40032280, stock_guard(0x40032280, 8, 'de77e904028311689866c543af3ce42a7fcfa1e3fdc531807fc98eaf0689d1cf'), 'vector', 'mg_setup_site', 'FUNC+AMP turns a VECTOR MIDI track\'s ARP page to its second page', pad_to=8), + Detour(0x40036548, stock_guard(0x40036548, 8, 'e7935464f6aea76650f55814efc9b45785485164937f3bd5ed6f2a4d384b8d4b'), 'vector', 'mg_note_setup_draw', 'MIDI NOTE SETUP lists the MIDI generators in its left half', pad_to=8), ), pokes=( Poke(0x40079248, stock_guard(0x40079248, 4, '8fbd3190028fe564c11b56e3e73e8eaf36925cbabf94164176eeb4c4f57bc6ac'), H('48780006'), 'VECTOR is machine chooser row six'), diff --git a/sdk/octabam/modules/vector/media/core-tests.json b/sdk/octabam/modules/vector/media/core-tests.json index af935cd8a..2bce22c13 100644 --- a/sdk/octabam/modules/vector/media/core-tests.json +++ b/sdk/octabam/modules/vector/media/core-tests.json @@ -1,9 +1,9 @@ { "schemaVersion": 1, - "moduleVersion": "0.2.4-experimental", - "testedOn": "2026-10-06", + "moduleVersion": "0.3.0-experimental", + "testedOn": "2026-11-08", "compiler": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", - "toolchainImage": "sha256:244853509446c2f2bb0b9032b6160b1dbffc911ab5a66a9139eadfbd0930f457", + "toolchainImage": "sha256:283235500ccd14b48d0a0fdbf4ac8556a37c63332bda02f9c838736d098617f2", "isolation": "Network-disabled read-only Docker root, all capabilities dropped, private executable tmpfs. Firmware-free C core only.", "command": "cc -std=c11 -Wall -Wextra -Werror -fsanitize=address,undefined engine.c test_engine.c -o /tmp/riff-tests && /tmp/riff-tests", "cases": 244800, @@ -28,7 +28,7 @@ "seed wrap at 127" ], "sources": { - "engine.c": "508448ef3897450877b2aa66de0f9305d6d8e950747774289aeeb7f09793a302", + "engine.c": "18c57b2f40371b8e36e4bbac6d181ad5cc0a33c2961758da11166c6123e5623a", "engine.h": "7191686c8fc62869a37aa27717c1d92460eea3c77debf154a482df1b913469b2", "test_engine.c": "e05151ec4e184c4f2a6ae133296a2a37f6917a45585dcf114eddf6025d269a3d", "persistence.c": "e2233df8fcef4eee4eabaced214e76e5b88f5844e03962a5900266a8fdc9ecfc", @@ -37,7 +37,7 @@ "verify_native.py": "e329133cf080bdd47a4ab7a5e4658e1455a2629c88ed731555e430e6f16b0ec0" }, "limitations": "Synthetic host buffers; not hardware or native timing, audio or persistence qualification.", - "sourceSha256": "1255e99133cbd8d6d2587c95f93462ea80fccbd169462a2acb02aedbd346cbd3", + "sourceSha256": "5c6004d8adedf47888c70cb38ad9f0a2fb2cf6c61f6ac164f507cc77ef142015", "partValidation": { "instanceMasks": 256, "sanitizers": "ASan/UBSan", diff --git a/sdk/octabam/modules/vector/midi.c b/sdk/octabam/modules/vector/midi.c new file mode 100644 index 000000000..7004837fa --- /dev/null +++ b/sdk/octabam/modules/vector/midi.c @@ -0,0 +1,253 @@ +/* VECTOR on MIDI tracks: a MIDI generator (sdk/machines/octatrack/events.json ot_midi_generators). The same original + * phrase engine writes the track's note trigs and NOTE, VEL and LEN locks; the stock MIDI sequencer plays them, so + * tempo, track speed, swing, conditions and note-offs stay stock's. Its controls take the SRC page (stock's NOTE page) + * and the AMP page (stock's ARP page; FUNC+AMP its second): layout A, the owner's choice of 24 October 2026. OCT, VEL + * and GATE are the track's own NOTE, VEL and LEN, so a trig placed by hand plays the root at the phrase's velocity and + * length; the others are kept in the track's arpeggiator note bytes, which the base gives a generator's track (Part + * 0x1832 + 16 t, value - 64: the -64..63 stock's validator keeps). Included after native.c (its Part, dirty and redraw + * helpers). MIDI track records: octabam docs/firmware/STEP_LOCKS.md, and on the owner's MKII (21 October 2026): trig + * mask 0 at +0, length +0x28, locks +0x30 + 32 step (NOTE 0, VEL 1, LEN 2); the trig word as the audio record's + * (PARAM_PAGES.md 5g: micro-timing in bits 12-7, condition in 6-0, labels 0x400b2588). */ +#include "modwerk_events.h" +#define MIDI_TRACKS 0x48d0u +#define MIDI_TRACK_BYTES 0x8b0u +#define MIDI_LOCKS 0x30u +#define MIDI_TIMING 0x830u /* the trig word, high byte first, two bytes a step */ +#define MIDI_PAGE1(t) (0x3e2u + 32u * (t)) /* the NOTE page's values: NOTE, VEL, LEN, NOT2-4 */ +#define MIDI_NOTES(t) (0x1832u + 16u * (t)) +#define MIDI_MARK 12u /* a thirteenth byte: 'V' once VECTOR wrote its controls there */ +#define MIDI_NOTE_FORMAT (0x400d3e3eu + 0xcau) /* the NOTE page descriptor's formatters: NOTE's, then VEL's, LEN's */ + +/* Controls 0-11 are the audio machine's (engine.c's order); GATE is the track's LEN, so arp byte 4 stays unused. */ +enum { C_ROOT = 2, C_GATE = 4, C_SEED = 6, C_OCT = 12, C_VEL, C_PROB, C_HUMN, C_NONE }; +static const char *const midi_names[17] = {"TYPE", "DENS", "ROOT", "SCAL", "GATE", "ACNT", "SEED", "SPAN", "OFST", "ROT", + "RPT", "DIR", "OCT", "VEL", "PROB", "HUMN", ""}; +static const uint8_t midi_max[16] = {15, 16, 11, 4, 126, 127, 127, 12, 24, 63, 64, 1, 9, 127, 21, 23}; +static const uint8_t midi_byte[16] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, 13, 14}; /* PROB, HUMN past the mark */ +/* SRC; AMP; FUNC+AMP. */ +static const uint8_t midi_layout[3][6] = { + {0, 1, C_ROOT, 3, C_OCT, C_SEED}, + {C_VEL, 5, C_GATE, 7, 8, 10}, + {9, 11, C_PROB, C_HUMN, C_NONE, C_NONE}, +}; + +static unsigned midi_value(unsigned t, unsigned k) { return (uint8_t)((int8_t)current_part()[MIDI_NOTES(t) + k] + 64); } +/* A byte of the current Part and its battery-backed copy. */ +static void midi_part(unsigned at, uint8_t v) +{ + current_part()[at] = v; + U8(SRAM_PART + (U8(PART_IDX) & 3u) * PART_STRIDE + at) = v; +} +static void midi_put(unsigned t, unsigned k, unsigned v) { midi_part(MIDI_NOTES(t) + k, (uint8_t)(v - 64u)); } +/* A NOTE page value, and its live copy while the track plays this bank and Part (as the base's arp reset). */ +static void midi_page1(unsigned t, unsigned k, unsigned v) +{ + midi_part(MIDI_PAGE1(t) + k, (uint8_t)v); + if (U8(0x8000666eu + t) == U8(0x80000002u) && U8(0x80006676u + t) == U8(0x80000003u)) + U8(0x46c76dc0u + 0x44u * t + k) = (uint8_t)v; +} +static unsigned midi_control(unsigned t, unsigned c) +{ + const volatile uint8_t *page1 = current_part() + MIDI_PAGE1(t); + unsigned v; + if (c >= C_NONE) return 0; + if (c == C_OCT) v = page1[0] / 12u; + else if (c == C_VEL) v = page1[1]; + else if (c == C_GATE) v = page1[2]; + else if (midi_value(t, MIDI_MARK) != 'V') { + static const uint8_t first[16] = {11, 11, 0, 1, 0, 48, 1, 12, 12, 0, 0, 0, 0, 0, 0, 0}; + return c == C_SEED ? t + 1u : first[c]; + } else v = midi_value(t, midi_byte[c]); + return v > midi_max[c] ? midi_max[c] : v; +} +/* OCT and ROOT both set NOTE: the root in that octave. The first control kept writes every default and the mark. */ +static void midi_set_control(unsigned t, unsigned c, unsigned v) +{ + if (c == C_OCT || c == C_ROOT) + midi_page1(t, 0, 12u * (c == C_OCT ? v : midi_control(t, C_OCT)) + (c == C_ROOT ? v : midi_control(t, C_ROOT))); + if (c == C_VEL) { midi_page1(t, 1, v); return; } + if (c == C_GATE) { midi_page1(t, 2, v); return; } + if (c == C_OCT) return; + if (midi_value(t, MIDI_MARK) != 'V') { + for (unsigned k = 0; k < C_NONE; ++k) + if (k != C_GATE && k != C_OCT && k != C_VEL) midi_put(t, midi_byte[k], midi_control(t, k)); + midi_put(t, MIDI_MARK, 'V'); + } + midi_put(t, midi_byte[c], v); +} +static void midi_params(unsigned t, VectorParams *p, uint32_t *seed) +{ + uint8_t *bytes = (uint8_t *)p; + for (unsigned c = 0; c < 12; ++c) if (c != C_SEED) bytes[c < C_SEED ? c : c - 1] = (uint8_t)midi_control(t, c); + *seed = midi_control(t, C_SEED); +} + +static unsigned midi_bit(const uint8_t *r, unsigned mask, unsigned step) { return (r[mask * 8u + 7u - step / 8u] >> (step % 8u)) & 1u; } +static void midi_setbit(uint8_t *r, unsigned mask, unsigned step, unsigned on) +{ + uint8_t *byte = r + mask * 8u + 7u - step / 8u, b = (uint8_t)(1u << (step % 8u)); + *byte = on ? (uint8_t)(*byte | b) : (uint8_t)(*byte & (uint8_t)~b); +} +/* No trigs, trigless trigs or locks: a phrase may be written without replacing anything. Swing (mask 3) is a default. */ +static int midi_empty(const volatile uint8_t *r) +{ + for (unsigned i = 0; i < 24; ++i) if (r[i]) return 0; + for (unsigned i = 32; i < 40; ++i) if (r[i]) return 0; + for (unsigned i = 0; i < VECTOR_STEPS * 32u; ++i) if (r[MIDI_LOCKS + i] != VECTOR_NO_LOCK) return 0; + return 1; +} +/* A byte of the track record and its battery-backed copy, stored only when it changes. */ +static void midi_set(volatile uint8_t *r, volatile uint8_t *mirror, unsigned at, uint8_t v) +{ + if (r[at] != v) { r[at] = v; mirror[at] = v; } +} +/* A note's trig word from PROB and HUMN: off the beat (a step not a multiple of 4) it gets the condition PROB names, + * 99% (1) down to 1% (21) of stock's list; HUMN moves every note by up to that many micro-timing units either way. + * From the seed and the step, so turning another control keeps them where they were. */ +static unsigned midi_word(unsigned step, uint32_t seed, unsigned prob, unsigned humn) +{ + uint32_t h = (seed + 1u) * 0x9e3779b9u ^ (step + 1u) * 0x85ebca6bu; + h ^= h >> 15; h *= 0x2c1b3c6du; h ^= h >> 12; + int micro = humn ? (int)(h % (2u * humn + 1u)) - (int)humn : 0; + unsigned condition = prob && step % 4u ? 30u - prob : 0u; + return ((unsigned)micro & 0x3fu) << 7 | condition; +} +/* In place, as stock's own editors store: module code and data run uncached, so a whole-record copy in and out cost + * about 0.8 ms of a 1.3 ms knob turn on the owner's MKII (21 October 2026); this touches the five masks, three locks + * a step and the trig words of the steps that change. NOTE locks from the phrase's semitones over `octave`, VEL from + * its volumes, LEN from its holds. Other locks and swing stay; old and new notes lose stale trigless marks, and their + * trig words are rewritten (none on a removed note). `locked` gets whether each step keeps any lock (the lock index). */ +static void midi_write(volatile uint8_t *r, volatile uint8_t *mirror, const VectorPhrase *phrase, unsigned octave, + uint32_t seed, unsigned prob, unsigned humn, uint8_t locked[VECTOR_STEPS]) +{ + uint8_t masks[40]; + for (unsigned k = 0; k < 40; ++k) masks[k] = r[k]; + for (unsigned i = 0; i < VECTOR_STEPS; ++i) { + const VectorStep *s = &phrase->steps[i]; + unsigned at = MIDI_LOCKS + 32u * i, old = midi_bit(masks, 0, i); + int note = (int)octave + ((int)s->pitch - 64) / 5; + midi_set(r, mirror, at, s->active ? (uint8_t)(note < 0 ? 0 : note > 127 ? 127 : note) : VECTOR_NO_LOCK); + midi_set(r, mirror, at + 1u, s->active ? s->volume : VECTOR_NO_LOCK); + midi_set(r, mirror, at + 2u, s->active ? s->hold : VECTOR_NO_LOCK); + midi_setbit(masks, 0, i, s->active); + if (old || s->active) { + unsigned word = s->active ? midi_word(i, seed, prob, humn) : 0u; + midi_set(r, mirror, MIDI_TIMING + 2u * i, (uint8_t)(word >> 8)); + midi_set(r, mirror, MIDI_TIMING + 2u * i + 1u, (uint8_t)word); + midi_setbit(masks, 1, i, 0); midi_setbit(masks, 4, i, 0); + } + unsigned any = s->active; + for (unsigned k = 3; !any && k < 32; ++k) any = r[at + k] != VECTOR_NO_LOCK; + locked[i] = (uint8_t)any; + midi_setbit(masks, 2, i, !s->active && any); + } + for (unsigned k = 0; k < 40; ++k) midi_set(r, mirror, k, masks[k]); +} +/* On the UI task, into the current pattern's record and its battery-backed copy, then published through stock's + * track update (MIDI tracks are 8-15 there). Stock's lock index (0x400339d8) rescans every track of the pattern, 16 x + * 64 x 32 bytes, about 3 ms on the unit; only this track's bit changes, so it is set here: bit t of each step's byte + * at 0x46c7d2e4 (the MIDI tracks'), as that routine sets it. A fresh seed is kept only once its phrase is written. */ +static int midi_generate(unsigned t, int replace, int fresh) +{ + unsigned p = U8(PATTERN_IDX); + if (!valid_bank() || t >= 8 || p >= 16) return 0; + uint32_t bank = U32(BANK_PTR), part = U8(PART_IDX), off = p * PATTERN_STRIDE + MIDI_TRACKS + t * MIDI_TRACK_BYTES; + volatile uint8_t *r = (volatile uint8_t *)(uintptr_t)(bank + off), *mirror = (volatile uint8_t *)(uintptr_t)(SRAM_PATTERNS + off); + if (!replace && !midi_empty(r)) return 0; + const volatile uint8_t *pat = (const volatile uint8_t *)(uintptr_t)(bank + p * PATTERN_STRIDE); + unsigned length = pat[0x8e55u] ? r[0x28u] : pat[0x8e53u]; + VectorParams params; uint32_t seed; + midi_params(t, ¶ms, &seed); + if (fresh) seed = vector_next_seed(seed); + const volatile uint8_t *page1 = current_part() + MIDI_PAGE1(t); + if (!length || length > 64 || page1[1] > 127 || !vector_generate(&phrase, ¶ms, length, page1[1], seed)) return 0; + static uint8_t locked[VECTOR_STEPS]; + midi_write(r, mirror, &phrase, page1[0] - page1[0] % 12u, seed, midi_control(t, C_PROB), midi_control(t, C_HUMN), locked); + if (fresh) midi_set_control(t, C_SEED, seed); + dirty_part(part & 3u); + for (unsigned i = 0; i < VECTOR_STEPS; ++i) + U8(0x46c7d2e4u + i) = (uint8_t)((U8(0x46c7d2e4u + i) & ~(1u << t)) | locked[i] << t); + ((void (*)(unsigned))0x4009da20u)(t + 8u); + return 1; +} + +/* The pages: stock's NOTE or ARP descriptor with VECTOR's names and formatters in value-text cells, built in the audio + * page's buffer (never shown together); audio's generator_page rebuilds it once src_page_ready is clear. */ +static uint32_t midi_page_built = 0; +static unsigned midi_view; +static void midi_format(char *out, unsigned c) +{ + typedef void (*Format)(char *, int); + unsigned t = U8(TRACK_IDX), v = midi_control(t, c); + if (c == C_GATE) { ((Format)*(const uint32_t *)(uintptr_t)(MIDI_NOTE_FORMAT + 8u))(out, (int)v); return; } + if (c == C_OCT) { ((Format)*(const uint32_t *)(uintptr_t)MIDI_NOTE_FORMAT)(out, (int)(12u * v + midi_control(t, C_ROOT))); return; } + static const char *const roots[] = {"C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"}; + const char *name = c == C_ROOT ? roots[v % 12] : c == 3 ? vector_scale_names[v % 5] : c == 11 ? (v ? "REV" : "FWD") : + (c == 10 || c == C_PROB) && !v ? "OFF" : c == C_NONE ? "" : + c == C_PROB ? *(const char *const *)(uintptr_t)(0x400b2588u + 4u * (30u - v)) : 0; + unsigned i = 0; + if (name) { do out[i] = name[i]; while (name[i++]); return; } + if (c == 8) { int s = (int)v - 12; if (s < 0) { out[i++] = '-'; v = (unsigned)-s; } else v = (unsigned)s; } + if (v >= 100) out[i++] = (char)('0' + v / 100); + if (v >= 10) out[i++] = (char)('0' + v / 10 % 10); + out[i++] = (char)('0' + v % 10); out[i] = 0; +} +#define MIDI_FORMATTER(n) static void midi_format_##n(char *out, int value) { (void)value; midi_format(out, midi_layout[midi_view][n]); } +MIDI_FORMATTER(0) MIDI_FORMATTER(1) MIDI_FORMATTER(2) MIDI_FORMATTER(3) MIDI_FORMATTER(4) MIDI_FORMATTER(5) +static unsigned midi_view_of(unsigned page, unsigned second) { return page == 0u ? 0u : 1u + (second & 1u); } +static uint32_t vector_midi_page(uint32_t stock, unsigned page, unsigned second) +{ + unsigned view = midi_view_of(page, second); + midi_view = view; + if (src_page_ready || midi_page_built != stock + view + 1u) { + static void (*const formats[6])(char *, int) = {midi_format_0, midi_format_1, midi_format_2, midi_format_3, + midi_format_4, midi_format_5}; + static const char titles[3][13] = {"VECTOR SRC", "VECTOR AMP 1", "VECTOR AMP 2"}; + const volatile uint8_t *source = (const volatile uint8_t *)(uintptr_t)stock; + uint8_t *d = src_page; + for (unsigned i = 0; i < sizeof src_page; ++i) d[i] = source[i]; + label(d + 4, "VEC"); + for (unsigned i = 0; i < 13; ++i) d[9 + i] = (uint8_t)titles[view][i]; + for (unsigned i = 0; i < 6; ++i) { + label(d + 0x16 + 6 * i, midi_names[midi_layout[view][i]]); + put32(d + 0xca + 4 * i, (uint32_t)(uintptr_t)formats[i]); + put32(d + 0xfa + 4 * i, 0x400467a4u); /* stock's value-text cell, as the NOTE page's */ + } + put32(d + 0x18a, 0x00005555u); + put32(d + 0x18e, 0x55555555u); + src_page_ready = 0; + midi_page_built = stock + view + 1u; + } + return (uint32_t)(uintptr_t)src_page; +} +static void vector_midi_knob(unsigned page, unsigned index, int delta, unsigned second) +{ + unsigned t = U8(TRACK_IDX), c = index < 6u ? midi_layout[midi_view_of(page, second)][index] : C_NONE; + if (c >= C_NONE) return; + unsigned old = midi_control(t, c); + int value = (int)old + delta; + if (value < 0) value = 0; + if (value > midi_max[c]) value = midi_max[c]; + if ((unsigned)value == old) return; + midi_set_control(t, c, (unsigned)value); + if (!midi_generate(t, 1, 0)) midi_set_control(t, c, old); +} +static void vector_midi_yes(unsigned page) +{ + (void)page; + notice(midi_generate(U8(TRACK_IDX), 1, 1) ? "VECTOR GENERATED" : "NO CHANGE"); +} +/* Chosen: VECTOR's defaults, the track's NOTE on the root (C) of its octave and its chord notes off (NOT2-4 have no + * place on VECTOR's SRC page), and a first phrase on an empty track; a track with notes waits for a control. */ +static void vector_midi_assign(unsigned t, unsigned on) +{ + if (!on) return; + unsigned note = current_part()[MIDI_PAGE1(t)]; + midi_set_control(t, C_SEED, t + 1u); + midi_page1(t, 0, note > 119u ? 108u : note - note % 12u); + for (unsigned k = 3; k < 6; ++k) midi_page1(t, k, 64); + (void)midi_generate(t, 0, 0); +} +const struct modwerk_midi_generator vector_midi = { + MODWERK_MIDI_GENERATOR_ABI, "VECTOR", 'V', 1u, vector_midi_assign, vector_midi_page, vector_midi_knob, vector_midi_yes, 0, +}; diff --git a/sdk/octabam/modules/vector/native.c b/sdk/octabam/modules/vector/native.c index c1a597560..ee5462d93 100644 --- a/sdk/octabam/modules/vector/native.c +++ b/sdk/octabam/modules/vector/native.c @@ -70,11 +70,6 @@ int st_validate_part(uint8_t *part) { unsigned st_selected(void) { return valid_bank() && !U8(0x80000015u) && signed_track(current_part(),U8(TRACK_IDX)); } -static unsigned any_vector(void) { - if(!valid_bank()) return 0; - for(unsigned t=0;t<8;++t) if(signed_track(current_part(),t)) return 1; - return 0; -} unsigned st_type(unsigned type, const volatile uint8_t *ptr) { if(!valid_bank()) return type; volatile uint8_t *p=current_part(); @@ -256,9 +251,14 @@ static int generate_track(unsigned t, int replace, int fresh) { for(unsigned k=0;k>t&1u) && now[SIGNATURE+30u*t+2]==1) { + VectorParams p=settings(t); save_settings(t,&p,get_seed(t)); dirty_part(part&3u); } - unsigned t=U8(TRACK_IDX), pool=t<8?current_part()[0x22+t]:1; + unsigned pool=track<8?now[0x22+track]:1; U32(0x400d5f4cu)=pool==0?0x400d301cu:0x400d31aeu; } - unsigned want=any_vector(); - uint32_t bank=U32(BANK_PTR), part=U8(PART_IDX), track=U8(TRACK_IDX); + unsigned want=vector && !U32(0x80000012u); /* MIDI mode: the MIDI generator's layer */ unsigned changed=bank!=shown_bank || part!=shown_part || track!=shown_track; uint32_t *layer=layer_gen?st_layer:st_edit_layer; if(active && (!want || layer[0] || changed || layer_gen!=generator_view())) { diff --git a/sdk/octabam/modules/vector/octamod.module.json b/sdk/octabam/modules/vector/octamod.module.json index 808a97499..e7c9238fc 100644 --- a/sdk/octabam/modules/vector/octamod.module.json +++ b/sdk/octabam/modules/vector/octamod.module.json @@ -2,8 +2,8 @@ "schemaVersion": 2, "id": "vector", "key": "VECTOR", - "name": "VECTOR", - "version": "0.2.5-experimental", + "name": "VECTOR MIDI", + "version": "0.3.0-experimental", "category": "machines", "author": { "github": "repeat98", @@ -16,8 +16,8 @@ "nativeManifest": "manifest.py", "presentation": { "label": "GENERATIVE", - "family": "Sample pattern generator", - "summary": "Shape an editable sample phrase directly on both native SRC pages.", + "family": "Sample and MIDI pattern generator", + "summary": "Shape an editable phrase on a sample track's SRC pages, or on a MIDI track's SRC and AMP pages.", "overview": "VECTOR commits real trigs and PTCH/HOLD/VOL locks as its SRC parameters change. The native sequencer plays the result immediately. SRC SETUP holds secondary controls. This update protects packed settings from stock Part validation during startup. Physical hardware remains untested; the owner approved release and issue closure with physical reboot/audio unverified.", "highlights": [ "Immediate sequence changes while playing", @@ -155,7 +155,8 @@ "Shares machine chooser hooks with Analog BD and FM Synth; the configurator and native builder reject those combinations.", "Sample must be tuned to the stated C reference. Generated pitch is limited to the native \u00b112-semitone range.", "Parameter edits and YES publish during playback. Custom Undo and bar-quantized replacement are not implemented.", - "Uses native pattern/track length, speed and swing. RPT sets a motif length within that track; no independent clock, swing or MIDI output.", + "Uses native pattern/track length, speed and swing. RPT sets a motif length within that track; no independent clock or swing. On a MIDI track it writes trigs and NOTE/VEL/LEN locks that the stock MIDI sequencer sends; it emits no MIDI itself.", + "MIDI tracks (0.3.0): chosen in MIDI NOTE SETUP's list; its controls take the SRC page and the AMP page (FUNC+AMP its second), LFO, FX1 and FX2 stay stock's, and the track's arpeggiator stays off. OCT, VEL and GATE are the track's NOTE, VEL and LEN; choosing VECTOR turns NOT2-4 off. Over USB it needs a base with MIDI generators. Tested on the owner's MKII over USB only; a card build on hardware, power cycles, project save/reload, scenes and LFOs on a VECTOR MIDI track remain untested.", "SRC generation knobs are request parameters, not p-lock/LFO/scene destinations. The normal EDIT view retains native playback controls.", "Generation owns note trigs, PTCH/HOLD/VOL locks and note timing/conditions. Every changed generator parameter or YES replaces those across the current track; other locks, recorder events and swing are preserved.", "The DRAM loader reserves 1,707 audio pages (10,487,808 bytes) shared across DRAM modules.", @@ -173,7 +174,7 @@ "value": 10586112, "unit": "bytes", "method": "static", - "conditions": "Tested reported profile: repitch, vector, playmodes, mute-modes and recorder-loop-fix with stock FX2, original 1.40C. Shared arena 10,586,112 bytes includes 10,487,808 module arena plus 98,304 logger reserve, counted once. Linked runtime 90,780 bytes and packed staging fit within it. VECTOR allocated sections: 13,000 text, 398 rodata and 3,368 data bytes; no BSS or new heap. Complete flash append is 18153 bytes. Maximum observed native commit stack 1,048; Part validation 252; fixed added UI stack bound 1,216. Borrowed stock window, lock indexes and 8-track bank/SRAM capacities are retained. Hardware canaries are unmeasured.", + "conditions": "Tested reported profile: repitch, vector, playmodes, mute-modes and recorder-loop-fix with stock FX2, original 1.40C. Shared arena 10,586,112 bytes includes 10,487,808 module arena plus 98,304 logger reserve, counted once. Linked runtime 90,780 bytes and packed staging fit within it. VECTOR allocated sections (0.3.0, the MIDI generator and on a card the base's generator registry): 22,422 text, 682 rodata and 3,912 data bytes; no BSS (a card never zeroes it, so prepare.py keeps zero statics in .data) or new heap. Complete flash append: 18,153 bytes measured for 0.2.4's profile, counted here as 28,403, that plus the 10,250 allocated bytes 0.3.0 adds (an upper bound; packing makes it smaller). On MIDI tracks VECTOR reuses stock storage only: the tracks' pattern records, 16 arp note bytes and the arp step mask per Part. Maximum observed native commit stack 1,048; Part validation 252; fixed added UI stack bound 1,216. Borrowed stock window, lock indexes and 8-track bank/SRAM capacities are retained. Hardware canaries are unmeasured.", "source": "TESTING.md" }, "processing": { @@ -209,23 +210,22 @@ }, "tests": { "report": "TESTING.md", - "summary": "Firmware-free generator/writer and all 256 VECTOR-instance masks pass ASan/UBSan; authored assembly reproduces. Exact-image ColdFire emulator tests reproduce the previous reset/stuck transport and pass two-instance Part/project save-reload, saved-card fresh load and battery-only restart. Twelve SRC controls, ordinary stock validation, both pool menus and advancing transport are checked. Physical reboot/audio remain untested under the exact-version owner exception.", + "summary": "0.3.0 adds VECTOR as a MIDI generator for the MIDI tracks and makes edits cheaper: a 64-step rewrite took 0.5 ms on the owner's MKII (3.9 ms before), with audio frames and MIDI timing steady. The list, the SRC, AMP and FUNC+AMP pages, generation, PROB and HUMN against recorded MIDI, grid-recording locks, removal and reinstall ran on the owner's MKII over USB on 21 and 24 October 2026 (development bases). The released package, which adds main's changes, the #1119 card fix, the card .bss fix and the ARP list, ran in the emulator only: the USB package and a site-built card image passed every step but the Part switch, which needs DSP there. The owner accepted the 24 October run for this source on 8 November 2026.", "hardwareStatus": "reported", "gates": [ "Firmware-free sanitizer generator, writer and packed-settings checks", + "Hoisted scale lookup identical to 0.2.4 over 18,144,000 parameter sets", "Authored C/hooks to assembly reproducibility without firmware", - "Current native SRC and sample-pool emulator behavior walks", - "ColdFire instruction/stack probe and conditional resource accounting", - "Browser/native build parity and matching composition rejection", - "Signed Part validator preservation for all 256 track masks", - "Two-instance native Part/project save-reload, saved-card fresh load and battery-RAM-only restart", - "Exact-version owner exception; physical reboot/audio unverified" + "Base MIDI generator registry host test (sdk/tests test_midi_generators.c)", + "Owner's MKII over USB (24 October 2026, an earlier build of 0.3.0): list, SRC/AMP pages, generation, MIDI output, PROB and HUMN timing, grid-recording locks, removal, MODE guard, edit cost", + "Emulator (ot_emu), the released USB package and a site-built card image: list, pages, encoders, MIDI out with PROB and HUMN, removal; no Part switch", + "Browser/native build parity and matching composition rejection" ], - "evidenceRevision": "645d73da3872ce9111f3e3172114fb33a3660b9f", + "evidenceRevision": "3b56452d20c640ab6b8bb323cc5aba5602e95c34", "qualification": { - "moduleVersion": "0.2.5-experimental", - "sourceSha256": "1255e99133cbd8d6d2587c95f93462ea80fccbd169462a2acb02aedbd346cbd3", - "imageSha256": "a753ddf67b0fe64e3742b4c89ecf141071eb30757b170173215e92b1b4794d24", + "moduleVersion": "0.3.0-experimental", + "sourceSha256": "5c6004d8adedf47888c70cb38ad9f0a2fb2cf6c61f6ac164f507cc77ef142015", + "imageSha256": "08240af3b24126a50aa1b617a46c956fe4c5aac5582534039812b5b303bb273a", "cycles": [ { "processor": "coldfire", @@ -239,8 +239,8 @@ "parameterExtremes": "Firmware-free sanitizer matrix covers all roots/scales/pitch windows and all secondary-control domains. Native instruction probe: 3,840 length/type/scale/seed cases and eight full native commit calls; static loop ceilings cover 64 steps and 2,016 rank shifts. Part-validation probe covers all 256 instance masks; maximum 64,241 executed instructions including the real stock validator, with 252 observed stack bytes. Added adapter has bounded 8-track/12-byte save and restore loops; no per-sample work.", "parameterModulation": "Generator controls are request parameters, not LFO/p-lock/scene destinations. UI knob changes and YES synchronously publish stock trigs and locks; ordinary sample playback modulation remains native.", "modeSwitching": "Current exact-image emulator: all twelve SRC edits, native sample editor, both backing-pool menus, advancing PLAY, native Part save/reload, panel-driven project save/reload, fresh saved-card project load and battery-RAM-only restart. Physical reboot/audio remain untested.", - "maxLoad": "Eight signed audio tracks may auto-fill on one PLAY edge. Conditional UI budget allows one such burst per second at 264 MHz; no audio-thread work is added. Stock rendering/scheduling uses the explicit reserve. Mixed-module audio stress is not measured.", - "inputConditions": "Original integer generator is input-independent. Density up to 64 notes/track; native lock rebuild scans every audio/MIDI lane. Audio sample/FX costs remain stock and are outside the added UI-work bound; hardware audio continuity is untested." + "maxLoad": "Eight signed audio tracks may auto-fill on one PLAY edge. Conditional UI budget allows one such burst per second at 264 MHz; no audio-thread work is added. Stock rendering/scheduling uses the explicit reserve. Mixed-module audio stress is not measured. On a MIDI track one control turn rewrites one phrase on the UI task (no PLAY-edge filling); 0.66 ms was the longest of 40 turns at 64 steps on the owner's MKII.", + "inputConditions": "Original integer generator is input-independent. Density up to 64 notes/track; from 0.3.0 a commit sets only its own track's bit of stock's lock index instead of stock's rebuild of every lane, so the bound over-counts it. Audio sample/FX costs remain stock and are outside the added UI-work bound; hardware audio continuity is untested." }, "report": "evidence/software.json" } @@ -258,9 +258,9 @@ { "name": "Complete tested-profile flash append: bootstrap and packed runtime", "space": "cpu-flash", - "words": 18153, + "words": 28403, "wordBits": 8, - "bytes": 18153, + "bytes": 28403, "scope": "shared" }, { @@ -305,26 +305,25 @@ } ], "perInstanceBytes": 74656, - "sharedBytes": 10607741, + "sharedBytes": 10617991, "maxInstances": 8, - "totalBytes": 11204989, - "conditions": "Tested reported profile: repitch, vector, playmodes, mute-modes and recorder-loop-fix with stock FX2, original 1.40C. Shared arena 10,586,112 bytes includes 10,487,808 module arena plus 98,304 logger reserve, counted once. Linked runtime 90,780 bytes and packed staging fit within it. VECTOR allocated sections: 13,000 text, 398 rodata and 3,368 data bytes; no BSS or new heap. Complete flash append is 18153 bytes. Maximum observed native commit stack 1,048; Part validation 252; fixed added UI stack bound 1,216. Borrowed stock window, lock indexes and 8-track bank/SRAM capacities are retained. Hardware canaries are unmeasured.", + "totalBytes": 11215239, + "conditions": "Tested reported profile: repitch, vector, playmodes, mute-modes and recorder-loop-fix with stock FX2, original 1.40C. Shared arena 10,586,112 bytes includes 10,487,808 module arena plus 98,304 logger reserve, counted once. Linked runtime 90,780 bytes and packed staging fit within it. VECTOR allocated sections (0.3.0, the MIDI generator and on a card the base's generator registry): 22,422 text, 682 rodata and 3,912 data bytes; no BSS (a card never zeroes it, so prepare.py keeps zero statics in .data) or new heap. Complete flash append: 18,153 bytes measured for 0.2.4's profile, counted here as 28,403, that plus the 10,250 allocated bytes 0.3.0 adds (an upper bound; packing makes it smaller). On MIDI tracks VECTOR reuses stock storage only: the tracks' pattern records, 16 arp note bytes and the arp step mask per Part. Maximum observed native commit stack 1,048; Part validation 252; fixed added UI stack bound 1,216. Borrowed stock window, lock indexes and 8-track bank/SRAM capacities are retained. Hardware canaries are unmeasured.", "report": "evidence/software.json" }, "hardware": { "kind": "functional", "status": "reported", "model": "MKII", - "testedOn": "2026-10-27", + "testedOn": "2026-10-24", "tester": "repeat98 (owner's unit, driven over USB by the coordinating session)", - "sourceRevision": "645d73da3872ce9111f3e3172114fb33a3660b9f", - "imageSha256": "a753ddf67b0fe64e3742b4c89ecf141071eb30757b170173215e92b1b4794d24", - "summary": "Over USB on an Octatrack MKII: a RAM-booted development twin of the release base (identity e6e75d75..., MAIN a753ddf6...; the b1b2ca58 build plus --dev) with POLY8 0.3.1, Analog BD 0.1.5 (rebuilt for the twin) and this VECTOR 0.2.5 package (45c962ca...), all accepted. On a STATIC track SRC SETUP's list scrolls to POLY8, ANALOG BD and VECTOR; with the cursor on VECTOR before YES the stock STATIC setup shows, and on ANALOG BD Analog BD's page. YES on VECTOR opens its STATIC/FLEX choice and the main SRC page shows SRC>VECTOR. SRC SETUP then shows VECTOR's page 2 (SEED 1, SPAN 12, OFST 0, ROT 0, RPT OFF, DIR FWD); encoders A-F change SEED, OFST, ROT, RPT and DIR (SPAN already at its maximum) and back, and SPAN moves within its range. Another STATIC track keeps the stock setup.", + "sourceRevision": "3b56452d20c640ab6b8bb323cc5aba5602e95c34", + "imageSha256": "08240af3b24126a50aa1b617a46c956fe4c5aac5582534039812b5b303bb273a", + "summary": "Over USB on an Octatrack MKII: a RAM-booted development twin of the base with the MIDI generator table (identity 4fd515ff210d53db, MAIN 08240af3...), VECTOR 0.3.0 layout A installed with `try` (package 49dc25cc..., 29,478 bytes), a disposable project, MIDI recorded over USB. NOTE SETUP's list by double-tap; YES on VECTOR; SRC TYPE DENS ROOT SCAL OCT SEED, AMP VEL ACNT GATE SPAN OFST RPT, FUNC+AMP ROT DIR PROB HUMN; OCT and ROOT move the phrase's NOTE locks; PROB 1% let none of 46 off-beat notes play; HUMN: all 50 note-ons within 1.0 ms of grid + offset; a held trig shows stock's page and its locks; OFF, removal and reinstall; 0.52 ms mean, 0.69 ms longest a control turn at 64 steps, MIDI timing and audio frames steady.", "limitations": [ - "The base was the development twin of the release base, not the b1b2ca58 build itself, nor the base this release commits.", - "Not tested: the FLEX, THRU and PICKUP setups; a POLY8 or Analog BD track's SRC SETUP; VECTOR 0.2.4 on the new base; whether the SRC main page regenerates the phrase.", - "Not tested: saving and reloading, a power cycle with VECTOR kept, and listening; no chip timing or stress.", - "One MKII; no MKI. The card build is 0.2.4's and was not run for this version." + "An earlier build of 0.3.0 on a development base: the released package (4d37ad92..., on main with #1332's list) adds main's changes, the #1119 card fix, the card .bss fix and the ARP list row; those ran in the emulator only. The owner accepted this run for the release on 8 November 2026.", + "Not tested on a unit: a card build, a power cycle with a VECTOR MIDI track, project save and reload, scenes and LFOs on a VECTOR MIDI track, more than one MIDI generator installed.", + "One MKII; no MKI. No chip timing or stress." ], "report": "TESTING.md" }, @@ -372,7 +371,7 @@ "page": "SRC SETUP machine chooser", "shows": "location", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -389,7 +388,7 @@ "page": "SRC generator", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -406,7 +405,7 @@ "page": "SRC after Generate", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -423,7 +422,7 @@ "page": "SRC sample editor", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -440,7 +439,7 @@ "page": "SRC SETUP", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -457,7 +456,7 @@ "page": "Backing-pool choice", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -474,7 +473,7 @@ "page": "Static sample pool", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -491,14 +490,14 @@ "page": "Flex sample pool", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } } ], "access": { - "location": "Audio track machine chooser: VECTOR, then the native-sized Static/Flex backing-pool modal. SRC main holds live phrase controls; SRC SETUP holds secondary controls. Double-tap TRACK reopens pool choice; push LEVEL toggles ordinary sample editing.", + "location": "MIDI tracks: MIDI NOTE SETUP's generator list, then the SRC and AMP pages and FUNC+AMP. Audio tracks: machine chooser VECTOR, then the Static/Flex pool modal; SRC holds phrase controls, SRC SETUP the rest. Double-tap TRACK reopens pool choice; push LEVEL for sample editing.", "steps": [ "Select an audio track. Open SRC page 2 (double-tap SRC), choose VECTOR and press YES. In the backing-pool modal, highlight STATIC or FLEX with UP/DOWN or LEVEL, then press RIGHT to enter that pool. YES also opens the highlighted pool; YES on a loaded sample slot assigns that pool and sample to VECTOR. Use the corresponding stock sample-slot and file-loading tools to load a tuned sample; NO returns from the sample browser.", "Double-tap the assigned TRACK to reopen the pool modal. LEFT returns to the machine list; RIGHT on VECTOR opens the modal. RIGHT in the pool modal opens the highlighted Static/Flex sample list. In a sample-slot list, LEFT returns to pool choice and RIGHT opens the stock file browser. Horizontal arrows navigate menus without changing the assigned pool; YES on a sample slot commits the pool and sample.", diff --git a/sdk/octabam/modules/vector/prepare.py b/sdk/octabam/modules/vector/prepare.py index c59005e54..80f22decb 100644 --- a/sdk/octabam/modules/vector/prepare.py +++ b/sdk/octabam/modules/vector/prepare.py @@ -4,6 +4,7 @@ """ from pathlib import Path import argparse +import re import subprocess import tempfile @@ -23,14 +24,24 @@ def main(): parser.add_argument('--output',type=Path,required=True) args=parser.parse_args() here=Path(__file__).resolve().parent + octatrack=here.parents[2]/'machines/octatrack' if args.output.exists(): parser.error('Output exists; use a fresh private build directory.') with tempfile.TemporaryDirectory(prefix='vector-cf.') as directory: work=Path(directory) unity=work/'vector.c' - unity.write_text('#include "engine.c"\n#include "persistence.c"\n#include "native.c"\n') + # On a card VECTOR is the one MIDI generator: it links the base's registry with its own record. + unity.write_text('#include "engine.c"\n#include "persistence.c"\n#include "native.c"\n#include "midi.c"\n' + '#define MG_FIXED vector_midi\n#include "midi_generators.c"\n') assembly=work/'vector.s' - subprocess.run(['m68k-elf-gcc',*FLAGS,'-I',str(here),'-S',str(unity),'-o',str(assembly)],check=True) - text=assembly.read_text()+'\n#APP\n'+(here/'hooks.s').read_text()+'\n.text\n.balign 2\n' + include=[x for d in (here,octatrack/'elekloader',octatrack/'include') for x in ('-I',str(d))] + subprocess.run(['m68k-elf-gcc',*FLAGS,*include,'-S',str(unity),'-o',str(assembly)],check=True) + # A card unit's .bss is never loaded or zeroed (tools/remix/platform_build.py), and -fno-zero-initialized-in-bss + # leaves statics without an initialiser in .comm: put them in .data as zeros, and keep the unit free of .bss. + compiled=re.sub(r'\t\.local\t(\S+)\n\t\.comm\t\1,(\d+),(\d+)\n', + r'\t.pushsection .data\n\t.balign \3\n\1:\n\t.zero \2\n\t.popsection\n',assembly.read_text()) + if re.search(r'\.(?:l?comm|bss)\b',compiled): raise SystemExit('VECTOR must not have .bss: a card never zeroes it.') + text=(compiled+'\n#APP\n'+(here/'hooks.s').read_text()+'\n'+ + (octatrack/'elekloader/midi_generators.s').read_text()+'\n.text\n.balign 2\n') # The shared native/browser linkers restore these from verified local OS. for name,address,length in REPLAYS: text+=name+':\n.space '+str(length)+'\njmp '+hex(address+length)+'\n' diff --git a/sdk/octabam/modules/vector/runtime.json b/sdk/octabam/modules/vector/runtime.json new file mode 100644 index 000000000..3ecd780fb --- /dev/null +++ b/sdk/octabam/modules/vector/runtime.json @@ -0,0 +1,16 @@ +{ + "schema": 1, + "contribute": [ + { + "to": "ot_midi_generators", + "order": 30, + "data": "vector_midi", + "replaces": [ + "mg_tap_site", + "mg_page_site", + "mg_setup_site", + "mg_note_setup_draw" + ] + } + ] +} diff --git a/src/catalog/module-documents.json b/src/catalog/module-documents.json index fa4288312..9cf29cdd1 100644 --- a/src/catalog/module-documents.json +++ b/src/catalog/module-documents.json @@ -6206,8 +6206,8 @@ "schemaVersion": 2, "id": "vector", "key": "VECTOR", - "name": "VECTOR", - "version": "0.2.5-experimental", + "name": "VECTOR MIDI", + "version": "0.3.0-experimental", "category": "machines", "source": { "repository": "https://github.com/repeat98/modwerk", @@ -6215,7 +6215,7 @@ "path": "sdk/octabam/modules/vector" }, "access": { - "location": "Audio track machine chooser: VECTOR, then the native-sized Static/Flex backing-pool modal. SRC main holds live phrase controls; SRC SETUP holds secondary controls. Double-tap TRACK reopens pool choice; push LEVEL toggles ordinary sample editing.", + "location": "MIDI tracks: MIDI NOTE SETUP's generator list, then the SRC and AMP pages and FUNC+AMP. Audio tracks: machine chooser VECTOR, then the Static/Flex pool modal; SRC holds phrase controls, SRC SETUP the rest. Double-tap TRACK reopens pool choice; push LEVEL for sample editing.", "steps": [ "Select an audio track. Open SRC page 2 (double-tap SRC), choose VECTOR and press YES. In the backing-pool modal, highlight STATIC or FLEX with UP/DOWN or LEVEL, then press RIGHT to enter that pool. YES also opens the highlighted pool; YES on a loaded sample slot assigns that pool and sample to VECTOR. Use the corresponding stock sample-slot and file-loading tools to load a tuned sample; NO returns from the sample browser.", "Double-tap the assigned TRACK to reopen the pool modal. LEFT returns to the machine list; RIGHT on VECTOR opens the modal. RIGHT in the pool modal opens the highlighted Static/Flex sample list. In a sample-slot list, LEFT returns to pool choice and RIGHT opens the stock file browser. Horizontal arrows navigate menus without changing the assigned pool; YES on a sample slot commits the pool and sample.", @@ -6246,8 +6246,8 @@ "nativeManifest": "manifest.py", "presentation": { "label": "GENERATIVE", - "family": "Sample pattern generator", - "summary": "Shape an editable sample phrase directly on both native SRC pages.", + "family": "Sample and MIDI pattern generator", + "summary": "Shape an editable phrase on a sample track's SRC pages, or on a MIDI track's SRC and AMP pages.", "overview": "VECTOR commits real trigs and PTCH/HOLD/VOL locks as its SRC parameters change. The native sequencer plays the result immediately. SRC SETUP holds secondary controls. This update protects packed settings from stock Part validation during startup. Physical hardware remains untested; the owner approved release and issue closure with physical reboot/audio unverified.", "highlights": [ "Immediate sequence changes while playing", @@ -6385,7 +6385,8 @@ "Shares machine chooser hooks with Analog BD and FM Synth; the configurator and native builder reject those combinations.", "Sample must be tuned to the stated C reference. Generated pitch is limited to the native ±12-semitone range.", "Parameter edits and YES publish during playback. Custom Undo and bar-quantized replacement are not implemented.", - "Uses native pattern/track length, speed and swing. RPT sets a motif length within that track; no independent clock, swing or MIDI output.", + "Uses native pattern/track length, speed and swing. RPT sets a motif length within that track; no independent clock or swing. On a MIDI track it writes trigs and NOTE/VEL/LEN locks that the stock MIDI sequencer sends; it emits no MIDI itself.", + "MIDI tracks (0.3.0): chosen in MIDI NOTE SETUP's list; its controls take the SRC page and the AMP page (FUNC+AMP its second), LFO, FX1 and FX2 stay stock's, and the track's arpeggiator stays off. OCT, VEL and GATE are the track's NOTE, VEL and LEN; choosing VECTOR turns NOT2-4 off. Over USB it needs a base with MIDI generators. Tested on the owner's MKII over USB only; a card build on hardware, power cycles, project save/reload, scenes and LFOs on a VECTOR MIDI track remain untested.", "SRC generation knobs are request parameters, not p-lock/LFO/scene destinations. The normal EDIT view retains native playback controls.", "Generation owns note trigs, PTCH/HOLD/VOL locks and note timing/conditions. Every changed generator parameter or YES replaces those across the current track; other locks, recorder events and swing are preserved.", "The DRAM loader reserves 1,707 audio pages (10,487,808 bytes) shared across DRAM modules.", @@ -6403,7 +6404,7 @@ "value": 10586112, "unit": "bytes", "method": "static", - "conditions": "Tested reported profile: repitch, vector, playmodes, mute-modes and recorder-loop-fix with stock FX2, original 1.40C. Shared arena 10,586,112 bytes includes 10,487,808 module arena plus 98,304 logger reserve, counted once. Linked runtime 90,780 bytes and packed staging fit within it. VECTOR allocated sections: 13,000 text, 398 rodata and 3,368 data bytes; no BSS or new heap. Complete flash append is 18153 bytes. Maximum observed native commit stack 1,048; Part validation 252; fixed added UI stack bound 1,216. Borrowed stock window, lock indexes and 8-track bank/SRAM capacities are retained. Hardware canaries are unmeasured.", + "conditions": "Tested reported profile: repitch, vector, playmodes, mute-modes and recorder-loop-fix with stock FX2, original 1.40C. Shared arena 10,586,112 bytes includes 10,487,808 module arena plus 98,304 logger reserve, counted once. Linked runtime 90,780 bytes and packed staging fit within it. VECTOR allocated sections (0.3.0, the MIDI generator and on a card the base's generator registry): 22,422 text, 682 rodata and 3,912 data bytes; no BSS (a card never zeroes it, so prepare.py keeps zero statics in .data) or new heap. Complete flash append: 18,153 bytes measured for 0.2.4's profile, counted here as 28,403, that plus the 10,250 allocated bytes 0.3.0 adds (an upper bound; packing makes it smaller). On MIDI tracks VECTOR reuses stock storage only: the tracks' pattern records, 16 arp note bytes and the arp step mask per Part. Maximum observed native commit stack 1,048; Part validation 252; fixed added UI stack bound 1,216. Borrowed stock window, lock indexes and 8-track bank/SRAM capacities are retained. Hardware canaries are unmeasured.", "source": "TESTING.md" }, "processing": { @@ -6439,18 +6440,17 @@ }, "tests": { "report": "TESTING.md", - "summary": "Firmware-free generator/writer and all 256 VECTOR-instance masks pass ASan/UBSan; authored assembly reproduces. Exact-image ColdFire emulator tests reproduce the previous reset/stuck transport and pass two-instance Part/project save-reload, saved-card fresh load and battery-only restart. Twelve SRC controls, ordinary stock validation, both pool menus and advancing transport are checked. Physical reboot/audio remain untested under the exact-version owner exception.", + "summary": "0.3.0 adds VECTOR as a MIDI generator for the MIDI tracks and makes edits cheaper: a 64-step rewrite took 0.5 ms on the owner's MKII (3.9 ms before), with audio frames and MIDI timing steady. The list, the SRC, AMP and FUNC+AMP pages, generation, PROB and HUMN against recorded MIDI, grid-recording locks, removal and reinstall ran on the owner's MKII over USB on 21 and 24 October 2026 (development bases). The released package, which adds main's changes, the #1119 card fix, the card .bss fix and the ARP list, ran in the emulator only: the USB package and a site-built card image passed every step but the Part switch, which needs DSP there. The owner accepted the 24 October run for this source on 8 November 2026.", "hardwareStatus": "reported", - "evidenceRevision": "645d73da3872ce9111f3e3172114fb33a3660b9f", + "evidenceRevision": "3b56452d20c640ab6b8bb323cc5aba5602e95c34", "gates": [ "Firmware-free sanitizer generator, writer and packed-settings checks", + "Hoisted scale lookup identical to 0.2.4 over 18,144,000 parameter sets", "Authored C/hooks to assembly reproducibility without firmware", - "Current native SRC and sample-pool emulator behavior walks", - "ColdFire instruction/stack probe and conditional resource accounting", - "Browser/native build parity and matching composition rejection", - "Signed Part validator preservation for all 256 track masks", - "Two-instance native Part/project save-reload, saved-card fresh load and battery-RAM-only restart", - "Exact-version owner exception; physical reboot/audio unverified" + "Base MIDI generator registry host test (sdk/tests test_midi_generators.c)", + "Owner's MKII over USB (24 October 2026, an earlier build of 0.3.0): list, SRC/AMP pages, generation, MIDI output, PROB and HUMN timing, grid-recording locks, removal, MODE guard, edit cost", + "Emulator (ot_emu), the released USB package and a site-built card image: list, pages, encoders, MIDI out with PROB and HUMN, removal; no Part switch", + "Browser/native build parity and matching composition rejection" ], "qualification": { "documentation": { @@ -6477,9 +6477,9 @@ ], "screenshotStyle": "black-and-white" }, - "moduleVersion": "0.2.5-experimental", - "sourceSha256": "1255e99133cbd8d6d2587c95f93462ea80fccbd169462a2acb02aedbd346cbd3", - "imageSha256": "a753ddf67b0fe64e3742b4c89ecf141071eb30757b170173215e92b1b4794d24", + "moduleVersion": "0.3.0-experimental", + "sourceSha256": "5c6004d8adedf47888c70cb38ad9f0a2fb2cf6c61f6ac164f507cc77ef142015", + "imageSha256": "08240af3b24126a50aa1b617a46c956fe4c5aac5582534039812b5b303bb273a", "cycles": [ { "processor": "coldfire", @@ -6493,8 +6493,8 @@ "parameterExtremes": "Firmware-free sanitizer matrix covers all roots/scales/pitch windows and all secondary-control domains. Native instruction probe: 3,840 length/type/scale/seed cases and eight full native commit calls; static loop ceilings cover 64 steps and 2,016 rank shifts. Part-validation probe covers all 256 instance masks; maximum 64,241 executed instructions including the real stock validator, with 252 observed stack bytes. Added adapter has bounded 8-track/12-byte save and restore loops; no per-sample work.", "parameterModulation": "Generator controls are request parameters, not LFO/p-lock/scene destinations. UI knob changes and YES synchronously publish stock trigs and locks; ordinary sample playback modulation remains native.", "modeSwitching": "Current exact-image emulator: all twelve SRC edits, native sample editor, both backing-pool menus, advancing PLAY, native Part save/reload, panel-driven project save/reload, fresh saved-card project load and battery-RAM-only restart. Physical reboot/audio remain untested.", - "maxLoad": "Eight signed audio tracks may auto-fill on one PLAY edge. Conditional UI budget allows one such burst per second at 264 MHz; no audio-thread work is added. Stock rendering/scheduling uses the explicit reserve. Mixed-module audio stress is not measured.", - "inputConditions": "Original integer generator is input-independent. Density up to 64 notes/track; native lock rebuild scans every audio/MIDI lane. Audio sample/FX costs remain stock and are outside the added UI-work bound; hardware audio continuity is untested." + "maxLoad": "Eight signed audio tracks may auto-fill on one PLAY edge. Conditional UI budget allows one such burst per second at 264 MHz; no audio-thread work is added. Stock rendering/scheduling uses the explicit reserve. Mixed-module audio stress is not measured. On a MIDI track one control turn rewrites one phrase on the UI task (no PLAY-edge filling); 0.66 ms was the longest of 40 turns at 64 steps on the owner's MKII.", + "inputConditions": "Original integer generator is input-independent. Density up to 64 notes/track; from 0.3.0 a commit sets only its own track's bit of stock's lock index instead of stock's rebuild of every lane, so the bound over-counts it. Audio sample/FX costs remain stock and are outside the added UI-work bound; hardware audio continuity is untested." }, "report": "evidence/software.json" } @@ -6512,9 +6512,9 @@ { "name": "Complete tested-profile flash append: bootstrap and packed runtime", "space": "cpu-flash", - "words": 18153, + "words": 28403, "wordBits": 8, - "bytes": 18153, + "bytes": 28403, "scope": "shared" }, { @@ -6559,26 +6559,25 @@ } ], "perInstanceBytes": 74656, - "sharedBytes": 10607741, + "sharedBytes": 10617991, "maxInstances": 8, - "totalBytes": 11204989, - "conditions": "Tested reported profile: repitch, vector, playmodes, mute-modes and recorder-loop-fix with stock FX2, original 1.40C. Shared arena 10,586,112 bytes includes 10,487,808 module arena plus 98,304 logger reserve, counted once. Linked runtime 90,780 bytes and packed staging fit within it. VECTOR allocated sections: 13,000 text, 398 rodata and 3,368 data bytes; no BSS or new heap. Complete flash append is 18153 bytes. Maximum observed native commit stack 1,048; Part validation 252; fixed added UI stack bound 1,216. Borrowed stock window, lock indexes and 8-track bank/SRAM capacities are retained. Hardware canaries are unmeasured.", + "totalBytes": 11215239, + "conditions": "Tested reported profile: repitch, vector, playmodes, mute-modes and recorder-loop-fix with stock FX2, original 1.40C. Shared arena 10,586,112 bytes includes 10,487,808 module arena plus 98,304 logger reserve, counted once. Linked runtime 90,780 bytes and packed staging fit within it. VECTOR allocated sections (0.3.0, the MIDI generator and on a card the base's generator registry): 22,422 text, 682 rodata and 3,912 data bytes; no BSS (a card never zeroes it, so prepare.py keeps zero statics in .data) or new heap. Complete flash append: 18,153 bytes measured for 0.2.4's profile, counted here as 28,403, that plus the 10,250 allocated bytes 0.3.0 adds (an upper bound; packing makes it smaller). On MIDI tracks VECTOR reuses stock storage only: the tracks' pattern records, 16 arp note bytes and the arp step mask per Part. Maximum observed native commit stack 1,048; Part validation 252; fixed added UI stack bound 1,216. Borrowed stock window, lock indexes and 8-track bank/SRAM capacities are retained. Hardware canaries are unmeasured.", "report": "evidence/software.json" }, "hardware": { "kind": "functional", "status": "reported", "model": "MKII", - "testedOn": "2026-10-27", + "testedOn": "2026-10-24", "tester": "repeat98 (owner's unit, driven over USB by the coordinating session)", - "sourceRevision": "645d73da3872ce9111f3e3172114fb33a3660b9f", - "imageSha256": "a753ddf67b0fe64e3742b4c89ecf141071eb30757b170173215e92b1b4794d24", - "summary": "Over USB on an Octatrack MKII: a RAM-booted development twin of the release base (identity e6e75d75..., MAIN a753ddf6...; the b1b2ca58 build plus --dev) with POLY8 0.3.1, Analog BD 0.1.5 (rebuilt for the twin) and this VECTOR 0.2.5 package (45c962ca...), all accepted. On a STATIC track SRC SETUP's list scrolls to POLY8, ANALOG BD and VECTOR; with the cursor on VECTOR before YES the stock STATIC setup shows, and on ANALOG BD Analog BD's page. YES on VECTOR opens its STATIC/FLEX choice and the main SRC page shows SRC>VECTOR. SRC SETUP then shows VECTOR's page 2 (SEED 1, SPAN 12, OFST 0, ROT 0, RPT OFF, DIR FWD); encoders A-F change SEED, OFST, ROT, RPT and DIR (SPAN already at its maximum) and back, and SPAN moves within its range. Another STATIC track keeps the stock setup.", + "sourceRevision": "3b56452d20c640ab6b8bb323cc5aba5602e95c34", + "imageSha256": "08240af3b24126a50aa1b617a46c956fe4c5aac5582534039812b5b303bb273a", + "summary": "Over USB on an Octatrack MKII: a RAM-booted development twin of the base with the MIDI generator table (identity 4fd515ff210d53db, MAIN 08240af3...), VECTOR 0.3.0 layout A installed with `try` (package 49dc25cc..., 29,478 bytes), a disposable project, MIDI recorded over USB. NOTE SETUP's list by double-tap; YES on VECTOR; SRC TYPE DENS ROOT SCAL OCT SEED, AMP VEL ACNT GATE SPAN OFST RPT, FUNC+AMP ROT DIR PROB HUMN; OCT and ROOT move the phrase's NOTE locks; PROB 1% let none of 46 off-beat notes play; HUMN: all 50 note-ons within 1.0 ms of grid + offset; a held trig shows stock's page and its locks; OFF, removal and reinstall; 0.52 ms mean, 0.69 ms longest a control turn at 64 steps, MIDI timing and audio frames steady.", "limitations": [ - "The base was the development twin of the release base, not the b1b2ca58 build itself, nor the base this release commits.", - "Not tested: the FLEX, THRU and PICKUP setups; a POLY8 or Analog BD track's SRC SETUP; VECTOR 0.2.4 on the new base; whether the SRC main page regenerates the phrase.", - "Not tested: saving and reloading, a power cycle with VECTOR kept, and listening; no chip timing or stress.", - "One MKII; no MKI. The card build is 0.2.4's and was not run for this version." + "An earlier build of 0.3.0 on a development base: the released package (4d37ad92..., on main with #1332's list) adds main's changes, the #1119 card fix, the card .bss fix and the ARP list row; those ran in the emulator only. The owner accepted this run for the release on 8 November 2026.", + "Not tested on a unit: a card build, a power cycle with a VECTOR MIDI track, project save and reload, scenes and LFOs on a VECTOR MIDI track, more than one MIDI generator installed.", + "One MKII; no MKI. No chip timing or stress." ], "report": "TESTING.md" } @@ -6602,7 +6601,7 @@ "page": "SRC SETUP machine chooser", "shows": "location", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -6619,7 +6618,7 @@ "page": "SRC generator", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -6636,7 +6635,7 @@ "page": "SRC after Generate", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -6653,7 +6652,7 @@ "page": "SRC sample editor", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -6670,7 +6669,7 @@ "page": "SRC SETUP", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -6687,7 +6686,7 @@ "page": "Backing-pool choice", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -6704,7 +6703,7 @@ "page": "Static sample pool", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } @@ -6721,7 +6720,7 @@ "page": "Flex sample pool", "shows": "controls", "firmware": "1.40C", - "moduleVersion": "0.2.5-experimental", + "moduleVersion": "0.3.0-experimental", "imageSha256": "cabcc2967a23a0ef719a38de444aec1b68662c12bb9057093d475b89424d0026", "setup": "Native ColdFire port, MKII panel mapping; original 1.40C, reported five-module composition, disposable RIG card, T1/T5 Flex with distinct VECTOR settings, Part ONE, A01, 120 BPM. Actual LCD plane plus visible stock windows rendered at 6x nearest-neighbor in monochrome. Stand-in DSP; no physical hardware or audio qualification." } diff --git a/src/catalog/vector.test.ts b/src/catalog/vector.test.ts index 47b1e88ee..941c64f40 100644 --- a/src/catalog/vector.test.ts +++ b/src/catalog/vector.test.ts @@ -18,13 +18,19 @@ const folder = resolve('sdk/octabam/modules/vector') // 0.2.5 changes only the USB package: its card source (the native source SHA-256 below) and card build are 0.2.4's, so // 0.2.4's emulator and behaviour records stand for its card build; the UI captures are labelled 0.2.5 for publication. const CARD_EVIDENCE = '0.2.4-experimental' +// The owner accepted 0.2.4's card evidence for 0.2.6 (6 Nov 2026): 0.2.6 only drops st_setup_page's row-5 test (#1119), in +// control.s and native.c, so the captures stay bound to 0.2.4's native source by name. 0.3.0 (which carries 0.2.6) adds the +// MIDI generator (midi.c, not a capture input; its card detours in manifest.py and prepare.py) and cheaper commits (engine.c, +// native.c) that give the same phrases; the audio-track screens the captures show are unchanged. +const CARD_EVIDENCE_SOURCE = '1255e99133cbd8d6d2587c95f93462ea80fccbd169462a2acb02aedbd346cbd3' +const CHANGED_SINCE_CARD_EVIDENCE = ['engine.c', 'native.c', 'prepare.py', 'manifest.py', 'control.s'] const sha = (bytes: Buffer) => createHash('sha256').update(bytes).digest('hex') describe('VECTOR release', () => { - it('publishes a reported functional hardware result for 0.2.5', async () => { + it('publishes a reported functional hardware result for 0.3.0', async () => { const document = parseModuleDocument(draft) expect(document.tests.hardwareStatus).toBe('reported') - expect(document.tests.qualification!.hardware).toMatchObject({ kind: 'functional', status: 'reported', model: 'MKII', testedOn: '2026-10-27' }) + expect(document.tests.qualification!.hardware).toMatchObject({ kind: 'functional', status: 'reported', model: 'MKII', testedOn: '2026-10-24' }) expect(() => requireModuleUiForPublication(document)).not.toThrow() expect(() => requireModuleQualificationForPublication(document)).not.toThrow() await expect(requireFolderQualification(folder, document, parseQualificationBaseline(baseline))).resolves.toBe('qualified') @@ -48,7 +54,8 @@ describe('VECTOR release', () => { it('binds reviewed monochrome captures and complete tutorial to the authored source', async () => { const document = parseModuleDocument(draft) expect(capture.moduleVersion).toBe(CARD_EVIDENCE) - expect(capture.sourceSha256).toBe(await moduleNativeSourceSha256(folder, document)) + expect(capture.sourceSha256).toBe(CARD_EVIDENCE_SOURCE) + expect(await moduleNativeSourceSha256(folder, document)).toBe(document.tests.qualification!.sourceSha256) expect(document.tests.qualification!.documentation.screenshots).toEqual(document.access!.screenshots) requireCompleteReadme({ id: document.id, tests: { qualification: { documentation: { ...document.tests.qualification!.documentation, screenshotStyle: 'black-and-white' as const } } } }, await readFile(resolve(folder, 'README.md'), 'utf8')) for (const media of document.media) { @@ -58,9 +65,11 @@ describe('VECTOR release', () => { expect(media.otUi?.moduleVersion).toBe(document.version) expect(media.otUi?.imageSha256).toBe(capture.imageSha256) } + const changed = [] for (const [path, hash] of Object.entries(capture.nativeBuildInputs)) { - expect(sha(await readFile(resolve(folder, path)))).toBe(hash) + if (sha(await readFile(resolve(folder, path))) !== hash) changed.push(path) } + expect(changed).toEqual(CHANGED_SINCE_CARD_EVIDENCE) expect(sha(await readFile(resolve(folder, capture.panelWalk)))).toBe(capture.panelWalkSha256) }) @@ -84,7 +93,8 @@ describe('VECTOR release', () => { }) it('binds the recorded firmware-free tests without running native code in application checks', async () => { - expect(coreTests.moduleVersion).toBe(CARD_EVIDENCE) + expect(coreTests.moduleVersion).toBe(draft.version) + expect(coreTests.sourceSha256).toBe(draft.tests.qualification.sourceSha256) for (const [path, hash] of Object.entries(coreTests.sources)) { expect(sha(await readFile(resolve(folder, path)))).toBe(hash) } diff --git a/src/community/downloaded-module-guide.ts b/src/community/downloaded-module-guide.ts index 2d9382732..35bc6a910 100644 --- a/src/community/downloaded-module-guide.ts +++ b/src/community/downloaded-module-guide.ts @@ -43,7 +43,7 @@ const QUICK_TESTS: Record = { { title: 'Enlarge the signal.', text: 'Press YES for fullscreen. Change a track’s level on its usual page and compare the plot.' }, { title: 'Close the view.', text: 'Press NO and stop playback. Outside the utility, a short SONG press opens the normal popup.' }, ] }, - vector: { version: '0.2.5-experimental', steps: [ + vector: { version: '0.3.0-experimental', steps: [ { title: 'Choose VECTOR.', text: 'Select an audio track, double-tap SRC, choose VECTOR and press YES.' }, { title: 'Assign a sample.', text: 'Choose STATIC or FLEX with UP/DOWN or LEVEL, then press RIGHT. Select a loaded, tuned sample and press YES to assign it.' }, { title: 'Shape a phrase.', text: 'Press SRC. Change TYPE, DENS or ROOT to generate a phrase; each edit commits immediately, even during playback.' }, diff --git a/src/community/module-changelogs/vector.json b/src/community/module-changelogs/vector.json index 187465069..75a81dd5e 100644 --- a/src/community/module-changelogs/vector.json +++ b/src/community/module-changelogs/vector.json @@ -1,4 +1,15 @@ [ + { + "version": "0.3.0-experimental", + "date": "2026-11-08", + "changes": [ + "New: VECTOR generates phrases on MIDI tracks. Double-tap SRC (or the track key in MIDI mode) and choose VECTOR; its controls are on SRC, AMP and FUNC+AMP.", + "On a MIDI track OCT, VEL and GATE are the track's NOTE, VEL and LEN; PROB puts trig conditions on off-beat notes, HUMN adds micro-timing. The Octatrack's own sequencer plays it.", + "Turning a control is faster on audio and MIDI tracks; the generated phrases are the same as before.", + "Card builds: VECTOR's second page also opens beside POLY8 (#1119).", + "Known issue: not yet tested on hardware with this exact build; a power cycle and project save and reload are untested." + ] + }, { "version": "0.2.5-experimental", "date": "2026-10-27", diff --git a/src/community/module-update-notifications.test.ts b/src/community/module-update-notifications.test.ts index 76e800c63..d356c8659 100644 --- a/src/community/module-update-notifications.test.ts +++ b/src/community/module-update-notifications.test.ts @@ -490,7 +490,7 @@ describe('new module release announcements', () => { expect(items).toHaveLength(2) expect(items.map(item => item.kind)).toEqual(['announcement', 'announcement']) expect(notificationLines(items)).toEqual(expect.arrayContaining([ - expect.objectContaining({ text: 'VECTOR is now available', href: '#module/vector' }), + expect.objectContaining({ text: 'VECTOR MIDI is now available', href: '#module/vector' }), expect.objectContaining({ text: 'FM Synth is now available', href: '#module/fm-synth' }), ])) expect(await f.items(one.session)).toEqual([]) diff --git a/src/engine/assets/analog-bd-composition-proofs.json b/src/engine/assets/analog-bd-composition-proofs.json index a86493a9d..df5f9a80c 100644 --- a/src/engine/assets/analog-bd-composition-proofs.json +++ b/src/engine/assets/analog-bd-composition-proofs.json @@ -8,7 +8,7 @@ "tools/build/ab_image.py": "c4573d4e0715961f7081dc1d5a0639d42ac63313ccc9e50a0737ac0685e2fc14", "tools/remix/loader.S": "32e09fd813ddc65511390faaebc3b86d963b2700f304b35cdb1ec48f90449287" }, - "moduleSourceTreeSha256": "9a824ef6dc7299be4b7acc29278cac52bdbf0f252018bcedc3c552da572e1610", + "moduleSourceTreeSha256": "0a2ac39eafc8c6cdfcbbe5a6901262fed1dfa59e92118bde8592242755221608", "packing": null, "proofs": [ { diff --git a/src/engine/assets/bootstrap-package.json b/src/engine/assets/bootstrap-package.json index 20d403a92..b22634626 100644 --- a/src/engine/assets/bootstrap-package.json +++ b/src/engine/assets/bootstrap-package.json @@ -16,7 +16,7 @@ "reserveBytes": 10487808, "uncachedAlias": 134217728, "stageAlignment": 4096, - "sourceCommit": "f7fbcc8a655ca63d8c01898a242f771291a41c3e", + "sourceCommit": "cd988717aa9d86a86887cd309ce0df8a2aa88511", "moduleVersions": { "spectrum": "0.1.1-experimental", "modulation": "0.1.1-experimental", @@ -39,7 +39,7 @@ "previewvol": "0.1.2-experimental", "cc-map": "0.1.2-experimental", "sidechain-compressor": "0.2.0-experimental", - "vector": "0.2.5-experimental", + "vector": "0.3.0-experimental", "playmodes": "0.2.0-experimental", "mute-modes": "0.2.2-experimental", "recorder-loop-fix": "0.1.0-experimental", diff --git a/src/engine/assets/coldfire-packages.json b/src/engine/assets/coldfire-packages.json index 628b2ddaa..c124dc06b 100644 --- a/src/engine/assets/coldfire-packages.json +++ b/src/engine/assets/coldfire-packages.json @@ -208,7 +208,7 @@ "sha256": "ccffbf72d45358bde585760b9230c668bf38ebf412ab23efc73732cf96024dca" } ], - "sourceCommit": "f7fbcc8a655ca63d8c01898a242f771291a41c3e", + "sourceCommit": "cd988717aa9d86a86887cd309ce0df8a2aa88511", "moduleVersions": { "spectrum": "0.1.1-experimental", "modulation": "0.1.1-experimental", @@ -231,7 +231,7 @@ "previewvol": "0.1.2-experimental", "cc-map": "0.1.2-experimental", "sidechain-compressor": "0.2.0-experimental", - "vector": "0.2.5-experimental", + "vector": "0.3.0-experimental", "playmodes": "0.2.0-experimental", "mute-modes": "0.2.2-experimental", "recorder-loop-fix": "0.1.0-experimental", diff --git a/src/engine/assets/descriptor-recipes.json b/src/engine/assets/descriptor-recipes.json index 397f226fe..fc24972cb 100644 --- a/src/engine/assets/descriptor-recipes.json +++ b/src/engine/assets/descriptor-recipes.json @@ -4439,7 +4439,7 @@ ] } ], - "sourceCommit": "f7fbcc8a655ca63d8c01898a242f771291a41c3e", + "sourceCommit": "cd988717aa9d86a86887cd309ce0df8a2aa88511", "moduleVersions": { "spectrum": "0.1.1-experimental", "modulation": "0.1.1-experimental", @@ -4462,7 +4462,7 @@ "previewvol": "0.1.2-experimental", "cc-map": "0.1.2-experimental", "sidechain-compressor": "0.2.0-experimental", - "vector": "0.2.5-experimental", + "vector": "0.3.0-experimental", "playmodes": "0.2.0-experimental", "mute-modes": "0.2.2-experimental", "recorder-loop-fix": "0.1.0-experimental", diff --git a/src/engine/assets/dsp-packages.json b/src/engine/assets/dsp-packages.json index c7794a8a9..425f2e4fb 100644 --- a/src/engine/assets/dsp-packages.json +++ b/src/engine/assets/dsp-packages.json @@ -2,7 +2,7 @@ "schema": 1, "revision": "b8deefc88b2c3e5f3c6158e364eb741df1924e1d", "license": "/licenses/octabam.txt", - "sourceCommit": "f7fbcc8a655ca63d8c01898a242f771291a41c3e", + "sourceCommit": "cd988717aa9d86a86887cd309ce0df8a2aa88511", "moduleVersions": { "spectrum": "0.1.1-experimental", "modulation": "0.1.1-experimental", @@ -25,7 +25,7 @@ "previewvol": "0.1.2-experimental", "cc-map": "0.1.2-experimental", "sidechain-compressor": "0.2.0-experimental", - "vector": "0.2.5-experimental", + "vector": "0.3.0-experimental", "playmodes": "0.2.0-experimental", "mute-modes": "0.2.2-experimental", "recorder-loop-fix": "0.1.0-experimental", diff --git a/src/engine/assets/menu-recipes.json b/src/engine/assets/menu-recipes.json index 2b36667f0..8e7855da5 100644 --- a/src/engine/assets/menu-recipes.json +++ b/src/engine/assets/menu-recipes.json @@ -1425,7 +1425,7 @@ "caveLimit": 1074625596 } ], - "sourceCommit": "f7fbcc8a655ca63d8c01898a242f771291a41c3e", + "sourceCommit": "cd988717aa9d86a86887cd309ce0df8a2aa88511", "moduleVersions": { "spectrum": "0.1.1-experimental", "modulation": "0.1.1-experimental", @@ -1448,7 +1448,7 @@ "previewvol": "0.1.2-experimental", "cc-map": "0.1.2-experimental", "sidechain-compressor": "0.2.0-experimental", - "vector": "0.2.5-experimental", + "vector": "0.3.0-experimental", "playmodes": "0.2.0-experimental", "mute-modes": "0.2.2-experimental", "recorder-loop-fix": "0.1.0-experimental", diff --git a/src/engine/assets/module-build.json b/src/engine/assets/module-build.json index 1646ce2c2..c868e3c94 100644 --- a/src/engine/assets/module-build.json +++ b/src/engine/assets/module-build.json @@ -1,9 +1,9 @@ { "schemaVersion": 1, "kind": "source-packages", - "sourceCommit": "f7fbcc8a655ca63d8c01898a242f771291a41c3e", + "sourceCommit": "cd988717aa9d86a86887cd309ce0df8a2aa88511", "nativeRevision": "b8deefc88b2c3e5f3c6158e364eb741df1924e1d", - "sourceTreeSha256": "9a824ef6dc7299be4b7acc29278cac52bdbf0f252018bcedc3c552da572e1610", + "sourceTreeSha256": "0a2ac39eafc8c6cdfcbbe5a6901262fed1dfa59e92118bde8592242755221608", "compilerSha256": "4c7b4a227737ef0686e3eafd320c7f7271003f9a19d02d72dbbe3b36aa10f702", "moduleVersions": { "spectrum": "0.1.1-experimental", @@ -27,7 +27,7 @@ "previewvol": "0.1.2-experimental", "cc-map": "0.1.2-experimental", "sidechain-compressor": "0.2.0-experimental", - "vector": "0.2.5-experimental", + "vector": "0.3.0-experimental", "playmodes": "0.2.0-experimental", "mute-modes": "0.2.2-experimental", "recorder-loop-fix": "0.1.0-experimental", @@ -47,47 +47,47 @@ "files": { "dsp-packages.json": { "bytes": 92040, - "sha256": "39c8b95b6c8909841038fe7e79929dd83e2014d203746284f344815dadbf798e" + "sha256": "5c4079c9c3873bf56978c8ea8b9b0c7ebe834b80f472362ca949867b754820ac" }, "resident-dsp.json": { "bytes": 25445, - "sha256": "a598c64db2238a32b87d0d65ce3155d21148e278ea0122c5b20dacdac5d5061d" + "sha256": "22494e0eadf67dafac3becd6f5160dd2cc66e4e7a4b4e1ba9454f42ce4d4aca5" }, "coldfire-packages.json": { "bytes": 354338, - "sha256": "0397dfb07223bdeb522acdd6bcee59b499b7c2e7937ea01e5a66a168923e4694" + "sha256": "e6356967329ed7b4b5b5f540681d6c088481ab13e5b68186a0d2caec539a1654" }, "rom-packages.json": { "bytes": 33596, - "sha256": "c0bd9cbf1d626de22b1996b9676c7640ca7c31932a26a1e554ec308882e93b51" + "sha256": "6a3354fac4379a8c2011716b4deb25425257b46e93c871e3a9914fab4cc91cd1" }, "bootstrap-package.json": { "bytes": 4179, - "sha256": "b414ea7a93c2f580edded448303eb5d9026fc8f4c49e5cabfd4a8f5945609898" + "sha256": "7b954cd8cfd0905d2afd9b75c9a5d11cce84bdda0c645e496632fa00896fa721" }, "menu-recipes.json": { "bytes": 37838, - "sha256": "43d552429e5b8f20c785ab40e0d0218105ac0b55099aa405283870ab287a90de" + "sha256": "32faddf1856f4bec60bcb15b6d5f1fcf75ef70c8b7841ab4c2b78e1a3ab9e74e" }, "descriptor-recipes.json": { "bytes": 85463, - "sha256": "6ac6d53faa5e784efbbfca7024d84f4c44bdb2285fc9a61f2af16910671555ba" + "sha256": "e5e8ec50ed28f38ae072dba255469d5472934e399bafa8310e9fb56f9011b514" }, "platform-writes.json": { "bytes": 17922, - "sha256": "d8fe2d30a90d47311d44ba669f565afe01860987ba44dbb5c8dd404ef674db05" + "sha256": "70c6a982b1501ae105daeb45f076a311e58a3f410e7d794f6b61a7ee6389de00" }, "requested-packages.json": { - "bytes": 1325008, - "sha256": "c5d01f5fee6cf07402117d0e57025197fa0bc6c2444e6652cd4e9e89e3e14979" + "bytes": 1356354, + "sha256": "8a488707396b0dcf2697df31c7370f7cb95c82331c97b6caf11b38d4fe14dcd7" }, "utility-packages.json": { "bytes": 13307, - "sha256": "c9d7db19e4f5245d1e52c06552d6627fd87a9274de833937c2e07318b605193b" + "sha256": "739c6fd47af1a93499738128ea0db2d1ef040002efe6bfd8f387823aa17b7ce3" }, "usb-audio-packages.json": { "bytes": 737949, - "sha256": "581966718cf4c3074c708eaf5f2e3c61f9700a645ac4137443dd3a98878122e6" + "sha256": "e3596d82e5c4d4b80c9bfe1d1d8ef1fd6a7eea1199df13603bec7cbff899c21e" } }, "approval": null, diff --git a/src/engine/assets/octatrack-module-packages.json b/src/engine/assets/octatrack-module-packages.json index 06992e852..88ec2aab7 100644 --- a/src/engine/assets/octatrack-module-packages.json +++ b/src/engine/assets/octatrack-module-packages.json @@ -191,14 +191,14 @@ "abi": 8, "features": 131, "sites": 2, - "copies": 8, + "copies": 12, "fills": 0, - "version": "0.2.5-experimental", - "name": "VECTOR", + "version": "0.3.0-experimental", + "name": "VECTOR MIDI", "module": "b0d51c58", - "bytes": 18354, - "sha256": "45c962ca3a202ac697e3d33d97e4b3b94052706a390189e5baf923fa829de577", - "path": "octatrack-modules/vector/0.2.5-experimental.mwrm" + "bytes": 29774, + "sha256": "4d37ad9225f813f68c3e3ad0da42b1bd4c4cf883def911f785e92b700190a36d", + "path": "octatrack-modules/vector/0.3.0-experimental.mwrm" }, { "id": "synth", diff --git a/src/engine/assets/platform-writes.json b/src/engine/assets/platform-writes.json index 11f18ae30..58b41ab8a 100644 --- a/src/engine/assets/platform-writes.json +++ b/src/engine/assets/platform-writes.json @@ -526,7 +526,7 @@ "sha256": "09effec7437266b693e358d43f0ba0f3de2b0b35fe4d81e7b76ba90cf388bde8" } ], - "sourceCommit": "f7fbcc8a655ca63d8c01898a242f771291a41c3e", + "sourceCommit": "cd988717aa9d86a86887cd309ce0df8a2aa88511", "moduleVersions": { "spectrum": "0.1.1-experimental", "modulation": "0.1.1-experimental", @@ -549,7 +549,7 @@ "previewvol": "0.1.2-experimental", "cc-map": "0.1.2-experimental", "sidechain-compressor": "0.2.0-experimental", - "vector": "0.2.5-experimental", + "vector": "0.3.0-experimental", "playmodes": "0.2.0-experimental", "mute-modes": "0.2.2-experimental", "recorder-loop-fix": "0.1.0-experimental", diff --git a/src/engine/assets/requested-packages.json b/src/engine/assets/requested-packages.json index 0db953125..48ab90337 100644 --- a/src/engine/assets/requested-packages.json +++ b/src/engine/assets/requested-packages.json @@ -1,7 +1,7 @@ { "schema": 1, "revision": "b8deefc88b2c3e5f3c6158e364eb741df1924e1d", - "sourceCommit": "f7fbcc8a655ca63d8c01898a242f771291a41c3e", + "sourceCommit": "cd988717aa9d86a86887cd309ce0df8a2aa88511", "moduleVersions": { "spectrum": "0.1.1-experimental", "modulation": "0.1.1-experimental", @@ -24,7 +24,7 @@ "previewvol": "0.1.2-experimental", "cc-map": "0.1.2-experimental", "sidechain-compressor": "0.2.0-experimental", - "vector": "0.2.5-experimental", + "vector": "0.3.0-experimental", "playmodes": "0.2.0-experimental", "mute-modes": "0.2.2-experimental", "recorder-loop-fix": "0.1.0-experimental", @@ -446,7 +446,7 @@ { "label": "vector", "moduleId": "vector", - "version": "0.2.5-experimental", + "version": "0.3.0-experimental", "key": "VECTOR", "author": "repeat98", "nativeAuthor": "repeat98", @@ -455,40 +455,47 @@ "caveAddress": null, "source": "modules/vector/control.s", "sources": { - "modules/vector/control.s": "c4f829e437ffbde1275c00827031b694a86011013d37269077e4696818323471", - "modules/vector/manifest.py": "4d921f24256038797a99671534885b0bb9a27eaa79261b11136cf0a95a75af21" + "modules/vector/control.s": "e12b5f82744d14a5511a605fabc5ff0624387084164c59143f9ddccec1f207dd", + "modules/vector/manifest.py": "b9dec167f8bd4f1b691069cc89834f6c2a6717b874eb28629ef5c8c026d3d976" }, - "bytes": 23508, - "code": "7f454c4601020100000000000000000000010004000000010000000000000000000059f4000000260034000000000028000c000b4fefffe048d73c3c4ab900000000670e202f0024b0b900000000670000da41f900000000226f002493c81031880010c0b1fc0000000066f24bf900000000428243f90000000049f90000000045f900000000223c00000000265d91c810338800670c158088005288ab43b68866eed1ca4218b28866fa201c26004243484378182a00e8ad2800e08c13400003ab4012851344000213430001b082656a203c00000000781826002a0042434843e8ad2800e08c1340003358891345002c1344002e52825c8a5c81700c1343002db082668877fc5555202f0024283c5555555523c400000000a3790000000023c30000000023c000000000203c000000004cd73c3c4fef00204e75203c00000000781826002a0042434843e8ad2800e08c1340003358891345002c1344002e52825c8a5c81700c1343002db0826600ff1e60924feffc38720f48d77cfc206f03d071902f40003eb2806406740f2f42003e7010206f03d077a800012f43003ab083640672102f41003a700b206f03d075a800022f42004ab0826406720b2f41004aa940206f03d075a800032f420042b0826404a96f0042206f03d0707e73a800042f410046b0816406727e2f410046707f206f03d075a800052f42004eb0826406727f2f41004e700c206f03d075a800062f420032b0826406720c2f4100327218206f03d01028000875a800072f4200361f40005fb282640674182f420036206f03d0226f0036282f03d41028000943e9fff42f4900524a0067107240b2846500042e7180b08465000408206f03cc47ef02c84def03c8116f03d701002f480060224b50c0421011400003114000021140000122d8bdc966ea2a2f003e720b243c9e3779b942862e3c7feb352de3ad45ef00c849ef01c8260a2c452a2f03dc2205b581200142404840b3804c0708007e0f2200eea9b380223c846ca68b4c0108002e0042474847b187a740c0867fc74a80677ade8e2887204320062228fffc4bef03c843f51c00bea9fe00640a2081538059884a8066e441f70c002a4606829e3779b9528d588c5883214600c8bbc4675e22052e3c7feb352db5812c0d200142404840b3804c0708007e0f2200eea9b380223c846ca68b4c0108002e0042474847b187a740c0867fc74a80668628874a866684428041f70c002a4606829e3779b9528d588c5883214600c8bbc466a2300dc0ef003c5080e888671671c043f20c00201a41f70c007001114002c8b5c966f0720c760c202f004a5e804c41000273fc00fe92af004e7ffc00fe226f0052780c700c90af004a2f42005ac2ef03da286f0052d0824c4300024c471001307c001893ef003291ef004a98af0036a340e5a81f410059d9ef003242af002e2c492f4d00522f46003a2f40004e2a6f002e52af002e4a1367000144223c85ebca6b42832c2f002e428543f90000000070f42e2f03dc4c016800246f00422f4b003675f1aa00327c0064bf867e0f0a86b5297a4d220642414841bd812c3c7feb352d4c0618002c01eeaebd812c3c846ca68b4c0618002c0142464846b3862f46003222007c0cd2884c4610070f02672ab08e6c0001542204d2804a816d00013cb3c16f00013e2600528022417c0c2200d2884c4610070f0266d65280720db28066c02c2f0032266f00364a8567162006e0884c45000143f71c00262900640683fffffff4700fc086b0af003e642c7030c0864a80660ac4af004e4a826600015e202f004a0806000667060680fffffff4b08e6d06b9c06d0226007018a7422206e0a9c7fc00054c421000068300000040174300015480c0ef0048e48817400002200dc0824a80670000d80286003000004a86670000cc102f005917400003588bbbef003a6600fea82a6f00524aaf03d4675c71af005f763fb680650000b02c2f03d42206246f03cc2806206f03d053844c4600021628000a71c6206f00602a0643f20c009282240d2c0152814c4560004a0367062c049c8020064c42000647ef03c845f36c0020eaff00b3c866da4cd77cfca3404fef03c84e754481b3c16e00fec652806000fe9cb08c6e1045f75c002640528547eb000c254b00642204d2804a816d18b3c16f00feb222412600720d5280b2806600fe6c6000fea8448160e4102f03db174000036000ff342c2f03d4703f206f03d02206246f03cc28064c4600021628000a71c6206f006053842a06928243f20c00240d6000ff4e202f005a6000fea2206f03cc280047ef02c84def03c8116f03d701002f480060224b6000fbf671807840b0846400fbd460d64fefffd448d74c044242203946c82456227c20300c0c2f4800102040d1fc0008ed8042001239100b14cf3f420028243c0b0b00012f420020a7421f40002a302f00322f490024c28275fc18b2c0fc001e4c021800d1c173b0083e53814a81670001f64def001793c922090681000001e9d280a542b489641e1cb0180052897209b289671e22090681000001e9528ed280a542b48965e245f1083f52891cf0a80060c6102f0017720fa942c2807180e88830401f410020b4806500017e3008122f001874101f400023701fc0813040b4806500013c3408102f0019ea891f420021a342c282740fc4801f41002a12022042740bb488650001027180e8881f410022720c3040b280650000d6122f001a340871811f420026747eb480650000b0102f001b1f4100244a006d00008c122f001c1f40002574187181b480656871af001d1f410027723fb2806546122f001ee188758120427440b4886528100147ef00203f400028206f0010200820d320ef002430ef00284cd74c0410af002a4fef002c4e75724047ef002010013f40002860d4122f001e703fe188758120427440b48864b860de721871af001d1f410027723fb280649660da707f122f001c74181f4000257181b4806400ff7460d8727e102f001b1f4100244a006c00ff5260d8307c000c122f001a340871811f420026747eb4806400ff2a60d4720b7180e88830401f410022720cb2806400ff0060d0307c0010102f0019ea8934081f420021a342c282740fc4801f41002a12022042740bb4886400fec460c0307c0004122f0018741030081f400023701fc0813040b4806400fe8260b847ef002093c9244b22090681000001e94df1083fd280a542b489651a528914f0e80022090681000001e94df1083fd280a542b48964e614b018005289ad41b2896700fecc528a60c0203946c824560680c00000002f020c8007efffff624a327c0022723ca742207946c82456d1fc0008ed801039100b14cfc08275fc18b24c020800a342d1c071b09800d1c1528906810000001eb480650871907453b480670e0c810000012c66bc241f42804e7571a800017432b48066e871a8000253804a80670a71a8000255804a8066d4241fa3404e754feffff42f0e2f0271b9100b14cc2c6f00242f0041ef000d4ebafcbe588fad40b08e675cab42200eb48e6402538071b7080920402f2f00302f2f003070fec0af003043f90000000073b1e8002f002001b1c164022008c0fc007f4c4100002f002f2f00302f2f00302f2f00304eb9400479b44fef001c241f2c5f4fef000c4e751039100b14cc227946c82456a7421239100b14cfd3fc0008ed807180c282c0fc001e204071fc18b241e801f14c001800d3c110318800727fc28020416000ff76518f2f02740b202f00182200206f00105c81226f00142f6f002000042f6f00240008b4816406241f508f4e752f6f000800242f6f000400202f41001c2f4000182f4900142f480010241f508f6000fef2598f2f02740b202f0014222f000c206f0010226f001c2f6f00200004b4806406241f588f4e752f6f000400202f49001c2f4000182f4000142f4800102f41000c241f588f6000feaa4fefffe448d7401c242f002441ef001171b9100b14cc2f004ebafb66588fad40b082676cab40b082653c71b728112202a3435581b6816500009255824a826700012aab434c43000141f900000000226f002020701c00101812c066fa4cd7401c4fef001c4e7571b72810780bb882660001124a80670000e6226f002041f900000000101812c067d4101812c066f460cc1039100b14cc227946c82456a7421239100b14cf77fc18b2d3fc0008ed80787f7180c282c0fc001e20404c03180041e801f1d3c110318800c0847663b68064587864760a2200a54e4c441001206f0020a74906810000003010c122004c43100124014c43200422040681000000301081206f0020d1ce740a4c42000142030681000000301081206f0020118398004cd7401c4fef001c4e75206f0020a34942817409b48064d02c49760a224122004c431001548924014c43200422040681000000301081206f0020d1ce60aa226f002041f9000000006000ff1a740c4c42000141f900000000226f002020701c006000fed6780ab88266144a806600ff3e226f002041f9000000006000fee851824a826600ff2822000681fffffff44a816d0e20017663b6806500ff186000ff6c206f0020740c94802002a54910fc002da3417409b4806400ff306000ff5c700a2f4000086000fe1c70082f4000086000fe12ad6f00086000fe0a71b9100b14cc4feffff441ef00012f004ebaf976588f4a2f000b671641f900000000226f0010101812c066fa4fef000c4e75226f001041f90000000060e84feffff42f0271b9100b14cc41ef0005ab422f004ebaf93471af000c588f41f9000000004c420001226f001420701c00101812c066fa241f4fef000c4e754feffff42f02740c71b9100b14cc41ef00052f004ebaf8f671af000b588f41f9000000004c420001226f001420701c00101812c066fa241f4fef000c4e754fefffdc48d7401c2c6f002841ef001971b9100b14cc2f004ebaf8b471af0025588f7263b28064567464a5482200a7494c421001740ad1cea36f00100681000000301c8122004c42100128014c424003282f001022030681000000301d814800740a4c420001420306810000003010811d8398004cd7401c4fef00244e757809b8806522740aa3494c4200014203204e06810000003010811d8398004cd7401c4fef00244e75740aa3482200a5494c42100142af0010d1ce28014c424003282f001022030681000000301d81480060904fefffdc48d7401c2c6f002841ef001971b9100b14cc2f004ebaf7e471af0023588f7263b28064567464a5482200a7494c421001740ad1cea36f00100681000000301c8122004c42100128014c424003282f001022030681000000301d814800740a4c420001420306810000003010811d8398004cd7401c4fef00244e757809b8806522740aa3494c4200014203204e06810000003010811d8398004cd7401c4fef00244e75740aa3482200a5494c42100142af0010d1ce28014c424003282f001022030681000000301d81480060904fefffdc48d7401c2c6f002841ef001971b9100b14cc2f004ebaf71471af0022588f7263b28064567464a5482200a7494c421001740ad1cea36f00100681000000301c8122004c42100128014c424003282f001022030681000000301d814800740a4c420001420306810000003010811d8398004cd7401c4fef00244e757809b8806522740aa3494c4200014203204e06810000003010811d8398004cd7401c4fef00244e75740aa3482200a5494c42100142af0010d1ce28014c424003282f001022030681000000301d81480060904fefffdc48d7401c2c6f002841ef001971b9100b14cc2f004ebaf64471af0021588f7263b28064567464a5482200a7494c421001740ad1cea36f00100681000000301c8122004c42100128014c424003282f001022030681000000301d814800740a4c420001420306810000003010811d8398004cd7401c4fef00244e757809b8806522740aa3494c4200014203204e06810000003010811d8398004cd7401c4fef00244e75740aa3482200a5494c42100142af0010d1ce28014c424003282f001022030681000000301d81480060904fefffdc48d7401c2c6f002841ef001971b9100b14cc2f004ebaf57471af001e588f7263b28064567464a5482200a7494c421001740ad1cea36f00100681000000301c8122004c42100128014c424003282f001022030681000000301d814800740a4c420001420306810000003010811d8398004cd7401c4fef00244e757809b8806522740aa3494c4200014203204e06810000003010811d8398004cd7401c4fef00244e75740aa3482200a5494c42100142af0010d1ce28014c424003282f001022030681000000301d81480060904fefffdc48d7401c2c6f002841ef001971b9100b14cc2f004ebaf4a471af001d588f7263b28064567464a5482200a7494c421001740ad1cea36f00100681000000301c8122004c42100128014c424003282f001022030681000000301d814800740a4c420001420306810000003010811d8398004cd7401c4fef00244e757809b8806522740aa3494c4200014203204e06810000003010811d8398004cd7401c4fef00244e75740aa3482200a5494c42100142af0010d1ce28014c424003282f001022030681000000301d8148006090202f0004727f5280c0814e752f032f02206f0010a942226f000c102800037380b481640270041210e988760f7581b6826402720f808112801028000a6702700112280001eb8876107581b682640272108081740c13400001102800067380b4816402700c12280002e988760b7581b6826402720b8081747e13400002102800047380b4816402707e13400003102800056a02707f134000047618102800077380b6816402701813400005743f102800087380b4816402703f134000067640102800097380b68164027040727fc2af00141340000713410008241f261f4e754fefffd848d75c1c2f2f00342f2f003449ef00272f0c4ebaff16362f003a9dce4fef000cc6fc001e141ca540b08e64000086267c100b14cfa7441013227946c82456d3fc0008ed80121345ee01e9528ed5c3c084c28479fc18b24c0408004c0418002040d1fc100a4ece7009d3c11382a8001182a800b08e66ae1013227946c82456a7421213d3fc0008ed80c082c2824c0408004c04180078022040d1fc100a4eced3c11384383e1184383e4cd75c1c4fef00284e75267c100b14cfa7441013227946c82456d3fc0008ed80121345ee003f528ed5c3c084c28479fc18b24c0408004c0418002040d1fc100a4ece7009d3c11382a8001182a800b08e6600ff2a6000ff782f02720f206f0010a942226f00081010c08112807190e8881200b4806402720413410003721f741010280001c0811200b4806402721013410001a341740f71a80001ea88c0811340000a10280002c082740b1200b4806402720b13410002740c71a80002e8881200b4806402720c13410006747e102800037380b4816402707e13400004102800046a02707f134000057418102800057380b4816402701813400007743f102800067380b4816402703f134000087440102800077380b4816402704013400009727f10280008206f000c241fc28020814e75598f2f0a2f02202f0010222f0014206f00184a80672c4a81672845e8ffff743fb48a651e747fb4af001c65162f4800182f4100142f400010241f245f588f6000ebcc241f4280245f588f4e75222f00044a81675a71fc0919b0af000864502001204106800000004052884a28ffff663eb08866f42041200141e8004806800000005052884a28ffff6624b08866f4204106810000085941e80059719052880c80000000ff6608b28866f0a3404e7542804e754fefffd848d73cfc262f002c4a8367000168202f00300c80000009196300015a4aaf003467000152206f0034723f18280100200453807180b2806500013c4aaf003866122f2f00302f034ebaff4e508f4a806700011a7984246f00344281204a1010a3457580ba826500010eb284650001144a0066000102528158887040b08166de264322432843428547eb005943e9007949ec089aaf41c2852805e68caf48a34291c4d1c37190e2a0c0824a1267000132142a000116824a1267000120142a00021742000d4a126700010c142a00031742000fa342e3aa12104a12670000ee828210814a8066044a12673e420042143a7c000f42819284d2839bc4307c004f194000012002468091c41e353800ce801b8738002a411e2d001fce801b47001f12303800c08111803800204b4281101846804a0056c0710044808280b1c966ee307c001791c4d1c310104a1266784a816774848010825285588a47eb0020548c43e900207040b0856600ff2ca3404cd73cfc4fef00284e754cd73cfc42804fef00284e754a006700fef0102800017a787580598071805982ba8065dcab454c4528004a8066d275a800027a7eba8265be4a2800036db8528158887040b0816600fea06000febe4682c48060882e024687c2876000ff0e50c26000fef650c26000fee250c26000fed02f02202f000caf41206f0008b280651c73b00822a342b4816512721e74534c01080041f0083c7190b4806706241f42804e7571a800017232b28066f071a8000253804a80671410280002a541241fb3804a0057c0710044804e75241fa3404e754fefffc8203946c824560680c000000048d744040c8007efffff630c42804cd744044fef00384e75207946c82456a7411039100b14cf75fc18b22f2f003cd1fc0008ed80c0814c020800487008004ebaff50508f4a8067c61039100b14d0740f73802f410018b48165b2322f003e227946c82456488041f9000000002f49001c1439100b14cf246f001cc2fc091a1f4200272c413200c2fc8ed843f618004df298002f4900209dc81030e80010c0b1fc0000000066f24aaf0040670001f871fc8e55206f001cd1c14a3008006700020e1039000000007180743f22005381b4816500ff3a2f2f003c41ef00312f4000104ebaed48342f0042588f207946c82456d1fc0008ed801239100b14cfc4fc001e202f000c2242a742c28275fc18b243e901f14c021800747fd1c112309800c4812f4200284aaf0044670c2202747f5281c4812f420028342f003e207946c82456d1fc0008ed801239100b14cfc4fc00182242a742c28275fc18b243e901234c021800747fd1c173b09800b4816500fe9e2f2f00282f012f00486f00394879000000004ebae77e2f2f00544879000000004878091a4879000000004ebafc0c4fef00244a806700fe68226f001cb3f946c824566600fe5873b9100b14d0b2af00186600fe4a73af002775b9100b14cfb4816600fe3a226f002093fc0000000041f9000000002f49001845f0e800121875922f4a00102f4200147581b4af0014670e1481226f001845e8ffff13928800b1fc0000000066d22f2f0028486f00312f2f00442f4000184ebaf8f2a742122f00332c7946c82456ddfc000950484fef000cc28214163242a342e3aa204222022409828224081c811239100b145e828213c1100b145e207946c82456d1fc0009b332a350a379100f85984eb940027e004eb9400339d82f2f003c4eb94009da20588f4cd74404a37946c7c72c202f000c4fef00384e754878091a4879000000002f4100144ebafa8e508f222f000c4a806600fdee4cd744044fef00384e7571fc8e53103008006000fdf04e56ffe041eeffea2f0a2f0273b9100b14cc2f012d41ffe04ebaeb38322effe2588f207946c82456d1fc0008ed803d6efff2fffd1d6efff4ffff2d6effeefff92d6effeafff5c2fc001e1039100b14cf2241a74143e901f1c08173fc18b24c010800d1c012309800707fc280ab407581b0ae0008657a43eeffead3ee0008206e000c7391d1c14a886d000082246e0008203c0000000071b20800b1c06c022008b0816740128020022f00486effea2f2effe041faf78e2d48ffe44e9042a7a3672f2effe04ebafc524fef0018206effe44a806744a1674eb94004d948a37946c7c72c588f242effd8246effdc4e5e4e75ad40b0ae00086742222e0008206e000c43f618e97391d1c14a886c804a8167d442001280200260902f02486efff52f2effe04e904fef000ca1674eb94004d948a37946c7c72c588f60aa202e000cd0824a806d3c727fb2806c02707fb08267942f00486effea2f2effe041faf6e62d48ffe44e9042a7a3672f2effe04ebafbaa4fef0018206effe44a806600ff5860984a016700ff6042802f00486effea2f2effe041faf6ae2d48ffe44e9042a7a3672f2effe04ebafb724fef0018206effe44a806600ff206000ff60203946c824560680c00000002f020c8007efffff62084a398000001567064280241f4e751239100b14cc207946c82456a7421039100b14cfd1fc0008ed807381c0822f0173fc18b24c010800487008004ebafaac508f4a8067c42039000000004a8066ba4a3946c7d8d866b44ab9460d173a66ac4ab9460d169457c0241f710044804e754fefff78428148d75cfc242f008c284245ef00289dce28024283264a06840000003c49ec002271b41800a346bc80650c41f648007e537190be80674252814dee001e47eb000cbdfc000000f066d82f02206f009442854e90588f91c80b0366000086528541e8001e45ea000cb1fc000000f066e84cd75cfc4fef00884e7571a800017c32bc8066b471a8000253804a80670a71a8000255804a8066a0a340e3a891c8868043f6883cab47be88642c2c08ad474c47600043f60800700c43e901ecd3c21791880042115288b0886700ff6e43f6883cab47be8865d4d3c2179188004211528860be428147f02800ab44b881651449f21800ab442242d3c11194983c5281b88164ec2c01ad474c47600449f21800528143f34800780c135401ecb88166ca528541e8001e45ea000cb1fc000000f06600ff286000ff3c487a13f82f2f00084ebafebc508f4e75203946c824560680c00000002f020c8007efffff62084a39800000156706241f42804e751239100b14cc207946c82456a7421039100b14cfd1fc0008ed807381c0822f0173fc18b24c010800487008004ebaf8de508f241f4e75203900000000b0b946c82456670442804e751039100b14cfa741c081b0b90000000066ea71b9100b14ccb0b90000000066dc6000ff724fefffec70312f0a2f02226f0020a342206f0024b08956c173014481b4886700008ea340e3a82439000000002f420014c4804a82665e4a886632a340244174fd45f21a00d08a45f90000000020320c0022005381b48165322f4900202f480024241f2240245f4fef00144ed12441a54045f21a0074fdd08a45f90000000020320c0022005381b48164ce241f245f4fef00144e754a8866f24680c0af0014241f245f23c0000000004fef00144e752f4100102f4800082f49000c4ebafeb4222f0010206f0008226f000c4a806700008a103946100b1d08000005667c703eb089677c7431b48966702f4100102f4800082f49000c4ebafcac222f0010206f0008226f000c4a806750a34081b9000000001039100b14cca367a36771802f004ebaf7e04fef000c4a80677048780020203c000000002f004eb94005a2b8a1674eb94004d948a37946c7c72c4fef000c241f245f4fef00144e7542806000fee04a3946c7d8d866f24ab90000000057c0a54183b900000000a1677100448023c0000000004eb94004d948588f241fa37946c7c72c245f4fef00144e7548780020203c000000002f004eb94005a2b8a1674eb94004d948a37946c7c72c4fef000c608e203900000000b0b946c8245667024e751039100b14cfa741c081b0b90000000066ec71b9100b14ccb0b90000000066de4ebafd7e4a8067d6a37900000000a379000000004eba10d6a1674eb94004d948a37946c7c72c588f4e75203900000000b0b946c8245667024e751039100b14cfa741c081b0b90000000066ec71b9100b14ccb0b90000000066de4ebafd244a8067d642b900000000a379000000004eba107ca1674eb94004d948a37946c7c72c588f4e75203946c824560680c00000002f020c8007efffff6232203946c82456a7421239100b14cf06800008ed80206f000c41e8ffdec28275fc18b24c021800af42d08122089280b4816408202f0008241f4e75a342b4af000865f02f012f004ebaf5ce508f4a8067e2ab6f0008202f0008241f4e752f032f024ab90000000067084ebafcd64a806672203946c824560680c00000000c8007efffff6236223946c82456a7431039100b14cf06810008ed803040202f00100680ffffffde2408c48377fc18b24c032800d2829081af42b480640a202f000c241f261f4e75a343b6af000c65ee2f002f014ebaf544508f4a8067e0241fab40261f4e75203946c82456a7421239100b14cf77fc18b220790000000006800008ed8041e80022c2824c031800d081d088b0af00106600ff5c241f203900000000261f4e754fefffc4203946c824560680c000000048d74c0c0c8007efffff62000166af40b0af00446500015c223946c82456206f004091c12c48ddfcfff712802f41002473fc18b2200e4c41000220424a8266000132bdfc000062c762000128222f0044a342246f004043f218227391b48164000178a36f0020222f0044701e4c0018004aaf004866624ab900000000670001062f4100142f4800184ebafb84222f0014206f00184a80670000ec203946c8245606800008ed801439100b14cf3242a7422609c68275fc18b24c023800d083b0af0040660000c0262f0044b6b900000000660000b2a56f00482f2f00442f2f00442f41001c2f4800204ebaf3fa508f222f0014206f00184a80670000e8226f0040203c1001614e90af002441f1183c43f118422209227c100162fe93ef00241190080045e801b0139288005288b28866eea340b0af0048662c73fc18b2200e207c46c8245623d000000000a379000000004c410000222f004423c10000000023c0000000004cd74c0c202f00204fef003c4e754cd74c0ca36f0020202f00204fef003c4e752f2f00442f2f00442f41001c4ebaf352508f222f00144a806700ff5e4203206f0040203c1001614e226f004090af00241183183e1183183d1183183c41f1183c43f118422209227c100162fe93ef00246000ff4877912f4300206000fe86226f0044743248690001487900000000200f06800000003b2f002f4000282f410020246f004c2f48002445f2183c2f4a00344ebaed8614bc0053226f004c222f0020244145ea003f1382183d74021382183e224143e901e9202f00284fef000c2f490028206f00182f4a002c226f0028a542d3c8b488641826405288246f0040740915939800b4886700fe90528060dc246f00402640226f002cd3c85288159b9800200b60c6518f2039460e5e302f0b2f0a4a80671047f900000000b7f9460e5e2c670a4280245f265f508f4e75204041e800242f48000c2f082f40000c4eb94003567c226f000c588f4280246900282f1ba16745eaffe92f0aab672f2f001c2f3c400ba8762f4000204eb940012bd84fef0018202f0008b0b9460e5e4067165f8aa341b2806640245fa37946c7c72c265f508f4e75226f000c2051a167486a00054868fffb486affffa7672f092f4000204eb9400122544fef00185f8aa341202f0008b28067c02f1ba1672f0aab67a3402f2f001c2f3c400ba8762f4000204eb940012bd84fef0018202f0008b0b9460e5e40668a609e4ebaf8384a80670001004ab9460e5e30660000f64ab9460e70e0660000ec207c46c82456a74123d0000000001039100b14cfc28023c10000000071b9100b14cca567ad672f3c460e5e3823c00000000042b90000000042b9000000004eb94007ec604fef000c207946c82456a7411039100b14cf227900000000d1fc0008ed80c08173fc18b24c010800d1c071b098222f002f3c460e5e384eb94007edb041f90000000023c8460e5e28203c0000000023c0460e5e2c42b9460e5e342f3c4006d754a36742a7a167487800404878006e4eb94005829c4fef002023c0460e5e304a80672442a74879000000002f004eb9400570b82f3c400ce0c44eb9400314944fef00106000fe084e754ab9460e5e30670e203c00000000b0b9460e5e2c67024e754eb94006d75442b9000000004eba0a764ef94007893c598f4ab9460e5e30670e203c00000000b0b9460e5e2c6704588f4e754ebaf73e4a8067f42239460e5e40a340b08165e82e814eb94006d7544ebaf7224a8067d823d700000000a379000000004eba0a20a1674eb94004d948a37946c7c72c588f588f4e754feffff4222f0010206f00144ab9460e70e0677e4ab90000000066122f4800142f4100104fef000c4ef94007893c2f4100042e884ebaf6c2222f000420574a8067da4ab9460e70e067d22039000000002f4000084eb9400789e442b9000000004ebafe024ab9460e5e306726203c00000000b0b9460e5e2c66182f2f00082f3c460e5e384eb94007edb04fef00146000fce24fef000c4e75518f222f000c206f00104ab9460e70e067124ab9460e739a660aab40b0b9460e738e67102f4800102f41000c508f4ef94007909c2f4100042e884ebaf5ca222f000420574a8067dc4eb9400789e4508f6000fd7a598f4eb940031f282e804ebaf5a64a80672c4ab90000000066244a3946c7d8d8661c4ab9460d173a66144ab9460d1694660c2f174ebad6e02f400004588f2017588f4e75598f2f02203946c824560680c0000000222f000c0c8007efffff62084a39800000156708241f2001588f4e751039100b14cc207946c82456d1fc0008ed8075801039100b14cf2242a7422f09c08275fc18b24c020800487008002f41000c4ebaee3e508f222f00044a8067b84ab90000000066b0ab40b0b9460d5c3066a62f41000c241f588f6000d64a4feffff4ab402f02222f0014206f0018b0816408241f4fef000c4e75203946c824560680c00000000c8007efffff62e44a398000001566dc1439100b14cc227946c82456d3fc0008ed801039100b14cf75822f42000ca742c08275fc18b22f2f000c4c020800487108002f4100102f48000c4ebaeda0508f222f00084a8067944ab900000000668c4a3946c7d8d866844ab9460d173a6600ff7c4ab9460d16946600ff724ab9000000006600ff682f6f000400182f410014241f4fef000c6000f09c2f02ab40b0af00086406241f42804e75203946c824560680c00000000c8007efffff62e64a398000001566de1239100b14cc207946c82456a7421039100b14cfd1fc0008ed807381c0822f0173fc18b24c010800487008004ebaecf8508f4a8067a84ab90000000066a02f2f000c206f000c486800064ebaf022508f241fa3404e754fefffd448d75c0c4ab90000000067104ab9460e70e0660003b242b9000000004ab900000000660002fa2479800065b8a340b08a6700031c47faddce23ca00000000203946c824560680c00000000c8007efffff620000b0387c003e9dce45faec70207946c82456a7431039100b14cf73fc18b22f0ed1fc0008ed80c0834c010800487008004e92508f4a80672a207946c82456d1fc0008ed801039100b14cf75fc18b2c083a3434c020800d1c071b0c800b680670000ba528e49ec001e7008b08e669e73b9100b14ccaf42b481650002ce207946c82456a7431039100b14cf75fc18b2d1fc0008ed80c0834c020800d1c04a301822660002a6203c400d301c23c0400d5f4c4e93247946c8245673b9100b14cf77b9100b14cc2c402679000000002039000000002843b5f900000000670000e84a8b67204a8067000272203c000000004ab900000000670002c64cd75c0c4fef002c4e754a8067000252203c000000004ab90000000066e2600002a42f0e41ef0025a7422f4000204ebad9ec77fc18b2207946c82456d1fc0008ed801239100b14cf43ec01b349ec001ec282747f4c031800d1c112309800c4812e82486f00252f0e4ebae6a24fef000c1639100b14cf202f001c227946c82456d3fc0009504812113043a7432408c483e5a8828012811239100b145e808113c0100b145e207946c82456d1fc0009b332a350a379100f85984eb940027e00528e7008b08e6600fe4e6000feacb2b9000000006600ff12b6b9000000006600ff084a8b670002144a80674841f9000000004a8e670a4ab900000000670002184ab9000000006600fefa2f082f41001c4eb94003146c42b90000000023ca0000000023cc00000000222f001c588f23c1000000002079460d165c4a8e6700fec44a886700febe4a906600feb8223c00000000207c46c7dd7643f90000000020100c80000000006704238088005888b1fc46c7dd8266e8207c46c7deae43f9000000002010b0816704238088005888b1fc46c7deba66ec4ebaeeee23c0000000004a80670000f841f90000000042902f084eb940031494a167a379000000004eb94004d948a37946c7c72c508f4cd75c0c4fef002c4e754ebaf0d64a80670000b44ab9460e5e306600fcf64ab9460e70e06600fcec4ebaf8242479800065b8a340b08a6600fce8a34147fadab2b2b9000000006700fcdc4e934a806700fcd499cc4dfae9c242a7740842a72f0c4e96528c4fef000cb48c6700fcb842a7740842a72f0c4e96528c4fef000cb48c66d66000fca0203c400d31ae23c0400d5f4c6000fd5a42b90000000023ca0000000023c10000000023cc000000006000feb84ebaf02e4a806600fc4e42b9000000006000fc4442b9000000006000fc4441f90000000042902f084eb940031494a167a379000000004eb94004d948a37946c7c72c508f6000ff082f002f41001c4eb94003146c42b90000000042b90000000023ca00000000222f001c588f23cc0000000023c1000000006000fe3c4a806700fe3641f9000000004a8e6700fdf64ab9000000006600fdec2f4100182f48001c4ebaed66222f0018206f001cb08b6600fdd223ca000000004cd75c0c4fef002c4e75202f00040c800000000567044efa02fe41fa023020084e75400b3eac400b3e98400b7c67400b5413400b7a63000000004fefffec48ef030200082e802f4800044ebaf1d64cef030200084fef00144e754fefffe048ef0307000c2409d48006820008ed802e822f41000474000c8400000005660274012f4200084ebaf2d40c8400000005660228004cef0307000c4fef00204efa028448794005a61c600648794005a8562239460d5c304fefffe048ef030d000c2609d68006830008ed802e832f42000476000c8100000005660276012f43000826014ebaf2780c83000000056702200322004cef030d000c4fef00204e7516102f0071036100ff362600201f79034879400bb7044ef9400585e67110610000582f004879460e73864ef940078890610000124ef94003d722610000084ef94004c3746100fef841fafedc22300c004e7571104fef00186100fee44ef94003c986711061000012b48066064ef9400786ce4ef9400786fc4fefffec48ef030200082e802f4800044ebaf10e4cef030200084fef00144e752f082f01207946c8245673b9100b14cfc2fc18b2d1c173b9100b14ccd1fc0008eda271b01800221f205f4e750c820000000566344fefffe448ef0303000c2e8b2f4300044ebaf9222f4000084cef0303000c4aaf00084fef001c67064ef94003a6246100ff9c24004efa01300c8600000005662a4fefffec48ef030300042eaf005c4ebaf7982f40005c4cef030300044fef00142f006100ff682c00201f4efa01084eb94005213c4eb94007e9404ebaf93a4ef940052228564543544f5200004878ffff4878ffff4ebaf70e4ef94004e4d04feffff048d703034ebaecae4a80670c4cd703034fef00104efaf4644cd703034fef00102f0a4ab9460e70e04ef9400791ec4feffff048d703034ebaf3504a80670a4cd703034fef00104e754cd703034fef00104fefffe848d73c0c4ef94006d78c7c010c800000000566224feffff048d703034ebaec424a80670a4cd703034fef0010600c4cd703034fef0010bc8065064ef940077b624ef940077b704efaec084fefffa048d77cfc4ef9400023200000000000004ef9400334de0000000000004ef94007982200000000000000004ef94003a53600000000000000004ef94003cda000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000ffffffffffffffff31000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000002000000000000000000000000000000000000000000030000000000000000000000000000000000000000000400000000000000000000000000000000000000000005000000000000000000000000000000000000000000ff000000000000000000000000000000000000000000465744004f46460052455600564543544f522047454e455241544544004e4f204348414e474500ab204d414348494e453a564543544f5220bb004300432300440044230045004600462300470047230041004123004200303031205354415449430030303220464c455800434852004d494e004d414a00444f520050454e5400545950450044454e5300524f4f54005343414c00474154450041434e540053454544005350414e004f46535400524f5400525054004449520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fff05ad0ab506ad04a900000000000000000000000000000000000000000f100b047e7f7f0c183f40010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0b000120300c0c00000000000000000000000000000000000000000000000100000000000000000400fff10000000000000000000000000300000100000000000000000000000003000003000000000000000000000000030000050000000a000000000000013e02000001000000190000001c00000004010000030000002800000018000000040100000300000038000000200000019201000003000000410000003000000030010000070000004b00000a9e00000048020000010000005c00000a4e00000050020000010000006d0000013e000005280200000100000084000000700000000a010000070000013d000006660000029e020000010000008b000009040000008a02000001000000960000098e000000c00200000100000000000000000000000003000006000000b300000ae6000001dc02000001000000c2000000000000003001000007000000ca00000cc20000000a02000001000000d400000ccc0000000a02000001000000dd00000cd60000000802000001000000e600000cde0000003e02000001000000f000000d1c0000003e02000001000000f900000d5a0000003e020000010000010200000d98000000d0020000010000010b00000e68000000d0020000010000011400000f38000000d0020000010000011d00001008000000d00200000100000126000010d8000000d0020000010000012f000011a8000000d00200000100000138000013560000010402000001000001460000182c000002e80200000100000155000002b30000091a01000003000003e2000001b200000101010000030000015d00001b14000001ba020000010000016c00001cce00000084020000010000017b00000bf200000004010000030000018500001ef60000003602000001000001920000001400000004010000030000019c000000100000000401000003000001a60000000c0000000401000003000001b100000bce0000000401000003000001b600000bd60000001801000003000001bc000020ec0000005a02000001000001c6000000000000000401000003000001d2000000040000000401000003000001de000021460000005a02000001000001ea000000080000000401000003000001f7000000680000000801000007000002030000006000000008010000070000020e00000bd200000004010000030000021d00000bee00000004010000030000022700000c0200000004010000030000022e00000bfe00000004010000030000023900000bfa00000004010000030000024400000bf60000000401000003000000000000000000000000030000070000025046c82456000000000000fff1000002590008ed80000000000000fff10000026200003294000000000000000100000271000031ca00000000000000010000027900002fb8000000000000000100000285000032a00000000000000001000002940000302c0000000000000001000002a2000030f20000000000000001000002b6000030be0000000000000001000002c3000031120000000000000001000002d0000032ac0000000000000001000002df000032ba0000000000000001000002ee00000c400000000000000003000002f600000c8e0000000000000003000002fe0000320000000000000000010000030a00003230000000000000000100000316000032720000000000000001000003230000326a0000000000000001000003330000327600000000000000010000033f0000327c00000000000000010000034c0000009a0000003011000007000003610000008e0000000c11000007000003740000007a000000141100000700000387000012780000000c120000010000039800001284000000d212000001000003a40000145a000000d812000001000003b2000015320000004c12000001000003c20000157e0000006612000001000003d5000015e4000001e812000001000003e9000017cc0000006012000001000003fd00001d520000013a120000010000041200001e8c0000001012000001000004230000328600000000100000010000043500001e9c0000005a120000010000044100001f2c000001c012000001000004480000320800000000100000010000045b000021a000000072120000010000046300002212000000c61200000100000473000022d800000298120000010000047d000000ca0000000b110000070000048d00002570000000f212000001000004a1000026620000010a12000001000004b50000276c0000002e12000001000004c90000279a0000006412000001000004de000027fe0000009812000001000004eb000028960000005412000001000004f9000028ea0000004412000001000005060000292e0000008a1200000100000514000029b8000000c2120000010000051c00000c0800000000100000030000052500002a7a00000082120000010000053300002afc0000048c120000010000053e00000c2400000000100000030000054c00002f8800000000100000010000055c00002fa000000000100000010000056900002fd80000000010000001000005780000301e00000000100000010000058600003026000000001000000100000595000030aa00000000100000010000059f000030b40000000010000001000005a90000307a0000000010000001000005b7000030960000000010000001000005c7000030cc0000000010000001000005d4000030dc0000000010000001000005e30000313e0000000010000001000005f20000317e000000001000000100000601000031b400000000100000010000060e000031d200000000100000010000061a000031e4000000001000000100000627000032160000000010000001000006340000324600000000100000010000064200003282000000001000000100766563746f722e630067656e657261746f725f70616765007372635f706167655f7265616479007372635f706167655f736f75726365007372635f7061676500666f726d6174732e320067656e657261746f725f776964676574007365636f6e646172795f77696467657400766563746f725f67656e65726174652e706172742e30007363616c657300616e795f766563746f7200647261775f67656e657261746f725f7769646765742e706172742e3000666f726d61745f636f6e74726f6c00726f6f74732e3100666f726d61745f313000666f726d61745f3800666f726d61745f3600666f726d61745f313100666f726d61745f3300666f726d61745f3200666f726d61745f3900666f726d61745f3700666f726d61745f3500666f726d61745f3400666f726d61745f3100666f726d61745f3000736176655f73657474696e67730067656e65726174655f747261636b0073746167696e67006368616e67655f636f6e74726f6c0067656e657261746f725f7669657700656469745f7669657700706f6f6c5f636f6e7465787400706f6f6c5f62616e6b00706f6f6c5f7061727400706f6f6c5f747261636b006d696e6500736176656400706f6f6c5f666c657800706f6f6c5f62726f77736500706f6f6c5f64697265637400706f6f6c5f73746174696300706f6f6c5f70656e64696e6700706f6f6c5f6c6162656c730068616e646c6572732e33006c6173745f7472616e73706f7274006c617965725f67656e006163746976650073686f776e5f62616e6b0073686f776e5f706172740073686f776e5f747261636b0042414e4b5f50545200504152545f4f46460073745f6e616d655f7265706c61790073745f6e616d650073745f726f775f747970650073745f6d61696e5f7265706c61790073745f7372635f636f6d6d6f6e0073745f63686f6f7365725f726f775f747970650073745f6e616d655f7069636b0073745f706f6f6c5f6b696e640073745f656469745f7265706c61790073745f647261775f7265706c61790073745f6b6579730073745f656e6373002e706f6f6c5f73746f636b002e6c6973745f73746f636b002e7469746c655f73746f636b002e7469746c655f756e7369676e6564002e7469746c655f706f6f6c002e7469746c655f706c61696e00766563746f725f636f6e74726f6c5f6e616d657300766563746f725f636f6e74726f6c5f6d617800766563746f725f7363616c655f6e616d657300766563746f725f6e6578745f7365656400766563746f725f7061636b00766563746f725f756e7061636b00766563746f725f67656e657261746500766563746f725f747261636b5f656d70747900766563746f725f77726974655f70687261736500766563746f725f7369676e65645f747261636b00766563746f725f76616c69646174655f706172740073745f76616c69646174655f706172740073745f73746f636b5f76616c69646174650073745f73656c65637465640073745f6b65790073745f73746f636b5f706f6f6c5f6f70656e0073745f747970650073745f63686f6f7365725f747970650073745f61737369676e00766563746f725f64656661756c74730073745f706f6f6c5f63686f6963655f647261770073745f706f6f6c5f63686f6963655f6f70656e0073745f706f6f6c5f63686f6963655f6c6566740073745f706f6f6c5f63686f6963655f72696768740073745f706f6f6c5f6c6566740073745f706f6f6c5f72696768740073745f647261775f706167650073745f73657475705f706167650073745f6b6e6f620073745f6c617965720073745f73657475705f6b6e6f620073745f75695f7469636b0073745f656469745f6c617965720073745f6d616368696e655f6e616d650073745f7372635f6e616d65730073745f6d61696e5f636f6d6d69740073745f7372635f636f6d6d69740073745f7372635f636f6d6d6974320073745f6e616d655f610073745f6e616d655f620073745f73657475705f6f70656e0073745f63686f6f7365725f6f70656e0073745f73657475705f726f770073745f63686f6f7365725f726f770073745f73657475705f65646974360073745f73657475705f64726177360073745f7469636b5f686f6f6b0073745f7372635f647261770073745f706f6f6c5f6f70656e0073745f6c6973745f647261770073745f706f6f6c5f7469746c650073745f76616c69646174650000000000001600000301000000180000003200000301000001b200000054000003010000003c0000009e0000020100000a9e000000e000000301000001ae000000e6000003010000001c000000ec00000301000001aa000000f20000030100000018000000f80000030100000020000001080000020100000a4e000018dc0000030100000bcd00001a1600000301effea16600001a4c0000030100000bcd00001ba600003a010000008e00001f14000003010000001000001f22000003010000000c00001fd00000030100000bce000020380000030100000bce0000205c000011010000000c0000209e0000030100000bce000020aa0000030100000bf2000020cc000011010000001d00002108000003010000001000002116000003010000000c0000212600000301000000000000212c000003010000000400002162000003010000001000002170000003010000000c000021800000030100000000000021860000030100000004000023b4000003010000000c0000242e000003010000001400002434000003010000000800002442000003010000000c0000244800000301000000100000268a0000030100000014000026980000030100000010000026ae000003010000000c000026b40000030100000004000026ba00000301000000080000270e00003a01000000680000277600003a01000000680000278c0000030100000004000027a600003a0100000068000027dc0000030100000000000027e200000301000000040000285a00000301000000040000286c00003a010000006800002b18000003010000000400002b3a0000030100000bd200002c280000030100000bfe00002c3c0000030100000c0800002c5c0000030100000c2400002d180000030100000bfa00002d220000030100000bf600002d600000030100000c0200002d660000030100000bfe00002d6c0000030100000bf600002d780000030100000bfa00002d960000020100001f2c00002daa0000020100001f2c00002de40000030100000bee00002e020000030100000c0200002e560000030100000bd200002eac0000030100000bf200002eb20000030100000bfe00002eb80000030100000bfa00002ebe0000030100000bf600002ed2000003010000000400002edc000003010000000800002ef80000030100000c0200002f1c0000030100000c0200002f220000030100000bf200002f280000030100000bfe00002f340000030100000bf600002f3a0000030100000bfa00002f7a0000030100000bfe00002fb400000201000031ca0000000a000003010000001c0000002000000301000000200000003a00003a010000009a0000004200000301000000ea0000004800003a01000000300000004e00000301000000360000040400003a0100000070000009d200003a010000008e00000b3000003a010000007a00000b64000011010000000800000c48000011010000000000000c5800003a010000000000000c7a000011010000000400000cfc000011010000000800000d16000011010000000000000d3c00003a010000007a00000d7a00003a0100000000000018a400000301000002b3000018fe0000030100000303000019ba00000301000001b2000019c800000301000001b2000019d200000301000002b300001a1c00000301000002b300001ae600000301000002b300001d2a0000030100000bf200001ef8000003010000001400001f540000030100000bce00001f740000030100000bd600001fa60000030100000bd6000020940000030100000bf2000020ee0000030100000014000021480000030100000014000022180000030100000004000022ac000003010000000c000022d00000030100000000000023600000030100000004000024d600003a01000000ca0000258200003a0100000068000026d8000003010000000c0000270200003a01000000600000274a00001101000000270000281400000301000000040000284a0000030100000000000028fe0000030100000bf20000299c0000030100000bf200002a3a0000030100000bf200002a5e0000030100000c0800002ade0000030100000bf200002b06000003010000000400002b1e000003010000000800002c1a0000030100000bee00002c200000030100000c0200002c420000030100000bce00002c620000030100000bce00002d360000030100000c0800002d400000030100000c0800002d4a0000030100000bce00002da200000301b9382e6000002dc600000301b9382d3400002df00000030100000c0800002ee60000030100000c2400002f4a0000030100000c2400002f560000030100000c2400000c0c0000030100000c4000000c100000030100000c8e00000c280000030100000c4000000c420000020100001f2c00000c460000020100001f2c00000c4a0000020100001f2c00000c5c0000020100001f2c00000c600000020100001f2c00000c640000020100001f2c00000c9000000201000029b800000ca600000201000029b800000cbc00000201000029b800000cd200000201000029b800000ce800000201000029b800000cfe00000201000029b800000000000011010000003a00000004000011010000003c00000008000011010000003f0000000c00001101000000410000001000001101000000440000001400001101000000460000001800001101000000480000001c000011010000004b00000020000011010000004d0000002400001101000000500000002800001101000000520000002c00001101000000550000003000000201000011a80000003400000201000010d8000000380000020100000d5a0000003c0000020100000d1c000000400000020100001008000000440000020100000f38000000480000020100000cd60000004c0000020100000e68000000500000020100000ccc000000540000020100000d98000000580000020100000cc20000005c0000020100000cde0000006000000201000021460000006400000201000020ec0000006800001101000000570000006c00001101000000620000007a000011010000006b0000007e000011010000006f0000008200001101000000730000008600001101000000770000008a000011010000007b0000009a00001101000000800000009e0000110100000085000000a2000011010000008a000000a6000011010000008f000000aa0000110100000094000000ae0000110100000099000000b2000011010000009e000000b600001101000000a3000000ba00001101000000a8000000be00001101000000ad000000c200001101000000b1000000c600001101000000b5002e73796d746162002e737472746162002e7368737472746162002e72656c612e74657874002e72656c612e64617461002e627373002e726f646174612e737472312e31002e72656c612e726f64617461000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000001000000060000000000000034000032c8000000000000000000000004000000000000001b000000040000004000000000000050340000069c0000000900000001000000040000000c0000002b000000010000000300000000000032fc00000d280000000000000000000000040000000000000026000000040000004000000000000056d0000000b40000000900000003000000040000000c000000310000000800000003000000000000402400000000000000000000000000000004000000000000003600000001000000320000000000004024000000b9000000000000000000000001000000010000004a000000010000000200000000000040de000000d50000000000000000000000020000000000000045000000040000004000000000000057840000021c0000000900000007000000040000000c00000001000000020000000000000000000041b4000008300000000a0000004f000000040000001000000009000000030000000000000000000049e40000064e0000000000000000000000010000000000000011000000030000000000000000000059a00000005200000000000000000000000100000000", - "sha256": "5b43ff757c7726bce8a182ad1b2e8a4d752ff4a2eb969c50f1b5335b6438d11a", + "bytes": 38268, + "code": "7f454c46010201000000000000000000000100040000000100000000000000000000939c000000260034000000000028000c000b2f021039100b14cfa742227946c82456d3fc000950481211c480a340e5a8828012811239100b145e808113c0100b145e207946c82456d1fc0009b332241fa350a379100f85984ef940027e002f027233202f0008206f000cb28067187420b480674a7231b280674e7432a749b4806706241f4e7593c9a341b288672c4a886702a54143f19a0074fdd28943f90000000022711c0022095381b48165d42f48000c2f400008241f4ed1428160d6a349a341b28866c860f2a549a341b28866be60e84feffc40720f48d77cfc206f03c871902f40004eb2806406740f2f42004e7010206f03c877a800012f430046b083640672102f410046700b206f03c875a800022f420042b0826406720b2f410042a940206f03c875a800032f420052b0826404a96f0052206f03c8707e73a800042f41003eb0816406727e2f41003e707f206f03c875a800052f420056b0826406727f2f410056700c206f03c875a800062f42003ab0826406720c2f41003a7218206f03c81028000875a800072c421f40005bb28264043c7c0018206f03c843eefff42c2f03cc102800092f49004a4a0067107240b2866500046c7180b08665000440206f03c4200f246f03c40680000003c0224a116f03cf010041ef02c0264850c1421113410003134100021341000126d9b08b66ea222f03d4283c9e3779b92e2f004e760b4282b981e7af760f43ef00c04bef01c02a09200142404840b380223c7feb352d4c0108002200e6a9b380223c846ca68b4c010800260042434843b183a740c08277c34a8067000088d6872a83264520022f480032222bfffc41ef03c049f01c00b6acfe00640a26815380598b4a8066e447f70c00260206849e3779b9206f00325283588d5885274200c0b6866764222f03d42403760fb981200142404840b380223c7feb352d4c0108002200e6a9b380223c846ca68b4c010800260042434843b183a740c08277c34a806600ff7c2a834a826600ff78428047f70c00260206849e3779b95283588d5885274200c0b686669c2a6f00527a1847f9000000007e64387c000c79f3da00266f004a70f42a6f004a99ce9aaf004297ef003adbef003a42af003642af00322f4800522f42002e2205740cd2804c4210060d04672cb08b6c00022e220cd2804a816d000216be816f0002182f400036740c52802e012205d2804c4210060d0466d45280720db28066be302f0048206f0052242f002ec0c35080e888671671c049f10c00201947f70c007001174002c0b9c966f0720c7c0c202f00425e804c41000573fc00fe92af0056286f004a22422a6f004a4287700c90af00422f450046c2ef03d2dbef003ad0854c4600057dfc00fe99ef003a2f4d004a242f003226434c461001eaa42a6f004e2f4a00522f6f03d40032a340c0841f41003d2f40004e2c0752874a10670000da223c85ebca6b7a0f4c071800262f0032283c7feb352db7810a81b5297a4d200142404840b3804c0408002200eaa9b380223c846ca68b4c010800220042414841b1814a82670001662001e0884c4200044df74c00282e005c0684fffffff4700fc081b08d642c7030c0814a8066084aaf004e6600016c202f00420801000667060680fffffff4b08c6d08b0af004a6e02280076182001e6a8a743c9fc00052a004c435000068400000040114400015480c0ef0040e48811400002a740c0864a80670000de0281003000004a81670000d2102f003d114000035888bc896600ff18246f0052260b4aaf03cc675871af005b783fb880650000be2a2f03cc206f03c8266f03c44c4500021828000a71c5222f03cc538543f30c009282242f03cc2c0152814c4260004a0467062c059c8020064c43000647ef03c041f36c0024e8ff00b5c966da4cd77cfca3404fef03c04e754481be816e00fdec52806000fdc2b08d6e18222f0032204041e8000c4df71c0052812f4100322d48005c220cd2804a816d1abe816f00fdd22f4000362e015280720db2806600fd886000fdc6448160e2102f03d3114000036000ff2e282f00366000feac2a2f03cc703f206f03c8266f03c44c450002222f03cc71c51828000a5385928243f30c00242f03cc6000ff40202f00466000fe94206f03c42c00246f03c4200f224a0680000003c0116f03cf010041ef02c026486000fbbe71807c40b0866400fb9660d04fefffe048d73c3c4ab900000000670e202f0024b0b900000000670000da41f900000000226f002493c81031880010c0b1fc0000000066f24bf900000000428243f90000000049f90000000045f900000000223c00000000265d91c810338800670c158088005288ab43b68866eed1ca4218b28866fa201c26004243484378182a00e8ad2800e08c13400003ab4012851344000213430001b082656a203c00000000781826002a0042434843e8ad2800e08c1340003358891345002c1344002e52825c8a5c81700c1343002db082668877fc5555202f0024283c5555555523c400000000a3790000000023c30000000023c000000000203c000000004cd73c3c4fef00204e75203c00000000781826002a0042434843e8ad2800e08c1340003358891345002c1344002e52825c8a5c81700c1343002db0826600ff1e60924fefffe0222f002848d77c1c226f00244a816708a341c2af002c528141f1180123c10000000028084ab900000000660ab1f9000000006700011c41f90000000093c81031880010c0b1fc0000000066f243f90000000091c845f900000000101152894a00670a14c05288ab40b08866eed1fc000000004218b1fc0000000066f6340141f900000000c4fc000d2242d3fc0000000010d9b1fc0000000066f630014df90000000043f900000000223c0000000047f900000000c0fc00062a40dbfc00000000719d244191c85d8a28730c0010348800670c158088005288ab40b08866eed1ca4218b28866fa7440201e72182600e2ab2200e0891340000358891343fffc1341fffe72671342002c24007004424248421341002e22085c811340002d70a41340002f1342fffdbdfc00000000669273fc5555243c5555555523c20000000042b90000000023c10000000023c400000000203c000000004cd77c1c4fef00204e754fefffd448d74c044242203946c82456227c20300c0c2f4800102040d1fc0008ed8042001239100b14cf3f420028243c0b0b00012f420020a7421f40002a302f00322f490024c28275fc18b2c0fc001e4c021800d1c173b0083e53814a81670001f64def001793c922090681000001e9d280a542b489641e1cb0180052897209b289671e22090681000001e9528ed280a542b48965e245f1083f52891cf0a80060c6102f0017720fa942c2807180e88830401f410020b4806500017e3008122f001874101f400023701fc0813040b4806500013c3408102f0019ea891f420021a342c282740fc4801f41002a12022042740bb488650001027180e8881f410022720c3040b280650000d6122f001a340871811f420026747eb480650000b0102f001b1f4100244a006d00008c122f001c1f40002574187181b480656871af001d1f410027723fb2806546122f001ee188758120427440b4886528100147ef00203f400028206f0010200820d320ef002430ef00284cd74c0410af002a4fef002c4e75724047ef002010013f40002860d4122f001e703fe188758120427440b48864b860de721871af001d1f410027723fb280649660da707f122f001c74181f4000257181b4806400ff7460d8727e102f001b1f4100244a006c00ff5260d8307c000c122f001a340871811f420026747eb4806400ff2a60d4720b7180e88830401f410022720cb2806400ff0060d0307c0010102f0019ea8934081f420021a342c282740fc4801f41002a12022042740bb4886400fec460c0307c0004122f0018741030081f400023701fc0813040b4806400fe8260b847ef002093c9244b22090681000001e94df1083fd280a542b489651a528914f0e80022090681000001e94df1083fd280a542b48964e614b018005289ad41b2896700fecc528a60c0518f2f0a2f02740f206f0018203946c824561239100b14cfb488655ea742c282242f001406800008ed80eb8a224275fc18b243e903e24c021800d081d3c0700cb088672a700db08867000088a941b288663273a9000243f90000000071b18800b28064022001241f245f508f4e7573917413c2fcaaabe4a960dc241f4280245f508f4e75227946c82456a7421039100b14cf222f0014d3fc0008ed80e989c08275fc18b2244145ea183e4c0208007416d3c071b1a800b4806720ad40b0886764241f43f90000000071b18800245f508f4e7573a900016000ff7e203946c8245606800008ed801439100b14cf2f40000c43f90000000071b188002240d3c1a741100275fc18b243e91832c0814c020800d0af000c1231080006810000004073816000ff34202f00145280241f245f508f4e754fefffe848d70c1c242f0020246f001c77b9100b14cc2f022f034ebafeb2508f2200a940b0826760780cb88267000150a540b082673aa743b68267000110700bb08267000124760ab6826754780eb882670001847010b082665841f900000000101814c066fa4cd70c1c4fef00184e75740c4c42100041f90000000020700c00101814c066da60de2f4a001c4cd70c1c2f4100202279400d3f104fef00184ed14a81662441f900000000101814c066b060b451824a82661020010680fffffff44a806d0000fe2200224aa34842807663b681644e7864760a20014c440000068000000030128020014c43000043f2880124004c4320042004068000000030158088005488740a4c42100042030680000000301280158388004cd70c1c4fef00184e757409b48164dc2040760a20014c43000043f2880124004c432004200406800000003015808800548860b8ab444c44100041f90000000020700c00101814c06600fefe6000ff004a81674441f900000000101814c06600fee86000feea2439400d3f08a5672f032f41001c4ebafd402f4a0024222f001c22424c0418004cef0c1c0008d2802f4100284fef00204ed141f900000000101814c06600fea46000fea6740ca548224a948112fc002d2202a3406000fefa4a816700feca203c1002c9809081e588224020514a886600fe72224aa34842806000fed6203900000000ad4141f9000000004c01080071b008002f4000086000fdea203900000000ad414c0108002040d1fc0000000071902f4000086000fdcc203900000000ad414c0108002040d1fc0000000071902f4000086000fdae203900000000ad414c0108002040d1fc0000000071902f4000086000fd90203900000000ad414c0108002040d1fc0000000071902f4000086000fd72203900000000ad414c0108002040d1fc0000000071902f4000086000fd544feffff048d70c0c207946c82456a743222f00142401eb8a226f0018d1fc0008ed8047ef001f2441d5fc8000666e43e903e21039100b14cfd3c275fc18b2c0834c020800d1c0119398001039100b14cfc0834c0208002040d1fc100a4ece11939800101275b9800000027180b480670a4cd70c0c4fef00104e752041d1fc80006676101075b9800000037180b48066e070444c010800206f0018d1fc46c76dc0119308004cd70c0c4fef00104e752239460d1684a9402f0a2f02b081654c4ab9460d173a66444ab9460d1694663c202f0018068000000c1171c0206f001441f00a001028000175902242744db489661a4aaf001067147180246f000c224020122440b3ea0008670a1010241f4280245f4e75a94284aa000c030267ee241f245f4e754feffff42f0e2f0271b9100b14cc2c6f00242f0041ef000d4ebaf846588fad40b08e675cab42200eb48e6402538071b7080920402f2f00302f2f003070fec0af003043f90000000073b1e8002f002001b1c164022008c0fc007f4c4100002f002f2f00302f2f00302f2f00304eb9400479b44fef001c241f2c5f4fef000c4e751039100b14cc227946c82456a7421239100b14cfd3fc0008ed807180c282c0fc001e204071fc18b241e801f14c001800d3c110318800727fc28020416000ff76518f2f02740b202f00182200206f00105c81226f00142f6f002000042f6f00240008b4816406241f508f4e752f6f000800242f6f000400202f41001c2f4000182f4900142f480010241f508f6000fef2598f2f02740b202f0014222f000c206f0010226f001c2f6f00200004b4806406241f588f4e752f6f000400202f49001c2f4000182f4000142f4800102f41000c241f588f6000feaa4fefffe448d7401c242f002441ef001171b9100b14cc2f004ebaf6ee588fad40b082676cab40b082653c71b728112202a3435581b6816500009255824a826700012aab434c43000141f900000000226f002020701c00101812c066fa4cd7401c4fef001c4e7571b72810780bb882660001124a80670000e6226f002041f900000000101812c067d4101812c066f460cc1039100b14cc227946c82456a7421239100b14cf77fc18b2d3fc0008ed80787f7180c282c0fc001e20404c03180041e801f1d3c110318800c0847663b68064587864760a2200a54e4c441001206f0020a74906810000003010c122004c43100124014c43200422040681000000301081206f0020d1ce740a4c42000142030681000000301081206f0020118398004cd7401c4fef001c4e75206f0020a34942817409b48064d02c49760a224122004c431001548924014c43200422040681000000301081206f0020d1ce60aa226f002041f9000000006000ff1a740c4c42000141f900000000226f002020701c006000fed6780ab88266144a806600ff3e226f002041f9000000006000fee851824a826600ff2822000681fffffff44a816d0e20017663b6806500ff186000ff6c206f0020740c94802002a54910fc002da3417409b4806400ff306000ff5c700a2f4000086000fe1c70082f4000086000fe12ad6f00086000fe0a71b9100b14cc4feffff441ef00012f004ebaf4fe588f4a2f000b671641f900000000226f0010101812c066fa4fef000c4e75226f001041f90000000060e84feffff42f0271b9100b14cc41ef0005ab422f004ebaf4bc71af000c588f41f9000000004c420001226f001420701c00101812c066fa241f4fef000c4e754feffff42f02740c71b9100b14cc41ef00052f004ebaf47e71af000b588f41f9000000004c420001226f001420701c00101812c066fa241f4fef000c4e754fefffdc48d7401c2c6f002841ef001971b9100b14cc2f004ebaf43c71af0025588f7263b28064567464a5482200a7494c421001740ad1cea36f00100681000000301c8122004c42100128014c424003282f001022030681000000301d814800740a4c420001420306810000003010811d8398004cd7401c4fef00244e757809b8806522740aa3494c4200014203204e06810000003010811d8398004cd7401c4fef00244e75740aa3482200a5494c42100142af0010d1ce28014c424003282f001022030681000000301d81480060904fefffdc48d7401c2c6f002841ef001971b9100b14cc2f004ebaf36c71af0023588f7263b28064567464a5482200a7494c421001740ad1cea36f00100681000000301c8122004c42100128014c424003282f001022030681000000301d814800740a4c420001420306810000003010811d8398004cd7401c4fef00244e757809b8806522740aa3494c4200014203204e06810000003010811d8398004cd7401c4fef00244e75740aa3482200a5494c42100142af0010d1ce28014c424003282f001022030681000000301d81480060904fefffdc48d7401c2c6f002841ef001971b9100b14cc2f004ebaf29c71af0022588f7263b28064567464a5482200a7494c421001740ad1cea36f00100681000000301c8122004c42100128014c424003282f001022030681000000301d814800740a4c420001420306810000003010811d8398004cd7401c4fef00244e757809b8806522740aa3494c4200014203204e06810000003010811d8398004cd7401c4fef00244e75740aa3482200a5494c42100142af0010d1ce28014c424003282f001022030681000000301d81480060904fefffdc48d7401c2c6f002841ef001971b9100b14cc2f004ebaf1cc71af0021588f7263b28064567464a5482200a7494c421001740ad1cea36f00100681000000301c8122004c42100128014c424003282f001022030681000000301d814800740a4c420001420306810000003010811d8398004cd7401c4fef00244e757809b8806522740aa3494c4200014203204e06810000003010811d8398004cd7401c4fef00244e75740aa3482200a5494c42100142af0010d1ce28014c424003282f001022030681000000301d81480060904fefffdc48d7401c2c6f002841ef001971b9100b14cc2f004ebaf0fc71af001e588f7263b28064567464a5482200a7494c421001740ad1cea36f00100681000000301c8122004c42100128014c424003282f001022030681000000301d814800740a4c420001420306810000003010811d8398004cd7401c4fef00244e757809b8806522740aa3494c4200014203204e06810000003010811d8398004cd7401c4fef00244e75740aa3482200a5494c42100142af0010d1ce28014c424003282f001022030681000000301d81480060904fefffdc48d7401c2c6f002841ef001971b9100b14cc2f004ebaf02c71af001d588f7263b28064567464a5482200a7494c421001740ad1cea36f00100681000000301c8122004c42100128014c424003282f001022030681000000301d814800740a4c420001420306810000003010811d8398004cd7401c4fef00244e757809b8806522740aa3494c4200014203204e06810000003010811d8398004cd7401c4fef00244e75740aa3482200a5494c42100142af0010d1ce28014c424003282f001022030681000000301d81480060904fefffd4700c48d7043c282f0034242f0030262f0038b084670001aea541b2846700026c7a0dba84670001c8a940b084670001d8207946c82456a7411039100b14cf2a02d1fc0008ed80e98dc08173fc18b222457a1645e9183e2f4a00184c010800d1c071b0a800ba80670001b641f900000000428143e91832700d2f4800202f49001cb081650000907a0bba81657ea940b08167782f01247c100b14cf2f022f41001c4ebaf16ea745207946c82456d1fc0008ed801f520033222f001c2240246f002843e9ffc02f49002c71b21800508f45ef0027226f001cd3c0102f002bc0857bfc18b24c050800a745d1c0119298001039100b14cfc0857bfc18b24c0508002040d1fc100a4ece119298005281700db0816400ff747a10ba816600ff78207946c82456a7411039100b14cf7bfc18b2d1fc0008ed80226f00180683ffffffc0246f002075b24800c081222f00184c050800a745d1c070161180180073fc18b21039100b14cfc0857a164c010800a7412040d1fc100a4ece118598007bfc18b2226f001cd3c2207946c82456d1fc0008ed801039100b14cfc0814c050800d1c0118398001039100b14cfc0814c0508002040d1fc100a4ece118398004cd7043c4fef002c4e75a5672f024ebaf0462f42003842af003c720c4c013800d6802f4300404cef043c00084fef00346000f4042f4300382f4200304cd7043ca36f00344fef002c6000f3ec2f4300382f4200304cd7043ca56f00344fef002c6000f3d441f900000000a7412f48002043e918320683ffffffc0207946c82456d1fc0008ed802f49001c7bfc18b21039100b14cf246f0020226f001c75b24800d3c2c0814c050800d1c0118398001039100b14cfc0814c0508002040d1fc100a4ece118398004cd7043c4fef002c4e75227946c82456a7411039100b14cf2a02d3fc0008ed80eb8dc08173fc18b220457a1341e803e24c0108007209d3c071b18800c0fcaaabeaa8b28064027009c0fc000c20404870380042a72f024ebaf3184fef000c6000fd504e56ff6c48d73cfc1039100b14d0223946c824560681c00000000c8107efffff6200045caf41b2ae0008650004527380740fb4816500044848807dfc08b0223946c824562041282e00081639100b14cfc0fc8ed84c06480041e848d02244d3c01d43ffc32d49ffb44bf188004aae000c6700042c2040227c00008e55d1c14a30980067000406162d0028428245faeea07783ad47be826602af422f022f2e00084e92508fab41b282640004461d8028cc5282780cb88266daad672f2e00084e92508f2d40ffb84aae0010670a52807c7fcc802d46ffb8203946c8245620431239100b14cf53887e3fbe8865000392a742c2822640d7fc0008ed80202e000879fc18b2eb884c0418000680000003e2d7c1d7c04a2b00016d00036671ab00017c7fbc806500035a2f2effb82f0078132f03486effcd4879000000004ebae3544878000f2f2e00084e924878000e2f2e00082d40ffa44e92161373934fef0024204d2d40ffac3401200e0680ffffffd891c02d48ffc8226effc8204077832d4eff9cc4fcaaabe8aac5fc000c9282738196812d43ffa81231880010c1b1eeff9c66f4222effb82c3c9e3779b952814c016800223c85ebca6b7e1e2d41ffa0222effa442829eaeffac286effb4d9fc1001b24e43f900000000d281266effb4d7fc1001aa502d46ffbc45ed08312d47ffc441ed005052812d41ffb0af46cc822602e68b4be8ffe0a3442d4dff98af4d9bc3dbc02d4dff947395eca1c2844a116700042679a90001ab470684ffffffc04c4748042a2effa8da844a856d000430787fb8856c027a7f2a6eff9879857f95be8467102a6eff981a851745fffe4a116700029c182900037fa8ffe14be8ffe12d4dff987b84ba87670002d82a6eff981a841744ffff4a11660002c879a8ffe24be8ffe22d4dff980c84000000ff6700028850c4a3452a6eff98edad1a8416844a11670002782a6eff94181588852a6eff941a8418114a816600027c4a04670002aa4aaeffa4670003aa282effa07c0f222effbc2e3c2c1b3c6db9812801ecac7c0cb9814c0718002e2effb02801ecacb9814c471004220492aeffa4ef89028100001f804aaeffac670ca744c8824a84670482aeffc42801e08c2a4a7fa57d84bc8767041a8418847d927981b8866706148119410001428192832801d8802a442c05122d000f46869bcd9bc32e0d2a44de80c2861b41000f2a47122d0027c2861b4100271211670002024bf9000000001b8128003a7c00179bc3dbc01215c2861a81223c85ebca6b52825889548a548cd3aeffa047eb002041e80020263c00000000b3c36600fe46247c1001aa1d95c0d5eeffb4222effc820405381101875b018007780b48367081180180015808800b1eeff9c66e64aae0010660001c4102effc3a744a342207946c824562202d1fc000950481610c084e1a986811083263c46c7d2e41039100b145e828013c1100b145e207946c82456d1fc0009b332a350a379100f85984eb940027e002c2e00082806edaa41f9000000009688468243f0380010111218c082e9a980811280b1fc0000000066e8206e0008486800084eb94009da204cee3cfcff6c588fa3404e5e4e754cee3cfcff6c42804e5e4e7571fc8e53428245faea9c1630080077836000fbf643ed0018204d52884a28ffff66d2b1c966f441ed002043ed002852884a28ffff66beb1c966f441ed003043ed0830759052880c82000000ff66a6b1c966f02040227c00008e55d1c14a309800679e6000fb981d8028cd52826000fb9a79a8ffe14be8ffe12d4dff980c84000000ff6700fd7a50c42a6eff981a841744ffff4a116700fd68602aa345edad2a6eff942c05468618152a6eff94c8861a8418114a816700fd884a046600fd8842016000fdda182900027ba8ffe24be8ffe22d4dff987f84ba876600fd3c2a6eff94a345edad181588856000fd464be8ffe37395528d0c81000000ff6600009cbbc866ee42014bf9000000001b8128003a7c00172c0546869bc3dbc01215c2866000fde22f2effb8ad672f2e00084ebaf762a744a3424fef000c102effc3207946c824562202d1fc000950481610c084e1a986811083263c46c7d2e41039100b145e828013c1100b145e207946c82456d1fc0009b332a350a379100f85984eb940027e002c2e00082806edaa41f900000000968846826000fe2a72014bf9000000001b8128004a116600ff663a7c00179bc3dbc0121582856000fd4a2a6eff9879950c84000000ff6700fea850c52a6eff981a851745fffe4a116600fbfc6000fe9242052a6eff987f957985be846600fbd86000fbe442816000fc8e1039100b14cca367a36771802f004ebaf96c4fef000c4a806716203c00000000487800202f004eb94005a2b8508f4e75203c00000000487800202f004eb94005a2b8508f4e754feffff02f02226f001cab421239100b14cc202f00182f6f0020000cb48965244a806708a340c0af00245280ad424c020800740f2040d1fc0000000071b09800b4806408241f4fef00104e7573812f4100102f002f012f40000c4ebae8082240d0af0014508f206f00044a806d5a223c0000000073b01800b0816c022200b28967c22f012f082f2f00182f4800102f4900144ebaf5bc42a7a3672f2f00244ebaf8964fef0018206f00044a8066962f6f000800202f48001c2f6f00100018241f4fef00106000f58a428160b24feffff048d7041c207946c82456a742262f00142203eb8979fc18b2d1fc0008ed801039100b14cf224143e903e2c0824c040800d1c075b09800204348680001ad672f034ebaf53e4fef000c7077b08265482202780c4c44100045faeb1c94802f0242a72f034e924fef000ca742487800402f022f034e9252824fef000cad40b08266ea42a742a72f034ebaf7de4cef041c000c4fef001c4e75746c2f0242a72f0345faead4a7424e924fef000c60be4aaf000866024e756000ff46202f0004727f5280c0814e752f032f02206f0010a942226f000c102800037380b481640270041210e988760f7581b6826402720f808112801028000a6702700112280001eb8876107581b682640272108081740c13400001102800067380b4816402700c12280002e988760b7581b6826402720b8081747e13400002102800047380b4816402707e13400003102800056a02707f134000047618102800077380b6816402701813400005743f102800087380b4816402703f134000067640102800097380b68164027040727fc2af00141340000713410008241f261f4e754fefffd848d75c1c2f2f00342f2f003449ef00272f0c4ebaff16362f003a9dce4fef000cc6fc001e141ca540b08e64000086267c100b14cfa7441013227946c82456d3fc0008ed80121345ee01e9528ed5c3c084c28479fc18b24c0408004c0418002040d1fc100a4ece7009d3c11382a8001182a800b08e66ae1013227946c82456a7421213d3fc0008ed80c082c2824c0408004c04180078022040d1fc100a4eced3c11384383e1184383e4cd75c1c4fef00284e75267c100b14cfa7441013227946c82456d3fc0008ed80121345ee003f528ed5c3c084c28479fc18b24c0408004c0418002040d1fc100a4ece7009d3c11382a8001182a800b08e6600ff2a6000ff782f02720f206f0010a942226f00081010c08112807190e8881200b4806402720413410003721f741010280001c0811200b4806402721013410001a341740f71a80001ea88c0811340000a10280002c082740b1200b4806402720b13410002740c71a80002e8881200b4806402720c13410006747e102800037380b4816402707e13400004102800046a02707f134000057418102800057380b4816402701813400007743f102800067380b4816402703f134000087440102800077380b4816402704013400009727f10280008206f000c241fc28020814e75598f2f0a2f02202f0010222f0014206f00184a80672c4a81672845e8ffff743fb48a651e747fb4af001c65162f4800182f4100142f400010241f245f588f6000d944241f4280245f588f4e75222f00044a81675a71fc0919b0af000864502001204106800000004052884a28ffff663eb08866f42041200141e8004806800000005052884a28ffff6624b08866f4204106810000085941e80059719052880c80000000ff6608b28866f0a3404e7542804e754fefffd848d73cfc262f002c4a8367000168202f00300c80000009196300015a4aaf003467000152206f0034723f18280100200453807180b2806500013c4aaf003866122f2f00302f034ebaff4e508f4a806700011a7984246f00344281204a1010a3457580ba826500010eb284650001144a0066000102528158887040b08166de264322432843428547eb005943e9007949ec089aaf41c2852805e68caf48a34291c4d1c37190e2a0c0824a1267000132142a000116824a1267000120142a00021742000d4a126700010c142a00031742000fa342e3aa12104a12670000ee828210814a8066044a12673e420042143a7c000f42819284d2839bc4307c004f194000012002468091c41e353800ce801b8738002a411e2d001fce801b47001f12303800c08111803800204b4281101846804a0056c0710044808280b1c966ee307c001791c4d1c310104a1266784a816774848010825285588a47eb0020548c43e900207040b0856600ff2ca3404cd73cfc4fef00284e754cd73cfc42804fef00284e754a006700fef0102800017a787580598071805982ba8065dcab454c4528004a8066d275a800027a7eba8265be4a2800036db8528158887040b0816600fea06000febe4682c48060882e024687c2876000ff0e50c26000fef650c26000fee250c26000fed02f02202f000caf41206f0008b280651c73b00822a342b4816512721e74534c01080041f0083c7190b4806706241f42804e7571a800017232b28066f071a8000253804a80671410280002a541241fb3804a0057c0710044804e75241fa3404e754fefffc4203946c824560680c000000048d7440c0c8007efffff630c42804cd7440c4fef003c4e75207946c82456a7411039100b14cf75fc18b22f2f0040d1fc0008ed80c0814c020800487008004ebaff50508f4a8067c61039100b14d0720f77802f430020b28365b24880243946c8245641f90000000032002f4200241639100b14cf302f0042c2fc8ed81f43002fc0fc091ad081d4802c429dc82f40001c1030e80010c0b1fc0000000066f24aaf00446700024c71fc8e55206f0024d1c14a300800670002621039000000007180743f22005381b4816500ff422f2f004041ef00352f4000144ebadda0588f223946c8245606810008ed801639100b14cf342f0042202f00103243c4fc001e2042a74241e801f12609c68275fc18b24c023800d28312301800767fc6812f4300284aaf0048670c2203747f5281c4812f420028223946c8245606810008ed801639100b14cf342f00423243c4fc00182042a74241e801232609c68275fc18b24c023800d283767f73b01800b6816500fe9e2f2f00282f012f00486f003d4879000000004ebad4f62f2f00584879000000004878091a4879000000004ebafc0c4fef00244a806700fe68226f0024b3f946c824566600fe5873b9100b14d0b2af00206600fe4a73af002f75b9100b14cfb4816600fe3a226f001c93fc0000000041f9000000002f49002045f0e800121875922f4a00147781b682670e1481226f002045e8ffff13928800b1fc0000000066d82f2f0028486f00352f2f00482f40001c4ebaf8f8a742a34e260e122f003b227946c82456d3fc00095048c2822f410038242f003812114fef000ce5ab828312811239100b145e8283260e13c1100b145e207946c82456d1fc0009b332a350a379100f85984eb940027e002c7c46c7d48c222f0040202f001043f900000000e3ab2f43001846831f43001741e9ffe0528873a8ffff0c81000000ff6678b1c966ee91c81216162f0017240843e90020c28382821cc1bdfc46c7d4cc66ce2f2f00402f4000144eb94009da20588fa37946c7c72c4cd7440c202f00104fef003c4e754878091a4879000000002f4100184ebafa42508f222f00104a806600fd9a4cd7440c4fef003c4e7571fc8e53103008006000fd9c142f001b304260864e56ffe041eeffea2f0a2f0273b9100b14cc2f012d41ffe04ebadb34322effe2588f207946c82456d1fc0008ed803d6efff2fffd1d6efff4ffff2d6effeefff92d6effeafff5c2fc001e1039100b14cf2241a74143e901f1c08173fc18b24c010800d1c012309800707fc280ab407581b0ae0008657a43eeffead3ee0008206e000c7391d1c14a886d000082246e0008203c0000000071b20800b1c06c022008b0816740128020022f00486effea2f2effe041faf73a2d48ffe44e9042a7a3672f2effe04ebafbfe4fef0018206effe44a806744a1674eb94004d948a37946c7c72c588f242effd8246effdc4e5e4e75ad40b0ae00086742222e0008206e000c43f618e97391d1c14a886c804a8167d442001280200260902f02486efff52f2effe04e904fef000ca1674eb94004d948a37946c7c72c588f60aa202e000cd0824a806d3c727fb2806c02707fb08267942f00486effea2f2effe041faf6922d48ffe44e9042a7a3672f2effe04ebafb564fef0018206effe44a806600ff5860984a016700ff6042802f00486effea2f2effe041faf65a2d48ffe44e9042a7a3672f2effe04ebafb1e4fef0018206effe44a806600ff206000ff60203946c824560680c00000002f020c8007efffff62084a398000001567064280241f4e751239100b14cc207946c82456a7421039100b14cfd1fc0008ed807381c0822f0173fc18b24c010800487008004ebafa58508f4a8067c42039000000004a8066ba4a3946c7d8d866b44ab9460d173a66ac4ab9460d169457c0241f710044804e754fefff78428148d75cfc242f008c284245ef00289dce28024283264a06840000003c49ec002271b41800a346bc80650c41f648007e537190be80674252814dee001e47eb000cbdfc000000f066d82f02206f009442854e90588f91c80b0366000086528541e8001e45ea000cb1fc000000f066e84cd75cfc4fef00884e7571a800017c32bc8066b471a8000253804a80670a71a8000255804a8066a0a340e3a891c8868043f6883cab47be88642c2c08ad474c47600043f60800700c43e901ecd3c21791880042115288b0886700ff6e43f6883cab47be8865d4d3c2179188004211528860be428147f02800ab44b881651449f21800ab442242d3c11194983c5281b88164ec2c01ad474c47600449f21800528143f34800780c135401ecb88166ca528541e8001e45ea000cb1fc000000f06600ff286000ff3c487a25da2f2f00084ebafebc508f4e75203946c824560680c00000002f020c8007efffff62084a39800000156706241f42804e751239100b14cc207946c82456a7421039100b14cfd1fc0008ed807381c0822f0173fc18b24c010800487008004ebaf88a508f241f4e75203900000000b0b946c82456670442804e751039100b14cfa741c081b0b90000000066ea71b9100b14ccb0b90000000066dc6000ff724fefffec70312f0a2f02226f0020a342206f0024b08956c173014481b4886700008ea340e3a82439000000002f420014c4804a82665e4a886632a340244174fd45f21a00d08a45f90000000020320c0022005381b48165322f4900202f480024241f2240245f4fef00144ed12441a54045f21a0074fdd08a45f90000000020320c0022005381b48164ce241f245f4fef00144e754a8866f24680c0af0014241f245f23c0000000004fef00144e752f4100102f4800082f49000c4ebafeb4222f0010206f0008226f000c4a806700008a103946100b1d08000005667c703eb089677c7431b48966702f4100102f4800082f49000c4ebafcac222f0010206f0008226f000c4a806750a34081b9000000001039100b14cca367a36771802f004ebaf78c4fef000c4a80677048780020203c000000002f004eb94005a2b8a1674eb94004d948a37946c7c72c4fef000c241f245f4fef00144e7542806000fee04a3946c7d8d866f24ab90000000057c0a54183b900000000a1677100448023c0000000004eb94004d948588f241fa37946c7c72c245f4fef00144e7548780020203c000000002f004eb94005a2b8a1674eb94004d948a37946c7c72c4fef000c608e203900000000b0b946c8245667024e751039100b14cfa741c081b0b90000000066ec71b9100b14ccb0b90000000066de4ebafd7e4a8067d6a37900000000a379000000004eba22b8a1674eb94004d948a37946c7c72c588f4e75203900000000b0b946c8245667024e751039100b14cfa741c081b0b90000000066ec71b9100b14ccb0b90000000066de4ebafd244a8067d642b900000000a379000000004eba225ea1674eb94004d948a37946c7c72c588f4e75203946c824560680c00000002f020c8007efffff6232203946c82456a7421239100b14cf06800008ed80206f000c41e8ffdec28275fc18b24c021800af42d08122089280b4816408202f0008241f4e75a342b4af000865f02f012f004ebaf57a508f4a8067e2ab6f0008202f0008241f4e752f032f024ab90000000067084ebafcd64a806672203946c824560680c00000000c8007efffff6236223946c82456a7431039100b14cf06810008ed803040202f00100680ffffffde2408c48377fc18b24c032800d2829081af42b480640a202f000c241f261f4e75a343b6af000c65ee2f002f014ebaf4f0508f4a8067e0241fab40261f4e75203946c82456a7421239100b14cf77fc18b220790000000006800008ed8041e80022c2824c031800d081d088b0af00106600ff5c241f203900000000261f4e754fefffc4203946c824560680c000000048d74c0c0c8007efffff62000166af40b0af00446500015c223946c82456206f004091c12c48ddfcfff712802f41002473fc18b2200e4c41000220424a8266000132bdfc000062c762000128222f0044a342246f004043f218227391b48164000178a36f0020222f0044701e4c0018004aaf004866624ab900000000670001062f4100142f4800184ebafb84222f0014206f00184a80670000ec203946c8245606800008ed801439100b14cf3242a7422609c68275fc18b24c023800d083b0af0040660000c0262f0044b6b900000000660000b2a56f00482f2f00442f2f00442f41001c2f4800204ebaf3a6508f222f0014206f00184a80670000e8226f0040203c1001614e90af002441f1183c43f118422209227c100162fe93ef00241190080045e801b0139288005288b28866eea340b0af0048662c73fc18b2200e207c46c8245623d000000000a379000000004c410000222f004423c10000000023c0000000004cd74c0c202f00204fef003c4e754cd74c0ca36f0020202f00204fef003c4e752f2f00442f2f00442f41001c4ebaf2fe508f222f00144a806700ff5e4203206f0040203c1001614e226f004090af00241183183e1183183d1183183c41f1183c43f118422209227c100162fe93ef00246000ff4877912f4300206000fe86226f0044743248690001487900000000200f06800000003b2f002f4000282f410020246f004c2f48002445f2183c2f4a00344ebaed3214bc0053226f004c222f0020244145ea003f1382183d74021382183e224143e901e9202f00284fef000c2f490028206f00182f4a002c226f0028a542d3c8b488641826405288246f0040740915939800b4886700fe90528060dc246f00402640226f002cd3c85288159b9800200b60c6518f2039460e5e302f0b2f0a4a80671047f900000000b7f9460e5e2c670a4280245f265f508f4e75204041e800242f48000c2f082f40000c4eb94003567c226f000c588f4280246900282f1ba16745eaffe92f0aab672f2f001c2f3c400ba8762f4000204eb940012bd84fef0018202f0008b0b9460e5e4067165f8aa341b2806640245fa37946c7c72c265f508f4e75226f000c2051a167486a00054868fffb486affffa7672f092f4000204eb9400122544fef00185f8aa341202f0008b28067c02f1ba1672f0aab67a3402f2f001c2f3c400ba8762f4000204eb940012bd84fef0018202f0008b0b9460e5e40668a609e4ebaf8384a80670001004ab9460e5e30660000f64ab9460e70e0660000ec207c46c82456a74123d0000000001039100b14cfc28023c10000000071b9100b14cca567ad672f3c460e5e3823c00000000042b90000000042b9000000004eb94007ec604fef000c207946c82456a7411039100b14cf227900000000d1fc0008ed80c08173fc18b24c010800d1c071b098222f002f3c460e5e384eb94007edb041f90000000023c8460e5e28203c0000000023c0460e5e2c42b9460e5e342f3c4006d754a36742a7a167487800404878006e4eb94005829c4fef002023c0460e5e304a80672442a74879000000002f004eb9400570b82f3c400ce0c44eb9400314944fef00106000fe084e754ab9460e5e30670e203c00000000b0b9460e5e2c67024e754eb94006d75442b9000000004eba1c584ef94007893c598f4ab9460e5e30670e203c00000000b0b9460e5e2c6704588f4e754ebaf73e4a8067f42239460e5e40a340b08165e82e814eb94006d7544ebaf7224a8067d823d700000000a379000000004eba1c02a1674eb94004d948a37946c7c72c588f588f4e754feffff4222f0010206f00144ab9460e70e0677e4ab90000000066122f4800142f4100104fef000c4ef94007893c2f4100042e884ebaf6c2222f000420574a8067da4ab9460e70e067d22039000000002f4000084eb9400789e442b9000000004ebafe024ab9460e5e306726203c00000000b0b9460e5e2c66182f2f00082f3c460e5e384eb94007edb04fef00146000fce24fef000c4e75518f222f000c206f00104ab9460e70e067124ab9460e739a660aab40b0b9460e738e67102f4800102f41000c508f4ef94007909c2f4100042e884ebaf5ca222f000420574a8067dc4eb9400789e4508f6000fd7a598f4eb940031f282e804ebaf5a64a80672c4ab90000000066244a3946c7d8d8661c4ab9460d173a66144ab9460d1694660c2f174ebacaa02f400004588f2017588f4e75598f2f02203946c824560680c0000000222f000c0c8007efffff62084a39800000156708241f2001588f4e751039100b14cc207946c82456d1fc0008ed8075801039100b14cf2242a7422f09c08275fc18b24c020800487008002f41000c4ebaedea508f222f00044a8067b84ab90000000066b02f41000c241f588f6000ca144feffff4ab402f02222f0014206f0018b0816408241f4fef000c4e75203946c824560680c00000000c8007efffff62e44a398000001566dc1439100b14cc227946c82456d3fc0008ed801039100b14cf75822f42000ca742c08275fc18b22f2f000c4c020800487108002f4100102f48000c4ebaed56508f222f00084a8067944ab900000000668c4a3946c7d8d866844ab9460d173a6600ff7c4ab9460d16946600ff724ab9000000006600ff682f6f000400182f410014241f4fef000c6000f0a62f02ab40b0af00086406241f42804e75203946c824560680c00000000c8007efffff62e64a398000001566de1239100b14cc207946c82456a7421039100b14cfd1fc0008ed807381c0822f0173fc18b24c010800487008004ebaecae508f4a8067a84ab90000000066a02f2f000c206f000c486800064ebaf02c508f241fa3404e754e56ffc0223c000000002f02243c0000000020394004e1ec2d41ffc0b4b900000000670c202e0008242effbc4e5e4e754ab98000001267ec207c46c8245622100681c00000000c8107efffff62d6227c100b14ccaf427391b48165c812112050d1fc0008ed800c800000000057c075811239100b14cf71002242a7422f094480c28275fc18b24c021800487018002f00486effc04ebad2064fef00104a8067842240206900144a886700ff7a2239000000002039460d1684b1fc00000000661e2f012f002f2e00084e904fef000c242effbc2d400008202e00084e5e4e752f012f002f2e00084e904fef000c242effbc2d400008202e00084e5e4e7522794004e1ec2039800000122f024a806770203946c824560680c00000000c8007efffff625a207c100b14ccaf417190b280654c1010207946c82456a7421239100b14cfd1fc0008ed807180c28275fc18b2068000000c114c021800744dd1c141f00a00102800017390b4816612b3fc00000000660a71807256b280670810104280241f4e75a342b5b900000000a1674eb94004d948588f241fa37946c7c72ca3404e75af40b0af0004650e203c00000000b0b94004e1ec67024e754ab9400bc6c066f642af00044ef9400322284fefffec48d7040c4eba183020394004e1ec2079400bc6c00c800000000066044a88660a4cd7040c4fef00144e754ab98000001267ee203946c824560680c00000000c8007efffff62da71b9100b14ccaf41b28065ce203900000000a342b480650000fe223900000000a5435a81b6816500010a24680028240842a7068200000024486afff648780032a567a7672f0223c0000000004eb9400122544fef0018a343203900000000b680650000a445eaffec2f4a00104a806646487900000000a1672f2f0018ab672f022f3c400ba8764eb940012bd84fef00182039000000004a806746223900000000a34320015a80b680645ca3409081e788246f001095c0487900000000a1672f0aab672f022f3c400ba8764eb940012bd84fef0018203900000000a341b2806626a167486a000648780032486affffa7672f022f4000244eb9400122544fef00184aaf000c67944cd7040ca37946c7c72c4fef00144e75203900000000a5415a80b28054c0a37900000000710044806000fefa42806000fef44e56ff80703348d7040c226e000cb0ae0008670001a67220b2ae0008670002247431b4ae0008670002227632b6ae00086700022022394004e1eca34041f9000000002d48ffc0b089662a0c810000000057c020790000000074102d42ff9671004480b1fc000000006720b1fc000000006700008a2f092f2e00084ebabf34508f4cee040cff804e5e4e750c810000000066d84ab98000001267d0223946c824560681c00000000c8107efffff62bc73b9100b14ccaf43b68165b07231b2ae00086700025c7233b2ae0008670002147420b4ae00086694262eff9687b900000000b0b9000000006306a379000000004ebafd8e4cee040cff804e5e4e754ab9800000126700ff70207c46c8245622100681c00000000c8107efffff6200ff58247c100b14ccaf427392b4816500ff481d52ff9a2050a742d1fc0008ed801239100b14cf77aeff9a2f0377fc18b2c2824c031800487018002f00486effc02d49ff924ebacdee4fef0010226eff924a806700ff047231b2ae0008670000e27032b0ae00086600fef04ab9000000006700fee6222eff96a16742b90000000083b9000000004eb94004d9484cee040cff80a37946c7c72c588f4e5e4e75a36eff96a340b0896730203900000000222eff96c2804a81665020394004e1ec223c000000002f092f2e00082d41ffc04ebabdc4508f6000fe8e22394004e1ec243c000000002079000000002d42ffc00c810000000057c071004480b1fc000000006600fe4c6000fe684a896600fe58222eff964681c2804cee040cff8023c1000000004e5e4e75a56eff966000ff76a96eff966000ff6e76082d43ff966000ff642440206a001c4a886700fe0e222eff9683b9000000002039460d1684b1fc00000000660000861039100b14cca367a36771802f004ebad9024fef000c4a80672e48780020203c000000002f004eb94005a2b8508fa1674eb94004d948a37946c7c72c588f4cee040cff804e5e4e7548780020203c000000002f004eb94005a2b8508f60d0222eff9620390000000083b9000000004a806700fdfa538023c0000000004ebafb7e6000fdee2f004e90588fa1674eb94004d948a37946c7c72c588f60a2a367487800312d40ff924ebabc86508f24390000000073b9100b14cc202eff922d42ff964a8267000362b08265000364206effc02d48ff8e4a886700045c242800082d42ff96224143e90c112409d482207946c82456d1fc0008ed801639100b14cf2d42ff9ea742c68275fc18b24c023800d1c3d1eeff9e1628000175901d43ff9a764db682660002b84a80670002b271aeff9a226effc0b0a90008670003ba10104aaeff8e670002a02041d1fc8000666e101075b9800000027180b480670002de34012601203c00000000eb8b41f9000000002d48ffb042aeffacc4fc004422430483000000002d43ffbc2042243cb93897029489d1fc46c76dec2d42ffb8227946c82456247c100b14cf1d52ff9da7432440d3fc0008ed801d5affab142eff9d200a246effbcd5c02d4affa6c48377fc18b24c032800d3c2142effab1382a800247c100b14cf16123243a7432409c48377fc18b24c032800262effa62242d3fc100a4ece142effab13823800a743227946c82456d3fc0008ed801d52ffa9246effb02d49ffb452aeffb01d5aff9a142effa9246effb8d5c82d4affa2c48377fc18b24c0328002242142eff9ad3eeffb41382a8001639100b14cf3243a7432409c48377fc18b24c032800262effa22242d3fc100a4ece142eff9a138238004aaeffac6706116effabffe010eeff9a0c80000000006600ff082001e988224006800000184243e918322d40ff9a207946c82456a7431039100b14cf75fc18b2d1fc0008ed80c08342034c020800a742d1c01183980077fc18b21039100b14cfc0824c0308002040d1fc100a4ece4200118098005289b3eeff9a66b24aaeff8e6700019c207946c82456a7421039100b14cf327c004d77fc18b2d1fc0008ed80d1eeff9ec08234094c030800a7431182080075fc18b2206eff9e1039100b14cfc08336094c020800d1c0d1fc100a4ece10834aaeff8e670000c6207946c82456a7421039100b14cf2601d1fc000905a3d68343eeff99247c100a66f1c08275fc18b2d1c3d5c377fc18b24c020800a742119108001039100b14cfc0824c030800159108002d41ff924ebab93c222eff924aaeff8e6700faba226eff8e206900104a886700faacb1fc000000006600015a2f014ebadcd8588f4ebaf8266000fa964aaeff8e6600fd64207946c82456a7421039100b14cf77fc18b2d1fc0008ed80d1eeff9ec082744d4c03080071b00800b4806700fd364ebaf7e86000fa5871fc00ff2d40ff966000ff3242aeff8e6000fcb642aeff8e42aeff966000fcaa2041d1fc80006676101016398000000330432601eb8b2408b580340141f9000000002d48ffb022430483000000002d43ffbc4a0057c0c4fc00442042243cb938970294897100d1fc46c76dec2d42ffb844802d40ffac203c000000006000fd04207946c82456a7421039100b14cf327cffff77fc18b2d1fc0008ed80d1eeff9ec08234094c030800a7431182080075fc18b2206eff9e1039100b14cfc08336094c020800d1c0d1fc100a4ece10834aaeff8e6600fe686000ff28b3eeff8e6700f972206900104a886700fc42b1fc000000006700fc3842a72f012d41ff924e90508f222eff926000fc24a3672f014e90508f4ebaf6ce6000f93e42aeff966000fba84e56ffc0223c000000002f0220394004e1ecab422d41ffc0b4ae0008650e43f900000000b3f9000000006708242effbc4e5e4e754ab98000001267f0207c46c8245622100681c00000000c8107efffff62da227c100b14ccaf427391b48165cc12112050d1fc0008ed800c800000000057c075811239100b14cf71002242a7422f094480c28275fc18b24c021800487018002f00486effc04ebac6f84fef00104a8067882240206900184a886700ff7e2239000000002039460d1684b1fc00000000662a2f012f2e000c2f2e00082f004e904fef0010a1674eb94004d948a37946c7c72c588f242effbc4e5e4e752f012f2e000c2f2e00082f004e904fef0010a1674eb94004d948a37946c7c72c588f60d44e56ffa4227c46c8245648d71c0c24794004e1ec203c00000000761c26512d40ffc0b5fc0000000057c01239800000037100448030412239000000002408e7aab580240bb580b5fc00000000660002940a8000000000b2806700008223c00000000020110680c00000000c8007efffff626a2851a74375fc18b21039100b14cfd9fc0008ed80347c03f0267c46c76dce223c80006676c0834c020800d9c041ec18232d48ffb8206effb82248764d101075a1b68266107180206effc0b0a800086700019c101154aeffb8528147eb004445ea00200c818000667e66ca4ab98000001267000208207c46c8245620100680c00000000c8007efffff620001f073b9100b14cc2010af421639100b14cf3043b481650001f42608a742c68275fc18b206800008ed804c023800204345f008004ab9400bc6c0660002ca2f012f0aa367486effc02d41ffbc42b9000000004ebac5304fef0010222effbcb2b9000000006700035c42b90000000023c1000000004a80670001b045f900000000267900000000b7ca660002224a93670000c84ab900000000660000beb7fc0000000057c02f0b2200448128414eb94003146c42b9000000002079460d165c588fb7fc00000000670001c24a88670001944a906600018e41f9000000002d48ffb845f900000000206effb852aeffb8719891c8c0fc00182240d3fc46c7d8de203188000c80000000006704258088005888700cb08866e845ea000cb5fc0000000066c442932f0b4eb940031494b7fc0000000057c023cb00000000588f4480340c71807382b2806710a1674eb94004d948a37946c7c72c588f4cee1c0cffa44e5e4e754a34a8006700fe62207946c82456a7421039100b14cf77fc18b2d1fc0008ed80c0824c030800d1c042001180a8001039100b14cfc08242024c0308002040d1fc100a4ece1182a80020411028fff875b9800000027180b480670000ac2d41ffbc4ebab3d4222effbc528154aeffb847eb004445ea00200c818000667e6600fdca6000fdfcb280670623c0000000004ab900000000670000f873b9100b14cc203946c824561039100b14cf42b900000000b2b9000000006700012e42b90000000023c1000000002039000000004a806700ff264ab9000000006600ff1c0c800000000057c12f00240144824eb94003146c42b9000000002079460d165c2842588f42006000fed8101075b9800000037180b4806600ff4842132d41ffbc4ebab318222effbc6000ff424ab9400bc6a466d041f90000000047f9000000002d48ffb845f9000000006000fe3c4ab9000000006600fea44a8b660001402079460d165cb5fc00000000670000e64a886700fe884a906600fe8299cc264a41f9000000002d48ffb845f9000000006000fdf84cee1c0cffa442b90000000042b9000000004e5e4e752679000000004a8b67602f012f0aa367486effc02d41ffbc4ebac2644fef0010222effbcb2b900000000672042b90000000023c10000000045f9000000006000fd3a42b9000000006000fed84a80670aa543b6b9460d168467de42b90000000045f9000000006000fd122041744d41e80c1143f28a00a37900000000102900017791b483660e7180206effc0b0a80008674a10112d41ffbc23cb000000004ebaf10c222effbc6000ff624ab9400bc6a46600fda099cc264a6000ff1c4a806782a540b0b9460d16846700fcaa42b90000000045f9000000006000fca0a34b2d41ffbc23cb000000004ebaf0c2222effbc6000ff18b7fc0000000057c02f0b260044834eb94003146c42b9000000002079460d165c2843588fb5fc000000006700fe64264a4a8a6600fc9c42006000fd0a4fefffc048d74c7c4ebafac44ab90000000067104ab9460e70e06600047042b9000000004ab900000000660002c6203946c824560680c00000000c8007efffff63000108a3412039800065b8b2806700040e23c000000000263946c82456428273b9100b14cf2f41002879b9100b14cc247900000000203900000000b6b900000000670002944a8a6700035e4a80660003bc2a2f002842b90000000023c30000000023c50000000023c4000000002079460d165c4a82670000884a88670000824a90667c223c00000000207c46c7dd7643f9000000002010b0816704238088005888b1fc46c7dd8266ec207c46c7deae43f9000000002010b0816704238088005888b1fc46c7deba66ec4ebadf8223c0000000004a806700039241f90000000042902f084eb940031494a167a379000000004eb94004d948a37946c7c72c508f4cd74c7c4fef00404e75247946c82456a7451039100b14cf7dfc18b2d5fc0008ed809dce428247fad9d0c0854c060800d5c02f0e2f0a4e93508f4a806708a340220ee3a88480528e7a08ba8e66e42039800065b8a345ba80670001ea23c000000000263946c824561a39100b14cf1f45002f7d8579b9100b14cc2f4600283c7c01f1428047eafe4d0102670a73b3e800a345ba81675452804dee001e7208b28066e6af45ba84650001f64a324822660001ee203c400d301c23c0400d5f4c4a826700fe6e4ab98000001257c224790000000020390000000075024482b6b9000000006600fe62600000f02f0041ef00392f4000242f4100284ebab7e8207946c82456d1fc0008ed801a39100b14cf3245a7452c09cc857bfc18b24c056800d1c61c30e80030467c7f2a08ca86a7462e85486f0039202f00282f002f40002c4ebad4421a2f003b227946c82456d3fc00095048ca862f45003c1a11222f00302c2f003c4fef000ceda930452a088a8112851c39100b145e30462a08828513c1100b145e207946c82456d1fc0009b332a350a379100f85984eb940027e004dee001e202f002072085280b2806600fedc6000fef24ebadfc24a80670001a64ab9460e5e306600fd2a4ab9460e70e06600fd204ebae7106000fd182c2f0028bcb9000000006600fd62b8b9000000006600fd584a8a670001a04a806700fd7447f9000000004a82670a4ab900000000670001a24ab9000000006600fde82f0b4eb94003146c42b90000000023c30000000023c40000000043ef002c588f23d1000000006000fd2cbab9000000006700fe104a826700017297cb4dfad80042a77c0842a72f0b4e96528b4fef000cbc8b66eca37900000000263946c824561039100b14cf3c7c01f147eafe4d1f40002f7380428079b9100b14cc2f4100286000fdec203c400d31ae6000fe124a806740203c000000004ab9000000006600fd462f004eb94003146c42b90000000042b90000000023c30000000041ef002c588f23c40000000023d0000000006000fc84222f002842b90000000023c30000000023c10000000023c4000000006000fc64203c000000004ab9000000006600fce6609ea346bcb9000000006700fbf0a37900000000263946c82456428273b9100b14cf2f41002879b9100b14cc6000fbe64ebade284a806600fb9042b9000000006000fb8642b9000000006000fb8641f90000000042902f084eb940031494a167a379000000004eb94004d948a37946c7c72c508f6000fc6e4a806700fbd647f9000000004a826700fe6c4ab9000000006600fe624ebadb9cb5c06600fe584cd74c7c4fef00404e75a37900000000263946c824561a39100b14cf1f45002f7d8579b9100b14cc2f4600286000fc96202f00040c800000000567044efa038c41fa023020084e75400b3eac400b3e98400b7c67400b5413400b7a63000000004fefffec48ef030200082e802f4800044ebadff44cef030200084fef00144e754fefffe048ef0307000c2409d48006820008ed802e822f41000474000c8400000005660274012f4200084ebae0f20c8400000005660228004cef0307000c4fef00204efa031248794005a61c600648794005a8562239460d5c304fefffe048ef030d000c2609d68006830008ed802e832f42000476000c8100000005660276012f43000826014ebae0960c83000000056702200322004cef030d000c4fef00204e7516102f0071036100ff362600201f79034879400bb7044ef9400585e67110610000582f004879460e73864ef940078890610000124ef94003d722610000084ef94004c3746100fef841fafedc22300c004e7571104fef00186100fee44ef94003c986711061000012b48066064ef9400786ce4ef9400786fc4fefffec48ef030200082e802f4800044ebadf2c4cef030200084fef00144e752f082f01207946c8245673b9100b14cfc2fc18b2d1c173b9100b14ccd1fc0008eda271b01800221f205f4e750c820000000566344fefffe448ef0303000c2e8b2f4300044ebae7362f4000084cef0303000c4aaf00084fef001c67064ef94003a6246100ff9c24004efa01be0c8600000005662a4fefffec48ef030300042eaf005c4ebae5b62f40005c4cef030300044fef00142f006100ff682c00201f4efa01964eb94005213c4eb94007e9404ebaf89c4ef940052228564543544f5200004878ffff4878ffff4ebae52c4ef94004e4d04feffff048d703034ebadacc4a80670c4cd703034fef00104efae2824cd703034fef00102f0a4ab9460e70e04ef9400791ec4feffff048d703034ebae16e4a80670a4cd703034fef00104e754cd703034fef00104fefffe848d73c0c4ef94006d78c7c010c800000000566224feffff048d703034ebada604a80670a4cd703034fef0010600c4cd703034fef0010bc8065064ef940077b624ef940077b704efada264fefffa048d77cfc4ef9400023204eb9400339704a80671e4feffff048d703032f024ebae806588f4cd703034fef00104ef940083b7e4ef940083b062f2e00084878ffff4eb940031ee04feffff448d703022f004ebae634588f4cd703024fef000c4ef94004e1f44feffff048d703034ebae7144a804cd703034fef0010660c2279400cfeda4ef9400322ec4e7500000000000000004ef9400365500000000000004ef9400334de0000000000004ef94007982200000000000000004ef94003a53600000000000000004ef94003cda00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000ffffffffffffffff31000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000002000000000000000000000000000000000000000000030000000000000000000000000000000000000000000400000000000000000000000000000000000000000005000000000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000ffffffffffffffff330000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000003100000000000000000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000031000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000002000000000000000000000000000000000000000000030000000000000000000000000000000000000000000400000000000000000000000000000000000000000005000000000000000000000000000000000000000000ff000000000000000000000000000000000000000000564543004f464600465744000052455600564543544f522047454e455241544544004e4f204348414e474500ab204d414348494e453a564543544f5220bb0041525000564543544f52004300432300440044230045004600462300470047230041004123004200545950450044454e5300524f4f54005343414c00474154450041434e540053454544005350414e004f46535400524f540052505400444952004f43540056454c0050524f420048554d4e00303031205354415449430030303220464c455800434852004d494e004d414a00444f520050454e540000000000000000000000000000000000000000000000000000564543544f5220535243000000564543544f5220414d50203100564543544f5220414d502032000b0b00010030010c0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033203132000007000000400000050006000000020000000000000056000000010000000000000000000000000000000000000000000102030c060d050407080a090b0e0f1010000102030405060708090a0b00000d0e0f100b047e7f7f0c183f4001097f1517000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fff05ad0ab506ad04a900000000000000000000000000000000000000000f100b047e7f7f0c183f40010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0b000120300c0c00000000000000000000000000000000000000000000000100000000000000000400fff10000000000000000000000000300000100000000000000000000000003000003000000000000000000000000030000050000000a000000000000004c02000001000000130000004c00000074020000010000001e00000058000000000000000300000027000000c00000055e020000010000003e0000016a0000000a01000007000000450000061e0000013e0200000100000054000000b4000000040100000300000063000000b0000000040100000300000073000000b800000192010000030000007c000000800000003001000007000000860000117000000048020000010000009700001120000000500200000100000000000000000000000003000006000000a80000075c0000016402000001000000b9000000900000000000000003000000c3000000940000000401000003000000d3000000180000002701000007000000dc000000000000001801000007000000e60000011e0000004401000007000000f1000000ec00000012010000070000028c000008c00000029e02000001000000fd00000b5e00000132020000010000010a0000010e0000001001000007000001130000003f00000010010000070000011b000000fe00000010010000070000012500000c90000001fa02000001000001310000005000000030010000070000013900000e8a0000001e020000010000014700000ea80000001e020000010000015500000ec60000001e020000010000016300000ee40000001e020000010000017100000f020000001e020000010000017f00000f200000001e020000010000018d00000f3e000000ae020000010000019800000fec0000007402000001000001a500001060000000c002000001000001c2000011b8000001dc02000001000001d1000000500000003001000007000001d9000013940000000a02000001000001e30000139e0000000a02000001000001ec000013a80000000802000001000001f5000013b00000003e0200000100000168000013ee0000003e020000010000015a0000142c0000003e02000001000001ff0000146a000000d002000001000002080000153a000000d002000001000001840000160a000000d00200000100000176000016da000000d0020000010000014c000017aa000000d0020000010000013e0000187a000000d002000001000002110000194a000002e6020000010000022200001c300000068402000001000005ad0000024a00000101010000030000023000000000000000000000000300000239000022b4000000460200000100000249000022fa000000cc020000010000025a000023c6000000b00200000100000274000024760000000c02000001000002870000256000000104020000010000029500002a360000033c02000001000002a40000034b0000091a01000003000002ac00002d72000001ba02000001000002bb00002f2c0000008402000001000002ca00000c8a0000000401000003000002d4000031540000003602000001000002e1000000ac0000000401000003000002eb000000a80000000401000003000002f5000000a400000004010000030000037a00000c6600000004010000030000002100000c6e0000001801000003000003000000334a0000005a020000010000030a000000980000000401000003000003160000009c000000040100000300000322000033a40000005a020000010000032e000000a000000004010000030000033b00000162000000080100000700000347000000b00000000801000007000003520000008800000000000000030000035c0000005000000000000000030000036600000048000000000000000300000370000000440000000000000003000003770000005400000000000000030000037f000000c200000006010000070000038b000000bc00000006010000070000039e0000008c0000000000000003000003a6000000400000000000000003000003b00000004c0000000000000003000003b9000000b80000000401000007000003c100000c6a0000000401000003000003d000000c8600000004010000030000035500000c9a0000000401000003000003da00000c960000000401000003000003e500000c920000000401000003000003f000000c8e000000040100000300000000000000000000000003000007000003fc46c82456000000000000fff1000004050008ed80000000000000fff10000040e0000576200000000000000010000041d0000560a000000000000000100000425000053f80000000000000001000004310000576e0000000000000001000004400000546c00000000000000010000044e00005532000000000000000100000462000054fe00000000000000010000046f0000555200000000000000010000047c0000577a00000000000000010000048b000057880000000000000001000004f500000cd800000000000000030000049a00000d260000000000000003000004a2000056400000000000000001000004ae000056700000000000000001000004ba000056b20000000000000001000004c7000056aa0000000000000001000004d7000056b60000000000000001000004e3000056bc0000000000000001000004f000000df80000000000000003000004fd00000e6000000000000000030000050a00000eae0000000000000003000005170000019400000030110000070000052c0000017400000014110000070000053f000001880000000c1100000700000552000024820000000c12000001000005630000248e000000d2120000010000056f00002664000000d8120000010000057d0000273c0000004c120000010000058d000027880000006612000001000005a0000027ee000001e812000001000005b4000029d60000006012000001000005c800002fb00000013a12000001000005dd000030ea0000001012000001000005ee000056c6000000001000000100000600000030fa0000005a120000010000060c0000318a000001c0120000010000061300005648000000001000000100000626000033fe00000072120000010000062e00003470000000c6120000010000063e00003536000002981200000100000648000001c40000000b1100000700000658000037ce000000f2120000010000066c000038c00000010a1200000100000680000039ca0000002e1200000100000694000039f80000006412000001000006a900003a5c0000009812000001000006b600003af40000005412000001000006c400003b480000004412000001000006d100003b8c0000008012000001000006df00003c0c000000c2120000010000077000000ca00000000010000003000006e700003cce0000008212000001000006f500003d50000000fc12000001000006fd000000c800000024110000070000070900000ddc0000000010000003000007170000570200000000100000010000072400003e4c000000a4120000010000073100003ef00000002a120000010000073e00003f1a000001821200000100000751000057540000000010000001000007640000409c000007be120000010000076b00000dc00000000010000003000007790000485a0000011212000001000007810000496c00000532120000010000078900004e9e0000052a120000010000079400000cbc0000000010000003000007a2000053c80000000010000001000007b2000053e00000000010000001000007bf000054180000000010000001000007ce0000545e0000000010000001000007dc000054660000000010000001000007eb000054ea0000000010000001000007f5000054f40000000010000001000007ff000054ba00000000100000010000080d000054d600000000100000010000081d0000550c00000000100000010000082a0000551c0000000010000001000008390000557e000000001000000100000848000055be000000001000000100000857000055f4000000001000000100000864000056120000000010000001000008700000562400000000100000010000087d0000565600000000100000010000088a00005686000000001000000100000898000056c20000000010000001000008a4000056d40000000010000001000008b00000572e0000000010000001000008be00005754000000001000000100766563746f722e63006d675f6469727479006d675f666f7277617264006d675f736176656400766563746f725f67656e65726174652e706172742e30007363616c65730067656e657261746f725f70616765007372635f706167655f7265616479007372635f706167655f736f75726365007372635f7061676500666f726d6174732e370067656e657261746f725f776964676574007365636f6e646172795f77696467657400766563746f725f6d6964695f70616765006d6964695f76696577006d6964695f706167655f6275696c74007469746c65732e3200666f726d6174732e31006d6964695f6e616d6573006d6964695f6c61796f7574006d6964695f636f6e74726f6c006d6964695f6d61780066697273742e33006d6964695f62797465006d6964695f666f726d617400726f6f74732e30006d6964695f666f726d61745f30006d6964695f666f726d61745f31006d6964695f666f726d61745f32006d6964695f666f726d61745f33006d6964695f666f726d61745f34006d6964695f666f726d61745f35006d6964695f7061676531006d675f706167655f7669657700647261775f67656e657261746f725f7769646765742e706172742e3000666f726d61745f636f6e74726f6c00726f6f74732e3600666f726d61745f313000666f726d61745f3800666f726d61745f3600666f726d61745f313100666f726d61745f3900666f726d61745f37006d6964695f7365745f636f6e74726f6c006d6964695f67656e6572617465006c6f636b65642e3400766563746f725f6d6964695f79657300766563746f725f6d6964695f6b6e6f6200766563746f725f6d6964695f61737369676e2e706172742e3000766563746f725f6d6964695f61737369676e00736176655f73657474696e67730067656e65726174655f747261636b0073746167696e67006368616e67655f636f6e74726f6c0067656e657261746f725f7669657700656469745f7669657700706f6f6c5f636f6e7465787400706f6f6c5f62616e6b00706f6f6c5f7061727400706f6f6c5f747261636b00706f6f6c5f666c657800706f6f6c5f62726f77736500706f6f6c5f64697265637400706f6f6c5f73746174696300706f6f6c5f70656e64696e6700706f6f6c5f6c6162656c730068616e646c6572732e38006d675f616374697665006d675f7365636f6e64006d675f637572736f72006d675f746f70006d675f6d696e65006d675f6172705f70616765006d675f6172705f73657475705f736c6f7473006d675f7365656e006d675f6f70656e6564006d675f73686f776e006d675f6b657973006c6173745f7472616e73706f7274006c617965725f67656e0073686f776e5f62616e6b0073686f776e5f706172740073686f776e5f747261636b0042414e4b5f50545200504152545f4f46460073745f6e616d655f7265706c61790073745f6e616d650073745f726f775f747970650073745f6d61696e5f7265706c61790073745f7372635f636f6d6d6f6e0073745f63686f6f7365725f726f775f747970650073745f6e616d655f7069636b0073745f706f6f6c5f6b696e640073745f656469745f7265706c61790073745f647261775f7265706c61790073745f656e6373002e706f6f6c5f73746f636b002e6c6973745f73746f636b002e7469746c655f73746f636b002e7469746c655f756e7369676e6564002e7469746c655f706f6f6c002e7469746c655f706c61696e006d675f6c6973745f6b657973006d675f706167655f6b657973006d675f706167655f656e637300766563746f725f636f6e74726f6c5f6e616d657300766563746f725f7363616c655f6e616d657300766563746f725f636f6e74726f6c5f6d617800766563746f725f6e6578745f7365656400766563746f725f7061636b00766563746f725f756e7061636b00766563746f725f67656e657261746500766563746f725f747261636b5f656d70747900766563746f725f77726974655f70687261736500766563746f725f7369676e65645f747261636b00766563746f725f76616c69646174655f706172740073745f76616c69646174655f706172740073745f73746f636b5f76616c69646174650073745f73656c65637465640073745f6b65790073745f73746f636b5f706f6f6c5f6f70656e0073745f747970650073745f63686f6f7365725f747970650073745f61737369676e00766563746f725f64656661756c74730073745f706f6f6c5f63686f6963655f647261770073745f706f6f6c5f63686f6963655f6f70656e0073745f706f6f6c5f63686f6963655f6c6566740073745f706f6f6c5f63686f6963655f72696768740073745f706f6f6c5f6c6566740073745f706f6f6c5f72696768740073745f647261775f706167650073745f73657475705f706167650073745f6b6e6f620073745f73657475705f6b6e6f62006d675f7061676500766563746f725f6d696469006d675f706167655f6c61796572006d675f706167655f73697465006d675f6172705f7365747570006d675f747261636b5f746170006d675f6e6f74655f73657475705f64726177006d675f73746f636b5f6e6f74655f64726177006d675f6b6579006d675f6c6973745f6c61796572006d675f6b6e6f62006d675f7469636b0073745f75695f7469636b0073745f656469745f6c617965720073745f6d616368696e655f6e616d650073745f7372635f6e616d65730073745f6d61696e5f636f6d6d69740073745f7372635f636f6d6d69740073745f7372635f636f6d6d6974320073745f6e616d655f610073745f6e616d655f620073745f73657475705f6f70656e0073745f63686f6f7365725f6f70656e0073745f73657475705f726f770073745f63686f6f7365725f726f770073745f73657475705f65646974360073745f73657475705f64726177360073745f7469636b5f686f6f6b0073745f7372635f647261770073745f706f6f6c5f6f70656e0073745f6c6973745f647261770073745f706f6f6c5f7469746c650073745f76616c6964617465006d675f7461705f73697465006d675f73657475705f73697465006d6f647765726b5f73746f636b5f34303033363534385f3800000000063400000301000000b000000650000003010000024a0000067200000301000000d4000006bc0000020100001170000006fe00000301000002460000070400000301000000b40000070a00000301000002420000071000000301000000b00000071600000301000000b80000072600000201000011200000077e00000301000000900000078e0000030100000094000007a6000003010000024a000007ce00000301000000bc000007d600000301000000c2000007ec0000630100000018000007f400000301000000ce0000080a00000301000000d40000081c00006301000000ec0000088800006301000000180000089a0000030100000246000008a000000301000000b4000008a60000030100000242000008ac0000030100000094000008b200000301000000b800000eb800006301000000ed00000ed600006301000000ee00000ef400006301000000ef00000f1200006301000000f000000f3000006301000000f100001fda000003010000034a0000208c0000030100000040000022d00000110100000011000022e600001101000000220000233200006301000000ec0000236a000063010000010e00002ade0000030100000c6500002c2000000301effea1fe00002c500000030100000c6500002e0400006301000001880000317200000301000000a80000318000000301000000a40000322e0000030100000c66000032960000030100000c66000032ba0000110100000011000032fc0000030100000c66000033080000030100000c8a0000332a00001101000000220000336600000301000000a80000337400000301000000a40000338400000301000000980000338a000003010000009c000033c000000301000000a8000033ce00000301000000a4000033de0000030100000098000033e4000003010000009c0000361200000301000000a40000368c00000301000000ac0000369200000301000000a0000036a000000301000000a4000036a600000301000000a8000038e800000301000000ac000038f600000301000000a80000390c00000301000000a400003912000003010000009c0000391800000301000000a00000396c0000630100000162000039d40000630100000162000039ea000003010000009c00003a04000063010000016200003a3a000003010000009800003a40000003010000009c00003ab8000003010000009c00003aca000063010000016200003d5600006301000000c800003d5e0000030100000ddc00003d6e000003010000008800003db8000002010000570200003e0a000002010000075c00003ebc000002010000570200003ed6000003010000005000003efa000002010000570200003f34000002010000570200003fac00000301000000440000408a0000030100000048000040e80000020100005702000041000000030100000dc0000041080000030100000ddc0000412800000201000057020000417800000301000000540000417e00000301000000480000418600000301000000480000423400000301000000500000423a00000301000000540000427800006301000000c80000429800006301000000c8000042a80000020100005702000042b40000030100000dc0000042d600000301000000540000430a00000301000000540000431600000201000022b40000433e00001101000000110000436c00001101000000220000438800000301000000540000439600000301000000480000448200006301000000c20000449e00006301fffffcd5000045ac00006301000000c8000046e200000201000024760000478200006301fffffcd5000047b000006301000000c20000482600000201000024760000486000006301000000c8000048800000030100000088000048c600000201000057020000491800000201000022fa0000498200006301000000c8000049900000020100005702000049b40000020100005702000049be00006301000000c8000049ca000003010000008c00004ab6000003010000004000004ac8000003010000004c00004ad2000003010000005000004ad8000003010000004c00004b060000030100000ddc00004b1c000003010000008800004b2a0000030100000dc000004b6c000002010000409c00004b84000003010000008800004b960000030100000ddc00004b9e000003010000008800004c54000003010000008c00004c76000003010000004000004c7c000003010000004c00004c86000003010000005000004c8c000003010000004c00004ca80000030100000ddc00004cbc000003010000008800004d2c0000030100000dc000004d60000003010000004000004d66000003010000005000004d94000003010000004c00004d9c000003010000005000004da2000003010000004c00004db2000003010000005000004dca000003010000005000004de6000003010000004000004e08000003010000004800004e3c000003010000005000004e52000003010000004800004e640000030100000ddc00004e78000003010000008800004e880000030100000dc000004ebe000003010000009c00004ef20000030100000c6a00004f1c0000030100000c9600004f360000030100000c8a00004f3c0000030100000c9600004f420000030100000c9200004f480000030100000c8e00004f64000002010000318a00004fae0000030100000c8600004fcc0000030100000c9a0000503c0000030100000c6a000050bc0000030100000c96000051bc0000030100000c92000051c60000030100000c8e000052020000030100000c9a000052080000030100000c960000520e0000030100000c8e0000521a0000030100000c92000052240000030100000c6a0000524e0000030100000c6a0000528c0000030100000cbc000052a40000030100000c9a000052aa0000030100000c8a000052b00000030100000c96000052bc0000030100000c8e000052c20000030100000c92000052d00000030100000c8a000052d60000030100000c96000052dc0000030100000c92000052e20000030100000c8e000052ec0000030100000ca0000053000000030100000c6a0000530a0000030100000c6a00005336000003010000009c0000534000000301000000a00000535c0000030100000c9a000053a40000030100000c6a000053f4000002010000560a0000008c0000030100000058000002ee000063010000016a0000062800000301000000b40000063e00000301000000b80000065800006301000001940000066000000301000001820000066600006301000000800000066c00000301000000ce0000078600000301000000b40000079800000301000000b8000007ae0000110100000000000007b600000301000000bc000007e000000301000000c1000007fe000063010000000000000804000003010000018200000810000063010000011e00000bb6000063010000010e00000c22000063010000003f00000c5000006301000000fe00000cec000011010000000c00000d08000063010000005000000d36000011010000000400000de4000063010000017400000dfe000011010000000d00000e42000011010000000800000e8c000003010000009000000e9400006301000000ec00000eaa000003010000009000000ec8000003010000009000000ee6000003010000009000000f04000003010000009000000f220000030100000090000010a4000063010000018800001202000063010000017400001236000011010000000d0000131a00001101000000080000132a00006301000000500000134c0000110100000004000013ce000011010000000d000013e800001101000000080000140e00006301000001740000144c0000630100000050000019ba00006301000000fe00001b6e00006301000000fe00001d66000003010000024a00001e02000003010000024a00001fa80000030100000000000020720000030100000000000021c0000003010000000000002246000003010000000000002256000003010000000000002aaa000003010000034b00002b00000003010000039b00002bc4000003010000024a00002bd2000003010000024a00002bdc000003010000034b00002c26000003010000034b00002cd000000301000003c400002d3c000003010000034b00002f880000030100000c8a0000315600000301000000ac000031b20000030100000c66000031d20000030100000c6e000032040000030100000c6e000032f20000030100000c8a0000334c00000301000000ac000033a600000301000000ac00003476000003010000009c0000350a00000301000000a40000352e0000030100000098000035be000003010000009c0000373400006301000001c4000037e000006301000001620000393600000301000000a40000396000006301000000b0000039a8000011010000002c00003a72000003010000009c00003aa8000003010000009800003b5c0000030100000c8a00003bfa0000030100000c8a00003c8e0000030100000c8a00003cb20000030100000ca000003d320000030100000c8a00003dfe000003010000005000003f72000003010000004800003f80000003010000004400003fbe000003010000004400003fd6000011010000003f00003ff600000301000000480000400000000301000000440000401c00001101000000430000403a00000301000000480000407c0000030100000044000040da00006301000000c8000040f000000301000000880000422400000301000000500000426200000301000000540000429e0000030100000088000043820000030100000048000043cc00000301000000480000448a00006301000000bc0000477600006301000000bc0000487a0000030100000ddc0000490c0000030100000050000049a4000003010000008c00004ae40000030100000ddc00004aea000003010000008800004afc000003010000005400004b4000006301000000b800004b4a000003010000005800004c5a000003010000008800004c92000003010000008800004c9e000003010000005400004cfc00006301000000b800004d020000030100000dc000004d0c000003010000005800004d16000003010000005400004d4600006301000000b800004d50000003010000005800004d70000003010000004000004da80000030100000dc000004dd00000030100000dc000004e420000030100000ddc00004eac000003010000009c00004ec400000301000000a000004f100000030100000c8600004f160000030100000c9a00004f7000000301b9382ef800004f9000000301b9382dcc00004fba0000030100000ca0000050ac0000030100000c86000050b20000030100000c9a000051dc0000030100000ca0000051e60000030100000ca0000051f00000030100000c66000052920000030100000c66000052f20000030100000c660000534a0000030100000cbc0000537a0000030100000cbc000053860000030100000cbc00000ca40000030100000cd800000ca80000030100000d2600000cc00000030100000cd800000cda000002010000318a00000cde000002010000318a00000ce2000002010000318a00000cf4000002010000318a00000cf8000002010000318a00000cfc000002010000318a00000d280000020100003c0c00000d3e0000020100003c0c00000d540000020100003c0c00000d6a0000020100003c0c00000d800000020100003c0c00000d960000020100003c0c00000dc40000030100000df800000de00000030100000e6000000de40000030100000eae00000dfa000002010000409c00000dfe000002010000409c00000e02000002010000409c00000e14000002010000409c00000e18000002010000409c00000e1c000002010000409c00000e2e000002010000409c00000e32000002010000409c00000e36000002010000409c00000e62000002010000409c00000e66000002010000409c00000e6a000002010000409c00000e7c000002010000409c00000e80000002010000409c00000e84000002010000409c00000eb0000002010000485a00000ec6000002010000485a00000edc000002010000485a00000ef2000002010000485a00000f08000002010000485a00000f1e000002010000485a000000000000020100000e8a000000040000020100000ea8000000080000020100000ec60000000c0000020100000ee4000000100000020100000f02000000140000020100000f2000000050000011010000004a00000054000011010000004c00000058000011010000004f0000005c00001101000000510000006000001101000000540000006400001101000000560000006800001101000000580000006c000011010000005b00000070000011010000005d0000007400001101000000600000007800001101000000620000007c000011010000006500000080000002010000187a0000008400000201000017aa00000088000002010000142c0000008c00000201000013ee0000009000000201000016da00000094000002010000160a0000009800000201000013a80000009c000002010000153a000000a0000002010000139e000000a4000002010000146a000000a80000020100001394000000ac00000201000013b0000000b000000201000033a4000000b4000002010000334a000000cc0000110100000043000000d80000020100002476000000dc000002010000075c000000e000000201000022fa000000e400000201000022b40000011e000011010000006700000122000011010000006c0000012600001101000000710000012a00001101000000760000012e000011010000007b0000013200001101000000800000013600001101000000850000013a000011010000008a0000013e000011010000008f0000014200001101000000940000014600001101000000980000014a000011010000009c0000014e00001101000000a00000015200001101000000a40000015600001101000000a80000015a00001101000000ad0000015e000011010000000c0000016200001101000000b20000016600001101000000bd0000017400001101000000c60000017800001101000000ca0000017c00001101000000ce0000018000001101000000d20000018400001101000000d600000194000011010000006700000198000011010000006c0000019c0000110100000071000001a00000110100000076000001a4000011010000007b000001a80000110100000080000001ac0000110100000085000001b0000011010000008a000001b4000011010000008f000001b80000110100000094000001bc0000110100000098000001c0000011010000009c002e73796d746162002e737472746162002e7368737472746162002e72656c612e74657874002e72656c612e64617461002e627373002e726f646174612e737472312e31002e72656c612e726f6461746100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000100000006000000000000003400005796000000000000000000000004000000000000001b00000004000000400000000000007e7800000f900000000900000001000000040000000c0000002b000000010000000300000000000057cc00000f48000000000000000000000004000000000000002600000004000000400000000000008e08000001d40000000900000003000000040000000c000000310000000800000003000000000000671400000000000000000000000000000004000000000000003600000001000000320000000000006714000000db000000000000000000000001000000010000004a000000010000000200000000000067f0000001cf000000000000000000000002000000000000004500000004000000400000000000008fdc0000036c0000000900000007000000040000000c00000001000000020000000000000000000069c000000be00000000a0000007b000000040000001000000009000000030000000000000000000075a0000008d70000000000000000000000010000000000000011000000030000000000000000000093480000005200000000000000000000000100000000", + "sha256": "e79fcc82ce60afbc23c8f7fd39725721cf6d531801f3a422b8638843c70f7f07", "stockCopies": [ { "section": 1, - "offset": 12948, + "offset": 22370, "source": 1073951960, "bytes": 6, "sha256": "d6c9f1f60272197a17511f496fc19dd21ddd7df5f1f1ec0cab7a16cad60b0609" }, { "section": 1, - "offset": 12960, + "offset": 22382, "source": 1074239516, "bytes": 6, "sha256": "89c50ac3ca041fdf5647ec5ee2c3580f9a67dd79f0b5cc15ceadda4b9e9bede0" }, { "section": 1, - "offset": 12972, + "offset": 22394, "source": 1073980718, "bytes": 8, "sha256": "cae34bf50383462ed4f92d8044e3021247edb8bf69c17a9c7ead62f6edf79510" }, { "section": 1, - "offset": 12986, + "offset": 22408, "source": 1073991064, "bytes": 8, "sha256": "ed71ef874312890edc87cef7e19cd8c0f8ac4ac9b90182c2364f78d3a4567f45" + }, + { + "section": 1, + "offset": 22356, + "source": 1073964360, + "bytes": 8, + "sha256": "e7935464f6aea76650f55814efc9b45785485164937f3bd5ed6f2a4d384b8d4b" } ], "placement": "linked", @@ -3383,6 +3390,50 @@ "kind": "jmp", "writeLength": 8, "note": "VECTOR native selection/editor access" + }, + { + "address": 1074281212, + "guardLength": 10, + "guardSha256": "d611d680ad5031e96fe61f954ea40fd87a76bbc961c6d2deefdfc55935dd9f1e", + "unit": "vector", + "symbol": "mg_tap_site", + "target": null, + "kind": "jmp", + "writeLength": 10, + "note": "Double-tap TRACK in MIDI mode opens MIDI NOTE SETUP, with the generator list" + }, + { + "address": 1074061802, + "guardLength": 10, + "guardSha256": "b40743bf9a64ff977ac996a4a3c34f6582d8fcda08b78cf52fdf634c94c54959", + "unit": "vector", + "symbol": "mg_page_site", + "target": null, + "kind": "jmp", + "writeLength": 10, + "note": "VECTOR controls on a VECTOR MIDI track's ARP page" + }, + { + "address": 1073947264, + "guardLength": 8, + "guardSha256": "de77e904028311689866c543af3ce42a7fcfa1e3fdc531807fc98eaf0689d1cf", + "unit": "vector", + "symbol": "mg_setup_site", + "target": null, + "kind": "jmp", + "writeLength": 8, + "note": "FUNC+AMP turns a VECTOR MIDI track's ARP page to its second page" + }, + { + "address": 1073964360, + "guardLength": 8, + "guardSha256": "e7935464f6aea76650f55814efc9b45785485164937f3bd5ed6f2a4d384b8d4b", + "unit": "vector", + "symbol": "mg_note_setup_draw", + "target": null, + "kind": "jmp", + "writeLength": 8, + "note": "MIDI NOTE SETUP lists the MIDI generators in its left half" } ], "refs": [ diff --git a/src/engine/assets/resident-dsp.json b/src/engine/assets/resident-dsp.json index 174ba15b1..a028a47f4 100644 --- a/src/engine/assets/resident-dsp.json +++ b/src/engine/assets/resident-dsp.json @@ -335,7 +335,7 @@ ] } ], - "sourceCommit": "f7fbcc8a655ca63d8c01898a242f771291a41c3e", + "sourceCommit": "cd988717aa9d86a86887cd309ce0df8a2aa88511", "moduleVersions": { "spectrum": "0.1.1-experimental", "modulation": "0.1.1-experimental", @@ -358,7 +358,7 @@ "previewvol": "0.1.2-experimental", "cc-map": "0.1.2-experimental", "sidechain-compressor": "0.2.0-experimental", - "vector": "0.2.5-experimental", + "vector": "0.3.0-experimental", "playmodes": "0.2.0-experimental", "mute-modes": "0.2.2-experimental", "recorder-loop-fix": "0.1.0-experimental", diff --git a/src/engine/assets/rom-packages.json b/src/engine/assets/rom-packages.json index 5499cf25b..f2717af4d 100644 --- a/src/engine/assets/rom-packages.json +++ b/src/engine/assets/rom-packages.json @@ -494,7 +494,7 @@ "sha256": "fdba0ffd31b7932ceb1ded3bde9a976b6f148ae96fc73a4efc4fedf6fb692341" } ], - "sourceCommit": "f7fbcc8a655ca63d8c01898a242f771291a41c3e", + "sourceCommit": "cd988717aa9d86a86887cd309ce0df8a2aa88511", "moduleVersions": { "spectrum": "0.1.1-experimental", "modulation": "0.1.1-experimental", @@ -517,7 +517,7 @@ "previewvol": "0.1.2-experimental", "cc-map": "0.1.2-experimental", "sidechain-compressor": "0.2.0-experimental", - "vector": "0.2.5-experimental", + "vector": "0.3.0-experimental", "playmodes": "0.2.0-experimental", "mute-modes": "0.2.2-experimental", "recorder-loop-fix": "0.1.0-experimental", diff --git a/src/engine/assets/usb-audio-packages.json b/src/engine/assets/usb-audio-packages.json index 1921b380f..7877c6d6f 100644 --- a/src/engine/assets/usb-audio-packages.json +++ b/src/engine/assets/usb-audio-packages.json @@ -553,7 +553,7 @@ } ] }, - "sourceCommit": "f7fbcc8a655ca63d8c01898a242f771291a41c3e", + "sourceCommit": "cd988717aa9d86a86887cd309ce0df8a2aa88511", "moduleVersions": { "spectrum": "0.1.1-experimental", "modulation": "0.1.1-experimental", @@ -576,7 +576,7 @@ "previewvol": "0.1.2-experimental", "cc-map": "0.1.2-experimental", "sidechain-compressor": "0.2.0-experimental", - "vector": "0.2.5-experimental", + "vector": "0.3.0-experimental", "playmodes": "0.2.0-experimental", "mute-modes": "0.2.2-experimental", "recorder-loop-fix": "0.1.0-experimental", diff --git a/src/engine/assets/utility-packages.json b/src/engine/assets/utility-packages.json index ce3c42a8e..6c2dec8c1 100644 --- a/src/engine/assets/utility-packages.json +++ b/src/engine/assets/utility-packages.json @@ -3,7 +3,7 @@ "kind": "authored-utility-packages", "stockRead": false, "revision": "b8deefc88b2c3e5f3c6158e364eb741df1924e1d", - "sourceCommit": "f7fbcc8a655ca63d8c01898a242f771291a41c3e", + "sourceCommit": "cd988717aa9d86a86887cd309ce0df8a2aa88511", "moduleVersions": { "spectrum": "0.1.1-experimental", "modulation": "0.1.1-experimental", @@ -26,7 +26,7 @@ "previewvol": "0.1.2-experimental", "cc-map": "0.1.2-experimental", "sidechain-compressor": "0.2.0-experimental", - "vector": "0.2.5-experimental", + "vector": "0.3.0-experimental", "playmodes": "0.2.0-experimental", "mute-modes": "0.2.2-experimental", "recorder-loop-fix": "0.1.0-experimental",