TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Vocal warm-up scales on the piano, moving up a half step at a time. 半音ずつ上がる発声練習のピアノ伴奏
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A piano accompanist for vocal warm-ups. Choose an exercise (Do-Re-Mi-Fa-Sol-Fa-Mi-Re-Do, arpeggios, scales, or your own), the key to start on, the key to end on, and the tempo. The piano plays it, then moves up or down a half step and plays it again until it reaches the end key. Line exercises up into practice sets that play straight through, and export / import them to share as a file.
発声練習のピアノ伴奏ツールです。練習パターン(ドレミファソファミレド・ドミソ・スケール・オリジナル)、開始のキーと終了のキー、テンポを選ぶと、ピアノが半音ずつ上げ下げしながら終了のキーまで繰り返し弾きます。練習を並べた「練習セット」は通しで再生でき、エクスポート・インポートでほかの人と共有できます。
▶ https://ktkwmr.com/vocalladder/ (日本語: https://ktkwmr.com/vocalladder/ja/)
/vocalladder/ja/, ?lang=en|ja)
ホーム画面に追加でき、オフラインでも動作。英語・日本語| Write | Meaning |
|---|---|
1–7 | Do Re Mi Fa Sol La Ti (major scale from the key) / ド〜シ |
8–15 | the next octave (8 = Do an octave up) / 1オクターブ上 |
b3, #4 | b before a number lowers it a half step, # raises it (b3 = Mi lowered a half step) / 数字の前の b で半音下がり、# で半音上がる |
5, / 1' | an octave lower / higher / 1オクターブ下・上 |
- | one beat longer (1-- = 3 beats) / 1拍のばす |
/ | half as long (1/ = half a beat) / 半分の長さ |
r | rest / 休み |
Example: 1 2 3 4 5 4 3 2 1- = Do-Re-Mi-Fa-Sol-Fa-Mi-Re-Do with a 2-beat last note. The built-in patterns plus the 2-beat chord fill whole bars of 4 beats, so the next key starts right on the beat. Patterns with a minor third (b3) and no major third get a minor chord.
Export saves all sets and My patterns in one file. Import adds every set and pattern in the file (patterns whose notes are already saved are skipped); a set with the same name and the same exercises as one already there is skipped, and a different set with a name that already exists gets “(2)”. Nothing saved is replaced. Version 3 files (no listenFirst; their melody is ignored, as the melody is always played), version 2 files (no patterns) and version 1 files (one set, "format": "vocalladder-set") can still be imported.
エクスポートはすべてのセットとマイパターンを 1 つのファイルに保存します。インポートはファイルのセットとマイパターンをすべて追加します(同じ音のマイパターンはすでにあれば追加しません)。名前も中身も同じセットがすでにあれば読み込まず、名前だけ同じなら「(2)」を付けます。既存のセットは置き換えません。listenFirst のない version 3(melody は無視し、メロディーはいつも弾く)、マイパターンのない version 2 と、1 セットだけの version 1 も読み込めます。
{
"format": "vocalladder-sets", "version": 4,
"patterns": [ { "name": "Do-Mi-Sol twice", "pattern": "1 3 5 3 1 3 5 3 1-" } ],
"sets": [
{ "name": "Soprano A",
"exercises": [
{ "name": "", "pattern": "1 2 3 4 5 4 3 2 1-", "start": "C4", "end": "G4", "step": 1,
"roundTrip": false, "bpm": 100, "rest": 0, "chord": true, "listenFirst": false }
] }
]
}
Full policy: /vocalladder/privacy/ (/vocalladder/ja/privacy/). Operator: /vocalladder/about/.
public/
_headers # security headers (CSP etc.)
404.html # page for unknown URLs under /vocalladder/ (status 404)
vocalladder/
index.html # the app (HTML / CSS / JS, English and Japanese text)
timer.js # worker that ticks the player's scheduler (keeps running in a background tab)
ja/index.html # Japanese page, generated from index.html (do not edit)
guide/ patterns/ warmup-scales/ faq/ about/ privacy/ ja/... # articles and info pages, generated from scripts/pages/ (do not edit)
images/guide/ # app screenshots for the guide (scripts/render-guide-images.mjs)
sitemap.xml # generated by scripts/build-pages.mjs (do not edit)
sw.js manifest.json icons/ og-image.png THIRD_PARTY_LICENSES.md
scripts/
build-ja.mjs build-pages.mjs pages/ update-third-party-licenses.mjs
pages/vocal.mjs # values for the articles, read from the app (patterns, note names, parser)
render-guide-images.mjs # takes the guide screenshots (Playwright)
og-image.html render-og-image.mjs render-icons.mjs
wrangler.jsonc # Cloudflare Workers (static assets, route ktkwmr.com/vocalladder*)
CLAUDE.md docs/baseline-status.md
This Worker only serves /vocalladder/*; the domain root belongs to the ktkwmr-home Worker (ktkwmr/ktkwmr.com).
When you load anything from a new external host, add it to the CSP in public/_headers and update the privacy text.
Serve public/ and open /vocalladder/. Opening index.html as a file:// URL does not work (Service Worker, worker timer).
file:// で直接開くと動きません。ローカルのサーバーで public/ を配信してください。
npx wrangler dev # http://localhost:8787/vocalladder/ (also runs the generators)
# or
npx serve public
If the app shows an old version, reload (or restart the installed app). 古い画面が出るときは再読み込みしてください。
Cloudflare Workers static assets. With Workers Builds connected, a push to main deploys; other branches get preview builds. By hand: npx wrangler deploy.
Edit only public/vocalladder/index.html, timer.js, sw.js, and scripts/. ja/index.html, the articles (guide, patterns, warmup-scales, faq), the info pages, and sitemap.xml are generated by wrangler deploy / wrangler dev and by the Build generated pages workflow on push to main:
node scripts/build-ja.mjs # regenerate ja/index.html
node scripts/build-pages.mjs # regenerate the articles, info pages, and sitemap.xml
node scripts/build-ja.mjs --check # exit 1 if out of date (same for build-pages.mjs)
編集するのは index.html・timer.js・sw.js と scripts/ だけです。生成ファイルは手で編集しません。
node scripts/build-preview.mjs writes .preview/ (not committed): index.html without the Service Worker, manifest, and analytics, plus the files it loads (timer.js, …). Claude publishes it as an Artifact to show a working version before deploying. Export uses the viewer's downloads capability there.
npm install --no-save playwright && npx playwright install chromium
node scripts/render-og-image.mjs # og-image.png from scripts/og-image.html
node scripts/render-icons.mjs # PNG icons from icons/icon.svg
node scripts/render-guide-images.mjs # screenshots for the guide (re-run when the app's look changes)
No third-party libraries. If a pinned CDN library is added under public/, the Update third-party licenses workflow adds it to THIRD_PARTY_LICENSES.md.
MIT © 2026 ktkwmr