Skip to content

Make num_channels available on BaseRecordingSegment #4510

@h-mayorquin

Description

@h-mayorquin

Currently BaseRecordingSegment has no concept of channel count. It knows its time dimension (sampling frequency, time vector, num_samples) but not its channel dimension. This forces segment subclasses to work around the limitation in various ways:

Passing num_channels from parent to segment at construction:

Inferring channel count from data shape:

Fetching a sample just to get the shape:

The parent Recording always knows num_channels at the time it calls add_recording_segment. The proposal is to have BaseRecording.add_recording_segment() set num_channels on the segment automatically. This would:

  • Give all segments a num_channels attribute for free, with the Recording as the single source of truth
  • Eliminate the need for subclasses to store it independently
  • Remove workarounds like 1-sample fetches to get channel count
  • Make pre-allocation of output arrays straightforward without fetching data first

The change is small (a few lines in BaseRecordingSegment.__init__ and BaseRecording.add_recording_segment) and fully backwards compatible since existing subclasses that set num_channels themselves would continue to work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions