openjutsu
영상에서 원클릭으로 인물 교체, ComfyUI·MiniMax H3 기반 오픈소스 로컬 힉스필드 겐주츠 대안, FLUX.3 Klein 재조명 지원
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A chromatic and instrument tuner, guitar practice exercises and a Guitar Pro tab player that run in the browser. No server, no build step, no dependencies: plain HTML, CSS and JavaScript.
index.html Page skeleton (Tuner, Practice and Tab Studio pages)
css/style.css All styles (light and dark themes)
js/pitch.js Pitch detection (McLeod / NSDF), shared by anything that listens
js/tuner.js Tuner: microphone input, string detection, pitch trace
js/voice.js Voice: pitch trail, range finder, singing exercises, song key helper
js/alphatab.js Loads alphaTab once for Practice and Tab Studio
js/exercises.js Practice catalogue: names, descriptions, tempos
js/practice.js Practice: plays the exercise files with alphaTab, in a loop
js/tab-studio.js Tab Studio: opens, plays, loops and edits Guitar Pro / MusicXML files (alphaTab), and scores singing along with a vocal track
js/amp.js The amp: drive and volume for everything alphaTab plays, and Tab Studio’s mix
js/metronome.js The metronome beside the amp: swings at the playing tempo, sets tempo and click volume
js/app.js Switching between #tuner, #practice and #tab-studio, offline support
practice/*.gp The Practice exercises as Guitar Pro 7 files (generated, see below): <id>.gp, or <id>-p<n>.gp per position
tools/ Dev-only scripts (Node): exercise files, asset hashes, git hook; not needed to run the site
tests/ Node tests (pitch detection); not needed to run the site
sw.js Service worker: caches the app and the exercise files for offline use
manifest.webmanifest Lets the app be installed to the home screen
favicon.svg
icons/ App icons (192, 512, maskable, apple-touch-icon) and the link-preview image, drawn by tools/make-icons.js
.nojekyll Turns off Jekyll processing on GitHub Pages
Most browsers block the microphone on file:// pages, so start a small local server:
python3 -m http.server 8000
# open http://localhost:8000
The notes of every Practice exercise are stored as Guitar Pro 7 files in practice/, so they render and play exactly like files opened in Tab Studio (and can be opened in Guitar Pro). They are generated from the definitions in tools/make-practice-files.js and the catalogue in js/exercises.js. After changing either, regenerate them with Node:
cd tools && npm install && npm run practice
The script reads every file back after writing it and stops if any note differs. A new exercise needs an entry in js/exercises.js and, for techniques, its notes in the script; the service worker picks up the new file automatically.
The PNG app icons and the link-preview image (icons/social.png, 1200×630, used by the Open Graph and X/Twitter tags) are drawn from the logo's shapes by a small Node script with no dependencies. After changing the logo, run:
node tools/make-icons.js
The pitch detector is tested with Node, no browser needed: sines and sawtooths at known frequencies, from a 5-string bass's low B to the top of the chromatic range, at 44.1 and 48 kHz, must come back within 1 cent.
node --test tests/*.test.js
Every CSS and JS link in index.html carries a hash of the file's content (css/style.css?v=36afc388), and so do the exercise files and the service worker's precache list. When a file changes, its URL changes, so a CDN or browser cache can't serve an old stylesheet next to new HTML. (In front of 7uner.com, Cloudflare keeps CSS and JS for hours; without this, a deploy can show the new page with the old styles.)
The hashes are written by tools/stamp-assets.js. Run it before committing, or let git do it by turning on the hook in tools/hooks once per clone:
git config core.hooksPath tools/hooks
The hook stamps and re-adds index.html, sw.js and js/exercises.js to the commit.
7uner) and put the contents of this folder at its root.main, folder: / (root).https://<username>.github.io/7uner/.7uner.com) under Settings > Pages > Custom domain. GitHub adds a CNAME file to the repository automatically.A records for the apex domain (7uner.com): 185.199.108.153, 185.199.109.153, 185.199.110.153, 185.199.111.153CNAME record for www pointing to <username>.github.iojs/amp.js): a drive knob (0 is clean; turning it up adds distortion) and a volume knob, saved in the browser. The metronome goes through it too, so Volume 0 silences it as well. In Tab Studio, with a file open, a second row of knobs on the amp is the mix: Guitar (the guitar track picked), Vocals (when the file has a vocal track) and Backing (everything else); 0 mutes a channel.js/metronome.js). While Practice or Tab Studio plays, its rod swings at the playing tempo, kept in phase with the music. Sliding the weight or the − and + buttons (10 BPM a step) set the tempo; in Practice this is the only tempo control, and in Tab Studio it sets the speed relative to the song’s tempo, and a drawer under the base holds three brass keys for 50%, 75% and 100% (the one in use lights up like the metronome’s display; Practice has no drawer, since its exercises have no tempo of their own to take a share of). The knob on its right side sets the click and count-in volume (1.25× alphaTab’s default at the middle, 2.5× at the top); in Practice and Tab Studio the click is always on and volume 0 silences it. The switch on its left side turns the one-bar count-in on or off (off by default), for both pages.localStorage and don't carry over to other devices.