Unify pulse Commands and Instructions #3750
Labels
mod: pulse
Related to the Pulse module
priority: high
type: enhancement
It's working, but needs polishing
What is the expected enhancement?
Pulse
Command
s were initially created to allow the pulse to be only defined once as aSamplePulse
and then have its usage tracked based on the pulse instance. EveryInstruction
instance was then defined as containing aCommand
and itsChannel
operands that the command is applied to.This change may result in some breaking changes, but I have a couple of ideas to make this mostly backward compatible.
Requirements for closure of this issue include:
Background and Ideas
I believe this has resulted in a confusing API with many statements that look like
which yields an instruction. Or called more explicitly:
If we were to unify commands with instructions a generic instruction would accept a list of operands that could be either a numeric parameter like a complex or a channel to operate on, eg.:
For example, a frame change would go from,
or explicitly,
to
where
ShiftPhase
is of typeInstruction
.The current behavior of pulses could be fixed by redefining
Pulse
as aType
and defining aPlay
instruction:The text was updated successfully, but these errors were encountered: