REW Beta Release REW V5.20 beta 30 to 34

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Messages
7,212
There are 4 mains areas of change in beta 30:
  1. Support for stepped sine measurements that step in level instead of frequency
  2. Support for different axis types for measurement results
  3. A new method of RT60 calculation using frequency domain processing
  4. Changes to the graph controls to move some groups of controls into separate dialogs

Stepped sine changes

The stepped sine dialog now offers options to step in frequency at a fixed level or step in level at a fixed frequency. Stepped level results can be plotted on the Distortion graph against either generator or input level and using multiple axis units. A stability test has also been added to monitor the input and begin averaging as soon as the input is sufficiently stable to minimise the waiting time between steps. There is also a distortion threshold beyond which stepped sine measurements will be stopped, distortion must drop below the threshold to arm it. Finally the stepped sine dialog is no longer modal, meaning the RTA window remains accessible for graph adjustments, but RTA controls are disabled to avoid changes that would interfere with the measurement.

Different axis types

Graphs showing measurement results now offer multiple Y axis unit types including dB SPL, dBFS, dBu, dBV, dBW, volts and watts. The watt values are based on the reference resistance specified in the RTA controls, while voltages are based on the full scale values configured on the RTA for input and the signal generator for output. There are also dBr and V/V axis options to provide a transfer function view based on the relative dBFS or voltage levels respectively.

RT60 Decay

The new RT60 Decay graph takes a novel frequency domain approach to RT60 calculation, providing a way to examine reverberation time behaviour at much higher frequency resolutions and with much narrower octave fractions than is usually possible, even at low frequencies. For details on that see the help page.

Graph controls

The graph controls were becoming quite cluttered for some graphs, so groups of controls have been moved to separate dialogs to alleviate that:
  • On the Waterfall the settings for the view and colour scheme have been moved to separate dialogs
  • On the Spectrogram the settings for the colour scheme have been moved to a separate dialog
  • On All SPL controls the trace arithmetic controls and individual measurement actions have been moved to separate dialogs
  • On the RTA controls the settings for distortion and view have been moved to separate dialogs

Other changes
  • Did away with the plot normalised option for distortion graphs, happens automatically if dBr or percent selected as Y axis
  • Changed SPL & Phase "Invert polarity" checkbox to a toggle button
  • Added filter order selection for the RT60 and Filtered IR graphs, default is 6th order, max is 48th (filters are Butterworth bandpass)
  • Added the equaliser sample rate in the heading of the equaliser selection panel
  • Set Storm Audio EQ lower frequency limit to 16 Hz
  • EQ panel waterfall colour scheme is only disabled if live waterfall updates are selected
  • Removed the filtering controls from the Clarity graph, filter settings are controlled from the RT60 graph
  • Revised controls layout on several graphs
  • Added a coefficient format selection for the Generic equaliser Save filter coefficients action, with a choice of miniDSP or SigmaStudio formats

Bug fixes
  • Bug fix: SPL & Phase graph trace offset and Add to data buttons were disabled for measurements without an impulse response
  • Bug fix: Align IR start button in All SPL graph controls was disabled after using it
  • Bug fix: Clock adjustment failed for new measurements
  • Bug fix: Cal file parsing could be confused by content in comments
  • Bug fix: The delay figure in the measurement notes for aligned measurements had the wrong sign
  • Bug fix: Selecting the custom range option for the pink or white random noise with both the low cut and high cut boxes not selected would cause an exception
  • Bug fix: An exception could occur if the file chooser file filter was set to "All files"
 

EarlK

Member
Joined
May 22, 2017
Messages
221
Hi John,

Whether using REW 32 bit or 64 bit, REW puts up 2 error windows ( Java Exceptions ) overlaying each other upon opening existing files ( files from beta 29, REW build ) .

Here are the notes to those exceptions;
Code:
REW V5.20 Beta 30 running JRE 1.8.0_231 32-bit on Windows 10, en, windows-1252


Message:
    java.lang.StringIndexOutOfBoundsException: String index out of range: -3
