djdiskmachine/LittleGPTracker

Soft/Hard clip on output, possibly both

Closed this issue · 1 comments

It would be great to have an optional soft clip stage possibly followed by a hard clip that goes after Master volume, so one could drive it if needed. This is probably one of my favorite features of mobile Nanoloop (and NL2 on gba also gets distorted when pushed too hard), and I think it would fit Piggy very well given the aggressive toolkit it already has. I often clip the output on purpose, and I might be wrong I suspect the sound isn't consistent between various builds, sometimes it sounds fine, other times it sounds awful.

It could be something relatively simple like https://www.kvraudio.com/forum/viewtopic.php?p=2780512&sid=c342d56f098e6e6a3c5c6872addf8d62#p2780512 or (even cooler) one of Airwindows algos, they are MIT-licensed, but these run at 1 sample of latency I believe so it would be more involved to implement https://github.com/airwindows/airwindows/blob/master/plugins/LinuxVST/src/ClipSoftly/ClipSoftlyProc.cpp

I tried poking around in the source code, but so far I don't know how to go around it, so I'm leaving the feature request to consider :-)

Great suggestion!
One place where we could have clipping is here:
https://github.com/djdiskmachine/LittleGPTracker/blob/master/sources/Application/Player/PlayerMixer.cpp#L119

Another place that sticks out is here:

I have a device with a built in compressor in the sound chip which is really handy, it'd be awesome to have it for all devices. =)

I've got a bunch of workflow improvements further up on the prio list, I encourage tinkering if you want to speed up adding this feature ;)