X-Git-Url: https://git.sesse.net/?p=c64tapwav;a=blobdiff_plain;f=level.cpp;fp=level.cpp;h=e95b48e0f6d1c5e1f03a041760308745f0624090;hp=fea59261d3c585d168081bab12edf5a778c352ed;hb=91eeec218f99f96013e62150d82d7eb1f7e2d5b0;hpb=057dea4ad6dffb355ec9a84e3952dc2de8b88b7a diff --git a/level.cpp b/level.cpp index fea5926..e95b48e 100644 --- a/level.cpp +++ b/level.cpp @@ -11,12 +11,6 @@ // ruin the waveforms themselves. #define LPFILTER_FREQ 50.0 -// The minimum estimated sound level at any given point. -// If you decrease this, you'll be able to amplify really silent signals -// by more, but you'll also increase the level of silent (ie. noise-only) segments, -// possibly caused misdetected pulses in these segments. -#define MIN_LEVEL 0.05 - // A final scalar to get the audio within approximately the right range. // Increase to _lower_ overall volume. #define DAMPENING_FACTOR 5.0 @@ -59,7 +53,7 @@ static float filter_update(float in) return out; } -std::vector level_samples(const std::vector &pcm, int sample_rate) +std::vector level_samples(const std::vector &pcm, float min_level, int sample_rate) { // filter forwards, then backwards (perfect phase filtering) std::vector filtered_samples, refiltered_samples, leveled_samples; @@ -88,7 +82,7 @@ std::vector level_samples(const std::vector &pcm, int sample_rate) } for (unsigned i = 0; i < pcm.size(); ++i) { - float f = DAMPENING_FACTOR * std::max(refiltered_samples[i], MIN_LEVEL); + float f = DAMPENING_FACTOR * std::max(refiltered_samples[i], min_level); leveled_samples[i] = pcm[i] / f; }