Experiments

The following builds are works in progress, known to have rough edges.
Please test thoroughly before considering them for serious work.
The functionality from this page will be integrated in the main builds as soon as all major issues will be ironed out.
However, we need your help. If you use any of these builds, please report your experience.
Still confused? Each experimental build has a link to the relevant forum thread, where you can discuss the new features.
You may also check this page for ideas on how to help, and this page for how to suggest changes with a pull request, from your web browser.

Latest Lua updates + fixes (please review)

Latest Lua updates (details).

Includes many other backend changes, e.g. focus, menu, Q button handling, fonts etc.

Therefore, it's important to give it a good try on all functions, not just Lua, so we can include it in the nightly builds.

Also includes lens.focus_pos and dynamic-my-menu.

Forum discussion

Branch: lua_fix

Latest Build (2019-03-20 09:28)

magiclantern-lua_fix.2019Mar20.100D101.zip

magiclantern-lua_fix.2019Mar20.1100D105.zip

magiclantern-lua_fix.2019Mar20.50D109.zip

magiclantern-lua_fix.2019Mar20.550D109.zip

magiclantern-lua_fix.2019Mar20.5D2212.zip

magiclantern-lua_fix.2019Mar20.5D3113.zip

magiclantern-lua_fix.2019Mar20.5D3123.zip

magiclantern-lua_fix.2019Mar20.600D102.zip

magiclantern-lua_fix.2019Mar20.60D111.zip

magiclantern-lua_fix.2019Mar20.650D104.zip

magiclantern-lua_fix.2019Mar20.6D116.zip

magiclantern-lua_fix.2019Mar20.700D115.zip

magiclantern-lua_fix.2019Mar20.70D112.zip

magiclantern-lua_fix.2019Mar20.7D203.zip

magiclantern-lua_fix.2019Mar20.EOSM202.zip

e98cf27: api_test.lua: test for all items from the Overlay menu
(to make sure they can be safely turned on or off with menu.set)
TODO: also check their submenu options

