Menu

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.

Show posts Menu

Topics - Audionut

#1
As you may or may not be aware, "official" ML development has slowed significantly in recent times (background reading).

There have been contributors to the project who have continued to develop in their free time, and this section is dedicated to those contributors who develop and release builds.

Three core considerations when using this section.

They may work perfectly fine, they may melt your camera in half. They may appear to work, until you develop the footage and discover you just wasted an entire day. The onus of responsibility lies solely with you if you decide to use these builds. Don't use these builds in any sort of professional capacity unless you are sure of your workflow.


  • The usual caveats apply. If your camera breaks in two because of the code given freely here, you get to keep both pieces of your broken camera.
#2
Other experimental builds / Latest Lua updates + fixes
January 28, 2021, 02:15:08 AM
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.


Download / Source code / Technical discussion
#3
Other experimental builds / Non-CPU lens info
January 28, 2021, 01:50:51 AM
Set lens name, focal length and aperture for manual lenses. Lua script.

Download / Source code / Technical discussion

Quote from: Lars Steenhoff on October 29, 2016, 12:04:45 PM
If we can assign lens focal length and name for non cpu lenses, ( like using nikon lenses on a canon with an adapter) then I can use this data in post processing to identify what lens was used and which lens profile I should apply for distortion correction.
#4
Should work on top of latest nightly build.

Download / Source code / Technical discussion

Quote from: mk11174 on April 11, 2016, 03:10:19 PM
I was trying to film dogs catching Frizbee the other day, and was thinking, I wonder if there's a way to add a buffer record to Raw_Rec module, like have it record to buffer but not to file for the certain amount of frames the user chooses as a buffer, then when the action you want happens, you press the shutter and it records the buffer to video file?
#5
Other experimental builds / 10/12-bit RAW video
January 28, 2021, 01:42:13 AM
Experimental raw video recording at lower bit depths. Only models with CONFIG_EDMAC_RAW_SLURP/CONFIG_EDMAC_RAW_PATCH are compiled.

Download / Source code / Technical discussion
#6
Experimental builds based on CMOS/ADTG/Digic register investigation on ISO.

Quote from: a1ex on January 10, 2014, 12:11:01 PM
Just a small improvement in dynamic range in photo mode (around 0.3...0.5 0.8 stops). We were able to fine-tune the amplifier gains in order to squeeze a little more highlight detail.

Download / Source code

Feel free to discuss build related issues in this thread, and if you would like to contribute with some more technical related things, the original thread is probably best suited.






Some other experimental work is done by timbytheriver, Cleaner ISO presets.
#7
Scripting Q&A / Take a photo at each ISO
September 27, 2018, 02:49:42 PM
function test()
    camera.iso.apex = 5
    camera.shoot()
    camera.iso.apex = 6
    camera.shoot()
    camera.iso.apex = 7
    camera.shoot()
    camera.iso.apex = 8
    camera.shoot()
    camera.iso.apex = 9
    camera.shoot()
    camera.iso.apex = 10
    camera.shoot()
    camera.iso.apex = 11
    camera.shoot()
    camera.iso.apex = 12
    camera.shoot()
end

keymenu = menu.new
{
    name = "ISO photo bracket",
    select = function(this) task.create(test) end,
}



I found the apex values by running this script.  Is there some documentation somewhere that explains apex and raw values?
#10
This means all previously linked images in public folders will now be dead.  I'm pretty sure most of my content on this site is from my public folder.
Feel free to pm if you're reading content and need the image links updated in my posts, and I'll find the time to do so.

https://www.dropboxforum.com/t5/Sharing-and-collaboration/Ending-support-of-public-folder/td-p/197906
#13
Scripting Q&A / LUA resources
January 26, 2016, 02:38:17 AM
Sticking this here as a reminder.  Feel free to throw info at this thread and I'll make it look pretty as time permits.


Quote from: Original Post
Quote from: dmilligan on January 24, 2016, 08:05:11 PM
There are also countless programming resources online. You might consider learning some basics in an easier environment, something with a nice IDE, syntax highlighting, debugger, auto-complete, etc.

Do you or others have some suggestions?

I'll try and compile a useful sticky thread, and suggest to the powers that be that we retire everything picoC related and relegate Scrips Writing to LUA.
#15
Camera-specific Development / Canon 60D
March 16, 2015, 04:49:49 AM
Installation:
1) Format the card from the camera.
2) Make sure you are running Canon firmware 1.1.1.
3) Copy ML files on the card and run Firmware Update.

Uninstallation:
1) Run Firmware Update from your ML card.
2) Follow the instructions.






Discussion thread for the 60D.  I don't own this camera, so if there is anything you feel is important for this camera and should be in this opening post, please let me know.
#16
General Help Q&A / Stable build | Latest builds
January 11, 2015, 12:51:28 AM
The very old "stable" build of Magic Lantern has been removed.  That build of Magic Lantern was over two years old and still contained bugs that were missed during testing at the time.

Magic Lantern now works on a rolling release development model.  The nightly builds can be considered somewhat stable.  The features in the nightly build have been well tested, with untested development moved to an branching system for testing before being included in the nightly builds.

Some of the features that have been developed since the "stable" version. Thanks dmilligan

Bars Facelift
Proportional Fonts
Config Presets
Dual ISO
Auto ETTR
ISO Investigation
Screenshots
New memory backend
Raw silent pictures
Full-resolution silent pictures
File Manager
Raw Video
LUA scripting




The latest official builds for all cameras is available here:  http://www.magiclantern.fm/forum/index.php?topic=3072.0

For camera specific discussion, including updated installation instructions, please see this section:  http://www.magiclantern.fm/forum/index.php?board=34.0
#17
General Chat / XISF Version 1.0 Specification
December 22, 2014, 03:00:31 PM
http://pixinsight.com/doc/docs/XISF-1.0-spec/XISF-1.0-spec.html

