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
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