{
  "schema": 1,
  "firmware": "0.1.32-straightbeta",
  "identity": "FM-1_9000132",
  "cc_map": 1,
  "query_abi": 1,
  "date": "2026-10-27",
  "total": 753,
  "firmware_controls": 714,
  "browser_controls": 13,
  "unmapped": 26,
  "new_copy": 6,
  "source_hashes": {
    "docs/ACULTUR8_CC_INVENTORY.json": "386fd6a05e4cbaa590efacbbcd6c2651aeb23aa52afa2c5f2494cafa8175d2dd",
    "docs/ACULTUR8_CC_RUNTIME_COVERAGE.json": "ac370b1c1be4d4af553ef8f27df89bff2666060776ce8d25998b8e10a0071042",
    "firmware/src/app/cc_bindings.h": "8bca9e9772eabcef930b250517ecc1786b808038093081405b10590d925d33ed",
    "firmware/src/app/cc.c": "62bd18b26e60fbe8e2ae5b1aaacaf02fabaf50082426d030d047c45104c40626",
    "firmware/src/app/ui.c": "fb36d1877d4b590af75377c4eef9dba2671d1ad4e0c550861b9eb18655c0bd43",
    "firmware/src/app/drum_generation.inc": "2921273ac49b66d12731acb56d1d5f5e803858568f84183e1824a3a1ac37f95b",
    "tools/fm1_drum_plan.py": "67452844a7ef2a8fb7b1a493556bab71132c043a7650500c02d147fa744f740a",
    "tools/fm1_variation_plan.py": "5f0b19635d7355fe65257cacc9a999f61249ced6ecd3c7c3c9cc04b67b2bda62",
    "tools/fm1_freeze_plan.py": "f1d07b1710267f3e6d94cc93a61e1660e2ea0e0b7cb5da4a8cfa7064766a8566",
    "tools/fm1_copy_plan.py": "d8a3a38ce17b043bf918ce1bea0c9eff8de38052b22da65145dd964265011991",
    "firmware/src/app/cc_copy.inc": "13834a5886b84dc2856c938eda291b91efd17cc79c0b48ec823fdbc146b08001",
    "firmware/src/app/pattern_copy.inc": "3b508e0971d2e3ea912b6f193639c78f5453a8a5aa3d2b0604080633ee46b13d",
    "tools/fm1_capture_read.py": "d0a152193fcadae68e72feab772ac7b4a05b1c5c08ba34223c04c92ff23a3142",
    "firmware/src/app/cc_capture.inc": "c98ba5e2da9f1b83b3f213aacb553c94bcec2f251e3f30e64daae0940f8840e9",
    "firmware/src/app/freeze_commit.inc": "47fb9877877297b29f209565bdde31f04ca4494df6cfff9f92be041d290009c1",
    "firmware/src/app/repeating_variation.inc": "a4625cad35bcc56c64dd5d1f154e36f1dd41ee293ca23ddb773ba45e6d8134cf",
    "firmware/src/app/cc_generation.inc": "45f57ae5516cb88fb2b8547a2cd847f57836de3cfef47a2dfb3c440183982e0e",
    "firmware/src/app/generation_query.inc": "cbad106fa6869e8c22f18765c2daff23884d13c41a49f1a69591d3427ddf840e",
    "firmware/src/seq/rate_families.c": "a336160bb02994406d3f832c3e8938db764a73f541e4f0f36794e76de9f30579",
    "web/emu/slice-control.mjs": "0922419189a24c5cee852f1a3e5134cc58d6bf2773cee6564db00434c265d6e1",
    "README_MIDI_COPY.txt": "6815d999626c87c88afec1a67b2ff3b82a385200629c899316eba85229309ec5",
    "tools/fm1_generation_plan.py": "00f73ad85581038b5d58237898875ce38e9178630e6f2b5b10ee60a6c4b97c22",
    "tools/fm1_generation_read.py": "e6b30cb6e4670b65ca1db1c3b843267e3a84a7f3f840e1fb54002bbabd6574a3",
    "tools/fm1_pattern_read.py": "0b6d3451b0b0dac84abc6ba9dc088fdbab5ae7927aa68d03a84f4c68d5ad564a",
    "tools/fm1_runtime_read.py": "d58e7bc5532db7e87bc050819c6872c0f14f4278ca7acb3256996d434458e475",
    "tools/fm1_strip_read.py": "8beaa0f5b4bea0359f81c6fd8502d58c2ee2c6dba6eb8c90e582e39294772ff3",
    "firmware/src/app/engine.c": "5d5cdbda13333d5dd58197985175ae259db33f0745c69aeed9ddb4d17bc5f79d",
    "firmware/src/app/engine.h": "87524ed4022efe962be93d56a37fcd9c9182148b6196b8a412ec33487c103a0f",
    "firmware/src/app/variant.c": "18ac5992787496c97ac5485ae31cb829a7b701bc79d7f72d3833b32dc70810de",
    "firmware/src/seq/sequencer.c": "7b23f367f0bec9bac7f80f6acc9362d032a1c5ceeea7285dcfc68ae9aca98475",
    "firmware/src/seq/sequencer.h": "2c24560d29c99adb4b7ab7cec206159a2e47e9db4abd09a5cb5170c6533030f9",
    "firmware/src/seq/lanes.c": "c05deae05a3757c984a9f4b92b82ffc0939047023aa0dd36a1ded06301a77035",
    "firmware/src/seq/lanes.h": "7722c12857b94830ca431cfcd81ede7c410c24b078c15b83aa77cba91ba8e081",
    "firmware/src/seq/rate_families.h": "c396c841df22e7e67e62153d582d7a7958f641d6566968c3369357be21ee0ff9"
  },
  "firmware_sha256": "0aedc953384583a22085a77f1e619399d7354a97563e4f4e2b6bab944cd9c716",
  "acceptance": "Source-derived experimental reference. Bounded global STRAIGHT and independent909SD triplet control/listening/save-restart passed on one unit. Advanced remote-action hardware gates and Reason sync remain open.",
  "project_origin": {
    "original_project": "https://github.com/charlesvestal/fm1-x0x",
    "original_author": "Charles Vestal and upstream contributors",
    "original_manual": "https://charlesvestal.github.io/fm1-x0x/manual/",
    "foundation_project": "https://github.com/hugelton/Felucca",
    "foundation_author": "Leo Kuroshita / Hugelton Instruments",
    "reviewed_upstream_commit": "54194c54bb01e9d9b3fe9d641b3ddfa512ac04a3",
    "previous_runtime_integration_review_base": "2e31c517ded3732c58b845eb0c800fe018004b8d",
    "review_date_utc": "2026-10-24",
    "credit_update": "Melodee by keremimo;Jangada by zednaked;correct keremimo attribution",
    "scope": "Credit and source-review metadata;not a claim that the frozen firmware incorporates the documentation overlay",
    "source_archive_sha256": "4daf134407530d756d919717177455aec0b95fefa105e8b753484ad347a7ab02",
    "notice_sha256": {
      "CREDITS.txt": "7435a952802a15befe40b0223da7f83a76b6488d87636e1d1effa93749544d84",
      "UPSTREAM-LICENSING.md": "6b1041d59e75f0b87090f315d5f1d409b50daa81ad94b20c9eacc13badc42f89",
      "UPSTREAM-README.md": "1e70f1d2486a429ac687765179176d2c7d387041c9f5a53073856f783ba9cd4e",
      "LICENSE.txt": "230184f60bae2feaf244f10a8bac053c8ff33a183bcc365b4d8b876d2b7f4809"
    }
  }
}