QuoteExtensible Image Serialization Format (XISF) is a free file format for storage, management and interchange of digital images and associated data.

XISF has been originally designed and implemented as the native file format of PixInsight, an image processing software platform designed specifically for astronomical imaging, and developed by the company Pleiades Astrophoto S.L. However, our hope is that XISF serves as an efficient tool for the development of imaging software, including not only software specialized in astronomy, but image processing software in a wide range of technical and general fields.

Two key elements in the design of XISF can be found in its title: extensible and serialization. Extensibility is crucial to adapt the format easily and efficiently to the requirements of present and future software applications. The architecture of XISF has to facilitate the development of extensions to the core format specification, and for this purpose XISF headers are standard XML documents. Serialization denotes the ability of XISF to store not just image data, but also data structures associated with the environments where the images evolve as living objects. These data structures can be deserialized to recreate the images along with their working contexts. We formalize the resources to store data structures and objects as properties of a variety of predefined data types. XISF properties can be directly associated with images, with entire XISF units, or be defined as standalone components.

Finally, XISF is a free format open to the contributions of anyone interested, including users of PixInsight and other applications, as well as individuals and groups from other development teams, institutions and companies involved or interested in image processing software.
#20
Forum and Website / How to use the forum search feature
October 20, 2014, 03:59:21 PM
Using the options below, you should be able to narrow your search results down to useful results, without having to wade through a bunch of irrelevant search results.






The blue circled search box is a thread search.  When inside a thread, you can use this box to search for words inside that thread.
The red circled search word is the main search function.  This is a dumb search.  Enter a word here, hit search, and it will list all posts containing that word.
The green circled Advanced search is where the real power lies.  See  below.





This advanced section, opens up some more useful search features.
You can search for words by a user, simply enter the forum username.
Define the search order.
Search in the topic subjects only.  ie:  Thread titles.
Define the age of the posts to search.  ie:  Only search for the word in posts not older then 3 days (or 5 days, or whatever you define).
The red underlined option also allows you to define which sections of the forum to search.  See below.




#21
General Chat / Lens effects on photons
October 15, 2014, 11:51:11 PM
Topic split from http://www.magiclantern.fm/forum/index.php?topic=10111.msg131472#msg131472




Quote from: a1ex on October 15, 2014, 07:48:53 PM
In the first graph, you can see the 5D3 and the 60D are just as good. That is, if you would use a 80mm/2.8 lens on 5D3 and a 50mm/1.8 on 60D, you would get the same results (same framing, same low-light performance at high ISOs).

I know you used these lens as example, but you must also consider lens diameter.  That is, two 300mm/2.8 lenses with one having a diameter of 50mm, and the other having a diameter of 100mm, the larger lens will let through four times the light.
Rodger Clarke makes small mention of that here.

I believe that DxO measures ISO without a lens attached, so I only mention the above for completeness.

Pixel pitch seems to play some role also.

#23
A list of threads that contain tutorials or other useful information.

DaVinci Resolve 12 and ML Raw
Workflow using MLVFS and After Effects
Tutorials for Beginners: Davinci Resolve 10 Lite
After Effects importing 23.976 fps as 30 fps
None destructive raw workflow for Premiere using After Effects and Dynamic Link
60fps -- RAW video Post-Processing Workflow
GoPro CineForm Studio Premium/Pro Settings for 5D3 RAW Video
How to replace file footer, aka fix the Error: This ain't a lv_rec RAW file
Salvaging Pink Crazy DNGs
Preventing Color/Luma Shifting When Processing DNGs in Adobe Camera RAW
RAW Video: PostProcessing -- Beginners Guide --

If I am missing any tutorials, or you create your own, fell free to post about it in this thread, and I can add a link in this post.

Please also read The sticky to end all stickies. Read this first.




All applications that have stickied threads in this section are open sourced.  Magic Lantern prefers open sourced applications, as they fit within the open sourced nature of this project.

A list of closed source applications that work with Magic Lantern.

Son of Batch MLV -Mac Batch convert Magic Lantern MLV to DNG+Prores
[WINDOWS] MLV to DNG Batch Converter
RAWanizer - windows batch generation of video files from RAW
Raw video previewer and plugins for Mac/Window, FCP, Premiere, Avid, Scratch
[RAW2DNG] BATCHelor
Pomfort ClipHouse




The following applications have violated the GPL license that Magic Lantern releases its source code under.  These applications will receive no support here, and we prefer that users do not use or support these applications either.

RawMagic




#25
Forum and Website / Selling of items
July 28, 2014, 02:11:30 PM
To minimise risk to members of this community, we ask that no users attempt to sell items through this forum.

Magic Lantern does not currently have the ability to suitably maintain an appropriate section for the sale of items, and we would like to keep this community development based, first and foremost.

Also, please be advised that this forum is not a notice board.  Please do not link your sales.
#27
With the development of the module system, some old features, and lots of new features are being developed as modules.
So we have the core Magic Lantern code running on the camera, and we can enable these extra features via modules, as needed.




Prerequisites

Nightly build:  http://builds.magiclantern.fm

You must be running a nightly build.  The stable build (version 2.3) is very outdated, and does not contain the module features.
For installation instructions for the nightly build for your camera, find your camera thread in this section and read the first post:  http://www.magiclantern.fm/forum/index.php?board=34.0

The modules are contained in the nightly build downloads.  You can find information about the modules on the features page:  http://builds.magiclantern.fm/#/features
You will also find README for each module, and links to each modules forum thread.





Loading the modules

Once you have the nightly build installed, you will now see a new modules menu in Magic Lantern.



Use the SET button to enable the modules you would like to use.



Now you restart the camera, and the modules that you enabled will be loaded and ready for use.