Stack Trace:
String index out of range: -3
    java.lang.String.substring(Unknown Source)
    roomeqwizard.MeasData.getSweepLevelUsed(y:3271)
    roomeqwizard.KH.A(y:779)
    roomeqwizard.LI.C(y:2579)
    roomeqwizard.XG.B(y:1073)
    roomeqwizard.DH.A(y:1129)
    roomeqwizard.rH.B(y:2017)
    roomeqwizard.KH.A(y:841)
    roomeqwizard.KH.paintComponent(y:3563)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JLayeredPane.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JLayer.paint(Unknown Source)
    javax.swing.plaf.LayerUI.paint(Unknown Source)
    javax.swing.plaf.ComponentUI.update(Unknown Source)
    javax.swing.JComponent.paintComponent(Unknown Source)
    javax.swing.JLayer.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JLayer.paint(Unknown Source)
    javax.swing.plaf.LayerUI.paint(Unknown Source)
    roomeqwizard.$B.paint(y:2131)
    javax.swing.plaf.ComponentUI.update(Unknown Source)
    javax.swing.JComponent.paintComponent(Unknown Source)
    javax.swing.JLayer.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JComponent.paintToOffscreen(Unknown Source)
    javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
    javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
    javax.swing.RepaintManager.paint(Unknown Source)
    javax.swing.JComponent._paintImmediately(Unknown Source)
    javax.swing.JComponent.paintImmediately(Unknown Source)
    javax.swing.JLayer.paintImmediately(Unknown Source)
    javax.swing.plaf.LayerUI.paintImmediately(Unknown Source)
    javax.swing.JLayer.paintImmediately(Unknown Source)
    javax.swing.JComponent.paintImmediately(Unknown Source)
    javax.swing.JLayer.paintImmediately(Unknown Source)
    javax.swing.plaf.LayerUI.paintImmediately(Unknown Source)
    javax.swing.JLayer.paintImmediately(Unknown Source)
    javax.swing.JComponent.paintImmediately(Unknown Source)
    javax.swing.RepaintManager$4.run(Unknown Source)
    javax.swing.RepaintManager$4.run(Unknown Source)
    java.security.AccessController.doPrivileged(Native Method)
    java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
    javax.swing.RepaintManager.access$1200(Unknown Source)
    javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
    java.awt.event.InvocationEvent.dispatch(Unknown Source)
    java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    java.awt.EventQueue.access$500(Unknown Source)
    java.awt.EventQueue$3.run(Unknown Source)
    java.awt.EventQueue$3.run(Unknown Source)
    java.security.AccessController.doPrivileged(Native Method)
    java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    java.awt.EventQueue.dispatchEvent(Unknown Source)
    java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    java.awt.EventDispatchThread.run(Unknown Source)

:)
 

IntoTheSun

Registered
Joined
Jul 17, 2019
Messages
1
Can you provide an example mdat file?

He's not the only one.

Code:
REW V5.20 Beta 30 running JRE 1.8.0_202 64-bit on Windows 10, es, windows-1252
 

Message:
    java.lang.StringIndexOutOfBoundsException: String index out of range: -3
