Harktool4 closing abruptly

HARK FORUM Harktool4 closing abruptly

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
  • #851
    Rohan sheelvant

    I am using Harktool4 for generating a transfer function for a 4 mic circular array.

    In Harktool4 software the Mic array option, I choose a distance of 0.50m, elevation-16.70, and as I am using a mic array of 4 mics, I set the azimuth to be 0 – 270 at Interval of 90.

    The mic array that I am using gives a 6 channel output out of which only 4 are actually relevant as they contain the audio data of 4 mics. Therefore in the channel list, I entered channels: 1,2,3,4 (these are the channels I need). On clicking create, there is no error shown but if I click Plot then the harktool4 software will close automatically giving an error in terminal(mentioned below).


    terminate called after throwing an instance of ‘std::range_error’
    what(): length of given vector is zero
    Aborted (core dumped)

    I am attaching screenshots for your reference. Can you please let me know if I have made any mistake in entering the parameters.

    PS: If I select the channels as 0,1,2,3 then the software works fine and I am able to generate the transfer function.

    Rohan sheelvant

    Attached is the screenshot of the terminal error.


    Thank you for your inquiry.

    When creating a transfer function, microphone array configuration starts from 0.
    So selecting the channels as 0,1,2,3 is correct.
    This will use the four-channel stream created from channels 1, 2, 3, and 4.

    Best Regards.

    Rohan sheelvant

    Yes, I understand that if I select 0,1,2,3 then channels 1,2,3,4 will be used.

    But I want to use 2nd, 3rd, 4th and 5th channel of the 6 available channels.

    So, how do I proceed?


    There are 2 cases in creating transfer function depending on your setup.

    Case1: Geometric transfer function
    The position and the number of microphones that actually exists must be set in the HARKTOOL’s channel list. Since ReSpeaker Mic Array only has 4 microphones, it will create a 4-channel transfer function.

    Case2: TSP transfer function.
    The number of microphones used must be set in HARKTOOL’s channel list. But since the TSP sound recorded by ReSpeaker Mic Array has 6 channels, the WAV files input to HARKTOOL must exclude 0 and 5 channels beforehand. To do this, for example if you use a tool called ‘sox’, this can be done by executing the following command:

    sox input.wav output.wav remix 2 3 4 5

    Note that the channel number starts with 1 in sox, while in HARK it starts with 0.

    In HARK, the 6 channels of data coming from AudioStreamFromMic can be filtered by using the ChannelSelector node in configuring the channels needed.


    In your case, if you want to use the 2nd, 3rd, 4th, and 5th channels, you can set <Vector<int> 1 2 3 4> in the ChannelSelector’s SELECTOR parameter.

    • This reply was modified 1 year, 11 months ago by nterakado.
    • This reply was modified 1 year, 11 months ago by nterakado.
    Rohan sheelvant

    Yes, this method will solve my problem.

    Thank you for your reply 🙂

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.