TimeBox is a mod of BeepBox — a browser-based chiptune music editor. TimeBox extends BeepBox with a large number of new musical features, expanded limits, and a redesigned aesthetic.
Version:
2.1
- Scales
- Tempo
- Beats Per Bar
- Rhythms
- Time Signature Feature
- Chip Waves
- Chip Noises
- Chord Size
- FM Operator Frequencies
- FM Algorithms
- Envelope Automation Targets
- Channel Counts
- Pitch Range
- Color Theme
- Other Changes
The scale list has been completely replaced. Instead of BeepBox's 12 emoji-named scales, TimeBox has 40 properly named scales organized by category.
Major
- Major (Ionian), Major Bebop, Major Bulgarian, Major Hexatonic, Major Pentatonic, Major Persian, Major Polymode
Minor
- Minor Harmonic, Minor Hungarian, Minor Melodic, Minor Natural (Aeolian), Minor Neapolitan, Minor Pentatonic, Minor Polymode, Minor Romanian
Other
- Arabic, Bebop Dominant, Blues Nonatonic, Blues, Diminished, Dorian, Eastern, Egyptian, Enigmatic, Hirajoshi, Iwato, Japanese Insen, Locrian Super, Locrian, Lydian, Mixolydian, Neapolitan, Phrygian Dominant, Phrygian, Piongio, Prometheus, Whole Tone
| Setting | BeepBox | TimeBox |
|---|---|---|
| Minimum BPM | 30 | 10 |
| Maximum BPM | 300 | 522 |
| Default BPM | 150 | 120 |
| Slider | 15-step fixed list | Logarithmic 0–100 scale |
The tempo slider uses a logarithmic mapping so that low tempos have fine control and high tempos remain reachable.
| Setting | BeepBox | TimeBox |
|---|---|---|
| Minimum | 3 | 1 |
| Maximum | 16 | 128 |
Instead of 5 hardcoded rhythm options, TimeBox dynamically generates the rhythm list from partsPerBeat (raised from 24 to 2520). Every divisor of partsPerBeat up to 100 — plus ÷3 and ÷4 always — becomes an available rhythm. This enables far more subdivisions than before.
A "Custom... (EXPERIMENTAL)" option is pinned at the top of the list, letting you type in any steps-per-beat value. Entering a custom value rebuilds the rhythm list around the new divisor and rescales all existing notes to prevent data corruption.
A time signature control widget is inserted into the editor's menu area. It displays the current time signature (e.g., 4/4) and opens an interactive dialog when clicked.
The dialog includes:
- Numerator selector — beats per bar (1–24)
- Denominator selector — rhythm / steps per beat (from the full rhythm list)
- Live preview — the dialog title updates as you change the selectors
- 8 conversion strategies for how existing notes are handled when the bar length changes:
| Strategy | Behavior |
|---|---|
| Stretch | Scale note positions and tempo to fit the new length |
| Splice | Cut notes that extend beyond the new bar boundary |
| Overflow | Push excess notes into the next bar |
| Delete All | Clear every note from every pattern |
| Keep First Beat | Erase everything except the first beat |
| Keep Last Beat | Erase everything except the last beat |
| Mirror | Reverse note order within each bar |
| Compact | Pack all notes together with no gaps, truncating overflow |
The display stays in sync with song state via BeepBox's notifier system.
17 new waveforms are added to the chip instrument:
| New Wave | Description |
|---|---|
| 1/16 pulse | Very narrow duty cycle |
| 1/32 pulse | Extremely narrow duty cycle |
| ramp | Reverse sawtooth |
| tri-pulse | Triangle-pulse hybrid |
| staircase | Stepped descending wave |
| sine | Approximated sine from samples |
| trapezoid | Flat-topped sine-like shape |
| 3/8 pulse | Asymmetric pulse |
| organ | Rounded organ-like shape |
| metallic | Alternating amplitude wave |
| stepped triangle | Quantized triangle |
| bit-reduced sine | Low-bit-depth sine |
| pulse-saw | Pulse that transitions to saw |
| dual triangle | Double triangle shape |
| shimmer | High-frequency shimmering |
| fuzzed | Clipped/distorted shape |
| v-shape | V-shaped symmetric wave |
18 new noise types are added beyond BeepBox's original 5:
static hum grit steam crush ocean pulse noise tinny radio rumble geiger vinyl bit-rot void clutter friction spark dust
Maximum chord size increased from 4 to 32 simultaneous pitches per note.
The operator frequency multiplier list is extended from 20× all the way to 128×. Every integer multiplier from 21× through 128× is now available (108 new entries), in addition to the original set.
Many new FM operator routing configurations are added:
Chains & Parallel Paths
4→3→2→1,1→2 & 3→4,1→2→3,2→3→4
Ring Modulators
1→2 & 2→1,3→4 & 4→3,1→2→1
Feedback + Routing
1⟲ →2,2⟲ →3,3⟲ →4,1⟲ →2→3,1⟲ 2→3,1→2 4⟲
Broadcast (one-to-many)
1→2,3,4,2→1,3,4,3→1,2,4,4→1,2,3
Convergence (many-to-one)
1,2,3→4,1,2→3,4,2,3,4→1
Complex Rings & Cross-Talk
1→2→3→4→1(Full Ring),1↔2 3↔4(Dual Rings),1→3 2→4 3→1 4→2(Cross Rings), and more
Special
Chaos (All)— all four operators modulate all other operators simultaneously⚠️ high gain
10 new automation targets are available in the envelope system:
| Target | Display Name | Notes |
|---|---|---|
| attackTime | attack | All instrument types |
| decayTime | decay | All instrument types |
| releaseTime | release | All instrument types |
| lfoRate | lfo speed | All instrument types |
| lfoDepth | lfo depth | All instrument types |
| reverbMix | reverb wet | Requires reverb effect |
| delayMix | delay wet | Requires delay effect |
| bitcrush | bitcrush | Requires bitcrusher effect |
| noiseVolume | noise vol | Chip & harmonics instruments |
| distortion | distortion | Requires distortion effect |
| panning | pan | All instrument types |
| Setting | BeepBox | TimeBox |
|---|---|---|
| Max pitch channels | 10 | 128 |
| Max noise channels | 5 | 128 |
The pitch range is extended from 7 octaves to 10 octaves (84 pitches → 120 pitches total).
Both the dark and light themes are redesigned with a deep purple/violet aesthetic.
- Dark theme: Deep navy-to-black backgrounds (
#05020f,#0a0818), lavender text (#ddd4ff), purple loop accent (#a063ff), cyan link accent (#60c8ff) - Light theme: Also deep purple — TimeBox's "light classic" is a darker purple variant rather than a white theme
- All pitch and noise channel colors are reworked to match the purple palette
Note Splitting — Refactored with a new ChangeSplitNotesAtPoint class. When a note is cut, the split pins are given correctly interpolated pitches and sizes at the cut point, with pitches snapped to the current scale.
Scale Dictionary Key — The internal key for the chromatic/expert scale is renamed from "expert" to "Chromatic" to match the new scale naming convention. The "notes outside scale" preference uses this key.
Song Recovery Player Path — The iframe src for the song recovery prompt changed from player/ to player./.
window.beepboxEditor Exposed Early — The editor instance is assigned to window.beepboxEditor at construction time (not just after the first resize), so the time signature display can read song state immediately on load.
Code Modernization — Hundreds of loose equality comparisons (==, !=) throughout the codebase have been replaced with strict equality (===, !==).
BeepBox by John Nesky, licensed under MIT.