Scripting - ways forward?

Started by Totte, October 20, 2014, 03:14:00 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Totte

Hello,
I took an interest in ML a couple of years back, when I wanted to automate the process of shooting solar eclipses. At the time it looked like ML with PicoC scripting was going to provide everything I could wish for, but my 5Dc wasn't supported because of a lack of memory, if I remember correctly. So instead I hard-coded an exposure sequence to work along with the intervalometer and compiled it for the 5Dc.

Now that I've decided to with 5D mkIIs it looks like both PicoC and TCC have been abandoned completely(?). Any hope of a resurrection of this feature, or is the module approach the only way forward? Has anyone made a simple example module based on a timer and a preset or calculated exposure sequence?

Or if there are still pre-compiled versions of ML with PicoC support out there, could someone point me in the right direction, please?

Any ideas or pointers appreciated!

And thanks for all the effort that has went into ML!

Totte

(PS! I am able to compile the current Unified code (except for some documentation issues) and I am prepared to hard-code my exposure sequence again if I have to, but although it gets the job done it doesn't exactly seem like the right way to go about it.)


dmilligan

Considering your goal:
Quote from: Totte on October 20, 2014, 03:14:00 PM
automate the process of shooting solar eclipses
there may be several ways to do this without resorting to scripting or writing your own code:
- Create a custom exposure sequence with the intervalometer using adv_int.mo.
- Consider using AutoETTR.

Totte

Thanks, I will have a look at adv_int.mo. I have actually already tried it very briefly, but I couldn't enter the 'Advanced intervalometer' menu, nothing happens when I press the Set button. Surely a user error on my part, if it is compatible with the current nightly build at all. I'll try again with a fresh .mo file, I can't remember where I got it from and it may not be the latest version.

When you say 'custom exposure sequence', are you talking about ramped-something, or is there actually an option to specify arbitrary sequences directly?

ETTR seems like a wonderful tool for normal photography, but it seems almost counter-productive for the diamond ring phases and the totality, where dynamic range is enormous (think HDR). Am I missing something?

Before and after totality the exposures are constant, so in an ideal world I'd like to have the exposure sequences set in advance, and just flip off the solar filter and change from one sequence to another with the press of a button (or time the whole ting as precisely as possible in advance and just concentrate on removing the solar filter when I hear the change in exposure times).

dmilligan

Quote from: Totte on October 20, 2014, 06:07:48 PM
When you say 'custom exposure sequence', are you talking about ramped-something, or is there actually an option to specify arbitrary sequences directly?
Well, it's ramped, but if you just specify a value for every single frame (keyframe for every single frame), then you have yourself an arbitrary sequence don't you?

Totte

Ah, got it. The keyframes concept wasn't all clear to me, but I see now that this will work out very nicely. Setting up a couple of hundred or thousand identical exposures should also be very easy by 'ramping' between two identical frames, right?

I will try to get the .mo working and experiment a little before bothering you further. Thanks a lot!

dmilligan


Totte

OK, I've had a proper go with the advanced intervalometer now, and it's a powerful tool. However, I encountered a behaviour that I would consider a small bug:

I intended to create an exposure sequence as follows: 0.5", 1/4", 1/8", 1/15", 1/30", 0.5", 1/4", 1/8", 1/15", 1/30" (ISO and f/ held constant)
So I created keyframe 1 with 0.5" and keyframe 5 with 1/30", and set the sequence to repeat after frame 5. The camera was left with the settings from keyframe 5 and the intervalometer set to start at half-pressed shutter. I pressed the shutter button very gently to avoid taking a picture 'manually', yet the resulting sequence was: 1/30", 0.5", 1/4", 1/8", 1/15", 1/30", 0.5", 1/4", 1/8", 1/15"
In other words, it started with the current camera settings, not the first key frame, and then it continued to be off by one.

Oh, and if I set the interval to 'take pictures like crazy' there is no ramping at all, all 10 pictures are taken with TV=1/30" with the same keyframes. Sorry if this is old news, just thought I'd mention my observations in case it can help improve the tool even further.

Thanks again!

dmilligan

It's not a bug per se, it's the expected behavior, but I see how it can be a little confusing. The way the ML intervalometer is set up, the module is only notified after each picture is taken, at that point it sets the exposure for the next frame. So the settings for the first frame are always going to be current settings. Just think of it as a zero-based array (frame "1" is the second picture)

It's also not going to work in "like crazy" mode because the code is not given enough time to run (ML core tries to take pictures as fast as possible and does not give the module any sort of priority)

Totte

OK, I can live with that.

Too bad there isn't a way to use the "like crazy" mode with your module, and that the intervalometer has 1 second as the shortest interval. I guess it will be possible to get a higher effective picture rate with the combination of intervalometer and bracketing though. Will have to experiment a bit to see if the behavior is predictable if the bracketing causes the combined time too exceed the 1s timing interval; I mean, in my example above, would one burst exceeding 1s cause skipping of the next burst, and if so will the sequence be 10 bursts (and hence taking 1s longer in total) or will it still terminate after 10 timer ticks (and only 9 bursts)?

dmilligan

Honestly, I'm not exactly sure what will happen if you use bracketing and your bracket exceeds the interval time, I've never tried it. If you're taking single frames, and the shutter speed exceeds the interval time, then the next frame just starts as soon as possible (so it's basically exactly the same as the "like crazy" mode).

Though, I'm pretty sure that if you did do that, adv_int wouldn't do it's thing (again this is a priority thing, the ML intervalometer thinks it's more important to try and get the picture off on time, than to allow any module code to run). Basically you need to make sure that there will always be a least a second or two in the worst case scenario for adv_int to run.

Totte

This got  me thinking: Would it be possible to modify the interval to the next shot/burst from your module? Apart from my special case where I'd like to squeeze in as many pictures as possible, this would also open up for ramping of the intervals as well, effectively accelerating/decelerating the speed of time-lapses. Could be a cool effect, no?

dmilligan

"Interval time" is already one of the options

Totte

Fantastic! That's what I get for thinking out loud without the camera in front of me.