Intervalometer Ramping Module (adv_int.mo)

Started by dmilligan, September 21, 2013, 12:53:31 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

dmilligan

WIP for replacing this module with a script -> http://www.magiclantern.fm/forum/index.php?topic=17570





Advanced Intervalometer (adv_int.mo)

This module is for advanced ramping and control of exposure parameters during an intervalometer sequence.With this module you specify the ramping by creating keyframes with the values of various parameters that you want to ramp to. When the intervalometer is running, this module ramps the specified parameter(s) from one keyframe to the next.

Update: The Advanced Intervalometer menu now shows up under the Intervalometer submenu.


I think some cool effects can be done by ramping aperture (and let AutoETTR compensate the expo with Tv, ISO) and focus or a combination of the two. You could have a scene where everything is in focus with f/22 and then ramp down to f/2 to blur out everything but your subject. The video below is my first quick and dirty test of this module and does just that:

I ramped the Av from min to max and back to min, and let AutoETTR+Post Deflicker take care of the exposure.

The other potential use for Av ramping is a full day to full night (or vice versa) time-lapse, where you might want a pretty small Av during the day, and then open it all the way wide open and move to focus infinity to get the faint light of stars/milky way when it gets dark. So basically you are making the "artistic" exposure choices, with your knowledge of time of sunset/twilight, while AutoETTR takes care of then optimizing the exposure.

Here's some examples where I used Av ramping with AutoETTR:




Tv ramping could be very useful for doing some varying amounts of motion blur. Think car lights at night: by varying the shutter angle, you vary the length of the streaks of car lights. I've seen this done in timelapses, and the effect is very cool.

Changing the actual intervalometer period allows you to create accelerating or decelerating timelapses with out having to waste shutter actuations (you can easily accelerate or decelerate in post, but you will in essence be throwing out frames). Another thing you could do is to actually slow down your footage in post by the same amount you ramp the intervalometer period. This would give the effect of the time-lapse not actually chaining speed, but it would become more or less "choppy".

To use, download the latest nightly and add this module to the ML/modules folder:
https://bitbucket.org/dmilligan/magic-lantern/downloads/adv_int.mo

See the readme for instructions on how to use.

Current list of settings that can be ramped

  • shutter
  • aperture
  • ISO
  • focus
  • interval time
  • bulb duration
  • white balance

Updates:
[2014-2-25] Updated to work with new menu features (mult-level submenus and menu_caret)
[2014-3-8] Updated to work with module version 5, Added ability to adjust Tv, Av, ISO from within adv_int menu, so you don't have to leave the menu and come back



Disclaimer:
I'm not responsible for anything that might happen to your camera from running my code. Use at your own risk.

britom

7D Builds with RAW support: http://bit.ly/14Llzda

RenatoPhoto

Fatastic! This could be the LRTimelaspe for ML!  Maybe you should post 5D3 autoexec.bin and the module for testing.
http://www.pululahuahostal.com  |  EF 300 f/4, EF 100-400 L, EF 180 L, EF-S 10-22, Samyang 14mm, Sigma 28mm EX DG, Sigma 8mm 1:3.5 EX DG, EF 50mm 1:1.8 II, EF 1.4X II, Kenko C-AF 2X

dmilligan

Added builds and readme, see first post.

RenatoPhoto

Great, I downloaded the module and will start learning how to use it.

One of the things I wish to have a better control is White Balance.

Of course the access ETTR parameters like SNR and highlight ignore will be very useful for optimizing day to night to day timelaspes.

I have done some experimenting with ETTR+DUAL ISO in a Timelapse and the results are very good. 

ETTR + DUAL ISO = 14 Stop Dynamic Range Timelapse - Postprocessing Guide
http://www.magiclantern.fm/forum/index.php?topic=8443.0

And.. thanks for sharing this module, the idea is great!
http://www.pululahuahostal.com  |  EF 300 f/4, EF 100-400 L, EF 180 L, EF-S 10-22, Samyang 14mm, Sigma 28mm EX DG, Sigma 8mm 1:3.5 EX DG, EF 50mm 1:1.8 II, EF 1.4X II, Kenko C-AF 2X

Doyle4

600D please dude! if i could compile id do it my self but i have no clue what's so ever.

Cheers, this be sweet for what im after doing!

dmilligan

Added 600D build, see first post

