Repository navigation
Releases: dspaudio/mc-1
Release list
MC-1 1.1.0 - dual-core firmware
MC-1 1.1.0 - dual-core firmware
Version 1.1.0 uses both FM-1 CPU cores. It retains eight melodic voices and six
drum voices: CPU0 owns sequencing/MIDI/control and five melodic DSP voices,
while CPU1 processes three melodic voices, all drums and all four shared FX
banks. The browser emulator shares the C engine and renderer; it does not
simulate WL82 core timing or hardware exception recovery.
New in 1.1.0
- Four independent banks: R/D1, C/F1, R/D2 and C/F2, with four sends per part.
- Melodic Analog variance with bounded detuning and smooth drift.
- Warm second-part reverb/delay and PCM-forward third parts in both demos.
- Readable white 6x9 small text, populated-only flowing playback underlines,
continuously lit menu/OCT buttons, selected-menu blinking and BPM-synchronous
green PLAY. HOME stays lit during playback. - Source-pinned hardware evidence, private worker-state ownership and bounded
failure fallback. Eight melodic / three worker voices are locked in the
target builder; larger configurations are not supported.
Choosing a firmware
The installer offers 1.1.0 dual-core and the unchanged original 1.0.2 single-core
package. The latter is not a current-source single-core build. Its SHA256 is
a09e763e6000f25dec63eb5feeb6251389dce33bf5abe2eb4746f1f1c7091ab5.
Neither option changes the bootloader, project-bank addresses or flash allowlist.
FM-1_900 identifies the update protocol, not the installed MC-1 version.
1.1.0 imports project formats 1-7 and saves format 8. 1.0.2 cannot open format-8
saves. A downgrade preserves bank bytes but does not convert them; subsequent
saves may replace earlier projects. Keep compatible backups where available.
Failure and recovery boundaries
For a CPU1 timeout/protocol failure, the engine stops using the worker, rejects
its incomplete state and recomputes that work on CPU0. No voice reduction or
automatic FX bypass is performed. Single-core fallback can exceed the audio
deadline under heavy load; it is not guaranteed seamless playback.
A fatal system exception stops audio and attempts UBOOT entry after CPU1 hold.
If hold cannot be confirmed, audio stops without forcing that transition.
Power cycling retries the installed app; there is no automatic rollback.
Startup faults can therefore recur. ROM WL80UBOOT1.00 is not the MIDI updater
and cannot be recovered by this web installer.
The eight-voice candidate passed the tested four-FX/Analog/USB workloads and
controlled worker-failure playback. Matched two-bank rendering improved
27.1-27.6%, below the retained 30% comparison target. Maximum-load display
refresh remains load-dependent; no universally seamless UI/audio claim is made.
Exact images, limits, rejected configurations and recovery readbacks are in
the hardware report.
The release rebuild is byte-identical to that tested eight-voice package:
610,089 bytes, SHA256
e0afbf5254eb910133cfab170928dd306d5d9e8eb5a47afc29094c4906649228.
The raw app SHA256 is
d7654e41eb9ef375339127abed6b8bc8da026d59560d694001fbe72ba80e177f.
This identity was checked by full byte comparison, not inferred from settings.
Release checks include all 30 native C executables, 51 Python cases, a fresh
30-executable ASan/UBSan build, pi32v2/package/loader simulations and reproducible
target reports. Twenty-six actual C-renderer screenshots were refreshed.
Both 32-bar demo exports are stereo 44.1 kHz/320 kbps MP3, with nonzero decoded
PCM, exact source frame counts and zero integer rail clips.
MC-1 1.0.2
MC-1 1.0.2
Changes
- The product-site firmware installer now includes Restore official V15.
Select your unmodified M-VAVE V15FM-1.fwsc; the page verifies its SHA256,
size and layout locally. The official file is never uploaded or redistributed. - Restoration preserves the official application image and reuses MC-1's
verified small RAM loader. Firmware staging limits, flash-write boundaries
and the separate recovery-record sector are unchanged. - Added explicit project/patch acknowledgement, progress beside the restore
action, verifiedFM-1_015restart, transfer locks and update-loader retry.
Existing MC-1 1.0.1 installations work without an intermediate update. - The device package is byte-identical to the tested 1.0.1 diagnostic package.
This release changes the installer and release metadata, not the audio
engine, memory budgets or project format.
Install
- Browser: https://dspaudio.github.io/mc-1/install.html
- Desktop: extract
mc-1-1.0.2-installer.zipand follow INSTALL.md. mc-1-1.0.2.fwscis the complete MC-1 update package, not a raw app image.- Official V15: obtain the original file from https://www.m-vave.com/download
and select it in Restore official V15. - https://dspaudio.github.io/mc-1-web/ runs only the emulator.
MC-1 package: 610,089 bytes. SHA256:
a09e763e6000f25dec63eb5feeb6251389dce33bf5abe2eb4746f1f1c7091ab5
Validation and limitations
Actual Chrome/Web MIDI testing completed V15-to-MC-1 installation, MC-1-to-V15
restoration, an intentional browser reload at 5% of writing, successful retry
from the update loader, and MC-1 reinstallation. Restart identities were checked
afterward; the final instrument is back on MC-1. The user confirmed normal V15
screen and sound and subsequently reported normal operation.
Native regressions, clean ASan/UBSan builds, pi32v2/package guards, both-direction
loader simulations, real-file byte-preservation checks, 32 browser protocol
scenarios, 25 installer UI scenarios, Pages assembly and visual QA passed.
Source and the full validation record are included at this tag.
Restoration replaces the official application, not the separate factory USR
patch bank. It is not a factory reset, backup or project conversion. MC-1
projects and patches cannot be used in V15. Stored-data retention, all factory
patches and electrical power-loss recovery remain unverified; the interruption
test removed the browser host only.
The reused firmware's existing 1.0.1 CPU/USB measurements still apply to those
tested workloads: zero deadline misses or USB underruns, with only 2.816%
worst observed audio-path headroom. FM-1_900 remains a protocol identity,
not a unique MC-1 build-version report.
MC-1 1.0.1
MC-1 1.0.1
Changes
- Stronger shared reverb returns and longer HALL1, HALL2 and PLATE tails,
without adding DSP stages or buffers. - New projects start with ROOM2 sends 12 / 72 / 24 / 8. Stored projects retain
their own settings. - Both built-in demos now use the active shared reverb and chorus banks.
PART2 reverb send is 112; the NEON SPIRAL MP3 and WAV examples are updated. - GLOBAL MIXER uses ENV to switch LEVEL / PAN. Four knobs control the four
parts; pan supports existing project storage and knob automation. - PLAY stays steadily green during playback; it does not blink to the beat.
The duplicate lower queued NEXT display is removed while the upper
destination remains.
Eight melodic voices, six drum voices, both eight-type FX banks and version 7
project compatibility are retained.
Install
- Browser: https://dspaudio.github.io/mc-1/install.html
- Desktop: extract
mc-1-1.0.1-installer.zipand follow INSTALL.md. mc-1-1.0.1.fwscis the exact installed and measured package, not a raw app.- The separate https://dspaudio.github.io/mc-1-web/ site runs only the emulator.
Package SHA256:
a09e763e6000f25dec63eb5feeb6251389dce33bf5abe2eb4746f1f1c7091ab5
Device validation
The package completed actual OTA, reboot and independent FM-1_900 identification.
Thirty captures, each with 1,024 warm-up and 8,192 measured blocks, cover
245,760 measured blocks. Full-send stress includes 8 mixed voices plus 6 drums,
all kits, Acid/LA configurations and every FX type through paired selections
(not all 64 cross-combinations). Six actual USB recordings cover stress and
both demos, including cold PLAY and STOP/PLAY.
All completed captures have zero deadline misses, DMA-half changes, USB
underruns, overruns, stalls and missed packets. Maximum DSP render is 66,630
TIMER4 ticks; maximum audio path is 67,687 ticks, or 2,820.292 us against the
2,902 us deadline. Worst observed headroom is only 2.816%, not the aspirational
10% reserve. FX-only peak is 17,589 ticks, below the approximately 21,900 target.
Fifteen ADC-changing records remain excluded from fixed-condition comparisons;
no percentage speedup over 1.0.0 is claimed.
Native regressions, 25 ASan/UBSan executables, 129 audio checks, target
flash/RAM guards, loader/OTA simulations and installer checks passed.
The optional performance probe is inactive during ordinary use.
Reproduce with MC_PERF_PROBE=1 MC_PLAY_LED_PULSE=0.
Hardware validation was completed after the source tag. The updated record
is in docs/VALIDATION.md on main; the tagged firmware source is unchanged.
The user confirmed steady green PLAY illumination. Other physical LED checks,
analog listening and electrical power-loss recovery remain unverified.
FM-1_900 is a protocol identity, not a unique build version.
MC-1 1.0.0
MC-1 1.0.0
Eight melodic voices plus six drums, two shared eight-type FX banks, and a
firmware web installer hosted by the MC-1 repository.
Install
- Browser: https://dspaudio.github.io/mc-1/install.html
- Desktop: download and extract
mc-1-1.0.0-installer.zip, then follow INSTALL.md. - The standalone
mc-1-1.0.0.fwscis the exact device-tested package; do not install a raw.app.bin.
The Pages installer becomes available after this release's deployment completes.
The separate https://dspaudio.github.io/mc-1-web/ site runs only the emulator.
Changes
- Independent R/D and C/F sends on all four parts; two globally selected FX types.
- Eight melodic voices and six drum voices retained without automatic FX quality reduction.
- Exact fixed-point divisions and per-slice preparation reduce DSP work while preserving PCM.
- Version 7 projects import versions 1-6 without expanding save banks.
- Master output is volume and stereo-linked limiter only.
- English README with ten fresh shared-C UI captures and current FX documentation.
- Same-origin installer verifies SHA256, package CRCs, product and loader before updating.
Validation
FX-only frozen-valid repeats peak at 17,621 TIMER4 ticks (target approximately
21,900). Actual USB Audio stress peaks at 66,718 ticks, below the 69,648-tick
deadline. All 21 final captures have zero deadline misses and DMA-half changes;
all six USB recordings have zero underruns. Ten ADC-changing records remain
excluded from formal paired comparisons.
Native PCM, MIDI and all 77,168 engine-state bytes match across 17,614,272 frames.
Native/render, 24 ASan/UBSan executables, Web regressions, target memory/flash-off
guards, package simulations and repeated physical OTA/reboot checks passed.
The package includes the optional performance probe; diagnostics are inactive
during normal use. Reproduce with MC_PERF_PROBE=1 MC_PLAY_LED_PULSE=0.
Package SHA256:
313ebd7b4b9173247d1adc3e1586f87c711a02c5807bb28c5675401a799a68b0
See docs/VALIDATION.md and BUILDING.md for exact workloads and boundaries.
Electrical power-loss recovery is not verified. Updating is not a backup;
FM-1_900 identifies the protocol, not a unique MC-1 version.