Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion sdk/octabam/modules/euclid/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion sdk/octabam/modules/euclid/octamod.module.json
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
],
Expand Down
4 changes: 4 additions & 0 deletions sdk/octabam/modules/synth/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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.
Expand Down
2 changes: 2 additions & 0 deletions sdk/octabam/modules/synth/octamod.module.json
Original file line number Diff line number Diff line change
Expand Up @@ -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.",
Expand Down
7 changes: 7 additions & 0 deletions sdk/octabam/modules/usb-audio-out-tracks-main-cue/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.",
Expand Down
2 changes: 2 additions & 0 deletions sdk/octabam/modules/vector/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
3 changes: 2 additions & 1 deletion sdk/octabam/modules/vector/octamod.module.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down
8 changes: 6 additions & 2 deletions src/catalog/module-documents.json
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
],
Expand Down Expand Up @@ -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.",
Expand Down Expand Up @@ -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.",
Expand Down Expand Up @@ -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": {
Expand Down
3 changes: 2 additions & 1 deletion src/community/module-changelogs/euclid.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
},
Expand Down
3 changes: 2 additions & 1 deletion src/community/module-changelogs/synth.json
Original file line number Diff line number Diff line change
Expand Up @@ -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."
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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."
]
},
{
Expand Down
Loading
Loading