Using the modules

After the modules have been loaded, you will now find the function in the relevant Magic Lantern menu. 
An example can be seen here:  http://www.magiclantern.fm/forum/index.php?topic=5693.0
#28
I originally got the 5D3 for the AF and focus points.  But I don't seem to use the AF these days (not all the fancy AF stuff anyway), and I'm better at tracking with just one focus point.  I'll probably miss the sheer number of AF points, but I expect to have to trade off something.  I don't do video, and plan on getting more active in low light photography (astro), my main imaging is portrait, so as far as I can tell, the pros vs cons look like.

Pros

  • I'll come out ahead with $
  • Lower banding noise
  • Probably better thermal noise
  • Better DR (0.5EV @ ISO 100), the lower banding noise probably increases this closer to 1EV.  With iso_research and dual_iso, I expect to gain 1 full stop of DR.
  • Better low light AF ability
  • Full stop of useful ISO (3200 vs 6400)
  • Fresh shutter count (currently at 65K)

Cons

  • Less AF points
  • Might take some time getting used to only 97% viewfinder coverage again


I don't spray and pray, so continuous shooting speed is irrelevant.
ML gains an active 6D user/mini dev, a1ex loses an active 5D3 tester.

I have a Sigma 35/1.4 which is a focal length I just don't seem to use.  And when I do use it, I'm doing panos with it anyway.  So with the sale of this, and the $ from 5D3 > 6D, I can get some good wide angle glass.

The 6D has AFMA which I find important. 

Anything I am missing?
#29
In this thread I'll list a bunch of ways you can help the Magic Lantern development project, without touching one line of code.  Anyone can do these things, the only thing they require is time.





Test as if you were doing Quality Control for a company

Quote from: dmilligan on December 11, 2013, 04:16:32 PM
Test, as in really test. As if you were QC working for a software company. Don't just use ML in normal situations and submit problems when things go wrong (and don't just do another ML RAW vs. H264 test, there are more than plenty of those out there). Try to break a feature. Think of as many possible scenarios as you can. Throw everything you can think of at a feature to break it. Try every value of every setting. Try it in extremely unusual scenes or lighting. Write down your results like a scientist doing an expirement. Then share your results, even if nothing went wrong. It's also helpful for devs to know when something actually works. Test for the sake of testing, with specific intention, not for the sake of making your 'budget short film'.

http://www.magiclantern.fm/forum/index.php?topic=8900.msg91362#msg91362




User Guide

http://www.magiclantern.fm/forum/index.php?topic=11269.0

Redrocks has started an updated user guide for the nightly builds.  Once this is completed, it can be easily transferred from the forum post, to all of the user guides on the site, and in camera.
To help, simply comment with any information you are aware of.  You're contribution will be added to the original posts.  All contributions are welcomed, from one line of help text, to the entire thing.  :)


Erik Krause has continued the work started by Redrocks.
Let's restore ML help together!




Tutorials

http://www.magiclantern.fm/forum/index.php?board=15.0

Know how to use a feature really well, why not create a specific tutorial.
PM Audionut if you need some assistance.




Fixing HDMI (monitor) related problems

http://www.magiclantern.fm/forum/index.php?topic=12375.0

With some new development of QMENU, it has become somewhat easier to look at monitor related issues, without the developers requiring an actual HDMI device.  To help, simply dump some image buffers.




Black level problems with raw recording

http://www.magiclantern.fm/forum/index.php?topic=11942.0

Get pink, green, magenta frames when recording raw video?  Help to fix them by simply testing specific builds and proving feedback.




Accurate temperature reporting

http://www.magiclantern.fm/forum/index.php?topic=9673.0

QuoteCameras tested up to now

1100D by dmilligan
5D3 by RenatoPhoto, alex
50D by ayshih
60D by dmilligan
600D by escho
650D by Walter Schulz
7D by Walter Schulz, RenatoPhoto

If you have a camera that is not on the above list, feel free to help test.  Confirming previous results is always useful too!




Compiled list of card speeds

http://www.magiclantern.fm/forum/index.php?topic=12630.0

Run a benchmark on your card, upload the results, help generate a list of card speeds.




Raw video sample files

http://www.magiclantern.fm/forum/index.php?topic=11899.0

Help chmee develop an excellent raw video post processor.




Measure the dynamic range of your camera

http://www.magiclantern.fm/forum/index.php?topic=10111.msg117955#msg117955

Lots of excellent research being done here to reduce the noise level of cameras.  Help a1ex develop further with some simple screenshots from your camera.




Measure how the camera does pixel binning

http://www.magiclantern.fm/forum/index.php?topic=10111.msg118232#msg118232

This one requires a suitable target to photograph.  If you have a resolution target, please jump over and help a1ex.




Keep the 1.1.3 firmware build for 5D3, or turf it.

http://www.magiclantern.fm/forum/index.php?topic=13446.0

Compare the raw recording speeds of each firmware and share your results.  For problems/bugs and lacking features in 1.2.3 that are not in 1.1.3, please use this thread.




Register Map - We need your support!

http://www.magiclantern.fm/forum/index.php?topic=14656.0

Help g3gg0 clean up the register database.




The next 2 may require some more coding type knowledge.

Finding stubs

http://www.magiclantern.fm/forum/index.php?topic=12177.0

