当前位置: 首页>>代码示例>>Python>>正文


Python StimulusModel.setRepCount方法代码示例

本文整理汇总了Python中sparkle.stim.stimulus_model.StimulusModel.setRepCount方法的典型用法代码示例。如果您正苦于以下问题:Python StimulusModel.setRepCount方法的具体用法?Python StimulusModel.setRepCount怎么用?Python StimulusModel.setRepCount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在sparkle.stim.stimulus_model.StimulusModel的用法示例。


在下文中一共展示了StimulusModel.setRepCount方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_abort_protocol

# 需要导入模块: from sparkle.stim.stimulus_model import StimulusModel [as 别名]
# 或者: from sparkle.stim.stimulus_model.StimulusModel import setRepCount [as 别名]
    def test_abort_protocol(self):
        winsz = 0.2 #seconds
        acq_rate = 50000
        manager, fname = self.create_acqmodel(winsz, acq_rate)
        manager.set_calibration(None)
        #insert some stimuli
        tone0 = PureTone()
        tone0.setDuration(0.02)
        stim0 = StimulusModel()
        stim0.insertComponent(tone0)
        stim0.setRepCount(500) # set really high so we don't miss
        manager.protocol_model().insert(stim0,0)
        gen_rate = stim0.samplerate()

        manager.setup_protocol(0.1)
        t = manager.run_protocol()
        manager.halt()
        t.join()
        manager.close_data()

        # now check saved data
        hfile = h5py.File(os.path.join(self.tempfolder, fname))
        group = hfile['segment_1']
        print 'AASERT AVERAGE', type(group.attrs['averaged'])
        assert group.attrs['averaged'] == False


        assert group.attrs.get('aborted') is not None
        abort_msg = group.attrs['aborted']
        assert abort_msg.startswith("test 1, trace 0, rep")

        hfile.close()
开发者ID:boylea,项目名称:sparkle,代码行数:34,代码来源:test_acq_manager.py

示例2: stim_with_double_auto

# 需要导入模块: from sparkle.stim.stimulus_model import StimulusModel [as 别名]
# 或者: from sparkle.stim.stimulus_model.StimulusModel import setRepCount [as 别名]
    def stim_with_double_auto(self):
        model = StimulusModel()
        model.setReferenceVoltage(100, 0.1)
        model.setRepCount(7)
        component = Vocalization()
        component.setFile(sample.samplewav())
        model.insertComponent(component, 0,0)
        nsteps0 = self.add_vocal_param(model) 
        nsteps1 = self.add_auto_param(model)
        nsteps = nsteps0*nsteps1

        return model
开发者ID:boylea,项目名称:sparkle,代码行数:14,代码来源:test_stim_model.py

示例3: __init__

# 需要导入模块: from sparkle.stim.stimulus_model import StimulusModel [as 别名]
# 或者: from sparkle.stim.stimulus_model.StimulusModel import setRepCount [as 别名]
    def __init__(self, *args):
        super(MphoneCalibrationRunner, self).__init__(*args)

        self.save_data = False
        self.silence_window = False
        self.player = FinitePlayer()

        # acquistiion without a stimulus is not allowed, so use silence
        stim = StimulusModel()
        stim.setRepCount(self._reps)
        stim.insertComponent(Silence())
        self.protocol_model.insert(stim,0)
开发者ID:Joel-U,项目名称:sparkle,代码行数:14,代码来源:microphone_calibration_runner.py

示例4: create_tone_stim

# 需要导入模块: from sparkle.stim.stimulus_model import StimulusModel [as 别名]
# 或者: from sparkle.stim.stimulus_model.StimulusModel import setRepCount [as 别名]
def create_tone_stim(nreps):
    component = PureTone()
    stim_model = StimulusModel()
    stim_model.insertComponent(component, 0,0)
    stim_model.setRepCount(nreps)
    auto_model = stim_model.autoParams()
    auto_model.insertRow(0)
    
    auto_model.toggleSelection(0,component)

    # values = ['frequency', 0, 100, 10]
    values = ['duration', 0.065, 0.165, 0.010] # had caused problem in past
    auto_model.setParamValue(0, parameter=values[0], start=values[1], 
                            stop=values[2], step=values[3])

    return stim_model