Stack Trace:
String index out of range: -3
    java.lang.String.substring(Unknown Source)
    roomeqwizard.MeasData.getSweepLevelUsed(y:3271)
    roomeqwizard.KH.A(y:779)
    roomeqwizard.KH.V(y:878)
    roomeqwizard.KH.A(y:1525)
    roomeqwizard.KH.A(y:275)
    roomeqwizard.KH.paintComponent(y:3563)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JLayeredPane.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JLayer.paint(Unknown Source)
    javax.swing.plaf.LayerUI.paint(Unknown Source)
    javax.swing.plaf.ComponentUI.update(Unknown Source)
    javax.swing.JComponent.paintComponent(Unknown Source)
    javax.swing.JLayer.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JLayer.paint(Unknown Source)
    javax.swing.plaf.LayerUI.paint(Unknown Source)
    roomeqwizard.$B.paint(y:2131)
    javax.swing.plaf.ComponentUI.update(Unknown Source)
    javax.swing.JComponent.paintComponent(Unknown Source)
    javax.swing.JLayer.paint(Unknown Source)
    javax.swing.JComponent.paintChildren(Unknown Source)
    javax.swing.JComponent.paint(Unknown Source)
    javax.swing.JComponent.paintToOffscreen(Unknown Source)
    javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
    javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
    javax.swing.RepaintManager.paint(Unknown Source)
    javax.swing.JComponent._paintImmediately(Unknown Source)
    javax.swing.JComponent.paintImmediately(Unknown Source)
    javax.swing.JLayer.paintImmediately(Unknown Source)
    javax.swing.plaf.LayerUI.paintImmediately(Unknown Source)
    javax.swing.JLayer.paintImmediately(Unknown Source)
    javax.swing.JComponent.paintImmediately(Unknown Source)
    javax.swing.JLayer.paintImmediately(Unknown Source)
    javax.swing.plaf.LayerUI.paintImmediately(Unknown Source)
    javax.swing.JLayer.paintImmediately(Unknown Source)
    javax.swing.JComponent.paintImmediately(Unknown Source)
    javax.swing.RepaintManager$4.run(Unknown Source)
    javax.swing.RepaintManager$4.run(Unknown Source)
    java.security.AccessController.doPrivileged(Native Method)
    java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
    javax.swing.RepaintManager.access$1200(Unknown Source)
    javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
    java.awt.event.InvocationEvent.dispatch(Unknown Source)
    java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    java.awt.EventQueue.access$500(Unknown Source)
    java.awt.EventQueue$3.run(Unknown Source)
    java.awt.EventQueue$3.run(Unknown Source)
    java.security.AccessController.doPrivileged(Native Method)
    java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    java.awt.EventQueue.dispatchEvent(Unknown Source)
    java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    java.awt.WaitDispatchSupport$2.run(Unknown Source)
    java.awt.WaitDispatchSupport$4.run(Unknown Source)
    java.awt.WaitDispatchSupport$4.run(Unknown Source)
    java.security.AccessController.doPrivileged(Native Method)
    java.awt.WaitDispatchSupport.enter(Unknown Source)
    java.awt.Dialog.show(Unknown Source)
    java.awt.Component.show(Unknown Source)
    java.awt.Component.setVisible(Unknown Source)
    java.awt.Window.setVisible(Unknown Source)
    java.awt.Dialog.setVisible(Unknown Source)
    org.jdesktop.swingx.JXErrorPane$1.run(Unknown Source)
    org.jdesktop.swingx.JXErrorPane.showDialog(Unknown Source)
    org.jdesktop.swingx.JXErrorPane.showDialog(Unknown Source)
    roomeqwizard.RoomEQ_Wizard.C(y:1814)
    roomeqwizard.RoomEQ_Wizard$2.uncaughtException(y:2620)
    java.lang.ThreadGroup.uncaughtException(Unknown Source)
    java.lang.ThreadGroup.uncaughtException(Unknown Source)
    java.awt.EventDispatchThread.processException(Unknown Source)
    java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    java.awt.WaitDispatchSupport$2.run(Unknown Source)
    java.awt.WaitDispatchSupport$4.run(Unknown Source)
    java.awt.WaitDispatchSupport$4.run(Unknown Source)
    java.security.AccessController.doPrivileged(Native Method)
    java.awt.WaitDispatchSupport.enter(Unknown Source)
    java.awt.Dialog.show(Unknown Source)
    java.awt.Component.show(Unknown Source)
    java.awt.Component.setVisible(Unknown Source)
    java.awt.Window.setVisible(Unknown Source)
    java.awt.Dialog.setVisible(Unknown Source)
    org.jdesktop.swingx.JXErrorPane$1.run(Unknown Source)
    org.jdesktop.swingx.JXErrorPane.showDialog(Unknown Source)
    org.jdesktop.swingx.JXErrorPane.showDialog(Unknown Source)
    roomeqwizard.RoomEQ_Wizard.C(y:1814)
    roomeqwizard.RoomEQ_Wizard$2.uncaughtException(y:2620)
    java.lang.ThreadGroup.uncaughtException(Unknown Source)
    java.lang.ThreadGroup.uncaughtException(Unknown Source)
    java.awt.EventDispatchThread.processException(Unknown Source)
    java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    java.awt.WaitDispatchSupport$2.run(Unknown Source)
    java.awt.WaitDispatchSupport$4.run(Unknown Source)
    java.awt.WaitDispatchSupport$4.run(Unknown Source)
    java.security.AccessController.doPrivileged(Native Method)
    java.awt.WaitDispatchSupport.enter(Unknown Source)
    java.awt.Dialog.show(Unknown Source)
    java.awt.Component.show(Unknown Source)
    java.awt.Component.setVisible(Unknown Source)
    java.awt.Window.setVisible(Unknown Source)
    java.awt.Dialog.setVisible(Unknown Source)
    org.jdesktop.swingx.JXErrorPane$1.run(Unknown Source)
    org.jdesktop.swingx.JXErrorPane.showDialog(Unknown Source)
    org.jdesktop.swingx.JXErrorPane.showDialog(Unknown Source)
    roomeqwizard.RoomEQ_Wizard.C(y:1814)
    roomeqwizard.RoomEQ_Wizard$2.uncaughtException(y:2620)
    java.lang.ThreadGroup.uncaughtException(Unknown Source)
    java.lang.ThreadGroup.uncaughtException(Unknown Source)
    java.awt.EventDispatchThread.processException(Unknown Source)
    java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    java.awt.WaitDispatchSupport$2.run(Unknown Source)
    java.awt.WaitDispatchSupport$4.run(Unknown Source)
    java.awt.WaitDispatchSupport$4.run(Unknown Source)
    java.security.AccessController.doPrivileged(Native Method)
    java.awt.WaitDispatchSupport.enter(Unknown Source)
    java.awt.Dialog.show(Unknown Source)
    java.awt.Component.show(Unknown Source)
    java.awt.Component.setVisible(Unknown Source)
    java.awt.Window.setVisible(Unknown Source)
    java.awt.Dialog.setVisible(Unknown Source)
    org.jdesktop.swingx.JXErrorPane$1.run(Unknown Source)
    org.jdesktop.swingx.JXErrorPane.showDialog(Unknown Source)
    org.jdesktop.swingx.JXErrorPane.showDialog(Unknown Source)
    roomeqwizard.RoomEQ_Wizard.C(y:1814)
    roomeqwizard.RoomEQ_Wizard$2.uncaughtException(y:2620)
    java.lang.ThreadGroup.uncaughtException(Unknown Source)
    java.lang.ThreadGroup.uncaughtException(Unknown Source)
    java.awt.EventDispatchThread.processException(Unknown Source)
    java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    java.awt.EventDispatchThread.run(Unknown Source)
 

