尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A music studio anyone can pick up: kids, families, and grown-ups who love music but don't have the time for a pro studio. It starts as a soundboard: tap a pad, make a noise, annoy your family. Every next tool is one tap away, so you learn by goofing around, never by lessons: record your own sounds, add silly voices, make beats and whole songs. Goofing around counts as much as finishing a song. Everyone in the family gets a board of their own.
Play it at https://noodlepads.com, on a phone, a tablet or a computer. Nothing to install. No ads. No required account. No social feed. No AI makes the music for you. What we measure is only to make the app better.
The bar at the bottom has two sides: 🎉 Play (Pads and Live) and 🛠️ Make (Beats and Song).
Every part in detail: docs/guide.md. What each release added: CHANGELOG.md.
Plain HTML, CSS and JavaScript modules: no build step and no dependencies. You need just and Python 3 to run it, and Node.js for the tests.
git clone https://github.com/pdxfixit/noodlepads.git
cd noodlepads
just serve
Then open http://localhost:8765/. Run just in the repo's folder: from
anywhere else it finds a different justfile. just serve prints a Wi-Fi
address too, for a phone or tablet on the same network. Recording needs
https or localhost (browsers only allow the microphone there); the live
site is https, and just phone <serial> forwards the dev server to an
Android phone on adb (not yet tried on a real device).
Without a cloud behind it, the app says "The cloud isn't reachable from here" and everything else works.
just test
A syntax check, then Node's built-in test runner; nothing to install. Judge
it by the exit code. A test file whose report the runner cut short runs again
alone, and counts. The tests have no browser: just look checks every
screen width in a headless Chrome and saves screenshots.
Everything needed to keep Noodle Pads going has a just recipe, no agent
required. Run them in this repo's folder; just lists them all, and
just doctor checks this Mac first. Recipes that change the live site or
the cloud database show what they would do, or ask, before they do it.
| Task | Recipe |
|---|---|
| Is this Mac ready? | just doctor (tools, flarepress at ~/src/flarepress, ~/.config/noodlepads/cloud.json, the Keychain token) |
| Run it here | just serve; on an Android phone just phone <serial>, undone by just phone-off <serial> |
| Test | just test (judge by the exit code); just stress for a test that fails only sometimes |
| Look at every screen width | just look (--wide adds the big screens; just look --help lists views) |
| Deploy | GitHub deploys every push to main (.github/workflows/deploy.yml); from the Mac, just deploy (asks first). just deploy-check and just deploy-plan change nothing |
| What is live, and roll back | just live; just rollback prints the steps; just live-check is the daily check |
| Check the live cloud | just deploy-checks runs just cloud-smoke and just cloud-e2e (each makes and deletes its own test profile), and just taps on the live site |
| Check a finger's taps sound | just taps: a phone in headless Chrome taps 🔊 Pads, 🎤 Live and 🧸 Kids, fresh, after 🛠️ Make and back, and after a freeze and thaw; each must sound |
| Back up the cloud database | just cloud-backup (a .sql file in ~/.local/state/noodlepads/backups/) |
| Look in the cloud database | just cloud-profiles, just cloud-stats, just cloud-sql "SELECT …", or any wrangler command with just cloud-db … |
| Change the cloud database | just cloud-migrate (then --yes; the deploy runs it too, so by hand only for a drop); just cloud-prune (then --yes); just cloud-reset-pin "<fun name>" (then --yes: a random PIN, shown once); just cloud-schema for a new, empty database only |
Agents use the rest: just setup (the git hooks, once per clone), just ship, just land, just land-continue, just ci-wait (waits for a commit's GitHub runs), just policy (copies
docs/privacy-policy.md to the privacy site's repo once a change to it is on main; --dry-run stops before landing),
just archive-agent, just prove, just version (the release in
web/version.js, bumped with every change to web/), and the steps a deploy runs itself
(just stamp, just deploy-verify).
Deploying uses flarepress and the site
folder site/: docs/deploy-cloudflare.md.
| Doc | What it holds |
|---|---|
| docs/guide.md | How the app works: every screen, and how sounds, beats and songs are stored |
| docs/layout.md | The file map |
| docs/formats.md | The backup format, field by field |
| AGENTS.md | How to work on this repo, for people and coding agents: start, verify, ship, the rules |
| docs/how-to.md | Step by step: a bug fix, a stored-format change, landing, deploy and rollback |
| docs/decisions.md | Every rule decided so far, and why |
| docs/adr/ | Why the biggest decisions were made |
| CHANGELOG.md | What each release has |
The app links the full policy from ⚙️ Settings and Help. Here are the
plain words on the cloud (web/privacy.js; tests/privacy.test.mjs keeps
this copy the same and ties the claims to the code).
🔓 What's private (not much)
What the app sends about how it is used, and how long it is kept, is in the full policy, shared by every pdxfixit app: Privacy policy.
MIT.
| Bring problem reports and metrics home |
python3 ~/src/telemetry/telemetry.py pull: the telemetry runner (pdxfixit/telemetry) harvests them, and this copies its store to ~/.local/state/telemetry/telemetry.sqlite3 |
| Problem reports | just logs, --errors, --digest read them from that copy |
| Move the old Mac archives into the runner (once) | just runner-export all LOGS METRICS OUT (both in the one file to import), just runner-export check FILE (docs/how-to.md, "Retire the old Mac archives") |
| Has a council seat stopped finding things? | just council-tripwire (a seat whose last 10 reviews were all a plain pass; docs/council.md) |
| Make sounds and emoji lists | just placeholders, just emoji, just preset-loudness (how loud each preset plays on a phone; --fix evens them out), just kids-prompts (checks the recordings of 🧸 Kids' spoken prompts; --fix wires them in) |