Making high-fidelity audio sound like it came through the phone (2018)
blog.jonlu.ca
blog.jonlu.ca
Caveat: I love doing this in a musical context for a specific part (e.g. vocals or drums or guitar) amongst many, and so I tend to fine-tune the exact frequencies in the context of the other parts so they evoke the memory and emotion of a telephone line more than the exact specifications of a POTS[0] line.
[0] POTS = plain old telephone service or plain ordinary telephone service
You can build brickwall emulated filters but they're never perfect, and you have to make a tradeoff between high latency and phase distortions/ringing.
Personally I like FFT filtering because subjectively it can sound more "vintage" than filter emulations.
It's interesting that this is being used to emulate a mechanical limitation - the limited mechanical frequency range of carbon granule microphones and small speakers.
Modern speakers have an amazing ability to record and generate a much wider frequency range from much smaller transducers.
Zero'ing an FFT bin is neat for the phase artifacts/time domain aliasing.
It's true that you get more latency as you move to lower-phase-distortion IIR and zero-phase-distortion FIR filters. But that's not a reason to filter in the Fourier domain instead, because in the Fourier domain you get all the latency. If you can pay all the latency that way, you can eliminate the IIR phase distortion with filtfilt.
Similarly, ringing in your IIR filter is not a reason to go to the Fourier domain and start bashing bins to zero, because you get all the ringing that way: the Fourier-domain difference between your original signal and the transformed signal is a Fourier-domain impulse, whose inverse Fourier transform is a sinusoid that fills eternity.
Also, just to be clear, and you probably already know this, but ringing and phase distortion are two totally different phenomena.
Rolloff for those on the bottom end is usually around 300Hz (the CTCSS block filter), and around 3kHz (channel bandwidth limit) on the top end.
Often those filters were implemented as analog designs, so a FIR with -10dB/dec rolloff would be closer to real-life. An FFT filter can be configured to act like a brickwall, which will sound subtly different.
That is super interesting, now I'm intrigued. What's exactly the difference between the memory and emotion and the real sound of a telephone call? Do you have this kind of approach with other sounds as well?
When mixing a song, one of the many things to consider is, if a specific part is intended to blend in with other parts, effectively creating a merged sound vs. which parts are supposed to stand out. Since I use the telephone effect to make a part stand out a little extra, it becomes more important for it to be focused in a frequency range not already crowded with other parts. And therefore it’s less important if the highlighted frequency is a precise match to a telephone line.
> Do you have this kind of approach with other sounds as well?
Yes, very much so. For example in a very full pop or electronica mix with many parts, a grand piano track can overwhelm and muddy too many frequencies used by other instruments - for example the very low end (left side) of a good grand piano occupies the same frequencies as a bass guitar, upright bass or synth bass. So typically I would make the piano track be less prominent in the competing range, by lowering the EQ settings in that range. And I might increase the EQ settings for the frequency range where I want the piano track to me most obvious to the listener.
— There are fancier versions of that mixing technique via variable multi-band compression with side chaining, but that might go beyond the interest level of the HN audience and take this thread too far off-topic :-)
The LPC and CVSD series vocoders also have a very unique(ly lossy) sound profile.
The lyrics do indeed sound crisp as if they were re-recorded, which is impossible. Anyone know if this was really done with AI, and what this field is called (music restoration?)
The video is uploaded on some random spanish channel and I can't find any information about it by searching.
> Media resource https://blog.jonlu.ca/assets/eightkhz_resampled.wav could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_METADATA_ERR (0x806e0006)
You can download and play those audios directly: https://blog.jonlu.ca/assets/eightkhz_resampled_unfrequencie... and https://blog.jonlu.ca/assets/eightkhz_resampled_unfrequencie...
Added an mp3 version, should work across browsers now.
Was this deliberate (vs 8192)?
So it's helpful to stipulate what kind of 'phone audio' you're trying to mangle into 'fidelity'.