svelte-piano-roll Svelte Themes

Svelte Piano Roll

A simple and flexible piano roll widget built with Svelte

Svelte Piano Roll

  • A simple, interactive piano roll interface
  • Fully interactive for touch and mouse
  • Will reliably scale to any size
  • Note labelling
  • Key highlighting
  • Functions for key interactions for easy integration
  • Svelte is the only dependency

Usage

<script>
  import { PianoRoll }  from '@ashfrench-dev/svelte-piano-roll'

  let startingKey = 35
  let keyCount = 18
  let height = '100%'
  let width = '100%'
  let showNoteLabels = false
  let showHighlightKeys = false
  let highlightKeys = []
  let onKeyPress = (e) => {}
  let onKeyUnpress = (e) => {}
</script>

<PianoRoll 
  starting_key={startingKey}
  key_count={keyCount}
  height={height}
  width={width}
  show_note_labels={showNoteLabels}
  show_highlight_keys={showHighlightKeys}
  highlight_keys={highlightKeys}
  on_key_press={onKeyPress}
  on_key_unpress={onKeyUnpress}/>

PianoRoll parameters

  • starting_key: <int>; The key the piano roll should start rendering keys. Range is from 1 (A0) to 88 (C8). Defaults to 35 (G3).
  • key_count: <int>; The total number of keys the piano roll should render. Range is from 1 to 88, but will not render keys before A0 or beyond C8. Defaults to 18.
  • height: <string>; The height of the piano's container. A CSS-valid height value. Default is '100%'.
  • width: <string>; The width of the piano's container. A CSS-valid width value. Default is '100%'.
  • show_note_labels: <boolean>; Whether to show note labels or not. Default is false.
  • show_highlight_keys: <boolean>; Whether to show highlighted notes or not. Default is false.
  • highlight_keys: <array>; A list of keys (<int>) to highlight on the piano roll. Key range is from 1 (A0) to 88 (C8). Don't forget to set highlight_keys to true!
  • on_key_press: <function>; A callback to execute after a key is pressed down. The callback will be passed a standard Event as an argument.
  • on_key_unpress: <function>; A callback to execute after a key is released. The callback will be passed a standard Event as an argument.

Top categories

Loading Svelte Themes