QuoteThese stubs are functions from Canon firmware, that can be called from ML code. To use them, one needs to know:
- the function address in Canon code (that's the stub you need to find). The exact address is unique for each camera.
- the function declaration (what parameters it accepts?) - declared in some header file, and usually common for all cameras.
- what does it do (if it's not obvious from its name and usage context, a comment is welcome)




Easy coding tasks

http://www.magiclantern.fm/forum/index.php?topic=9625.0

Ok, this one does require some modification of code.  But they are easy tasks.   :P  If you have some coding knowledge, this is an excellent way to get started with ML development.
#31
With help from members, I have compiled a list of card speeds with Magic Lantern.  Feel free to add more results, details at the bottom of this post.

The results for all cards and cameras tested, can be found here:
https://drive.google.com/drive/folders/1yh9doUXKpvkOfI8kpiOaLCHnwuI_hBfr?usp=sharing

Posted results in this thread that haven't followed the requested testing procedure have not been included in my dropbox link, testing in playback mode etc.  Please follow the instructions below if you would like your results included.




Some notes!

The fastest CF card results I have, show the KomputerBay 64GB 1000x @ 93MB/s.


However, all KomputerBay cards tested above 85MB/s on the 5D3, and the Lexar 64GB card I have results for, also benchmarked above 85MB/s.

Based on the results of one card, the 5D2 appears to be around 15MB/s slower then the 5D3.

Higher frame rate modes in Canon settings, results in slower speeds.  That is to say, 24p modes are fastest, and 60p modes are slowest.

Crop mode in Magic Lantern raw recording, switches to 30p mode.

Cameras have hardware limits to card speeds, it doesn't matter how fast the actual card is.  These speeds (and other useful information) can be found here:  https://docs.google.com/spreadsheet/ccc?key=0AgQ2MOkAZTFHdFFIcFp1d0R5TzVPTVJXOEVyUndteGc#gid=5





To perform the benchmark, select the benchmark option in the debug menu, then choose the Card R/W benchmark option.



When the benchmark is complete, a PPM file (BENCH0.PPM) will be on the card that has ML installed, and you can use the free image viewer Irfanview to save the PPM as PNG.
Upload the files to a free image host and post the links here, preferably using the img tags.

Please include the camera used and card type +capacity, and test in movie mode with Global Draw OFF.
#32
Note:  Any members who can compile, are more then welcome to fill requests in this thread.  I would like to keep all posted builds to this thread, so that the forums do not get cluttered by numerous builds, resulting in lots of old builds being left scattered throughout the forums long after the original development, and confusing new members.

Within reason, members are free to do as they see fit, however, before fulfilling requests, please consider this message from a1ex, and the intent with which I created this thread.
My bolding for emphasis.
Quote from: a1ex on May 15, 2014, 09:44:11 PM
If you look at the number of ML downloads (it exceeded 1 million downloads, without counting the 5D3, 7D and most recent ports), you will realize right away that relaxing the license for my postprocessing code would be like saying "here you have the perfect recipe to make a small fortune from my work, just take it, it's all free".

Unfortunately for some of you, this is not exactly my intention, and GPL is just a tool to prevent such situations from happening. I could have given this code away as public domain, but I chose to protect my work from being used without giving back.

Instead, I'm trying to build a community that does not just consume whatever we give to them, but I want this community to actually participate in the development process, help each other, and share the knowledge. We gave you some free software, we gave you a proof of concept that you found useful, and now we expect you all to take this software at the next level, and let us build upon your work, in the same way as you have built upon ours. I'm quite far from this utopian goal though, but this is the direction I want ML to go.

Thanks for taking your time to provide builds for the community.






A large amount of the recent development work has moved to the branch system.  This is excellent, as it allows "power users" to help with that development, while keeping that development outside of the regular nightly builds, and reducing the chances for a large number of "bricks".

As an attempt to reduce the divide between knowledgeable developers, and useful contributors, I will provide a compile service.

The process will work like so.  You state the camera you are using, and the features you would like to test.  I will compile the build, and you will provide feedback.




I only have a 5D3, and don't have time to test the builds I create for this camera (unless you specifically test the branches I also test), so naturally, these builds will be provided "as is", without any warranty, and if your camera melts when using these builds, you get to keep all of the melted bits.  If you would like to help with this feedback, but are not comfortable with the risks involved, I would suggest waiting until feedback is received for a build you would like to test.  At least then the build has been confirmed as working or not.

Please do not request builds if you are not comfortable with the risks involved, or if you are not sure you will have the time to provide feedback.  This is not a service for you to simply use these latest developments, for that you have to compile yourself.  If I find that this service is being abused, or the feedback from users is lacking, I will naturally stop providing it.

Please do not share these builds.  There are reasons why this development work is not readily available, and defeating this by sharing these builds will be considered abuse.

Also please do not request builds if you have a low post count, call me cynical, but a low post count is not an exemplary example of feedback.  Of course, you can download an already requested build and provide feedback on that.  I have an idea on who useful feedback users are, and post counts will not apply to them.

I've linked this a couple of times, but let me provide specific mention of it.  This thread contains some excellent advice (thanks dmilligan) on how to provide feedback:  http://www.magiclantern.fm/forum/index.php?topic=9516.0

Well, that was a long disclaimer, lets move onto the fun stuff.




To see what branches are available, check here:  https://bitbucket.org/hudson/magic-lantern/branches
Most of the branches also have a pull request:  https://bitbucket.org/hudson/magic-lantern/pull-requests

These pull requests will have links to the relevant forum threads.  Please read these specific threads first.  They contain relevant information about the development work.  Feel free to leave general feedback here, but please leave specific feedback regarding the development work in their specific threads.

As a last note, I haven't tested all branches personally yet, so there may be times where I cannot provide a requested build within a reasonable time frame.




The builds:
#33
I've been having a PM discussion with a user, and figured that my response is probably useful to the greater community also.

This is my personal opinion only, and may not accurately reflect the stance of the core development team.

Feel free to continue the discussion.  Obviously, there is some divide between pure consuming users, developers, and those in between.  Lets try and reduce that divide.





Quote
I always had the impression that ML was started with a purpose to play with code for a good productive and usable reason.
Thats what the films show when ML gets introduced usually to the public.
Reading here and there on threads i see without exceptions, everyone is trying to solve challeges for the purpose to have a functioning code for filming with a canon at the end of the day.
Not once i read here on ML , that a coder would say, he was happy coding or hacking something without any purpose or usability after .just for the sake of practice his skills or ego.

Yeah sure.  There are plenty of development projects around, millions probably, so we need some way to entice developers to ML, right!  Added functionality is one way to help entice developers to the project, a clean codebase would be another for example.

If you haven't been clicking the links I have been sending, please, read this to gain a better understanding of a developer mindset.

Take a look at this post.  The opening few sentences is somewhat of an appeal to the masses.  "Hey, check out this cool feature I just created".  However, that post quickly turns into development discussion.  The developer describes the processes involved in using the code, what is needed to port this code to other cameras, etc.  Notice there is no download link (for the masses)?  There (probably) won't be until the codebase for that development work is somewhat completed.

If you venture more into the development side of the project, you might find more references to that development side then there otherwise appears to be.

Quote from: a1ex on May 15, 2014, 09:44:11 PM
If you look at the number of ML downloads (it exceeded 1 million downloads, without counting the 5D3, 7D and most recent ports), you will realize right away that relaxing the license for my postprocessing code would be like saying "here you have the perfect recipe to make a small fortune from my work, just take it, it's all free".

Unfortunately for some of you, this is not exactly my intention, and GPL is just a tool to prevent such situations from happening. I could have given this code away as public domain, but I chose to protect my work from being used without giving back.

Instead, I'm trying to build a community that does not just consume whatever we give to them, but I want this community to actually participate in the development process, help each other, and share the knowledge. We gave you some free software, we gave you a proof of concept that you found useful, and now we expect you all to take this software at the next level, and let us build upon your work, in the same way as you have built upon ours. I'm quite far from this utopian goal though, but this is the direction I want ML to go.

My bold for emphasis. 




Quotefrom my point of view as a user, so far everything is exactly that: 80% are half finished projects.....

Raw recording based projects, yeah probably.  ML development as a whole, 80% or more is polished and finished projects.

Let me requote from the above.

Quote from: a1ex on May 15, 2014, 09:44:11 PMWe gave you some free software, we gave you a proof of concept that you found useful, and now we expect you all to take this software at the next level, and let us build upon your work, in the same way as you have built upon ours.

There is a very important part that needs emphasis.

Quote from: a1ex on May 15, 2014, 09:44:11 PMand let us build upon your work

So, it's not a case of just developing for the sake of developing, providing polished functions, and increasing ones skills.  It actually involves enticing other developers to the project.  Only taking development work to 80% completion, is but one way to entice others to actively participate in the development process.

Consider this development work.

Some new functions in Canon firmware have been found, some friendly wrappers were created, and now it's the turn of the community to drive that development further.

You could say, "But hang on Audionut, a1ex went on holidays, that's why it's been left to the community".  And I would say, "that is a poor attitude to have".

Let me add a few more quotes, to help drive home the point.

Quote from: a1ex on June 27, 2014, 08:08:04 AM
There is a reason why I'm asking for people to compile this test themselves. The test results are not the only thing I'm looking for - I'm also looking for potential contributors, to keep the project alive.

Quote from: a1ex on August 04, 2013, 07:38:08 PM
Well, there's no hard "end goal", it's more like a hobby project where we try to push the cameras beyond their limits, while also sharpening programming skills and sharing knowledge. Everybody here is working on their spare time (and I happen to have a bit more time because my daily job is not a 9 to 5 one). Also, everybody is free to work on whatever he feels like; there's no hard to-do list.

I come from a research background, so I like to experiment with cutting edge techniques. And of course, I like sharing these tools with other people that may find them useful and can improve these things.

.....

Anyway. For me, the end goal is not to provide a finished product that everybody can consume. I'd rather see it as an open software platform where others can program their own enhancements and share them with the community (which actually happens to some degree). I prefer it to be a little on the nerdy side and attract knowledgeable people and enthusiasts; after all, ML is a tool for power users.

Quote from: a1ex on March 06, 2014, 07:56:57 AM
Keep in mind that Magic Lantern is a hobby project for all of us; everybody is free to come and go, and if anybody does anything, it happens because he is personally interested in doing that (finds it interesting, needs that feature, whatever).

I'm seeing a trend of statements involving, "Collaboration", "Project", "Development", "Contribution".  I don't see a trend of statements involving, "Lets make ML the next camera of choice for Hollywood directors", "Lets make ML popular for the masses"!

I've concentrated on the opinions of a1ex specifically, and neglected the other developers.  I can comment on the development interaction between a1ex and g3gg0 as I know it.

AFAIK, g3gg0 does a lot of backend stuff, digging into the firmware and things like this.  Backend work isn't a popularity contest.  In fact, I would go as far to say, that very little people at these forums have any true idea of the amount of work that g3gg0 actually does.

Anyway, it's this backend work that finds the useful functions.  Take raw recording for instance.  It was g3ggo who found the necessary functions in the firmware, it was then a1ex who took this discovery, and coded it into the raw recording module that we all know and love.

Collaboration!

I am very confident that this work happens between these two developers very often.  And of course, ML would not be where it is today, without all of the other contributions from all of the other members of the community, be they small or large.

The members that created this forum, the users who test features and provide feedback, etc, etc, etc.




Quotewhy?...ML has gained popularity really only when the RAW access was opened up , and i am sure the coder numbers must have increased then as well.

I can't comment specifically on how many new developers the project gained directly as a result of raw recording.  I can say with certainty, the ratio of consuming users, to useful contributors, increased significantly.


QuoteOne of the 2 biggest bugs are, that the very main RAW access , on 80% of all clips shot, always containing at least one corrupt frame........which can be fixed in editing software ,so not many people think its worth fixing in ML.  But wastes so much time after and messes up time codes in pre-edits etc etc.

The biggest problem, is that even when things are asked by developers, even when no development knowledge is needed, the developers receive very little feedback.

So when a developer doesn't specifically use that function, why should the developer expend effort there, when it's users couldn't be bothered helping?


Quoteeven wedding photographers or hobby filmers using ML for Raw filming try external monitors to view better the recordings. but if that very external Monitor view is defect, then what... then they are forced to use their small built in monitor, or an external low res one , which doesn't really show it better but only ads weight.and even a ML aficionado  , after carrying for hours such monitors and not really seeing it better, will say screw this, off with ML, and lets shoot without ML, and then a monitor which works on normal canon firmware.shooting video without raw, means there is no need to use ML, for it complicates the shooting 10 folds,with so many feature to preset correctly, one can do the same without installing ML.

That is their choice to use the camera without ML instead.  Instead of being consumers, they could actively participate in the development process instead.

Since our conversation started with the monitoring issue, lets discuss that directly.

First was the bug report.

Which was then translated into a forum post  with specific instructions on how to provide the necessary data for the developers.

This is a good development process.  It may not be happening at the speed you desire, but since this is a hobby project for all of us, the progress is often not as fast as the developers would like either.  Fast or slow, progress is still progress.

Simply saying "Screw this, off with ML", is useless at best, a poor attitude, and exactly the sort of members that I can confidently say, myself, useful members of the community, and the development team do not want here.  For all of the reasons which I have tried to convey here.


Quoteso even if that desire is to finish these parts of the whole puzzle, it looks from my POV, that there are 30'000 people who cant get logistically together well enough ,to actually finish individual parts first , before they move on to the next one.

As I mentioned, the consuming user, to useful contributor ratio increased significantly with raw recording.  This is not conductive to development health, despite how popular the project becomes.  And your POV confirms this.  Even with the project becoming popular, development still lacks.

Hopefully you can start to understand why I call ML a development project first and foremost.  It doesn't matter how popular the project becomes, or in what field the project becomes popular.  Without development progress thanks to contribution from community members, the project goes no where.

So hopefully you can also see, how from a user standpoint, functions only completed to 80% may initially appear to be nothing but a nuisance, when in actual fact, they are an attempt to keep the project alive and healthy, so that users can continue to enjoy the project far into the future.


Quotei had 3 response from twittering myself out............i had  twitter for a while , but never used it , and  dont really know yet how to use it,.... but i am trying to get more people's attention any way i can ...

hopefully this helps here.

Excellent.  This is an excellent example of how a user without development knowledge, can help the project more forward.

Thanks.
#34
Tutorials and Creative Uses / Post Deflicker
July 08, 2014, 05:44:09 AM
Deflicking is a process used to brightness match images.  This is useful in video, timelapses, or simply brightness matching multiple images (photos).

You may find this module useful for things like flicker free timelapse.




Loading the module

To use this feature, you must first load the module from the module menu.




After restarting the camera, the module is now available in the shoot menu.






Using the module

First, lets look at the options.




Sidecar file type:

  • UFRaw:  Use sidecar files suitable for use in the open sourced UFRaw image processor.
  • Adobe XMP:  Use sidecar files suitable for use in Adobe products.

Deflicker percentile:

  • Where to meter for for deflicking.
  • What percentage of brightness should be used for the brightness matching.

Deflicker target level:

  • Desired exposure level for processed pics.
  • Where to set the processed exposure level in raw EV.
#35
Tutorials and Creative Uses / Intervalometer
July 08, 2014, 05:19:32 AM
http://en.wikipedia.org/wiki/Intervalometer

QuoteAn intervalometer is a device which counts intervals of time. (Other names include interval meter and interval timer). Such devices commonly are used to signal, in accurate time intervals, the operation of some other device. For instance, an intervalometer might activate something every 30 seconds.


With Magic Lantern, there is no need for an external device, we have an intervalometer built right in.

You will find it in the Shoot menu.





The Options




Take a pic every:

  • This is the core intervalometer function.  Here you set the interval between pictures.
  • Note:  The green text at the very bottom of the display shows how long the sequence will take to shoot, based on the Canon report of how many shots are left on the card, or based on the Stop after setting.  It also shows how long the timelapse will display for at 24fps.

Start trigger:

  • Leave Menu:  Start the intervalometer after leaving the Magic Lantern menu.
  • Half Shutter:  Start the intervalometer after half pressing the shutter button.
  • Take a Pic:  Start the intervalometer after taking a picture.

Start after:

  • Set a delay between the trigger action, and the actual starting of the intervalometer.

Stop after:

  • How many pictures to take.

Manual FocusRamp:

  • Ramp the focus in steps per shot.




Hints:

  • You can stop the intervalometer by rotating the mode dial, by pressing MENU or PLAY, or by turning off the camera.
  • The intervalometer times from itself.  In other words, as soon as it triggers, the timer counts down from that trigger event.  If you have some other processing being enabled, say AETTR, you need to make allowances for this processing, combined with your slowest shutter speed, to ensure the previous processing has been completed, before the intervalometer reaches the next trigger event.
  • To avoid flicker, shoot in manual mode, use manual white balance, avoid short exposure times and use a manual lens (if you use an EF lens, lock the aperture and unscrew it).
  • Adjust your auto-off setting to longer than your timelapse interval the camera will turn off before the second shot.


Power Saving:

  • When not in LiveView, press DISP or INFO to turn the display off.
  • In LiveView, ML will turn the display and the sensor off during idle times if you enable this option from Powersave menu.
  • While the intervalometer is running, the card led will blink once per second to let you know it's alive and kicking.
#38
The content in this section is extremely outdated.  It remains here as a simple archive.

Please do not follow any installation guides in this section, as this will likely lead to problems.
For camera specific discussion, including updated installation instructions, please see this section.
#39
Tragic Lantern / This section is outdated.
July 01, 2014, 10:13:18 AM
The content in this section is extremely outdated.  It remains here as a simple archive.

Please do not follow any installation guides in this section, as this will likely lead to problems.
For camera specific discussion, including updated installation instructions, please see this section.
#40
Looking for people who may like to maintain camera specific discussion for 60D, 550D and 600D.

It could be something simple to get the discussion started, something more detailed like the 5D3 thread by a1ex, the 5D2 thread by Ted, or anything in between.

Ideally it would be someone who owns these cameras, and knows of any specific details.

There are currently no firmware installers for these cameras.  However, escho may have an installer for the 600D soon, and I'm pretty sure that an effort on your part in getting the camera specific discussion started, will probably move the firmware installers towards the top of a1ex' todo list.   ;)

With these installers, basic (un)installation procedures can be added to the OP's.

QuoteNightly builds: http://builds.magiclantern.fm/

Installation:
1) Format the card from the camera.
2) Make sure you are running Canon firmware ?.?.?.
3) Copy ML files on the card and run Firmware Update.

