Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - garry23

Pages: [1] 2 3 ... 10
General Help Q&A / EOSM Auto Bracketing ‘light’
« on: June 10, 2018, 02:20:53 PM »
When use auto bracketing the self timer lamp on the front and the power lamp on the back of the camera light up and stay on when taking images.

Is there a way, through ML, to switch these two lights off?

The problem is, when shooting through glass, you risk getting the front lamp as a reflection. Also if taking single images the power light stays on and I am seeing a ‘colour cast’ in my IR converted camera and am hypothesising the power lamp might be the cause, ie internal reflections.

Share Your Photos / IR post processing in LR
« on: May 27, 2018, 05:43:18 PM »
For those that like 'playing around' in the IR bands: I've just posted about ML-enhanced IR photography at:

As a flavour: here is one of the handheld images I took today with my trusty IR-converted EOSM:

Scripting Q&A / EOSM RIGHT/LEFT Keys
« on: May 23, 2018, 11:59:39 PM »
Have just noticed a strangeness on my EOSMs.

I've been looking at keys, ie the number returned.

UP, DOWN and LEFT return the expected number.

RIGHT does not return a key value to Lua.

On the EOSM the right key is used to toggle between exposure and aperture. I wonder if this Canon 'control' overrides the Lua side and thus the right key is not accessible in Lua?

Can anyone, eg @a1ex, throw some light on this strangeness?

General Help Q&A / ETTR and Auto Bracketing
« on: May 23, 2018, 08:38:37 PM »

I wonder if it would be possible for you to make ETTR and Auto Bracketing work together a little better.

My use case is simple. I always have ETTR on via half double press. But if Auto Bracketing is on I can’t access ETTR.

What I ideally would like is to have both ETTR and AB active, with ETTR active from the half double press and AB being triggered via, say, a full press.

What do you think?



Scripting Corner / Only to be read by EOSM Photographers ;-)
« on: May 12, 2018, 04:15:31 PM »
If you have an EOSM you may be interested in my latest blog at

These four scripts have been tuned for the EOSM, ie with its limited buttons but an active screen.

The scripts are:
- 1m is a Toggler, that allows you to control access to the other scripts and core ML functions such as ETTR, Dual-ISO and Auto-Bracketing;
- 2m is the Focus Bar;
- 3m is a Hand Held Helper script;
- 4m is a ND Helper script.

As I have written about these on past posts, I won't regurgitate how to use them here.

Share Your Photos / Infra Red photography
« on: May 07, 2018, 10:55:41 PM »
In case there are any ML based IR photographers out there, I thought you might like a read of the last two posts on my blog: here is the second one

First, ML is a great aid in IR photography, eg ETTR and my IR sensitive Focus Bar script; and second the latest release of LR allows you to carry out channel swapping via a LUT based profile, without having to go to Photoshop.



Scripting Corner / Semaphore message
« on: April 25, 2018, 06:52:57 PM »
I hope someone can point me in the right direction, as I can't work out why I'm getting these messages; as they don't appear to stop my script running.

I’m running the latest Lua experimental version on my EOS(M).



Scripting Corner / ND Simulation Helper Script
« on: April 17, 2018, 10:44:54 PM »
Whenever we wish to take a Long Exposure (LE) image, we would ideally fit an ND filter that allowed us to capture the best image, eg continuing to control DoF, ie with aperture, and select the time required, ie for the effect we were looking to create.

I wrote this script for those occasions where you don't have the 'right' ND filter.

This version of the script was explicitly written for my 5D3, ie button locations and availability: but any competent Lua scripter will be able to recode to suit their needs. Also I have annotated the script with comments and highlighted hooks, eg where you can insert your own controls, eg to switch off one of your scripts that might conflict with the ND script.

I personally use the script with my Focus Bar script, and have 'deconflicted' the two, ie if the ND script is running, it will switch off the FB script. I also have allocated the script to my C3 custom mode.

With the script off, my screen looks like this:

Here we see the FB script running, with ML telling me (bottom left) I'm running in C3 config mode.

To switch the ND script on simply press RATE (which is 100% hijacked by the script, but personally I never use the RATE key). The screen will now switch to look something like this:

Here we see the script is showing that we are requesting 10 images and, of course, at a shutter of 1/4s this equates to 2.5s. The green text tells you that if you use the MENU and INFO keys you will be adjusting, down and up, the number of brackets (images) to take.

Normal access to the MENU and INFO keys is achieved by switching off the ND script, ie pressing RATE.

If you press the ZOOM key when the script is running, the screen looks like this:

