It seems like most CLI tools that offer trimming/removal of sections of audio and video files only allow you to pass the sections you want to keep as arguments -
e.g. if you have an audio file that is 60 seconds long, and you want to remove the time ranges 5s-15s and 45-50s, you have to call:
some_program --trim =0 =5 =15 =45 =50 [--end]
this is annoying.
the otherwise excellent library ffmpeg seems to have a currently unfixed bug that prevents you from passing the time ranges you want to keep.
reductive_audio_trim allows you to pass the sections you want to remove instead. It uses the sox trim functionality.
sox is the only requirement.
./audio_trim input.mp3 output.mp3 11,16 24,39
By default, it retains the bitrate of the input file.