Attachments

  • datos.mdat
    1.7 MB · Views: 117

EarlK

Member
Joined
May 22, 2017
Messages
221
Hi John,

Here's the offending file.

It would seem that the problem file is a ZMA import made by Woofer Tester2 .

edit: Oops ! didn't realize my upload file was so huge ( now removed since the problem has been fixed ) .

edit2 : Yep, the problem file is definitely the import of the zma file made by WT2 ( I just tried a fresh import, and REW threw up multiple exception windows and wouldn't finish the import ).

- I've added the problem .zma ( zipped ) as a separate attachment since it's a small size ( + seemingly the source of the problem ).

EDIT3: Yes!
Beta 31 has fixed the problem! THANKS !!!

:)
 

Attachments

  • Altec 288-8K_on_NWS340_.zip
    4.9 KB · Views: 90
Last edited:

jtalden

Senior Member
Joined
May 22, 2017
Messages
887
Location
Arizona, USA
More  
Preamp, Processor or Receiver
Marantz AV7705 Pre/Pro
Main Amp
VTV 6 chnl NC252MP P-amp x 2
Additional Amp
Behringer DCX2496 x 2
Universal / Blu-ray / CD Player
OPPO BDP-103 Universal Player
Front Speakers
DIY SEAS H1456/H1212 Spkr x 5
Subwoofers
DIY JBL 2235H 15" SW x 2
Video Display Device
JVC DLA-X790R
Screen
Da-Lite Da-Snap 39105V - 92"
JohnM,
Beta 30, 31 appears to me there is a problem with the alignment tool. For illustration an mdat is attached. In this example the plotted location of ‘Sub1-Aligned’ impulse is wrong (measurement 3).