Uninstallation:
1) Run Firmware Update from your ML card.
2) Follow the instructions.



I can provide any help needed in creating these threads, and maintaining them.

Thanks.
#41
Magic Lantern contains a number of exposure feedback features, based from raw data.  This is very beneficial, as regular Canon exposure feedback is subject to picture style, and other JPG based processing.




These features can be found in the Overlay menu.




They work in both Movie mode and Photo mode Live View, and in the Quick Image review. 

In Movie mode Live View, you must load one of the raw recording modules and have it activated for raw based exposure feedback to function.
In Photo mode (Live View or not), picture quality must be set to raw in Canon menu, and in Photo mode Live View, ExpSim must be enabled.

Spotmeter
Histogram
Simplified Histobar
Zebras
Dual ISO Zebras
RAW vs JPG




Spotmeter



The spotmeter is a tool used to meter a particular area of the scene.  For instance, you may want to meter a particular area of your scene, as a highlight, a midtone, or whatever.  The raw based spotmeter in ML works in EV (Exposure Value) units, and represents the EV from saturation (overexposure).

Here is a teddy bear, showing the midtone patch metered for a midtone, checking the white level at this metering, and then Exposing to the Right.





Histogram



The histogram provides a graphical representation of the exposure of the entire scene.



The colors in the histogram, represent the color channel in the camera (Red, Green, Blue).
You will also notice, that ML displays Cyan, Magenta and Yellow.  If you look at the color chart below, you can see that Yellow falls in between Green and Red, and hence, Yellow represents data in both the Green and Red channels.  Cyan being the data from Green and Blue channels, and Magenta being the data from Blue and Red channels.  White indicates data from all color channels.

