Welcome to the DVIICE instructional page. Here, you'll learn the features of the DVIICE, along with some tips.

The button below Instrument 1 switches between compatibility mode and desktop mode (see modes, below). Simply click it to switch.

Mouse over a note to see all enharmonic (equivalent) notes. Mousing over middle C on the piano, for example, will highlight every middle C in all displayed instruments. It will not, however, highlight all C notes on every octave. Click a note to play it (see modes, below).

You can also play the DVIICE with the keyboard. V through / play C through B, with sharps on G through ;. T through [ will play one octave higher, with sharps on 6 through -. Switch octaves by pressing Z, X, C, A, S, and D, corresponding to ascending octave pairs in that order. For example, tapping A will make octaves 4 and 5 available, with C4 on V and C5 on T. Play chords by simply pressing multiple keys at once (assuming a keyboard with adequate rollover).

Desktop mode has several features not available in compatibility mode:

  • You can switch the waveform to a sine wave (default) with Q, a triangle wave with W, a square wave with E, or a sawtooth wave with R.
  • You can apply vibrato by pressing 1 through 5 for slight to strong vibrato, or turn it off with the backtick (`, above the tab key with ~).
  • The tall rectangle between the instruments and the staff is a pitch wheel. Click and hold to set a neutral point, then drag the mouse up and down to bend notes. This works with notes played on the keyboard in real time, or with notes and chords played back from the text area (but not with notes played via mouse click, of course). Notes will be bent whether you play them before you click the pitch wheel or afterward.
  • Repeated notes stand out instead of blending together, with pluck mode (the default). Turn it off to group consecutive notes into one sustained note with < (shift-,) and turn plucking back on with > (shift-.).

If you play notes or commands with the keyboard while the text area at the bottom of the page has focus, you will also type those keys into the box. Use a space or underscore (_) for a rest. You can then set a BPM (plays one note per beat, default 120 per minute) with the box to the right of the notes, and play back your work at that BPM with the "Play!" button below it. You can play a selection by highlighting the desired notes before clicking the "Play!" button. Text playback works best in desktop mode, as it's better at handling repeated notes, custom tempos, and more.

You can change BPM during playback by writing the new BPM after a colon, surrounded by parentheses, e.g. (:120)bnm(:180)bnm. Playback always begins at the BPM in the text box above the "Play!" button (default 120).

The text area's playback feature can handle chords. Just put all the keys that should be pressed together (up to eight) inside parentheses, like (vn,) for a basic C-E-G chord. To play a beat with middle C, then a beat with C-E, then three beats with C-E-G (with vibrato), use `v(vn)2(vn,)(vn,)(vn,). This works in desktop mode or compatibility mode, but, even in desktop mode, all notes in a chord will play with the same vibrato, waveform, and octave settings, so if you want something more complex (vibrato on only the highest note, a low chord while a high melody plays, etc.), you'll have to write out fully-specified chords and use desktop mode.

A fully-specified chord (desktop mode only) consists of the chord's duration in beats, then a colon, then a sequence of up to eight fully-specified notes, all within parentheses. A fully-specified note is a vibrato setting, a waveform setting, an octave pair setting, and finally the note (the keyboard key you would press to play the note). Some of these settings only have an effect in desktop mode, but they must all be present. For example, to play a beat with middle C, then a beat with C-E, then three beats with C-E-G (with a bit of vibrato on the G), use `wav(1:`wav`wan) (3:`wav`wan1wa,). Fully-specified chords do not interrupt the music, so if you want to delay subsequent notes, add rests after the chord.

To select a new instrument, select the desired instrument zone from the left-most menu in the center of the page, then the instrument from the middle menu, then the tuning from the last menu. Finally, click the "Go!" button. Instrument 1 is limited to diatonic 10-hole harmonicas. Instrument 2 is limited to the piano, diatonic 10-hole harmonicas, 12-hole chromatic harmonicas, and the ukulele. Instrument 3 can handle any instrument (guitar, piano, ukulele, and harmonicas with 10, 12, or 16 holes).

The following guitar tunings are available:


Tuning name:
Scientific notation:
Helmholtz notation:
Open A
Open B
Open C
Open D
Open E
Open F
Open G
All fourths
Low D
Drop D
Double Drop D
Baritone Perfect Fourth
Baritone Perfect Fifth
Baritone Major Third



The following ukulele tunings are available:


Tuning name:
Scientific notation:
Helmholtz notation:
Tenor DGBE
Tenor linear
Soprano GCEA
Soprano ADF#B
Sopranino CFAD
Sopranino DGBE



The diatonic harmonica uses a plain number for a blow, a "-" for a draw, "b" for each half-step of a bend, and a "+" for overblows and overdraws. For example, the standard C diatonic produces a middle C on the button labeled "1": on an actual harmonica, this would simply mean blowing into hole 1. "6+" would be an overblow on hole 6, "-7+" would be an overdraw on hole 7, "-3bb" would be a draw bend (one whole step) on hole 3, and so on.

The chromatic harmonica is labeled similarly to the diatonic, with the omission of bends, overblows, and overdraws, and the addition of the slide, denoted by a "<". "1" is a simple blow on hole 1, "-5" is a draw on hole 5, "<3" is a blow on hole 3 with the slide pushed in, and "<-9" is a draw on hole 9 with the slide pushed in.

Piano notes are laid out with an octave per row. Buttons with a black background correspond to a piano's black keys (sharps/flats), and buttons with a white background correspond to a piano's white keys (whole notes). The labels (C3, F5, and so on) correspond to the actual names of each note: the button labeled "C4 (Mid)" is C4, the middle C.

The guitar buttons with a silver foreground and white background correspond to guitar frets labeled with a dot. The buttons with a silver foreground and silver background correspond to the frets labeled with a pair of dots (these are the frets located one octave above the open string note). Each button is labeled with the name of the string (row) and the fret number, with "0" meaning an open string. Thus, a guitar tab with a "5" on a row labeled "B" means the fifth fret of the B string, or "B5" on the DVIICE's guitar.

The ukulele buttons with a silver foreground and white background correspond to guitar frets labeled with a dot. Each button is labeled with the name of the string (row) and the fret number, with "0" meaning an open string. Thus, a ukulele tab with a "5" on a row labeled "B" means the fifth fret of the B string, or "B5" on the DVIICE's ukulele.

The compatibility mode can be used on any modern browser, including on mobile devices with a touch interface. Notes are played using audio clips half a second long, or one beat, as soon as you click.

The compatibility mode plays audio with HTML5, using pre-recorded clips created with Audacity's tone generator.


The desktop mode requires a mouse instead of a touch interface. However, you can click on a note and hold down the mouse button to sustain it, and it will stop when you release the mouse button. You can add vibrato, change waveforms, bend with a pitch wheel, and more.

The desktop mode plays audio with the Web Audio API, generating tones of the specified frequency in real time.

The DVIICE is laid out and organized with CSS styles and tables. Notes are highlighted with Javascript, supplemented by jQuery. This version no longer uses AJAX managed by an Apache-capable server to load instrument files, so it can work on a simple server or even your local machine. A zip file of the latest DVIICE is thus available once again.