Skip to content

Add warp_marker support to clips#178

Open
PhotonicVelocity wants to merge 3 commits intoideoforms:masterfrom
PhotonicVelocity:feat/clip_warp_markers
Open

Add warp_marker support to clips#178
PhotonicVelocity wants to merge 3 commits intoideoforms:masterfrom
PhotonicVelocity:feat/clip_warp_markers

Conversation

@PhotonicVelocity
Copy link

@PhotonicVelocity PhotonicVelocity commented Jan 29, 2026

Description

This PR adds OSC support for clip warp markers. It exposes:

  • /live/clip/get/warp_markers returning beat_time/sample_time pairs
  • /live/clip/add_warp_marker (beat_time, sample_time), with optional beat‑only support.
    • Beat-only support is a convience in Max that is very useful to add a marker without changing bpm. It does add extra logic becuase we have to interpolate the sample time as the warp marker object requires both. This functionality can be removed if we want to keep it simple.
  • /live/clip/move_warp_marker (beat_time, beat_time_distance) moves a warp marker at a given beat_time the given distance in beats
  • /live/clip/remove_warp_marker removes a warp marker at the given beat_time

It also includes tests that exercise add/move/remove behavior and the beat‑only path.

I also cleaned up the inconsistent spacing of the clips API table as it was annoying me....

Usage

# Get inital warp markers
print(query("/live/clip/get/warp_markers", (0, 0)))

# Add a warp marker at beat 16, sample_time 9.9
cmd("/live/clip/add_warp_marker", (0, 0, 16, 9.9))

# Move the warp marker at beat 16 by 1 beat:
cmd("/live/clip/move_warp_marker", (0, 0, 16.0, 1.0))

# Remove the warp marker at beat 17:
cmd("/live/clip/remove_warp_marker", (0, 0, 17.0))

Checklist

  • The title is descriptive and summarises the new changes
  • The code and any comments are consistent with the current code style
  • For any new or modified API endpoints, I have added appropriate documentation to README.md
  • For any new or modified API endpoints, I have added unit tests covering the new functionality
  • I have verified that all unit tests pass (see CONTRIBUTING.md for guidance)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant