[HN Gopher] Synth Emulation in MAME
       ___________________________________________________________________
        
       Synth Emulation in MAME
        
       Author : bane
       Score  : 110 points
       Date   : 2023-10-26 13:18 UTC (9 hours ago)
        
 (HTM) web link (gearspace.com)
 (TXT) w3m dump (gearspace.com)
        
       | bane wrote:
       | Related - https://github.com/jariseon/amame - MAME Synths as VST
       | instruments.
        
       | bitwize wrote:
       | Ever since the MESS merger, MAME has been emulating anything and
       | everything: old consoles, computers, terminals, LCD games.
       | Synthesizers just seem like a logical next step.
       | 
       | Only drawback seems to be it's gonna be difficult to get
       | performance real-time enough to use as an actual musical
       | instrument. Maybe when MiSTer cores show up for these synths,
       | it'll change that.
        
         | datpiff wrote:
         | Does MAME have some kind of latency issue with the synth
         | implementations? Why wouldn't it be real-time already?
         | 
         | The MIDI protocol tops out at ~1000 message/sec and no real
         | synth ever needed control message anywhere near that
         | frequently. Why would you need an FPGA?
        
           | pantulis wrote:
           | I guess it's because MAMEis not emulating the software of
           | these devices, it's emulating the whole hardware and then
           | puts the ROMs on top of it. It's like running a synthesizer
           | virtual machine. I understand most commercial vintage synth
           | plugins either use samples of the real stuff --boo! or they
           | emulate the wave functions and effects used on those devices
           | from the manufacturer documentation, but not the exact
           | hardware.
        
             | datpiff wrote:
             | It's been done for the Access Virus, Waldorf MicroQ and
             | some other Motorola 56k synths
             | https://dsp56300.wordpress.com/, all usable as real-time
             | instruments.
        
         | tomphoolery wrote:
         | > Only drawback seems to be it's gonna be difficult to get
         | performance real-time enough to use as an actual musical
         | instrument.
         | 
         | Kinda depends on whether the "sound chip" is emulated. For
         | example, the MOS6581 doesn't seem to be emulated here. You
         | could emulate the UI and controls of an Elektron SIDStation,
         | but you wouldn't be able to get the sounds to play unless you
         | had a real SID chip in there. So in that sense, just running
         | the UI and controls would be fine for an emulator if there was
         | a real MOS chip somewhere to take in audio.
        
           | Luc wrote:
           | I'm confused. There might not be one in Mame right now, but
           | there's dozens of SID chip emulators. For example this
           | website uses WebSID to play SID tunes in your browser:
           | https://deepsid.chordian.net/
        
           | anthk wrote:
           | That SID I think it's emulated since the first emulators for
           | the C64 if not before.
        
           | xcv123 wrote:
           | Of course the sound chip is emulated. That's the purpose of
           | MAME. It emulates everything in the original hardware, sound
           | included.
        
           | wolrah wrote:
           | > For example, the MOS6581 doesn't seem to be emulated here.
           | 
           | https://github.com/mamedev/mame/blob/master/src/devices/soun.
           | ..
           | 
           | The MAME and MESS trees have been reorganized a few times so
           | I can't just track one file back easily but so far I've
           | chased SID entries in MAME back to at least 2006. It's one of
           | the defining features of a very popular platform, of course
           | it's going to have at least some level of support.
        
         | TheRealPomax wrote:
         | Computers are _really powerful_ these days, though, it 's why
         | physical modeling VSTi are actually usable now. Especially if
         | you do the signal processing on the GPU instead of the CPU
         | (which is thankfully starting to happen as well).
        
           | munificent wrote:
           | _> Computers are really powerful these days, though, it 's
           | why physical modeling VSTi are actually usable now._
           | 
           | True, but simulating analog oscillators and filters well with
           | little aliasing and good support for resonance is still quite
           | hard. Current virtual analog synths sound good, but the first
           | time I sat down with a real (but cheap and shitty!) analog
           | synth, I was blown away.
           | 
           |  _> Especially if you do the signal processing on the GPU
           | instead of the CPU (which is thankfully starting to happen as
           | well)._
           | 
           | There's some stuff you can do here, but my understanding is
           | that it's pretty limited. GPUs are designed for wide parallel
           | computation, which makes sense in graphics where pixels are
           | relatively independent of each other. A GPU is trying to
           | calculate many things at a single point in time in parallel.
           | 
           | Audio is about calculating a small number of things (just a
           | few samples) but at a very high frame (sample) rate, and the
           | things you're calculating often depend heavily on the results
           | of previous points in time. There's a lot more fundamentally
           | serial work to do, which makes it hard to map to GPUs.
        
         | MenhirMike wrote:
         | > Only drawback seems to be it's gonna be difficult to get
         | performance real-time enough to use as an actual musical
         | instrument.
         | 
         | Is there something specific about the MAME codebase that makes
         | this an issue? There are quite a few software emulations of
         | classic synths, for example Arturia's V Collection or the
         | Plogue's Chipsounds - and those work perfectly well in real
         | time even on lower end machines. Roland's Virtual Analog (I
         | hate that term) and Plug-Out also exists, though I really don't
         | want their cloud subscription just so I can download an
         | instrument into a physical synth. But I'm not familiar enough
         | with the MAME codebase to know if there's something in there
         | that could cause issues.
        
           | bluGill wrote:
           | More that synthesizer. Some are easy to emulate, while others
           | require a lot more CPU cycles.
        
         | rgreasons wrote:
         | There are musicians that would love to use hardware-based
         | emulation for recording and would happily settle for current
         | software-based solutions for live performance. Many
         | professional musicians already do this. Musicians such as
         | Floating Points have studios filled to the brim with large,
         | rare, expensive synthesizers[1] with which they don't travel.
         | Existing VSTs and reproductions get you 90% of the way there,
         | but MAME emulation may be able to bring higher-quality
         | emulation to a wider set of musicians.
         | 
         | [1] https://www.youtube.com/watch?v=75iX1rnW9WQ
        
       | lintbrush wrote:
       | The idea of noodling around in the Fairlight UI is pretty fun.
       | Always nice to get an insight on how various limitations or
       | structures of older instruments led to the music they created.
        
         | blue1 wrote:
         | Not an emulation, but a recreation:
         | https://adamstrange.itch.io/qasarbeach
        
       | joezydeco wrote:
       | It seemed like a natural next step because a lot of sound chips
       | in classic arcade games, like the Yamaha 2151 FM synthesis chip,
       | were also used in some of Yamaha's keyboards including the DX100.
       | 
       | https://en.wikipedia.org/wiki/Yamaha_YM2151
        
         | sumtechguy wrote:
         | This is the library that probably does it.
         | 
         | https://github.com/aaronsgiles/ymfm
         | 
         | He pulled a lot of the ymfm chips out of MAME put it into that
         | lib then put that lib back into MAME.
         | 
         | The analog chips are a bit more difficult as they in MAMEs case
         | need a netlist made usually. Those can be tricky to get to have
         | any sort of performance. They are fairly accurate though.
        
           | joezydeco wrote:
           | Every time I see Aaron Giles on some MAME code I know it's
           | going to be high-quality stuff. This guy is a beast.
        
             | sumtechguy wrote:
             | pitty the mame crew ran him off
        
               | epcoa wrote:
               | What the fuck are you talking about?
        
               | sumtechguy wrote:
               | https://github.com/mamedev/mame/pull/8576 He got tired of
               | it.
        
               | epcoa wrote:
               | Oh that. That's more of a rage "quit" because of
               | longstanding disagreements and personal problems with an
               | individual, no "crew" ran them out. Of note it's not like
               | they stopped their drama, it continued on the MAMEWorld
               | forums. And it's not like aarongiles has stopped all MAME
               | related work.
               | 
               | https://www.mameworld.info/ubbthreads/showthreaded.php?Ca
               | t=&...
               | 
               | And even if I don't agree with cuavas entirely, they
               | aren't totally in the wrong here either IMHO and they do
               | explain their positions. I happen to agree with their
               | disdain and disingenuity of keeping hoarded roms "safe",
               | Aaron's sanctimony does get annoying at times even if
               | unintentional and I can see how it can rub someone the
               | wrong way, especially with as much effort invested as
               | cuavas. Seriously if MAME was really the shithole a
               | number of (primarily American clique) loudmouths have
               | been saying it is, they should just fork, talk is cheap
               | though
        
               | user9438 wrote:
               | >they they they
               | 
               | Why are you referring to cuavas as if he's a group of
               | people?
        
               | PaulHoule wrote:
               | Reminds me of the time in Dec 1999 I wrote a patch to add
               | save files for the NES emulator in MESS because my wife
               | was playing Legend of Zelda and wanted to save.
        
               | pbj1968 wrote:
               | Ain't no drama like pac man drama.
        
         | dep_b wrote:
         | There's quite a bit of variety between different DX
         | synthesizers in terms of sound, even when they seem to be the
         | same on paper like the DX11 and the TX81z. I bought a bunch of
         | them when they were still cheap but it's hard to get rid of
         | them because they all have quite recognizable signature sound.
         | 
         | This chip is particularly gritty and raw. Getting a DX27
         | instead of a DX100 will save you a lot of money. Really no clue
         | why the DX100 is so expensive.
        
           | djaychela wrote:
           | > Really no clue why the DX100 is so expensive.
           | 
           | Id think it's the former users who give it a level of
           | desirability which does it, looking at the Wikipedia page for
           | the DX100...
        
       | easyThrowaway wrote:
       | I wonder if they're strictly emulating just the digital bits of
       | the original hardware.
       | 
       | I mean, the reason we have so many different VSTs for the same
       | devices is that emulating the digital components is the "easy",
       | so to speak, part, while the truly complex and really
       | differentiating part is the software modeling of the analog
       | components - which also explains the difference in price between
       | a free VST replica of the Yamaha DX7 and the circa 199EUR Native
       | Instruments and Arturia replicas.
        
         | giulioz wrote:
         | It's true that the analog part is not easy, but from my
         | experience also the digital one can be as complicated. Take for
         | example effect units or samplers, they use a lot of proprietary
         | algorithms running in custom chips which can be very hard to
         | understand from the outside and get right. For example
         | emulating the digital part of the Yamaha FM chips and all their
         | quirks, or the Roland D50 chorus/reverb ICs, or the
         | interpolation algorithms in samplers.
         | 
         | Btw, some MAME components actually try to approximate the
         | analog behavior, like for the CEM filter of the Ensoniq ESQ-1:
         | https://github.com/mamedev/mame/blob/master/src/mame/ensoniq...
         | 
         | Obviously though it's a thing that takes a lot of work to get
         | right though, so it's just a first approximation
        
       | giulioz wrote:
       | MAME is absolutely amazing when doing reverse engineering stuff.
       | For example I'm trying to do it with an old keyboard from the 90s
       | (the Roland D70) and I built an emulator for it in just a day
       | with MAME. Just had to dial in the CPU type, the memory map and
       | the OS rom dump. And boom, the UI of the synth magically appeared
       | in the emulator.
       | 
       | https://github.com/mamedev/mame/pull/11440
        
       | drhodes wrote:
       | For any Metroid fans who fondly recall the soundtrack to the
       | original NES game, here is a killer remake using a Korg MS20
       | Mini.
       | 
       | https://www.youtube.com/watch?v=Q6fceLfjB4s&list=PL50UiFZSGF...
        
       | RecycledEle wrote:
       | MAME = multi arcade machine emulation
       | https://en.m.wikipedia.org/wiki/MAME
       | 
       | DAW = digital audio workstation
        
         | anthk wrote:
         | MAME stopped being just an arcade emulator, they merged MESS
         | into the project. Now MAME emulates naer anything with a CPU.
        
       | readyplayernull wrote:
       | Over time, MAME (originally stood for Multiple Arcade Machine
       | Emulator) absorbed the sister-project MESS (Multi Emulator Super
       | System), so MAME now documents a wide variety of (mostly vintage)
       | computers, video game consoles and calculators, in addition to
       | the arcade video games that were its initial focus.
        
       | andybak wrote:
       | Anyone fancy doing the QY70?
        
       | tombert wrote:
       | MAME is basically a triumph of human achievement, and one of my
       | go-to examples of why emulation development is useful outside of
       | pirating video games.
       | 
       | Yes, pirating video games is a common usecase of emulators, but
       | it's not like the work preserving old computers is _solely
       | useful_ for games. A MOS 6502 is still a 6502 whether it 's
       | playing Mario or BASIC, and games turn out to just be a
       | remarkably good (and fun) way to test accuracy of the emulation.
       | 
       | I think there are lots of unique computers made in the world of
       | synthesizers and game consoles and the like, and I am glad that
       | the MAME project is doing what it can to make sure that these are
       | not forgotten.
        
       | an_aparallel wrote:
       | speaking of yamaha, and old chips....just putting out there the
       | incredible work of ploguesounds (their synths chipsynth, as well
       | as their bit-perfect yamaha dx7 and other yamaha synths are just
       | incredible) - and chipcrusher (bit perfect ADC emulations) are
       | one of the most incredible and inspiring creative tools on my pc.
       | https://www.plogue.com/
        
       | livrem wrote:
       | It would be fun to have realistic emulations of digital synths
       | and sampler I used to own, but got rid of. Not for doing anything
       | useful, but just for the nostalgia.
       | 
       | Is there a list somewhere of what synths are already emulated or
       | being worked on?
        
       ___________________________________________________________________
       (page generated 2023-10-26 23:01 UTC)