%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%% % I use this program to create a modified Zaidi paradigm in which there is % one a NonCardinal pulse is added to a Cardinal zaidi stimulus at a given % point and for a certain time. clear all; %close all; %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%% Calib_Dire = cd('/Users/clemente/Desktop/AfterImage Programs/002 After Image GUI Project'); load colorCalFile1.mat pix = pix/1001; %%%%%%%%%%%%%%%%%% aa = cd('/Users/clemente/Desktop/AfterImage Programs/A Outputs'); commandwindow; subName = upper(input('Subject Initials: ','s')); hfpFile = sprintf('%sHFP', subName); load(hfpFile, '-mat') hfpRG = rg_avg; hfpBG = bg_avg; % a = '/Users/clemente/Dropbox/Luminotecnia/2018/Experiments/Color Background Afterimage/1 Programs/4 ColBackg AI' ;% folder where the program is. cd(a); %%%%%%%%%%%%%%%%%% % TIMING %find frames per second ifi = 0.0118;% Measure the vertical refresh rate of the monitor % topPriorityLevel = MaxPriority(window);% Retreive the maximum priority number numSecs = 16; %in seconds, total presentation time framesPerSec = round(1/ifi); nFrames = numSecs * framesPerSec; waitframes = 1; %number of frames to wait between refresh %%%%%%%%%%%%%%%%%% Chro = [.665 1]; iChro =1; maxLum = 20; cont = 1; iCont = 1; lCont = .02; sCont = .8; %%%%%%%%%%%%%%%%%% wLMS(1,1) = Chro(iChro,1)*maxLum; wLMS(1,2) = (1-Chro(iChro,1))*maxLum; wLMS(1,3) = Chro(iChro,2)*maxLum; wXYZ(1,:) = LMS_to_XYZ(wLMS(1,:)); wRGB(1,:) = XYZ_to_RGB(wXYZ(1,:), maxPhosXYZ); wRGB(1,1) = pix(dsearchn(redProp(:), wRGB(1,1)))*hfpRG; wRGB(1,2) = pix(dsearchn(grnProp(:), wRGB(1,2))); wRGB(1,3) = pix(dsearchn(blueProp(:), wRGB(1,3)))*hfpBG; for i = 1:2 switch i case 1 l = [Chro(iChro,1)+(Chro(iChro,1)*lCont(iChro,cont(iCont))) Chro(iChro,2) maxLum Chro(iChro,1)-(Chro(iChro,1)*lCont(iChro,cont(iCont))) Chro(iChro,2) maxLum]; %+l, -l colLut = l; case 2 l_s_45 = [Chro(iChro,1)+(Chro(iChro,1)*lCont(iChro,cont(iCont))) Chro(iChro,2)+(Chro(iChro,2)*sCont(iChro,cont(iCont))) maxLum Chro(iChro,1)-(Chro(iChro,1)*lCont(iChro,cont(iCont))) Chro(iChro,2)-(Chro(iChro,2)*sCont(iChro,cont(iCont))) maxLum]; colLut = l_s_45; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for iLMS = 1:2 cLMS(iLMS,1) = colLut(iLMS,1)*colLut(iLMS, 3); cLMS(iLMS,2) = (1-colLut(iLMS,1))*colLut(iLMS, 3); cLMS(iLMS,3) = colLut(iLMS,2)*colLut(iLMS, 3); end %XYZ values for each for iXYZ = 1:length(cLMS(:,1)) cXYZ(iXYZ,:) = LMS_to_XYZ(cLMS(iXYZ,:)); end %use lut to find corrected monitor RGB values for each rgb color for iRGB = 1:length(cXYZ(:,1)) cRGB(iRGB,:) = XYZ_to_RGB(cXYZ(iRGB,:), maxPhosXYZ); cRGB(iRGB,1) = pix(dsearchn(redProp(:), cRGB(iRGB,1)))*hfpRG; cRGB(iRGB,2) = pix(dsearchn(grnProp(:), cRGB(iRGB,2))); cRGB(iRGB,3) = pix(dsearchn(blueProp(:), cRGB(iRGB,3)))*hfpBG; end rampLeft = zeros(nFrames,3); rampRight = zeros(nFrames,3); for iRamp = 1:3 %for 3 phosophors rampLeft(:,iRamp) = sinspace(wRGB(1,iRamp), cRGB(1,iRamp), nFrames); rampRight(:,iRamp) = sinspace(wRGB(1,iRamp), cRGB(2,iRamp), nFrames); end switch i case 1 left1 = rampLeft; right1 = rampRight; case 2 left2 = rampLeft; right2 = rampRight; end end %%%%%%%%%%%%%%%%%%%%%%%%%%%% % COMBINE SIGNALS %%%%%%%%%%%%%%%%%%%%%%%%%%%% left1(637:722,1:3) = left2(637:722,1:3); right1(637:722,1:3) = right2(637:722,1:3); rampLeft = left1; rampRight = right1; save('rampLeft_Combined.mat','left1') save('rampRight_Combined.mat','right1')