|
18 | 18 |
|
19 | 19 | cfg.debug.do = false; % To test the script out of the scanner, skip PTB sync |
20 | 20 | cfg.debug.smallWin = false; % To test on a part of the screen, change to 1 |
21 | | - cfg.debug.transpWin = true; % To test with trasparent full size screen |
| 21 | + cfg.debug.transpWin = false; % To test with trasparent full size screen |
22 | 22 |
|
23 | | - cfg.verbose = false; |
| 23 | + cfg.verbose = 2; |
24 | 24 |
|
25 | 25 | %% Engine parameters |
26 | 26 |
|
|
40 | 40 |
|
41 | 41 | %% Experiment Design |
42 | 42 |
|
43 | | - % cfg.design.localizer = 'MT_MST'; |
| 43 | + % switching this on to MT or MT/MST with use: |
| 44 | + % - MT: translational motion on the whole screen |
| 45 | + % - alternates static and motion (left or right) blocks |
| 46 | + % - MST: radial motion centered in a circle aperture that is on the opposite |
| 47 | + % side of the screen relative to the fixation |
| 48 | + % - alternates fixaton left and fixation right |
| 49 | + cfg.design.localizer = 'MT'; |
| 50 | + % cfg.design.localizer = 'MT_MST'; |
44 | 51 |
|
45 | | - % cfg.design.motionType = 'radial'; |
46 | 52 | cfg.design.motionType = 'translation'; |
47 | | - |
48 | 53 | cfg.design.motionDirections = [0 0 180 180]; |
49 | 54 | cfg.design.names = {'static'; 'motion'}; |
| 55 | + |
50 | 56 | cfg.design.nbRepetitions = 8; |
51 | 57 | cfg.design.nbEventsPerBlock = 12; % DO NOT CHANGE |
52 | 58 |
|
53 | | - if isfield(cfg.design, 'localizer') && strcmpi(cfg.design.localizer, 'MT_MST') |
54 | | - cfg.design.names = {'fixation_right'; 'fixation_left'}; |
55 | | - end |
56 | | - |
57 | 59 | %% Timing |
58 | 60 |
|
59 | 61 | % FOR 7T: if you want to create localizers on the fly, the following must be |
|
73 | 75 | % Number of seconds after the end all the stimuli before ending the run |
74 | 76 | cfg.timing.endDelay = 3.6; |
75 | 77 |
|
76 | | - if isfield(cfg.design, 'localizer') && strcmpi(cfg.design.localizer, 'MT_MST') |
77 | | - cfg.timing.IBI = 3.6; |
78 | | - end |
79 | | - |
80 | 78 | % reexpress those in terms of repetition time |
81 | 79 | if cfg.pacedByTriggers.do |
82 | 80 |
|
|
94 | 92 | % Number of seconds after the end all the stimuli before ending the run |
95 | 93 | cfg.timing.endDelay = 2; |
96 | 94 |
|
97 | | - if isfield(cfg.design, 'localizer') && strcmpi(cfg.design.localizer, 'MT_MST') |
98 | | - cfg.timing.IBI = 2; |
99 | | - end |
100 | | - |
101 | 95 | end |
102 | 96 |
|
103 | 97 | %% Visual Stimulation |
|
109 | 103 | % Number of dots per visual angle square. |
110 | 104 | cfg.dot.density = 1; |
111 | 105 | % Dot life time in seconds |
112 | | - cfg.dot.lifeTime = .15; |
| 106 | + cfg.dot.lifeTime = .4; |
113 | 107 | % proportion of dots killed per frame |
114 | | - cfg.dot.proportionKilledPerFrame = 0.005; |
| 108 | + cfg.dot.proportionKilledPerFrame = 0; |
115 | 109 | % Dot Size (dot width) in visual angles. |
116 | 110 | cfg.dot.size = .2; |
117 | 111 | cfg.dot.color = cfg.color.white; |
|
121 | 115 | cfg.aperture.width = []; % if left empty it will take the screen height |
122 | 116 | cfg.aperture.xPos = 0; |
123 | 117 |
|
124 | | - if isfield(cfg.design, 'localizer') && strcmpi(cfg.design.localizer, 'MT_MST') |
125 | | - cfg.aperture.type = 'circle'; |
126 | | - cfg.aperture.width = 7; % if left empty it will take the screen height |
127 | | - cfg.aperture.xPos = 7; |
128 | | - end |
129 | | - |
130 | 118 | %% Task(s) |
131 | 119 |
|
132 | 120 | cfg.task.name = 'visual localizer'; |
133 | | - if isfield(cfg.design, 'localizer') && strcmpi(cfg.design.localizer, 'MT_MST') |
134 | | - cfg.task.name = 'mt mst localizer'; |
135 | | - end |
136 | 121 |
|
137 | 122 | % Instruction |
138 | 123 | cfg.task.instruction = '1-Detect the RED fixation cross\n \n\n'; |
|
147 | 132 | cfg.fixation.yDisplacement = 0; |
148 | 133 |
|
149 | 134 | cfg.target.maxNbPerBlock = 1; |
150 | | - cfg.target.duration = 0.05; % In secs |
| 135 | + cfg.target.duration = 0.1; % In secs |
151 | 136 |
|
152 | 137 | cfg.extraColumns = { ... |
153 | 138 | 'direction', ... |
|
159 | 144 | 'fixationPosition', ... |
160 | 145 | 'aperturePosition'}; |
161 | 146 |
|
| 147 | + %% orverrireds the relevant fields in case we use the MT / MST localizer |
| 148 | + cfg = setParametersMtMst(cfg); |
| 149 | + |
162 | 150 | end |
163 | 151 |
|
164 | 152 | function cfg = setKeyboards(cfg) |
|
206 | 194 | cfg.screen.monitorWidth = 25; |
207 | 195 | cfg.screen.monitorDistance = 95; |
208 | 196 | end |
| 197 | + |
| 198 | +end |
| 199 | + |
| 200 | +function cfg = setParametersMtMst(cfg) |
| 201 | + |
| 202 | + if isfield(cfg.design, 'localizer') && strcmpi(cfg.design.localizer, 'MT_MST') |
| 203 | + |
| 204 | + cfg.task.name = 'mt mst localizer'; |
| 205 | + |
| 206 | + cfg.design.motionType = 'radial'; |
| 207 | + cfg.design.motionDirections = [666 666 -666 -666]; |
| 208 | + cfg.design.names = {'fixation_right'; 'fixation_left'}; |
| 209 | + cfg.design.xDisplacementFixation = 7; |
| 210 | + cfg.design.xDisplacementAperture = 3; |
| 211 | + |
| 212 | + cfg.timing.IBI = 3.6; |
| 213 | + |
| 214 | + % reexpress those in terms of repetition time |
| 215 | + if cfg.pacedByTriggers.do |
| 216 | + |
| 217 | + cfg.timing.IBI = 2; |
| 218 | + |
| 219 | + end |
| 220 | + |
| 221 | + cfg.aperture.type = 'circle'; |
| 222 | + cfg.aperture.width = 7; % if left empty it will take the screen height |
| 223 | + cfg.aperture.xPos = cfg.design.xDisplacementAperture; |
| 224 | + |
| 225 | + end |
| 226 | + |
209 | 227 | end |
0 commit comments