Exemple #1
0
def render_sim(model,synth,time_length,synth_step):
    sim_length = time_length*44100
    out = np.zeros(sim_length,dtype=np.float32)
    steps = sim_length/synth_step
    synth.t_max=synth_step
    pos = 0
    th = thumb.thumb(steps,model.size(),10)
    for i in range(0,steps):
        for p in range(0,synth_step):
            out[pos]=synth.render()
            pos+=1
        th.render(model)
        synth.update(combined_array(model))
        model.step()
        #time.sleep(1)

    return out,th
Exemple #2
0
def render_blipsim(model,blip,time_length):
    sim_length = int(time_length*44100)
    out = np.zeros(sim_length,dtype=np.float32)
    steps = sim_length/blip.bar_length/2
    skip = 20
    th = thumb.thumb(steps*skip,model.size(),10)

    # check by pre-running for a bit
    pre_run = 100
    for i in range(0,pre_run):
        model.step()
        time.sleep(0.3)

    blip.update(parasite_state_array(model))
    if len(blip.blips)<2: 
        print("only one parasite strain, rejecting")
        return False,False
    #blip.update(host_state_array(model))
    #if len(blip.blips)<2: return False,False
    
    # restart everything
    model.init()
    blip.init()

    for i in range(0,steps):
        blip.update(parasite_state_array(model))
        blip.render(out,"PING")
        blip.update(host_state_array(model))
        blip.render(out,"PING")

        for i in range(0,skip):
            th.render(model)
            model.step()
            if model.is_extinct():
                print("extinct, rejecting")
                return False,False
            time.sleep(0.3)

    return out,th