🔁 Rotation Animation Namespace — r(...)
This module defines compact animation syntax for rotating SVG objects in Oscilla.
🧩 Base Format
r(<mode>)_[modifiers...]
🎛️ Modes
| Syntax | Description |
|---|---|
r(1) |
Continuous clockwise |
r(-1) |
Continuous anticlockwise |
r(0) |
No rotation |
r(deg[...]) |
Stepped rotation (manual values) |
r(alt[min,max]) |
Ping-pong rotation between two angles |
r(rnd[n]) |
Fixed slice of n random angles |
r(rnd[nx,min,max]) |
Looping random slice from range |
r(seq[...]) |
Sequential rotation steps |
⚙️ Modifiers
| Modifier | Values | Description |
|---|---|---|
_rpm(...) |
number | Rotations per minute (for continuous) |
_bpm(...) |
number[,subdiv] | Tempo-based speed (1 rotation per note) |
_speed(...) |
seconds | Step duration (applies to deg, rnd, alt) |
_dur[...] |
list | Per-step durations (for deg, rnd, seq) |
_seqdur(...) |
seconds | Total time for full sequence |
_mode(...) |
loop, bounce |
For seq[...] direction control |
_osc(1) |
boolean | Enable OSC output of current angle |
_throttle(...) |
Hz | OSC message rate cap (default: 20Hz) |
_quant(1) |
boolean | Quantize animation start to global BPM grid |
_t(1) |
boolean | Defer animation until cue triggered |
🛠️ Examples
r(1)_rpm(30)
r(-1)_bpm(120)
r(deg[0,90,180,270])_speed(1.5)
r(alt[45,135])_bpm(60)_osc(1)
r(rnd[6])_speed(2)
r(rnd[6x,0,360])_speed(0.5)_osc(1)
r(seq[0,120,240])_bpm(90)_mode(bounce)_quant(1)
🧠 Notes
- All angles are interpreted in degrees
- Continuous modes ignore
speed,dur,seqdur - Step-based modes (
deg,alt,rnd,seq) accept quantized start via_quant(1) - OSC sends
/oscilla/rotwith{ id, angle, radians, norm }
Tip: use ← → or ↑ ↓ to navigate the docs