开发者ID:boylea,项目名称:sparkle,代码行数:18,代码来源:test_acq_manager.py

示例5: tone_protocol

# 需要导入模块: from sparkle.stim.stimulus_model import StimulusModel [as 别名]
# 或者: from sparkle.stim.stimulus_model.StimulusModel import setRepCount [as 别名]
    def tone_protocol(self, manager, intensity=70):
        #insert some stimuli

        tone = PureTone()
        tone.setDuration(0.02)
        tone.setIntensity(intensity)
        stim = StimulusModel()
        stim.insertComponent(tone)
        stim.setRepCount(3)
        manager.protocol_model().insert(stim,0)

        manager.setup_protocol(0.1)
        t = manager.run_protocol()
        t.join()
        
        return stim
开发者ID:boylea,项目名称:sparkle,代码行数:18,代码来源:test_acq_manager.py

示例6: create_vocal_stim

# 需要导入模块: from sparkle.stim.stimulus_model import StimulusModel [as 别名]
# 或者: from sparkle.stim.stimulus_model.StimulusModel import setRepCount [as 别名]
def create_vocal_stim(nreps):
    component = Vocalization()
    component.setFile(sample.samplewav())
    delay = Silence()
    stim_model = StimulusModel()
    stim_model.insertComponent(delay, 0,0)
    stim_model.insertComponent(component, 0,0)
    stim_model.setRepCount(nreps)

    auto_model = stim_model.autoParams()
    auto_model.insertRow(0)
    p = {'parameter' : 'filename',
         'names' : [sample.samplewav(), sample.samplewav()],
         'selection' : []
        }
    auto_model.overwriteParam(0,p)
    auto_model.toggleSelection(0,component)

    return stim_model
开发者ID:boylea,项目名称:sparkle,代码行数:21,代码来源:test_acq_manager.py

示例7: create

# 需要导入模块: from sparkle.stim.stimulus_model import StimulusModel [as 别名]
# 或者: from sparkle.stim.stimulus_model.StimulusModel import setRepCount [as 别名]
    def create():
        stim = StimulusModel()
        tone = PureTone()
        tone.setDuration(CCFactory.defaultInputs['duration'])
        tone.setRisefall(CCFactory.defaultInputs['risefall'])
        stim.insertComponent(tone)

        tuning_curve = stim.autoParams()

        tuning_curve.insertRow(0)
        tuning_curve.toggleSelection(0, tone)
        tuning_curve.setParamValue(0, parameter='frequency', start=CCFactory.defaultInputs['freqStart'], stop=CCFactory.defaultInputs['freqStop'], step=CCFactory.defaultInputs['freqStep'])
        tuning_curve.insertRow(1)
        tuning_curve.toggleSelection(1, tone)
        tuning_curve.setParamValue(1, parameter='intensity', start=CCFactory.defaultInputs['intenStart'], stop=CCFactory.defaultInputs['intenStop'], step=CCFactory.defaultInputs['intenStep'])

        stim.setRepCount(CCFactory.defaultInputs['reps'])

        stim.setStimType(CCFactory.name)
        return stim
开发者ID:Joel-U,项目名称:sparkle,代码行数:22,代码来源:factory.py

示例8: setUp

# 需要导入模块: from sparkle.stim.stimulus_model import StimulusModel [as 别名]
# 或者: from sparkle.stim.stimulus_model.StimulusModel import setRepCount [as 别名]
 def setUp(self):
     self.tempfile = os.path.join(os.path.abspath(os.path.dirname(__file__)), u"tmp", 'testsave.json')
     model = StimulusModel()
     model.setMaxVoltage(1.5, 10.0)
     model.setReferenceVoltage(100, 0.1)
     model.setRepCount(7)
     # add tone, vocalization, and silence components
     component = PureTone()
     component.setIntensity(34)
     component.setDuration(0.2)
     model.insertComponent(component, 0,0)
     vocal = Vocalization()
     vocal.setFile(sample.samplewav())
     model.insertEmptyRow()
     model.insertComponent(vocal, 1,0)
     silence = Silence()
     # have gap between tone and vocal
     silence.setDuration(0.5)
     model.insertComponent(silence, 1,0)
     nsteps = self.add_auto_param(model)
     editor = StimulusEditor()
     editor.setModel(QStimulusModel(model))
     self.editor = editor
     self.stim = model
