ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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 → LearnREADME 전문 보기 ↗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.