Pianoteq Volume Compensator is a Rust application that generates a set of volume compensation values for Pianoteq, using a wav file as input, which is generated by Pianoteq with a frequency-weeping MIDI file. The application takes the input wav file, splits it into 88 slices, calculates the rms amplitude of each slice, and generates volume compensation values with moving average smoothing. The volume compensation values are then saved to a text file and a binary file. The binary file can be copied and directly replace a specific section of the Pianoteq preset file.
Not implemented yet
To use the application, make sure Pianoteq is installed on your system. You also need to have a Pianoteq preset file that you want to apply the volume compensation to. The preset file should be in the format of a.fxp file. This application has been tested on Windows 11 and Pianoteq 6.
- Open Pianoteq and choose the preset file you want to modify.
- Load the frequency-weeping MIDI file into Pianoteq.
- Generate a wav file using the 'input.mid' file. (Must be wav format)
- Close Pianoteq.
- Configure the output file name, slice time, and smoothing factor in the config.toml file.
- Run the application.
- The application will generate a text file and a binary file.
- Copy the binary file and paste it into the Pianoteq preset file, replacing the existing volume compensation section. (The section typically appears in the second block after the file header.)
The application uses a configuration file called config.toml.
The file contains the following options:
- input_file: The name of the input wav file. (Must be in the same directory as the executable)
- output_bin: The name of the output binary file. (Will be saved in the same directory as the executable. Will be overwritten if it already exists.)
- output_txt: The name of the output text file. (Must be in the same directory as the executable. Will be overwritten if it already exists.)
- start_time: The start time of the frequency-weeping wav file in seconds.
- end_time: The end time of the frequency-weeping wav file in seconds.
- smooth_span: The number of adjacent notes on either side of the current note to include in the smoothing calculation.
This project is licensed under the Apache 2.0 license.
- Initial release.