Process:
Looking at the original measurements 1 and 2 impulse location it is clear that 10.25 ms additional delay is needed for Sub1 to overlay Sub2 at 0 ms.

The alignment tool was used to do that adjusting impulse 3 'Sub1-aligned' 10.25 ms. The phase alignment now looked correct, but when saved as 3 'Sub1-Adjusted' The impulse was plotted in the wrong direction. Measurement 5 'Aligned sum' impulse is nonetheless plotted at the correct location and it appeared to correctly represent the desired summation even though 3 is plotted wrong. This was later confirmed below.

I used 6 ‘A plus B’ arithmetic to just to illustrate that the summation of 3 and 4 as plotted cannot be 5.

Measurement 7 changed the delay of Sub1 -10.25 ms using the alignment tool. Now the its plotted impulse overlays 2 'Sub2' as desired. The resulting 8 ''Aligned sum' impulse is now plotted at the wrong location and provides the wrong summation as proven below.

Finally, 9 and 10 are used to show the correct impulse alignments and the correct summation answer using a manual -10.25 ms offset to Sub1. This confirmed to me that 3 ‘Sub1-Aligned’ impulse was just plotted in the wrong direction, but that 5 ‘Aligned sum’ was correctly calculated and its resulting impulse is plotted in the correct position. I think any offset to Sub2 also may have this same problem, but did not confirm this. I was recently thoroughly confused when offsetting both together hence this example.
 

Attachments

  • AlignmentTool-3.mdat
    1,004 KB · Views: 57

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Messages
7,212
JohnM,
Beta 30, 31 appears to me there is a problem with the alignment tool. For illustration an mdat is attached. In this example the plotted location of ‘Sub1-Aligned’ impulse is wrong (measurement 3).
Yes, in trying to fix the incorrect sign of the delay in the comments for the aligned copy I went wrong, and two wrongs did not make a right. I have fixed it for the next beta, and also fixed the sign of the delay in the comment for the aligned sum.
 

jtalden

Senior Member
Joined
May 22, 2017
Messages
887
Location
Arizona, USA
More  
Preamp, Processor or Receiver
Marantz AV7705 Pre/Pro
Main Amp
VTV 6 chnl NC252MP P-amp x 2
Additional Amp
Behringer DCX2496 x 2
Universal / Blu-ray / CD Player
OPPO BDP-103 Universal Player
Front Speakers
DIY SEAS H1456/H1212 Spkr x 5
Subwoofers
DIY JBL 2235H 15" SW x 2
Video Display Device
JVC DLA-X790R
Screen
Da-Lite Da-Snap 39105V - 92"
I'm relieved that it wasn't another misunderstanding on my part. :)
Thanks.
 

Paul Kane

Member
Joined
Jun 22, 2017
Messages
16
There are 4 mains areas of change in beta 30:
  1. Support for stepped sine measurements that step in level instead of frequency
  2. Support for different axis types for measurement results
  3. A new method of RT60 calculation using frequency domain processing
  4. Changes to the graph controls to move some groups of controls into separate dialogs

Stepped sine changes

The stepped sine dialog now offers options to step in frequency at a fixed level or step in level at a fixed frequency. Stepped level results can be plotted on the Distortion graph against either generator or input level and using multiple axis units. A stability test has also been added to monitor the input and begin averaging as soon as the input is sufficiently stable to minimise the waiting time between steps. There is also a distortion threshold beyond which stepped sine measurements will be stopped, distortion must drop below the threshold to arm it. Finally the stepped sine dialog is no longer modal, meaning the RTA window remains accessible for graph adjustments, but RTA controls are disabled to avoid changes that would interfere with the measurement.

