2026-10-09 APP 2.0.0-beta48 has been released !
This is mainly a bug fix release for the reported bugs in beta47. In addition it has a significant User Interface performance improvement noticable when you need to process 1000s of images in APP.
2026-10-03 APP 2.0.0-beta47 has been released !
This is a very big release... many code optimizations/rewrites, many parts of APP are much faster and more precise, especially star analysis and registration are much faster ! Big mosaics will go much faster 🙂
And we introduce a new preview filter, which includes the new Adaptive Deep Sky Stretch and a General Levels Stretch, this has been long over due. The old preview filter (the panel on the right side to stretch and preview your data) has not been updated for a couple of years and it is a critical part of any APP session.
Adaptive Deep Sky Stretch or ADSS is a much more intuitive stretch algorithm. It is also color preserving (which is a great new addition in itself ! ) which means that the highlights are no longer bleached, color is maintained from the linear data while stretching. You can simply stretch your data using the sky background level and signal width sliders which work much easier and more intuitive. You no longer need to fiddle with the old complicated sliders with zoom buttons. All the zoom buttons for the sliders are made redundant. And you can enter slider values in the slider value fields yourself. I will make a youtube video in the coming days to explain and fully introduce ADSS. Once the video is ready, it will be highlighted on the forum.
RGB Combine upgrade !. The RGB Combine Tool has been rewritten mostly. The tool is faster and easier to use and most importantly, the Luminance slider to inject a luminance channel or channels into the RGB composite is now working correctly. It no longer bleaches the RGB colors. Combined with the new ADSS preview, you will get much better and easier great composites with great color! I will also explain this in a new youtube video.
In APP, the preview filter on the right, by default, automatically stretches the data for viewing in the image viewer.
This is just a stretched preview, the original data is not altered (as it shouldn't).
It's easy to forget, due to this function, that you are actually loading other (usually linear) data and that APP shows stretched previews of that other data by default. Since we work with linear data from our camera's, this function helps quickly in evaluating the data that we have.
Â
Understanding the working of the preview filter is essential to understanding how APP works.
Â
On the right hand side of the screen we have an
- histogram and a
- stretch selectbox next to a
- save button.
The save button combined with the stretch/no-stretch choice will accomplish what we want to do:
Â
Save with the stretch selectbox enabled saves the data as shown in the image viewer with all stretch parameters applied.
Save with the stretch selectbox disabled, and APP will save the loaded data unaltered by the preview filter. This is direct evidence that the preview filter itself doens't alter the original data.
Â
An example, I load a Nikon NEF frame of the Cocoon Nebula:
by default APP applies the auto DDP stretch filter, so this is not the linear original data, the linear data can be seen if we disable DDP and set the (B)lack slider to 0 :
Â
So If you
- DISABLE DDP and
- SET the B(LACK) slider to zero = 0
- SET the W(hite) slider the maximum (depends on bit depth)
- SET G(amma) to 1 (so no gamma/log conversion)
Â
You get to see THE ORIGINAL, UNALTERED DATA in APP.
Â
Â
Now to demonstrate and 100% proof that saving of either
- stretched or
- unstretched
Â
data works with the save button and that the preview filter doesn't alter the original data, I now re-enable the DDP function, and APP again shows the auto-stretch since auto DDP is on as well:
Â
1) unstretched save on this image, disable stretch selectbox and click on save, I save a JPG with ICC profile on 75% quality, I expect to see the same image as the in the screenshot that has DDP off and B(lack) = 0
This is the JPG output, next to the screenshot of the linear data in the image viewer:
exactly like in the image viewer with DDP off and B(lack) on zero. The original unstretched data in the NEF is saved in the JPG.
Â
2) stretched save on this image, I expect to get a JPG that shows exactly what I see in the image viewer, this is the JPG output with correct color mangement using ICC profile included:
I think it's identical, so the JPG contains the stretched data created from having the the stretch parameters in APP applied on the original unaltered data in the NEF file.
Â
Final and important note: if you save data using the save button with stretch enabled, and if you then load that stretched image data into the image viewer. You can only see the original (now stretched) data again by disabling DDP and setting B(lack) to 0, otherwise APP tries to do a stretch again on the original (now stretched) data. Sometimes this is bad and ugly, sometimes a second stretch can even improve things. It's very dependent on the actual data how this turns out.
Â
Let me know if this is clear or needs more explanation.
Kind regards,
Mabula
Â




