Play

class Play(pulse, channel, name=None)[source]

This instruction is responsible for applying a pulse on a channel.

The pulse specifies the exact time dynamics of the output signal envelope for a limited time. The output is modulated by a phase and frequency which are controlled by separate instructions. The pulse duration must be fixed, and is implicitly given in terms of the cycle time, dt, of the backend.

Create a new pulse instruction.

Parameters
  • pulse (Pulse) – A pulse waveform description, such as SamplePulse.

  • channel (PulseChannel) – The channel to which the pulse is applied.

  • name (Optional[str]) – Name of the instruction for display purposes. Defaults to pulse.name.

Raises

PulseError – If pulse is not a Pulse type.

Attributes

Play.channel

Return the Channel that this instruction is scheduled on.

Play.channels

Returns channels that this schedule uses.

Play.command

The associated command.

Play.duration

Duration of this instruction.

Play.id

Unique identifier for this instruction.

Play.instructions

Iterable for getting instructions from Schedule tree.

Play.name

Name of this instruction.

Play.operands

Return instruction operands.

Play.pulse

A description of the samples that will be played.

Play.start_time

Relative begin time of this instruction.

Play.stop_time

Relative end time of this instruction.

Play.timeslots

Occupied time slots by this instruction.

Methods

Play.append(schedule[, name])

Return a new Schedule with schedule inserted at the maximum time over all channels shared between self and schedule.

Play.ch_duration(*channels)

Return duration of the supplied channels in this Instruction.

Play.ch_start_time(*channels)

Return minimum start time for supplied channels.

Play.ch_stop_time(*channels)

Return maximum start time for supplied channels.

Play.draw([dt, style, filename, …])

Plot the instruction.

Play.flatten()

Return itself as already single instruction.

Play.insert(start_time, schedule[, name])

Return a new Schedule with schedule inserted within self at start_time.

Play.shift(time[, name])

Return a new schedule shifted forward by time.

Play.union(*schedules[, name])

Return a new schedule which is the union of self and schedule.