Beispiel #1
0
def test_test_equalization():
    freefield.initialize(setup="dome", default="play_rec", camera=None)
    _, filename = tempfile.mkstemp()
    freefield.equalize_speakers(file_name=filename)
    freefield.load_equalization(filename)
    raw, leve, full = freefield.test_equalization()
    freefield.spectral_range(raw)
Beispiel #2
0
def test_initialize():
    for default in [
            'play_rec', 'play_birec', 'loctest_freefield',
            'loctest_headphones', 'cam_calibration'
    ]:
        setup = np.random.choice(["dome", "arc"])
        freefield.initialize(setup=setup, default=default)
Beispiel #3
0
def test_apply_equalization():
    freefield.initialize(setup="dome", default="play_rec", camera=None)
    sound = slab.Sound.whitenoise()
    speaker = numpy.random.choice(freefield.SPEAKERS)
    numpy.testing.assert_raises(ValueError, freefield.apply_equalization,
                                sound, speaker)
    _, filename = tempfile.mkstemp()
    freefield.equalize_speakers(file_name=filename)
    freefield.load_equalization(filename)
    equalized = freefield.apply_equalization(sound, speaker)
    assert isinstance(equalized, slab.Sound)
Beispiel #4
0
def test_calibrate_camera():
    for _ in range(5):
        freefield.initialize(setup="dome",
                             default="cam_calibration",
                             camera=None)
        n_cams = numpy.random.randint(1, 4)
        freefield.CAMERAS = VirtualCam(n_cams=n_cams)
        n_reps, n_images = numpy.random.randint(1,
                                                5), numpy.random.randint(1, 5)
        speakers = freefield.all_leds()
        freefield.calibrate_camera(speakers, n_reps, n_images)
        cams = freefield.CAMERAS.calibration.keys()
        assert len(cams) == n_cams
        speakers = freefield.pick_speakers([1, 2, 3, 4, 5])
        numpy.testing.assert_raises(ValueError, freefield.calibrate_camera,
                                    speakers, n_reps, n_images)
        freefield.calibrate_camera_no_visual(speakers, n_reps, n_images)
Beispiel #5
0
def test_play_and_record():
    sound = slab.Sound.whitenoise()
    freefield.initialize(setup="dome", default="play_rec", camera=None)
    for speaker in freefield.SPEAKERS:
        rec = freefield.play_and_record(speaker,
                                        sound,
                                        compensate_delay=True,
                                        equalize=False)
        assert rec.n_samples == sound.n_samples
        assert rec.n_channels == 1
    freefield.initialize(setup="dome", default="play_birec", camera=None)
    for speaker in freefield.SPEAKERS:
        rec = freefield.play_and_record(speaker,
                                        sound,
                                        compensate_delay=True,
                                        equalize=False)
        assert rec.n_samples == sound.n_samples
        assert rec.n_channels == 2
Beispiel #6
0
def test_pick_speakers():
    for setup in ["dome", "arc"]:
        freefield.initialize(setup=setup, default="play_rec", camera=None)
        indices = [s.index for s in freefield.SPEAKERS]
        coordinates = [(s.azimuth, s.elevation) for s in freefield.SPEAKERS]
        for _ in range(100):
            n_picks = numpy.random.randint(0, 47)
            picks = numpy.random.choice(indices, n_picks, replace=False)
            speakers = freefield.pick_speakers(picks)
            assert len(speakers) == n_picks
            assert [s.index for s in speakers].sort() == picks.sort()
            idx = np.random.randint(47, size=2)
            idx.sort()
            picks = coordinates[idx[0]:idx[1]]
            n_picks = len(picks)
            speakers = freefield.pick_speakers(picks)
            assert len(speakers) == n_picks
            assert [(s.azimuth, s.elevation)
                    for s in speakers].sort() == picks.sort()
            picks = numpy.random.choice(freefield.SPEAKERS,
                                        n_picks,
                                        replace=False)
            speakers = freefield.pick_speakers(picks)
            assert all(speakers == picks)
Beispiel #7
0
def test_equalizing():
    freefield.initialize(setup="dome", default="play_rec", camera=None)
    sound = slab.Sound.chirp(duration=0.05,
                             from_frequency=100,
                             to_frequency=20000)
    speakers = numpy.random.choice(freefield.SPEAKERS,
                                   numpy.random.randint(1, 47),
                                   replace=False)
    target_speaker = numpy.random.choice(freefield.SPEAKERS)
    levels = freefield._level_equalization(speakers,
                                           sound,
                                           target_speaker,
                                           threshold=80)
    assert len(levels) == len(speakers)
    levels = freefield._level_equalization(speakers,
                                           sound,
                                           target_speaker,
                                           threshold=100)
    assert all(levels == 1)
    filter_bank, _ = freefield._frequency_equalization(speakers, sound,
                                                       target_speaker, levels,
                                                       1 / 8, 200, 20000, 1.0,
                                                       80)
    assert filter_bank.n_channels