REAPER v6.30rc1

v6.30rc1 - June 20 2021

* Includes feature branch: render normalization
* Includes feature branch: EEL2 x86_64/SSE
* Includes feature branch: VST3 bridging
+ API: fix deadlock with MIDI_GetAllEvts() and too small of buffer [t=254625]
+ Actions: add action to calculate loudness of selected items via dry-run render
+ Actions: add action to calculate loudness of selected tracks via dry run render
+ Actions: add action to calculate loudness of selected tracks within time selection via dry run render
+ Automation items: add preference to pool/unpool automation items when split due to media item edit or razor edit
+ Automation items: filter out duplicate points on load [t=254759]
+ Automation items: fix hang/slowness when adjusting very large automation items [t=254759]
+ Batch converter: support normalizing when converting
+ Consolidate: support wildcards in consolidated file name
+ Envelopes: fix unexpected behavior when moving multiple sets of envelope points with no transition time between selected and unselected points [t=254611]
+ JSFX: add help for sliderchange() function
+ JSFX: add peak/RMS/LUFS loudness meter
+ JSFX: add slider_show() function, to hide or display sliders
+ JSFX: calculate "true peak" in loudness meter
+ JSFX: display true peak clip count in loudness meter
+ JSFX: fix slider_automate() when hidden sliders exist
+ JSFX: improve LUFS loudness calculation
+ JSFX: improve LUFS meter display when embedded
+ JSFX: support writing output automation of loudness meter
+ LV2: fix multichannel non-default pin mapping state on project load [t=254704]
+ MIDI editor: fix editing event properties from list editor with filter applied [t=254671]
+ Master VU: apply loudness display gain but not display offset to loudness readout numbers
+ Master VU: display LUFS loudness values before they are fully seasoned
+ Master VU: if theme does not define meter_bg_mcp_master or meter_bg_mcp image, fill loudness readout area with "VU (indicator) - no signal" theme color
+ Master VU: support oversampled peak display ("true peaks")
+ Master meters: display a single value for LUFS, because it's not a per-channel calculation
+ Master track: don't show master mixer metering options when right-clicking TCP master
+ Master track: support LUFS-M metering
+ Master track: support displaying LUFS-I in mixer (loudness meter will display LUFS-M, but displayed number will be LUFS-I)
+ Master track: support loudness metering in TCP
+ Meters: more informative tooltips
+ Mixer: add option to display LUFS-S current rather than max value
+ Mixer: support displaying LRA (loudness range) in master meter
+ Project bay: improve drag-drop preview and cursor behavior
+ Project bay: improve handling of MIDI items and tempo changes (existing retained items will have to be re-retained to include QN information) [t=243315]
+ ReaScript: GetSetProjectInfoString(project, "RENDER_METADATA", "", false) will return a list of all defined project metadata identifiers [t=254407]
+ ReaScript: add GetEnvelopeInfo_Value(I_SEND_IDX) etc
+ ReaScript: add GetEnvelopeInfo_Value(P_DESTTRACK) for send envelopes
+ ReaScript: add GetSetProjectInfo_String("RENDER_STATS"), to retrieve statistics for the most recently rendered files
+ ReaScript: support getting/setting render normalization mode and target
+ ReaScript: support running a caller-specified action before returning render statistics (see API help for details)
+ Render queue: add button to cancel all remaining renders [t=234691]
+ Render: add actions to calculate loudness of master mix via dry run render
+ Render: add info button to render statistics display
+ Render: add options to normalize render to target peak or RMS
+ Render: add preference to calculate true peak on render when not normalizing to it
+ Render: apply dither/noise shaping to secondary render format if enabled and format supports
+ Render: disable audio normalizing for video renders
+ Render: display LRA (loudness range) after render
+ Render: display LUFS, support normalizing to target LUFS
+ Render: display peak, RMS, overs even if not normalizing
+ Render: display peak, rms, and overs when normalizing
+ Render: display statistics for all rendered files
+ Render: draw peaks on first pass of 2nd pass render
+ Render: ignore preference to auto-close render dialog if normalizing or dummy rendering
+ Render: improve render speed when normalizing
+ Render: optionally mark overs (samples over +0dbFS, potential digital clipping) in render peaks display
+ Render: support dry run rendering (everything is processed as normal, but no output files are written)
+ Render: support normalizing stems to master mix
+ Render: support normalizing to LUFS-M max or LUFS-S max
+ Render: support optional LUFS handling of LFE and surround channels when normalizing
+ Theme: support separate loudness readout colors for unlit and lit background in WALTER [p=2454121]
+ Tracks: prevent tiny (<0.1%) volume change on initial track fader click [t=191454]
+ VST3: add IPlugInterfaceSupport, for plugins to request compatibility features
+ VST3: add support for IMidiLearn interface
+ VST3: avoid threading conflicts when processing expression and keyswitch information
+ VST3: internal threading changes to MIDI controller and program change handling
+ Video: option to choose which monitor is used for fullscreen display
# Actions: action to calculate loudness of selected tracks will calculate master mix loudness if the master track is the only track selected
# Automation items: entirely un-pool automation items when editing with preference enabled [p=2446337]
# Batch converter: fix button positioning when window is resized
# Convert: fix normalization for source files that do not have an embedded source start time [p=2450739]
# JSFX loudness meter: expose current LUFS-M/I/S and LRA values as parameters for script accessibility/etc
# JSFX loudness meter: expose true peak and RMS readings as parameters
# JSFX: add LUFS-M histogram support
# JSFX: add alert settings to loudness meter
# JSFX: add loudness range calculation to loudness meter
# JSFX: add option to loudness meter to reset data on playback start
# JSFX: add separate momentary RMS measurement to loudness meter
# JSFX: add short-term LUFS to loudness meter
# JSFX: don't display partially-calculated LUFS
# JSFX: fix auto-reset of loudness meter when not processing FX when stopped
# JSFX: fix hidden sliders altering FX parameter count [p=2451177]
# JSFX: fix initial layout of loudness meter when not processing FX on stop
# JSFX: fix loudness peak meter channel order
# JSFX: fix reversed LUFS-M current and maximum value display
# JSFX: improve LUFS meter scaling
# JSFX: improve loudness meter layout at small sizes, hide RMS by default
# JSFX: loudness meter is LUFS-multichannel-aware
# JSFX: optimize loudness meter CPU use when not displaying true peak
# JSFX: support customizable colors in loudness meter
# Master VU: attempt to be clearer about what loudness is being displayed in the meter and readout number
# Master VU: ensure that muted/automuted text covers the entire meter area
# Master VU: fix loudness readout offset on retina/hidpi displays
# Master VU: fix tooltip for certain preference combinations
# Master VU: increase loudness meter update rate
# Master VU: indicate in TCP master when displaying true peaks
# Master VU: smooth loudness meters slightly
# Master track: support LUFS-S metering in mixer
# Mixer: draw master loudness readout below meters
# Mixer: fix label display when showing loudness at bottom of master meter
# Mixer: support UTF-8 translations in master meter settings dialog
# Mixer: support combined-channel RMS loudness display
# ReaScript: automatically close render window when calling RENDER_STATS with a render action
# ReaScript: slightly change the output of GetSetProjectInfo_String("RENDER_STATS") for consistency and futureproofing
# Render: add separate button for dry run render
# Render: change to internal storage for render normalization (project normalization settings saved in +dev0520 may load differently)
# Render: display render meters post-normalization
# Render: display render meters post-normalization for greater-than-mono tracks
# Render: don't calculate true peak for meters during render (saves CPU)
# Render: don't display "show in explorer" or "launch file" buttons after dry run render
# Render: fail silently if attempting dry run render of selected tracks with no tracks selected or other obvious failure modes
# Render: fix 1-pixel peaks drawing error
# Render: fix LUFS calculation
# Render: fix dummy render of multichannel files
# Render: fix embedding bwf position when normalizing
# Render: fix incorrect rounding of near-silence [p=2453577]
# Render: fix multichannel peaks/overs drawing
# Render: fix normalizing selected media items or multiple time regions per track
# Render: fix peaks drawing with multichannel renders
# Render: fix saving normalization settings to render presets
# Render: fix up peaks drawing
# Render: if normalization would require adding more than 60dB, don't normalize
# Render: improve LUFS loudness calculation
# Render: potentially improve precision of normalization slightly
# Render: support normalizing to digital peak or true peak
# Render: use fixed 400ms window for RMS normalization
# Render: use project name as (unused but displayed) target file name when dry run rendering master mix
# Rendering: fix denormal issues with silence [p=2450456]
# Theme: preserve appearance of themes that use fixed-height master vu meter images
# VST3: require ModuleEntry on linux
# jsfx loudness meter: make LUFS dB display rounding match that of master meter [p=2454211]