The white vertical lines at the rear of the histogram display, represent full stop EV.  So the very right hand side of the histogram represents overexposure.  The first line from the right hand side, represents 1 EV (a full stop) from overexposure, the next line is another 1 EV (2 EV total) from overexposure, and so on.




When the scene contains overexposure, the histogram will provide warnings.



The colored circles in the histogram, warn of overexposure in the color channel.  Small circles show a very small amount of exposure, with the circles increasing in size.  When at least 1 % of the pixels of a channel are overexposed, the numbers inside these colored circles, describe the percentage of pixels that have been overexposed in that color channel.  In the above example. 1% of red pixels have been overexposed, 10% of green pixels and 2% of Blue pixels.

Note:  This information is derived from the downsized Live View stream.  So the percentages reported, may not be an extremely accurate representation of the actual percentage, but provides useful information nonetheless.




The histogram in ML also contains Exposure to the Right information.  This feedback show the user how far they can Expose to the Right before overexposing.



Take this scene metered with Canon Av mode.


Here we are being given feedback that suggests we can push the exposure 1.5 EV (stops) before overexposure.
And in the two images below, on the left hand side, the scene has been Exposed to the Right, and on the right hand side, the scene has been overexposed.



Note:  Due to inconsistencies in the original firmware design, determining the correct overexposure point is extremely difficult.  You should be very wary when the histogram reads from -0.4EV through to (slight) overexposure.  There may be some slight overexposure when none is reported, or vice-versa, there may be no overexposure even though some has been reported.  If you know the true saturation value for your sensor at the shot settings, you may wish to use raw_diag if you like to nitpick.

