with a pattern length of 48 with each beat being 4 lines
set the speeds both to 2: 09-02, and 0F-02 to align with 8th note quarter notes
Monday, March 9, 2026
deflemask triplets in 12 lines instead of 8
deflemask triplets using speed commands
in 2 columns set 09 01 and 0f 01
then to reset back 09 03 0f 03
that lets you sequence like regular quarter notes across 8 lines
Thursday, March 5, 2026
Timing Systems in the History of Music Trackers
In the history of music trackers (especially on early computers like the Commodore 64 and Commodore Amiga), timing systems evolved because different hardware offered different ways to measure time. Terms like PPQN, CIA, VBlank, NTSC, PAL, and LPB refer to how trackers scheduled musical events such as notes and effects.
1. VBlank Timing (Early Trackers)
VBlank = Vertical Blank interrupt
Early trackers synchronized playback with the screen refresh interrupt.
- The video chip triggers an interrupt every frame.
- The music routine runs once per frame.
Frame rates depended on TV standards
- PAL: 50 Hz (50 interrupts per second)
- NTSC: ~60 Hz (59.94 interrupts per second)
These standards come from analog television systems used by machines like the Commodore 64 and early Amiga 500.
Effect on tracker timing
A tracker row advanced every N frames.
Example (classic Amiga trackers):
Speed = 6
PAL 50 Hz
Row duration:
6 frames / 50 Hz = 120 ms per row
Pros
- Simple
- Stable with graphics
Cons
- Different speed on PAL vs NTSC
- Limited timing resolution
This system was used in early trackers such as Soundtracker (1987).
2. CIA Timer Timing (Amiga Precision Timing)
The Commodore Amiga had CIA chips (Complex Interface Adapters) with programmable timers.
Later trackers used CIA Timer A instead of VBlank interrupts.
Why?
CIA timers allow arbitrary interrupt rates, independent of video refresh.
Example:
Timer frequency ≈ 709379 Hz / divider
This allowed:
- More precise BPM
- Same playback speed on PAL and NTSC
Trackers such as ProTracker used this technique.
Pros
- Hardware accurate timing
- Independent from video
- Higher precision
Cons
- Slight CPU overhead
- Required careful hardware programming
3. LPB (Lines Per Beat)
LPB = Lines Per Beat
This concept appeared in later trackers during the PC era.
Trackers such as FastTracker II and Impulse Tracker separated:
- tempo (BPM)
- pattern resolution
LPB defines how many rows equal one beat.
Example:
BPM = 125
LPB = 4
Meaning:
- 4 rows per beat
- 16 rows per bar (4/4)
This makes timing more musical and flexible.
4. PPQN (Pulses Per Quarter Note)
PPQN = Pulses Per Quarter Note
This timing concept comes from MIDI sequencing rather than trackers.
Common MIDI timing resolutions:
24 PPQN
96 PPQN
480 PPQN
960 PPQN
Higher PPQN values give finer timing resolution.
Later tracker-inspired software and modern trackers adopted similar high-resolution internal clocks.
Examples include modern trackers and DAWs such as Renoise and OpenMPT.
5. Relationship Between These Systems
| System | Used In | Resolution | Hardware Dependence |
|---|---|---|---|
| VBlank | early Amiga / C64 trackers | low | tied to video |
| PAL / NTSC | video standards | defines frame rate | hardware |
| CIA timer | later Amiga trackers | medium | hardware timer |
| LPB | PC trackers | high | software |
| PPQN | MIDI / DAWs | very high | software |
6. Typical Classic Tracker Timing Formula
For ProTracker-style trackers:
row_time = speed × tick_time
Where:
tick_time = 2.5 / BPM seconds
Example:
speed = 6
BPM = 125
Tick time:
2.5 / 125 = 0.02 s
Row time:
6 × 0.02 = 0.12 s
This produces the famous 125 BPM / speed 6 groove used in many Amiga modules.
7. Historical Timeline
1980s
- VBlank timing
- PAL/NTSC differences
- Soundtracker era
Early 1990s
- CIA timer timing
- ProTracker era
Mid 1990s
- PC trackers adopt BPM + speed system
Late 1990s
- LPB introduced
2000s+
- PPQN-style internal clocks
Summary
- PAL / NTSC → video refresh standards
- VBlank → music tick tied to screen frame
- CIA timer → programmable hardware timer interrupts
- LPB → musical resolution (rows per beat)
- PPQN → MIDI timing resolution
understaning clock speeds in sunvox and deflemask
deflemask default is ntsc basetime 1 = 150bpm
sunvox default is 125 6tpl
- to match deflemask to sunvox:
set to pal, increase basetime from 1 to 2
- to match sunvox to defle:
lower tpl from 6 to 3 and increase bpm to 150
for quarter note (8 lines) to be equivalent
sunvox at 6tpl is half the speed of deflemask pal basetime 1.
increasing basetime lowers the speed
while decreasing the tpl increases the speed
triplet tuplets in trackers
-
32 lines
half note triplet
00, 11, 21 -
16 lines
quarter note triplet
00, 05, 11 -
8 lines
eighth note triplet
00, 03, 05 -
4 lines
sixteenth note triplet
00, 01, 03 -
64 lines
1 bar triplet
00, 21, 43
1/16 note | 4 lines | 00 01 03
1/8 note | 8 lines | 00 03 05
1/4 note | 16 lines | 00 05 11
1/2 note | 32 lines | 00 11 21
1 bar | 64 lines | 00 21 43
Monday, March 2, 2026
converting long samples to 16bit 8000khz for deflemask using sox
for f in *.wav; do sox "$f" -r 8000 -e signed-integer -b 16 "${f%.wav}_16bit.wav"; done