This shows that, in addition to the 10 images, I am now requesting a 5s delay between images. This delay allows you to carry out 'people removal' bracketing, ie through post processing using Photoshop statistics. Once again you can use MENU and INFO to adjust the time delay.

The scripts main menu looks like this:

The ND only option shown means that only the requested images will be taken. The other option is ND+. In this case the script will take an ML advanced bracket sequence after the other images have been captured. Thus in post you will have a near perfect bracket set: the ND brackets that will be combined using the smart object stack mode technique and the exposure set, that you can blend in.

The first image delay is either 0, 2 or 5s. So switch of Canon delays.

The User feedback is off, audio, led or both. This is useful to help in tracking the script's start, which is achieved via a long (5s+) press of the SET button.

The Additional menu looks like this:

The bookmark is either NO or YES. YES will place a dark frame at the start and end of the capture sequence: to help differentiate a sequence in post.

Shadow SNR is a control variable that is between 0, 2, 4 or 6Ev and controls the ETTR shadow end. Use this to ensure the advanced bracketing starts at a shadow exposure that is 'brighter' that if the value was 0. The ETTL Set Time is there to help ensure the ETTR finds a solution.

The script will remember the top menu's state, but not the additional menu.

I'll be releasing the script on my blog at and will write about post processing. But for now I'm giving ML friends early access to the script at:

As usual I welcome all feedback.

Scripting Q&A / Tracking camera state
« on: April 15, 2018, 10:42:42 AM »

I've played around with lots of ideas on the above, and I have been successful in some areas, eg

Code: [Select]
repeat -- hang around until ETTL value has stabilised
check_tv = camera.shutter.apex
msleep (scriptmenu.submenu["Settings"].submenu["ETTR Set Time?"].value*1000)  -- adjust this for your camera. The time delay allows the ML ETTR process to settle down
until check_tv == camera.shutter.apex

But I can't get the above approach to work when I'm wanting to pause the script until the camera has stopped taking images, especially when I don't know how many images it is going to take, eg when advanced bracketing.

Generically I was looking to use the above this way:

Code: [Select]
repeat -- hang around until something has happened that you are tracking
-- put stuff here that you want to do or do nothing
until {thing you are watching} == {true state}

The problem I have is, I cant't find a 'thing to watch' to detect the end of advanced bracketing, and I don't want my pause to negatively interact with advanced bracketing.

Do you have any ideas how I might approach this scripting challenge, ie pause a script (allowing other tasks (Canon and ML) to compete) and detect the restart condition, eg image taking using advanced bracketing has stopped.



Scripting Corner / Lua tuning of Advanced Auto Bracketing
« on: April 11, 2018, 08:07:46 AM »

We have discussed Advanced Bracketing before.

For me, as a Lua coder, it is a very powerful tool, however, it lacks finesse, as I have no control over it.

My latest scripting project is making use of the Auto Advanced Bracketing, but it is not fully meeting my needs.

As an example, if I start auto bracketing at a very fast shutter, eg 1/2000, the bracketing will stop when the shadow end is still very underexposed. I would say 2 stops at least underexposed.

Can I convince you to give the Lua coder (sic) a way to 'adjust' the auto bracketing, at least for the shadows?



One thought is to

Scripting Q&A / Understanding camera.wait
« on: April 08, 2018, 11:27:27 AM »

Now you have added in the camera.wait, can you give a little more info regarding its value.

I see you say that camera.shoot also waits until you can take an image, so where would you inject camera.wait.

Is there a situation that you are aware of that requires (sic) camera.wait?



Scripting API suggestions / Exploiting the Mode Dial
« on: April 07, 2018, 08:21:54 AM »

A thought.

Would it be possible to make use of the mode dial so that one could 'allocate' scripts to, say, C1 etc.

This way we could have scripts loaded that only get used if the mode dial is on C1 or C2, say.

Obviously the mode dials, I assume will be set the same, eg manual etc, as all we are doing is detecting in Lua, say via a property, the mode dial state, and acting on this.

As I say, just a thought.



Scripting API suggestions / Exposure feedback
« on: March 30, 2018, 12:52:24 PM »

As we know, when advanced auto bracketing is operating we are provided LV feedback on the last image, ie % over and under.

My suggestion is that Lua provide a similar feedback, ie on the exposure statistics of the last image.

Thus we would have the following fields that get info


A null return would indicate no last image to gather statistics on, yet.

The above functionality would allow us to be more inventive with our bracketing strategies.

I could even imagine, in time, additional functionality that allowed the user to specify an area on the image to gather the statistics in, eg relative to LV x y values.




Scripting API suggestions / AF control
« on: March 24, 2018, 09:59:54 AM »
Hope someone can help. Using Lua, is it possible to control, ie switch on and off, AF?

