Phone Vibe
phone_vibeStyles a phone page to match a music set's mood and chapter changes with presets, colors, images, effects, reactions, and beat-synced transitions.
Instructions
Set the phone page's look to fit the music, so the person feels you there (as the stage does in VR): change it
with the mood, on chapter changes. preset: a starting point (default, rain, calm, warm, night, peak), then any
part over it. ground/ink/accent: colours ('#rrggbb', 'rgb(r g b)', 'hsl(h s% l%)'); the ground stays dark, ink
on ground 7:1 and accent 3:1 or it is refused with what to change. heading: the face of the titles (archivo,
fraunces, playfair, cormorant, space grotesk, syne, unbounded, bebas, major mono). image: a picture file (a cover,
a Blender still, art another agent made) behind the page, blurred by blur px (0-40) and darkened by dim
(0.2-0.9); '' removes it. effect: none, rain, particles, pulse (breathes on the set's beat), grain, aurora, at
intensity 0-1. Changes fade over transition_ms. reset=True starts from the default skin; menu=True lists the
presets, faces and effects, the current vibe, the saved scenes and the scheduled moves.
layers: up to 3 effects at once, drawn in order, each a dict: effect, intensity, speed (0.1-4), density (0-1),
size (0.25-4), angle (rain's slant, -60-60), opacity, color, color2, blend (normal, add, screen, multiply,
overlay); e.g. [{'effect': 'aurora', 'speed': 0.5}, {'effect': 'rain', 'density': 0.9, 'angle': 25, 'blend':
'add'}]. effect= alone replaces them with one. hue_drift: degrees a minute the colours turn (0 still).
at='bar:N': the look lands on bar N as the phone hears it (a drop on its downbeat); each call with at= adds a
move, building on the last one, and they play in bar order; ramp_beats: fade into it over that many beats.
cancel_moves=True drops the scheduled ones. save='name' keeps the resulting look as a scene; scene='name'
starts from a saved one (then any part over it).
react: the set's own notes drive the page, each on the beat the phone hears it: {track: reaction} with flash,
glow, burst, sparks, drops or ring, or {track: {'do': 'glow', 'color': '#ff8844', 'amount': 0.8}}; 'qrq*'
matches every track starting qrq. E.g. {'kick': 'glow', 'qrq': 'sparks', 'stab': 'flash', 'piano': 'drops'}.
{} turns it off.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | ||
| dim | No | ||
| ink | No | ||
| blur | No | ||
| menu | No | ||
| save | No | ||
| image | No | ||
| react | No | ||
| reset | No | ||
| scene | No | ||
| accent | No | ||
| effect | No | ||
| ground | No | ||
| layers | No | ||
| preset | No | ||
| sender | No | ||
| heading | No | ||
| hue_drift | No | ||
| intensity | No | ||
| ramp_beats | No | ||
| cancel_moves | No | ||
| transition_ms | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |