Author Topic: Experiment - Dynamic My Menu  (Read 3007 times)

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 9840
  • 5D Mark Free
Experiment - Dynamic My Menu
« on: January 31, 2017, 09:51:00 PM »
Today I was a bit tired of debugging low-level stuff like Lua tasks or camera-specific quirks, but still wanted to write something cool. So here's something I wanted for a long time. The feedback back then wasn't exactly positive, so it never got implemented, but I was still kinda missing it.

Turns out, it wasn't very hard to implement, so there you have it.

What is it?

You already know the Modified menu (where it shows all settings changed from the default value), and My Menu (where you can select your favorite items manually). This experiment attempts to build some sort of "My Menu" dynamically, based on usage counters.

How it works?

After a short while of navigating ML menu as you usually do, your most recently used items and also your frequently used items should appear there. As long as you don't have any items defined for My Menu, it will be built dynamically. The new menu will be named "Recent" and will keep the same icon as My Menu.



Every time you click on some menu item, the usage counter for that item is incremented. All the other items will have a "forgetting factor" applied, so the most recently used items will raise to the top of the list fairly quickly.

Clicking the same item over and over will only be counted once (so scrolling through a long list of values won't give extra priority to menu items). Submenu navigation doesn't count; only changing a value or running an action are counted.

Time is discrete (clicks-based). It doesn't care if you use the camera 10 hours a day or a couple of minutes every now and then.

To have both good responsiveness to recent changes, but also learn your habits over a longer time, I've tried two usage counters: one for short term and another for long term memory. If, let's say during some day, you need to keep toggling a small set of options, it should learn that quickly. But, if no longer need those options after that special day, those menu items will be forgotten quickly, and the ones you use daily (stored in the "long term memory") should be back soon.

So, the only difference between the "long term" and the "short term" counters is the forgetting factor: 0.999 vs 0.9. In other words, the "long term" counters have more inertia.

When deciding whether a menu item is displayed or not, the max value between the two is used, resulting a list of "top 11 most recently or frequently used menus". The small gray bars from the menu are the usage counters (debug info).

I have no idea how well this works in practice - it's something I came up with a few hours ago, and the tuning parameters are pretty much arbitrary.

Source code committed, and if there is interest, I can prepare an experimental build as well.

DeafEyeJedi

  • Hero Member
  • *****
  • Posts: 2900
  • 5D3 / M1 / 7D / 70D / SL1
Re: Experiment - Dynamic My Menu
« Reply #1 on: January 31, 2017, 10:08:52 PM »
Source code committed, and if there is interest, I can prepare an experimental build as well.

Awesome stuff a1ex and I'm definitely interested in this one yet another useful feature!
5D3.113 • 5D3.123 • EOSM.203 • 7D.203 • 70D.112 • 100D.101

Markus

  • Senior
  • ****
  • Posts: 309
Re: Experiment - Dynamic My Menu
« Reply #2 on: January 31, 2017, 10:26:46 PM »
Cool :-).

Licaon_Kter

  • Senior
  • ****
  • Posts: 497
  • M
Re: Experiment - Dynamic My Menu
« Reply #3 on: January 31, 2017, 11:12:56 PM »
I see this as useful :)

RenatoPhoto

  • Moderators
  • Hero Member
  • *****
  • Posts: 1509
  • 5DM3 / 7D
Re: Experiment - Dynamic My Menu
« Reply #4 on: February 01, 2017, 02:08:38 AM »
Yes looks interesting.  I use My menu in Canon menu for quick access to the most important functions.
What happens when you switch from one config file to the next?  I use multiple config files for specific recording options.. will this menu be built across all of the config files or will it only be specific to each config file.
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

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 9840
  • 5D Mark Free
Re: Experiment - Dynamic My Menu
« Reply #5 on: February 01, 2017, 08:55:24 AM »
Currently, the config file presets are used for all settings, including menu customization.

Tom_LS

  • New to the forum
  • *
  • Posts: 10
Re: Experiment - Dynamic My Menu
« Reply #6 on: February 01, 2017, 09:34:22 AM »
Hi, ML is amazing, thanks.
Is there any solution to use ML menu like canon user presets? For example:
preset 1 "RAW" turn on RAW Video, MLV Sound, Crop Mode, etc.
preset 2 "h.264" turn off RAW Video, MLV Sound, Crop Mode, etc.

Walter Schulz

  • Hero Member
  • *****
  • Posts: 5459

Tom_LS

  • New to the forum
  • *
  • Posts: 10
Re: Experiment - Dynamic My Menu
« Reply #8 on: February 01, 2017, 12:11:05 PM »
thnx

cybermarmotte

  • New to the forum
  • *
  • Posts: 5
  • Canon 700D
Re: Experiment - Dynamic My Menu
« Reply #9 on: February 01, 2017, 03:04:11 PM »
+1
Tous mes profils sur les réseaux sociaux depuis mon site perso: http://www.etiennebretteville.com

DeafEyeJedi

  • Hero Member
  • *****
  • Posts: 2900
  • 5D3 / M1 / 7D / 70D / SL1
