Skip to content

feat: add NMToolPulse pulse generator tool #305

@jasonsethrothman

Description

@jasonsethrothman

Add NMToolPulse, a synthetic waveform generator tool that writes PG_ NMData arrays to a toolfolder.

A tool instance manages a container of NMPulse objects (analogous to NMStatWinContainer).
Each NMPulse defines one waveform component: shape (square, ramp+, ramp-, exp, alpha),
amplitude, onset, and epoch targeting. Multiple pulses targeting the same epoch are summed
into a single output array.

Key features:

  • NMPulse: epoch targeting (specific index or "all"), stride (delta_epoch),
    per-occurrence parameter variation (delta_onset, delta_amp, etc.) and noise (stdv_*)
  • NMPulseContainer: ordered container with .new(), iteration, dict round-trip
  • NMToolPulseConfig: waveform-level settings (n_points, xstart, xdelta)
  • Output: PG_<epoch_name> arrays in a "Pulse_*" toolfolder (no shape name in folder)
  • Pure math functions added to nm_math.py: pulse_square, pulse_ramp, pulse_exp, pulse_alpha

Intended for future DAC waveform acquisition; config is fully JSON/TOML-serializable.

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions