murthylab / fly-vr

FlyVR is code for design and control of multisensory virtual reality experiments for flies.
https://github.com/murthylab/fly-vr
3 stars 5 forks source link

more granular 'next event' logging (detect chunks of different provenance ) #12

Closed nzjrs closed 3 years ago

nzjrs commented 3 years ago

The IO and sound backends use data via the chunker the Stim unit based next event callback logging (i.e. when a new Stim is yielded). This isn't the right granuality to get the signal close to when it hits the hardware because multiple Stim could be yielded into a chunk that goes out into the same buffer.

Chunk based is also more compatible with play/pause and is CL compatible.

nzjrs commented 3 years ago

fixed in https://github.com/murthylab/fly-vr/commit/9d87ca8924328b5598e61789c31c35065f3e6885

class SampleChunk(object):
    """
    A class that encapsulated numpy arrays containing sample data along with metadata information
    about where it was produced.
    """
    SYNCHRONIZATION_INFO_FIELDS = ('fictrac_frame_num',
                                   'daq_output_num_samples_written',
                                   'sound_output_num_samples_written',
                                   'video_output_num_frames',
                                   'producer_instance_n', 'chunk_n', 'producer_playlist_n',
                                   'mixed_producer', 'mixed_start_offset')
    SYNCHRONIZATION_INFO_NUM_FIELDS = len(SYNCHRONIZATION_INFO_FIELDS)