|
20 | 20 | cfg.debug.smallWin = false; % To test on a part of the screen, change to 1 |
21 | 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'; |
44 | | - |
45 | | - cfg.design.motionType = 'radial'; |
46 | | - cfg.design.motionDirections = [666 666 -666 -666]; |
| 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'; |
| 51 | + |
| 52 | + cfg.design.motionType = 'translation'; |
| 53 | + cfg.design.motionDirections = [0 0 180 180]; |
47 | 54 | cfg.design.names = {'static'; 'motion'}; |
48 | | - cfg.design.xDisplacementFixation = 7; |
49 | | - cfg.design.xDisplacementAperture = 3; |
50 | | - |
51 | | -% cfg.design.motionType = 'translation'; |
52 | | -% cfg.design.motionDirections = [0 0 180 180]; |
53 | | -% cfg.design.names = {'static'; 'motion'}; |
54 | | - |
| 55 | + |
55 | 56 | cfg.design.nbRepetitions = 8; |
56 | 57 | cfg.design.nbEventsPerBlock = 12; % DO NOT CHANGE |
57 | 58 |
|
58 | | - if isfield(cfg.design, 'localizer') && strcmpi(cfg.design.localizer, 'MT_MST') |
59 | | - cfg.design.names = {'fixation_right'; 'fixation_left'}; |
60 | | - end |
61 | | - |
62 | 59 | %% Timing |
63 | 60 |
|
64 | 61 | % FOR 7T: if you want to create localizers on the fly, the following must be |
|
78 | 75 | % Number of seconds after the end all the stimuli before ending the run |
79 | 76 | cfg.timing.endDelay = 3.6; |
80 | 77 |
|
81 | | - if isfield(cfg.design, 'localizer') && strcmpi(cfg.design.localizer, 'MT_MST') |
82 | | - cfg.timing.IBI = 3.6; |
83 | | - end |
84 | | - |
85 | 78 | % reexpress those in terms of repetition time |
86 | 79 | if cfg.pacedByTriggers.do |
87 | 80 |
|
|
99 | 92 | % Number of seconds after the end all the stimuli before ending the run |
100 | 93 | cfg.timing.endDelay = 2; |
101 | 94 |
|
102 | | - if isfield(cfg.design, 'localizer') && strcmpi(cfg.design.localizer, 'MT_MST') |
103 | | - cfg.timing.IBI = 2; |
104 | | - end |
105 | | - |
106 | 95 | end |
107 | 96 |
|
108 | 97 | %% Visual Stimulation |
|
114 | 103 | % Number of dots per visual angle square. |
115 | 104 | cfg.dot.density = 1; |
116 | 105 | % Dot life time in seconds |
117 | | - cfg.dot.lifeTime = .5; |
| 106 | + cfg.dot.lifeTime = .4; |
118 | 107 | % proportion of dots killed per frame |
119 | | - cfg.dot.proportionKilledPerFrame = 0.05; |
| 108 | + cfg.dot.proportionKilledPerFrame = 0; |
120 | 109 | % Dot Size (dot width) in visual angles. |
121 | 110 | cfg.dot.size = .2; |
122 | 111 | cfg.dot.color = cfg.color.white; |
|
126 | 115 | cfg.aperture.width = []; % if left empty it will take the screen height |
127 | 116 | cfg.aperture.xPos = 0; |
128 | 117 |
|
129 | | - if isfield(cfg.design, 'localizer') && strcmpi(cfg.design.localizer, 'MT_MST') |
130 | | - cfg.aperture.type = 'circle'; |
131 | | - cfg.aperture.width = 7; % if left empty it will take the screen height |
132 | | - cfg.aperture.xPos = cfg.design.xDisplacementAperture; |
133 | | - end |
134 | | - |
135 | 118 | %% Task(s) |
136 | 119 |
|
137 | 120 | cfg.task.name = 'visual localizer'; |
138 | | - if isfield(cfg.design, 'localizer') && strcmpi(cfg.design.localizer, 'MT_MST') |
139 | | - cfg.task.name = 'mt mst localizer'; |
140 | | - end |
141 | 121 |
|
142 | 122 | % Instruction |
143 | 123 | cfg.task.instruction = '1-Detect the RED fixation cross\n \n\n'; |
|
152 | 132 | cfg.fixation.yDisplacement = 0; |
153 | 133 |
|
154 | 134 | cfg.target.maxNbPerBlock = 1; |
155 | | - cfg.target.duration = 0.05; % In secs |
| 135 | + cfg.target.duration = 0.025; % In secs |
156 | 136 |
|
157 | 137 | cfg.extraColumns = { ... |
158 | 138 | 'direction', ... |
|
164 | 144 | 'fixationPosition', ... |
165 | 145 | 'aperturePosition'}; |
166 | 146 |
|
| 147 | + %% orverrireds the relevant fields in case we use the MT / MST localizer |
| 148 | + cfg = setParametersMtMst(cfg); |
| 149 | + |
167 | 150 | end |
168 | 151 |
|
169 | 152 | function cfg = setKeyboards(cfg) |
|
211 | 194 | cfg.screen.monitorWidth = 25; |
212 | 195 | cfg.screen.monitorDistance = 95; |
213 | 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 | + |
214 | 227 | end |
0 commit comments