开发者ID:boylea,项目名称:sparkle,代码行数:26,代码来源:test_stim_editor.py

示例9: create

# 需要导入模块: from sparkle.stim.stimulus_model import StimulusModel [as 别名]
# 或者: from sparkle.stim.stimulus_model.StimulusModel import setRepCount [as 别名]
 def create(self):
     stim = StimulusModel()
     stim.setStimType(StimulusEditor.name)
     stim.setRepCount(StimulusEditor.defaultReps())
     return stim
开发者ID:pdroberts,项目名称:sparkle,代码行数:7,代码来源:factory.py

示例10: CalibrationRunner

# 需要导入模块: from sparkle.stim.stimulus_model import StimulusModel [as 别名]
# 或者: from sparkle.stim.stimulus_model.StimulusModel import setRepCount [as 别名]

#.........这里部分代码省略.........
    def _initialize_run(self):
       
        self.player.set_aochan(self.aochan)
        self.player.set_aichan(self.aichan)

        if self.apply_cal:
            self.protocol_model.setCalibration(self.calibration_vector, self.calibration_freqs, self.calibration_frange)
            # calibration testing doesn't save anything
            self.save_data = False
        else:
            data_items = self.datafile.keys()
            self.current_dataset_name = next_str_num(self.group_name, data_items)
            
            self.datafile.init_group(self.current_dataset_name, mode='calibration')
            
            logger = logging.getLogger('main')
            logger.debug('Calibrating with fs %s' %  self.stimulus.samplerate())

            self.datafile.init_data(self.current_dataset_name, mode='calibration', 
                                    dims=(self.stimulus.repCount(), self.stimulus.duration()*self.stimulus.samplerate()))

            info = {'samplerate_ad': self.player.aifs}
            self.datafile.set_metadata(self.current_dataset_name, info)
            # point is to output the signal at the specificed voltage, to we set
            # the intensity of the components to match whatever the caldb is now
            self.save_data = True
            self.stimulus.component(0,0).setIntensity(self.caldb)
            print 'USING {} V, {} Hz, {} dBSPL'.format(self.calv, self.calf, self.caldb)
            self.reftone.setIntensity(self.caldb)
            self.reftone.setFrequency(self.calf)
            self.protocol_model.insert(self.refstim,0)
            self.calname = None
            self.protocol_model.setCalibration(None, None, None)

            self.datafile.init_data(self.current_dataset_name, mode='calibration',
                                    nested_name='reference_tone',
                                    dims=(self.stimulus.repCount(), self.stimulus.duration()*self.stimulus.samplerate()))

    def _initialize_test(self, test):
        assert test.samplerate() == self.player.aifs

    def _process_response(self, response, trace_info, irep):
        if self.save_data:
            if trace_info['components'][0]['stim_type'] == 'Pure Tone':
                self.datafile.append(self.current_dataset_name, response, nested_name='reference_tone')
            elif trace_info['components'][0]['stim_type'] == 'FM Sweep' or trace_info['components'][0]['stim_type'] == 'White Noise':
                self.datafile.append(self.current_dataset_name, response)
            else:
                raise Exception("Improper calibration stimulus : {}".format(trace_info['components'][0]['stim_type']))

    def process_calibration(self, save=True):
        """processes calibration control signal. Determines transfer function
        of speaker to get frequency vs. attenuation curve.

        :param save: Whether to save this calibration data to file
        :type save: bool
        :returns: numpy.ndarray, str, int, float -- frequency response (in dB), dataset name, calibration reference frequency, reference intensity
        """
        if not self.save_data:
            raise Exception("Cannot process an unsaved calibration")
            
        avg_signal = np.mean(self.datafile.get_data(self.current_dataset_name + '/signal'), axis=0)

        diffdB = attenuation_curve(self.stimulus.signal()[0], avg_signal,
                                        self.stimulus.samplerate(), self.calf)
        logger = logging.getLogger('main')
        logger.debug('The maximum dB attenuation is {}, caldB {}'.format(max(diffdB), self.caldb))

        # save a vector of only the calibration intensity results
        self.datafile.init_data(self.current_dataset_name, mode='calibration',
                                dims=diffdB.shape,
                                nested_name='calibration_intensities')
        self.datafile.append(self.current_dataset_name, diffdB,
                             nested_name='calibration_intensities')

        relevant_info = {'frequencies': 'all', 'calibration_dB':self.caldb,
                         'calibration_voltage': self.calv, 'calibration_frequency': self.calf,
                         }
        self.datafile.set_metadata('/'.join([self.current_dataset_name, 'calibration_intensities']),
                                   relevant_info)

        mean_reftone = np.mean(self.datafile.get_data(self.current_dataset_name + '/reference_tone'), axis=0)
        tone_amp = signal_amplitude(mean_reftone, self.player.get_aifs())
        db = calc_db(tone_amp, self.mphonesens, self.mphonedb)
        # remove the reference tone from protocol
        self.protocol_model.remove(0)
        
        return diffdB, self.current_dataset_name, self.calf, db

    def set_reps(self, reps):
        """set the number of repetitions for the stimuli (reference tone and cal stim)

        :param reps: number of times to present the same stimulus
        :type reps: int
        """
        self.stimulus.setRepCount(reps)
        self.refstim.setRepCount(reps)

    def count(self):
        return self.stimulus.repCount()
