REW Beta Release REW API beta releases

From the mdat I see you are using Trim IR to windows and then exporting the trimmed IR. Trim IR to windows ensures the resulting IR length is a power of 2. If that power of 2 length went past the end of the available data zeroes were prepended to the IR. I have changed that for the next V5.40 beta build. For your exports it would make more sense to use the "Apply IR windows before export" option instead of trimming the IR.
Thank you for your quick feedback.
Yes. It's a habit for me. Letting out after burping.
So if I use Apply IR windows before export in IR exporter, is there no such problem? (
So is something changed for that trim in 5.30.9 and 5.31, right?
In versions before 5.31, I couldn't try to recreate that. )
 
1727355661249.png


I am not sure what I am doing wrong, but ever since I have installed the beta version, the right click on the legend panel is missing the option to copy the selections to the other overlay graphs. I only see these three options.

I bet I am missing some step. Please advise.
 
REW V5.40 Beta 55 running Azul Systems, Inc. JRE 1.8.0_422 64-bit on Windows 10 Locale: language en, keyboard GB, windows-1252 on 3840x1600 at 96 DPI Running in C:\Program Files\REW


Message:
java.util.concurrent.ExecutionException: java.lang.NullPointerException
Stack Trace:
java.lang.NullPointerException
java.util.concurrent.FutureTask.report(FutureTask.java:122)
java.util.concurrent.FutureTask.get(FutureTask.java:192)
javax.swing.SwingWorker.get(SwingWorker.java:602)
roomeqwizard.kM.done(y:818)
javax.swing.SwingWorker$5.run(SwingWorker.java:737)
javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:832)
sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:842)
javax.swing.Timer.fireActionPerformed(Timer.java:313)
javax.swing.Timer$DoPostEvent.run(Timer.java:245)
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)
Caused by:
java.lang.NullPointerException
roomeqwizard.IRData.applyOctaveFilter(y:2584)
roomeqwizard.MeasData.applyOctaveFilter(y:6722)
roomeqwizard.MeasData.applyOctaveFilter(y:5931)
roomeqwizard.kM$2.A(y:58)
A.A.A.A.B.A(Unknown Source)
A.A.A.A.B.A(Unknown Source)
roomeqwizard.kM.A(y:2862)
roomeqwizard.kM.doInBackground(y:2621)
javax.swing.SwingWorker$1.call(SwingWorker.java:295)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
javax.swing.SwingWorker.run(SwingWorker.java:334)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
java.lang.Thread.run(Thread.java:750)
 

Attachments

Last edited by a moderator:
John,

