Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

106 Commits

Folders and files

Repository files navigation

Embedded music experiments

Image

Small, open-ended experiments with MIDI, embedded hardware, and simple musical instruments.

This repository is the documentation hub for the experiments. It does not contain a monolithic application or promise a particular final product.

Components

Repository Status Purpose
midi-receiver First milestone complete Receive BLE MIDI, interpret messages, and make them observable on an M5StickC Plus2
monophonic-instrument Two-hardware milestone complete Provide shared monophonic policy and M5 audio output backends
amy-synth-m5 AMY package and showcase validated Provide AMY musical-control and Core Gray PCM bridge components
calculator-face-input Single-pattern drum instrument validated Explore Calculator Face input through a four-track, sixteen-step Core Gray drum sequencer

Showcases

Executable compositions live in showcases/.

  • showcases/ble-midi-buzzer/ combines BLE MIDI input, the monophonic instrument policy, and the M5StickC Plus2 buzzer output.
  • showcases/ble-midi-core-gray-speaker/ uses the same input and instrument policy with the M5Stack Core Gray speaker output.
  • showcases/ble-midi-amy/ composes BLE MIDI input with the AMY synth package and the Core Gray PCM speaker bridge.
  • showcases/electronic-drummer/ composes fixed trigger presets, a deadline clock, and AMY drums into a button-controlled Rock/Jazz/Euro Pop/metronome player for the Core Gray.

Run just showcase-list to see the numeric showcase IDs used by the build, upload, and monitor recipes.

Design notes

The current direction, boundaries, decisions, and open questions are recorded in DESIGN.md. Near-term priorities are tracked in docs/ROADMAP.md, while lower-certainty follow-up ideas live in docs/BACKLOG.md.

The design is intentionally provisional. Shared libraries and additional repositories should emerge from working experiments rather than being designed in advance.

Shared firmware contracts

The first shared C++ contracts live in firmware-contracts/include/. They are header-only and intentionally small so firmware experiments can include the same event vocabulary without sharing BLE, display, or audio backend code.

This repository is also a PlatformIO library package. The root library.json points PlatformIO at firmware-contracts/include/ through build.includeDir.

CI

GitHub Actions validates the shared C++ headers, runs pio pkg pack, and builds the four M5StickC Plus2/Core Gray showcases on pushes and pull requests. The workflow lives at .github/workflows/ci.yml.

Local PlatformIO Cache

Sibling firmware repositories share the parent workspace cache at ../.platformio-home when checked out side by side. Each PlatformIO project records this with a relative core_dir in its platformio.ini; the local recipes therefore do not depend on a particular machine username or checkout root.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages