Skip to content

Commit fd24c10

Browse files
committed
change indent and change logEventFile to fileID
1 parent 6fccce5 commit fd24c10

File tree

1 file changed

+176
-173
lines changed

1 file changed

+176
-173
lines changed

audioLocTranslational.m

Lines changed: 176 additions & 173 deletions
Original file line numberDiff line numberDiff line change
@@ -21,188 +21,191 @@
2121

2222
% set and load all the parameters to run the experiment
2323
expParameters = userInputs(cfg, expParameters);
24-
expParameters = createFilename(expParameters, cfg);
24+
25+
expParameters = createFilename(cfg, expParameters);
2526

2627
expParameters %#ok<NOPTS>
2728

2829
%% Experiment
2930

3031
% Safety loop: close the screen if code crashes
3132
try
32-
33-
%% Init the experiment
34-
[cfg] = initPTB(cfg);
35-
36-
% % Convert some values from degrees to pixels
37-
% cfg = deg2Pix('diameterAperture', cfg, cfg);
38-
% expParameters = deg2Pix('dotSize', expParameters, cfg);
39-
40-
41-
[el] = eyeTracker('Calibration', cfg, expParameters);
42-
43-
% % % REFACTOR THIS FUNCTION
44-
[expParameters] = expDesign(expParameters);
45-
% % %
46-
47-
% Prepare for the output logfiles with all
48-
logFile = saveEventsFile('open', expParameters, [], ...
49-
'direction', 'speed', 'target', 'event', 'block');
50-
51-
% % % REFACTOR THIS FUNCTION
52-
[expParameters] = loadAudioFiles(cfg, expParameters);
53-
phandle = PsychPortAudio('Open',[],[],1,expParameters.freq,2);
54-
% % %
55-
56-
% Prepare for fixation Cross
57-
if expParameters.Task1
58-
59-
cfg.xCoords = [-expParameters.fixCrossDimPix expParameters.fixCrossDimPix 0 0] ...
60-
+ expParameters.xDisplacementFixCross;
61-
62-
cfg.yCoords = [0 0 -expParameters.fixCrossDimPix expParameters.fixCrossDimPix] ...
63-
+ expParameters.yDisplacementFixCross;
64-
65-
cfg.allCoords = [cfg.xCoords; cfg.yCoords];
66-
67-
end
68-
69-
% Wait for space key to be pressed
70-
pressSpace4me
71-
72-
% prepare the KbQueue to collect responses
73-
getResponse('init', cfg, expParameters, 1);
74-
getResponse('start', cfg, expParameters, 1);
75-
76-
% Show instructions
77-
if expParameters.Task1
78-
DrawFormattedText(cfg.win,expParameters.TaskInstruction,...
79-
'center', 'center', cfg.textColor);
80-
Screen('Flip', cfg.win);
81-
end
82-
83-
% Wait for Trigger from Scanner
84-
wait4Trigger(cfg)
85-
86-
% Show the fixation cross
87-
if expParameters.Task1
88-
drawFixationCross(cfg, expParameters, expParameters.fixationCrossColor)
89-
Screen('Flip',cfg.win);
90-
end
91-
92-
%% Experiment Start
93-
cfg.experimentStart = GetSecs;
94-
95-
WaitSecs(expParameters.onsetDelay);
96-
97-
%% For Each Block
98-
99-
stopEverything = 0;
100-
101-
for iBlock = 1:expParameters.numBlocks
102-
103-
if stopEverything
104-
break;
33+
34+
%% Init the experiment
35+
[cfg] = initPTB(cfg);
36+
37+
% % Convert some values from degrees to pixels
38+
% cfg = deg2Pix('diameterAperture', cfg, cfg);
39+
% expParameters = deg2Pix('dotSize', expParameters, cfg);
40+
41+
42+
[el] = eyeTracker('Calibration', cfg, expParameters);
43+
44+
% % % REFACTOR THIS FUNCTION
45+
[expParameters] = expDesign(expParameters);
46+
% % %
47+
48+
% Prepare for the output logfiles with all
49+
logFile = saveEventsFile('open', expParameters, [], ...
50+
'direction', 'speed', 'target', 'event', 'block');
51+
52+
logFile
53+
54+
% % % REFACTOR THIS FUNCTION
55+
[expParameters] = loadAudioFiles(cfg, expParameters);
56+
phandle = PsychPortAudio('Open',[],[],1,expParameters.freq,2);
57+
% % %
58+
59+
% Prepare for fixation Cross
60+
if expParameters.Task1
61+
62+
cfg.xCoords = [-expParameters.fixCrossDimPix expParameters.fixCrossDimPix 0 0] ...
63+
+ expParameters.xDisplacementFixCross;
64+
65+
cfg.yCoords = [0 0 -expParameters.fixCrossDimPix expParameters.fixCrossDimPix] ...
66+
+ expParameters.yDisplacementFixCross;
67+
68+
cfg.allCoords = [cfg.xCoords; cfg.yCoords];
69+
10570
end
106-
107-
fprintf('\n - Running Block %.0f \n',iBlock)
108-
109-
eyeTracker('StartRecording', cfg, expParameters);
110-
111-
% For each event in the block
112-
for iEvent = 1:expParameters.numEventsPerBlock
113-
114-
115-
% Check for experiment abortion from operator
116-
[keyIsDown, ~, keyCode] = KbCheck(cfg.keyboard);
117-
if keyIsDown && keyCode(KbName(cfg.escapeKey))
118-
stopEverything = 1;
119-
warning('OK let us get out of here')
120-
break;
121-
end
122-
123-
124-
% set direction, speed of that event and if it is a target
125-
thisEvent.trial_type = 'dummy';
126-
thisEvent.direction = expParameters.designDirections(iBlock,iEvent);
127-
thisEvent.speed = expParameters.designSpeeds(iBlock,iEvent);
128-
thisEvent.target = expParameters.designFixationTargets(iBlock,iEvent);
129-
130-
% play the sounds and collect onset and duration of the event
131-
[onset, duration] = doAudMot(cfg, expParameters, thisEvent, phandle);
132-
133-
thisEvent.event = iEvent;
134-
thisEvent.block = iBlock;
135-
thisEvent.duration = duration;
136-
thisEvent.onset = onset - cfg.experimentStart;
137-
138-
% Save the events txt logfile
139-
% we save event by event so we clear this variable every loop
140-
thisEvent.eventLogFile = logFile.eventLogFile;
141-
142-
saveEventsFile('save', expParameters, thisEvent, ...
143-
'direction', 'speed', 'target', 'event', 'block');
144-
145-
clear thisEvent
146-
147-
148-
% collect the responses and appends to the event structure for
149-
% saving in the tsv file
150-
responseEvents = getResponse('check', cfg, expParameters);
151-
152-
if ~isempty(responseEvents(1).onset)
153-
154-
responseEvents.eventLogFile = logFile.eventLogFile;
155-
156-
for iResp = 1:size(responseEvents, 1)
157-
responseEvents(iResp).onset = ...
158-
responseEvents(iResp).onset - cfg.experimentStart;
159-
responseEvents(iResp).target = expParameters.designFixationTargets(iBlock,iEvent);
160-
responseEvents(iResp).event = iEvent;
161-
responseEvents(iResp).block = iBlock;
71+
72+
% Wait for space key to be pressed
73+
pressSpace4me
74+
75+
% prepare the KbQueue to collect responses
76+
getResponse('init', cfg, expParameters, 1);
77+
getResponse('start', cfg, expParameters, 1);
78+
79+
% Show instructions
80+
if expParameters.Task1
81+
DrawFormattedText(cfg.win,expParameters.TaskInstruction,...
82+
'center', 'center', cfg.textColor);
83+
Screen('Flip', cfg.win);
84+
end
85+
86+
% Wait for Trigger from Scanner
87+
wait4Trigger(cfg)
88+
89+
% Show the fixation cross
90+
if expParameters.Task1
91+
drawFixationCross(cfg, expParameters, expParameters.fixationCrossColor)
92+
Screen('Flip',cfg.win);
93+
end
94+
95+
%% Experiment Start
96+
cfg.experimentStart = GetSecs;
97+
98+
WaitSecs(expParameters.onsetDelay);
99+
100+
%% For Each Block
101+
102+
stopEverything = 0;
103+
104+
for iBlock = 1:expParameters.numBlocks
105+
106+
if stopEverything
107+
break;
162108
end
163-
164-
saveEventsFile('save', expParameters, responseEvents, ...
165-
'direction', 'speed', 'target', 'event', 'block');
166-
end
167-
168-
% wait for the inter-stimulus interval
169-
WaitSecs(expParameters.ISI);
170-
171-
getResponse('flush', cfg, expParameters);
172-
109+
110+
fprintf('\n - Running Block %.0f \n',iBlock)
111+
112+
eyeTracker('StartRecording', cfg, expParameters);
113+
114+
% For each event in the block
115+
for iEvent = 1:expParameters.numEventsPerBlock
116+
117+
118+
% Check for experiment abortion from operator
119+
[keyIsDown, ~, keyCode] = KbCheck(cfg.keyboard);
120+
if keyIsDown && keyCode(KbName(cfg.escapeKey))
121+
stopEverything = 1;
122+
warning('OK let us get out of here')
123+
break;
124+
end
125+
126+
127+
% set direction, speed of that event and if it is a target
128+
thisEvent.trial_type = 'dummy';
129+
thisEvent.direction = expParameters.designDirections(iBlock,iEvent);
130+
thisEvent.speed = expParameters.designSpeeds(iBlock,iEvent);
131+
thisEvent.target = expParameters.designFixationTargets(iBlock,iEvent);
132+
133+
% play the sounds and collect onset and duration of the event
134+
[onset, duration] = doAudMot(cfg, expParameters, thisEvent, phandle);
135+
136+
thisEvent.event = iEvent;
137+
thisEvent.block = iBlock;
138+
thisEvent.duration = duration;
139+
thisEvent.onset = onset - cfg.experimentStart;
140+
141+
% Save the events txt logfile
142+
% we save event by event so we clear this variable every loop
143+
thisEvent.fileID = logFile.fileID;
144+
145+
saveEventsFile('save', expParameters, thisEvent, ...
146+
'direction', 'speed', 'target', 'event', 'block');
147+
148+
clear thisEvent
149+
150+
151+
% collect the responses and appends to the event structure for
152+
% saving in the tsv file
153+
responseEvents = getResponse('check', cfg, expParameters);
154+
155+
if ~isempty(responseEvents(1).onset)
156+
157+
responseEvents.fileID = logFile.fileID;
158+
159+
for iResp = 1:size(responseEvents, 1)
160+
responseEvents(iResp).onset = ...
161+
responseEvents(iResp).onset - cfg.experimentStart;
162+
responseEvents(iResp).target = expParameters.designFixationTargets(iBlock,iEvent);
163+
responseEvents(iResp).event = iEvent;
164+
responseEvents(iResp).block = iBlock;
165+
end
166+
167+
saveEventsFile('save', expParameters, responseEvents, ...
168+
'direction', 'speed', 'target', 'event', 'block');
169+
end
170+
171+
% wait for the inter-stimulus interval
172+
WaitSecs(expParameters.ISI);
173+
174+
getResponse('flush', cfg, expParameters);
175+
176+
end
177+
178+
eyeTracker('StopRecordings', cfg, expParameters);
179+
180+
WaitSecs(expParameters.IBI);
181+
173182
end
174-
175-
eyeTracker('StopRecordings', cfg, expParameters);
176-
177-
WaitSecs(expParameters.IBI);
178-
179-
end
180-
181-
% End of the run for the BOLD to go down
182-
WaitSecs(expParameters.endDelay);
183-
184-
% Close the logfiles
185-
saveEventsFile('close', expParameters, logFile);
186-
187-
getResponse('stop', cfg, expParameters, 1);
188-
189-
totalExperimentTime = GetSecs-cfg.experimentStart;
190-
191-
eyeTracker('Shutdown', cfg, expParameters);
192-
193-
% save the whole workspace
194-
matFile = fullfile(expParameters.outputDir, strrep(expParameters.fileName.events,'tsv', 'mat'));
195-
if IsOctave
196-
save(matFile, '-mat7-binary');
197-
else
198-
save(matFile, '-v7.3');
199-
end
200-
201-
cleanUp()
202-
183+
184+
% End of the run for the BOLD to go down
185+
WaitSecs(expParameters.endDelay);
186+
187+
% Close the logfiles
188+
saveEventsFile('close', expParameters, logFile);
189+
190+
getResponse('stop', cfg, expParameters, 1);
191+
192+
totalExperimentTime = GetSecs-cfg.experimentStart;
193+
194+
eyeTracker('Shutdown', cfg, expParameters);
195+
196+
% save the whole workspace
197+
matFile = fullfile(expParameters.outputDir, strrep(expParameters.fileName.events,'tsv', 'mat'));
198+
if IsOctave
199+
save(matFile, '-mat7-binary');
200+
else
201+
save(matFile, '-v7.3');
202+
end
203+
204+
cleanUp()
205+
203206
catch
204-
205-
cleanUp()
206-
psychrethrow(psychlasterror);
207-
207+
208+
cleanUp()
209+
psychrethrow(psychlasterror);
210+
208211
end

0 commit comments

Comments
 (0)