mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-08-02 17:18:36 +02:00
feat(audio): use VHQ settings for SoXR resampling
This commit is contained in:
@@ -27,6 +27,9 @@ const List<String> losslessDitherOptions = [
|
||||
|
||||
const List<String> losslessResamplerOptions = ['swr', 'soxr'];
|
||||
|
||||
const int soxrVhqPrecisionBits = 28;
|
||||
const double soxrPassbandEndRatio = 0.95;
|
||||
|
||||
class LosslessConversionProcessing {
|
||||
final String dither;
|
||||
final String resampler;
|
||||
@@ -49,6 +52,19 @@ class LosslessConversionProcessing {
|
||||
bool get hasDither => normalizedDither != 'none';
|
||||
}
|
||||
|
||||
List<String> losslessResamplerFilterOptions(
|
||||
LosslessConversionProcessing processing,
|
||||
) {
|
||||
final resampler = processing.normalizedResampler;
|
||||
return [
|
||||
'resampler=$resampler',
|
||||
if (resampler == 'soxr') ...[
|
||||
'precision=$soxrVhqPrecisionBits',
|
||||
'cutoff=$soxrPassbandEndRatio',
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
List<int> availableLosslessBitDepthOptions(int? sourceBitDepth) {
|
||||
if (sourceBitDepth == null || sourceBitDepth <= 0) {
|
||||
return losslessConversionBitDepthOptions;
|
||||
|
||||
Reference in New Issue
Block a user