Otherwise, to be certain of no overexposure, target a ETTR hint > -0.4EV.

Further discussion.




The histogram in ML also contains Dynamic Range feedback.  This describes the ratio between the reported white level, and the Noise Floor of the camera, and is only very accurate when the image contains overexposed pixels.





Note:  The brown area in the histogram represents this noise floor.




Simplified Histobar

For LiveView work, there is also the Simplified Histobar.



The Histobar is shown here at the top left of the liveview screen.



Red indicates overexposure, blue indicates extreme underexposure, and the yellow bar represents the midpoint.
The blue bar increases in size with increasing underexposure.  So the image above shows a small amount of the scene is extremely underexposed, and a full bar would indicate a large amount of the scene is extremely underexposed.

The midtone point is the median of the scene.  For further information, see this post by a1ex.




Zebras



Zebras provide a graphical overlay of the areas in the scene which are overexposed, and underexposed.



And a scene showing zebras/histogram, with overexposure, and underexposure.



As with the histogram, the color displayed by the zebras, represent the color channel in the camera that is overexposed.  Again, a Cyan reading is describing overexposure in both the Green, and the Blue channels, Yellow describing both Green and Red channels, and Magenta describing both Red and Blue channels.

Unlike the histogram, black describes overexposure in all color channels, and white describes underexposure.  This underexposure point describes any data that is within 1 EV of the camera noise floor.


