Commit 52c1b325 authored by kinuthia's avatar kinuthia
Browse files

update python scripts for directivity

- Add binary generation of rend_config_renderer_directivity.dat
- Minor fix for parsing directivity in text_to_binary_payload.py
- Add cfg not pointing to binary file
parent b4f9aefa
Loading
Loading
Loading
Loading
Loading
+51 −0
Original line number Diff line number Diff line
@@ -571,6 +571,55 @@ def generate_reverb_payload_equivalent_to_rend_config_renderer_cfg_plus_early_re
    data.tofile(file)
    file.close()

def generate_reverb_payload_equivalent_to_rend_config_renderer_directivity_cfg():
    # based on rend_config_renderer_directivity.cfg
    # note that because of encoding, resolution is lost and behaviour may not be bit-exact compared to .cfg file based values
    data = bitarray(
        '1'                                       # hasAcEnv
        + get_count_or_index_code(1)              # fgdNrGrids
        + fgdMethod.Individual_Frequencies.value  #   fgdMethod
        + get_count_or_index_code(31)             #     fgdNrBands

        + concatenate(get_frequency_code,         #       fgdCenterFreq
            [    20.0,   25.0,   31.5,   40.0,   50.0,   63.0,   80.0,   100.0,   125.0,   160.0,
                200.0,  250.0,  315.0,  400.0,  500.0,  630.0,  800.0,  1000.0,  1250.0,  1600.0,
               2000.0, 2500.0, 3150.0, 4000.0, 5000.0, 6300.0, 8000.0, 10000.0, 12500.0, 16000.0,
              20000.0 ]) 
                                            
        + get_count_or_index_code(1)              # AcousticEnvCount
        + get_id_code(0)                          #   ID
        + get_count_or_index_code(0)              #   FreqGridID
        + get_duration_code(0.1)              #   (input)Predelay

        + concatenate(get_duration_code,          #     RT60
            [   1.3622, 1.4486, 1.3168, 1.5787,
                1.4766, 1.3954, 1.2889, 1.3462,
                1.0759, 1.0401, 1.0970, 1.0850,
                1.0910, 1.0404, 1.0499, 1.0699,
                1.1028, 1.1714, 1.1027, 1.0666,
                1.0550, 1.0553, 1.0521, 1.0569,
                1.0421, 0.97822, 0.80487, 0.75944,
                0.71945, 0.61682, 0.60031 ])

        + concatenate(get_dsr_code,               #     DSR
            [   1.9952632e-08, 1.9952632e-08, 1.2589251e-08, 1.5848926e-08, 1.2589251e-08, 1.9952632e-08, 2.511887e-08, 3.9810708e-08, 1e-07, 1.9952633e-07,
                3.981071e-07, 6.3095763e-07, 7.943284e-07, 6.3095763e-07, 5.01187e-07, 5.01187e-07, 6.3095763e-07, 6.3095763e-07, 7.943284e-07, 6.3095763e-07,
                5.01187e-07, 6.3095763e-07, 6.3095763e-07, 6.3095763e-07, 5.01187e-07, 2.511887e-07, 1.2589251e-07, 1e-07, 6.309576e-08, 3.1622776e-08,
                2.511887e-08 ])

        + '0'                                     #   hasEarlyReflections
        + '1'                                     #   hasDirectivity
        + get_id_code(1)                          #   Number of directivity patterns
        + get_id_code(0)                          #   directivity ID
        + get_angle_code(0.0)
        + get_angle_code(360.0)
        + get_outer_attenuation_code(0.2512)
        , endian='big')

    file = open('rend_config_renderer_directivity.dat', 'wb')
    data.tofile(file)
    file.close()


def generate_reverb_payload_equivalent_to_rend_config_hospital_patientroom_cfg():
    # based on config_hospital_patientroom.cfg
@@ -659,6 +708,8 @@ if __name__ == "__main__":
    generate_reverb_payload_equivalent_to_rend_config_renderer_cfg()
    generate_reverb_payload_equivalent_to_rend_config_hospital_patientroom_cfg()
    generate_reverb_payload_equivalent_to_rend_config_recreation_cfg()
    generate_reverb_payload_equivalent_to_rend_config_renderer_directivity_cfg()
    

    #generate_reverb_payload_equivalent_to_rend_config_renderer_cfg_plus_early_reflections_no_listener_origin()
    #generate_reverb_payload_equivalent_to_rend_config_renderer_cfg_plus_early_reflections_listener_origin()
+1 −1
Original line number Diff line number Diff line
@@ -152,7 +152,7 @@ def parse_reverb_text_configuration_and_generate_binary_payload(file):


    # parse directivity settings
    if 'directivitySetting' in sections:
    if sections['directivitySetting']:
        directivityCount = eval_option(sections['directivitySetting']['directivityCount'])
        assert directivityCount == len(sections['directivityPattern'])

+6 −0
Original line number Diff line number Diff line
@@ -31,5 +31,11 @@ dsr = [1.9952632e-08, 1.9952632e-08, 1.2589251e-08, 1.5848926e-08, 1.2589251e-0
        5.01187e-07, 6.3095763e-07, 6.3095763e-07, 6.3095763e-07, 5.01187e-07, 2.511887e-07, 1.2589251e-07, 1e-07, 6.309576e-08, 3.1622776e-08,
        2.511887e-08];

[directivitySetting]
directivityCount = 1;

[directivityPattern:0]
directivity = [0.0, 360.0, 0.2512]

[general]
reverbFile = rend_config_renderer_directivity.dat;
+38 −0
Original line number Diff line number Diff line
[roomAcoustics]
frequencyGridCount = 1;
acousticEnvironmentCount = 1;

[frequencyGrid:0]
method = individualFrequencies;
nrBands = 31;
frequencies  = [20.0, 25.0, 31.5, 40.0,
                50.0, 63.0, 80.0, 100.0,
                125.0, 160.0, 200.0, 250.0,
                315.0, 400.0, 500.0, 630.0,
                800.0, 1000.0, 1250.0, 1600.0,
                2000.0, 2500.0, 3150.0, 4000.0,
                5000.0, 6300.0, 8000.0, 10000.0,
                12500.0, 16000.0, 20000.0];

[acousticEnvironment:0]
frequencyGridIndex = 0;
predelay = 0.1;
rt60 = [1.3622, 1.4486, 1.3168, 1.5787,
        1.4766, 1.3954, 1.2889, 1.3462,
        1.0759, 1.0401, 1.0970, 1.0850,
        1.0910, 1.0404, 1.0499, 1.0699,
        1.1028, 1.1714, 1.1027, 1.0666,
        1.0550, 1.0553, 1.0521, 1.0569,
        1.0421, 0.97822, 0.80487, 0.75944,
        0.71945, 0.61682, 0.60031];

dsr  = [1.9952632e-08, 1.9952632e-08, 1.2589251e-08, 1.5848926e-08, 1.2589251e-08, 1.9952632e-08, 2.511887e-08, 3.9810708e-08, 1e-07, 1.9952633e-07,
        3.981071e-07, 6.3095763e-07, 7.943284e-07, 6.3095763e-07, 5.01187e-07, 5.01187e-07, 6.3095763e-07, 6.3095763e-07, 7.943284e-07, 6.3095763e-07,
        5.01187e-07, 6.3095763e-07, 6.3095763e-07, 6.3095763e-07, 5.01187e-07, 2.511887e-07, 1.2589251e-07, 1e-07, 6.309576e-08, 3.1622776e-08,
        2.511887e-08];

[directivitySetting]
directivityCount = 1;

[directivityPattern:0]
directivity = [0.0, 360.0, 0.2512]