开发者ID:Joel-U,项目名称:sparkle,代码行数:104,代码来源:calibration_runner.py

示例11: TestStimModel

# 需要导入模块: from sparkle.stim.stimulus_model import StimulusModel [as 别名]
# 或者: from sparkle.stim.stimulus_model.StimulusModel import setRepCount [as 别名]

#.........这里部分代码省略.........
        component1 = PureTone()
        component0.setIntensity(caldb)
        component1.setIntensity(caldb)
        self.model.insertComponent(component0, 0, 0)
        self.model.insertComponent(component1, 1, 0)
        self.model.setReferenceVoltage(caldb, calv)

        signal, atten, ovld = self.model.signal()
        assert atten == 0
        print 'maxv', MAXV, 'signal max', np.amax(signal), 'overload', ovld
        assert round(np.amax(signal),2) == MAXV
        # do math to make this more accurate
        assert ovld > 0

    def test_square_wave_overload_voltage(self):
        component0 = SquareWave()
        component0.set('amplitude', 11.)
        self.model.insertComponent(component0, 0, 0)

        signal, atten, ovld = self.model.signal()
        assert atten == 0
        print 'maxv', DEVICE_MAXV, 'signal max', np.amax(signal), 'overload', ovld
        assert round(np.amax(signal),2) == DEVICE_MAXV
        # do math to make this more accurate
        assert ovld > 0

    def test_corrent_number_of_traces(self):
        self.model = self.stim_with_double_auto()
        n = self.model.traceCount()
        sig, doc, over = self.model.expandedStim()
        assert len(sig) == n

    def test_template_no_auto_params(self):
        self.model.setRepCount(7)
        component = PureTone()
        component.setIntensity(34)
        self.model.insertComponent(component, 0,0)
        vocal = Vocalization()
        vocal.setFile(sample.samplewav())
        self.model.insertComponent(vocal, 1,0)

        template = self.model.templateDoc()

        clone = StimulusModel.loadFromTemplate(template)
        clone.setReferenceVoltage(100, 0.1)

        signal0, atten0, ovld = clone.signal()
        signal1, atten1, ovld = self.model.signal()

        assert clone.stimid != self.model.stimid
        np.testing.assert_array_equal(signal0, signal1)
        assert atten0 == atten1
        assert clone.repCount() == self.model.repCount()

    def test_template_with_auto_params(self):
        self.model.setRepCount(7)
        component = PureTone()
        component.setIntensity(34)
        self.model.insertComponent(component, 0,0)
        nsteps = self.add_auto_param(self.model) 

        template = self.model.templateDoc()

        clone = StimulusModel.loadFromTemplate(template)
        clone.setReferenceVoltage(100, 0.1)
开发者ID:boylea,项目名称:sparkle,代码行数:69,代码来源:test_stim_model.py


注:本文中的sparkle.stim.stimulus_model.StimulusModel.setRepCount方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。