Re: Experiment - Dynamic My Menu
« Reply #10 on: February 01, 2017, 06:55:37 PM »
Just for shits and giggles... This is how I go out and about for my basic daily needs within the Modified settings.

https://vimeo.com/202070321

Now let's just imagine how much more fluid this would be with @a1ex's latest Dynamic My Menu coming out of the magic hat?

 :D
5D3.113 • 5D3.123 • EOSM.203 • 7D.203 • 70D.112 • 100D.101

NoCp_Albert

  • New to the forum
  • *
  • Posts: 33
  • Albert Stoecker
Re: Experiment - Dynamic My Menu
« Reply #11 on: February 01, 2017, 07:09:21 PM »
Very interesting, at the moment I use the Canon Presets c2, c3 for 1920x1080x25fps and 1280x720x50fps as Basics for either ML FPS-override 25fps ore ML FPS-Override 50fps. 25Fps as preset for FHD and 3xcrop mode recording and 50fps for 5x centered Crop, 10bit.
It will be a dream to get a “ML Menu” Version where the user can select 2-3 config files as presets for a quick Change for different recording situations.
If I like to make a quick change in front of a rear Animal or Bird in Nature and I touch the wrong Button the session is over, restart and maybe Battery, skipping Module loading, stop again and start new is the normally way to restart the System. To avoid this will be a very great step and help.
EOS 5D3 -113,-123, EOS 7D2, EOS 400, Lens EF16-35 f4 L, EF35 f2 IS, EF85 f1.8, EF 24-105 f4 L, EF 100-400 L II, EF 600 f4 L, Samyang 14mm f2.8, Canon Tc 1,4III, Kenko Tc 1,4 DGC

Walter Schulz

  • Hero Member
  • *****
  • Posts: 5459
Re: Experiment - Dynamic My Menu
« Reply #12 on: February 01, 2017, 07:54:19 PM »

It will be a dream to get a “ML Menu” Version where the user can select 2-3 config files as presets for a quick Change for different recording situations.

2-3? How about 13?
http://www.magiclantern.fm/forum/index.php?topic=8499.0
For German speakers:
http://www.magiclantern.fm/forum/index.php?topic=15045.msg147465#msg147465

goldenchild9to5

  • Senior
  • ****
  • Posts: 486
Re: Experiment - Dynamic My Menu
« Reply #13 on: February 02, 2017, 07:45:09 AM »
Awesome  :D

garry23

  • Hero Member
  • *****
  • Posts: 1200
Re: Experiment - Dynamic My Menu
« Reply #14 on: February 02, 2017, 08:25:09 AM »
Like others, I'm looking forward to using this.

Such a feature was why I played around with the 'Toggler' idea, especially on the EOSM.

https://gist.github.com/pigeonhill/156ea0e55cd0a029bc447f8bf5593224

The Toggler lets me cycle through different ML 'use states', without going into the ML menu.

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 9840
  • 5D Mark Free
Re: Experiment - Dynamic My Menu
« Reply #15 on: February 02, 2017, 05:59:39 PM »
Experimental build posted.

The Junkie menu is now auto-generated as well. Please post screenshots.

DeafEyeJedi

  • Hero Member
  • *****
  • Posts: 2900
  • 5D3 / M1 / 7D / 70D / SL1
Re: Experiment - Dynamic My Menu
« Reply #16 on: February 02, 2017, 08:03:33 PM »
5D3.113 • 5D3.123 • EOSM.203 • 7D.203 • 70D.112 • 100D.101

RenatoPhoto

  • Moderators
  • Hero Member
  • *****
  • Posts: 1509
  • 5DM3 / 7D
Re: Experiment - Dynamic My Menu
« Reply #17 on: February 02, 2017, 09:04:24 PM »
Looks pretty cool.
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

budafilms

  • Hero Member
  • *****
  • Posts: 693
  • 5D Mark a1ex
Re: Experiment - Dynamic My Menu
« Reply #18 on: February 04, 2017, 09:04:44 AM »
Great work! And very esthetic!

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 9840
  • 5D Mark Free

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 9840
  • 5D Mark Free
Re: Experiment - Dynamic My Menu
« Reply #20 on: April 22, 2017, 09:04:34 PM »
Recently I had to change often a setting that was normally hidden under Advanced, in a submenu (that was mlv_lite -> raw video -> preview). This required a bit too many clicks for my taste. Of course, it's easy to move this particular setting back to main menu, but I was thinking at something more generic.

Since we already have usage counters, a submenu with more than say 8 items could auto-hide the less frequently used ones, overriding my default choice of simple/advanced options.

Is this something worth looking into?

DeafEyeJedi

  • Hero Member
  • *****
  • Posts: 2900
  • 5D3 / M1 / 7D / 70D / SL1
Re: Experiment - Dynamic My Menu
« Reply #21 on: April 22, 2017, 10:30:41 PM »
...Since we already have usage counters, a submenu with more than say 8 items could auto-hide the less frequently used ones, overriding my default choice of simple/advanced options.

Is this something worth looking into?

Sure. It would be nice.
5D3.113 • 5D3.123 • EOSM.203 • 7D.203 • 70D.112 • 100D.101