Firmware

MC-1

Hype: warming · 71

Original groovebox with linear-arithmetic style tones, acid lines and synthesized drums.

forM-VAVE FM-1·by@dspaudio

Unclaimed. Is this yours? Sign in with GitHub as @dspaudio to claim it.

Download v1.2.0

mc-1-1.2.0.fwsc· 596 KB· +3 files

GPL-3.0· dspaudio/mc-1·downloads come from the creator’s GitHub releases

40 commits and 5 releases in the last year
5 releases
  1. v1.2.0MC-1 1.2.0 — Rebuilt LA-PCM engine and 112 new soundsLatest4 files

    MC-1 1.2.0 - rebuilt LA-PCM engine and sound bank

    A new LA-PCM engine. All 112 LA sounds replaced.

    Install and hear the new engine · Web emulator

    This is an engine and instrument-data replacement, not just a preset expansion. Real recorded attacks restore piano, nylon guitar and orchestral character. Source-derived harmonic sustain frames share one phase accumulator, replacing the old generic detuned blend and repeated sustain motion. The 16 Acid presets, eight synthesized drum kits, eight melodic voices and four FX banks are retained.

    New sound engine and recordings

    • All 112 LA presets use real PCM attacks plus synthesized harmonic sustain. This remains LA-PCM, not a GM/SoundFont player or a full-note sample loop.
    • Twenty-four source zones cover 17 instrument families: six piano registers, three nylon-guitar registers and 15 other families.
    • Individual attack colours, PCM contribution and envelopes distinguish each preset. Phase-coherent, energy-matched sustain avoids unintended beating and per-note swells; plucked instruments retain measured non-cyclic decay.
    • Reverb return level and mode-specific decay make ROOM and HALL easier to hear and distinguish, using the existing delay storage.
    • Shorter attack-cache snapshots and family-indexed zone lookup remove the deadline misses found in the first installed candidate without changing the accepted audio. All eight approved representative WAVs remain byte-identical.

    The selected recordings are CC0-1.0: Meta Open Sound piano/nylon guitar and VSCO 2 Community Edition's other 15 families. Firmware, original patches and compositions remain GPL-3.0-only. See NOTICE, the 24-zone source manifest and both retained Meta / VSCO licenses. The downloaded 752,311,261-byte piano source ZIP is not installed on the FM-1.

    Hear 1.2.0

    These original compositions are native shared-C renders, not FM-1 recordings. The five 320 kbps MP3s have working native browser players and downloads on the product page. Audio hashes and export settings are retained. The representative four timbres have listener approval; numerical checks are not a blanket listening-approval claim for every remaining preset.

    Installed and measured on an FM-1

    The final package was installed successfully, restarted and reidentified as FM-1_900. This is the updater identity, not an installed-version readout. The package hash below identifies the tested image. A new flash backup was explicitly declined by the operator; none was taken.

    Eleven captures cover both built-in demos and four maximum-load cohorts: 8 melodic / 6 drum voices with 0, 1 or 2 Acid parts, and three monophonic Acid parts / 6 drums. The maximum-load settings use four FX banks, Analog 127, kit 6, R/D type 5, C/F type 5, sends 127 and active USB audio.

    All eleven frozen 8,192-block timing windows pass. The accompanying 44.1 kHz/16-bit stereo USB recordings total 495 seconds; each 45-second file includes warmup, the active measurement and a post-STOP tail.

    • Deadline misses, DMA-half changes and USB error deltas: 0.
    • CPU1 remains READY, worker failures 0, guards intact.
    • Minimum unused CPU1 user stack: 3,524 bytes.
    • Every recording contains non-silent audio with no integer rail clipping.
    • The originally failing first demo also passes three additional full captures.

    The highest recorded whole-audio maximum is 69,184 raw timer ticks. This is tested-workload evidence, not a guarantee for arbitrary arrangements. A few captures contain physical master-ADC drift and are not matched speed comparisons. No new power-loss or forced-worker-failure trial is claimed. See raw counters and recording hashes.

    The first installed candidate failed with deadline/DMA/USB errors. A cache-only candidate still failed the first demo once. Neither is the release image.

    Size and reproducible identity

    ResourceFinalLimit or previous budget
    PCM audio data384,240 B390,144 B
    App503,980 B581,564 B
    Globals55,692 B65,536 B policy
    Pool303,464 B335,872 B policy
    FWSC package610,089 BIncludes loader and fixed padding

    App SHA256: 9ebcd27952284c2298f4f8f51ac490b3f49cf012aa64ab15fe899d344ef51256

    Package SHA256: cb0b5454d3e459da11489f73818d4537093907aa13adee0230f3404227a701e4

    Target source fingerprint: 54122b1698f1880d7b5895890e65ab7d87c57276dcbcc6f0747fd1f955081556

    Checks include 31 native C executables, 51 Python tests, a fresh 31-executable ASan/UBSan build, exact single/dual-core PCM and complete state, all 4,096 FX combinations, 129 current audio renders, deterministic assets, pi32v2 linking, package/OTA/loader simulation and product/installer resource checks.

    Installation and saved projects

    Install mc-1-1.2.0.fwsc using the web installer or bundled desktop installer. The unchanged original 1.0.2 single-core package remains available as a fallback, not a single-core rebuild of 1.2.0. Verified restoration of official V15 still requires the operator's original official file.

    Project format remains 8, importing formats 1-7. Existing LA patches load with the replacement sources and therefore sound different. Preset names/positions remain stable. 1.0.2 cannot open format-8 saves; changing firmware is not project conversion. The bootloader, project-bank addresses and flash allowlist are unchanged. The new nylon-guitar PCM source is ID 40; 1.1.0 rejects projects containing it even though both releases use project format 8.

    CPU1 failure still falls back to CPU0 without reducing voices; full-load real-time audio is not guaranteed in that state. A fatal fault can attempt UBOOT, and power cycling is not automatic rollback. The web/desktop MIDI installer cannot recover ROM WL80UBOOT1.00. Existing recovery boundaries are documented in the prior hardware record.

  2. v1.1.0MC-1 1.1.0 - dual-core firmware6 files

    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.

  3. v1.0.2MC-1 1.0.23 files

    MC-1 1.0.2

    Changes

    • The product-site firmware installer now includes Restore official V15. Select your unmodified M-VAVE V15 FM-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, verified FM-1_015 restart, 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

    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.

  4. v1.0.1MC-1 1.0.13 files

    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

    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.

  5. v1.0.0MC-1 1.0.03 files

    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.fwsc is 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.