REW Beta Release REW API beta releases

imgur is not available in the UK so I can't see what you've posted. You can just paste images directly into your post.
Here's the image:
1764543027564.png


Back to "nitpicky" items, can you please make the aspect ratio overlay visible while the main window is being resized? This is the "show aspect ratio" option under preference -> view.
 
Builds updated today (beta 109) with these changes:
  • Changed: soundcardprefs.properties bundle has additional entries for NEXT_BUTTON and FINISH_BUTTON
  • Fixed: Beta 108 did not load local property bundle files
  • Fixed: JAXB implementation was missing
 
Oh I didn't know about imgur. Thanks for reposting it, dcibel. Yeah reporting something so minor is a bit of a "keep up the good work" I suppose lol.
 
Here's a more substantial one. When I try to drag the left and right windows around in the impulse tab when the step response trace has never been enabled during the current session looks like the first picture. If I enable and/or disable the step response, then it does something like the second pic for everything until restarting.
 

Attachments

  • normalimpulse.png
    normalimpulse.png
    244.7 KB · Views: 23
  • weirdimpulse.png
    weirdimpulse.png
    255.2 KB · Views: 23
I have a request (maybe in future release), by any chance, can place Alignment option or shortcut on the main page, maybe next to Trace Arithmetic? Alignment option is hidden and needs few extra clicks to launch it. Thanks!
 
I have a request (maybe in future release), by any chance, can place Alignment option or shortcut on the main page, maybe next to Trace Arithmetic? Alignment option is hidden and needs few extra clicks to launch it. Thanks!
I'd like to see it somewhere more visible/accessible too. If not there, maybe in the tools menu?

E: Though I guess all the stuff in tools doesn't need measurements so it doesn't really fit there either. It is kind of a unique thing that's hard to fit elsewhere.
 
Last edited:
The alignment tool is a feature of the All SPL graph, which is why it appears in the right click menu for that graph. A button is a possibility, but it would have to select the All SPL graph as well as bringing up the alignment tool dialog, which would be a bit of a departure from the behaviour of other tools.
 
hello,
at high frequency the filters in the target settings and the eq filters panel do not produce same results for equals filter.
the generate measurement from filter and generate measurement from target shape are different.
If you can verify please, it would be great.
 

Attachments

  • 1764886333170.png
    1764886333170.png
    280.5 KB · Views: 11
The target generation uses a very high sample rate to better reflect the shape an analogue filter would produce. The equaliser emulations use the actual sample rate of the measurement (or equaliser if different) and included the effects of sample rate on filter shape. For low pass filters most digital implementations will have zero magnitude at half the sample rate (minus infinity on a dB scale) which produces the effect you observed.
 
Hi John, I'm not sure if this is something worth looking at. I am on Linux/Wayland, and if I change screen resolution while REW is open, or my screen turns off due to inactivity, the next action creates an exception:
Code:
java.lang.IllegalArgumentException: Width (0) and height (0) cannot be <= 0

If I close the error and continue on, everything appears fine.

Full error details is below:
REW V5.40 Beta 108 running Eclipse Adoptium JRE 11.0.29 64-bit on linux 6.16.8-1-manjaro Language en, country CA, keyboard CA, UTF-8 Screen 0 x 0 at 96 DPI Running in /home/reet/REW


Message:
java.lang.IllegalArgumentException: Width (0) and height (0) cannot be <= 0
Stack Trace:
Width (0) and height (0) cannot be = 0
java.desktop/sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:75)
java.desktop/sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:122)
java.desktop/java.awt.GraphicsConfiguration.createCompatibleVolatileImage(GraphicsConfiguration.java:307)
java.desktop/java.awt.GraphicsConfiguration.createCompatibleVolatileImage(GraphicsConfiguration.java:241)
java.desktop/javax.swing.RepaintManager.getVolatileOffscreenBuffer(RepaintManager.java:1098)
org.jdesktop.swingx.ForwardingRepaintManager.getVolatileOffscreenBuffer(Unknown Source)
java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1543)
java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323)
java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5203)
java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5013)
java.desktop/javax.swing.JLayer.paintImmediately(JLayer.java:430)
java.desktop/javax.swing.plaf.LayerUI.paintImmediately(LayerUI.java:723)
java.desktop/javax.swing.JLayer.paintImmediately(JLayer.java:425)
java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:4994)
java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:865)
java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848)
java.base/java.security.AccessController.doPrivileged(Native Method)
java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848)
java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823)
org.jdesktop.swingx.ForwardingRepaintManager.paintDirtyRegions(Unknown Source)
java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772)
java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1890)
java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
java.base/java.security.AccessController.doPrivileged(Native Method)
java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
java.base/java.security.AccessController.doPrivileged(Native Method)
java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
java.desktop/java.awt.Dialog.show(Dialog.java:1070)
java.desktop/java.awt.Component.show(Component.java:1716)
java.desktop/java.awt.Component.setVisible(Component.java:1663)
java.desktop/java.awt.Window.setVisible(Window.java:1031)
java.desktop/java.awt.Dialog.setVisible(Dialog.java:1005)
roomeqwizard.dF.setVisible(y:1628)
roomeqwizard.yA.setVisible(y:5918)
roomeqwizard.RD.A(y:1774)
roomeqwizard.RF$25.actionPerformed(y:966)
java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
java.desktop/java.awt.Component.processMouseEvent(Component.java:6635)
java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
java.desktop/java.awt.Component.processEvent(Component.java:6400)
java.desktop/java.awt.Container.processEvent(Container.java:2263)
java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)
java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
java.base/java.security.AccessController.doPrivileged(Native Method)
java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
java.base/java.security.AccessController.doPrivileged(Native Method)
java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
 
Last edited:
Is there a way to fetch the measured impulse response with mic calibration included?
 
I'm not sure if this is something worth looking at. I am on Linux/Wayland, and if I change screen resolution while REW is open, or my screen turns off due to inactivity, the next action creates an exception:
That's happening inside the Java runtime, the screen size is coming back as 0 x 0 pixels (presumably temporarily).
 
Builds updated today (beta 110) with these changes:
  • Added: The Captured graph has options in the right click menu to export the stimulus, captured or reference signals as WAV files
  • Added: There is an "EQ only" StormAudio equaliser entry that has 20 filters, but no crossover filters
  • Changed: If the option to show aspect ratio has been selected it will be shown when the window is resized
  • Changed: Improved the behaviour of the graph axis limits spinners to use preferred values when using the buttons or mouse wheel (press Alt with mouse wheel for fine adjustment)
  • Fixed: "Impulse response missing" error message was incorrectly formatted
  • Fixed: Windowed IR and step response could be rendered incorrectly when adjusting IR limits on the Impulse graph
 
Last edited:
A simple feature request, I think it would be really great if you could select 2 measurements, and they would pre-load into the selection when you open the arithmetic window.
 
Builds updated today (beta 110) with these changes:

  • Changed: If the option to show aspect ratio has been selected it will be shown when the window is resized
  • Changed: Improved the behaviour of the graph axis limits spinners to use preferred values when using the buttons or mouse wheel (press Alt with mouse wheel for fine adjustment)
Thank you John, this is perfect :)
 
Back
Top