Revision 31:c54a34161e4a multithreshold 1.46/paradigms

View differences:

multithreshold 1.46/paradigms/paradigm_IFMC_16ms.m
1
function paradigm_IFMC_8ms(handles)
2
global stimulusParameters experiment betweenRuns
3

  
4
paradigm_training(handles) % default
5

  
6
stimulusParameters.WRVname='maskerLevel';
7
stimulusParameters.WRVstartValues=50;
8
stimulusParameters.WRVsteps= [-10 -2];
9
stimulusParameters.WRVlimits=[-30 110];
10

  
11
experiment.psyFunSlope = -1;
12
withinRuns.direction='up';
13

  
14
betweenRuns.variableName1='maskerRelativeFrequency';
15
betweenRuns.variableList1=[1       0.5       1.6   .9 .7   1.1 1.3      ];
16
betweenRuns.variableName2='targetFrequency';
17
% keep old list of target frequencies
18
betweenRuns.variableList2=str2num(get(handles.edittargetFrequency,'string'));
19
betweenRuns.randomizeSequence=1; % 'random sequence'
20

  
21
stimulusParameters.maskerDuration=0.108;
22
stimulusParameters.maskerLevel=stimulusParameters.WRVstartValues(1);
23
stimulusParameters.maskerRelativeFrequency=betweenRuns.variableList1;
24

  
25
stimulusParameters.gapDuration=0.01;
26

  
27
stimulusParameters.targetType='tone';
28
stimulusParameters.targetPhase='sin';
29
stimulusParameters.targetFrequency=betweenRuns.variableList2(1);
30
stimulusParameters.targetDuration=0.016;
31
stimulusParameters.targetLevel=NaN;
32

  
33
stimulusParameters.rampDuration=0.004;
34

  
35
% instructions to user
36
% single interval up/down no cue
37
stimulusParameters.instructions{1}=[{'YES if you hear the added click'}, { }, { 'NO if not (or you are uncertain'}];
38
% single interval up/down with cue
39
stimulusParameters.instructions{2}=[{'count how many distinct clicks you hear'},{'ignore the tones'},{' '},...
40
    {'The clicks must be **clearly distinct** to count'}];
41

  
multithreshold 1.46/paradigms/paradigm_TMC_16ms.m
1
function paradigm_TMC_16ms(handles)
2
global stimulusParameters experiment betweenRuns
3

  
4
paradigm_training(handles) % default
5

  
6
experiment.singleIntervalMaxTrials=20;
7

  
8
stimulusParameters.WRVname='maskerLevel';
9
stimulusParameters.WRVstartValues=50;
10
stimulusParameters.WRVsteps= [-10 -4];
11
stimulusParameters.WRVlimits=[-30 110];
12

  
13
stimulusParameters.cueTestDifference = 10;
14
experiment.psyFunSlope = -1;
15
withinRuns.direction='up';
16

  
17
betweenRuns.variableName1='gapDuration';
18
betweenRuns.variableList1=[.01 .09 .03 .05 .07];
19
betweenRuns.variableName2='targetFrequency';
20
% retain existing targetFrequencies
21
betweenRuns.variableList2=str2num(get(handles.edittargetFrequency,'string'));
22
betweenRuns.randomizeSequence=1; % 'random sequence'
23

  
24
stimulusParameters.maskerType='tone';
25
stimulusParameters.maskerPhase='sin';
26
stimulusParameters.maskerDuration=0.108;
27
stimulusParameters.maskerLevel=stimulusParameters.WRVstartValues(1);
28
stimulusParameters.maskerRelativeFrequency=1;
29

  
30
stimulusParameters.gapDuration=betweenRuns.variableList1;
31

  
32
stimulusParameters.targetType='tone';
33
stimulusParameters.targetPhase='sin';
34
stimulusParameters.targetFrequency=betweenRuns.variableList2(1);
35
stimulusParameters.targetDuration=0.016;
36
stimulusParameters.targetLevel=NaN;
37

  
38
stimulusParameters.rampDuration=0.004;
39

  
40
% instructions to user
41
%   single interval up/down no cue
42
stimulusParameters.instructions{1}=[{'YES if you hear the added click'}, { }, { 'NO if not (or you are uncertain'}];
43
%   single interval up/down with cue
44
stimulusParameters.instructions{2}=[{'count how many distinct clicks you hear'},{'ignore the tones'},{' '},...
45
    {'The clicks must be **clearly distinct** to count'}];