Somewhere in this part of the script (and it's in a loop) sometimes a Java Exception is thrown. It could be other unclosed script pages running in the background causing this but I am sharing anyway:

1727438027271.png


2024-Sep-27 14:46:10: POST http://localhost:4735/measurements/11/filters {"filters":[{"index":22,"type":"Low pass","enabled":True,"isAuto":false,"frequency":5000,"shape":"BU","slopedBPerOctave":12}]} Response: 200 application/json body size in bytes: 30
Exception captured RT60 calculation
java.util.concurrent.ExecutionException: java.lang.NullPointerException
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at javax.swing.SwingWorker.get(SwingWorker.java:602)
at roomeqwizard.kM.done(y:818)
at javax.swing.SwingWorker$5.run(SwingWorker.java:737)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:832)
at sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:842)
at javax.swing.Timer.fireActionPerformed(Timer.java:313)
at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.NullPointerException
at roomeqwizard.IRData.applyOctaveFilter(y:2584)
at roomeqwizard.MeasData.applyOctaveFilter(y:6722)
at roomeqwizard.MeasData.applyOctaveFilter(y:5931)
at roomeqwizard.kM$2.A(y:58)
at A.A.A.A.B.A(Unknown Source)
at A.A.A.A.B.A(Unknown Source)
at roomeqwizard.kM.A(y:2862)
at roomeqwizard.kM.doInBackground(y:2621)
at javax.swing.SwingWorker$1.call(SwingWorker.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at javax.swing.SwingWorker.run(SwingWorker.java:334)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
java.lang.NullPointerException
2024-Sep-27 14:46:10 Error: An error has occurred in RT60 calculation
java.util.concurrent.ExecutionException: java.lang.NullPointerException
<html><h2>REW V5.40 Beta 55 running Azul Systems, Inc. JRE 1.8.0_422 64-bit on Windows 10


PS There's nothing related to RT60 in the script!
 

Attachments

Last edited by a moderator:
Somewhere in this part of the script (and it's in a loop) sometimes a Java Exception is thrown
That and the previous post are errors caused when a measurement whose RT60 data is being generated is removed. RT60 data generation can be triggered by various events, including selecting a measurement.
 
It's an extremely rare outcome but any suggestion I can catch or avoid that error? Or is an inhibitor for that kind of background operations possible?
 
If you are changing the currently selected measurement try and avoid that. If you are deleting measurements don't do it too quickly after generating them.
 
Hi John,
I don't know if this is possible, but I ask you.
Is it also possible to remove only toal harmonic distortion components from the measurements recorded as REW? (Like extracting a minimal phase or an access phase)
 
Not sure I follow, but the impulse response from a sweep measurement is the linear response of the system excluding any harmonic distortion components.
 
Builds updated today (beta 56) with these changes:
  • Pro upgrade: Added calculation of speech transmission index by the indirect method per IEC 60268-16:2020
  • Added a custom clarity trace with a control to set the division between early and late time in the graph controls
  • Added an API endpoint /measurements/max-measurements to retrieve the maximum number of measurements allowed
  • Added API RTA endpoint commands to save the graph image to file or copy it to the clipboard
  • Added API RTA endpoint /rta/image-capture-settings to read and configure the options for saving or copying graph images
  • Changed: Room simulator allows sources to be placed with their acoustic centres flush with room surfaces
  • Changed: Delay cleanup after measurement removal if calculations are running on it
  • Changed: API SPLValues rollingLeqMinutes is now a double rather than an integer
  • Fixed: Graph x axis frequency presets did not work properly if the chosen end frequency was too far beyond the range of the loaded measurements
  • Fixed: Trim IR to windows could prepend zero-valued data to the trimmed IR
  • Fixed: POSTing to /generator/full-scale-vrms gave different results depending on the "Full scale sine rms is 0 dBFS" setting
 
In beta 56 does impulse timing change? I noticed my speakers have a 3 to 4ms change in impulse timing after updating. How exactly did impulse timing change?
 
I apologize if it's a stupid question but do we need to uninstall 5.31.3 before installing the beta?
 
WIth IR-Windows POST API, addFDW = "false" seems to be ignored:

1728470003683.png
 
I have managed to run successful sweeps with two analogue + one USB mic (total of 3 mics) but didn't try 2 usb mics.
wow, you're full of tricks :laugh: :T
 
On this build and on the current stable build (Linux build and then WINE) I have an array out of bounds error whenever I try to generate minimum phase with tails and whenever I click on the Impulse tab for a measurement which I generated minimum phase data for.


REW V5.40 Beta 56 running Azul Systems, Inc. JRE 1.8.0_422 64-bit on Windows 10 Locale: language en, keyboard US, windows-1252 on 1600x1200 at 96 DPI Running in C:\Program Files\REW


Message:
java.lang.IndexOutOfBoundsException
Stack Trace:
java.nio.FloatBuffer.wrap(FloatBuffer.java:375)
com.B.A.C.A(Unknown Source)
roomeqwizard.EG.A(y:3385)
roomeqwizard.Interpolation.oversample(y:905)
roomeqwizard.SampledData.getOversampled(y:2098)
roomeqwizard.SampledData.getOversampled(y:1889)
roomeqwizard.SampledData.<init>(y:3110)
roomeqwizard.IRData.createWindowedIR(y:952)
roomeqwizard.IRData.getWindowedIR(y:364)
roomeqwizard.ML.E(y:1370)
roomeqwizard.JD$4.run(y:3274)
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)
 
(Linux build and then WINE
Just a note - do you have any specific reason why using the windows REW build under wine, instead of native linux REW build? Wine puts another layer into the audio path, and GUI programs have often issues in wine. Java runs OK in linux natively.
 
On this build and on the current stable build (Linux build and then WINE) I have an array out of bounds error whenever I try to generate minimum phase with tails and whenever I click on the Impulse tab for a measurement which I generated minimum phase data for.
Can you attach an example measurement that shows that behaviour?
 
Back
Top