Skip to content

release: midi2cpp v0.3.0 - rename from midi2_cpp + midi2 v0.3.4 dependency#2

Merged
sauloverissimo merged 5 commits into
mainfrom
chore/rename-to-midi2cpp
May 9, 2026
Merged

release: midi2cpp v0.3.0 - rename from midi2_cpp + midi2 v0.3.4 dependency#2
sauloverissimo merged 5 commits into
mainfrom
chore/rename-to-midi2cpp

Conversation

@sauloverissimo
Copy link
Copy Markdown
Owner

Summary

Renames midi2_cpp to midi2cpp in deference to starfishmod/MIDI2_CPP (maintained since 2021 by Andrew Mee, MIDI Association TSB Rep), which operates in the same domain. Keeping the namespaces disjoint avoids confusion in package managers and search.

This is a breaking rename. Every consumer-facing identifier moved.

What changed

  • Repository name (after merge, via gh repo rename): midi2_cppmidi2cpp. GitHub redirect on the old URL.
  • Header: <midi2_cpp.h><midi2cpp.h>. Namespace midi2 and the m2* aliases are unchanged.
  • CMake target / alias: midi2_cppmidi2cpp, midi2_cpp::midi2_cppmidi2cpp::midi2cpp.
  • Preprocessor macros: MIDI2_CPP_*MIDI2CPP_*.
  • Manifests: library.properties name=midi2cpp, library.json "name": "midi2cpp".
  • 20 example recipes updated (Pico SDK / TinyUSB CMake / ESP-IDF / PlatformIO).
  • midi2 dependency bumped to v0.3.4 across every install path. midi2 v0.3.4 fixes the ESP-IDF Component Manager gate (v0.3.3 routed at dist/midi2.c, which the Component Manager filters out).

Verification

  • Host suite: cmake -B build -DMIDI2CPP_BUILD_TESTS=ON && cmake --build build && ctest — 7/7 pass.
  • Arduino-cli: arduino-cli compile examples/HelloMIDI2 --fqbn rp2040:rp2040:rpipico — 67 KB program (3% of flash).
  • ESP-IDF: examples/esp32-s3-devkitc-usb-midi2 reconfigure + build against midi2 v0.3.4 from the GitHub Component Manager — clean .bin, no manual workaround.
  • Static checks: zero references to midi2_cpp / MIDI2_CPP / midi2_cpp.h in tracked files.

Commits

98b4394 release: v0.3.0
89ca38e chore: post-rename audit cleanup
fe66e9d chore: bump midi2 dependency to v0.3.4 across all install paths
ac06bdb fix(esp-idf): pin midi2 dependency to git tag v0.3.3
1e5d0d2 rename: midi2_cpp -> midi2cpp

Follow-up tasks (separate)

  1. gh repo rename midi2_cpp midi2cpp
  2. Tag v0.3.0 + GitHub release
  3. PR to arduino/library-registry: remove midi2_cpp entry, add midi2cpp
  4. Same for the PlatformIO Registry (auto-indexes from the new tag)

In deference to starfishmod/MIDI2_CPP (maintained since 2021 by
Andrew Mee, MIDI Association TSB Rep), which operates in the same
domain (MIDI 2.0 wrappers for embedded). Keeping the namespaces
disjoint avoids confusion in package managers and search.

Touches across 119 files:

- library.properties: name= + includes=
- library.json: "name", "headers", repository URL
- CMakeLists.txt: project / add_library / alias / install / export
- src/midi2_cpp.h -> src/midi2cpp.h
- logo_midi2_cpp.png -> logo_midi2cpp.png
- Preprocessor macros: MIDI2_CPP_* -> MIDI2CPP_*
  (MIDI2_CPP_BUILD_TESTS, MIDI2_CPP_ROOT, MIDI2_CPP_MAX_PROFILES,
  MIDI2_CPP_MAX_PROPERTIES, MIDI2_CPP_MAX_SUBSCRIBERS,
  MIDI2_CPP_HOST_MAX_DEVICES, MIDI2_CPP_BRIDGE_MAX_SLOTS, ...)
- 20 example recipes: CMakeLists.txt / idf/main/CMakeLists.txt /
  pio/platformio.ini
- README, CHANGELOG, every example README
- .github/workflows/ci.yml: paths and CMake options

Verified locally: cmake configure + build + ctest all green (7/7
host suites, including the m2bridge ASan + UBSan smoke).

Follow-up commits will bump the version to v0.3.0, refresh the
CHANGELOG with this rationale, and (after the merge) rename the
GitHub repo via gh repo rename.
ESP-IDF Component Manager interprets `version:` for git deps as a
literal git ref (branch / tag / SHA), not a semver constraint. The
previous `version: ">=0.3.3"` failed configure with
"Git reference >=0.3.3 doesn't exist in the repository".

Pin all seven ESP-IDF recipes to `version: "v0.3.3"`.

Verified locally: esp32-s3-devkitc-usb-midi2 now reconfigures and
the full build links a flashable .bin against midi2 v0.3.3.
midi2 v0.3.4 ships the ESP-IDF Component Manager fix; consumers no
longer need the manual `cp -r dist/` workaround when the dependency
is fetched via git URL.

Bumps 26 references across:

- library.properties: depends=midi2 (>=0.3.4)
- library.json: dependencies."sauloverissimo/midi2": "^0.3.4"
- README.md badge + install snippets
- CHANGELOG.md cross-references
- 8 Pico SDK + 2 TinyUSB CMake recipes: FetchContent GIT_TAG v0.3.4
- 7 ESP-IDF recipes: idf_component.yml git version v0.3.4
- 3 PlatformIO recipes: lib_deps midi2 @ ^0.3.4
- .github/workflows/ci.yml: arduino-cli git URL fallback v0.3.4
- root CMakeLists.txt: find_package + FetchContent v0.3.4

Verified locally end to end:
- Host suite (cmake + ctest 7/7 pass)
- esp32-s3-devkitc-usb-midi2 reconfigure + build with v0.3.4 from
  GitHub Component Manager (no local path workaround)
- Drop the corrupt logo_midi2_cpp.png left over from the bulk sed pass
  (the rename moved logo_midi2_cpp.png to logo_midi2cpp.png; the file
  with the old name should not have come back).
- logo_midi2cpp.png touched up.
- Fix one stale token in README.md Contents (`midi2\_cpp` link text
  pointing at #midi2cpp -> `midi2cpp`).
Renamed from midi2_cpp to midi2cpp in deference to
starfishmod/MIDI2_CPP (maintained since 2021 by Andrew Mee, MIDI
Association TSB Rep), which operates in the same domain. Keeping
the namespaces disjoint avoids confusion in package managers and
search.

This is a breaking release. Repository, header, CMake target /
alias, preprocessor macros and manifest names all moved. The C++
API surface (`namespace midi2`, `m2device`, `m2host`, `m2bridge`,
`m2ci`, ...) is unchanged.

Bumps the midi2 dependency to v0.3.4 across every install path
(Arduino LM, PlatformIO, ESP-IDF Component Manager, CMake
find_package + FetchContent). midi2 v0.3.4 fixes the ESP-IDF
Component Manager gate that v0.3.3 routed at dist/midi2.c
(filtered out of the dependency tarball).

See CHANGELOG.md for the full migration diff.
@sauloverissimo sauloverissimo merged commit 3177103 into main May 9, 2026
6 checks passed
@sauloverissimo sauloverissimo deleted the chore/rename-to-midi2cpp branch May 9, 2026 12:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant