Bob’s Mini Keyboard Page

The 2023 Vacation Project
 
 
  W E   T Y U   O P   ]
 
   
 
C♯
D♭
   
 
D♯
E♭
     
 
F♯
G♭
   
 
G♯
A♭
   
 
A♯
B♭
     
 
C♯
D♭
   
 
D♯
E♭
     
 
F♯
G♭
 
                                                     
 C   D   E   F   G   A   B   C   D   E   F   
 
A S D F G H J K L ; '  
  2 3   5 6 7   9 0   = \
 
   
 
C♯
D♭
   
 
D♯
E♭
     
 
F♯
G♭
   
 
G♯
A♭
   
 
A♯
B♭
     
 
C♯
D♭
   
 
D♯
E♭
     
 
F♯
G♭
   
 
G♯
A♭
 
                                                           
 C   D   E   F   G   A   B   C   D   E   F   G   
 
Q W E R T Y U I O P [ ]  
 
  A S D   G H   K L ;  
 
   
 
F♯
G♭
   
 
G♯
A♭
   
 
A♯
B♭
     
 
C♯
D♭
   
 
D♯
E♭
     
 
F♯
G♭
   
 
G♯
A♭
   
 
A♯
B♭
   
                                                     
   G   A   B   C   D   E   F   G   A   B   
 
  Z X C V B N M , . /  

Click here to start playing ⇒  ⇐

This year was rather unusual. I thought I would have less free time during my annual holiday vacation due to family issues, but those same family issues prevented any traveling or hosting, so it actually balanced out so that I had almost as much free time as I normally would. So, of course, I wrote a program. 😊
 
On this page, you can play your computer keyboard like a musical keyboard. Press a key (see the key mappings above) and a note will play. Release the key, and the note will stop. Press multiple keys simultaneously and a chord will play (however, see the notes below for limitations).
 
This program does not work quite as well on mobile platforms, but it will function within the limitations outlined below.
 
The options available are as follows:
Entry Mode
This determines how the notes are entered. possible options are:
Keyboard
Use this option to select the notes using the computer’s keyboard.
Touchscreen
Use this option to select the notes by touching the “piano keys” displayed on the screen.
Volume
Select the percentage of the system volume at which the notes will be played.
Keyboards
The number of keyboards to display:
  1. A single keyboard using the ‘A’, ‘S’, ‘D’, ‘F’, ‘G’, ‘H’, ‘J’, ‘K’, ‘L’, ‘;’ and ‘'’ keys for the natural notes and the ‘W’, ‘E’, ‘T’, ‘Y’, ‘U’, ‘O’, ‘P’ and ‘]’ keys for sharps and flats.
  2. Two keyboards, with the upper keyboard using the ‘Q’, ‘W’, ‘E’, ‘R’, ‘T’, ‘Y’, ‘U’, ‘I’, ‘O’, ‘P’, ‘[’ and ‘]’ keys for the natural notes and the ‘2’, ‘3’, ‘5’, ‘6’, ‘7’, ‘9’, ‘0’, ‘=’ and ‘\’ keys for sharps and flats while the lower keyboard uses the ‘Z’, ‘X’, ‘C’, ‘V’, ‘B’, ‘N’, ‘M’, ‘,’, ‘.’ and ‘/’ keys for the natural notes and the ‘A’, ‘S’, ‘D’, ‘G’, ‘H’, ‘K’, ‘L’ and ‘;’ keys for sharps and flats.
Octave
Set the octave for the leftmost keys on the single keyboard or the upper keyboard when there are two. The default (4) sets the ‘A’ key (single keyboard) or ‘Q’ key (dual keyboard) to Middle C. Note that the minimum octave value switches from 3 for the single keyboard to 4 for the dual keyboard. This is to avoid the non-playing notes at the bottom of the range (see the note below).


Note that due to hardware limitations of some keyboards, some key combinations will not register properly. This is known as “Key Ghosting” when an extra key registers as being pressed or “Key Jamming” when one or more keys do not register as being pressed. These issues cannot be resolved by software. The actual key combinations that fail will vary by keyboard model and manufacturer.
 
Most virtual keyboards do not support key chording (pressing multiple keys at once). In fact, some virtual keyboards will not work with this page at all. For platforms without a physical keyboard, the user would be better off using the “Touchscreen” entry mode option.
 
Most modern touchscreens and browser apps use a multi-touch interface. The maximum number of simultaneous touches allowed varies by platform. Try it on your device to find out.
 
If the user has an alternate keyboard mapping (such as Dvorak, QWERTZ, etc.) and the user’s browser supports the proper library, the labels for the keyboard characters used to play the notes will be updated to reflect the user’s settings. Otherwise, the QWERTY layout will be displayed.
 
In testing, I’ve noticed a bit of a performance issue on some mobile platforms. Older, slower devices may not be sufficiently responsive to touches. I’ve also noticed that some platforms have a significant “click” when a note starts or ends. For mobile platforms, a true keyboard app is the better option. Also, the JavaScript tone player fails at the lower and upper ends of the defined range of notes. The exact point of failure varies with the platform and JavaScript engine, but always affects the lower end more than the upper end.
 
In short, this page does a great job of exposing the limitations of an interpreted programming language (like JavaScript). The software interpreter installed on the user’s machine can significantly and often negatively affect how well the program works, sometimes as much as or more than the user’s hardware.
 
Updated 2024 JAN 01
Designed and created by Bob Easterbrooks (robert@easterbrooks.com).
Copyright © 2023-4, Robert Easterbrooks. All rights reserved.