KColorChooser Doesn’t Save Palette.

I was recently exploring a 2D Video Editing application, which has as one of its Effects, a Chroma-Key Effect, that will turn all the pixels in a given video-clip transparent, the colours of which are sufficiently close to a chosen, Key-Colour. And one of the simplest ways to configure this effect would have been, to open a colour-choosing dialog, and then to use a kind of eyedropper-tool, to pick the colour directly from the preview window of the Editing Application itself. But there was a glitch.

Because I have compositing enabled, and because the colour-choosing dialog fails to override this one behaviour of the compositor, as soon as the dialog opens, the rest of the screen is dimmed. And what that also means is, colours which I may choose from anywhere on the display won’t match the colours within the clip, that are to be made transparent.

And so the next place to look for a solution, might be, to install another application, such as ‘KColorChooser’, which has been programmed so that, even with compositing still running, the screen won’t be dimmed while it’s to be choosing a colour from that screen. But then I found that this application will save the chosen colour to its palette just fine, but that palette will not appear in any other program, nor within KColorChooser, the next time I open this helper-app. Therefore, colours must be transferred from one application to another, by saving their hex-codes to the clipboard.

There happens to be a way to simplify this task under Plasma 5.8, without having to install yet another application. With the full set of widgets to choose from, there is a bundled widget actually called “Color Picker”. The way to add it to our desktop is first, to Unlock the widgets, then, to pick Add Widget, then, to drag the widget in question from the widget selection bar, into the Quick-Launcher corner of the Panel. Even though globally, we may drag widgets to anywhere on an appropriately-unlocked desktop, this one is meant to be dragged into the Panel.

Screenshot_20190225_121204

 

And so, with this additional quick-launcher, it’s possible to pick colours from the display, before the display gets dimmed, due to a window grabbing the foreground. Fortunately, this tool also copies the chosen colour’s code onto the clipboard as soon as we do that (unless we’ve changed a setting), and because the tool has not really quit, what it has copied to the clipboard will also stay there, for the main (in this case, video-editor) application to use. That main application only needs to support HTML/Hex colour-codes being pasted into its colour choosing field.

And, the quick-launcher’s second icon, from the two-icon set, opens a history of previously-picked colours, from which we may select one instead of doing so from the screen.

Tada!

Dirk

 

Thoughts About Software Equalizers

If a software-equalizer possesses GUI controls that correspond to approximate octaves, or repeated 1-2-5 sequences, it is entirely likely to be implemented as a set of bandpass filters acting in parallel. However, the simplistic bandpass filters I was contemplating, would also have required that the signal be multiplied by a factor of 4, to achieve unit gain where their low-pass and high-pass cutoff frequencies join, as I described in this posting.

(Edit 03/23/2017:

Actually, the parameters which define each digital filter, are non-trivial to compute, but nevertheless computable when the translation into the digital domain has been carried out correctly. And so a type of equalizer can be achieved, based on derived bandpass-filters, on the basis that each bandpass-filter has been tuned correctly.

If the filters cross over at their -6db point, then one octave lower or higher, one filter will reach its -3db point, while the other will reach its -12db point. So instead of -12db, this combination would yield -15db.

The fact that the signal which has wandered into one adjacent band is at -3db with respect to the center of that band, does not lead to a simple summation, because there is also a phase-shift between the frequency-components that wander across.

I suppose that the user should be aware, that in such a case, the gain of the adjacent bands has not dropped to zero, at the peak of the current band, so that perhaps the signal will simplify, if the corner-frequencies have been corrected. This way, a continuous curve will result from discrete settings.

Now, if the intention is to design a digital bandpass filter with greater than 6 db /Octave falloff curves, the simplistic approach would be just to put two of the previous stages in series – into a pipeline resulting in second-order filters.

Also, the only way then to preserve the accuracy of the input samples, is to convert them into floating-point format first, for use in processing, after which they can be exported to a practical audio-format again. )

(Edit 03/25/2017 :

The way simplistic high-pass filters work, they phase-shift the signal close to +90⁰ far down along the part of the frequency-response-curve, which represents their roll-off. And simplistic low-pass filters will phase-shift the signal close to -90⁰ under corresponding conditions.

OTOH, Either type of filter is supposed to phase-shift their signal ±45⁰, at their -3db point.

What this means is that if the output from several band-pass filters is taken in parallel – i.e. summed – then the center-frequency of one band will be along the roll-off part of the curve of each adjacent band, which combined with the -3db point from either its high-pass or its low-pass component. But then if the output of this one central band is set to zero, the output from the adjacent bands will be 90⁰ apart from each other. )

(Edit 03/29/2017 :

A further conclusion of this analysis would seem to be, that even to implement an equalizer with 1 slider /Octave properly, requires that each bandpass-filter be a second-order filter instead. That way, when the signals wander across to the center-frequency of the slider for the next octave, they will be at -6db relative to the output of that slider, and 180⁰ phase-shifted with respect to each other. Then, setting the center slider to its minimum position will cause the adjacent ones to form a working Notch Filter, and will thus allow any one band to be adjusted arbitrarily low.

And, halfway between the slider-center-frequencies, the gain of each will again be -3db, resulting in a phase-shift of ±90 with respect to the other one, and achieving flat frequency-response, when all sliders are in the same position.

The problem becomes, that if a 20-band equalizer is attempted, because the 1 /Octave example already required second-order bandpass-filters, the higher one will require 4th-order filters by same token, which would be a headache to program… )

Continue reading Thoughts About Software Equalizers