rmeddis@38: function MAPrunner(MAPparamsName, AN_spikesOrProbability, ... rmeddis@38: signalCharacteristics, paramChanges, showMapOptions) rmeddis@38: rmeddis@38: dbstop if error rmeddis@38: restorePath=path; rmeddis@38: addpath (['..' filesep 'MAP'], ['..' filesep 'wavFileStore'], ... rmeddis@38: ['..' filesep 'utilities']) rmeddis@38: rmeddis@38: rmeddis@38: %% #3 pure tone, harmonic sequence or speech file input rmeddis@38: signalType= signalCharacteristics.type; rmeddis@38: sampleRate= signalCharacteristics.sampleRate; rmeddis@38: duration=signalCharacteristics.duration; % seconds rmeddis@38: rampDuration=signalCharacteristics.rampDuration; % raised cosine ramp (seconds) rmeddis@38: beginSilence=signalCharacteristics.beginSilence; rmeddis@38: endSilence=signalCharacteristics.endSilence; rmeddis@38: toneFrequency= signalCharacteristics.toneFrequency; % or a pure tone (Hz) rmeddis@38: leveldBSPL=signalCharacteristics.leveldBSPL; rmeddis@38: rmeddis@38: BFlist=-1; rmeddis@38: rmeddis@38: rmeddis@38: %% Generate stimuli rmeddis@38: rmeddis@38: switch signalType rmeddis@38: case 'tones' rmeddis@38: % Create pure tone stimulus rmeddis@38: dt=1/sampleRate; % seconds rmeddis@38: time=dt: dt: duration; rmeddis@38: inputSignal=sum(sin(2*pi*toneFrequency'*time), 1); rmeddis@38: amp=10^(leveldBSPL/20)*28e-6; % converts to Pascals (peak) rmeddis@38: inputSignal=amp*inputSignal; rmeddis@38: % apply ramps rmeddis@38: % catch rampTime error rmeddis@38: if rampDuration>0.5*duration, rampDuration=duration/2; end rmeddis@38: rampTime=dt:dt:rampDuration; rmeddis@38: ramp=[0.5*(1+cos(2*pi*rampTime/(2*rampDuration)+pi)) ... rmeddis@38: ones(1,length(time)-length(rampTime))]; rmeddis@38: inputSignal=inputSignal.*ramp; rmeddis@38: ramp=fliplr(ramp); rmeddis@38: inputSignal=inputSignal.*ramp; rmeddis@38: % add silence rmeddis@38: intialSilence= zeros(1,round(beginSilence/dt)); rmeddis@38: finalSilence= zeros(1,round(endSilence/dt)); rmeddis@38: inputSignal= [intialSilence inputSignal finalSilence]; rmeddis@38: rmeddis@38: case 'file' rmeddis@38: %% file input simple or mixed rmeddis@38: [inputSignal sampleRate]=wavread(fileName); rmeddis@38: dt=1/sampleRate; rmeddis@38: inputSignal=inputSignal(:,1); rmeddis@38: targetRMS=20e-6*10^(leveldBSPL/20); rmeddis@38: rms=(mean(inputSignal.^2))^0.5; rmeddis@38: amp=targetRMS/rms; rmeddis@38: inputSignal=inputSignal*amp; rmeddis@38: intialSilence= zeros(1,round(0.1/dt)); rmeddis@38: finalSilence= zeros(1,round(0.2/dt)); rmeddis@38: inputSignal= [intialSilence inputSignal' finalSilence]; rmeddis@38: end rmeddis@38: rmeddis@38: rmeddis@38: %% run the model rmeddis@38: rmeddis@38: MAP1_14(inputSignal, sampleRate, BFlist, ... rmeddis@38: MAPparamsName, AN_spikesOrProbability, paramChanges); rmeddis@38: rmeddis@38: %% the model run is now complete. Now display the results rmeddis@38: UTIL_showMAP(showMapOptions, paramChanges) rmeddis@38: rmeddis@38: path(restorePath) rmeddis@38: