aboutsummaryrefslogtreecommitdiffstats
path: root/utils/bsincgen.c
Commit message (Collapse)AuthorAgeFilesLines
* Properly open the output file for writingChris Robinson2017-08-271-1/+1
|
* Use a common header for Unicode-awareness on WindowsChris Robinson2017-08-271-79/+1
|
* Allow specifying the output filename with bsincgenChris Robinson2017-08-261-31/+140
|
* Rename the bsinc resampler to bsinc12Chris Robinson2017-08-251-46/+48
|
* Parameterize the filter order and rejection in bsincgenChris Robinson2017-08-231-28/+29
|
* Parameterize the bsinc table nameChris Robinson2017-08-221-8/+9
|
* Properly postfix the filter order numberChris Robinson2017-08-211-2/+6
|
* Simplify bsincgen's Kaiser functionChris Robinson2017-08-181-8/+3
|
* Keep bsinc filter quality more consistent between scalesChris Robinson2017-08-171-7/+9
| | | | | | | This generates the filters using the proper size and scale. The 'a' divisor should represent the +/- sample range (and thus be a whole number), with the number of sample points being double that. Increasing the filter size to a multiple of 4 (for SIMD) can be done by padding in 0s afterward.
* Workaround Android not having log2Chris Robinson2017-08-171-0/+4
|
* Correct the bsinc filter orderChris Robinson2017-08-171-6/+7
| | | | | | Despite the claim that it was an 11th order filter, the transition width was generated by specifying 12th order. A 12th order filter would need 14 sample points rather than the 12 it had.
* Make the sinc4 table staticChris Robinson2017-08-161-1/+1
|
* Make the bsinc table layout more efficientChris Robinson2017-08-161-99/+20
| | | | | | | | | | | | | | | | The old layout separated filters, scale deltas, phase deltas, and scale phase deltas into separate segments that each contained a numbers of scale and phase entries, Since processing a sample needed a filter and one of each delta entry relating to a particular scale and phase, the memory needed would be spread across the whole table. And since subsequent samples would use a different phase, it would jump around the table a whole lot as well. The new layout packs the data in a way more consistent with its use. The filters, scale deltas, phase deltas, and scale phase deltas are interleaved, such that for a particular scale and phase, the filter and delta entries used are contiguous. And the phase entries for a particular scale are kept together, so the ~500 to ~1000 samples processed per source update stay within the same 3KB to 6KB area of the 70+KB table, which is much more cache friendly.
* Keep bsinc info together in a structChris Robinson2017-08-151-37/+61
|
* Pre-compute the sinc4 resampler coefficient tableChris Robinson2017-04-081-1/+39
|
* Add a tool to generate the bsinc tablesChris Robinson2015-11-101-0/+374