def menuButton5(self, control): exampleHead = Head() exampleHeadModel = HeadModel(exampleHead) exampleHead.setSamplingFrequency(256) exampleHead.addRegistrationSite([0, 0, 0]) exampleExperiment = Experiment(exampleHead.getSamplingFrequency(), 100.0) # Randomizing stimuli times stimuli = [] for i in range(100): stimuli.append( i + 0.2 +random()/2 ) exampleExperiment.setStimulusTimes([stimuli]) exampleStimulus = Stimulus('Stim', exampleHead) exampleStimulus.setStimulusTimes(exampleExperiment.getStimulusTimes()[0]) # Creating many generators with random frequencies in the range 2-20 Hz and # random phases. Connecting some of them to the stimulus generator exampleGenerators = [] exampleConnections = [] for i in range(100): randomFrequency = 2.0 + random() * 18 randomPhaseShift = random() exampleGenerators.append(GeneratorSine('Gen', exampleHead, frequency=randomFrequency, phaseShift=randomPhaseShift)) if(random() > 0.75): exampleConnections.append(Connection('Con', exampleHead, exampleStimulus, exampleGenerators[i])) exampleExperiment.setRecording(exampleHead.runSimulation(exampleExperiment.getDuration())) exampleExperiment.plotRecording()
def menuButton2(self, control): exampleHead = Head() exampleHeadModel = HeadModel(exampleHead) exampleHead.setSamplingFrequency(10) exampleHead.addRegistrationSite([0, 0, 0]) exampleStimulus = Stimulus('Stim', exampleHead) exampleStimulus.setStimulusTimes([0.3, 0.6]) exampleGenerator = GeneratorNumberIncrementing('Gen', exampleHead) exampleConnection = Connection('Con', exampleHead, exampleStimulus, exampleGenerator) exampleExperiment = Experiment(exampleHead.getSamplingFrequency(), 1.0, exampleHead.runSimulation( 1.0 )) output = str(exampleExperiment.getRecording()) self.log.SetValue(output) self.logWindow.Show()
def menuButton4(self, control): exampleHead = Head() exampleHeadModel = HeadModel(exampleHead) exampleHead.setSamplingFrequency(128) exampleHead.addRegistrationSite([0, 0, 0]) exampleExperiment = Experiment(exampleHead.getSamplingFrequency(), 10.0) exampleExperiment.setStimulusTimes([[0.3, 1.75, 2.16, 3.87, 4.31, 5.183, 6.34, 7.13]]) exampleStimulus = Stimulus('Stim', exampleHead) exampleStimulus.setStimulusTimes(exampleExperiment.getStimulusTimes()[0]) exampleGenerator = GeneratorSine('Gen', exampleHead) exampleConnection = Connection('Con', exampleHead, exampleStimulus, exampleGenerator) exampleExperiment.setRecording(exampleHead.runSimulation(exampleExperiment.getDuration())) exampleExperiment.plotRecording()
def create_stim_list(self): snack_names = self.df.index.values print(snack_names) stimlist = [] for idx, stim in enumerate(snack_names): show = self.df['show'][idx] cued = self.df['cued'][idx] A = Stimulus(name=stim, show=show, cued=cued) stimlist.append(A) return stimlist
def menuButton3(self, control): exampleHead = Head() exampleHeadModel = HeadModel(exampleHead) exampleHead.setSamplingFrequency(10) exampleHead.addRegistrationSite([0, 0, 0]) exampleExperiment = Experiment(exampleHead.getSamplingFrequency(), 1.0) exampleExperiment.setStimulusTimes([[0.3, 0.6], [0.5]]) exampleStimulus1 = Stimulus('Stim1', exampleHead) exampleStimulus2 = Stimulus('Stim2', exampleHead) exampleStimulus1.setStimulusTimes(exampleExperiment.getStimulusTimes()[0]) exampleStimulus2.setStimulusTimes(exampleExperiment.getStimulusTimes()[1]) exampleGenerator1 = GeneratorNumberIncrementing('Gen1', exampleHead) exampleGenerator2 = GeneratorNumberIncrementing('Gen2', exampleHead) exampleConnection1 = Connection('Con1', exampleHead, exampleStimulus1, exampleGenerator1) exampleConnection2 = Connection('Con2', exampleHead, exampleStimulus2, exampleGenerator2) exampleExperiment.setRecording(exampleHead.runSimulation(exampleExperiment.getDuration())) output = str(exampleExperiment.getRecording()) self.log.SetValue(output) self.logWindow.Show()
def runGenerator(self, time): print("[runGenerator] " + self.name + ": Preparing the stimulus") return Stimulus.runGenerator(self, time)
from Stimulus import Stimulus # Define length of stimulus in seconds and sampling rate in samples/second length = 0.1 fs = 44100 # Initialise Stimulus object with given length and sampling rate s = Stimulus(length, fs) # Define frequency of tone f = 1000 # Generate tone s.pure_tone(f) # Define start and stop frequency of sweep start = 0 stop = 1000 # Generate frequency sweep s.chirp(start, stop) # Generate silence s.silence() # Generate noise and silence and add them together fs = 44100 noise_length = 0.1 silence_length = 1
def testStandaloneDesign(self): check = 0 try: generateCompatibleFormat(exp_path=os.path.abspath( "tests/NTU_Experiment/Data/sub_222.asc"), device="eyelink", stim_list_mode='NA', start='start_trial', stop='stop_trial', eye='B') generateCompatibleFormat(exp_path=os.path.abspath( "tests/NTU_Experiment/smi_eyetracker_freeviewing.txt"), device="smi", stim_list_mode='NA', start='12', stop='99') generateCompatibleFormat(exp_path=os.path.abspath( "tests/NTU_Experiment/tobii_sceneviewing_eyetrack_ascii.txt"), device="tobii", start='MYKEYWORD') temp_df = pd.read_csv( os.path.abspath( "tests/NTU_Experiment/smi_eyetracker_freeviewing.csv")) del (temp_df) df = pd.read_csv( os.path.abspath("tests/NTU_Experiment/Data/sub_222.csv")) check = 1 finally: self.assertEqual(check, 1) check = 0 try: sensor_dict = { "EyeTracker": { "Sampling_Freq": 1000, "Display_width": 1280, "Display_height": 1024, "aoi_left_x": 0, "aoi_left_y": 0, "aoi_right_x": 1280, "aoi_right_y": 1024 } } stim = Stimulus(path=os.path.abspath("tests/NTU_Experiment"), data=df, sensor_names=sensor_dict, start_time=0, end_time=6000) check = 1 finally: self.assertEqual(check, 1) check = 0 try: stim.findEyeMetaData() features = stim.sensors["EyeTracker"].metadata stim.findMicrosaccades(plot_ms=True) stim.gazePlot(show_fig=False, save_fig=True) stim.gazeHeatMap(show_fig=False, save_fig=True) stim.visualize(show=False) check = 1 finally: self.assertEqual(check, 1)