Scripting Corner / Hand Held Helper Script
« on: March 13, 2018, 06:28:13 PM »
In case anyone is interested, here is my combined hand held helper script: a combination of two of my previous standalone scripts that did exposure and focus bracketing.

This script is ideally sorted for hand held wide angle situations, with minimal image to image movement.

You can choose to exposure bracket or focus bracket.

In exposure bracketing mode the script will maximise both time and ISO bracketing to cover the range, ie slowest shutter to highest ISO.

In focus bracketing mode the script will use aperture bracketing (at max closed down aperture); thus the script will work with non AF lenses, as long as aperture can be controlled.

The script can be downloaded from here:

Scripting Corner / Auto Hand Held Focus Stacking
« on: March 05, 2018, 11:16:40 PM »
If you have read my post you know I like exploring how to get more out of my Canon EOS through Lua scripting in Magic Lantern.

In a recent post I introduced a hand held exposure bracketing script, which is especially suited to wide angle (hand held) photography.

In this post I'm introducing a simple auto hand held focus bracketing script, once again, especially suited for wide angle photography where you need a 'little help' in the foreground.

The script can be downloaded from here:

Surely I hear you say, why bother; as with a wide angle lens one can get a very large depth of field, from near to infinity. But sometimes you just need that additional foot of so in the near field.

The use case is where you are hand holding and have set your focus for the far field, say at 2-3 x the hyperfocal, to ensure a low infinity blur (see my blog at for an explanation why you should not focus at the hyperfocal distance), but your near field just doesn't cover your needs.

Yes you could keep reducing the aperture, but, as we know, this brings in two negatives. First, diffraction blur increases and second dust jumps out of your images, especially in the sky.

Of course, if you were on a tripod, landscape focus bracketing would be easy through the use of my Focus Bar script. But what if you are hand holding and/or using a lens that doesn't report focus distance.

My Auto Hand Held Focus Stacking script might be worth trying out.

Once you have set up the menus for your needs, eg max ISO, min hand holding shutter and smallest aperture etc, all you need to do is set the base (open aperture) exposure and the script will attempt to take a second image at the smallest aperture. This is accomplished through shifting the shutter speed and ISO, ie to keep the 'same' exposure between the images.

Rather than explain things further, let's look at a test shot. The base (24mm) exposure was at F/3.5, 1/40s at ISO100. The focus was set past the hyperfocal distance to produce a sharp far field image:

But as we can see, the near field is rather out of focus.

The script decided in this case, because I set the smallest aperture at F/16, to take the second image at 1/40s (because this was close to my hand holding limit, no shutter advantage was possible with this image) and at an ISO of 2000:

Because we are at ISO 2000 the entire image exhibits poor SNR compared to the F/3.5 image; but the near field is now acceptably 'in focus'.

Once ingested into Lightroom it was a simple matter to use 'Match Total Exposure', if required, and do a round trip to Photoshop. Once the two images are stacked in Photoshop, they can be auto aligned and then it is a simple matter to mask in the near field detail that you need. Using this approach allows me to 'protect' such things as skies from small aperture effects (although, of course, there is no sky in this image). Here is the resultant blend:

Bottom line: Although I wrote the script as a 'bit of fun', I think it could be of value in some situations; where you need a little focus help in the near field. As usual I welcome feedback on this post.

Hardware and Accessories / New Canon flash
« on: February 28, 2018, 02:35:38 PM »
Ok here it is if you haven’t seen it

But uses half double press.

Potential ML conflict. Or not?

Scripting API suggestions / Version number
« on: February 21, 2018, 06:39:46 AM »
As the Lua environment and the API evolves, one 'problem' for scripters like me is to ensure a script is fit to run.

I was wondering if there was a way to keep track of the Lua module's version?

For instance a simple progression number, eg x, x+1 etc

This way a script can check this version number and take appropriate action, eg not run and/or provide user feedback.

Share Your Photos / Another Hand Held Bracketing example
« on: February 20, 2018, 11:04:52 PM »
An example of another image from my Winchester Cathedral trip last weekend. Once again showing the power of my new (auto) Hand Held Bracketing script.

In this capture the script decided to take the following bracket set with the Irix 11mm lens set at F/5.6:

    ISO 100 @ 1/250s
    ISO 800 @ 1/250s
    ISO 6400 @ 1/250s
    ISO 6400 @ 1/30s
    ISO 6400 @ 1/125s

After ingesting into Lightroom, doing a lens correction on each image, followed by an HDR Merge, I used Auto Tone in the Basic Panel to establish a starting point for a few more tweaks.