46

  
multithreshold 1.46/paradigms/paradigm_TMCmodel.m
1
function paradigm_TMCmodel(handles)
2
global stimulusParameters experiment betweenRuns
3

  
4
paradigm_training(handles) % default
5

  
6
stimulusParameters.WRVname='maskerLevel';
7
stimulusParameters.WRVstartValues=30;
8
stimulusParameters.WRVsteps= [-10 -4];
9
stimulusParameters.WRVlimits=[-30 110];
10

  
11
stimulusParameters.cueTestDifference = 10;
12
experiment.psyFunSlope = -1;
13
withinRuns.direction='up';
14

  
15
betweenRuns.variableName1='gapDuration';
16
betweenRuns.variableList1=[ 0.09 0.01:0.02:0.07 0.02:0.02:.08 0.005];
17
betweenRuns.variableName2='targetFrequency';
18
% retain existing targetFrequencies
19
betweenRuns.variableList2=str2num(get(handles.edittargetFrequency,'string'));
20
betweenRuns.randomizeSequence=1; % 'random sequence'
21

  
22
stimulusParameters.maskerType='tone';
23
stimulusParameters.maskerPhase='sin';
24
stimulusParameters.maskerDuration=0.108;
25
stimulusParameters.maskerLevel=stimulusParameters.WRVstartValues(1);
26
stimulusParameters.maskerRelativeFrequency=1;
27
experiment.singleIntervalMaxTrials=10;
28

  
29
stimulusParameters.gapDuration=betweenRuns.variableList1;
30

  
31
stimulusParameters.targetType='tone';
32
stimulusParameters.targetPhase='sin';
33
stimulusParameters.targetFrequency=betweenRuns.variableList2(1);
34
stimulusParameters.targetDuration=0.016;
35
stimulusParameters.targetLevel=NaN;
36

  
37
stimulusParameters.rampDuration=0.004;
38

  
39
% instructions to user
40
%   single interval up/down no cue
41
stimulusParameters.instructions{1}=[{'YES if you hear the added click'}, { }, { 'NO if not (or you are uncertain'}];
42
%   single interval up/down with cue
43
stimulusParameters.instructions{2}=[{'count how many distinct clicks you hear'},{'ignore the tones'},{' '},...
44
    {'The clicks must be **clearly distinct** to count'}];
