Margrete RPC

transform

attribute__all__
= ['merge', 'split']
func_iter_infos(note) -> Iterator[Any]

Yield every NoteInfo reachable from a note builder (begin, joints, air).

paramnoteAny

Returns

collections.abc.Iterator[typing.Any]
func_detach(note) -> None
paramnoteAny

Returns

None
func_clone(note) -> T
paramnoteT

Returns

margrete_rpc.chart.notes.transform._clone[T]
func_clone_air(air) -> Air | AirSlide | AirHold
paramairAir | AirSlide | AirHold

Returns

margrete_rpc.chart.notes.air.Air | margrete_rpc.chart.notes.air.AirSlide | margrete_rpc.chart.notes.air.AirHold
func_flip(note, field) -> Note
paramnoteNote
paramfieldint

Returns

margrete_rpc.chart.notes.shared.Note
func_apply_clamp(x, w, left, right) -> tuple[int, int]
paramxint
paramwint
paramleftint
paramrightint

Returns

tuple[int, int]
func_clamp(note, left, right) -> Note
paramnoteNote
paramleftint
paramrightint

Returns

margrete_rpc.chart.notes.shared.Note
func_snapper(step, mode) -> Callable[[int], int]
paramstepint
parammodeAlignMode

Returns

collections.abc.Callable[[int], int]
func_align(note, interval, mode) -> Note
paramnoteNote
paramintervalint | DivisionLike
parammodeAlignMode

Returns

margrete_rpc.chart.notes.shared.Note
func_scale(note, factor, pivot) -> Note
paramnoteNote
paramfactorfloat
parampivotint | PositionLike

Returns

margrete_rpc.chart.notes.shared.Note
func_convert(note, target, overrides) -> T
paramnoteNote
paramtargettype[T]
paramoverridesdict[str, Any]

Returns

margrete_rpc.chart.notes.transform._convert[T]
func_convert_ground(note, target, overrides) -> Note
paramnote_GroundNote
paramtargettype[Note]
paramoverridesdict[str, Any]

Returns

margrete_rpc.chart.notes.shared.Note
func_read_long(note) -> tuple[_Point, list[_Point]]
paramnoteLongLike

Returns

tuple[margrete_rpc.chart.notes.transform._Point, list[margrete_rpc.chart.notes.transform._Point]]
func_add_kind(note, kind, t, x, w, h) -> None
paramnoteLongLike
paramkindJointKindLike | None
paramtint
paramxint
paramwint
paramhint | None

Returns

None
func_convert_long(note, target, overrides) -> LongLike
paramnoteLongLike
paramtargettype[Note]
paramoverridesdict[str, Any]

Returns

margrete_rpc.chart.notes.transform.LongLike
func_build_slide(begin, joints) -> Slide
parambegin_Point
paramjointslist[_Point]

Returns

margrete_rpc.chart.notes.long.Slide
func_build_air_long(note, target, begin, joints, overrides) -> AirSlide | AirHold | AirCrush
paramnoteLongLike
paramtargettype[Note]
parambegin_Point
paramjointslist[_Point]
paramoverridesdict[str, Any]

Returns

margrete_rpc.chart.notes.air.AirSlide | margrete_rpc.chart.notes.air.AirHold | margrete_rpc.chart.notes.long.AirCrush
func_joint_h(point) -> int | None
parampoint_Point

Returns

int | None
func_resolve_join(join, prev, nxt, note_type) -> JointKind
paramjoinJointKindLike | Callable[[T, T], JointKindLike]
paramprevT
paramnxtT
paramnote_typetype

Returns

margrete_rpc.chart.notes.types.JointKind
funcmerge(notes, *, join=JointKind.STEP) -> T

Combine consecutive slides / air-slides / air-crushes into a single note.

The notes are chained end-to-begin in order; each boundary becomes a joint.

paramnotesSequence[T]

The notes to merge, all of the same long type, in timeline order.

paramjoinJointKindLike | Callable[[T, T], JointKindLike]
= JointKind.STEP

Kind of joint to insert at each boundary (:class:JointKind), or a callable (prev, next) -> JointKindLike choosing it per boundary.

Returns

margrete_rpc.chart.notes.transform.merge[T]

A single merged note of the same type as the inputs.

func_interpolate(a, b, ts) -> _Point
parama_Point
paramb_Point
paramtsint

Returns

margrete_rpc.chart.notes.transform._Point
func_locate_split(note, begin, joints, at) -> tuple[_Point, list[_Point], list[_Point]]
paramnoteSlideLike
parambegin_Point
paramjointslist[_Point]
paramatJoint | int | PositionLike

Returns

tuple[margrete_rpc.chart.notes.transform._Point, list[margrete_rpc.chart.notes.transform._Point], list[margrete_rpc.chart.notes.transform._Point]]
funcsplit(note, at) -> tuple[T, T]

Divide a slide / air-slide / air-crush into two notes at a joint or time.

paramnoteT

The long note to split.

paramatJoint | int | PositionLike

Where to split: one of the note's :class:Joint objects, an absolute tick, or a :data:Position.

Returns

tuple

A (left, right) pair of notes meeting at the split point.

func_new_long_like(note, point) -> SlideLike
paramnoteSlideLike
parampoint_Point

Returns

margrete_rpc.chart.notes.transform.SlideLike