diff --git a/HearingTest.py b/HearingTest.py index 0ef9d42a42c462a826ec61011b6654b2ef5bfc34..0c664ea4c4aa864cd77fc3a64e02ccebc2c7914e 100644 --- a/HearingTest.py +++ b/HearingTest.py @@ -17,6 +17,7 @@ class HearingTest: lower_lim = 0 n_blocks = 20 max_response_time = 1 # in seconds + untested_prob = 0.15 @staticmethod def block_size(): @@ -46,13 +47,21 @@ class HearingTest: return def play_next_sound(self): - # TODO allow tone outside lims with low prob? choices = [] - for i, freq in enumerate(self.freqs): - choices.extend([(freq, v) for v in - np.arange(self.lower_bounds[i]+self.block_size(), - self.upper_bounds[i], - self.block_size())]) + if random.random() < self.untested_prob: + # completely random - allows a little retesting + for freq in self.freqs: + choices.extend([(freq, v) for v in + np.arange(self.lower_lim, + self.upper_lim, + self.block_size())]) + else: + # only allow choices from untested parts + for i, freq in enumerate(self.freqs): + choices.extend([(freq, v) for v in + np.arange(self.lower_bounds[i]+self.block_size(), + self.upper_bounds[i], + self.block_size())]) freq, volume = random.choice(choices) self.library.play(freq, volume) played_time = time.time()