jwt27 / esfm Goto Github PK
View Code? Open in Web Editor NEWFM synth reverse-engineering
Home Page: https://discord.gg/r9YXEgQjZr
FM synth reverse-engineering
Home Page: https://discord.gg/r9YXEgQjZr
You say that these last two channels have 2 key-on registers each, one for each group of 2 operators within these channels. Well, what is the order that they appear in?
It could be group-then-channel, or channel-then-group. But this is not specified. The latter allows the expression 0x240 + channel
to select the appropriate key-on register for any of the 18 channels (though you need extra logic to write to 0x252
or 0x253
as well in case of channel 16 or 17).
Would be nice to have C headers with defines/enums/etc accompany the documentation.
If you're into that sort of thing, I make a discord around this chipset.
Basically, I think things will become easier if people with same interest are in same place.
https://discord.gg/C9FRkma5
Hello. Glad ESFM is finally being de-mystified, turns out this chip is much more impressive than previously thought... Still, few things perplex me..
And there are no pre-set 4-op configurations, as on the OPL3. Instead, ESFM features separate controls for output and modulation level on each operator -
Does that mean users can make any connection of 4 operators, any way they can think of, also emulating OPN family 4op connections (like, op1 modulating op2, op3 and op4 carriers at once, or 4 carriers). Also feedback - on OPL3, AFAIK, only op1 could have the feedback affecting it. What about ESFM? Is it still per channel, or per pair of ops(like envelope) or per op itself (like frequency)?
P.S: one operator can both produce sound, and modulate another operator, simultaneously. - wonder how that one is implemented...
I noticed some presets in the existing drivers have a bit that prevents them from being loaded in the last two channels. That would imply that these are missing some features that the other channels do have. What is the difference exactly?
Someone ask what happens if you write OPLx messages in Native mode.
I found this bit in data sheet.
https://media.discordapp.net/attachments/1059459743019704404/1059753846911533196/image.png
As for what happens if you write Native messages in OPLx mode(play midi, pause, use AdT2 in dosbox with portio forwarding, resume midi).
Well, you get ear rape.
https://cdn.discordapp.com/attachments/1059460133991755896/1059491102543073360/ESSFM_noise_recomp.ogg
I wonder if OPL3 will scream the same if you feed it Native messages.
The address space is very large, and I expect there will be some configuration registers somewhere (NTS
bit, timer?). The question is, where?
https://github.com/pachuco/ESSPlayMid/blob/master/src/essfm.h#L5
https://github.com/pachuco/ESSPlayMid/blob/master/src/essfm.c#L43
This seems to be a feature intended for power management use.
But I bet it could be put to good use to see underlying synth structure by comparing snapshots.
Do you have any idea on how to disassemble the driver and get the hard coded instrument patches that was used with its midi play back?
Also, I notice that the PCI ES1938s 's Win98 driver included different instruments than es1688.
And the PCI ES1938S has two drivers, VxD version and WDM version.
VxD and WDM included different instruments again.
So do you have any idea on where to look for the hard-coded instrument?
If you've already have raw data and just don't have time to translate it into something usable, you can sent them to me.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.