Introducing the convolution function on the HiBy R5 / R6 / R6pro / R8
So this is a plugin that has been hidden well since it was released. On these Android players with semi-recent firmware, system level audio plugins are available. Today I would like to point to one of these in particular. To start with, I’ll simply show all the taps required to start using it, in order: (it’s simpler than it looks)







With the convolution module finally open, you may select the “configuration file” for use with the module:
To get the ball rolling I’ll provide one of the better universal spatialization files I’ve created, for public use. Simply download this file to your R player and point this plugin to that file in the file browsing interface that comes up when you click as above:
https://1drv.ms/u/s!AtuiwfIBRYFEgfYKqhO0dmaL6lnzkw?e=yuONdH
What is it?
It is hard to explain, although Wikipedia gives a technical one
https://en.wikipedia.org/wiki/Convolution . In audio terms, I would put it as a way to specify filters for correcting audio output for specified output equipment (e.g. headphones) and / or simulate acoustic environments or setups (such as having the sounds of speakers coming from outside your head even while wearing headphones).
File formats
Convolution filters are specified as wave files, which to a computer are indistinguishable from the wave files of uncompressed PCM music. Here I will explain the different aspects of the wave files to look out for when choosing one for use with your system.
1. Sample rate
These filters are designed to work on music of a certain sample rate, and are themselves encoded at that same sample rate. On this plugin, convolver files are taken to be 44.1kHz and work on 44.1kHz files. By default, music files of other sample rates are not processed by the plugin; you can change this behaviour by unticking the “Other sample rate bypass” option in the interface.
2. No. of channels
The plugin may support wave files with 1, 2 or 4 channels, interpreting them in different ways. With single channel files, it applies the same filter described by that channel on both channels of music. With dual channel files, it applies each channel of filter on its corresponding music channel. With four channel files, the filters are applied in the following 4-way config which is instrumental in simulating a complete acoustic space with two speakers in room:
Done correctly, the cross-feeding channels not only do not narrow the soundstage, but can actually expand it, by providing realistic inter-aural cues for sounds even to the extreme left and right (which should not reach only one ear; the brain interprets this unnatural sound usually as a sound “inside” one ear rather than a sound to your left or right (which these filters should render correctly).
These spatialization filters are as many and varied as sand on the beach; for example, you can take matching pairs of wave files from the IRCAM database and put them together as your spatializer:
http://recherche.ircam.fr/equipes/salles/listen/
Or, you can go as far as to measure your own:
https://www.head-fi.org/threads/recording-impulse-responses-for-speaker-virtualization.890719/
In other news, the expansive AutoEQ database provides a wealth of correction data for hundreds of different headphones, that you can use in this plugin as follows:
1. Go to
https://github.com/jaakkopasanen/AutoEq/blob/master/results/
2. Search for the model of your headphones using Ctrl-F
3. Click into your model using the link in the list
4. Click on the [name of your headphones] minimum phase 44100Hz.wav link (e.g.) (do not right-click->save as), THEN save the file that comes up in the next page to your R player. Load the file in the convolution plugin.
(edit: unfortunately I must report that for now these is a bug in the convolver preventing these impulse files from AutoEQ from rendering correctly here. The problem manifests in periodic clicks in the output and the workaround for now is to insert a few samples of silence in front of the files downloaded here. I will work with HiBy to hopefully release a fix for this soon.)
It is also possible to combine headphone correction filtering with spatialization filtering, by convolving two wave files together before putting the resultant file in this module. You can do this by using the foobar convolution plugin, putting the 4-way spatialization wave file in the playlist and Converting it into a new 32-bit wave file using the headphone correction wave file as the convolver in DSP.
Finally, it is even possible to use this to apply any manner of parametric EQ or other effects to your R player, by simply first applying those effects to this base file
https://1drv.ms/u/s!AtuiwfIBRYFEgfYLzA64ieH1dAeGPw?e=I1sCll
e.g. in foobar by putting this file into the playlist then Converting it into a new file with a parametric EQ DSP in the DSP chain
then putting the resultant file in your R player and loading it in the convolver module.