I then did a round trip to Photoshop, where I used one of my favorite filters to bring out some local contrast detail, namely NEXT from

I must say, as I was hand holding, I'm personally pleased with the image. What do you think for a hand held capture?

Share Your Photos / Hand Held Vertirama
« on: February 18, 2018, 10:46:16 PM »
I thought some may be intrigued by what you can do hand holding a camera with Magic Lantern.

This is a 15 image vertirama, made up of three sets of 5 brackets captured with my hand holding bracketing script.

The image was totally processed in Lightroom.

Scripting Corner / Units
« on: February 12, 2018, 06:42:41 PM »
I hope some kind soul can educate me.

I looking at menu set/get and trying to work out the units in and out.

For example, in ETTR min shutter the min is 16 and the max is 152.

160 equates to 1/8000.

But what's the conversion, ie these aren’t APEX units.

Other menus seem to use 1/8 APEX units.

I'm a bit lost as I wish to set things myself, ie from a script, so I need to understand the units.

Scripting Corner / Auto Hand Held Bracketing Script
« on: February 11, 2018, 05:53:21 PM »
This script attempts to create an 'optimized' set of brackets when hand holding.

The script may be downloaded from here:

The script uses a two pass bracketing scheme and the idea for the script was triggered by reading

The script assumes you have set exposure to capture the highlights, eg using ETTR. You should have advanced bracketing off, so you can use ETTR as part of your capture workflow. The script will switch advanced bracketing on and off.

The first pass takes three brackets using ISO shifting up to the maximum ISO, which is sensibly assumed to be 6400 in the script.

The script will then see if a second pass can be accomplished, ie if the base shutter was above the minimum shutter. If a second pass can be taken the script will take two additional brackets from the minimum shutter speed and the maximum ISO, ie doing time bracketing at a fixed, max ISO.

Thus you will always get either 3 or 5 brackets, straddling 1/30s (or your minimum shutter) to the fastest shutter needed for the highlights, and from the lowest ISO you can use for the base highlight to ISO 6400.

As I explore the HHB script I will write about it on my blog at

As usual I welcome testers and feedback.

Scripting Corner / Shutter property question
« on: February 11, 2018, 03:08:43 PM »

Hope you can throw some light on this need.

I wish to track the number of images taken and use this to deconflict conflicts in a Lua script.

I tried using the property handler, but get strange results. Here is the test code:

Code: [Select]
count = 0

function property.SHUTTER:handler(value)
count = count + 1

function dis(arg)
display.print(tostring(count), 200, 140, FONT.LARGE,COLOR.BLACK,COLOR.WHITE)

event.shoot_task = dis

Count doesn't correlate with shutter actions and doesn't seem to work if the shutter is triggered through Canon, rather, than say ML advanced bracketing.

Also, when it does trigger, I get strange counts, ie if three brackets taken, I get a count of 4 most of the time.

Tutorials and Creative Uses / Hand Held HDR
« on: February 10, 2018, 10:43:03 AM »
As some may have spotted, I've been exploring my hand held bracketing (HHB) options.

The main restriction with HHB is, of course, your slowest shutter speed. With a wide angle lens, where most of my HHB needs fall, you can get away with some slow shutters, eg down to, say, 1/20 or lower if you haven't been drinking :-)

The ML ETTR and Advanced Bracketing are two killer features.

First, ETTR will give me my base (highlight exposure), fit for my hand holding limit, say, 1/30s.

Then Advanced Bracketing, with Full ISO shifting gives me the 'best' chance of getting the shadows: all hand holding.

I set my Canon auto ISO range to a max of 6400 on my 5D3.

In the example below I set Advanced Bracketing to 3x3EV, and ETTR came in at 1/30s at ISO 200 (my base exposure).

Although using Advanced Bracketing in the 'simple' mode, I'm also seeing if I can script in some intelligence, ie multiple HHB sequences, according to where your base ETTR starts.

Anyway here is the result of today's HHB experiment:

Scripting Q&A / Lua access/control of certain ML functionality
« on: February 09, 2018, 12:55:48 PM »
@a1ex or anyone

I’m about to start a new scripting project and wish to do a few things.

First I wish to trigger advanced bracketing from the script. At the moment advanced bracketing can’t be explicitly triggered from a script, as far as I know.

Second, I wish to wait until the bracketing has finished and detect this, so I can change the bracketing parameters and, in the script, start another sequence.

Thirdly, when each sequence finishes, and is detected by Lua, eg a wait state looking for bracketing to stop, I ideally would like to know the camera setting at the end condition, eg shutter speed, aperture and ISO.

Am I too far off piste?



Pages: [1] 2 3 ... 10