{"id":50601944,"url":"https://github.com/dkyazzentwatwa/cardputer-mpc","last_synced_at":"2026-06-05T19:01:14.020Z","repository":{"id":361287948,"uuid":"1238119713","full_name":"dkyazzentwatwa/cardputer-mpc","owner":"dkyazzentwatwa","description":"Tiny MPC-style groovebox firmware for the M5Stack Cardpute","archived":false,"fork":false,"pushed_at":"2026-05-29T23:17:19.000Z","size":132,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-30T01:11:34.155Z","etag":null,"topics":["cardputer","esp32","music-player"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dkyazzentwatwa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-13T20:41:41.000Z","updated_at":"2026-05-29T23:17:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dkyazzentwatwa/cardputer-mpc","commit_stats":null,"previous_names":["dkyazzentwatwa/cardputer-mpc"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/dkyazzentwatwa/cardputer-mpc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkyazzentwatwa%2Fcardputer-mpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkyazzentwatwa%2Fcardputer-mpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkyazzentwatwa%2Fcardputer-mpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkyazzentwatwa%2Fcardputer-mpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dkyazzentwatwa","download_url":"https://codeload.github.com/dkyazzentwatwa/cardputer-mpc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkyazzentwatwa%2Fcardputer-mpc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33955543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cardputer","esp32","music-player"],"created_at":"2026-06-05T19:01:13.086Z","updated_at":"2026-06-05T19:01:14.015Z","avatar_url":"https://github.com/dkyazzentwatwa.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cardputer MPC\n\nTiny MPC-style groovebox firmware for the M5Stack Cardputer. It loads short drum samples from SD, maps them to the keyboard, sequences 16-step patterns, and saves/loads project JSON files back to SD.\n\nOn boot, Cardputer MPC shows a 4-second `Cypher Tune` intro with a scan-grid frame, animated waveform strip, sweep line, and loading bar before the main pad screen.\n\n## Hardware Target\n\n- M5Stack Cardputer K132 / `m5stack:esp32:m5stack_cardputer`\n- ESP32-S3FN8, 240 MHz, 8 MB flash, no real PSRAM on the standard unit\n- 240x135 display, keyboard, microSD over SPI, built-in mono I2S speaker\n- SD pins: SCK 40, MISO 39, MOSI 14, CS 12\n\n## Build\n\n```sh\narduino-cli compile --profile cardputer /Users/cypher/Documents/GitHub/cardputer-mpc\n```\n\nFlash with the usual Cardputer touch-first workflow:\n\n```sh\narduino-cli board list\nstty -f /dev/cu.usbmodemXXXX 1200\narduino-cli board list\narduino-cli upload --profile cardputer -p /dev/cu.usbmodemYYYY /Users/cypher/Documents/GitHub/cardputer-mpc\n```\n\n## SD Card\n\nCopy `sdcard/cardputer-mpc` to the root of the microSD card:\n\n```text\n/cardputer-mpc/\n  samples/\n    8bit/\n  kits/starter.json\n  kits/8bit.json\n  projects/demo-groove.json\n```\n\nSamples must be PCM WAV, mono, 8-bit or 16-bit, at 16000 Hz or 22050 Hz. The loader preloads samples into internal RAM and rejects oversized files instead of trying risky live SD streaming.\n\n## Included Kits\n\n- `starter`: the default boot kit and demo groove target.\n- `8bit`: a generated 16-pad chiptune MPC pack with drums, perc, FX, bass, lead, chord, arp, and blip one-shots in mono 8-bit/16000 Hz WAV format. Run `python3 tools/generate_8bit_pack.py` to regenerate it.\n\n## Controls\n\n- Pads: `q w e r`, `a s d f`, `z x c v`, `1 2 3 4`\n- Space: play/stop\n- Enter: start/toggle record overdub. Recording captures pad hits into the 16-step pattern while playback runs; it does not record live audio.\n- Tab: change view\n- `WAV` view: live waveform-style visualizer for currently triggered sounds\n- `5` / `6`: previous/next selected step\n- `[` / `]`: previous/next selected step fallback\n- `,` / `.`: previous/next selected pad\n- Shift + `,` / `.`: selected pad volume down/up\n- Selected pad key in Steps view: toggle that pad on the selected step\n- `-` / `=`: master volume down/up\n- Shift + `-` / `=`: BPM down/up by 5\n- Shift + `s`: save `/cardputer-mpc/projects/cardputer-jam.json`\n- `l`: load `/cardputer-mpc/projects/demo-groove.json`\n- Shift + `q`: return to Cypher OS when launched from its SD catalog\n- `k`: cycle kits: `starter` -\u003e `8bit` -\u003e `starter`\n- `n`: new blank pattern\n- Backspace or `` ` ``: panic/stop voices\n\n## Practical Limits\n\nDefault sample budget is intentionally conservative: about 160 KB soft budget and 220 KB hard budget. At 16-bit mono, 22050 Hz is about 44 KB per second, so short one-shots matter. If the SD kit is missing or too large, the firmware creates a tiny fallback kit in RAM so the sequencer and controls can still be tested.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkyazzentwatwa%2Fcardputer-mpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdkyazzentwatwa%2Fcardputer-mpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkyazzentwatwa%2Fcardputer-mpc/lists"}