@ashfrench-dev/svelte-piano-roll
v0.0.4
Published
A simple and flexible piano roll widget built with Svelte
Downloads
4
Maintainers
Readme
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 from1
(A0
) to88
(C8
). Defaults to35
(G3
).key_count
:<int>
; The total number of keys the piano roll should render. Range is from1
to88
, but will not render keys beforeA0
or beyondC8
. Defaults to18
.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 isfalse
.show_highlight_keys
:<boolean>
; Whether to show highlighted notes or not. Default isfalse
.highlight_keys
:<array>
; A list of keys (<int>
) to highlight on the piano roll. Key range is from1
(A0
) to88
(C8
). Don't forget to sethighlight_keys
to true!on_key_press
:<function>
; A callback to execute after a key is pressed down. The callback will be passed a standardEvent
as an argument.on_key_unpress
:<function>
; A callback to execute after a key is released. The callback will be passed a standardEvent
as an argument.