I made a keyboard synthesizer using Javascript and the Web Audio API that has two different modes: a default mode, and an arpeggiator mode. You can also choose between the four different types of waveform (sine, triangle, square, sawtooth). Using the built-in keypad, when the .html file is launched you can press keys on your laptop in the same way that you would press keys on a keyboard.
Feel free to download the code and try it out.