Monorepo for Aesthetic.Computer aesthetic.computer
core plans merry MERRY_EXAMPLES.md
4.3 kB

🎄 Merry Pipeline System #

The merry command allows you to chain pieces together in a pipeline, similar to the tape system but for sequential playback with automatic transitions.

Visual Progress Bar #

When a merry pipeline is running, you'll see a segmented colored progress bar at the top of the screen (1px tall) that shows:

  • Completed pieces: Full bright color (steady)
  • Current piece: Bright color with pulsing effect, filling left to right
  • Upcoming pieces: Dim preview showing what's next

Each segment's width is proportional to its duration, so you can see at a glance:

  • Which piece you're currently on
  • How much time is left in the current piece
  • What pieces are coming up next
  • The overall pipeline structure

Example Visualization #

[===green===][=>cyan......][...orange...][....pink....]
 ^completed   ^current      ^upcoming     ^upcoming
   tone:3s     clock:5s      wand:2s       line:4s

The progress bar uses a 6-color palette that cycles:

  1. Bright Green
  2. Cyan
  3. Orange
  4. Pink
  5. Purple
  6. Yellow

Basic Usage #

Default Duration (5 seconds per piece) #

merry tone clock

This will:

  1. Play tone for 5 seconds
  2. Automatically transition to clock for 5 seconds
  3. Return to prompt

Custom Durations #

merry tone:3 clock:5 wand:2

This will:

  1. Play tone for 3 seconds
  2. Automatically transition to clock for 5 seconds
  3. Automatically transition to wand for 2 seconds
  4. Return to prompt

Mixed (Custom + Default) #

merry tone:3 clock wand:2

This will:

  1. Play tone for 3 seconds
  2. Automatically transition to clock for 5 seconds (default)
  3. Automatically transition to wand for 2 seconds
  4. Return to prompt
  • pieces without an explicit duration default to 5 seconds

Prefix Durations (Shorthand) #

merry 3-tone 5-clock 2-wand
  • Numbers before the dash indicate seconds
  • Mix and match with suffix syntax if you like

Infinite Loop (merryo) #

merryo 0.25-tone
  • Repeats the pipeline forever until you run stop
  • Useful for ambient loops or focused practice sessions
  • The progress bar keeps cycling each time it wraps

Commands #

  • merry piece1 piece2 ... - Start a merry pipeline with default 5-second durations
  • merry piece1:duration1 piece2:duration2 ... - Start with custom durations (in seconds)
  • merry 2-piece1 5-piece2 - Alternate shorthand using numeric prefixes
  • merryo piece1 piece2 - Loop the sequence until stopped
  • merry:stop or stop - Stop the current merry pipeline early and return to prompt
  • tape merry piece1:duration1 piece2:duration2 ... - Record the entire pipeline (auto-calculates duration)

Recording with Tape #

You can record an entire merry pipeline using tape:

tape merry tone:3 clock:5 wand:2

This will:

  • Automatically calculate total duration (3 + 5 + 2 = 10 seconds)
  • Record the entire pipeline
  • Show both progress bars (merry at top, tape at bottom)
  • Automatically cut the tape when merry completes
  • Jump to the video piece for export

See TAPE_MERRY_INTEGRATION.md for full details.

Examples #

Simple Demo #

merry tone clock

Your Original Request #

merry tone:3 clock:5
  • Tone piece for 3 seconds
  • Clock piece for 5 seconds
  • Returns to prompt

Longer Pipeline #

merry line:2 oval:2 rect:2 wand:3
  • Shows different geometric pieces in sequence

Stopping Early #

If a merry pipeline is running and you want to stop it:

stop

or

merry:stop

Technical Notes #

  • Default duration: 5 seconds per piece
  • Custom durations are specified in seconds (not milliseconds)
  • The system automatically handles transitions between pieces
  • The pipeline state is stored in system.merry
  • After the last piece finishes, you're automatically returned to prompt
  • Use stop or merry:stop to interrupt a running pipeline at any time

Implementation Details #

The merry system:

  1. Parses the command to extract pieces and durations
  2. Builds a pipeline array with { piece, duration } objects
  3. Uses setTimeout to chain pieces together
  4. Calls jump(piece) for each transition
  5. Cleans up and returns to prompt when complete