op1-sdk, image 1 from its README
1/6
Tool

op1-sdk

Rising67/100

SDK for building synth engines, effects and other features for the Teenage Engineering OP-1 (firmware R246)

op1-sdk is a tool for the Teenage Engineering OP-1, by @BertBrandstifter. Open source under MIT, latest release v0.1.0 (October 2026), 6 stars on GitHub.

forTeenage Engineering OP-1·by@BertBrandstifter

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

Downloads
0
Stars
6
Fork
1
Commits
18
Last commit
Get the source

No release files yet. Build from source.

MIT· BertBrandstifter/op1-sdk·downloads come from the creator’s GitHub releases

18
Commits
1
Releases
18 commits and 1 release in the last year
Activity · last 12 months
1 releases
  1. v0.1.0v0.1.0 — first public releaseLatest0 files

    op1-sdk v0.1.0 — first public release

    Everything needed to add your own synth engines, effects, sequencer tools and other features to the Teenage Engineering OP-1 (stock firmware R246): a hook-based build pipeline, a C/asm SDK with simulator test benches, and a feature library.

    This release contains no firmware binaries. The SDK never ships TE firmware or anything derived from it — you supply your own copy of op1_246.op1 and build images locally.

    Feature library (the op1plus recipe)

    recipes/op1plus.json composes these into one image:

    featureversionwhat
    chordplus0.3chord keyboard (shift + insert)
    lofi0.7chiptune waves + bytebeat synth engine
    wheel0.7tonewheel organ engine
    warp0.18 waves x 16 warps engine
    trio0.1SID-style 3-oscillator engine
    reso0.3tuned-string resonator effect
    shimmer0.2pitch-shifting reverb effect
    fxpack0.4seven effects behind one FX slot ("fx mix")
    drumroll0.8drum step sequencer
    requantize3.2take quantizer + piano roll
    engine_plus2.0extra parameters for TE's engines

    plus shared libraries (enginehost, quantcore) and debug/demo features (key_probe, midi_filter, fxdiag). Details: docs/features.md and each features/<name>/README.md.

    Build the op1plus firmware yourself

    1. Get the stock firmware. Download op1_246.op1 (R246) from Teenage Engineering's official support/download page and verify it:

      shasum -a 256 op1_246.op1
      # c5315218f825f143b415ca554516541898abee843d3a236df0b54c04e1fb13a9
      

      The build tools check this hash and refuse any other image.

    2. Build the bfin-elf toolchain (binutils 2.43.1, GCC 14.2.0, GDB 16.3) — exact configure/make commands are in docs/toolchain.md.

    3. Compose the image:

      python3 tools/compose.py recipes/op1plus.json /path/to/op1_246.op1
      # -> build/apps/op1plus/build/op1plus.op1
      

      Reference: the maintainer's build of this tag (macOS arm64, toolchain per README) is SHA-256 eca94ada9cb2e2a487d00f82ff59fb5ac1cae0d978fe6d83946625085699f4c0.

    4. Flash. OP-1 off → hold COM while switching on → choose Firmware Upload, then:

      python3 tools/flash.py build/apps/op1plus/build/op1plus.op1 --eject
      

      Restoring stock works the same way with the original op1_246.op1 (te-boot is never modified).

    Full test suite: python3 tools/test_all.py.

    Make your own feature and share it

    • Scaffold: python3 tools/features.py new my_feature --prefix mf_ --author "Your Name"
    • Start from examples/ (minimal asm/C hooks) or copy the layout of any features/<name>/.
    • Share as a .zip: python3 tools/features.py pack my_feature; others install it with features.py install my_feature.zip (standard: docs/feature-package.md).
    • Or open a pull request to add it to the library for every SDK user (CONTRIBUTING.md).

    Notes

    • Images you build contain TE's firmware and are for your own device — do not redistribute .op1/.ldr files.
    • Not affiliated with or endorsed by Teenage Engineering. Flashing firmware carries a risk; proceed at your own responsibility.