From e7eae46e36100fbc305229b91541f9b66e1d099e Mon Sep 17 00:00:00 2001 From: Michael Tan Date: Tue, 22 Oct 2019 15:53:02 -0500 Subject: [PATCH] Small fixes to sound and colors. -MT --- SaccadePursuit.py | 8 ++++-- SaccadePursuitEyeTracking.py | 48 ++++++++++++++++++++++-------------- 2 files changed, 36 insertions(+), 20 deletions(-) diff --git a/SaccadePursuit.py b/SaccadePursuit.py index 4c70994..82653ce 100755 --- a/SaccadePursuit.py +++ b/SaccadePursuit.py @@ -158,9 +158,11 @@ class SPtask(template.BaseExperiment): counter = 0 for num_trials in range(numTrials): if condition == 'Pursuit': + counter1 = 0 for freq in self.pursuit_frequencies: - trial = self.make_trial(self.pursuit_time, freq, condition) + trial = self.make_trial(self.pursuit_time[counter1], freq, condition) trial_list.append(trial) + counter1 += 1 elif condition == 'Necker': trial = self.make_trial(self.necker_time, 1, condition) trial_list.append(trial) @@ -310,6 +312,8 @@ class SPtask(template.BaseExperiment): counter = 0 if not isinstance(stim_frequency, list): stim_frequency = [stim_frequency] + if not isinstance(stim_time, list): + stim_time = [stim_time] for freq in stim_frequency: stim_frames = int(round(stim_time[counter]*num_frames_per_second)) for time in range(stim_frames): @@ -447,12 +451,12 @@ class SPtask(template.BaseExperiment): freq = self.display_necker(trial['trial_time'], tracker) elif trial['trial_type']=='Pursuit': self.display_pursuit(trial['pursuit_frequency'],trial['trial_time']) + psychopy.sound.Sound(self.new_trial_sound).play() freq = trial['pursuit_frequency'] elif trial['trial_type']=='Fixation': self.display_fixation(trial['trial_time']) elif trial['trial_type']=='Rivalry': freq = self.display_rivalry(trial['trial_time'], tracker) - psychopy.sound.Sound(self.new_trial_sound).play() else: self.display_saccade(trial['locations'], trial['trial_time']) psychopy.sound.Sound(self.new_trial_sound).play() diff --git a/SaccadePursuitEyeTracking.py b/SaccadePursuitEyeTracking.py index 171d570..5108ef5 100755 --- a/SaccadePursuitEyeTracking.py +++ b/SaccadePursuitEyeTracking.py @@ -26,15 +26,15 @@ import SaccadePursuit # Experimental Parameters monitor_name = 'testMonitor' -monitor_width = 59.5 #41 -distance_to_monitor = 80 -monitor_px = [2560,1440] #[1440,900] -window_screen = 0 #1 +monitor_width = 41 +distance_to_monitor = 74 +monitor_px = [1440,900] +window_screen = 1 disableTracker = True # For Debugging conditions = ['Fixation', 'Pursuit', 'Saccade', 'AntiSaccade', 'Necker'] #, 'Rivalry'] -#conditions = ['Saccade'] -isi_time = 1 # Interstimulus Interval +#conditions = ['Necker'] +isi_time = 2 # Interstimulus Interval data_directory = os.path.join( os.path.expanduser('~'), 'Desktop', 'ExperimentalData', 'SaccadePursuitEyeTracking') image_directory = os.path.join(os.getcwd(),'Images') @@ -43,8 +43,8 @@ new_trial_sound = 'A' # Saccade / Antisaccade Parameters number_of_saccade_trials = 1 number_of_saccade_blocks = 1 -saccade_distance = 15 #15 -saccade_time = 3 #3 +saccade_distance = 15 # Degrees per direction +saccade_time = 3 # Maximum Time stimulus_size = 0.3 stim_color = [1,-1,-1] saccade_fixation_color = [100,100,100] @@ -54,17 +54,18 @@ number_of_pursuit_trials = 1 number_of_pursuit_blocks = 1 pursuit_distance = 15 pursuit_frequencies = [0.1,0.2,0.4] -pursuit_time = [5,5,5] #[40,20,15] +pursuit_time = [40,20,15] # Necker Cube Parameters number_of_necker_trials = 1 number_of_necker_blocks = 4 -necker_time = 6 -necker_color = [100,100,100] -necker_bg_color = [64,64,64] +necker_time = 60 +necker_color = [190,190,190] +necker_bg_color = [30,30,30] necker_scale = 0.5 necker_file = os.path.join(image_directory,'Necker1.tif') -response_box_file = os.path.join(image_directory,'ResponseBox4.tif') +necker_response_box_file = os.path.join(image_directory,'ResponseBox5.tif') +necker_response_box_scale = 0.22 # Fixation Parameters number_of_fixation_trials = 1 @@ -79,9 +80,11 @@ rivalry_time = 90 rivalry_scale = 2.5 rivalry_file1 = os.path.join(image_directory,'house4n_11-160.tif') rivalry_file2 = os.path.join(image_directory,'face2nS_11-160.tif') -rivalry_border_color = [100,100,100] +rivalry_border_color = [190,190,190] rivalry_border_width = 5 rivalry_distance = 4 +response_box_file = os.path.join(image_directory,'ResponseBox3.tif') +response_box_scale = 0.22 data_fields = [ 'Subject', @@ -195,6 +198,9 @@ class EyeTrackingSaccadePursuit(SaccadePursuit.SPtask): self.number_of_rivalry_trials = number_of_rivalry_trials self.number_of_rivalry_blocks = number_of_rivalry_blocks self.response_box_file = response_box_file + self.necker_response_box_file = necker_response_box_file + self.necker_response_box_scale = necker_response_box_scale + self.response_box_scale = response_box_scale super(EyeTrackingSaccadePursuit, self).__init__(**kwargs) @@ -270,11 +276,15 @@ class EyeTrackingSaccadePursuit(SaccadePursuit.SPtask): numBlocks = self.number_of_pursuit_blocks numTrials = self.number_of_pursuit_trials elif condition=='Necker': - self.display_text_screen(text=necker_instruct_text, image_file=self.response_box_file) + self.display_text_screen(text=necker_instruct_text, + image_file=self.necker_response_box_file, + image_scale=self.necker_response_box_scale) numBlocks = self.number_of_necker_blocks numTrials = self.number_of_necker_trials elif condition=='Rivalry': - self.display_text_screen(text=rivalry_instruct_text, image_file=self.response_box_file) + self.display_text_screen(text=rivalry_instruct_text, + image_file=self.response_box_file, + image_scale=self.response_box_scale) numBlocks = self.number_of_rivalry_blocks numTrials = self.number_of_rivalry_trials else: @@ -332,10 +342,12 @@ class EyeTrackingSaccadePursuit(SaccadePursuit.SPtask): self.display_text_screen(text='Remember:\n\n' + pursuit_instruct_text) elif condition=='Necker': self.display_text_screen(text='Remember:\n\n' + necker_instruct_text, - image_file=self.response_box_file) + image_file=self.response_box_file, + image_scale=self.necker_response_box_scale) elif condition=='Rivalry': self.display_text_screen(text='Remember:\n\n' + rivalry_instruct_text, - image_file=self.response_box_file) + image_file=self.response_box_file, + image_scale=self.response_box_scale) self.display_text_screen( 'The experiment is now over.',