Update:  dmilligan added some underexposure adjustment to the zebras.


This allows you to choose at what exposure the underexposure zebras will be displayed.  0 EV means that the zebras will be displayed where the amount of noise in the image, is equal to the amount of signal in the image (the noise floor). 
A general consensus amongst photographers, is that the limit for acceptable amount of noise in images, is 2 EV above this noise floor.




Dual ISO Zebras

When using dual ISO, there are dual exposures and the zebras reflect this.  With dual ISO there are two types of zebras. 
Full/solid zebras which work exactly like normal zebras, and describe overexposure in both ISOs
And half/stripe zebras which represent overexposure only in the higher ISO.

Looking at this image below from DeafEyeJedi, we can see there are solid zebras (black/yellow/green) in the lamp shade, and solid zebras (green/cyan) on the laptop screen.



So both ISOs being used in dual ISO have been overexposed in these areas.  The other stripe zebras are showing where only the higher ISO has been overexposed, in this case, blue, yellow and green on the wall behind.

The image below shows the same scene with only the higher ISO being overexposed, and only half/stripe zebras being displayed.






RAW vs JPG

So, what's the big deal with raw based feedback.  JPG processing is designed simply to produce good looking images directly from the camera.  Since all of the Canon exposure feedback is based from this JPG processing (even when shooting raw), it suffers from inaccuracy.  Raw data is not affected by picture style, white balance, or any other JPG based processing.  So when using raw data for exposure feedback, we have a very accurate representation of the actual raw data.

As an example, here is a scene showing the accuracy differences. 

The image on the left is showing Canon exposure feedback, and the image on the right is the raw histogram from Magic Lantern.


Notice how the Canon histogram is showing a large amount of overexposure in the red channel.  However, the actual raw data still contains some slight headroom.
#43
Card spanning in mlv_rec, somewhat depends on "Files > 4GiB (exFAT)".  Without exFAT enabled, spanned files contain the same filename as files created when 4GiB is reached.  See here.

There is relevant code already present in mlv_rec.

    for (struct menu_entry * e = raw_video_menu[0].children; !MENU_IS_EOL(e); e++)
    {
        /* customize menus for each camera here (e.g. hide what doesn't work) */
        if (!cam_eos_m && streq(e->name, "Rec Key") )
            e->shidden = 1;
        if (cam_eos_m && streq(e->name, "Digital dolly") )
            e->shidden = 1;

        if (!cam_5d3 && streq(e->name, "CF-only buffers") )
            e->shidden = 1;
        if (!cam_5d3 && streq(e->name, "Card spanning") )
            e->shidden = 1;
        if (!exFAT && streq(e->name, "Files > 4GiB (exFAT)") )
            e->shidden = 1;

        /* Memory hack confirmed to work only on 5D3 and 6D */
        if (streq(e->name, "Memory hack") && !(cam_5d3 || cam_6d))
        {
            e->shidden = 1;
            memory_hack = 0;
        }
    }


I can see how this code is working, but I don't understand how to create the same based from the status of another menu entry.  And I can't think of any other examples in the source to check.
#45
General Chat / Crowd sourced timelapse
May 23, 2014, 08:00:23 AM
#46
The relevant line of code.

zebra.c
int underexposed = ev_to_raw(- (raw_info.dynamic_range - 100) / 100.0);

I can change the code and produce wanted results (for myself), but I don't understand the maths, to make this a user adjustable feature, with accurate code.

Ideally, I would like options ranging from -6 EV through -11 EV, representing the EV from saturation.  And add some transparency, so that we can see the detail behind the zebras, and also represent the original SNR=1 EV shadow point with opaque zebras.

I am stuck on exactly what ev_to_raw is doing.  I assume it is converting the EV to raw, but I don't understand the maths for this conversion.

int FAST ev_to_raw(float ev)
{
    int raw_max = MIN(raw_info.white_level, 16383) - raw_info.black_level;
    return raw_info.black_level + powf(2, ev) * raw_max;
}


raw_max, I understand.  Minimum white level value, of either the reported white level, or 16383, minus black level.

But powf, is well above my comprehension level.  And if I place the maths into wolfram, like so.

2048 + powf(2, 11) * 15000

I get no useful result.


The next problem, I don't understand how raw_info.dynamic_range is being calculated.

raw_info.dynamic_range = compute_dynamic_range(black_mean, black_stdev_x100, raw_info.white_level)

There are 3 values in the brackets, but I don't understand what is being done with 3 values separated by commas.

edit:  If I understand correctly, it is simply an EV?

static int compute_dynamic_range(int black_mean, int black_stdev_x100, int white_level)
{
    /**
     * A = full well capacity / read-out noise
     * DR in dB = 20 log10(A)
     * DR in stops = dB / 6 = log2(A)
     * I guess noise level is the RMS value, which is identical to stdev
     *
     * This is quite close to DxO measurements (within +/- 0.5 EV),
     * except at very high ISOs where there seems to be noise reduction applied to raw data
     */

#ifdef RAW_DEBUG_DR
    int mean = black_mean * 100;
    int stdev = black_stdev_x100;
    bmp_printf(FONT_MED, 50, 100, "mean=%d.%02d stdev=%d.%02d white=%d", mean/100, mean%100, stdev/100, stdev%100, white_level);
    white_level = autodetect_white_level(15000);
#endif

    int dr = (int)roundf((log2f(white_level - black_mean) - log2f(black_stdev_x100 / 100.0)) * 100);

#ifdef RAW_DEBUG_DR
    bmp_printf(FONT_MED, 50, 120, "=> dr=%d.%02d", dr/100, dr%100);
#endif

    /* dual ISO enabled? */
    dr += dual_iso_get_dr_improvement();

    return dr;
}