ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Learn music by humming it. HumStudio turns your voice into editable multitrack arrangements, explains keys and chords with Gemini, and exports MIDI. Built for HackRU Fall 2026.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Learn music by humming it.
A music learning and composition sketchpad built for HackRU Fall 2026 · Education Track. Hum a melody, see it become editable notes, build an instrumental arrangement, and explore the theory behind your music.
You can know a melody by ear without knowing its notes, rhythm, or chords. HumStudio connects the sound you make to those ideas through a simple loop:
Hum → See your notes → Experiment → Listen → Learn檢視完整 README ↗Learn music by humming it.
A music learning and composition sketchpad built for HackRU Fall 2026 · Education Track. Hum a melody, see it become editable notes, build an instrumental arrangement, and explore the theory behind your music.
Try the live demo · Run locally · License
You can know a melody by ear without knowing its notes, rhythm, or chords. HumStudio connects the sound you make to those ideas through a simple loop:
Hum → See your notes → Experiment → Listen → Learn
Live pitch feedback, labeled notes, and chord overlays make music theory visible. Editing and playback let you hear what changes when you move a note, adjust its timing, or add another instrument. The Gemini theory agent explains the current progression in plain language and suggests variations to explore.
Use desktop Chrome or Edge with a microphone. Demo hum provides a clearly labeled synthetic example when a microphone is unavailable.
| Feature | What you can do |
|---|---|
| Five instrument tracks | Build Melody, Bass, Keys, Drums, and Strings parts across eight bars of 4/4. |
| Hum-to-notes | Record a short phrase with live pitch feedback and a spectrogram, then edit the generated notes. |
| Learn mode | Explore note names, solfège, scale degrees, key, chord symbols, and Roman numerals. Follow the active chord during playback. |
| Gemini theory agent | Get plain-language explanations of your chord progression and ideas for alternative chords and voicings. |
| Independent track settings | Choose a sound, Low/Medium/High sensitivity, and Snap Off/1/4/1/8/1/16 for each instrument. |
| Piano-roll editing | Add, move, resize, delete, copy regions, repeat phrases, and undo or redo changes. |
| Five drum lanes | Work with Kick, Snare, Closed hat, Open hat, and Crash while keeping every lane visible. |
| Playback controls | Play, pause, stop, rewind, change tempo, mute or solo tracks, and use a metronome and count-in. |
| Save and export | Autosave in your browser, save/open .humstudio.json projects, and export a multitrack .mid file. |
Selected sounds for all five instruments load automatically when the app opens. Downloads have retry and synth fallback support; playback starts after a user gesture.
The recording workflow is designed for clear, one-note-at-a-time humming in a reasonably quiet room. Harmony inference and AI explanations can be imperfect; you can edit notes and select a different key.
| Area | Technology |
|---|---|
| Application | Next.js 16, React 19, TypeScript |
| Microphone and pitch | Web Audio API, Pitchy |
| Note generation | Local DSP segmentation, rule-based harmony, quantization |
| Instrument playback | Tone.js 15, smplr sampled presets with synth fallback |
| Theory agent | Gemini streaming REST API through a Next.js Route Handler |
| MIDI | @tonejs/midi |
| Persistence | Browser localStorage and versioned JSON project files |
| Interface | Custom CSS, Archivo typography, canvas spectrogram |
localhost in development or HTTPS for microphone access on a hosted deployment.npm ci
Create a Gemini API key in Google AI Studio. Add it to .env.local in the repository root:
GEMINI_API_KEY=your-key-here
The file is ignored by Git. Keep the key server-side and do not give it a NEXT_PUBLIC_ prefix. For hosted deployments, set the same variable in the server environment.
The default model is gemini-3.5-flash-lite. Set GEMINI_MODEL to override it. Restart the development server after changing environment variables. If the key is missing, the Explain dialog shows a configuration message.
npm run dev
Open http://localhost:3000. The studio starts at 120 BPM, 1/4 Snap, and Medium sensitivity, with labeled sample parts on Keys and Drums.
On Windows PowerShell, use npm.cmd and npx.cmd if execution policy blocks the script wrappers.
| Action | Control |
|---|---|
| Play / pause | Space |
| Record / stop recording | R |
| Open an instrument | 1–5 |
| Return to all tracks / cancel a copy preview | Escape |
| Mute / solo the open track | M / S |
| Toggle Learn / metronome | L / K |
| Undo / redo | Ctrl+Z / Ctrl+Shift+Z |
| Save project | Ctrl+S |
| Show all shortcuts | ? |
Copy a region: open a track, press Ctrl+C (Cmd+C on macOS), and drag a rectangle over notes. Drag the highlighted group horizontally to insert copies, or use Ctrl+V at the playhead. Copying supports chords and multiple drum rows within the same instrument. Each successful paste is one Undo step; collisions and placements outside the song are rejected together.
Adjust a take: each track retains its own sensitivity and Snap settings. The latest unedited take can be regenerated after Save/Open. Hand-edited notes remain intact when sensitivity changes. Project files use schema v3 and support v1/v2 imports.
Regression suites cover pitch segmentation, harmony, playback, sound loading, editing, project validation, MIDI, and theory-agent helpers. Browser suites cover studio interactions, startup sounds, per-track settings/copy, and persistence boundaries.
To check implementation changes:
npm run lint
npx tsc --noEmit
npm test
npm run build
Browser suites use an existing Playwright installation and Microsoft Edge. For example, with the development server running:
node src/tests/browser/studio-interactions.mjs <path-to-playwright-package> [http://localhost:3000]
Related suites: startup sounds, per-track settings and copy, and persistence boundaries. Results are written to ignored .test-build/. Synthetic microphone tests exercise the recording pipeline; human listening and learner feedback require separate checks.
HumStudio's original source code is licensed under the MIT License. Third-party libraries and sampled sounds retain their own licenses. smplr is MIT-licensed; sound sources include CC BY 3.0, CC0, and public-domain samples. See sound credits and license notices and the smplr MIT notice.
Event: HackRU Fall 2026 · Track: Education · License: MIT.