Browse Source

Small fixes to sound and colors. -MT

master
Michael Tan 6 years ago
parent
commit
e7eae46e36
  1. 8
      SaccadePursuit.py
  2. 48
      SaccadePursuitEyeTracking.py

8
SaccadePursuit.py

@ -158,9 +158,11 @@ class SPtask(template.BaseExperiment):
counter = 0 counter = 0
for num_trials in range(numTrials): for num_trials in range(numTrials):
if condition == 'Pursuit': if condition == 'Pursuit':
counter1 = 0
for freq in self.pursuit_frequencies: 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) trial_list.append(trial)
counter1 += 1
elif condition == 'Necker': elif condition == 'Necker':
trial = self.make_trial(self.necker_time, 1, condition) trial = self.make_trial(self.necker_time, 1, condition)
trial_list.append(trial) trial_list.append(trial)
@ -310,6 +312,8 @@ class SPtask(template.BaseExperiment):
counter = 0 counter = 0
if not isinstance(stim_frequency, list): if not isinstance(stim_frequency, list):
stim_frequency = [stim_frequency] stim_frequency = [stim_frequency]
if not isinstance(stim_time, list):
stim_time = [stim_time]
for freq in stim_frequency: for freq in stim_frequency:
stim_frames = int(round(stim_time[counter]*num_frames_per_second)) stim_frames = int(round(stim_time[counter]*num_frames_per_second))
for time in range(stim_frames): for time in range(stim_frames):
@ -447,12 +451,12 @@ class SPtask(template.BaseExperiment):
freq = self.display_necker(trial['trial_time'], tracker) freq = self.display_necker(trial['trial_time'], tracker)
elif trial['trial_type']=='Pursuit': elif trial['trial_type']=='Pursuit':
self.display_pursuit(trial['pursuit_frequency'],trial['trial_time']) self.display_pursuit(trial['pursuit_frequency'],trial['trial_time'])
psychopy.sound.Sound(self.new_trial_sound).play()
freq = trial['pursuit_frequency'] freq = trial['pursuit_frequency']
elif trial['trial_type']=='Fixation': elif trial['trial_type']=='Fixation':
self.display_fixation(trial['trial_time']) self.display_fixation(trial['trial_time'])
elif trial['trial_type']=='Rivalry': elif trial['trial_type']=='Rivalry':
freq = self.display_rivalry(trial['trial_time'], tracker) freq = self.display_rivalry(trial['trial_time'], tracker)
psychopy.sound.Sound(self.new_trial_sound).play()
else: else:
self.display_saccade(trial['locations'], trial['trial_time']) self.display_saccade(trial['locations'], trial['trial_time'])
psychopy.sound.Sound(self.new_trial_sound).play() psychopy.sound.Sound(self.new_trial_sound).play()

48
SaccadePursuitEyeTracking.py

