def step_impl(context, noise, t): """ :type context: behave.runner.Context :type noise: str :type t: str """ t = float(t) f = context.samprate/context.n nl = float(noise) # Noise level context.noise_level = nl sp = SelcalParams() freqs = list(sp.selcal_tones.values()) context.sfreq = [0]*int(f*t) # Initial pause dur = 0.2+4.8*random() samp = [gs.genfreq([0], dur, noise_level=nl, samprate=context.samprate)] s = dur while s < t: dur = min(t-s, 0.75+0.5*random()) freq = [choice(freqs)] samp += [gs.genfreq(freq, dur, noise_level=nl, samprate=context.samprate)] # The answer for assert i1,i2 = int(f*s), int(ceil(f*(s+dur))) context.sfreq[i1:i2] = freq*(i2-i1) s += dur dur = min(t-s, 0.2+4.8*random()) samp += [gs.genfreq([0], dur, noise_level=nl, samprate=context.samprate)] s += dur context.samp = chain(*samp)
def step_impl(context, variation): """ :type context: behave.runner.Context :type variation: str """ if len(context.freq) <= 2: d0, d1, d2, d3, d4 = context.delays[0], context.dur, 0.2, context.dur,\ context.delays[-1] if variation == 'with': context.freq = [(1 - var['tone'] * 2 * (random.random() - 0.5)) * f for f in context.freq] d0 *= random.random() d1 += var['code_dur'] * 2 * (random.random() - 0.5) d2 += var['pause_dur'] * 2 * (random.random() - 0.5) d3 += var['code_dur'] * 2 * (random.random() - 0.5) d4 *= random.random() print(d0, d1, d2, d3, d4) samp = gs.genfreq(context.freq[:2], d1, noise_level=context.noise_level, samprate=context.samprate) pause1 = gs.genfreq([0], d0, noise_level=context.noise_level, samprate=context.samprate) pause2 = gs.genfreq([0], d4, noise_level=context.noise_level, samprate=context.samprate) if len(context.freq) > 2: pause = gs.genfreq([0], d2, noise_level=context.noise_level, samprate=context.samprate) samp = chain( samp, pause, gs.genfreq(context.freq[2:], d3, noise_level=context.noise_level, samprate=context.samprate)) context.samp = chain(pause1, samp, pause2) else: context.samp = gs.genSELCALSample(''.join(context.letters), noise_level=context.noise_level, delays=context.delays, rand=(variation == 'with'), samprate=context.samprate)
def step_impl(context, variation): """ :type context: behave.runner.Context :type variation: str """ if len(context.freq) <= 2: d0, d1, d2, d3, d4 = context.delays[0], context.dur, 0.2, context.dur,\ context.delays[-1] if variation == 'with': context.freq = [(1-var['tone']*2*(random.random()-0.5))*f for f in context.freq] d0 *= random.random() d1 += var['code_dur']*2*(random.random()-0.5) d2 += var['pause_dur']*2*(random.random()-0.5) d3 += var['code_dur']*2*(random.random()-0.5) d4 *= random.random() print(d0, d1, d2, d3, d4) samp = gs.genfreq(context.freq[:2], d1, noise_level=context.noise_level, samprate=context.samprate) pause1 = gs.genfreq([0], d0, noise_level=context.noise_level, samprate=context.samprate) pause2 = gs.genfreq([0], d4, noise_level=context.noise_level, samprate=context.samprate) if len(context.freq) > 2: pause = gs.genfreq([0], d2, noise_level=context.noise_level, samprate=context.samprate) samp = chain(samp, pause, gs.genfreq(context.freq[2:], d3, noise_level=context.noise_level, samprate=context.samprate)) context.samp = chain(pause1, samp, pause2) else: context.samp = gs.genSELCALSample(''.join(context.letters), noise_level=context.noise_level, delays = context.delays, rand=(variation == 'with'), samprate=context.samprate)