REW Beta Release REW API beta releases

Invert phase just changes the sign of phase values from + to - and vice versa. Polarity inversion rotates phase by 180 deg. To complete polarity inversion, go to impulse tab, right click on the impulse graph area and select "invert".
 
Feature request: This is gonna sound dumb considering all the complex stuff REW can do, but can we get an option to just sort the measurements how they're sorted when dragging and dropping data?
 
Feature request: This is gonna sound dumb considering all the complex stuff REW can do, but can we get an option to just sort the measurements how they're sorted when dragging and dropping data?
The list of files from the OS can be in just about any order, I haven't found any logic to it. REW sorts them alphabetically by name for imports or by date for mdat files.
 
The list of files from the OS can be in just about any order, I haven't found any logic to it. REW sorts them alphabetically by name for imports or by date for mdat files.
Oh, I know REW sorts when importing,

Here's a use case - if someone takes a bunch of measurements for spatial averaging, and then wants to group the channels together and order by position, the easiest approach is exporting impulse responses to text and then re-importing, which loses some resolution. It would be useful if there was just a button to sort the currently loaded measurements in REW.
 
I could add a button on the All SPL and Overlay graphs to sort all measurements alphabetically, there isn't room above the individual selector list when it is in compact mode. Any measurements in a group would be sorted within that group.
 
Getting a strange EQ result for this particular subwoofer. I used the -3dB points as the start and end freq, allowed minimal boost. Speaker type is set as none since I am trying to EQ via the API. Also, I don't always get the same results between API and EQ tab. In my code I allow narrow filters below 200hz, but when doing it manually, I have to disable it to get the same result. Here are the parameters I'm using in the code -
JavaScript:
await postSafe(`http://localhost:4735/eq/match-target-settings`, {
startFrequency: m3dBPoints[i][0],
endFrequency: m3dBPoints[i][1],
individualMaxBoostdB: 3,
overallMaxBoostdB: movieMode ? 1 : 0,
flatnessTargetdB: 1,
allowNarrowFiltersBelow200Hz: true,
varyQAbove200Hz: false,
allowLowShelf: false,
lowShelfMin: -3,
lowShelfMax: 3,
allowHighShelf: movieMode && !isSub,
highShelfMin: -3,
highShelfMax: 3
}, "Update processed");
try {
await postNext('Match target', i);
}
catch (error) {
// not really an issue if it fails
console.debug(`${commandId[i]} could not be equalized!`);
}

1753909829615.png


Mdat is attached.
 

Attachments

Getting a strange EQ result for this particular subwoofer.
Manual and API give identical results for me.

Speaker type is set as none since I am trying to EQ via the API.
I don't understand that comment. When using the API the target settings are configured at /measurements/id/room-curve-settings, /measurements/id/target-settings and /measurements/id/target-level, but if they are not the same as those you use manually you will not get the same result.
 
Manual and API give identical results for me.


I don't understand that comment. When using the API the target settings are configured at /measurements/id/room-curve-settings, /measurements/id/target-settings and /measurements/id/target-level, but if they are not the same as those you use manually you will not get the same result.
So the speaker type is set as None instead of “Full Range” or “Bass Limited” or “Subwoofer”. The equalizer type is also “Generic”. At the beginning of my code, these values are set to both the default EQ and the measurements/id/eq. Here’s the part of the code that’s doing it - https://github.com/navid0308/A1Evo_...20458976b96f743e95/A1Evo_MJ_Custom.html#L8794

I retried it on a Mac and got the same results this time using API vs manually using the EQ tab. The main issue is that I’m not quite understanding why it’s settling on the filters that it is - it’s introducing a peak at 20hz and I can’t fathom why…
 
Don't forget the room curve settings, target level and house curve if you use one. The predicted response in the mdat you attached suggests either room curve was active or a house curve was loaded.
 
Don't forget the room curve settings, target level and house curve if you use one. The predicted response in the mdat you attached suggests either room curve was active or a house curve was loaded.
Yeah those are also being kept the same. The script creates a b&k like room curve if user provides no house curve. If it gets a house curve, it disables the room curve.

I think I know what the issue is…since the speaker type is none, I think it’s expecting the target and the SW response to line up in the midrange. Everytime I try manually, it says that target level is way higher than response level (SW response is just noise floor in the midrange).

So it’s probably thinking that it needs to boost the response a lot to get to target. Is this expected behavior? I am specifying the start and end frequencies using the -3dB points for EQ - does that not limit how REW determines the target level?
 
The message about the target level has no effect on the EQ behaviour.

The filters in the mdat you attached were not generated with a flat target, something else was included in the target when they were generated. This is what a flat target produces:

1753966238239.png


I am specifying the start and end frequencies using the -3dB points for EQ - does that not limit how REW determines the target level?
No. If the target is full range or none the level is based on the response between 200 Hz and 2 kHz. For subwoofer targets the range depends on the sub LF cutoff and the bass management cutoff. For bass limited targets the lower end of the range depends on the bass management cutoff and the upper end is 2 kHz. For driver targets the range depends on the driver crossover frequencies. The target should reflect the measurement.
 
The message about the target level has no effect on the EQ behaviour.

The filters in the mdat you attached were not generated with a flat target, something else was included in the target when they were generated. This is what a flat target produces:

View attachment 85222


No. If the target is full range or none the level is based on the response between 200 Hz and 2 kHz. For subwoofer targets the range depends on the sub LF cutoff and the bass management cutoff. For bass limited targets the lower end of the range depends on the bass management cutoff and the upper end is 2 kHz. For driver targets the range depends on the driver crossover frequencies. The target should reflect the measurement.
I should've clarified, the target is the response that's called "final". In the mdat it's leveled to 75db but here's the text file I have been using.

But the last section of your message is very helpful. Seems like I will need to play around with the speaker type parameters before asking REW to match target instead of just going with None. I think that's the piece I was missing.
 

Attachments

I've switched to the beta, but the new method of accessing the measurement descriptions by right-clicking is much more error-prone than the old way. I keep right-clicking and then accidentally activating something in the context menu, etc.
 
I've switched to the beta, but the new method of accessing the measurement descriptions by right-clicking is much more error-prone than the old way. I keep right-clicking and then accidentally activating something in the context menu, etc.
Do you mean the measurement notes? You can choose to show them in the View preferences:

1753997633935.png
 
Do you mean the measurement notes? You can choose to show them in the View preferences:

That's good, but I still need to right-click to edit them, which puts random things under my mouse cursor and I end up clicking things by accident. Or maybe it's happening when I try to click outside of the context menu to close it, but accidentally open a sub-menu first by hovering over it?
 
Back
Top