MAY 4 2026: APP 2.0.0-beta44 has been released !
New improved internal memory controls should now work on all computers
May 1 2026: APP 2.0.0-beta43 has been released !
Improved internal memory controls (much more stable and faster on big datasets), fixed CPU image viewer, fixed Narrowband extraction demosaic algortihms.
Apr 29 2026 APP 2.0.0-beta42 has been released !
New improved Normalization engine, Fixed random crashes in integration, fixed RGB Combine & Calibrate Star Colors, fixed Narrowband extraction algorithms, new development platform with performance gains, bug fixes in the tools, etc...
Apr 14 2026: Google Pay, Apple Pay & WeChat Pay added as payment options
Update on the 2.0.0 release & the full manual
We are getting close to the 2.0.0 stable release and the full manual. The manual will soon become available on the website and also in PDF format. Both versions will be identical and once released, will start to follow the APP release cycle and thus will stay up-to-date to the latest APP version.
Once 2.0.0 is released, the price for APP will increase. Owner's license holders will not need to pay an upgrade fee to use 2.0.0, neither do Renter's license holders.
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
Â




