04-02-2011 12:04 AM
|
|
Human being with feelings
|
|
LUFS Functions
Measuring LUFS and LU in Reaper
Updated May 25th 2012 with the Loudness Metering History Graph feature.
Please visit the discussion thread to post your comments.
While we wait patiently for Cockos to implement this, there are several free or inexpensive measurement plugins you can use to at least get basic measurements done and some analysis.
None of these tools have all this request asks for.
ITU-R BS.1770, the basic method to measure loundness, A/85 the document that details its use in North American broadcasting and the EBU R128 recommendation that adds a great deal of practical functionality that is being adopted by the ITU, are the new loudness measuring standard, replacing peak and VU metering. Detailed information can be found via this thread. A video overview of the EBU R128 recommendation is available from the EBU itself on this page.
Where is this loudness measurement used ?
Everywhere where there's digital TV broadcasting.
Europe , US, Japan, Autralia, China and South America.
-edit-
Added an idea on how the loudness graph view could look with elements we already have available in Reaper.
Updated video links to one-part versions just released from the Rome 2011 conference about loudness.
Information Videos
EBU R128 Introduction - Florian Camerer (37:50 for some listening examples, comparing peak and loudness normalization)
Loudness Wars - Thomas Lund
EBU R128 in Transmission and Production - Thomas Lund
EBU R128 in Distribution - Richard van Everdingen
LUFS - the new Loudness Units. What does it mean? by Ian Shepherd
Existing open-source implementationslibebur128 MIT licensed library in ANSI C
https://github.com/jiixyj/libebur128
Discussion thread at Hydrogenaudio A mix of small sections of music, each individually loudness normalized to -18 LUFS( +5 LU ) - 15 MB
Music provided under Fair Use for educational purpose only(no complete songs, just bits of them). Contact me if you think I unfairly used your music.
Download at Mediafire
Mirror available at Soundcloud here :
https://soundcloud.com/airon-extv/18...lized-clip-mix
Peak overview of that clip mix(-23 LUFS version) here
Because of the significance of this standard to anything broadcast-related in more and more areas of the world(it is already a requirement in North America), I ask that Reaper support at the very least, the R128 standard with the following functions.
Requested Functions
LUFS metering in the master and any other track designated by the userMomentary(400ms), Short(3s) and Integrated(manual start/stop, only one that includes the gate function). The gate function is now locked at -10 LU. It needs to be on/off togglablefor folks mixing for some North American networks that use -24 LKFS intergrated, which is -24 LUFS without the gate function.
Tracks other than the master need to be included because it is not always just the master that is being measured. Different submix versions need to be measured as well.
Integrated LUFS value of master/selected track(s) over a time selectionBroadcast program material, and in some cases, segments of material between commercials, need to be normalized to -23 LUFS. Thus it will save a great deal of time if the mix or portions thereof can be normalized to that value by calculating the value for a certain period of time and making a manual adjustment.
One way is to render the mix, and then normalize that file to -23 LUFS, which the section below refers to.
However, sometimes it is quicker to simply calculate the LUFS value of a mix or a section thereof and adjust a bus fader to normalize to -23 LUFS before rending to a file, which is what this section of the request would do.
The value would be shown either in a popup requester, or a new track with an empty item that spans the time selection and has the LUFS value printed in the item name, or a text item of equal length, or a region could be created that shows the LUFS or LU value for that time selection.
Loudness History Graph ViewLike a peak overview for items, but for the Momentary(and Short-Term if necessary) loudness of the master output, and/or a chosen track/hardware output.
See a detailed description of why and how below.
Normalize item to 0 LU (-23LUFS)This function can be used to normalize the loudness level of an already rendered mix.
This function could be an action and a button in the item properties.
It also needs to be in the render dialog window as a checkbox and the batch converter.
Why are these functions of value ???
Good question. Here's an example workflow.
Let's sat that I edit and mix a set of 35 x 25 seconds and 5 x 30 second spots that serve as promotional material for a daily drama series on a network, every week.
Each of these spots has to conform to the EBU R128 Loudness spec, just like all segments of program material. That includes commercials, segments of program material sandwidched between commercials, news and so on.
In our example I have 40 separate sequences. But you don't deliver 40 separate files, you deliver one large file that gets layed back to digital video tape(Digibeta,HDCam,DVCPro50, whatever).
What are the options ?
- We render each spot to its own file via regions, run those files through an R128 Batch-Normalizing processor and place the resulting files back on the Reaper timeline for consolidation(glue). This takes a lot of time to both prepare the regions, drag the resulting files in to a batch processor, and place each of those files in to the timeline again. Tricks include having the render-regions back to back and numbered correctly so they can be drag'n'dropped in one go.
All this is error-prone. YOu could forget to name a region properly. You might drag'n'drop all but one file in to the batch processor, or back in to Reaper. Little mistakes could cost you lots of time.
- We HAVE EBU R128 normalization in Reaper.
We render as one large file, then split the result with a mouse-over split macro. There are 30 seconds of dead air inbetween each of those spots, so that will take 10-20 seconds at most.
All the pieces are selected, EBU R128 normalization of the item gain is performed, and the result is glued together. We're done. We can do our layback with the resulting file and all spots are loudness-normalized.
Second method for this approach is to region-render everything to one track in the session, normalize all those items to 0 LU, and then glue the suckers in to an item of the correct length and start. Problem solved.
There are far fewer sources of errors here.
A loudness history graph view in Reaper
Why
Mixing for TV requires you to adhere to specifications of the client, which is often a network like Discovery, CBS or the BBC.
Today these specs are almost aways a form of loudness metering, and more often now, loudness range and Momentary Loudness(the 400ms measurement window) range. So when you fall out of spec, as indicated by a meter with a loudness history graph, you go back to that spot to fix it.
But what if there's more than one spot to fix and the history graph is not locked to the time ruler(/time code) ? What is the meter never knows where it actually is ? You'll have to manually write down all the offending locations, fix them and rescan for confirmation.
What if this could be done more efficiently ?
How
It is built as the user plays back the project.
The history can be updated across a time selection or project wide as needed by manual commands.
For user convenience, Reaper must keep track of the areas of the arrangement that the user has changed or not played yet, and remember that those are the areas it needs to update when the user issues a project or time-selection-based update command.
It could look and work like this
The yellow "Time Selection for rescan.." text section to the right of the yellow'framed time selection wouldnt' appear of course. Maybe the Rescan button would light up if a time selection is made either in the graph window or the arrangement. -edit- Now it does.
There are faint grid lines for the "over" part of the graph, which the graph will then indicate in red as illustrated.
A time selection can be made for rescan or playback. Whether or not the playhead is actually repositioned when you change the time selection is controlled in the preferences. The rescan should be made with a preroll because of delay and reverb effects often being active. The context menu of the window could contain preset values in second increments and a custom setting that brings up a requester. Values should be entered in seconds, which corresponds to what probably all reverb effects use.
Left-click and drag for making a time selection. All keyboard commands applying to zoom and scroll behaviour, which includes the mousewheel-triggered actions, should apply here too without having to painstakingly recreate stuff from the arrangement setup.
No need to repeat the often lamented inconsistencies we had the midi editor. Should a separate context in the action list be made available, perhaps a reference to "As in Arrangement context" for those commands, similar to what some mouse modifier contexts do. In other words, links of one action context to another.
Commands required would be set start and end of time selection, rescan, preroll toggle on/off. Blind folks don't need this view anyway so there really wouldn't need to be commands for creating new views, changing to a different view or removing a view. Removing a view would be handled in the context menu as well, so as to prevent nasty little accidents in the fiddly little tabs.
Configuration
Baseline, maximum momentary LU, maximum LRA. Context menu is the easiest with popups of a combined text entry and dropdown menu(for presets and history).
The baseline (thick green line in the middle) is by default at 0 LU, which equates to -23 LUFS.
The Maximum Momentary LU value can be set to +9 by default. The Maximum LRA is safe at 20.
2nd Update
Updated the image to add a feedback text that appears to the left of the time selection in this view, to indicate the maximum LU, minimum LU and LRA if applicable for that selection. The LRA needs a minimum of 30 seconds iirc to get any meaningful measurements. This gives the user additional feedback and cuts down on guesswork.
The second addition is that little button-box in the top-middle of the selection. This is a function trigger to calculate the integrated LU/LUFS value of that time selection(with preroll if toggled on).
All programs are broken in to segments. Each segment has to conform to the loudness spec of the broadcaster. Thus the mixer will want to check each segment individually without having to render it to a file first. This function was suggested to be an action, but this window is the perfect place to expose that function, and only for time selections as well.
There's nothing else for the user to do on this graph but make a time selection, and in it trigger this useful function. Thus the button won't be in the way at almost any time.
Why this saves time
There are no meters today that lock their loudness history graph to timecode, meaning you can't fix a spot and update the loudness history for it.
This can, and thus nobody has to remember where all the offending locations are because this history graph, locked to the time ruler/time code will always keep you on top of things.
Fix, play or rescan. Confirmed. Next location.
Details and Additional Functions
This is basically a kind of peak overview that should be kept either in the project file or as a separate companion file.
Some folks may wish to have this per-used-hardware-output. 5.1 channel mixes have to be taken in to account as well, though they result in just one graph as well.
Sample frequency is a tough one. Every 0.4 seconds may be a good starting point since that is the integration time of the Momentary Loudness metering anyway. The NuGen loudness meters graph is a good starting point on how to build it. In particular it contains excellent ideas on how to graphically highlight configured thresholds for momentary and short-term loudness measurements.
For example, a spec for a tv network might say :Integrated Loudness : -23 LUFS / 0 LU
LRA < 15 (loudness range statistically calculated)
Maximum Momentary Loudness: +8 LU
It should be possible to have colourful indicators for when the Momentary Loudness graph crosses that threshold so the mixer can easily locate and fix the parts.
Also, the locations of maximum truepeaks above a configured threshold should be remember as well. This can be important for conforming to specs as well, as some limiters do not perform 4 x oversampled limiting and thus may need to be adjusted. The less time that takes the better, as always.
|
|
Issue Details
|
Project
Deprecated REAPER issue tracker
Category Audio recording and playback
Status Suggested
Priority 1 - Highest
Suggested Version 3.73
Implemented Version (none)
Users who would use this feature
217
Users who would not use this feature
0
Assigned Users
(none)
Tags
(none)
|
|