Release MIDI Tools v0.1.0
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# MIDI Tools
|
||||
|
||||
Parse, visualize, edit, audition and export Standard MIDI files locally in the browser. Files and playback never leave the device.
|
||||
|
||||
## Features
|
||||
|
||||
- Strict, bounded Standard MIDI file type 0 and type 1 parsing with running status, canonical VLQs, channel events, metadata and bounded SysEx.
|
||||
- Track/event inspection, tempo, time-signature and key-signature timelines, a piano roll and pitch-class keyboard.
|
||||
- Immediate-stop Web Audio timing preview using a small built-in sine synthesizer.
|
||||
- Transpose, note quantize, constant-tempo, crop and channel remap/remove operations with twenty-step undo.
|
||||
- Deterministic valid MIDI export plus spreadsheet-safe CSV and descriptive JSON reports.
|
||||
- Offline PWA and shared Toolbox system/light/dark shell.
|
||||
|
||||
## Limits and editing semantics
|
||||
|
||||
Input and output are capped at 8 MiB, 256 tracks and 250,000 events; aggregate SysEx is capped at 1 MiB. Only PPQN timing is supported. Playback schedules at most 2,000 notes, considers the first 900 seconds and caps any sounding note at 30 seconds. It is a timing preview, not a General MIDI instrument or soundfont renderer.
|
||||
|
||||
Transpose updates note, note-off and poly-pressure pitches but deliberately does not rewrite key signatures. Quantize moves paired note boundaries to ticks. Crop clips overlapping paired notes, retains the latest tempo/time/key, program and controller setup, then shifts to tick zero. MIDI export writes full status bytes, canonical VLQs and one end-of-track event per track.
|
||||
|
||||
## Development
|
||||
|
||||
Use Node.js 22+ and npm 11. Run `npm ci`, `npm run check`, `npm run test:browser`, then `npm run package:release -- --force`. The deterministic artifact is `release/midi-tools-0.1.0.zip` with a SHA-256 sidecar.
|
||||
|
||||
## Licence
|
||||
|
||||
GPL-3.0-or-later.
|
||||
Reference in New Issue
Block a user