Thursday, 22 June 2017

MAGIX Video Pro X (2017 edition) review
£349 (399.99 Euros)
[Currently (June 2017) on offer at: £299]
Upgrade from previous version: £149 (199.99 Euros)

If you need a good video-editing package for Windows, the latest release of Video Pro X from MAGIX software is something that you may want to consider. It’s a nice-looking, easy-to-use package that lets you import video and audio clips, edit them on a multi-track time-line, apply transitions and video effects and export the final movie in various common formats. For a broad overview see my review of the previous release, Video Pro X 8. Contrary to expectations, this new release is not called Video Pro X 9. The number has now been silently omitted. This is now just plain Video Pro X. More on that later…

The main new feature in this version is something called ‘deep colour grading’. Colour grading is a post-production process for altering the overall appearance of your video by changing the colours. This may involve ‘colour correction’ (adding warmth to the colour of a video made using cold-looking studio lighting, for example) as well as effects to  make the videos look more vibrant or subdued or to give them the look of certain types of traditional film stock. This is what MAGIX has to say: “Colour-true processing of material is carried out by precise measuring instruments: vectorscope, waveform monitor, histogram and RGB parade. The software supports all formats from the professional and consumer sector such as ProRes, HEVC 10-Bit, AVC and MPEG-2. Thanks to new support for lookup tables (LUT) in Video Pro X, it can sync flat recordings with LUTs from the camera manufacturer or upload cinematic effect LUTs to create unique film styles. Lookup tables save colour grading information and can easily be imported and applied, or custom created and saved.”

Here I’ve applied one of the (admittedly fairly extreme) Lookup Table colour effects to a clip. The original clip is on the right. The one with the colour effects applied is on the left.
Colour grading can be a fairly specialised area of video processing and high-end professional users may use a combination of expensive software and hardware (editing and mixing panels) for this job. By integrating a useful range of colour correction tools, Video Pro X seems to be trying to appeal to the ‘mid range’ professional video-maker. However, you need to be aware that, in spite of heavy promotion of this feature, Video Pro X does not provide a completely new ‘Colour Grading’ toolset (as I was expecting). Instead, the existing colour manipulation effects such as brightness/contrast, Colour, Colour Correction and Shot Match (the ability to automate make two video adopt the same range of colours and tonal values) have all been updated to provide greater (16-bit) colour accuracy. There are also sets of predefined colour schemes called ‘lookup tables’ which let you quickly apply to a clip a set of colour values with names such as ‘Cinematic’, ‘Neo’ and ‘Vintage’.

The other principal changes to this release of Video Pro X are support for more video formats such as H.264 and HEVC/H.265; more control over audio processing for sound mixing and audio restoration; and various new effects including some new blurs and masks that can be ‘attached’ to moving images. It also does 360 degree ‘video stitching’ and exporting, assuming you have a camera capable of recording 360 degree videos.

As I mentioned earlier, Video Pro X no longer uses version numbers. The idea is that rather than release a mass of updates all at once, when a new version is released, updates will be made incrementally as the software continues to be developed. The purchaser gets all new updates at no additional cost for one year. After that, you can carry on using your existing version but you will only get updates if you extend your ‘Update Service subscription’ at an additional cost.  That cost is, in my view, rather high at £149 (199.99 Euros). I can’t say I’m terribly keen on this subscription model. When software is upgraded with a numbered release you should usually expect to see a definitive list of fairly substantial changes and you can then make an informed decision on whether or not the upgrade cost is worth it. By signing up to a ‘trickle through’ system of updates you have no real idea whether you are paying for major new features or just minor changes and bug fixes.

The other thing I dislike about this ‘non-numbered’ update system is that new versions of the software overwrite older versions. If you have an older version that works and that you are happy with, that means that you cannot keep that installation while you evaluate a new release. I experienced a problem with this myself. When I installed the latest version, it failed to activate successfully online. I had to consult MAGIX technical support to find out how to remove an initialisation file in order to uninstall and reinstall the software and activate it as required. If a user had a similar – or even more catastrophic – problem with installation, there would be no way to revert back to the older release while that problem was solved because the new installation automatically removes any previous release. I think that’s essentially undesirable.

MAGIX often has special deals and added extras on offer. At the time of writing, a bundle is offered including 3rd part effects such as the HitFilm Toolkit pack which I am using here to enhance skin tones.
So, in short, how does this latest release compare with the previous one? Is it worth upgrading? The only ‘big’ new feature in this release is the integrated colour grading. Now, I don’t mean to underestimate the importance of this. If you want more control over colour temperature, saturation and so on, well, this will give it to you. And for artistic video-making – for example, if you want to convey mood and drama in your videos – that’s a good thing to have. But if that is not of compelling interest to you, then it seems to me that this new release is a bit thin on exciting new features.


