The initial release comes with two components: <mm-keyboard> which allows you to define a audio context for a keyboard element, currently just using an Oscillator and <mm-key> which allows you to define a key on the keyboard with a frequency and time.
The structure of the keyboard is very declarative:
At the moment I am leaving the styling very flexible, so other interface styles can easily be created and eventually migrated to CSS variables.
It's based on an earlier app I wrote called Browser Band for a work hack day and I intend to use some of the existing code from there.
I’ll be looking to extend this component set further with:
- Adding support for MP3/WAV files
- Theming Support (skins such as Casio, Moog, etc)
- Add visualisers
- Support nested and sibling tags to create audio node connections via html tags
- Restructure the way context and instruments are created. Allow for creation of keyboards, drum pads and other instrumental controls on a single page.
Any comments or feedback if welcome over on the Github issues page.