4c6cde3: Waveform: fix crash when enabled outside ML menu
(e.g. from Lua, https://www.magiclantern.fm/forum/index.php?topic=23673)
Issue: initialization on first use + race condition.

abdd1e2: api_test.lua: on EOS M, the INFO button may get us out of LiveView
(fixes API test about ML overlay status)

085b79c: EOS M: fixed display_idle() outside LiveView

4aa1ba0: Zoom on HalfShutter: allow triggering when AF is enabled
(only works when AF is not actually triggered by half-shutter, *, AF-ON etc)

df8d088: Zoom tweaks: updated for recent models
- option to disable the "x1" zoom (i.e. to go directly into x5/x10)
- compatibility with touch-screen models (still rough)
- api_test.lua updated (need to disable these tweaks in order to pass the zoom test)

3a5bade: api_test.lua: skip checking for "Play mode actions"
(feature not present on EOS M; requires serious cleanup)

400d73f: EOS M: enabled rack focus and focus stacking
(they appear to work, at least with regular EF lenses)

0060b26: editor.lua: disabled debugging features
(FIXME: they don't seem to work)

252a4b7: EOS M, 100D: fix Q/SET short press outside ML menu
(ETTR trigger and many others)

3f5aa76: editor.lua: use the MENU key as primary method for triggering the menu
(Q is still used, but it's not working on all models)

b213791: EOS M: align long-press symbols for delete and Q/SET
(minor)

20628f1: EOS M, 100D: fix long-press symbol remaining visible after Q/SET
https://www.magiclantern.fm/forum/index.php?topic=14828.msg210032#msg210032

f40dacf: Arrow key shortcuts: minor cleanups
- removed bogus ARROW_MODE_TOGGLE_KEY definition on EOS M
- removed unused definitions on 650D and 1100D
- require ARROW_MODE_TOGGLE_KEY if and only if FEATURE_ARROW_SHORTCUTS is defined

9e54731: EOS M: fix PlayMain_handler stub
7000D, 650D, 100D: comments for PlayMain_handler / PlayMovieGuideApp_handler

7b7a9a3: Color scheme: fix conflict with fast zebras

684ff6b: Menu: fix typo regarding FEATURE_JUNKIE_MENU
(7469c34)

91c84fd: exit_play_qr_menu_mode: wait until mode switch is finished
(fixes GUI mode switching test in api_test.lua on EOS M, maybe others)

7256e17: EOS M: fix GUIMODE_ML_MENU to allow operation outside LiveView
(required for passing the Lua menu API tests outside LV)

All changes on BitBucket

Build Log


4K raw video recording; lossless compression

crop_rec module with higher resolutions (4K, 1080p48 etc):

5D3:

  • 1920x960 @ 50p (both 1:1 crop and full-frame - 3x3 pixel binning)
  • 1920x800 @ 60p (same as above)
  • 1920x1080 @ 45p and 48p (3x3 binning)
  • 1920x1920 @ 24p (1:1 square crop)
  • 3072x1920 @ 24p (1:1 crop)
  • 3840x1600 @ 24p (1:1 crop)
  • 4096x2560 @ 12.5p (1:1 crop)
  • 4096x1440 @ 25p (1:1 crop)
  • Full-resolution LiveView: 5796x3870 at 7.4 fps (128ms rolling shutter).
  • Continuous: 3072x1308 @ 24p, 1920x1080 @ 45p, 1920x960 @ 50p, 1920x800 @ 60p, 4096x2560 @ 8p, 5796x3870 @ 5p.

EOSM, 650D, 700D, 100D:

  • 1736x696 @ 50/60p with 3x3 pixel binning (actually column binning / line skipping)
  • Lossless compression: 1736x976 @ 24p continuous (this is the maximum 16:9 resolution with 3x3 sampling)

6D:

  • 1824x634 @ 50/60p with 3x3 pixel binning (actually column binning / line skipping)
  • Lossless compression: 1824x1026 @ 24p [continuous?] (this is the maximum 16:9 resolution with 3x3 sampling)

Notes:

  • It's quite bleeding edge (expect bugs)
  • Includes lossless compression for MLV (mlv_lite/mlv_play) and DNG (silent/pic_view)
  • Includes lua_fix and dynamic-my-menu
  • You will generally need to use the (non-realtime) preview from the raw recording module.
  • Setting the preview to Frozen LV will give sligthly better recording times.
  • Modes with higher vertical resolution will have real-time preview only for the top of the frame.
  • Modes with higher horizontal resolution will have the preview completely broken.
  • Centered x5 zoom will show either a cropped real-time preview, or a slow preview with correct framing (half-shutter to toggle).
  • mlv_lite has lossless compression, H.264 proxy and experimental sound recording via mlv_snd
  • mlv_rec works too, but without lossless compression

This is also the "de facto" bleeding edge branch, with other experimental stuff being tested here.

Forum discussion

Branch: crop_rec_4k_mlv_snd

Latest Build (2018-07-22 13:09)

mlv_dump.exe

mlv_dump.linux

mlv_dump.osx

magiclantern-crop_rec_4k.2018Jul22.100D101.zip

magiclantern-crop_rec_4k.2018Jul22.5D3113.zip

magiclantern-crop_rec_4k.2018Jul22.5D3123.zip

magiclantern-crop_rec_4k.2018Jul22.650D104.zip

magiclantern-crop_rec_4k.2018Jul22.6D116.zip

magiclantern-crop_rec_4k.2018Jul22.700D115.zip

magiclantern-crop_rec_4k.2018Jul22.EOSM202.zip

c1e44b8: mlv_dump: pass INFO blocks as image description

7883869: mlv_dump: fix compile warnings / empty lines

e6d5795: mlv_dump: change DNG code to pass through RAWI color matrix if the camera model could not be determined

2c126b5: mlv_dump: harden string length handling for DEBG and VERS against inconsistent field sizes

d1bd7bb: mlv_dump: fix incorrectly placed null byte for text blocks line DEBG and VERS

All changes on BitBucket

Build Log


10/12-bit RAW video

Experimental raw video recording at lower bit depths. Only models with CONFIG_EDMAC_RAW_SLURP/CONFIG_EDMAC_RAW_PATCH are compiled.

Forum discussion

Branch: raw_video_10bit_12bit_LVState

Latest Build (2019-03-24 09:58)

magiclantern-raw_video_10bit_12bit.2019Mar24.1100D105.zip

magiclantern-raw_video_10bit_12bit.2019Mar24.50D109.zip

magiclantern-raw_video_10bit_12bit.2019Mar24.5D2212.zip

magiclantern-raw_video_10bit_12bit.2019Mar24.5D3113.zip

magiclantern-raw_video_10bit_12bit.2019Mar24.5D3123.zip

magiclantern-raw_video_10bit_12bit.2019Mar24.600D102.zip

magiclantern-raw_video_10bit_12bit.2019Mar24.60D111.zip

magiclantern-raw_video_10bit_12bit.2019Mar24.650D104.zip

magiclantern-raw_video_10bit_12bit.2019Mar24.6D116.zip

magiclantern-raw_video_10bit_12bit.2019Mar24.700D115.zip

magiclantern-raw_video_10bit_12bit.2019Mar24.70D112.zip

magiclantern-raw_video_10bit_12bit.2019Mar24.EOSM202.zip

All changes on BitBucket

Build Log


Pre-recording with half-shutter triggers

Pre-recording with half-shutter triggers (details).

Should work on top of latest nightly build.

Forum discussion

Branch: rec-trigger

Latest Build (2017-08-17 22:29)

mlv_lite.mo

7441ed4: mlv_lite: fix compilation

9e60bc5: mlv_lite: prevent recording in x10 zoom
(to be used for focusing)

All changes on BitBucket

Build Log


Non-CPU lens info

Set lens name, focal length and aperture for manual lenses. Lua script.

Forum discussion

Branch: manual_lens_info

Latest Build (2018-12-23 22:29)

magiclantern-manual_lens_info.2018Dec23.100D101.zip

magiclantern-manual_lens_info.2018Dec23.1100D105.zip

magiclantern-manual_lens_info.2018Dec23.50D109.zip

magiclantern-manual_lens_info.2018Dec23.550D109.zip

magiclantern-manual_lens_info.2018Dec23.5D2212.zip

magiclantern-manual_lens_info.2018Dec23.5D3113.zip

magiclantern-manual_lens_info.2018Dec23.5D3123.zip

magiclantern-manual_lens_info.2018Dec23.600D102.zip

magiclantern-manual_lens_info.2018Dec23.60D111.zip

magiclantern-manual_lens_info.2018Dec23.650D104.zip

magiclantern-manual_lens_info.2018Dec23.6D116.zip

magiclantern-manual_lens_info.2018Dec23.700D115.zip

magiclantern-manual_lens_info-crop_rec_4k.2018Feb02.70D112.zip

magiclantern-manual_lens_info.2018Dec23.7D203.zip

magiclantern-manual_lens_info.2018Dec23.EOSM202.zip

0de7b67: Merged lua_fix into manual_lens_info

b0a2f95: Memory backend: backout 065ceae (checking whether it's still needed after latest Lua changes)

2451574: printf: limit buffer size only when running from init_task
(fixes memory backend messages truncated during startup)

754d731: Memory backend: some models use AllocateMemory rather than malloc for RscMgr data structures
Fixes small memory test on 50D and 5D2.
Thanks aprofiti, https://www.magiclantern.fm/forum/index.php?topic=18083.msg207261#msg207261

1f60366: 1100D: enabled FEATURE_BEEP
(beeps were enabled by default, with no way to turn them off; no crashes reported yet)

6ca36c4: api_test.lua: moved log file into ML/LOGS

b54cb4b: api_test.lua: skip FPS override test on cameras without this feature
(currently 70D)

388e84b: api_test.lua: 50D has no video playback functionality; skipping this test
https://www.magiclantern.fm/forum/index.php?topic=14828.msg206376#msg206376

9170a21: 600D, 1100D: these models are using two button codes for Q
(one in photo mode, another in LiveView)

7212b6e: NotifyBox: minor fixes/cleanups

75fab56: Lua dryos.directory.children: exclude "." and ".." from directory listings.
Added API test for recursively listing directory contents.

bb02391: lua_dryos: minor doc updates

9c3a93e: gui_common: allow simulated key events when half-shutter is UI-locked
(fixes movie.stop on 50D: https://www.magiclantern.fm/forum/index.php?topic=14828.msg206343#msg206343)

0040e6c: Merged allocate-raw-lv-buffer into lua_fix

7ca7753: Merged qemu into lua_fix

238b57a: Merged 100D_merge_fw101 into lua_fix

1cf3de0: 500D: experimental workaround for ERR70, issue #1468
(only enabled when recording H.264 with sound)

24b5439: 500D: removed old workarounds for ERR70
(still experimenting)

8bd8bb7: VRAM: recompute LUTs only when display parameters actually change
(appears to help with 500D's ERR70 while recording; to be tested with external monitors)

4eb1a1e: selftest: info screen toggling test
(crashes 500D)

b951e43: Lua: fix printing pointer values
(no %p in Canon's vsnprintf)

2703bfb: Lua: minor stack fix
(apparently never triggered)

All changes on BitBucket

Build Log


ISO experiments (iso-research)

CMOS/ADTG/Digic register investigation on ISO

Forum discussion

Branch: iso-research

Latest Build (2019-03-23 13:25)

magiclantern-iso-research.2019Mar23.100D101.zip

magiclantern-iso-research.2019Mar23.1100D105.zip

magiclantern-iso-research.2019Mar23.50D109.zip

magiclantern-iso-research.2019Mar23.550D109.zip

magiclantern-iso-research.2019Mar23.5D2212.zip

magiclantern-iso-research.2019Mar23.5D3113.zip

magiclantern-iso-research.2019Mar23.5D3123.zip

magiclantern-iso-research.2019Mar23.600D102.zip

magiclantern-iso-research.2019Mar23.60D111.zip

magiclantern-iso-research.2019Mar23.650D104.zip

magiclantern-iso-research.2019Mar23.6D116.zip

magiclantern-iso-research.2019Mar23.700D115.zip

magiclantern-iso-research.2019Mar23.7D203.zip

magiclantern-iso-research.2019Mar23.EOSM202.zip

75c1f3f: adtg_gui: allow full range hex toggle for ENGIO registers
(menu backend no longer crashes!)

f84ede6: Merged lua_fix into iso_research
(full-range hex toggle)

b3ced2c: menu: do not use a pickbox for caret-editable fields

c391efd: menu: fixed hex toggle for large numbers
(including crash on "signed" values)

809b52f: imath: use uint32_t for powi, log2i, log10i
(fixes crash in menu on large hex numbers, among others)

8466020: imath.h: LOG2 macro from constants
(from 1afe59c)

f128408: menu: updated caret editing to allow arbitrary integer ranges
(both signed and unsigned)

698f72e: menu: fixed zero-padding when editing with caret in LiveView
(minor)

23ffa39: menu: undo 2298de7 - fixes editing with caret for numbers between 100-199, 1000-1999 and so on
(note to self: don't drink and code!)

20fcec7: selftest: menu editing tests with various ranges
(requires manual testing for now)

66cd9da: menu: fix editing with caret while recording

c335475: Shutdown: load modules after opening battery door; minor cleanups

99301f4: Shutdown: keep the LEDs on until the camera turns off completely
Sometimes the shutdown process takes 1-2 seconds; without LED feedback,
user may be tempted to remove the card before the camera is actually off.
Adapted from PR #825, commit a20a61d.

e98cf27: api_test.lua: test for all items from the Overlay menu
(to make sure they can be safely turned on or off with menu.set)
TODO: also check their submenu options

4c6cde3: Waveform: fix crash when enabled outside ML menu
(e.g. from Lua, https://www.magiclantern.fm/forum/index.php?topic=23673)
Issue: initialization on first use + race condition.

abdd1e2: api_test.lua: on EOS M, the INFO button may get us out of LiveView
(fixes API test about ML overlay status)

085b79c: EOS M: fixed display_idle() outside LiveView

4aa1ba0: Zoom on HalfShutter: allow triggering when AF is enabled
(only works when AF is not actually triggered by half-shutter, *, AF-ON etc)

df8d088: Zoom tweaks: updated for recent models
- option to disable the "x1" zoom (i.e. to go directly into x5/x10)
- compatibility with touch-screen models (still rough)
- api_test.lua updated (need to disable these tweaks in order to pass the zoom test)

3a5bade: api_test.lua: skip checking for "Play mode actions"
(feature not present on EOS M; requires serious cleanup)

400d73f: EOS M: enabled rack focus and focus stacking
(they appear to work, at least with regular EF lenses)

0060b26: editor.lua: disabled debugging features
(FIXME: they don't seem to work)

All changes on BitBucket

Build Log


Warning!
Magic Lantern is not approved nor endorsed by Canon in any way, and using it will probably void your warranty.
We are not responsible for any damages to your camera.

Copyright (C) 2009-2018 Magic Lantern Development Team

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.