Genesis Plus GX, Where is the Audio Lowpass Filter?

No it does the same thing.
Probably some sound buffer thing that isn’t working together with retroarch or something.
We couldn’t figure it out, but we’re not sound experts. :expressionless:

I’ve just added the value that gives the good result anyway (0x6666) and removed the EQ.

Care to do one more measurement?

3 Likes

Genesis-Plus-GX’s author eke-eke has helped fixing the ‘Low Pass range’ option in the libretro port. It will work as intended now. The changes are already on @hunterk’s fork, which will land on the libretro fork too.

@James-F - love the content posted on this thread. Hopefully with this all working, you can find a value quantitatively matches the model 1. Adding more values to the range e.g. 0.65, 0.55 is trivial, so that can be added straight away if needed.

1 Like

Oh man that sounds so much better, totally gets rid of that harsh ear scraping. Thank you so much for this.

I had a hunch that this value is treated as Signed instead of Unsigned in the code somewhere, mainly because 0.4 is around half the full value and that’s where it stopped working.

The values that matches the JAP Model 1 VA1 console is still 40.
Later Genesis/MegaDrive consoles have more filtering than the original JAP Model1, therefor 40 is a good default start, but please add 0.05 intervals in future build for even more accurate adjustment.

If the brickwall filtering at 15kHz could be fixed it would be ideal because it may have some effect on the overall curve.
Maybe it’s because GenPlusGX still runs in 44.1kHz while Retroarch is 48kHz?

EDIT: “Audio Resampler Driver” has huge effect on how the Lowpass filter behaves.
All measurement taken with Sinc, 48000, xaudio.
Yep, it is the 44.1kHz to 48kHz conversion that causes the steep down-slope at 15kHz.

I vote for removing the EQ function altogether, it’s unnecessary and buggy.

EDIT:
JAP Model1 VA1, USA Model1 VA3 and PAL Model1 VA4 all have absolutely identical measured frequency response.

Big thanks to all the people who helped solve/implement this.

3 Likes

Hi could you please merge it to main repo so we can test it?

I’ll clean it up and submit it when we’re sure it’s ready to go. I don’t want to bugger the real repo with dozens of experimental commits.

my test confirms that 0.6 is the correct value for the default, as far as how the close the curves are in spectrum analyser. dev said it can be configurable since how the megadrive sounded depends on its revision and others might have remembered it differently…

i say no no to equalizer, its just suppose to be some sort of tone controls and currently its not working(as dev said). dsp can do the equalizing but lowpass should be core option as its as close as a megadrive model1 sounds, compared to playing with dsp filters.

IMHO

1 Like

What test?

I provided actual measurement of high fidelity recordings of the most sought after Sega Genesis Model1 consoles which agreed by all the web to have the best sound processing.
Then I gave a precise Lowpass value that matches these console.

Can you please provide more information on how you decided upon this 0.6 value and to what did you compare it too?


1 Like

i do my own test. and sources from youtube are just good reference as they do their own post processing… just look at how the high notes are compressed and leveled before cut down at 20 kHz

Really? Please enlighten me.
You seem to be confused about the 15kHz slope, this is generated by retroarch sampling rate conversion, and has nothing to do with the real hardware console recordings.

The sources I use are not Youtube or MP3, they are 44.1kHz 16bit FLAC.

http://www.sega-16.com/forum/showthread.php?7796-GUIDE-Telling-apart-good-Genesis-1s-and-Genesis-2s-from-bad-ones

2 Likes

you have your result, i have mine. what the big deal? when the core option is going to be configurable anyways. i claim no 101% accuracy as i have said, this is based on graph and not how it sounds. you think you have the most accurate config then do so, not a big deal to me.

Why do you refrain from sharing your measurement method?
As a scientist, I believe the only true reliable data is done by actual un-biased (no human factor) measurements.
Please don’t tell me you used a laptop with earbuds, as reference for your 0.6 value…

I’ll say it once again, the Lowpass value should closely match the best known Genesis hardware console (Model1), and only then tweaked by ear by the end user.

[quote=“wertz, post:41, topic:12169”] i say no no to equalizer, its just suppose to be some sort of tone controls and currently its not working(as dev said). dsp can do the equalizing but lowpass should be core option as its as close as a megadrive model1 sounds, compared to playing with dsp filters.[/quote] +1 to this.

Maybe have multiple quick access “preset” options? One for early models (0.4), one for later models (0.6) and last for custom (0.05 delta).

Heard that later models have higher muffling due to ~three~ low-pass filters and steeper rolloff.

ekeeke was using 0.6 as default value, which agrees with wertz. So maybe they both have the later revision.

Kinda like the MT-32 - some sfx work only on early / later models.

Either way, thank you everyone (especially James-F) for digging out this pretty important finding that Retroarch people have been missing out on. And ekeeke of course for being the all-knowing Sega guru we’ve all come to know about and love.

1 Like

Let me clarify about later model lowpass filtering.

Model 2 of the Genesis/MageDrive actually uses second-order (12db/oct) lowpass filtering which is steeper that Model 1 first-order lowpass (6db/oct).
Sega used a steeper second-order filtering on Model2 because it had terrible audio quality.

The Lowpass emulated in GenPlusGX is first-order ONLY thus can never sound like the later Model2 filtering.
The 0.4//0.6 values we talk about correspond to a frequency the first-order lowpass starts at, but could never sound like second-order lowpass simply because the code in GenPlusGX is for first-order ONLY.
Changing the 0.x value would be like changing the capacitor which determines the cut-off frequency on the real Model1 console, and will NOT get you closer to the Model2 sound in any way, not that you want too anyway.
According to my measurement of various Model1 consoles, there is virtually no difference in cut-off frequency, therefor a single correct default value in GenPlusGX will do to match that.

Therefor, we should use the correct measured value for Model1 and not try to guess or remember how your sounded or should sound, I urge you to understand that.
Eventually the end user can do whatever he wants, but please don’t make the wrong/guessed value as default.

The 60% value be ekeeke comes from what he though sounded the same from his Wii running GenPlusGX. He didn’t actually measure the frequency response, but tuned to what sounded close to him and not even in direct comparison.
I’m still waiting for a response from wertz about what method he used to get the 0.6 value, which he CONFIRMS to be correct.

Okay, think I get it now. Thanks for explaining all that in precise details. :slight_smile:

BTW, have you seen this? Do you know how close it compares? https://www.mathieudemange.fr/rymcast/

1 Like

It compares very well, mainly because they used the 16bit-audiophile project as reference (it’s actually mentioned in their website), as do I.
It seems from the frequency response that the YM2612 emulation is slightly less accurate than of GenPlusGX, but the filtering is very close.

Orange-JAP Model1 VA1, Blue-RYMCast Player.

1 Like

The lowpass filter option just got merged into the main libretro repo, so it should be showing up in the online updater soon.

6 Likes

Honestly after reading all this audiophile tech-jargon that I don’t understand I’m just eager to see if I can tell the difference lol.

Had a Gen2 growing up, but been using emulators since like 2001 really.

Can’t wait to compare lol

First, Thank You!
New ver is up online.

Few notes,
The slope at 15kHz still exists, I have no idea what could be the cause, but other emulators don’t behave like this.
A value of 45 will give you spot-on curve of Model1 up to 12kHz, from there the down slope begins.
The default value of 60 is slightly more filtered than a Model2 would be, but a value of 55 is a better match, although the cuvres do NOT sit perfectly one on top of each other like the Model1 curves because GenPlusGX emulates 1st-order filter while Model2 has 2nd-order filter.

Once again, thank you for adding this important feature in Genesis Plus GX.

1 Like