def run_main_experiment():
    time_start = core.getTime()
    time_play = time_start
    order = Exp.make_random_stim_order()
    Nonethird = np.floor(len(order)/3)
    Ntwothird = np.floor(2*len(order)/3)

    t = 0
    for i in order:
        t = t+1
        print(core.getTime() -time_start)
        if t in [Nonethird,Ntwothird]:
            set_msg('Short Break!','MAIN')
            set_msg('Press return to continue','KEY')
            win.flip()
            event.waitKeys(keyList=['return','space'])
            core.wait(1) 



        s = sound_build.make_noisy_stim(i,Exp)
        scaled = np.int16(s/np.max(np.abs(s)) * 32767)
        write('test.wav', 44100, scaled)
        core.wait(time_play - core.getTime())        
        set_msg('Up or down?','MAIN')
        win.flip()        
        playsound(s,vol)
        core.wait(0.1) 
        #core.wait(0.5) #wait 500ms; but use a loop of x frames for more accurate timing in fullscreen
        thisResp = get_response()
        iscorrect = Exp.isRespCorrect(i,thisResp) # 1=correct, O=incorrect, -1=missed
        time_play =  core.getTime() + iti
        dataFile.write('%i,%i,%i\n' %(i, thisResp,iscorrect))
    dataFile.close()
def run_main_experiment():
    time_start = core.getTime()
    time_play = time_start
    order = Exp.make_random_stim_order()
    Nonethird = np.floor(len(order)/3)
    Ntwothird = np.floor(2*len(order)/3)

    Exp = exp_param.exp_param()
    rate = Exp.rate
    a = 1000 # amplitude of sounds to play (scaling sounds of rms 1)

    # plotting and playing stimuli

    R_inf = 10000
    A_broad = sb.make_act_target(Exp.RATIO[4],Exp.f0,Exp.BROAD,Exp)
    A_dark = sb.make_act_target(Exp.RATIO[4],Exp.f0,Exp.DARK,Exp)
    B_broad = sb.make_act_target(R_inf,Exp.f0,Exp.BROAD,Exp)  
    B_dark = sb.make_act_target(R_inf,Exp.f0,Exp.DARK,Exp)  

    couples = [ [A_broad,B_broad],[A_dark,B_dark]]


    t = 0
    for i in np.arange(0,100):
        t = t+1

        snr_type = random.randint(0,1)
        timbre_type = random.randint(0,1)
        AXB_type =  random.randint(0,1)
        WXZ_type =  random.randint(0,1)

        pair = couples[snr_type]
        A = pair[int(WXZ_type)]
        B = pair[int(not WXZ_type)]
        X = [A,B][AXB_type]

        blank = np.zeros((Exp.rate,1),float)
        seq = np.append(blank,A)
        seq = np.append(seq,blank)
        seq = np.append(seq,X)
        seq = np.append(seq,blank)
        seq = np.append(seq,B)
        seq = np.append(seq,blank)

        snrdb = [0,-6][snr_type]
        s = sb.add_lpnoise_at_snrdb(seq,snrdb,Exp)
        s = sound_build.make_noisy_stim(i,Exp)

        scaled = np.int16(s/np.max(np.abs(s)) * 32767)
        write('test.wav', 44100, scaled)
        core.wait(time_play - core.getTime())        
        set_msg('AAB or ABB?','MAIN')
        win.flip()        
        playsound(s,vol)
        core.wait(0.1) 
        #core.wait(0.5) #wait 500ms; but use a loop of x frames for more accurate timing in fullscreen
        thisResp = get_response()
        iscorrect = (get_response()==AXB_type)

        time_play =  core.getTime() + iti
        dataFile.write('%i,%i,%i,%i,%i,%i\n' %(snr_type,timbre_type,AXB_type,WXZ_type, thisResp,iscorrect))
    dataFile.close()