Different axis types

Graphs showing measurement results now offer multiple Y axis unit types including dB SPL, dBFS, dBu, dBV, dBW, volts and watts. The watt values are based on the reference resistance specified in the RTA controls, while voltages are based on the full scale values configured on the RTA for input and the signal generator for output. There are also dBr and V/V axis options to provide a transfer function view based on the relative dBFS or voltage levels respectively.

RT60 Decay

The new RT60 Decay graph takes a novel frequency domain approach to RT60 calculation, providing a way to examine reverberation time behaviour at much higher frequency resolutions and with much narrower octave fractions than is usually possible, even at low frequencies. For details on that see the help page.

Graph controls

The graph controls were becoming quite cluttered for some graphs, so groups of controls have been moved to separate dialogs to alleviate that:
  • On the Waterfall the settings for the view and colour scheme have been moved to separate dialogs
  • On the Spectrogram the settings for the colour scheme have been moved to a separate dialog
  • On All SPL controls the trace arithmetic controls and individual measurement actions have been moved to separate dialogs
  • On the RTA controls the settings for distortion and view have been moved to separate dialogs

Other changes
  • Did away with the plot normalised option for distortion graphs, happens automatically if dBr or percent selected as Y axis
  • Changed SPL & Phase "Invert polarity" checkbox to a toggle button
  • Added filter order selection for the RT60 and Filtered IR graphs, default is 6th order, max is 48th (filters are Butterworth bandpass)
  • Added the equaliser sample rate in the heading of the equaliser selection panel
  • Set Storm Audio EQ lower frequency limit to 16 Hz
  • EQ panel waterfall colour scheme is only disabled if live waterfall updates are selected
  • Removed the filtering controls from the Clarity graph, filter settings are controlled from the RT60 graph
  • Revised controls layout on several graphs
  • Added a coefficient format selection for the Generic equaliser Save filter coefficients action, with a choice of miniDSP or SigmaStudio formats

Bug fixes
  • Bug fix: SPL & Phase graph trace offset and Add to data buttons were disabled for measurements without an impulse response
  • Bug fix: Align IR start button in All SPL graph controls was disabled after using it
  • Bug fix: Clock adjustment failed for new measurements
  • Bug fix: Cal file parsing could be confused by content in comments
  • Bug fix: The delay figure in the measurement notes for aligned measurements had the wrong sign
  • Bug fix: Selecting the custom range option for the pink or white random noise with both the low cut and high cut boxes not selected would cause an exception
  • Bug fix: An exception could occur if the file chooser file filter was set to "All files"

I just logged in here to request a stepped level sine function in addition to the frequency one, and it's already added! Thank you, John!
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Messages
7,212
Changes in V5.20 beta 32:
  • Bug fix: Alignment tool aligned copy had the delay applied with the wrong sign
  • Bug fix: Delays in the comments for the Alignment tool aligned sum measurement had the wrong sign
  • Bug fix: Ohms axis could become selected for SPL measurements on the SPL & Phase graph when there was a mix of SPL and impedance measurements
  • Bug fix: Limits dialog was not working properly for new axis types
 

stickybeak

Registered
Joined
Oct 22, 2017
Messages
1
More  
Preamp, Processor or Receiver
Onkyo TX-NR676
Universal / Blu-ray / CD Player
Oppo UDP-205
Front Speakers
Golden Ear Technology Triton Five
Center Channel Speaker
Golden Ear Technology SuperCenter X
Surround Speakers
Golden Ear Technology SuperSat 3
Surround Back Speakers
Golden Ear Technology
Rear Height Speakers
B&W CCM382
Subwoofers
Golden Ear Technology SuperSub X
Video Display Device
DeVant 55"
Changes in V5.20 beta 32:
  • Bug fix: Alignment tool aligned copy had the delay applied with the wrong sign
  • Bug fix: Delays in the comments for the Alignment tool aligned sum measurement had the wrong sign
  • Bug fix: Ohms axis could become selected for SPL measurements on the SPL & Phase graph when there was a mix of SPL and impedance measurements
  • Bug fix: Limits dialog was not working properly for new axis types
