Skip to content

teruyukishiraiwa/concert-harp-glissando-generator

Repository files navigation

Concert Harp Glissando Generator (v1.0)

A browser-based production helper for the composition and orchestration stage, designed for exploring double-action pedal harp glissandi and finding the pedal settings that make a single sweep realise a chosen chord or scale.

Initial public release: June 21, 2026 (JST)

Current release: Concert Harp Glissando Generator v1.0 - June 21, 2026 (JST)

Official site: https://concert-harp-glissando-generator.pages.dev/

Created by Teruyuki Shiraiwa / 白岩晃行.
Creator website: https://teruyukishiraiwa.art/

Visual overview

Pedals to sound

Pedals to sound workflow

Sound to pedals

Sound to pedals reverse solutions

Result, export, and pedal changes

Result and pedal change analysis

What it does

  • Pedals → Sound (forward): set the seven pedals (D C B | E F G A, each ♭/♮/♯) and see the resulting glissando, including the chord/scale it spells via enharmonic doublings. The sweep range is set with a two-handle string-range slider.
  • Sound → Pedals (reverse): choose a root and a sonority (dominant 7th, diminished 7th, whole-tone, pentatonic, …) and get every pedal setting that plays it as one uninterrupted sweep, ranked tidiest-first. Impossible sonorities are reported as such, with playable alternatives that expand the target into harp-friendly pitch sets.
  • Dynamics: velocity min/max, curve, and a direction-aware contour (natural rises on an ascending sweep, falls on a descending one, peaks at the turn for up-down / down-up; inverted mirrors it).
  • Grand-staff notation (VexFlow): the glissando's anchor notes connected by a slanted gliss. line, the way harp glissandi are actually written.
  • Standard MIDI File (Type 1, PPQ 960) export for DAWs such as Logic Pro.
  • MusicXML export (notes spelled by harp string letter + pedal accidental) for MuseScore / Sibelius / Dorico, and a Print / Save-as-PDF sheet (pedal diagram + grand staff) with app, GitHub, and creator credits for clean copy.
  • Tone.js preview with bundled CC0 concert-harp samples (FreePats / Versilian VCSL) and a switchable voice — Standard (12 notes @ 22 kHz, default) or High quality (22 notes @ 44.1 kHz), loaded on demand — with a plucked-synth fallback if samples are unavailable.
  • English / Japanese UI, with a header Reset control for returning the musical state to defaults.
  • Named presets saved locally (IndexedDB) and a self-contained share link that encodes the full state in the URL hash (#d=…) — no backend required.
  • Pedal-change analysis: capture one glissando's pedals, change to the next, and see whether the move is playable in a single motion (≤ 1 pedal per foot) or needs max(left, right) successive motions.

The harp model

47 strings (C1–G7, one per diatonic letter). Seven pedals, one per letter, each with flat / natural / sharp detents (home tuning = all flat = C-flat major). A pedal sets every string of its letter, so a glissando's pitches are fully determined by the pedal state. See SPEC.md for the full specification and engine algorithms.

Develop

npm install
npm run dev

Test

npm test

Build

npm run build   # outputs to dist/

Deploy

Cloudflare Pages (Vite preset): build command npm run build, output directory dist, Node 20+. Security headers are served from public/_headers. Optional harp samples go in public/samples/harp/ (see the README there).

Status

v1.0 is a stable foundation: complete pedal engine (forward + reverse), MIDI export, sampled audio preview, pedal-diagram UI, grand-staff gliss notation, MusicXML + Print/PDF export, local presets + share links, pedal-change analysis, and tests. Not yet included: Web MIDI output.

About

A browser-based tool for composers and orchestrators to design pedal-harp glissandi, preview their sound, and find pedal settings for selected chords and scales.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors