REW Beta Release REW API beta releases

Builds updated today (beta 69) with these changes:
  • Added: The EQ window "Measure with these filters" task can be used with FSAF
  • Added: View preferences has a watermark opacity control
  • Changed: API calls to match target can return a NOK error result if there are no filters to configure; or the match range is too narrow; or the match range does not overlap the range of the equaliser or the range of the measurement
  • Fixed: Distortion graph "Limit distortion to 30 dB" option did not get applied to legend values if the graph axis was not relative
  • Fixed: Moving selected items in the room simulator using the arrow keys did not update the time delay values
 
Builds updated today (beta 69) with these changes:
  • Added: The EQ window "Measure with these filters" task can be used with FSAF
  • Added: View preferences has a watermark opacity control
  • Changed: API calls to match target can return a NOK error result if there are no filters to configure; or the match range is too narrow; or the match range does not overlap the range of the equaliser or the range of the measurement
  • Fixed: Distortion graph "Limit distortion to 30 dB" option did not get applied to legend values if the graph axis was not relative
  • Fixed: Moving selected items in the room simulator using the arrow keys did not update the time delay values
Hi John, having problems with both the current official release and the latest beta...Mac OS Ventura, M1 Mac...the input keeps disappearing...happens on a few different interfaces and both desktop and laptop...sometimes if I reboot app/computer it comes back for a while...stepped sine won't work on REW_macos_5_40_beta_69-api

"No soundcard input data
The soundcard did not provide any input data from...

REW_macos_5_31_3
REW_macos_5_40_beta_69-api

Any ideas?

Is there access to any older beta versions that i could try (like post current)...couldn't find it on site
 
For a sampling rate of 48kHz, I am getting wav files with lower amplitude than for all other sampling rates at the same settings. The discrepancy by which the 48kHz files are too quiet is somehow dependent on the frequency of the test tone. For a 20kHz sine tone I get -0.3db instead of my desired setting.
I have tested with the newest beta 69.
 
Last edited:
For a 20kHz sine tone I get -0.3db instead of my desired setting.
At frequencies that approach half the sample rate there are barely more that 2 samples per cycle, you may not be getting an accurate measure of the signal level.
 
Hi John,
With the latest beta 69 on Windows x64, I am encountering an array index our of bounds error when viewing the distortion tab for a multitone RTA distortion measurement.

I've attached the MDAT in question, the last 2 measurements in the file are providing the error.

[Edit: I played around a bit more, and the error appears to be related to the graph axis limits. If you don't immediately reproduce the error, try changing Y axis scale to dBr with the following limits:
1739394127046.png

If I change the left Hz value to something like 20Hz or 5kHz, the error goes away.]

REW V5.40 Beta 69 running Azul Systems, Inc. JRE 1.8.0_442 64-bit on Windows 10 Locale: language en, keyboard CA, windows-1252 on 1920x1080 at 96 DPI Running in C:\Users\rtowsl01\AppData\Local\Programs\REW


Message:
java.lang.ArrayIndexOutOfBoundsException: 2470
Stack Trace:
2470
roomeqwizard.AL.A(y:4438)
roomeqwizard.AL.Z(y:2894)
roomeqwizard.AL.A(y:990)
roomeqwizard.AL.A(y:3149)
roomeqwizard.AL.paintComponent(y:2226)
javax.swing.JComponent.paint(JComponent.java:1056)
javax.swing.JComponent.paintChildren(JComponent.java:889)
javax.swing.JComponent.paint(JComponent.java:1065)
javax.swing.JLayeredPane.paint(JLayeredPane.java:586)
javax.swing.JComponent.paintChildren(JComponent.java:889)
javax.swing.JComponent.paint(JComponent.java:1065)
javax.swing.JLayer.paint(JLayer.java:433)
javax.swing.plaf.LayerUI.paint(LayerUI.java:79)
javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
javax.swing.JComponent.paintComponent(JComponent.java:780)
javax.swing.JLayer.paint(JLayer.java:428)
javax.swing.JComponent.paintChildren(JComponent.java:889)
javax.swing.JComponent.paint(JComponent.java:1065)
javax.swing.JComponent.paintChildren(JComponent.java:889)
javax.swing.JComponent.paint(JComponent.java:1065)
javax.swing.JComponent.paintChildren(JComponent.java:889)
javax.swing.JComponent.paint(JComponent.java:1065)
javax.swing.JComponent.paintChildren(JComponent.java:889)
javax.swing.JComponent.paint(JComponent.java:1065)
javax.swing.JLayer.paint(JLayer.java:433)
javax.swing.plaf.LayerUI.paint(LayerUI.java:79)
roomeqwizard.SC.paint(y:2131)
javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
javax.swing.JComponent.paintComponent(JComponent.java:780)
javax.swing.JLayer.paint(JLayer.java:428)
javax.swing.JComponent.paintChildren(JComponent.java:889)
javax.swing.JComponent.paint(JComponent.java:1065)
javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
javax.swing.RepaintManager.paint(RepaintManager.java:1272)
javax.swing.JComponent._paintImmediately(JComponent.java:5158)
javax.swing.JComponent.paintImmediately(JComponent.java:4969)
javax.swing.JLayer.paintImmediately(JLayer.java:415)
javax.swing.plaf.LayerUI.paintImmediately(LayerUI.java:717)
javax.swing.JLayer.paintImmediately(JLayer.java:410)
javax.swing.JComponent.paintImmediately(JComponent.java:4950)
javax.swing.RepaintManager$4.run(RepaintManager.java:831)
javax.swing.RepaintManager$4.run(RepaintManager.java:814)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
java.awt.EventQueue.access$500(EventQueue.java:97)
java.awt.EventQueue$3.run(EventQueue.java:709)
java.awt.EventQueue$3.run(EventQueue.java:703)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
 

Attachments

Last edited:
As a follow up question for multitone distortion display. Is there anything that can be done to the distortion tab display for this type of measurement to make the intermodulation a bit more clear. Due to the short bandwidth of the frequency peaks, their visibility is not easily accessible on the distortion tab, they come and go as you scroll the display. I don't see this behaviour when viewing the measurement on the SPL or All SPL tabs.

here's a short video to highlight what I'm talking about.

 
When viewing individual harmonics in the overlay window, dBr Y-axis selected, if "plot harmonics at the harmonic frequency" is selected in the main distortion tab, "use harmonic frequency as ref" in the overlay window doesn't do anything, harmonics are always shown relative to the harmonic frequency's fundamental. I think including the "plot harmonics at the harmonic frequency" in the overlay window option would be a great addition.
 
Last edited:
Builds updated today (beta 70) with these changes:
  • Added: Distortion overlay graph controls have a "Plot harmonics at the harmonic frequency" option
  • Fixed: Array index out of bounds could occur when drawing the distortion graph for a multitone capture
  • Fixed: Alignment tool "Remove time delay" option was not working correctly
 
Thanks a lot John! You have missed one important bullet point.

  • Fixed: Display of multitone distortion was inconsistent.
 
Hi John,
When time aligning audio channels against a subwoofer channel, either via IR or phase option, using the Alignment Tool, one often has to retype the delay time because it resets to zero when choosing another measurement.

Please consider adding an option to freeze/lock the chosen time delay when scrolling through measurements. I think it will save a bit of time. Thanks.
 
Builds updated today (beta 71) with these changes:
  • Added: API has an /import/impulse-response-data endpoint to import impulse responses specified as Base64-encoded strings generated from 32-bit float data arrays
  • Added: API has an /import/frequency-response-data endpoint to import frequency responses specified as Base64-encoded strings generated from 32-bit float data arrays
 
Hi John,
For FSAF, If I adjust a measurement level by -10dB for example and select "add to data", it appears that the level on the distortion chart is adjusted for +10dB, not -10dB.

This ask may be a long shot, but it would be great if adjusting the level of a measurement, also adjusts the level of the residual audio. I am finding that if I don't have my input gain set the same between measurements, it really affects the level of the residual audio, making a direct comparison more difficult. In retrospect, I should really adjust my process a bit so I am keeping a more consistent input gain, but at the same time I would like to maximize SNR, so adjusting it is sometime beneficial.
 
Back
Top