I uploaded the beta versions of ClipShifter to the Plugins page. Since I didn’t get a bunch of volunteers, I will be doing a public beta for the next version. Although the user manual has not been updated, I included the following PDF within the download zip file. Hopefully, this will explain all of the changes.
ClipShifter – 1.1.0
Changes and new features
User Interface:
- Rearranged controls
- Added waveform history viewer:
o Default view displays 10 seconds. The blue handle underneath the waveform view can be slide left and right to change the display anywhere from 0.25 to 20 seconds
o Both the input, output, and clipping threshold are displayed
o Horizontal lines representing the Initial and End thresholds are displayed. Clicking and dragging the lines will change the corresponding thresholds.
o VU lines are represented on the waveform view. The blue handle to the left of the waveform view can be adjusted to focus on the upper portion of the waveform view. The view can be adjusted to approximately -2 dB (i.e., only the portions of the waveform greater than -2dB will be displayed).
- VU meters
o The VU meters view can be scaled like the waveform history control. The handle on the left of the waveform history view adjusts the VU display as well.
o Loudness indicator is added to the Output VU. This displays the range between the peak level and the RMS level. The more narrow this shape is, the less dynamic range.
o Ballistics of the meters were changed
- VU (shaded area) – 0.1ms attack, 300ms decay
- PPM (solid blue line) – 3ms attack, 5000ms decay
- Peak Reduction – 0.1ms attack, 1000ms decay
- RMS (for loudness meter) – 1000ms attack, 1000ms decay
Controls:
- Clip Shape: Increased the lowest setting of the control. The lowest setting approximates a compression setting of 1.5:1.
- Attack and Release time of Clipping Threshold: Changed from a linear curve to a logarithmic attack and release curve. The attack time was expanded to range from 1ms to 3500ms. The release time is set as a multiple of the attack time (fast equals twice the attack time, regular equals 10 times the attack time).
- Alias Filter: Added filter to remove alias effects at higher frequencies. There are 4 settings: off, 1, 2, and 3. Numbers 1, 2, and 3 are more aggressive low-pass filters to remove any aliasing. There may be some unintended side-effects of rolling off audible frequencies.
- Harmonics control: Add even-order harmonics to output. The original algorithm only produced odd-order harmonics. Even order harmonics can be added by decreasing the harmonics control. At a setting of 1.0, only odd-order harmonics are present. Note: adding more even-order harmonics can also increase to the output of the plugin, depending on the input and output gain settings.
- Preset control (test feature): Small square at the bottom-left corner of the plugin. Clicking the box will save a file on your desktop called preset.txt with the values of the controls. If you select this text (or text from another file) and copy the text to the clipboard (i.e., control-C), you can load the preset back into the plugin. Right-clicking the square will load text from the clipboard and change the current settings of the plugin. At this time, this is only a test feature and it will be improved in the future.
Thank you for your interest in ClipShifter. Please contact me with any suggestions or bugs at matt [at] lvcaudio [dot] com. I would also like to know how you are using ClipShifter. If you would be willing to send me some audio samples (or links), I will try to include them on my site. I am also looking for any suggestions regarding presets. If you find an interesting setting, click the preset square to save the settings to a file. You can email the settings to me as a file, and I will try to incorporate the presets into the final non-beta release.
Thanks,
Matt



Hi,
I think you’ve got a very cool and clever UI, because just as yourself I find it much easier to tweak the audio parameters with a visual guidance.
I’m curious what are you using to draw the scrolling waveform?
Hi,
I am using the IPlug/WDL framework for developing my plugins. It is by Cockos (same people as Reaper http://www.cockos.com/wdl/). I am using a version called WDL-OL by Oli Larkin (https://github.com/olilarkin/wdl-ol and http://www.olilarkin.co.uk/). There are many benefits of using this framework, plus it is free even for commercial work.
Specifically for the waveform view, I have a custom control that I made that takes all the volume values and stores them in a vector array. The vector helps immensely when resizing. When the plugin draws, it converts them into either lines (i.e., for the Threshold control), or tiny rectangles. Depending on the samplerate and how short or long the waveform window is set, several consecutive samples might need to fit in the width of one pixel. Since this plugin is all about clipping, I use a max value. If I were doing something else, it might be better to use an average, I don’t know.
Does that help?