45

  
multithreshold 1.46/paradigms/paradigm_absThreshold_8.m
1
function paradigm_absThreshold_8(handles)
2
global stimulusParameters experiment betweenRuns
3

  
4
paradigm_training(handles) % default
5

  
6
betweenRuns.variableName1='targetFrequency';
7
betweenRuns.variableList1=1000;
8
betweenRuns.variableList1=str2num(get(handles.edittargetFrequency,'string'));
9
betweenRuns.variableName2='targetDuration';
10
betweenRuns.variableList2=0.008 ;
11
betweenRuns.randomizeSequence=1; % 'random sequence'
12

  
13
% delay > masker > gap > target
14

  
15

  
16
stimulusParameters.targetType='tone';
17
stimulusParameters.targetPhase='sin';
18
stimulusParameters.targetFrequency=1000;
19
stimulusParameters.targetDuration=0.008;
20
stimulusParameters.targetLevel=stimulusParameters.WRVstartValues(1);
21

  
22
stimulusParameters.rampDuration=0.004;
23

  
24
% forced choice window interval
25
stimulusParameters.AFCsilenceDuration=0.5;
26

  
27
% instructions to user
28
%   single interval up/down no cue
29
stimulusParameters.instructions{1}= [{'YES if you hear the tone clearly'}, { }, { 'NO if not (or you are uncertain'}];
30
%   single interval up/down with cue
31
stimulusParameters.instructions{2}= [{'count the tones you hear clearly'}, { }, { 'ignore indistinct tones'}];
32

  
multithreshold 1.46/paradigms/paradigm_thr_IFMC.m
1
function paradigm_thr_IFMC(handles)
2
global stimulusParameters experiment betweenRuns
3

  
4
paradigm_training(handles) % default
5

  
6
betweenRuns.variableName1='targetFrequency';
7
betweenRuns.variableList1=1000;
8
betweenRuns.variableList1=str2num(get(handles.edittargetFrequency,'string'));
9
betweenRuns.variableName2='targetDuration';
10
betweenRuns.variableList2=0.016;
11
betweenRuns.randomizeSequence=1; % 'random sequence'
12

  
13
% delay > masker > gap > target
14

  
15

  
16
stimulusParameters.targetType='tone';
17
stimulusParameters.targetPhase='sin';
18
stimulusParameters.targetFrequency=1000;
19
stimulusParameters.targetDuration=0.016;
20
stimulusParameters.targetLevel=stimulusParameters.WRVstartValues(1);
21

  
22
stimulusParameters.rampDuration=0.004;
23

  
24
experiment.stopCriteria2IFC=[75 3 5];
25
experiment.singleIntervalMaxTrials=[20];
26

  
27

  
28
% forced choice window interval
29
stimulusParameters.AFCsilenceDuration=0.5;
30

  
31
% instructions to user
32
%   single interval up/down no cue
33
stimulusParameters.instructions{1}= [{'YES if you hear the tone clearly'}, { }, { 'NO if not (or you are uncertain'}];
34
%   single interval up/down with cue
35
stimulusParameters.instructions{2}= [{'count the tones you hear clearly'}, { }, { 'ignore indistinct tones'}];
36

  
multithreshold 1.46/paradigms/paradigm_thr_TMC.m
1
function paradigm_thr_TMC(handles)
2
global stimulusParameters experiment betweenRuns
3

  
4
paradigm_training(handles) % default
5

  
6
betweenRuns.variableName1='targetFrequency';
7
betweenRuns.variableList1=1000;
8
betweenRuns.variableList1=str2num(get(handles.edittargetFrequency,'string'));
9
betweenRuns.variableName2='targetDuration';
10
betweenRuns.variableList2=0.016;
11
betweenRuns.randomizeSequence=1; % 'random sequence'
12

  
13
% delay > masker > gap > target
14

  
15

  
16
stimulusParameters.targetType='tone';
17
stimulusParameters.targetPhase='sin';
18
stimulusParameters.targetFrequency=1000;
19
stimulusParameters.targetDuration=0.016;
20
stimulusParameters.targetLevel=stimulusParameters.WRVstartValues(1);
21

  
22
stimulusParameters.rampDuration=0.004;
23

  
24
experiment.stopCriteria2IFC=[75 3 5];
25
experiment.singleIntervalMaxTrials=[20];
26

  
27

  
28
% forced choice window interval
29
stimulusParameters.AFCsilenceDuration=0.5;
30

  
31
% instructions to user
32
%   single interval up/down no cue
33
stimulusParameters.instructions{1}= [{'YES if you hear the tone clearly'}, { }, { 'NO if not (or you are uncertain'}];
34
%   single interval up/down with cue
35
stimulusParameters.instructions{2}= [{'count the tones you hear clearly'}, { }, { 'ignore indistinct tones'}];
36

  
multithreshold 1.46/paradigms/reserve team/OHIOthresholds.m
1
function experiment=OHIOthresholds(experiment)
2

  
3
experiment.OHIOfrequencies=[494, 663, 870, 1125, 1442, 1838, 2338, 2957, 3725, 4680, 5866,  7334]; %Hz.
4
% User must specify abs thresholds (dB SPL) of each tone frequency
5
experiment.OHIOthresholds= [
6
    9.1	8.6	8.1	7.9	9.8	10.5	13.5	15.0	17.4	19.4	22.6	25.2
7
];
multithreshold 1.46/paradigms/reserve team/paradigm_OHIOabs.m
1
function paradigm_OHIOabs(handles)
2
global stimulusParameters experiment betweenRuns
3

  
4
paradigm_training(handles) % default
5

  
6
% find the  threshold for a tonecomplex  consisting of a sequence of 10-ms tones
7
%   whose frequencies are chosen at random from a list (OHIOfrequencies)
8
% All tones are presented at the same level (SL) computed using absolute
9
%   threshols specified in OHIOthresholds;
10
% The duration of the complex is increased across runs and the number of tones is
11
%   controlled by OHIOdurations, (for each 20 ms a further tone is added.
12
% The frequency of the tones is changed on each trial
13

  
14
experiment.OHIOfrequencies=[494, 663, 870, 1125, 1442, 1838, 2338, 2957, 3725, 4680, 5866,  7334]; %Hz.
15
% User must specify abs thresholds (dB SPL) of each tone frequency
16
% experiment.OHIOthresholds= [18	16	16	19	20	22	24	26	27	30	32	35];
17

  
18
%  assessment method
19
% {'oneIntervalUpDown', 'MaxLikelihood', '2I2AFC++', '2I2AFC+++'}
20
experiment.threshEstMethod='oneIntervalUpDown';
21
% {'cued', 'noCue'};
22

  
23
stimulusParameters.WRVname='targetLevel';
24
stimulusParameters.WRVstartValues=20 ;
25
stimulusParameters.WRVsteps=[10 2];
26
stimulusParameters.WRVlimits=[-30 110];
27

  
28
betweenRuns.variableName1='numOHIOtones';
29
betweenRuns.variableList1= 1:12; % i.e. the frequency to be used
30
betweenRuns.variableName2='stimulusDelay';
31
betweenRuns.variableList2=0.05;
32
betweenRuns.randomizeSequence=2; % not random sequence
33

  
34
stimulusParameters.targetType='OHIO';
35
stimulusParameters.targetPhase='sin';
36
stimulusParameters.targetFrequency=experiment.OHIOfrequencies;
37
stimulusParameters.targetDuration=0.01; % overruled by OHIO program
38
stimulusParameters.targetLevel=stimulusParameters.WRVstartValues(1);
39

  
40
stimulusParameters.rampDuration=0.005;
41

  
42
% instructions to user
43
%   single interval up/down no cue
44
stimulusParameters.instructions{1}= [{'YES if you hear the tone clearly'}, { }, { 'NO if not (or you are uncertain'}];
45
%   single interval up/down with cue
46
stimulusParameters.instructions{2}= [{'count the tones you hear clearly'}, { }, { 'ignore indistinct tones'}];
47

  
multithreshold 1.46/paradigms/reserve team/paradigm_OHIOrand.m
1
function paradigm_OHIOrand(handles)
2
global stimulusParameters experiment betweenRuns
3

  
4
paradigm_training(handles) % default
5

  
6
% find the  threshold for a tonecomplex  consisting of a sequence of 10-ms tones
7
%   whose frequencies are chosen at random from a list (OHIOfrequencies)
8
% All tones are presented at the same level (SL) computed using absolute
9
%   threshols specified in OHIOthresholds;
10
% The duration of the complex is increased across runs and the number of tones is
11
%   controlled by OHIOdurations, (for each 20 ms a further tone is added.
12
% The frequency of the tones is changed on each trial
13

  
14
% fetch thresholds and frequencies
15
experiment=OHIOthresholds(experiment);
16

  
17
stimulusParameters.WRVname='targetLevel';
18
stimulusParameters.WRVstartValues=0 ;
19
stimulusParameters.WRVsteps=[10 2];
20
stimulusParameters.WRVlimits=[-30 110];
21

  
22
betweenRuns.variableName1='numOHIOtones';
23
betweenRuns.variableList1= [1 2 4 8 12];
24
betweenRuns.variableName2='stimulusDelay';
25
betweenRuns.variableList2=0.1;
26
betweenRuns.randomizeSequence=2; % not random sequence
27

  
28
stimulusParameters.targetType='OHIO';
29
stimulusParameters.targetPhase='sin';
30
stimulusParameters.targetFrequency=experiment.OHIOfrequencies;
31
stimulusParameters.targetDuration=betweenRuns.variableList2;
32
stimulusParameters.targetLevel=stimulusParameters.WRVstartValues(1);
33

  
34
stimulusParameters.rampDuration=0.005;
35

  
36
% instructions to user
37
%   single interval up/down no cue
38
stimulusParameters.instructions{1}= [{'YES if you hear the tone clearly'}, { }, { 'NO if not (or you are uncertain'}];
39
%   single interval up/down with cue
40
stimulusParameters.instructions{2}= [{'count the tones you hear clearly'}, { }, { 'ignore indistinct tones'}];
41

  
multithreshold 1.46/paradigms/reserve team/paradigm_OHIOspect.m
1
function paradigm_OHIOspect(handles)
2
global stimulusParameters experiment betweenRuns
3

  
4
paradigm_training(handles) % default
5

  
6
% find the  threshold for a tonecomplex  consisting of a sequence of 10-ms tones
7
%   whose frequencies are chosen at random from a list (OHIOfrequencies)
8
% All tones are presented at the same level (SL) computed using absolute
9
%   threshols specified in OHIOthresholds;
10
% The duration of the complex is increased across runs and the number of tones is
11
%   controlled by OHIOdurations, (for each 20 ms a further tone is added.
12
% The frequency of the tones is changed on each trial
13

  
14
% fetch thresholds and frequencies
15
experiment=OHIOthresholds(experiment);
16

  
17
stimulusParameters.WRVname='targetLevel';
18
stimulusParameters.WRVstartValues=0 ;
19
stimulusParameters.WRVsteps=[10 2];
20
stimulusParameters.WRVlimits=[-30 110];
21

  
22
betweenRuns.variableName1='numOHIOtones';
23
betweenRuns.variableList1= [1 2 4 8 12];
24
betweenRuns.variableName2='stimulusDelay';
25
betweenRuns.variableList2=0.1;
26
betweenRuns.randomizeSequence=2; % not random sequence
27

  
28
stimulusParameters.targetType='OHIO';
29
stimulusParameters.targetPhase='sin';
30
stimulusParameters.targetFrequency=experiment.OHIOfrequencies;
31
stimulusParameters.targetDuration=betweenRuns.variableList2;
32
stimulusParameters.targetLevel=stimulusParameters.WRVstartValues(1);
33

  
34
stimulusParameters.rampDuration=0.005;
35

  
36
% instructions to user
37
%   single interval up/down no cue
38
stimulusParameters.instructions{1}= [{'YES if you hear the tone clearly'}, { }, { 'NO if not (or you are uncertain'}];
39
%   single interval up/down with cue
40
stimulusParameters.instructions{2}= [{'count the tones you hear clearly'}, { }, { 'ignore indistinct tones'}];
41

  
multithreshold 1.46/paradigms/reserve team/paradigm_OHIOspectemp.m
1
function paradigm_OHIOspectemp(handles)
2
global stimulusParameters experiment betweenRuns
3

  
4
paradigm_training(handles) % default
5

  
6
% find the  threshold for a tonecomplex  consisting of a sequence of 10-ms tones
7
%   whose frequencies are chosen at random from a list (OHIOfrequencies)
8
% All tones are presented at the same level (SL) computed using absolute
9
%   threshols specified in OHIOthresholds;
10
% The duration of the complex is increased across runs and the number of tones is
11
%   controlled by OHIOdurations, (for each 20 ms a further tone is added.
12
% The frequency of the tones is changed on each trial
13

  
14
% fetch thresholds and frequencies
15
experiment=OHIOthresholds(experiment);
16

  
17
stimulusParameters.WRVname='targetLevel';
18
stimulusParameters.WRVstartValues=0 ;
19
stimulusParameters.WRVsteps=[10 2];
20
stimulusParameters.WRVlimits=[-30 110];
21

  
22
betweenRuns.variableName1='numOHIOtones';
23
betweenRuns.variableList1= [1 2 4 8 12];
24
betweenRuns.variableName2='stimulusDelay';
25
betweenRuns.variableList2=0.1;
26
betweenRuns.randomizeSequence=2; % not random sequence
27

  
28
stimulusParameters.targetType='OHIO';
29
stimulusParameters.targetPhase='sin';
30
stimulusParameters.targetFrequency=experiment.OHIOfrequencies;
31
stimulusParameters.targetDuration=betweenRuns.variableList2;
32
stimulusParameters.targetLevel=stimulusParameters.WRVstartValues(1);
33

  
34
stimulusParameters.rampDuration=0.005;
35

  
36
% instructions to user
37
%   single interval up/down no cue
38
stimulusParameters.instructions{1}= [{'YES if you hear the tone clearly'}, { }, { 'NO if not (or you are uncertain'}];
39
%   single interval up/down with cue
40
stimulusParameters.instructions{2}= [{'count the tones you hear clearly'}, { }, { 'ignore indistinct tones'}];
multithreshold 1.46/paradigms/reserve team/paradigm_OHIOtemp.m
1
function paradigm_OHIOtemp(handles)
2
global stimulusParameters experiment betweenRuns
3

  
4
paradigm_training(handles) % default
5

  
6
% find the  threshold for a tonecomplex  consisting of a sequence of 10-ms tones
7
%   whose frequencies are chosen at random from a list (OHIOfrequencies)
8
% All tones are presented at the same level (SL) computed using absolute
9
%   threshols specified in OHIOthresholds;
10
% The duration of the complex is increased across runs and the number of tones is
11
%   controlled by OHIOdurations, (for each 20 ms a further tone is added.
12
% The frequency of the tones is changed on each trial
13

  
14
% fetch thresholds and frequencies
15
experiment=OHIOthresholds(experiment);
16

  
17
stimulusParameters.WRVname='targetLevel';
18
stimulusParameters.WRVstartValues=0 ;
19
stimulusParameters.WRVsteps=[10 2];
20
stimulusParameters.WRVlimits=[-30 110];
21
% target variable: slope=1, start going down.
22
stimulusParameters.cueTestDifference=10;
23
experiment.psyFunSlope= 1;
24
withinRuns.direction='down';
25

  
26
betweenRuns.variableName1='numOHIOtones';
27
betweenRuns.variableList1= [1 2 4 8 12];
28
betweenRuns.variableName2='stimulusDelay';
29
betweenRuns.variableList2=0.1;
30
betweenRuns.randomizeSequence=2; % not random sequence
31

  
32
stimulusParameters.targetType='OHIO';
33
stimulusParameters.targetPhase='sin';
34
stimulusParameters.targetFrequency=experiment.OHIOfrequencies;
35
stimulusParameters.targetDuration=betweenRuns.variableList2;
36
stimulusParameters.targetLevel=stimulusParameters.WRVstartValues(1);
37

  
38
stimulusParameters.rampDuration=0.005;
39

  
40
% instructions to user
41
%   single interval up/down no cue
42
stimulusParameters.instructions{1}= [{'YES if you hear the tone clearly'}, { }, { 'NO if not (or you are uncertain'}];
43
%   single interval up/down with cue
44
stimulusParameters.instructions{2}= [{'count the tones you hear clearly'}, { }, { 'ignore indistinct tones'}];

Also available in: Unified diff