<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Modartt user forum - TIL: Convolution-based room correction]]></title>
		<link>https://forum.modartt.com/viewtopic.php?id=13321</link>
		<description><![CDATA[The most recent posts in TIL: Convolution-based room correction.]]></description>
		<lastBuildDate>Mon, 12 Oct 2026 08:16:24 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: TIL: Convolution-based room correction]]></title>
			<link>https://forum.modartt.com/viewtopic.php?pid=1009994#p1009994</link>
			<description><![CDATA[<div class="quotebox"><cite>jari_42 wrote:</cite><blockquote><p>Sure here&#039;s the process I followed (I&#039;m by no means an expert so YMMV). I recommend first testing out this workflow on your laptop speakers (even with your laptop microphone) to get familiar with Room EQ Wizard (REW) as it is quite involved. Note that the standard version of REW is free to download and contains all the capabilities you will need (and a whole lot more besides).</p><p><strong>Step 1. Decide on your measurement positions</strong> <br />You&#039;ll want to average the speaker response across a number of different microphone positions around your primary listening area, with some variation in height also. In my case I took six positions around the piano bench at about ear height and a little lower, and three positions a little further back and slightly lower by the sofa. Ideally you want to mount the calibration microphone on a mike stand or something similar that mostly won&#039;t get in the way of the sound waves.<br />And ideally the microphone should be pointing upwards, the UMIK-1 has a 90 degree calibration file specifically for this purpose.</p><p><strong>Step 2. Connect everything up</strong> <br />You need to connect your computer&#039;s headphone/line-out to your piano speakers, and connect the calibration microphone to your computer via USB ideally (or alternatively via an audio interface / microphone port if using an analogue calibration microphone). The nice thing about a USB calibration microphone like the UMIK-1 is that it&#039;s plug-and-play with a calibration curve specific for each individual microphone (for an analogue calibration microphone you have to also calibrate your sound card / audio interface in REW, which of course is not necessary with a USB microphone).</p><p><strong>Step 3. Set the levels</strong> <br />This is necessary so you get a good clean signal. The UMIK-1 has a built in SPL meter meaning you can use REW&#039;s SPL meter straight off (otherwise you have to calibrate REW&#039;s SPL meter using for example a smartphone SPL meter app).</p><p>To set the levels (see the screenshot below):<br />- Turn your speakers down to zero.<br />- Turn your computer&#039;s output volume up to 100% (skip if you&#039;re calibrating your laptop speakers).<br />- Open REW&#039;s Generator window and set the signal generator to Speaker Cal at -12 dBFS (the default) using pink-periodic noise.<br />- Open REW&#039;s SPL meter window and ensure it is set to C weighting with S (Slow) averaging (the record button should be on).<br />- Press the green play button on the Generator.<br />- Slowly bring up the speaker volume until REW&#039;s SPL Meter averages between 70 to 75 dB SPL.<br />- Turn off the Generator and close both windows.</p><p><a href="https://postimg.cc/BtPWJ6cX"><span class="postimg"><img src="https://i.postimg.cc/BtPWJ6cX/Levels.png" alt="https://i.postimg.cc/BtPWJ6cX/Levels.png" title="https://i.postimg.cc/BtPWJ6cX/Levels.png"/></span></a></p><p><strong>Step 4. Measure the left and right speaker channels at each microphone position</strong> <br />To set the measurements settings (see the screenshot below):<br />- Open up REW&#039;s Measure window.<br />- Set the Range from 20Hz to 20,000Hz (this should be the default).<br />- Ensure the Level is set to -12 dBFS (the default) as this was used for setting the SPL level.<br />- The default 256k sine wave Sweep should work nicely.<br />- I recommend setting Timing to Use acoustic timing reference, this will emit a chirp at the start and end of each sweep.<br />- Set the appropriate Sample rate (I use 48kHz with pianoteq so used this, otherwise pianoteq will resample).<br />- You might want to set a delay in Setup to give you time to move out of the way.<br />- Ensure you Capture the noise floor.<br />- Load your calibration file (the 90 degree one if the microphone is pointing upwards).<br />- Press Check levels to ensure that REW is happy with the output level (it will complain if the level is too low or causes clipping).</p><p><a href="https://postimg.cc/4nHCXdbh"><span class="postimg"><img src="https://i.postimg.cc/4nHCXdbh/Measure.png" alt="https://i.postimg.cc/4nHCXdbh/Measure.png" title="https://i.postimg.cc/4nHCXdbh/Measure.png"/></span></a></p><p>To measure each speaker channel at each microphone position:<br />- Give your microphone position a name (REW will automatically append the correct channel).<br />- Set the Output to L or R to measure the left or right channel respectively.<br />- Ensure the Ref output (the timing chirp channel) is the same for all measurements, this is usually L (the left channel).<br />- Press start and move out of the way, REW will chirp, play a sine sweep, and chirp again to finish.<br />- Remember to take both a left channel and a right channel measurement at each microphone position.</p><p>Don&#039;t forget to Save all once you&#039;re done measuring!</p><p><a href="https://postimg.cc/23LpC6F4"><span class="postimg"><img src="https://i.postimg.cc/23LpC6F4/Measurements.png" alt="https://i.postimg.cc/23LpC6F4/Measurements.png" title="https://i.postimg.cc/23LpC6F4/Measurements.png"/></span></a></p><p><strong>Step 5. Postprocess the measurements</strong> <br />You should now have a set of measurement curves in the left-hand pane of REW (you might want to select Fit to Data in the Limits pane to see them better). They will be very noisy, so we need to do some post-processing as follows:<br />- First switch to the All SPL tab and ensure that all the measurements are selected (ticked).<br />- <em>Time Alignment</em>. In the Actions panel (upper right), select Time Align (this isn&#039;t strictly necessary but we might as well do it).<br />- <em>Frequency-Dependent Windowing</em>. Open the IR windows panel, tick Add FDW and select 10 cycles, then click Apply to All SPL selections. The idea here is to restrict the signal to the direct speaker response in the top end without losing the room response in the bottom end, hence frequency-dependent time-windows. A lower cycle count will include fewer reflections and a higher one more.<br />- Now we need to divide our measurements into two sets: those for the left channel and those for the right channel. You can drag and drop the measurements in the left-hand pane to order them to make this process easier.<br />- <em>RMS Averaging</em>. Select all the curves corresponding to the left channel and in the Actions pane click RMS average. This will create a new curve in the left-hand pane that is an SPL average of the left channel responses (best to put L in the name). Repeat this process for the right channel.<br />- <em>Variable Smoothing</em>. Select only the RMS Average curve for the left channel (untick all the other curves), in the Actions pane under the No smoothing drop-down select Var smoothing and then Apply smoothing. This will smooth out the curves further, especially in the top end (hence variable smoothing) preventing you from over-EQing the treble. Repeat this process for the right channel.</p><p><a href="https://postimg.cc/Th58TwqV"><span class="postimg"><img src="https://i.postimg.cc/Th58TwqV/Postprocess.png" alt="https://i.postimg.cc/Th58TwqV/Postprocess.png" title="https://i.postimg.cc/Th58TwqV/Postprocess.png"/></span></a></p><p><strong>Step 6. Configure the target EQ curve</strong><br />Now we configure the curve that we will EQ to. For this we will use the EQ window (see the screenshot below):<br />- Select the (now Var smoothed) RMS Average curve for the left channel (and ensure all other curves are deselected).<br />- Open up the EQ window and you will see both your measured curve and a target curve that you will be EQing to. <br />- Ensure that the EQ manufacturer and model are generic.<br />- Under Target Settings choose your target type to best reflect your speaker type (mine were bass-limited so I chose that).<br />- Set the Bass cutoff and Bass slope so that your target curve matches where and how steeply your bass rolls off (mine rolled off very steeply at 70Hz).<br />- Unless you want a completely flat frequency response you will want to add a House curve. This is just a text file with your ideal frequency response, I went with a flat curve with a slight boost in the bass and a slight cut in the treble as follows (save as .txt):<br />&nbsp; &nbsp;20&nbsp; &nbsp;2.0<br />&nbsp; &nbsp;40&nbsp; &nbsp;2.0<br />&nbsp; &nbsp;60&nbsp; &nbsp;1.5<br />&nbsp; 100&nbsp; &nbsp;0.8<br />&nbsp; 200&nbsp; &nbsp;0.0<br /> 1000&nbsp; &nbsp;0.0<br /> 4000&nbsp; -0.5<br />10000&nbsp; -1.5<br />20000&nbsp; -2.5&nbsp; <br />- Click Calculate target level from response, if necessary lower the Target Level so the target curve rides along the average floor of the response (you want to create a filter that only cuts as boosting could add unpleasant phase artefacts).</p><p><a href="https://postimg.cc/14VxytcB"><span class="postimg"><img src="https://i.postimg.cc/14VxytcB/Target.png" alt="https://i.postimg.cc/14VxytcB/Target.png" title="https://i.postimg.cc/14VxytcB/Target.png"/></span></a></p><p><strong>Step 7. Construct the EQ filters</strong><br />Now we finally come to constructing the EQ filters (see the screenshot below). In the EQ window, under Filter Tasks set:<br />- Match Range up to 20,000 Hz (so that we EQ the whole spectrum from the bass cutoff upwards).<br />- Individual Max Boost and Overall Max Boost to 0 dB (so that we create cut-only filters).<br />- Flatness Target to 2 dB (so that the filters match the target curve within 2 dB giving some leeway).<br />- Ensure that Allow narrow filters below 200Hz and Vary Max Q above 200Hz are both ticked.<br />- Click Match response to target. Here the wizardry happens and REW generates some filters, click EQ filters to see them.<br />- Repeat Steps 6 and 7 for the right channel.</p><p><a href="https://postimg.cc/m1HKjX2v"><span class="postimg"><img src="https://i.postimg.cc/m1HKjX2v/Filters.png" alt="https://i.postimg.cc/m1HKjX2v/Filters.png" title="https://i.postimg.cc/m1HKjX2v/Filters.png"/></span></a></p><p><strong>Step 8. Export the filter curves as a convolution EQ</strong><br />At this stage you could just take the generated EQ filters and approximately apply them in pianoteq&#039;s EQ, but as Daniel suggested generating a convolution EQ is much more powerful since it is not restricted to the preset equalizer bands. It&#039;s also very efficient for pianoteq to apply (I&#039;m applying it on my raspberry pi with no noticeable performance impact). This final step is by far the easiest:<br />- Ensure that you have generated filters for the smoothed RMS averages of both the left and right channels.<br />- Select the left channel RMS average in REW&#039;s left-hand pane.<br />- Select File -&gt; Export -&gt; Export filters impulse response as WAV.<br />- Click Stereo and select the left channel RMS average for the Left channel and the right channel RMS average for the Right channel.<br />- Ensure 32bit float is selected.<br />- Ensure Place t=0 at sample index is set to the default 256.<br />- DO NOT SET normalise samples to peak value.<br />- Select your target sample rate (mine is 48kHz as that&#039;s what I have pianoteq set to).<br />- Click Okay to save your stereo convolution EQ impulse response.</p><p>Finally, load up your generated impulse response in either your DAW or directly in pianoteq&#039;s built-in reverb engine.</p></blockquote></div><p>Wow that’s extremely helpful Jari, it must have taken you a great deal of work. Many thanks indeed.<br />&nbsp; &nbsp; &nbsp;John</p>]]></description>
			<author><![CDATA[null@example.com (JohnU)]]></author>
			<pubDate>Mon, 12 Oct 2026 08:16:24 +0000</pubDate>
			<guid>https://forum.modartt.com/viewtopic.php?pid=1009994#p1009994</guid>
		</item>
		<item>
			<title><![CDATA[Re: TIL: Convolution-based room correction]]></title>
			<link>https://forum.modartt.com/viewtopic.php?pid=1009989#p1009989</link>
			<description><![CDATA[<p>Sure here&#039;s the process I followed (I&#039;m by no means an expert so YMMV). I recommend first testing out this workflow on your laptop speakers (even with your laptop microphone) to get familiar with Room EQ Wizard (REW) as it is quite involved. Note that the standard version of REW is free to download and contains all the capabilities you will need (and a whole lot more besides).</p><p><strong>Step 1. Decide on your measurement positions</strong> <br />You&#039;ll want to average the speaker response across a number of different microphone positions around your primary listening area, with some variation in height also. In my case I took six positions around the piano bench at about ear height and a little lower, and three positions a little further back and slightly lower by the sofa. Ideally you want to mount the calibration microphone on a mike stand or something similar that mostly won&#039;t get in the way of the sound waves.<br />And ideally the microphone should be pointing upwards, the UMIK-1 has a 90 degree calibration file specifically for this purpose.</p><p><strong>Step 2. Connect everything up</strong> <br />You need to connect your computer&#039;s headphone/line-out to your piano speakers, and connect the calibration microphone to your computer via USB ideally (or alternatively via an audio interface / microphone port if using an analogue calibration microphone). The nice thing about a USB calibration microphone like the UMIK-1 is that it&#039;s plug-and-play with a calibration curve specific for each individual microphone (for an analogue calibration microphone you have to also calibrate your sound card / audio interface in REW, which of course is not necessary with a USB microphone).</p><p><strong>Step 3. Set the levels</strong> <br />This is necessary so you get a good clean signal. The UMIK-1 has a built in SPL meter meaning you can use REW&#039;s SPL meter straight off (otherwise you have to calibrate REW&#039;s SPL meter using for example a smartphone SPL meter app).</p><p>To set the levels (see the screenshot below):<br />- Turn your speakers down to zero.<br />- Turn your computer&#039;s output volume up to 100% (skip if you&#039;re calibrating your laptop speakers).<br />- Open REW&#039;s Generator window and set the signal generator to Speaker Cal at -12 dBFS (the default) using pink-periodic noise.<br />- Open REW&#039;s SPL meter window and ensure it is set to C weighting with S (Slow) averaging (the record button should be on).<br />- Press the green play button on the Generator.<br />- Slowly bring up the speaker volume until REW&#039;s SPL Meter averages between 70 to 75 dB SPL.<br />- Turn off the Generator and close both windows.</p><p><a href="https://postimg.cc/BtPWJ6cX"><span class="postimg"><img src="https://i.postimg.cc/BtPWJ6cX/Levels.png" alt="https://i.postimg.cc/BtPWJ6cX/Levels.png" title="https://i.postimg.cc/BtPWJ6cX/Levels.png"/></span></a></p><p><strong>Step 4. Measure the left and right speaker channels at each microphone position</strong> <br />To set the measurements settings (see the screenshot below):<br />- Open up REW&#039;s Measure window.<br />- Set the Range from 20Hz to 20,000Hz (this should be the default).<br />- Ensure the Level is set to -12 dBFS (the default) as this was used for setting the SPL level.<br />- The default 256k sine wave Sweep should work nicely.<br />- I recommend setting Timing to Use acoustic timing reference, this will emit a chirp at the start and end of each sweep.<br />- Set the appropriate Sample rate (I use 48kHz with pianoteq so used this, otherwise pianoteq will resample).<br />- You might want to set a delay in Setup to give you time to move out of the way.<br />- Ensure you Capture the noise floor.<br />- Load your calibration file (the 90 degree one if the microphone is pointing upwards).<br />- Press Check levels to ensure that REW is happy with the output level (it will complain if the level is too low or causes clipping).</p><p><a href="https://postimg.cc/4nHCXdbh"><span class="postimg"><img src="https://i.postimg.cc/4nHCXdbh/Measure.png" alt="https://i.postimg.cc/4nHCXdbh/Measure.png" title="https://i.postimg.cc/4nHCXdbh/Measure.png"/></span></a></p><p>To measure each speaker channel at each microphone position:<br />- Give your microphone position a name (REW will automatically append the correct channel).<br />- Set the Output to L or R to measure the left or right channel respectively.<br />- Ensure the Ref output (the timing chirp channel) is the same for all measurements, this is usually L (the left channel).<br />- Press start and move out of the way, REW will chirp, play a sine sweep, and chirp again to finish.<br />- Remember to take both a left channel and a right channel measurement at each microphone position.</p><p>Don&#039;t forget to Save all once you&#039;re done measuring!</p><p><a href="https://postimg.cc/23LpC6F4"><span class="postimg"><img src="https://i.postimg.cc/23LpC6F4/Measurements.png" alt="https://i.postimg.cc/23LpC6F4/Measurements.png" title="https://i.postimg.cc/23LpC6F4/Measurements.png"/></span></a></p><p><strong>Step 5. Postprocess the measurements</strong> <br />You should now have a set of measurement curves in the left-hand pane of REW (you might want to select Fit to Data in the Limits pane to see them better). They will be very noisy, so we need to do some post-processing as follows:<br />- First switch to the All SPL tab and ensure that all the measurements are selected (ticked).<br />- <em>Time Alignment</em>. In the Actions panel (upper right), select Time Align (this isn&#039;t strictly necessary but we might as well do it).<br />- <em>Frequency-Dependent Windowing</em>. Open the IR windows panel, tick Add FDW and select 10 cycles, then click Apply to All SPL selections. The idea here is to restrict the signal to the direct speaker response in the top end without losing the room response in the bottom end, hence frequency-dependent time-windows. A lower cycle count will include fewer reflections and a higher one more.<br />- Now we need to divide our measurements into two sets: those for the left channel and those for the right channel. You can drag and drop the measurements in the left-hand pane to order them to make this process easier.<br />- <em>RMS Averaging</em>. Select all the curves corresponding to the left channel and in the Actions pane click RMS average. This will create a new curve in the left-hand pane that is an SPL average of the left channel responses (best to put L in the name). Repeat this process for the right channel.<br />- <em>Variable Smoothing</em>. Select only the RMS Average curve for the left channel (untick all the other curves), in the Actions pane under the No smoothing drop-down select Var smoothing and then Apply smoothing. This will smooth out the curves further, especially in the top end (hence variable smoothing) preventing you from over-EQing the treble. Repeat this process for the right channel.</p><p><a href="https://postimg.cc/Th58TwqV"><span class="postimg"><img src="https://i.postimg.cc/Th58TwqV/Postprocess.png" alt="https://i.postimg.cc/Th58TwqV/Postprocess.png" title="https://i.postimg.cc/Th58TwqV/Postprocess.png"/></span></a></p><p><strong>Step 6. Configure the target EQ curve</strong><br />Now we configure the curve that we will EQ to. For this we will use the EQ window (see the screenshot below):<br />- Select the (now Var smoothed) RMS Average curve for the left channel (and ensure all other curves are deselected).<br />- Open up the EQ window and you will see both your measured curve and a target curve that you will be EQing to. <br />- Ensure that the EQ manufacturer and model are generic.<br />- Under Target Settings choose your target type to best reflect your speaker type (mine were bass-limited so I chose that).<br />- Set the Bass cutoff and Bass slope so that your target curve matches where and how steeply your bass rolls off (mine rolled off very steeply at 70Hz).<br />- Unless you want a completely flat frequency response you will want to add a House curve. This is just a text file with your ideal frequency response, I went with a flat curve with a slight boost in the bass and a slight cut in the treble as follows (save as .txt):<br />&nbsp; &nbsp;20&nbsp; &nbsp;2.0<br />&nbsp; &nbsp;40&nbsp; &nbsp;2.0<br />&nbsp; &nbsp;60&nbsp; &nbsp;1.5<br />&nbsp; 100&nbsp; &nbsp;0.8<br />&nbsp; 200&nbsp; &nbsp;0.0<br /> 1000&nbsp; &nbsp;0.0<br /> 4000&nbsp; -0.5<br />10000&nbsp; -1.5<br />20000&nbsp; -2.5&nbsp; <br />- Click Calculate target level from response, if necessary lower the Target Level so the target curve rides along the average floor of the response (you want to create a filter that only cuts as boosting could add unpleasant phase artefacts).</p><p><a href="https://postimg.cc/14VxytcB"><span class="postimg"><img src="https://i.postimg.cc/14VxytcB/Target.png" alt="https://i.postimg.cc/14VxytcB/Target.png" title="https://i.postimg.cc/14VxytcB/Target.png"/></span></a></p><p><strong>Step 7. Construct the EQ filters</strong><br />Now we finally come to constructing the EQ filters (see the screenshot below). In the EQ window, under Filter Tasks set:<br />- Match Range up to 20,000 Hz (so that we EQ the whole spectrum from the bass cutoff upwards).<br />- Individual Max Boost and Overall Max Boost to 0 dB (so that we create cut-only filters).<br />- Flatness Target to 2 dB (so that the filters match the target curve within 2 dB giving some leeway).<br />- Ensure that Allow narrow filters below 200Hz and Vary Max Q above 200Hz are both ticked.<br />- Click Match response to target. Here the wizardry happens and REW generates some filters, click EQ filters to see them.<br />- Repeat Steps 6 and 7 for the right channel.</p><p><a href="https://postimg.cc/m1HKjX2v"><span class="postimg"><img src="https://i.postimg.cc/m1HKjX2v/Filters.png" alt="https://i.postimg.cc/m1HKjX2v/Filters.png" title="https://i.postimg.cc/m1HKjX2v/Filters.png"/></span></a></p><p><strong>Step 8. Export the filter curves as a convolution EQ</strong><br />At this stage you could just take the generated EQ filters and approximately apply them in pianoteq&#039;s EQ, but as Daniel suggested generating a convolution EQ is much more powerful since it is not restricted to the preset equalizer bands. It&#039;s also very efficient for pianoteq to apply (I&#039;m applying it on my raspberry pi with no noticeable performance impact). This final step is by far the easiest:<br />- Ensure that you have generated filters for the smoothed RMS averages of both the left and right channels.<br />- Select the left channel RMS average in REW&#039;s left-hand pane.<br />- Select File -&gt; Export -&gt; Export filters impulse response as WAV.<br />- Click Stereo and select the left channel RMS average for the Left channel and the right channel RMS average for the Right channel.<br />- Ensure 32bit float is selected.<br />- Ensure Place t=0 at sample index is set to the default 256.<br />- DO NOT SET normalise samples to peak value.<br />- Select your target sample rate (mine is 48kHz as that&#039;s what I have pianoteq set to).<br />- Click Okay to save your stereo convolution EQ impulse response.</p><p>Finally, load up your generated impulse response in either your DAW or directly in pianoteq&#039;s built-in reverb engine.</p>]]></description>
			<author><![CDATA[null@example.com (jari_42)]]></author>
			<pubDate>Sun, 11 Oct 2026 20:16:56 +0000</pubDate>
			<guid>https://forum.modartt.com/viewtopic.php?pid=1009989#p1009989</guid>
		</item>
		<item>
			<title><![CDATA[Re: TIL: Convolution-based room correction]]></title>
			<link>https://forum.modartt.com/viewtopic.php?pid=1009984#p1009984</link>
			<description><![CDATA[<div class="quotebox"><cite>jari_42 wrote:</cite><blockquote><p>Many thanks Daniel for sharing this wonderful approach! It&#039;s completely transformed playing pianoteq through the built-in speakers on my Casio GP310 which have a notoriously untamed frequency response (<a href="https://forum.pianoworld.com/ubbthreads.php/topics/3643641/3.html">https://forum.pianoworld.com/ubbthreads...641/3.html</a>). The three onboard piano sounds are of course heavily EQd, but that does not apply to the line-in signal from pianoteq.</p><p>Having seen your post and the follow-up one on convolution EQing your NV10s (<a href="https://forum.modartt.com/viewtopic.php?id=13401">https://forum.modartt.com/viewtopic.php?id=13401</a>), I decided to finally bite the bullet, ordered a UMIK-1 USB calibration microphone and spent a weekend learning how to use Room EQ Wizard (REW). I have to say my applied maths training helped a lot here, REW is far from the easiest software to understand or use, even with the wealth of guides available. The results however are spectacular, once I loaded the resulting convolution EQ cut filter into pianoteq&#039;s reverb, the pianoteq Bosendorfer sounded as good as (if not better than) the onboard one through the built-in speakers!</p><p>Happy to provide a step-by-step guide of the process I followed if anyone is interested (had to write it all down to remember it).</p></blockquote></div><p>I used REW some years ago but it has changed a lot since then so I would find a guide really useful thanks.</p>]]></description>
			<author><![CDATA[null@example.com (JohnU)]]></author>
			<pubDate>Sun, 11 Oct 2026 11:09:38 +0000</pubDate>
			<guid>https://forum.modartt.com/viewtopic.php?pid=1009984#p1009984</guid>
		</item>
		<item>
			<title><![CDATA[Re: TIL: Convolution-based room correction]]></title>
			<link>https://forum.modartt.com/viewtopic.php?pid=1009969#p1009969</link>
			<description><![CDATA[<p>Many thanks Daniel for sharing this wonderful approach! It&#039;s completely transformed playing pianoteq through the built-in speakers on my Casio GP310 which have a notoriously untamed frequency response (<a href="https://forum.pianoworld.com/ubbthreads.php/topics/3643641/3.html">https://forum.pianoworld.com/ubbthreads...641/3.html</a>). The three onboard piano sounds are of course heavily EQd, but that does not apply to the line-in signal from pianoteq.</p><p>Having seen your post and the follow-up one on convolution EQing your NV10s (<a href="https://forum.modartt.com/viewtopic.php?id=13401">https://forum.modartt.com/viewtopic.php?id=13401</a>), I decided to finally bite the bullet, ordered a UMIK-1 USB calibration microphone and spent a weekend learning how to use Room EQ Wizard (REW). I have to say my applied maths training helped a lot here, REW is far from the easiest software to understand or use, even with the wealth of guides available. The results however are spectacular, once I loaded the resulting convolution EQ cut filter into pianoteq&#039;s reverb, the pianoteq Bosendorfer sounded as good as (if not better than) the onboard one through the built-in speakers!</p><p>Happy to provide a step-by-step guide of the process I followed if anyone is interested (had to write it all down to remember it).</p>]]></description>
			<author><![CDATA[null@example.com (jari_42)]]></author>
			<pubDate>Sat, 10 Oct 2026 14:42:09 +0000</pubDate>
			<guid>https://forum.modartt.com/viewtopic.php?pid=1009969#p1009969</guid>
		</item>
		<item>
			<title><![CDATA[TIL: Convolution-based room correction]]></title>
			<link>https://forum.modartt.com/viewtopic.php?pid=1008503#p1008503</link>
			<description><![CDATA[<p>Pianoteq posits a bit of a sound dilemma: through headphones, the sound is pristine... but maybe too pristine, with the piano model hovering in an anechoic void and the headphones failing to render the body sensation of a piano&#039;s bass. Loudspeakers should be better: my woofer can cause minor earth quakes and my tweeters can handsomely match 100-odd decibels of a grand piano. In practice though it&#039;s a bit of a mess, with the speakers washing into each other, muddying the attack transients, building standing waves and collapsing the soundscape. Turns out piano sounds are particularly sensitive to excellent room calibration.</p><p>I&#039;ve previously used a parametric equaliser (PEQ), tuned differently for left and right channels, to address the worst of it but have now come across a more powerful method that I thought I&#039;d share here: Room correction via stereo impulse response convolution. </p><p>Here&#039;s the general outline how this is done:<br />1. capture your left and right speaker response curves in REW as usual (I&#039;ll omit detail here and there are high quality guides on this)<br />2. Per speaker, Use REW&#039;s EQ to automatically fit the measurement to a target curve. Click &quot;Save filter as new measurement&quot; for each EQ.<br />3. Select File -&gt; Export -&gt; Export Impulse Response as WAV, choosing your two new measurements for the left and right channel respectively. Choose a 32-bit float stereo, Export min-phase version of IR and place t=0 at sample index: (default value).<br />4. Load this wav file into your IR convolution reverb plugin of choice (or Pianoteq reverb directly). Make sure it&#039;s the last step before output.</p><p>This results in a significantly cleaner room correction than a calibrated PEQ, and is capable of addressing pretty egregious spikes without tonal changes or incoherence. It brings the sound very close to headphone level clarity, but still connects the sound to the ambience of your physical space - and it let&#039;s your woofer do its bodywork.</p><p>I&#039;m pretty thrilled with this discovery, it significantly improves the audio quality of any output through these speakers. For Pianoteq in particular, incorporating the piano into my room&#039;s acoustics is really quite transformative, solving the &quot;in the void&quot; problem that you can have with headphones, without having to accept muddiness/boxiness. I recommend it!</p>]]></description>
			<author><![CDATA[null@example.com (daniel_r328)]]></author>
			<pubDate>Wed, 15 Jul 2026 11:06:38 +0000</pubDate>
			<guid>https://forum.modartt.com/viewtopic.php?pid=1008503#p1008503</guid>
		</item>
	</channel>
</rss>
