Firstly I profess to know very little about the science of sound and I am struggling to find anyone who has done this with sox.

I am looking to build a VHF marine radio simulator on Windows and Linux using NodeJS and have identified sox as a possible way to both play and create the VHF radio or walkie-talkie effect. I am generating mp3 from a google speech recognition API and I can play that fine in the simulator with the app.

As an example this is what I would like to achieve.

Does anyone know the sox effects that could be used ? Or any other way ?

2 Answers 2


I did this using a convolution effect. Basically, I passed a sweep tone through a narrow band FM radio (basically a CB), recorded it and used the result to generate an impulse response that represented the signal path.

This is a blog post that describes the process. Feel free to adapt to your own purposes.



I just went and had a quick read up on sox (I've never heard of it before) and here're my thoughts based on the effects available to you:

Start by using the bandpass filter to reject a lot of the sound outside 2KHz - 4KHz - This will imitate the small mic and speakers in the chain.

Next use the compander to reduce the differences between the loud and soft parts of the sound to mimic the compressor in the transceivers.

Finally, use the overdrive to simulate the small speaker being pushed too hard.

All of these effects are available in sox.

If you can find a way to add a touch of ring modulation (I couldn't see anything in sox but it's my first experience with it) then that will add a lovely touch of atmospheric shift.

  • BTW this is where I got my info for available effects: sox.sourceforge.net/sox.html#EFFECTS Commented Jul 26, 2021 at 15:10
  • I used something like sox output.mp3 output1.mp3 sinc -n 32767 1000-6000 compand 0.3,1 6:-70,-60,-20 -5 -90 0.2 overdrive 10 and it really works well! Thanks for that.
    – Davy R
    Commented Jul 27, 2021 at 16:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.