@Doyle4,
btw, compiling is really not hard at all, if you have a Mac I made a script to set everything up to compile ML. Just install xcode  from app store and command line tools from xcode prefs, then just type this in the terminal, and you should end up with a compiled ML:
bash <(curl -L https://bitbucket.org/dmilligan/magic-lantern/downloads/SetupML.sh)
(this script downloads code from the main repo, not mine, so you'd just need to checkout mine instead for testing this module)

Doyle4

Thank you very much.

Mac user here too, ill copy that and have a play, thanks again.

Doyle4

getting an error at the end..  :-\

[ VERSION  ]   ../../platform/60D.111/version.bin
make[1]: truncate: No such file or directory
make[1]: *** [../../platform/60D.111/version.bin] Error 1
make: *** [60D] Error 2

fpena06


mageye

I have been using my 500D for timelapse so would really appreciate a build for this camera.

Thanks in advance :)
5DMKII | 500D | KOMPUTERBAY 32GB Professional 1000x |Canon EF 50mm f/1.8 II | Samyang 35mm f/1.4 ED AS UMC | Canon EF 75-300mm f/4-5.6 III | Zoom H2 (4CH. audio recorder) | Mac OS X 10.9.2 | Photoshop CC | After Effects CC | Final Cut Pro 7

dmilligan

@Doyle4,

type these line the terminal, I'll fix my script with this also:


export PATH="$PATH:$(brew --prefix coreutils)/libexec/gnubin"
echo "export PATH=\"\$PATH:\$(brew --prefix coreutils)/libexec/gnubin\"" >> ~/.bash_profile
cd ~/magic-lantern
make clean
make

Doyle4

Thank you dmilligan,

Im guessing when i build this it grabs the other stuff from the nightly builds and then adds your module?

mageye

Just a thought. This system is based on keyframes which is fine. I was wondering if such events could be dictated by global time? (as in the cameras main clock). Or the keyframes could (optionally) be global time values?

This (if it could be implemented) could be a way to change values at actual times based around, for example, when the sun sets or rises.

I don't know if this would be possible? but I think it could be useful? :-\
5DMKII | 500D | KOMPUTERBAY 32GB Professional 1000x |Canon EF 50mm f/1.8 II | Samyang 35mm f/1.4 ED AS UMC | Canon EF 75-300mm f/4-5.6 III | Zoom H2 (4CH. audio recorder) | Mac OS X 10.9.2 | Photoshop CC | After Effects CC | Final Cut Pro 7

RenatoPhoto

Quote from: mageye on September 22, 2013, 04:03:53 PM
I don't know if this would be possible? but I think it could be useful? :-\
Agree, easier to prgram based on time rather that frames.
http://www.pululahuahostal.com  |  EF 300 f/4, EF 100-400 L, EF 180 L, EF-S 10-22, Samyang 14mm, Sigma 28mm EX DG, Sigma 8mm 1:3.5 EX DG, EF 50mm 1:1.8 II, EF 1.4X II, Kenko C-AF 2X

Doyle4

Quote from: mageye on September 22, 2013, 04:03:53 PM
Just a thought. This system is based on keyframes which is fine. I was wondering if such events could be dictated by global time? (as in the cameras main clock). Or the keyframes could (optionally) be global time values?

This (if it could be implemented) could be a way to change values at actual times based around, for example, when the sun sets or rises.

I don't know if this would be possible? but I think it could be useful? :-\

Like sound of this..

Be also nice to work along side autoexposure, but Intervalometer Ramping Module could stop aperture and iso change in autoexpsoure allowing just shutter time to changed if worked out correctly.

Doyle4

Quote from: dmilligan on September 22, 2013, 03:25:12 PM
@Doyle4,

type these line the terminal, I'll fix my script with this also:


export PATH="$PATH:$(brew --prefix coreutils)/libexec/gnubin"
echo "export PATH=\"\$PATH:\$(brew --prefix coreutils)/libexec/gnubin\"" >> ~/.bash_profile
cd ~/magic-lantern
make clean
make


Still getting error on 60d... odd one.

dmilligan

more builds up

Quote from: mageye on September 22, 2013, 04:03:53 PM
I don't know if this would be possible? but I think it could be useful? :-\

Yes this is something I considered and plan on implementing. It's not really difficult at all to do, the main problem is simply creating a user input method for time. It's really easy to use the ML menu API to input integers (like the number of frames), it's going to be a little more challenging to create a date/time input method. This is why I went with the frame method to begin with, it's easy to input and I can have something that I can start using to test with. As this is mostly just a connivence issue, I'm probably going to work on some of the more pressing things first (like adding new parameters to control, and working out bugs), just so we can be trying them out and getting new ideas. I will get to it eventually though.

Some other ideas I have:

  • other ramping functions besides linear (like quadratic, hyperbolic, etc - IDK how useful this would be)
  • ways to smooth out the ramping (smarter rounding basically) for instance if you changed the focus 20 steps in 23 frames, it would be smart enough to just wait 3 frames before starting the ramp so that the ramp is a smooth 1 step/frame. (mathematically I'm not sure the best way to go about this so I'm open to suggestions)
  • triggers - being able to trigger keyframes from specific conditions (for instance triggering a keyframe sequence off of focus acquisition or lighting changes, SNR, etc) - this will be very hard to implement and come up with UI for
  • choosing a filename to save and load as (I need file_man.mo to have a select_file function or something like that and combine that with ime) - right now the filename is just hardcoded.

The next thing I will work on will be adding WB, ETTR, and DUAL ISO parameters.

(I almost always shoot RAW picture quality for timelapse so WB is a non-issue for me, but I can see the need for it if shooting JPEG to save memory, esp for extremely long timelapses)

RenatoPhoto

Quote from: dmilligan on September 22, 2013, 11:14:36 PM
The next thing I will work on will be adding WB, ETTR, and DUAL ISO parameters.
(I almost always shoot RAW picture quality for timelapse so WB is a non-issue for me, but I can see the need for it if shooting JPEG to save memory, esp for extremely long timelapses)
I use RAW but I need a means of changing the WB from night to day in a progressive manner, you can probably do this in light-room but if you use ACR alone it is not possible.
Thanks
http://www.pululahuahostal.com  |  EF 300 f/4, EF 100-400 L, EF 180 L, EF-S 10-22, Samyang 14mm, Sigma 28mm EX DG, Sigma 8mm 1:3.5 EX DG, EF 50mm 1:1.8 II, EF 1.4X II, Kenko C-AF 2X

dmilligan

you could probably do it with exiftool, xmp sidecars, and a script, but that would be hard

IMO after effects needs a way to keyframe ACR settings, that would be freakin awesome (also very useful for RAW video)

glubber

Never heard of LRTimelapse?
Its capable of doing various transitions of exposure, wb and other develop parameters of LR/ACR using xmps.
If you stick under 400 frames it's free-trial.
-> http://lrtimelapse.com/

Quote from: dmilligan on September 22, 2013, 11:33:50 PM
you could probably do it with exiftool, xmp sidecars, and a script, but that would be hard

I had this idea too in order to ramp the deflicker xmps in post.
the workflow is using exiftool and excel (or oo calc).
In fact it's hard and cumbersome  :P
http://www.magiclantern.fm/forum/index.php?topic=5705.msg70401#msg70401
EOS 550D // Sigma 18-200 // Sigma 18-70 // Canon 10-18 STM

mageye

@dmilligan

Thanks for everything you are doing with this. It looks as if you have a vision for this and that's good to see :D. I am glad you had already thought about the time based thing too and I believe that it will just be a matter of time (and hard work of course) that this feature is realised; along with the many more that you have mentioned. I have faith :).

I am keen to test this out. I will start with some tests on my 5DmkII so I can familiarise myself with the practise. What I really need (personally) is for my 500D to be able to run this too.

The build you provided (for the 500D) seems to function with all the modules excluding the ettr.mo and silent.mo modules :(. Obviously I would like for them to be functioning alongside your module so I can put it to the test properly.

So I am sorry to bother you with this but: Is it possible that you could provide one that works with the ETTR? (and possibly silent pics too ;))

Thanks again and keep up the good work :D.
5DMKII | 500D | KOMPUTERBAY 32GB Professional 1000x |Canon EF 50mm f/1.8 II | Samyang 35mm f/1.4 ED AS UMC | Canon EF 75-300mm f/4-5.6 III | Zoom H2 (4CH. audio recorder) | Mac OS X 10.9.2 | Photoshop CC | After Effects CC | Final Cut Pro 7

dmilligan

@mageye
you're very welcome, thanks for the compliments

a1ex has just merged in my core changes, so as of the next nightly you will just be able to use the nightly builds and simply add my adv_int.mo to the ml/modules directory. After the next nightly is built, I will update the first post with just a link to the .mo and direct ppl to the nightlies.

dmilligan

Quote from: glubber on September 23, 2013, 09:10:21 AM
Never heard of LRTimelapse?

Never heard of it, but it looks cool, however I don't like paying for things I could probably write myself ;) . I have some experience writing adobe scripts, I might be able to write a script for AE that makes ramping ACR settings easier. I know that the script API for AE has some pretty good integration with the native AE GUI, but I'm not that familiar with the AE scripting, I've mostly only done photoshop scripting. Yet another thing on the todo list ;)

a1ex

Quote from: dmilligan on September 23, 2013, 03:19:41 PM
so as of the next nightly you will just be able to use the nightly builds and simply add my adv_int.mo to the ml/modules directory.

Next nightly is up and running, can you check it?