๐น MIDI Editor - Web-based Singing MIDI Editor
21
7 commits
1 linked in READMEs
updated Feb 11, 2026
A full-featured web MIDI editor for singing voice preprocess. It supports real-time drag editing of MIDI notes, lyric editing, audio waveform alignment, and importing/exporting MIDI files with lyrics.
# Install dependencies
npm install
# Start dev server
npm run dev
# Expose to LAN
npm run dev -- --host 0.0.0.0
# Build for production
npm run build
# Preview build
npm run preview
| Action | Description |
|---|---|
| Double-click piano roll | Add a new note |
| Double-click note | Edit lyric |
| Drag note | Move note and pitch |
| Drag note edges | Resize note |
| Backspace / Delete | Delete selected note |
| Enter | Confirm value edits |
| Escape | Cancel value edits |
| Ctrl(Command) + Wheel | Horizontal zoom |
| Ctrl(Command) + Shift(Option) + Wheel | Vertical zoom |
| Button | Description |
|---|---|
| โฎ | Go to start |
| โช | Back 2 seconds |
| โถ / โธ | Play / Pause |
| โฉ | Forward 2 seconds |
| โญ | Go to end |
| Selection | Play selected region |
.
โโโ eslint.config.js
โโโ index.html
โโโ package.json
โโโ postcss.config.js
โโโ README.md
โโโ README_CN.md
โโโ tailwind.config.js
โโโ tsconfig.app.json
โโโ tsconfig.json
โโโ tsconfig.node.json
โโโ vite.config.ts
โโโ public/
โโโ src/
โโโ App.css # Main styles (theme variables, layout, components)
โโโ App.tsx # Main app component (transport, import/export, transpose)
โโโ constants.ts # Constants (grid width, row height, pitch range)
โโโ i18n.ts # Internationalization (zh/en translations, smart lyric tokenizer)
โโโ index.css # Global styles (Tailwind, root font, theme gradients)
โโโ main.tsx # React entry point
โโโ types.ts # Type definitions (NoteEvent, TimeSignature, etc.)
โโโ components/
โ โโโ AudioTrack.tsx # Audio waveform display component
โ โโโ LyricTable.tsx # Lyric editing table component
โ โโโ PianoRoll.tsx # Piano roll editor component
โโโ lib/
โ โโโ midi.ts # MIDI import/export utilities (UTF-8 lyric encoding)
โโโ store/
โโโ useMidiStore.ts # Zustand state management
๐น MIDI Editor - Web-based Singing MIDI Editor
21
7 commits
1 linked in READMEs
updated Feb 11, 2026
A full-featured web MIDI editor for singing voice preprocess. It supports real-time drag editing of MIDI notes, lyric editing, audio waveform alignment, and importing/exporting MIDI files with lyrics.
# Install dependencies
npm install
# Start dev server
npm run dev
# Expose to LAN
npm run dev -- --host 0.0.0.0
# Build for production
npm run build
# Preview build
npm run preview
| Action | Description |
|---|---|
| Double-click piano roll | Add a new note |
| Double-click note | Edit lyric |
| Drag note | Move note and pitch |
| Drag note edges | Resize note |
| Backspace / Delete | Delete selected note |
| Enter | Confirm value edits |
| Escape | Cancel value edits |
| Ctrl(Command) + Wheel | Horizontal zoom |
| Ctrl(Command) + Shift(Option) + Wheel | Vertical zoom |
| Button | Description |
|---|---|
| โฎ | Go to start |
| โช | Back 2 seconds |
| โถ / โธ | Play / Pause |
| โฉ | Forward 2 seconds |
| โญ | Go to end |
| Selection | Play selected region |
.
โโโ eslint.config.js
โโโ index.html
โโโ package.json
โโโ postcss.config.js
โโโ README.md
โโโ README_CN.md
โโโ tailwind.config.js
โโโ tsconfig.app.json
โโโ tsconfig.json
โโโ tsconfig.node.json
โโโ vite.config.ts
โโโ public/
โโโ src/
โโโ App.css # Main styles (theme variables, layout, components)
โโโ App.tsx # Main app component (transport, import/export, transpose)
โโโ constants.ts # Constants (grid width, row height, pitch range)
โโโ i18n.ts # Internationalization (zh/en translations, smart lyric tokenizer)
โโโ index.css # Global styles (Tailwind, root font, theme gradients)
โโโ main.tsx # React entry point
โโโ types.ts # Type definitions (NoteEvent, TimeSignature, etc.)
โโโ components/
โ โโโ AudioTrack.tsx # Audio waveform display component
โ โโโ LyricTable.tsx # Lyric editing table component
โ โโโ PianoRoll.tsx # Piano roll editor component
โโโ lib/
โ โโโ midi.ts # MIDI import/export utilities (UTF-8 lyric encoding)
โโโ store/
โโโ useMidiStore.ts # Zustand state management