Thank you, John!
 

Ominae

Registered
Joined
Jul 4, 2018
Messages
6
Anyone else having an issue with trying to add an offset to a measurement?

I downloaded the latest REW beta (beta 32) today. I imported a house curve then took a measurement. Looking at the All SPL graph the difference between the two measurements is approximately 45db. I click Controls and select "Measurement actions". When that window opens I make sure the house curve is selected then enter the offset (-45) and click the "Add offset to data" button. Nothing happens. I try the other way (adding 45 to the measurement) but that didn't do anything either. I also tried clicking the up and down arrows to see if that would work but still no results, Is this a bug or am I missing something?
 

jtalden

Senior Member
Joined
May 22, 2017
Messages
887
Location
Arizona, USA
More  
Preamp, Processor or Receiver
Marantz AV7705 Pre/Pro
Main Amp
VTV 6 chnl NC252MP P-amp x 2
Additional Amp
Behringer DCX2496 x 2
Universal / Blu-ray / CD Player
OPPO BDP-103 Universal Player
Front Speakers
DIY SEAS H1456/H1212 Spkr x 5
Subwoofers
DIY JBL 2235H 15" SW x 2
Video Display Device
JVC DLA-X790R
Screen
Da-Lite Da-Snap 39105V - 92"
You imported a custom house curve as a 'frequency response' and offset did not work? It works okay for me just as any other imported response does.
 

Ominae

Registered
Joined
Jul 4, 2018
Messages
6
Did you have any other items loaded or just the house curve?

I just tried playing around with it again and I'm still having issues. If the only thing in the measurement panel is the house curve (which is simply a text file I import as a measurement) the offset function works as expected. But the moment I take a new measurement or load a saved measurement (so that there are 2 or more items showing in the measurement panel) It stops functioning I have tried this multiple times throughout the day, I have uninstalled and reinstalled REW but the issue persists.
 

jtalden

Senior Member
Joined
May 22, 2017
Messages
887
Location
Arizona, USA
More  
Preamp, Processor or Receiver
Marantz AV7705 Pre/Pro
Main Amp
VTV 6 chnl NC252MP P-amp x 2
Additional Amp
Behringer DCX2496 x 2
Universal / Blu-ray / CD Player
OPPO BDP-103 Universal Player
Front Speakers
DIY SEAS H1456/H1212 Spkr x 5
Subwoofers
DIY JBL 2235H 15" SW x 2
Video Display Device
JVC DLA-X790R
Screen
Da-Lite Da-Snap 39105V - 92"
I just tested it again this time with the another old file loaded as well as the imported house curve. It still works for me both using the 'SPL & Phase' tab and also using the 'All SPL' tab. Maybe it is in the details? I'm using the latest REW 5.20 beta 32 Windows 64 version. Possibly there is something about your text file - too small maybe? Possibly it is happening with a particular sequence of actions? I sometimes don't select the right measurement, but you indicated you were careful about that. I have no other ideas.
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Messages
7,212
Anyone else having an issue with trying to add an offset to a measurement?

I downloaded the latest REW beta (beta 32) today. I imported a house curve then took a measurement. Looking at the All SPL graph the difference between the two measurements is approximately 45db. I click Controls and select "Measurement actions". When that window opens I make sure the house curve is selected then enter the offset (-45) and click the "Add offset to data" button. Nothing happens. I try the other way (adding 45 to the measurement) but that didn't do anything either. I also tried clicking the up and down arrows to see if that would work but still no results, Is this a bug or am I missing something?
Make sure the graph axis is set to SPL, offsets only affect the SPL values.
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Messages
7,212
Dragging wav files onto the RTA for processing is not working in beta 32, it has been fixed for the next beta. Many thanks to Steffen for reporting that.
 

jtalden

