Manual
This manual explains how the plugin features should be used and how the features are working. An understanding how the features work helps to find and solve problems that may arise while using BrutefirDRC. Every main menu entry will be explained.
Note that most changes have no instant effect instead a new audio file must be played for a change to be applied to the audio stream. This is based on the fact that any on going conversion (the currently streamed audio file) uses the settings that have been in effect while it was started!
Enabling/Disabling BrutefirDRC for a player
You enable a player to use bruteFIR by selecting enable from the activation menu. This adds custom conversions for the current player to the custom-convert.conf, each conversions is keyed to current player with the players MAC address. The conversions are enclosed by a player specific header and a footer that is used to identify the settings for one player.
When the plugin is disabled the custom-convert.conf is parsed and all player specific lines are deleted, leaving the rest of the file untouched.
When the plugin is reenabled existing current conversions for the player are deleted. After this the new conversions are appended to the file. You need to reenable the plugin if some configuration data is changed or if a new version with new conversions is released.
You should not edit the conversions because they are automatically edited without any notification! For updates of the plugin the plugin must be reenabled for all players to make sure that the conversions are updated!
Example:
A custom-convert.conf file header and footer for player with MAC address 00:04:20:06:b5:61.
[...]
# START client config for Brutefir DRC Clients-MAC address: 00:04:20:06:b5:61 FLAC
[...]
# END client config for Brutefir DRC Clients-MAC address: 00:04:20:06:b5:61
[...]
Change selected filter
The menu option to change the current filter is used for two purposes: change the used filter and display the currently selected filter. If a filter is selected, the plugin will start in the selected filter directory and show the selected filter (Note: right now there is a known bug that the directory may not be the correct one).
To change the selected filter use the arrow keys on the remote. Select a filter by pressing right while it is displayed. Subdirectories can be used to group filters, this is especially useful if you have more than one player and would like to group the filters for each player. You can open directories by pressing right and leave them by pressing left. There is no limit on the depth or number of subdirectories.
The plugin uses the directory that was configured on the webpage for filter selection. The displayed filters are filtered based on their file ending, only filters that have the correct file ending are displayed. The filter can be configured on the plugin settings page in SqueezeCenter.
When a filter is selected a symbolic link for this filter is created. The symbolic link is player specific (it contains the players MAC address). The custom conversions for the current player use the linked file as configuration for the BruteFIR process that filters the audio streams.
Change input gain (former attenuation)
This feature helps to prevent clipping that may be introduced due to filter amplification. BruteFIR makes it easy to attenuate inputs before they are filtered. If you have problems with clipping you should use the gain menu to prevent it. A slider is displayed to select the amount of gain in dB use negative values (slider to the left) to attenuate the input till no clipping occurs. The slider is initialized with the current gain setting of the selected filter.
Note that you should only use the gain setting to attenuate the inputs by providing negative values. For positive values it is possible to introduce clipping if the input is boosted past the maximum amplitude possible, see Loudness war.
The gain is added as attenuation to all inputs within the currently selected filter configuration file, all other configuration files are left untouched. See the BruteFIR manual for more information about attenuation.
Example of a filter configuration file:
The snippet shows a gain setting of -3.0 dB for the filter. BruteFIR uses attenuation because you normally do not boost the input. If the attenuation setting is changed the file is parsed and all from_inputs line will be changed.
[...]
from_inputs: "r_in"/3.0;
[...]
from_inputs: "l_in"/3.0;
[...]
Equalizer
BruteFIR provides an equalizer the EQ menu provides easy access to the current equalizer settings. The equalizer may be used in addition to any filters in a configuration file. If you cannot enter the EQ menu no EQ is configured for the currently selected filter. See the example files how to configure bruteFIR to use the equalizer.
The EQ menu provides a change bands option. This option displays the current boost for all bands of the EQ, switch bands with the up and down keys. You can select a band by pressing right and change it’s settings via the displayed slider. The changes are directly written to the filter configuration file and take effect for the next played audio file.
Note that you should apply the EQ prior filtering the audio data to get the best room correction possible! If a Band is boosted too much clipping may occur see the attenuation setting how to fix this.
Blind testing of filters
You have a new filter and want to test if it performs better than your current one? Quite often this test is a problem because you are biased by the knowledge which filter is used for playback. With the blind test functionality it is possible to compare two filters without knowing which filter is used for playback by assigning one to A and the other to B. The current selected filter is used as base for the test. The steps for blind testing are:
- Select a filter to test against the currently selected filter via the Test against menu item. The menu displays all filter files like the change filter main menu. Select the second filter by pressing right on it. The current filter and the newly selected filter are randomly assigned to A or B whenever a filter is selected in the Test against menu. Note that the plugin enters blind test mode and filter A is selected.
- Listen to music to evaluate the filter. Switch to the other test filter by holding the “1-button” on the remote control while in the “Now Playing” menu or by using the switch test filter option (you are notified about the current filter). Take notes, switch between filters and listen to music till you are satisfied and have a preference for A or B.
- Use the show assignment sub menu to display which filter was A and wich one B.
- End the test by using the End blind test option. This reverts the player to the filter that was selected prior the blind test and restores the BrutefirDRC menu to display all options.
- After ending a blind test you can display the filter assignments for the last blind test as long as you do not start a new blind test via the Show last assignments menu item.
When a blind test is started the plugin enters the blind test mode. In blind test mode you can only access the blind test menu for the BrutefirDRC plugin. When you end the blind test mode the selected filter before you entered the blind test is restored and the plugin goes back to normal mode where you have access to all menu options.
Note that the switch test filter shortcut via “hold 1″ only works while in blind test mode and only if the “Now Playing” menu is selected!
How the plugin works
When the plugin is enabled for a player SqueezeCenter uses the more specific conversions to stream audio to this player. The conversions are changed to filter the audio files with bruteFIR prior streaming them to the player. The custom conversion work quite simple:
- convert base file to WAV format containing header with samplerate and bitrate of audio stream (most of the time using sox)
- pipe the WAV audio into the plugin specific brutefirwrapper script. The Wrapper does different things:
- filter the audio using the selected BruteFIR configuration file
- enable gapless playback by saving the the reverberation tail that is dropped by brutefir once it reaches the end of input
- encode the filtered audio stream using to the choosen format (FLAC or MP3)
- The audio is resampled if the player does not support the current sampling rate of the audio file. The resampling is done before or after the audio is processed with brutefir (see the conversion template for further details)
- stream the result to the player
Convert InguzEQ filters to BruteFIR
If you want to convert your existing InguzEQ filters to work with bruteFIR use this conversion:
sox -t wav inguz-filter.wav -t raw -c 1 brutefir-filter-r.pcm mixer -r
sox -t wav inguz-filter.wav -t raw -c 1 brutefir-filter-l.pcm mixer -l
Note that Inguz uses a stereo wav file for filtering while BruteFIR needs two files. Now you can use the example files and create a configuration for the converted filter.