@ -26,15 +26,15 @@ import SaccadePursuit
# Experimental Parameters # Experimental Parameters
monitor_name = 'testMonitor' monitor_name = 'testMonitor'
monitor_width = 59.5 #41 monitor_width = 41
distance_to_monitor = 80 distance_to_monitor = 74
monitor_px = [2560,1440] #[1440,900] monitor_px = [1440,900]
window_screen = 0 #1 window_screen = 1
disableTracker = True # For Debugging disableTracker = True # For Debugging
conditions = ['Fixation', 'Pursuit', 'Saccade', 'AntiSaccade', 'Necker'] #, 'Rivalry'] conditions = ['Fixation', 'Pursuit', 'Saccade', 'AntiSaccade', 'Necker'] #, 'Rivalry']
#conditions = ['Saccade'] #conditions = ['Necker']
isi_time = 1 # Interstimulus Interval isi_time = 2 # Interstimulus Interval
data_directory = os.path.join( data_directory = os.path.join(
os.path.expanduser('~'), 'Desktop', 'ExperimentalData', 'SaccadePursuitEyeTracking') os.path.expanduser('~'), 'Desktop', 'ExperimentalData', 'SaccadePursuitEyeTracking')
image_directory = os.path.join(os.getcwd(),'Images') image_directory = os.path.join(os.getcwd(),'Images')
@ -43,8 +43,8 @@ new_trial_sound = 'A'
# Saccade / Antisaccade Parameters # Saccade / Antisaccade Parameters
number_of_saccade_trials = 1 number_of_saccade_trials = 1
number_of_saccade_blocks = 1 number_of_saccade_blocks = 1
saccade_distance = 15 #15 saccade_distance = 15 # Degrees per direction
saccade_time = 3 #3 saccade_time = 3 # Maximum Time
stimulus_size = 0.3 stimulus_size = 0.3
stim_color = [1,-1,-1] stim_color = [1,-1,-1]
saccade_fixation_color = [100,100,100] saccade_fixation_color = [100,100,100]
@ -54,17 +54,18 @@ number_of_pursuit_trials = 1
number_of_pursuit_blocks = 1 number_of_pursuit_blocks = 1
pursuit_distance = 15 pursuit_distance = 15
pursuit_frequencies = [0.1,0.2,0.4] pursuit_frequencies = [0.1,0.2,0.4]
pursuit_time = [5,5,5] #[40,20,15] pursuit_time = [40,20,15]
# Necker Cube Parameters # Necker Cube Parameters
number_of_necker_trials = 1 number_of_necker_trials = 1
number_of_necker_blocks = 4 number_of_necker_blocks = 4
necker_time = 6 necker_time = 60
necker_color = [100,100,100] necker_color = [190,190,190]
necker_bg_color = [64,64,64] necker_bg_color = [30,30,30]
necker_scale = 0.5 necker_scale = 0.5
necker_file = os.path.join(image_directory,'Necker1.tif') 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 # Fixation Parameters
number_of_fixation_trials = 1 number_of_fixation_trials = 1
@ -79,9 +80,11 @@ rivalry_time = 90
rivalry_scale = 2.5 rivalry_scale = 2.5
rivalry_file1 = os.path.join(image_directory,'house4n_11-160.tif') rivalry_file1 = os.path.join(image_directory,'house4n_11-160.tif')
rivalry_file2 = os.path.join(image_directory,'face2nS_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_border_width = 5
rivalry_distance = 4 rivalry_distance = 4
response_box_file = os.path.join(image_directory,'ResponseBox3.tif')
response_box_scale = 0.22
data_fields = [ data_fields = [
'Subject', 'Subject',
@ -195,6 +198,9 @@ class EyeTrackingSaccadePursuit(SaccadePursuit.SPtask):
self.number_of_rivalry_trials = number_of_rivalry_trials self.number_of_rivalry_trials = number_of_rivalry_trials
self.number_of_rivalry_blocks = number_of_rivalry_blocks self.number_of_rivalry_blocks = number_of_rivalry_blocks
self.response_box_file = response_box_file 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) super(EyeTrackingSaccadePursuit, self).__init__(**kwargs)
@ -270,11 +276,15 @@ class EyeTrackingSaccadePursuit(SaccadePursuit.SPtask):
numBlocks = self.number_of_pursuit_blocks numBlocks = self.number_of_pursuit_blocks
numTrials = self.number_of_pursuit_trials numTrials = self.number_of_pursuit_trials
elif condition=='Necker': 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 numBlocks = self.number_of_necker_blocks
numTrials = self.number_of_necker_trials numTrials = self.number_of_necker_trials
elif condition=='Rivalry': 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 numBlocks = self.number_of_rivalry_blocks
numTrials = self.number_of_rivalry_trials numTrials = self.number_of_rivalry_trials
else: else:
@ -332,10 +342,12 @@ class EyeTrackingSaccadePursuit(SaccadePursuit.SPtask):
self.display_text_screen(text='Remember:\n\n' + pursuit_instruct_text) self.display_text_screen(text='Remember:\n\n' + pursuit_instruct_text)
elif condition=='Necker': elif condition=='Necker':
self.display_text_screen(text='Remember:\n\n' + necker_instruct_text, 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': elif condition=='Rivalry':
self.display_text_screen(text='Remember:\n\n' + rivalry_instruct_text, 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( self.display_text_screen(
'The experiment is now over.', 'The experiment is now over.',

Loading…
Cancel
Save