This is a piece of software that converts an A-format four channel recording taken with a Brahma recorder in
The application layout has been designed with the input/output flux in mind: it begins at the top of the window and ends at the bottom with the Convolve button.
There is also a status bar that informs you about:
From the menu File you can Reset all the fields (recommended before every calculations) and quit the program.
BrahmaVolver is a four channel filtering tool: this means that it takes as input a vector which elements are the four recorded tracks and gives out another four elements vector which elements are the processed tracks.
With the filters provided you can convert A-Format recorded tracks to B-Format or 5.1.
Using some math, if x is the input vector, and h the 4 x 4 filtering matrix, the processed output y is given by:
The big issue is the computational effort requested by a convolution
operation, for this reason, filtering is usually implemented in the
frequency domain, where convolution become a simple product. If X,
H and Y are the Fourier transforms of, respectively, input
vector, filtering matrix and output vector, we have:
The filtering matrixes that come with the software are suitable for an A to B format conversion, but if you want to do some others elaborations, you can substitute it.
When Convolve button is pressed, BrahmaVolver searches for the file 'FilterMatrix_xxxxx.wav' in the filters subdirectory, where xxxxx is the sampling frequency in Hz detected from input files; if the filter file doesn't exist, no calculation can have place.
The format of the filtering matrix is simply a four track WAV file where the tracks are the rows of the matrix and the columns are appended one after the other
Important: each item must have the same length!
This step is just a math manipulation of the B-format converted tracks: this means that two calculations will have place for this conversion.
By default the Effect channel (Lfe) is empty: optionally you can fill it with lower frequencies (< 120 Hz) checking the Low Freq in Lfe box, obtaining a sort of subwoofer channel.
In order to manage correctly - hopefully - whatever you want input file size, a double buffering technique has been implemented; if the input files length is less than I/O buffer, it will be readed one time and processed. But, if the length exceeds the I/O buffer size, the processing will follow these steps:
Note: This implementation of double buffering technique has a side effect: because the result datas are written at the end of the processing loop, it isn't possible to make an autoranging routine, so there is the concrete possibility of data clipping! A simple method to avoid it is the specification of a negative gain for B-format conversion (and 5.1 too...), that for this reason its default value is -3.0 dB.
Both the Autorange checkboxes are intended to make a better fit of the processed file, so it will be re-opened then post-processed with an autorange routine, but, obviously, if there are clipped datas, they will remain.