Senior Member
Joined
May 22, 2017
Messages
887
Location
Arizona, USA
More  
Preamp, Processor or Receiver
Marantz AV7705 Pre/Pro
Main Amp
VTV 6 chnl NC252MP P-amp x 2
Additional Amp
Behringer DCX2496 x 2
Universal / Blu-ray / CD Player
OPPO BDP-103 Universal Player
Front Speakers
DIY SEAS H1456/H1212 Spkr x 5
Subwoofers
DIY JBL 2235H 15" SW x 2
Video Display Device
JVC DLA-X790R
Screen
Da-Lite Da-Snap 39105V - 92"
John,
I've had an error popup occasionally when opening a second file in the same session. This time I was able to recreate it. It seems pretty specific to the actions and the files however. I tried it with 2 other files and did not have the error.

Actions:
  1. Open File 1
  2. Create the spectrogram and leave the spectrogram panel open
  3. Open File 2 (the error occurs)
Notes:
  • Closing all the error dialogs recovers to a working session
  • File I was created by another forum user
  • File 2 is one I created
 

Attachments

  • File 1.mdat
    1.3 MB · Views: 47
  • File 2.mdat
    12.1 MB · Views: 44

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Messages
7,212
Thanks John, I have fixed the underlying problem that causes that for the next beta, it was a side effect of calculating multiple wavelet spectrograms at the same time. I have also changed the way files with multiple measurements are handled, loading them as a set then selecting the last measurement rather than adding and selecting each measurement individually. That speeds up loading by not triggering calculations that may be required when a measurement is selected, for example generating a spectrogram when on the Spectrogram graph page.
 

jtalden

Senior Member
Joined
May 22, 2017
Messages
887
Location
Arizona, USA
More  
Preamp, Processor or Receiver
Marantz AV7705 Pre/Pro
Main Amp
VTV 6 chnl NC252MP P-amp x 2
Additional Amp
Behringer DCX2496 x 2
Universal / Blu-ray / CD Player
OPPO BDP-103 Universal Player
Front Speakers
DIY SEAS H1456/H1212 Spkr x 5
Subwoofers
DIY JBL 2235H 15" SW x 2
Video Display Device
JVC DLA-X790R
Screen
Da-Lite Da-Snap 39105V - 92"
Your amazing!
Thanks
 

Paul Kane

Member
Joined
Jun 22, 2017
Messages
16
Hi John,

Ran into a problem doing a stepped sine frequency sweep in beta 32. Error happened on step 19 out 29, FFT Length = 65536, Window: B-H7, Averages: 8, Max overlap: 87.5%, start freq: 31.5 end: 20000, step: 3, level: -10, silence interval: 5

28161
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Messages
7,212
Ran into a problem doing a stepped sine frequency sweep in beta 32. Error happened on step 19 out 29, FFT Length = 65536, Window: B-H7, Averages: 8, Max overlap: 87.5%, start freq: 31.5 end: 20000, step: 3, level: -10, silence interval: 5
Thanks Paul. What sample rate were you running at? Looks like the error may have been related to showing harmonic phases, was that selected from the start of the run?
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Messages
7,212
Changes in V5.20 beta 33:
  • When multiple measurements are loaded load them as a set then select the last rather than adding and selecting each individually. This speeds up loading by not triggering calculations that may be required when a measurement is selected, for example generating a spectrogram when on the Spectrogram graph page
  • Suppress low quality RT60 decay results
  • Bug fix: Dragging wav files onto the RTA for processing was not working
  • Bug fix: Loading a file with multiple measurements while on the Spectrogram graph with the Wavelet spectrogram selected could result in an exception
  • Bug fix: Could not select the manual settings button on RT60 decay
  • Bug fix: Guard against out of range error when fetching harmonic phase during stepped sine measurement
 

Paul Kane

Member
Joined
Jun 22, 2017
Messages
16
Thanks Paul. What sample rate were you running at? Looks like the error may have been related to showing harmonic phases, was that selected from the start of the run?

Sample rate was 44.1kHz. I didn't have the "Show Distortion" window visible on the screen when starting the sweep, but it was shown automatically when started. Harmonic phases check box was checked in settings. By the way, seems that closing the distortion window during a sweep causes REW to stop producing any new data points, even though the sweep continues to run.
 
Top Bottom