Welcome to my tools
Well... here are some tools I made for myself, feel free to use!
Current date and time
Unit Converter
Virtual Piano
LilyPond Style Music Editor
Standard Rhythm
Syntax Support
This tool supports LilyPond's notation syntax, including:
- Single notes and rests (e.g.,
c4,r4), supporting dots (e.g.,c4.). - Absolute and relative mode octave switching: In absolute mode, pure letters are in the octave of middle C; `'` represents switching up an octave, and `,` represents switching down an octave. E.g., `g,8. g,16 a,4 g,4 c b,2'
- Ties and chords (e.g.,
<c' e' g'>4) and slurs (e.g.,c4( d e f)). - Tuplet notation (e.g.,
\tuplet 3/2 { c8 d8 e8 }) indicates playing 3 eighth notes in the time of 2 eighth notes. Also supports specifying duration:\tuplet 3/2 8 { c16 d16 e16 }, which plays three 16th notes with the overall duration of a triplet eighth note. - Key signatures, time signatures, tempo commands — e.g.,
\key d \minor,\time 3/4,\tempo 4 = 100. - Dynamic markings:
\ppp, \pp, \p, \mp, \mf, \f, \ff, \fff. - Articulations:
\staccato(short),\accent(emphasis),\tenuto(hold),\arpeggio(arpeggio effect),\fermata(hold), etc. - Rhythm control:
\swing (swing ratio optional, default 2.0)(swing) and\straight(standard rhythm). - Multi-voice notation, e.g.,
\voiceOne,\voiceTwo, etc.
Tuplet syntax examples:
% Basic tuplet, 3 eighth notes played in 2 eighth note duration
\tuplet 3/2 { c8 d8 e8 }
% Duration-specific tuplet, 3 sixteenth notes occupy one eighth note duration
\tuplet 3/2 8 { c16 d16 e16 }
% Nested tuplets
\tuplet 5/4 { f8 e f \tuplet 3/2 { e[ f g] } }
Swing rhythm example:
\swing
c8 d8 e8 f8 | g8 a8 b8 c'8
\straight
c4 d4 e4 f4
Multi-voice example:
\voiceOne
c'4 d'4 e'4 f'4 | g'8 a'8 b'8 c''8 d''4 e''4 |
\voiceTwo
c4 e4 g4 c'4 | e4 g4 c'4 e'4 |
Keyboard Shortcuts
- Alt+Shift+Z: Preview all/Stop Playback
- Alt+Shift+X: Play from current line/Stop
- Alt+Shift+C: Play current line only/Stop
- Alt+Shift+E: Toggle Solo/Ensemble Mode
- Tab: Autocomplete suggestion (adds accidentals based on key signature)
Braille Writer
Usage (click to expand/collapse)
This writer supports two modes:
- Braille input mode (default): the textarea blocks normal character insertion and only accepts braille chords plus standard editing actions (copy/cut/paste/delete/arrows/selection/Enter, etc.).
- Text input mode: behaves exactly like a standard multi-line textarea.
How to toggle:
- Use Alt + E, or click the toggle button above.
- The current mode is remembered via Cookie and restored next time.
Braille input (6-dot / 8-dot): all mapped keys pressed during one hold-and-release cycle form one braille character (inserted when the last held key is released). Key mapping:
- f -> dot 1
- d -> dot 2
- s -> dot 3
- j -> dot 4
- k -> dot 5
- l -> dot 6
- a -> dot 7
- ; (or :) -> dot 8
- Space -> Braille blank (U+2800)
Example: hold f + d + j (dots 1, 2, 4) and release all keys to insert U+280B (DOTS-124).
Standard editing actions:
- Supports Ctrl/Cmd+C copy, Ctrl/Cmd+X cut, Ctrl/Cmd+V paste, undo/redo, arrow navigation, selection, delete, Enter, etc.
- In braille mode, regular printable keys (except mapped braille keys above) do not insert characters.
- Esc cancels the current unfinished chord.
Data persistence:
- Both content and mode are saved in Cookie and restored automatically.
- For reliability, content is chunked across multiple Cookies (up to roughly tens of KB). For very large text, exporting manually is recommended.
Unicode notes:
- Braille symbols come from the Unicode Braille Patterns block (U+2800-U+28FF).
- Each chord maps to a bitmask and inserts: U+2800 + bitmask (dots 1-8 map to the low 8 bits).
- Space alone inserts Braille blank: U+2800.
Tips:
- This writer has no style dependency and can be embedded anywhere.
- Using an English keyboard layout is recommended; both ; and : map to dot 8.