Video Pro X is a good general-purpose video editing application that (depending on your perspective) sits at the high end of the ‘serious amateur’ or low end of the ‘professional’ calibre products. MAGIX also markets the VEGAS video-editing suites, which it acquired from Sony (see my reviews of VEGAS Pro Edit 14 and VEGAS Movie Studio). As I’ve said previously, this large range of competing editions is confusing. It’s confusing to me and I can only assume it must be equally confusing to most potential customers. The various editions of VEGAS range from beginner to advanced level. It appears that the high-end VEGAS editions are now considered to be the more professional-level of the offerings from MAGIX since ‘upgrade’ deals are offered from Video Pro X to VEGAS Pro Edit ($199) or VEGAS Pro ($299).

Video Pro X is pretty easy to use and has a decent range of features. Personally, I’d be happy to use it for most video-editing projects. As for the value of the new additions, though, that all depends on how much you need ‘deep colour grading’. If you don’t feel any compelling need for this feature, then this new release may seem somewhat underwhelming.

Tuesday, 6 June 2017

C Programming for Beginners: Variables and Types

This is part 3 of my series on C programming for beginners.

See also: part 2.

When you want to store values in your programs you need to declare variables. A variable is simply a name (more formally, we’ll call it an ‘identifier’) to which some value can be assigned. A variable is like the programming equivalent of a labelled box. You might have a box labelled ‘Petty Cash’ or a variable named pettycash. Just as the contents of the box might vary (as money is put into it and taken out again), so the contents of a variable might change as new values are assigned to it. You assign a value using the equals sign (=).

In C a variable is declared by stating its data-type (such as int for an integer variable or double for a floating-point variable) followed by the variable name. You can invent names for your variables and, as a general rule, it is best to make those names descriptive.

This is how to declare a floating-point variable named mydouble with the double data-type:

double mydouble;

You can now assign a floating-point value to that variable:

mydouble = 100.75;

Alternatively, you can assign a value at the same time you declare the variable:

double mydouble = 100.75;


There are several data types which can be used when declaring floating point variables in C. The float type represents single-precision numbers; double represents double-precision numbers and long double represents higher precision numbers. In this course, I shall normally use double for floating-point variables.


Now let’s look at a program that uses integer and floating point variables to do a calculation. My intention is to calculate the grand total of an item by starting with its subtotal (minus tax) and then calculating the amount of tax due on it by multiplying that subtotal by the current tax rate. Here I’m assuming that tax rate to be 17.5% or, expressed as a floating point number, 0.175. Then I calculate the final price – the grand total – by adding the tax onto the subtotal. This is my program:

#include <stdio.h>

int main(int argc, char **argv) {
int subtotal;
int tax;
int grandtotal;
double taxrate;

taxrate = 0.175;
subtotal = 200;
tax = subtotal * taxrate;
grandtotal = subtotal + tax;

printf( "The tax on %d is %d, so the grand total is %d.\n",
subtotal, tax, grandtotal );
return 0;

Once again, I use printf to display the results. Remember that the three place--markers, %d, are replaced by the values of the three matching variables: subtotal, tax and grandtotal.

When you run the program, this is what you will see:

The tax on 200 is 34, so the grand total is 234.

But there is a problem here. If you can’t see what it is, try doing the same calculation using a calculator. If you calculate the tax, 200 * 0.175, the result you get should be 35. But my program shows the result to be 34.

This is due to the fact that I have calculated using a floating-point number (the double variable, taxrate) but I have assigned the result to an integer number (the int variable, tax). An integer variable can only represent numbers with no fractional part so any values after the floating point are ignored. That has introduced an error into the code.

The error is easy to fix. I just need to use floating-point variables instead of integer variables. Here is my rewritten code:

#include <stdio.h>

int main(int argc, char **argv) {
double subtotal;
double tax;
double grandtotal;
double taxrate;

taxrate = 0.175;
subtotal = 200;
tax = subtotal * taxrate;
grandtotal = subtotal + tax;

printf( "The tax on %.2f is %.2f, so the grand total is %.2f.\n",
  subtotal, tax, grandtotal );
return 0;

This time all the variables are doubles so none of the values is truncated. I have also used the float %f specifiers to display the float values in the string which I have passed to the printf function. In fact, you will see that the format specifiers in the string also include a dot and a number numbers like this: %.2f. This tells printf to display at least two digits to the right of the decimal point.

You can also format a number by specifying its width – that is, the minimum number of characters it should occupy in the string. So if I were to write %3.2 that would tell printf to format the number in a space that takes up at least 3 characters with at least two digits to the right of the decimal point. Try entering different numbers in the format specifiers (e.g. %10.4f) to see the effects these numbers have. Here are examples of numeric formatting specifiers that can be used with printf:


%d   print as decimal integer
%4d   print as decimal integer, at least 4 characters wide
%f   print as floating point
%4f   print as floating point, at least 4 characters wide
%.2f   print as floating point, 2 characters after decimal point
%4.2f   print as floating point, at least 4 wide and 2 after decimal point

This series of C programming lessons is based on my book, The Little Book Of C, which is the course text for my online video-based course, C Programming For Beginners, which teaches C programming interactively in over 70 lessons including a source code archive, eBook and quizzes. For information on this courses see HERE.