diff --git a/sdk/octabam/modules/euclid/README.md b/sdk/octabam/modules/euclid/README.md index e8ba532e4..219e6da62 100644 --- a/sdk/octabam/modules/euclid/README.md +++ b/sdk/octabam/modules/euclid/README.md @@ -23,7 +23,13 @@ FX2. Their descriptors, DSP code and dispatch entries stay stock. FREQ is the base cutoff for LP/BP/HP/NOTCH and the base gain for AMP. DEPTH is bipolar: its center leaves the destination static, positive values increase it on a pulse, and negative values decrease it. RES controls the four filter -types and is inert for AMP. MIX zero is exact dry passthrough. +types and is inert for AMP. MIX zero is exact dry passthrough and 127 is +fully wet. Euclid has no sound of its own: its wet signal is the input +through the pulsed filter or amp, so with the filter wide open or DEPTH at +center MIX 127 sounds like the dry input +([#681](https://github.com/repeat98/modwerk/issues/681)). For an audible +pattern, move DEPTH well away from center and lower FREQ, or use AMP with AMT +raised. TYPE offers LP, BP, HP, AMP and NOTCH. AMP retains value 3 so existing saved parts remain compatible; NOTCH is appended at value 4. The filter modes use diff --git a/sdk/octabam/modules/euclid/octamod.module.json b/sdk/octabam/modules/euclid/octamod.module.json index 6f3b72ba5..5f9501e4d 100644 --- a/sdk/octabam/modules/euclid/octamod.module.json +++ b/sdk/octabam/modules/euclid/octamod.module.json @@ -328,7 +328,7 @@ "name": "MIX", "default": 127, "count": 128, - "doc": "Dry/wet; zero is exact passthrough", + "doc": "Dry/wet; zero is exact passthrough, 127 fully wet (the input through the pulsed filter or amp)", "labels": null } ], diff --git a/sdk/octabam/modules/synth/README.md b/sdk/octabam/modules/synth/README.md index 94fd729ad..189a6bfc5 100644 --- a/sdk/octabam/modules/synth/README.md +++ b/sdk/octabam/modules/synth/README.md @@ -27,6 +27,8 @@ The dedicated machine plays without a sample. This experimental version has emul AMP ATK, HOLD and REL are inherited Part values and shape the engine’s own gain envelope. First selection initializes the twelve SRC main/setup bytes and preserves them on reselection. It retains the other existing Part controls. LFO3’s speed and depth become VOIC/CHRD; its depth contribution is muted. Four voices share the track’s filtering and envelope path. The original [author documentation](upstream/synth/README.md) describes chord shapes, MIDI, keyboard recording and envelope details; those broader paths have not been qualified for this adaptation. +With ATK at 0 and a short HOLD or REL, a voice starts and stops abruptly and can click on every trig, as stock machines can. Raise ATK a few steps or lengthen REL to soften it ([#557](https://github.com/repeat98/modwerk/issues/557)). + ## Usage Start with one audio track and a simple trig pattern; the tutorial below selects the machine, shapes its sound and stops it. @@ -50,6 +52,8 @@ The matching quantizer is bundled privately because FM shares its mailbox and sc One-track mono/four-voice playback and MIDI selector recovery pass in emulation. Eight simultaneous audio tracks, modulation, external MIDI note/CC traffic, parameter locks, neighbouring sample playback, Part/pattern changes, save/reload and real hardware are not tested. Do not infer real-time headroom or project persistence from the UI/storage smoke. +LFO1 and LFO2 list FLEX's destination names on an FM SYNTH track, because the machine's SRC page is a copy of FLEX's. Each name stands for the SRC knob in the same position: STRT is RATO, LEN is INDX, RATE is FINE, RTRG is FDBK and RTIM is DEC; PTCH is PTCH ([#589](https://github.com/repeat98/modwerk/issues/589)). Whether an LFO on these destinations changes the FM sound is not tested. + ## Tests and measurements See [TESTING.md](TESTING.md). Source compilation and all 110 native/browser comparisons pass. Fresh LCD captures show the chooser and controls. The original MIDI selector freezes in Octemu; the patched selector changes modes and returns to SRC. Mono and four-voice playback at maximum AMP VOL produce about 18.06 dB lower peaks and double-STOP reaches silence. The original audio runs did not reproduce the reported static, so hardware confirmation remains necessary. Prior 0.1.1 storage checks are retained as historical evidence only. diff --git a/sdk/octabam/modules/synth/octamod.module.json b/sdk/octabam/modules/synth/octamod.module.json index e07fad72b..465713d1c 100644 --- a/sdk/octabam/modules/synth/octamod.module.json +++ b/sdk/octabam/modules/synth/octamod.module.json @@ -197,6 +197,8 @@ "limitations": [ "Parts store stock FLEX kind 1 plus FM/1 in unused NEIGHBOR control bytes. A stock build reads the track as FLEX; it does not synthesize FM. Choose stock explicitly before downgrading.", "LFO3 speed/depth become VOIC/CHRD; LFO3 depth is muted. ATK/HOLD/REL remain inherited stock AMP controls and drive the synth’s own envelope.", + "ATK 0 with a short HOLD or REL starts and stops each voice abruptly and can click; raise ATK a few steps or lengthen REL (#557).", + "LFO1/LFO2 destinations keep FLEX's names: STRT is RATO, LEN is INDX, RATE is FINE, RTRG is FDBK, RTIM is DEC (#589). Whether LFOs on them change the FM sound is not tested.", "The matching quantizer is bundled privately because the engine shares its mailbox and fixed scale accessor. Do not also select the public Scale Quantizer.", "Cannot combine with Analog BD or the public Scale Quantizer because their native hooks overlap. Compatible mixed builds have native/browser byte-parity evidence; mixed audio loads have not been stress-tested.", "MIDI selector recovery and one-track mono/four-voice playback are emulator-tested. External MIDI note/CC traffic, saved project/Part reloads, legato, modulation, maximum simultaneous tracks and hardware timing remain unqualified.", diff --git a/sdk/octabam/modules/usb-audio-out-tracks-main-cue/README.md b/sdk/octabam/modules/usb-audio-out-tracks-main-cue/README.md index 01aa92b9a..922c846c7 100644 --- a/sdk/octabam/modules/usb-audio-out-tracks-main-cue/README.md +++ b/sdk/octabam/modules/usb-audio-out-tracks-main-cue/README.md @@ -58,6 +58,13 @@ rate, bit depth or native track-control defaults are changed by the GUI. - Original Octatrack OS 1.40C only; inherited stock is recovered and guarded from the visitor's verified local file. No firmware is distributed. +- Like every DRAM module, the build gives up about 10 MB of sample memory + to the platform reserve; the finished build shows how much it reserves. A + project that filled Flex and recorder memory on the stock OS can then show + OUT OF MEMORY when a Flex sample loads. Shorten the recorder reservation + in the project's memory settings or the recorders' RLEN, or load long + samples into a Static machine + ([#433](https://github.com/repeat98/modwerk/issues/433)). - One USB audio source per build. The required shared USB MIDI receiver, clock timestamp path and combined ISR are included. - Outbox UAC2 accepts the 44.1 kHz SET_CUR control data stage and rejects diff --git a/sdk/octabam/modules/usb-audio-out-tracks-main-cue/octamod.module.json b/sdk/octabam/modules/usb-audio-out-tracks-main-cue/octamod.module.json index 61b3ae9ad..50493f2be 100644 --- a/sdk/octabam/modules/usb-audio-out-tracks-main-cue/octamod.module.json +++ b/sdk/octabam/modules/usb-audio-out-tracks-main-cue/octamod.module.json @@ -48,6 +48,7 @@ "limitations": [ "Output only, fixed 44.1 kHz / 24-bit; USB input and Crossbar variants are excluded.", "One audio layout per build; shared USB MIDI is included.", + "Like every DRAM module, gives up about 10 MB of sample memory: projects that filled Flex/recorder memory can show OUT OF MEMORY. Shorten recorder reservations or load long samples into Static (#433).", "Outbox assignments are a plan and must be applied in Elektron\u2019s Outbox app.", "At full speed, track feeds fall back to a stereo sum and Main + Cue to Main.", "Post-LEVEL tracks exclude MAIN LEVEL and master effects on tracks 1\u20137. With a master track, tracks 1\u20137 lead track 8 by 32 samples.", diff --git a/sdk/octabam/modules/vector/README.md b/sdk/octabam/modules/vector/README.md index 80f84b2c8..b22718d87 100644 --- a/sdk/octabam/modules/vector/README.md +++ b/sdk/octabam/modules/vector/README.md @@ -116,3 +116,5 @@ RIGHT on FLEX opens the existing Flex sample and recorder-slot tools. ## Reboot fix in 0.2.4 Packed VECTOR settings no longer trigger stock Part repair and whole-bank reset at startup. Existing `S2` version 1/2 settings are preserved. The real stock validator still checks other data. Part/project save-reload, fresh saved-project load and battery-only restart pass in the ColdFire emulator with T1/T5 at distinct settings. Physical reboot and working audio remain unverified; the owner explicitly approved release and closure of issue #349 with that limitation on 9 October 2026. Already reset projects require a known-good backup. See [TESTING.md](TESTING.md) for exact identities and limits. + +**Open problem ([#596](https://github.com/repeat98/modwerk/issues/596)).** The 0.2.4 fix protects only tracks that are still set to VECTOR. Switching a track back to STATIC or FLEX clears VECTOR's marker but leaves its settings bytes in the Part, and with SPAN 8 or higher one of them is a value the stock check rejects. After a save and reboot, the whole bank can then load empty, as in #349. This is read from the source and not yet reproduced. Until a fixed version is out: set SPAN to 7 or lower before you switch a VECTOR track back to STATIC or FLEX, or leave it on VECTOR. If a bank already loads empty, back up the project folder on the card and don't SAVE it, because the trigs are still in the saved file. diff --git a/sdk/octabam/modules/vector/octamod.module.json b/sdk/octabam/modules/vector/octamod.module.json index e37cb63ac..4bb59d7d7 100644 --- a/sdk/octabam/modules/vector/octamod.module.json +++ b/sdk/octabam/modules/vector/octamod.module.json @@ -161,7 +161,8 @@ "The DRAM loader reserves 1,707 audio pages (10,487,808 bytes) shared across DRAM modules.", "ColdFire resource pricing is a conditional static model, not measured chip timing. See TESTING.md for event-rate and memory-service assumptions.", "Part/project save-reload, fresh saved-project load and battery-RAM-only restart pass in the ColdFire emulator with two distinct instances. Physical reboot, working audio after transitions and mixed-module audio stress remain unverified under the owner exception for this version.", - "Keeps existing S2 version 1/2 saved settings. Already reset projects cannot be reconstructed; restore a known-good project/card backup." + "Keeps existing S2 version 1/2 saved settings. Already reset projects cannot be reconstructed; restore a known-good project/card backup.", + "Open (#596, from the source, not yet reproduced): switching a VECTOR track back to STATIC/FLEX leaves settings bytes that, with SPAN 8 or higher, can empty the bank after a save and reboot. Set SPAN to 7 or lower before switching back, or keep the track on VECTOR." ] }, "resources": { diff --git a/src/catalog/module-documents.json b/src/catalog/module-documents.json index e1c020820..6389111ea 100644 --- a/src/catalog/module-documents.json +++ b/src/catalog/module-documents.json @@ -1310,7 +1310,7 @@ "name": "MIX", "default": 127, "count": 128, - "doc": "Dry/wet; zero is exact passthrough", + "doc": "Dry/wet; zero is exact passthrough, 127 fully wet (the input through the pulsed filter or amp)", "labels": null } ], @@ -3571,6 +3571,7 @@ "limitations": [ "Output only, fixed 44.1 kHz / 24-bit; USB input and Crossbar variants are excluded.", "One audio layout per build; shared USB MIDI is included.", + "Like every DRAM module, gives up about 10 MB of sample memory: projects that filled Flex/recorder memory can show OUT OF MEMORY. Shorten recorder reservations or load long samples into Static (#433).", "Outbox assignments are a plan and must be applied in Elektron’s Outbox app.", "At full speed, track feeds fall back to a stereo sum and Main + Cue to Main.", "Post-LEVEL tracks exclude MAIN LEVEL and master effects on tracks 1–7. With a master track, tracks 1–7 lead track 8 by 32 samples.", @@ -4136,6 +4137,8 @@ "limitations": [ "Parts store stock FLEX kind 1 plus FM/1 in unused NEIGHBOR control bytes. A stock build reads the track as FLEX; it does not synthesize FM. Choose stock explicitly before downgrading.", "LFO3 speed/depth become VOIC/CHRD; LFO3 depth is muted. ATK/HOLD/REL remain inherited stock AMP controls and drive the synth’s own envelope.", + "ATK 0 with a short HOLD or REL starts and stops each voice abruptly and can click; raise ATK a few steps or lengthen REL (#557).", + "LFO1/LFO2 destinations keep FLEX's names: STRT is RATO, LEN is INDX, RATE is FINE, RTRG is FDBK, RTIM is DEC (#589). Whether LFOs on them change the FM sound is not tested.", "The matching quantizer is bundled privately because the engine shares its mailbox and fixed scale accessor. Do not also select the public Scale Quantizer.", "Cannot combine with Analog BD or the public Scale Quantizer because their native hooks overlap. Compatible mixed builds have native/browser byte-parity evidence; mixed audio loads have not been stress-tested.", "MIDI selector recovery and one-track mono/four-voice playback are emulator-tested. External MIDI note/CC traffic, saved project/Part reloads, legato, modulation, maximum simultaneous tracks and hardware timing remain unqualified.", @@ -5540,7 +5543,8 @@ "The DRAM loader reserves 1,707 audio pages (10,487,808 bytes) shared across DRAM modules.", "ColdFire resource pricing is a conditional static model, not measured chip timing. See TESTING.md for event-rate and memory-service assumptions.", "Part/project save-reload, fresh saved-project load and battery-RAM-only restart pass in the ColdFire emulator with two distinct instances. Physical reboot, working audio after transitions and mixed-module audio stress remain unverified under the owner exception for this version.", - "Keeps existing S2 version 1/2 saved settings. Already reset projects cannot be reconstructed; restore a known-good project/card backup." + "Keeps existing S2 version 1/2 saved settings. Already reset projects cannot be reconstructed; restore a known-good project/card backup.", + "Open (#596, from the source, not yet reproduced): switching a VECTOR track back to STATIC/FLEX leaves settings bytes that, with SPAN 8 or higher, can empty the bank after a save and reboot. Set SPAN to 7 or lower before switching back, or keep the track on VECTOR." ] }, "resources": { diff --git a/src/community/module-changelogs/euclid.json b/src/community/module-changelogs/euclid.json index a724842d6..7d999f832 100644 --- a/src/community/module-changelogs/euclid.json +++ b/src/community/module-changelogs/euclid.json @@ -8,7 +8,8 @@ "Documentation/media-only: add an offline audio preview rendered through 0.1.4-experimental, with sample credits, settings and provenance; firmware is unchanged.", "Documentation/media-only (12 October 2026): replace the abrupt, short-decay demo with the owner-supplied modpad.wav preview at 128 BPM. Use its eight-bar middle (22.5–37.5 seconds), excluding the render-error ends and preserving its supplied sound/decay. Record source permission, hashes, crop and encoding. Capture setup and recorded module version are unverified; firmware and existing hardware/performance status are unchanged.", "USB package (14 Oct 2026; distribution only, the module source and version are unchanged): loads over USB on a Modwerk base. Its compiled bytes that coincide with stock are rebuilt at install from the reviewed spans of your own OS, which the base checks against its running stock, so the package carries no stock bytes. Emulator and host tests only; no hardware run of this package. The owner waived hardware evidence for this exact version's USB package for the beta.", - "Beta base fix (beta test run 2, 14 Oct 2026; the package is unchanged): picking it showed DSP MEMORY FULL whenever the modules the bank's Parts name did not fit on a DSP core together, even with room for it, and a pick on T1-T4 could be refused for T5-T8's Parts. The base keeps the bank's modules loaded for instant Part changes only while they fit; on a core where they never fitted it now loads what the Part runs, so the pick goes through. Where they fit and the pick does not, DSP MEMORY FULL stays. Seen on a development twin with all 19 modules and bank A: Tape Echo and Mini Verb on T1 and T5 were refused before and are taken now; with the bank's modules held, Mini Verb is still refused on both cores and Tape Echo taken. The tester base itself has not run on the unit." + "Beta base fix (beta test run 2, 14 Oct 2026; the package is unchanged): picking it showed DSP MEMORY FULL whenever the modules the bank's Parts name did not fit on a DSP core together, even with room for it, and a pick on T1-T4 could be refused for T5-T8's Parts. The base keeps the bank's modules loaded for instant Part changes only while they fit; on a core where they never fitted it now loads what the Part runs, so the pick goes through. Where they fit and the pick does not, DSP MEMORY FULL stays. Seen on a development twin with all 19 modules and bank A: Tape Echo and Mini Verb on T1 and T5 were refused before and are taken now; with the bank's modules held, Mini Verb is still refused on both cores and Tape Echo taken. The tester base itself has not run on the unit.", + "Documentation-only (19 October 2026): say that MIX 127 is fully wet and that the wet signal is the input through the pulsed filter or amp, so it can sound dry with the filter open or DEPTH at center ([#681](https://github.com/repeat98/modwerk/issues/681)). The firmware is unchanged; this describes the design and was not measured on a unit." ], "sourceCommit": "e027bea0fcaed334ef69c11be4474627814a2e21" }, diff --git a/src/community/module-changelogs/synth.json b/src/community/module-changelogs/synth.json index 8d903419f..72d2adc1b 100644 --- a/src/community/module-changelogs/synth.json +++ b/src/community/module-changelogs/synth.json @@ -8,7 +8,8 @@ "Owner-approved experimental release without current hardware validation. Chip timing and complete memory bounds remain unmeasured; the original static symptom is not hardware-confirmed.", "Documentation/media-only (12 October 2026): add a sample-free melodic preview using VECTOR’s native generator offline to supply FM note locks, with native 128 BPM sequencing, index/feedback sweeps and actual Mini Verb in FX2. Remove boot/edit silence and added gaps; include exact generator, source/image, controls, recording and decoded peak provenance. Firmware and hardware/performance qualification are unchanged.", "USB package (14 Oct 2026; distribution only, the module source and version are unchanged): loads over USB as one independent package beside every other module, on a Modwerk base built with site events. What it shares with other machines goes through the base's machine chooser table and take events instead of a machine group, and its authored bytes that coincide with stock are rebuilt from your own OS at install. Emulator and host tests only; no hardware run of this package. The owner waived hardware evidence for this exact version's USB package for the beta.", - "Beta base fix (beta test run 2, 14 Oct 2026; the package is unchanged): removing it after the transport had played left stock's per-track renderer slots of the tracks it had bound pointing into its code, so the unit kept running the removed module and crashed (a restart onto the flashed base) once another install was copied over that memory, as Output Matrix was. The base now puts those slots back to stock with the type table. Verified on a development twin with freed memory filled with illegal instructions: install, play, stop and remove three times, no crash and the slots back to stock; the tester base itself has not run on the unit yet." + "Beta base fix (beta test run 2, 14 Oct 2026; the package is unchanged): removing it after the transport had played left stock's per-track renderer slots of the tracks it had bound pointing into its code, so the unit kept running the removed module and crashed (a restart onto the flashed base) once another install was copied over that memory, as Output Matrix was. The base now puts those slots back to stock with the type table. Verified on a development twin with freed memory filled with illegal instructions: install, play, stop and remove three times, no crash and the slots back to stock; the tester base itself has not run on the unit yet.", + "Documentation-only (19 October 2026): note that ATK 0 with a short HOLD or REL can click on every trig, and how to soften it ([#557](https://github.com/repeat98/modwerk/issues/557)); and that LFO1/LFO2 list FLEX's destination names on an FM SYNTH track, mapped to the FM knob in the same position ([#589](https://github.com/repeat98/modwerk/issues/589)). The firmware is unchanged: the LFO names are still FLEX's, and whether those LFO destinations change the FM sound is not tested." ] }, { diff --git a/src/community/module-changelogs/usb-audio-out-tracks-main-cue.json b/src/community/module-changelogs/usb-audio-out-tracks-main-cue.json index c90f8cd54..14f6f020a 100644 --- a/src/community/module-changelogs/usb-audio-out-tracks-main-cue.json +++ b/src/community/module-changelogs/usb-audio-out-tracks-main-cue.json @@ -6,7 +6,8 @@ "Add Outbox 8 support and six selectable USB audio output layouts with a configure-before-add setup.", "Show source explanations, per-layout CPU estimates, physical-output routing, and saved / unsaved state. Save and share USB settings in configuration backups.", "Support the Outbox 44.1 kHz control handshake and retain USB MIDI receive / clock and reset handling. Existing configurations without USB settings keep the classic twenty-channel code path.", - "Experimental release approved without current-build hardware tests. Chip timing, complete hardware memory bounds and untested host combinations remain unmeasured." + "Experimental release approved without current-build hardware tests. Chip timing, complete hardware memory bounds and untested host combinations remain unmeasured.", + "Documentation-only (19 October 2026): say that, like every DRAM module, the build gives up about 10 MB of sample memory, so a project that filled Flex and recorder memory can show OUT OF MEMORY, and what frees memory ([#433](https://github.com/repeat98/modwerk/issues/433)). The firmware is unchanged; whether #433 also involves a separate allocation problem is still open." ] }, { diff --git a/src/community/module-changelogs/vector.json b/src/community/module-changelogs/vector.json index d7dcdbc63..506a5f8f7 100644 --- a/src/community/module-changelogs/vector.json +++ b/src/community/module-changelogs/vector.json @@ -5,7 +5,8 @@ "changes": [ "Prevent packed VECTOR settings from making stock Part validation reject the saved bank at startup, which reset machines to STATIC and left PLAY stuck on the first step. Preserve existing S2 version 1/2 settings while retaining stock validation of other data.", "Two-instance Part/project save-reload, saved-card fresh load and battery-RAM-only restart pass in the emulator. Physical reboot/audio remain unverified under the owner-approved exception for this exact version. Already reset projects require restoration from a backup.", - "USB package (14 Oct 2026; distribution only, the module source and version are unchanged): loads over USB as one independent package beside every other module, on a Modwerk base built with site events. What it shares with other machines goes through the base's machine chooser table and take events instead of a machine group, and its authored bytes that coincide with stock are rebuilt from your own OS at install. Emulator and host tests only; no hardware run of this package. The owner waived hardware evidence for this exact version's USB package for the beta." + "USB package (14 Oct 2026; distribution only, the module source and version are unchanged): loads over USB as one independent package beside every other module, on a Modwerk base built with site events. What it shares with other machines goes through the base's machine chooser table and take events instead of a machine group, and its authored bytes that coincide with stock are rebuilt from your own OS at install. Emulator and host tests only; no hardware run of this package. The owner waived hardware evidence for this exact version's USB package for the beta.", + "Documentation-only (19 October 2026): warn that switching a VECTOR track back to STATIC or FLEX with SPAN 8 or higher can leave the bank empty after a save and reboot, read from the source and not yet reproduced, with how to avoid it and keep the saved trigs ([#596](https://github.com/repeat98/modwerk/issues/596)). The firmware is unchanged and the problem is not fixed." ] }, {