{
  "added_at": "2026-11-09",
  "additional_evidence_urls": [
    "https://github.com/Mudb0y/libmd12/blob/427c8e38eaaeb76f5fb0e526f7a49c52cfd332bb/Makefile",
    "https://github.com/Mudb0y/libmd12/blob/427c8e38eaaeb76f5fb0e526f7a49c52cfd332bb/LICENSE"
  ],
  "category": "reconstruction-cases",
  "class": "hardware",
  "description_en": "A C99 library of the E-mu SP-1200 and SP-12 sampler audio path: pitch playback, filters, and the dynamic filter. The README says firmware behavior comes from running E-mu's operating-system code in a Z80 emulator, and make check runs the shipped suite.",
  "description_zh": "E-mu SP-1200 与 SP-12 采样器音频通路的 C99 库：音高回放、滤波器和动态滤波器。README 写明固件行为来自在 Z80 模拟器中运行 E-mu 的操作系统代码，并且 make check 运行随附测试。",
  "entry_url": "https://awesomerea.org/resources/libmd12-sp1200-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/libmd12-sp1200-case/",
  "evidence_url": "https://github.com/Mudb0y/libmd12/blob/427c8e38eaaeb76f5fb0e526f7a49c52cfd332bb/README.md",
  "group": "cases",
  "id": "libmd12-sp1200-case",
  "json_url": "https://awesomerea.org/resources/libmd12-sp1200-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/libmd12-sp1200-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/libmd12-sp1200-case/index.md",
  "name": "libmd12: a C model of the E-mu SP-1200 and SP-12 audio path",
  "name_zh": "libmd12：E-mu SP-1200 与 SP-12 音频通路的 C 模型",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "scope",
    "testing",
    "license"
  ],
  "requirements": [
    "Needs a C99 compiler and make. make builds the library and command-line tools. The README says the table generators and checks also need Python 3 with NumPy and SciPy, ngspice, an arm-none-eabi toolchain, and QEMU.",
    "The README says the semitone and decay tables are E-mu's, read from SP-1200 OS 1.2, Rossum's SP-1200 OS 1.04, and the SP-12 Turbo 2.6 images it names. It points at dumped images in Lytrix/EMU-SP1200 for the required firmware inputs.",
    "The README says make check runs 341 checks and make m7check runs those same 341 checks under QEMU for a Cortex-M7 with a single-precision FPU. It also reports filter comparisons with ngspice and with John Nolting's SP-12 recordings, which it says to download.",
    "LICENSE is the MIT License, copyright 2026 Stanislaw Przedzinkowski."
  ],
  "requirements_zh": [
    "需要 C99 编译器和 make。make 构建库和命令行工具。README 写明表生成器与检查还需要带 NumPy 和 SciPy 的 Python 3、ngspice、arm-none-eabi 工具链和 QEMU。",
    "README 写明半音表和衰减表是 E-mu 的，读自它点名的 SP-1200 OS 1.2、Rossum 的 SP-1200 OS 1.04 和 SP-12 Turbo 2.6 映像。它指向 Lytrix/EMU-SP1200 中的转储映像，作为所需固件输入的来源。",
    "README 写明 make check 运行 341 项检查，make m7check 在 QEMU 中为带单精度 FPU 的 Cortex-M7 运行同样的 341 项。它还报告了与 ngspice 以及 John Nolting 的 SP-12 录音的滤波器比较，并写明这些录音需下载。",
    "LICENSE 是 MIT 许可证，版权 2026 Stanislaw Przedzinkowski。"
  ],
  "targets": [
    "binary"
  ],
  "url": "https://github.com/Mudb0y/libmd12",
  "verification": "source-reviewed",
  "verified_at": "2026-11-04"
}
