From my understanding, some of the MAME ppl are actually helping with this DSP563xx project as we speak hahaxhunaudio wrote: Mon May 10, 2021 6:41 pm Yes, I was just figuring (in the long term, with many people involved) something similar to MAME, a sort of "Multiple DSP Emulator"...
But this 563XX already is an amazing project, also without any further processor/coprocessor addition.
DSP563xx Emulator (Access Virus, Nord Lead, Waldorf MW...)
-
- KVRian
- 886 posts since 14 May, 2014
- KVRian
- 1234 posts since 17 Feb, 2010
Are you sure ? It's a great news and it makes much sense...
-
- KVRist
- Topic Starter
- 119 posts since 17 Jan, 2021
This is incorrect, we dont have anybody from the MAME team working with usShiek927 wrote: Mon May 10, 2021 9:56 pmFrom my understanding, some of the MAME ppl are actually helping with this DSP563xx project as we speak hahaxhunaudio wrote: Mon May 10, 2021 6:41 pm Yes, I was just figuring (in the long term, with many people involved) something similar to MAME, a sort of "Multiple DSP Emulator"...
But this 563XX already is an amazing project, also without any further processor/coprocessor addition.
-
- KVRian
- 886 posts since 14 May, 2014
Ahh! my apologies and thank you for clarifying. I must have misremembered something.numerouno wrote: Tue May 11, 2021 10:59 pmThis is incorrect, we dont have anybody from the MAME team working with usShiek927 wrote: Mon May 10, 2021 9:56 pmFrom my understanding, some of the MAME ppl are actually helping with this DSP563xx project as we speak hahaxhunaudio wrote: Mon May 10, 2021 6:41 pm Yes, I was just figuring (in the long term, with many people involved) something similar to MAME, a sort of "Multiple DSP Emulator"...
But this 563XX already is an amazing project, also without any further processor/coprocessor addition.
-
- KVRist
- Topic Starter
- 119 posts since 17 Jan, 2021
Update: We now have a beautiful looking GUI courtesy of “Hoverland”










Last edited by numerouno on Fri May 21, 2021 7:06 pm, edited 1 time in total.
- KVRAF
- 24407 posts since 7 Jan, 2009 from Croatia
It's not going to be super cheap on the CPU, since it's converting 24-bit DSP instructions to a 64-bit CPU. There are overheads for each and every instruction that needs to be executed.anoise wrote: Fri May 21, 2021 7:26 pm WOW, if this works smoothly, without killing the CPU, this will be BIG. End of the virus clones. This here, is the real deal.
The team is working hard on making it as fast as possible, but don't expect miracles.
-
- KVRian
- 886 posts since 14 May, 2014
This is complete speculation, but given that there is no analog filtering, component-level modeling, etc, and all the things that make the best-sounding plugins so CPU-intensive, I don't think it will be the heaviest things around. Not super CPU-friendly because it's not as if they are explicitly made for that, but certainly not beefy tanks either.
As ever, I'm infinitely grateful this project even exists and many of my favorite synths that have always sonically inspired me have a chance at becoming plugins. Upgrading the CPU/ram of your home computers is a small price to a pay to have them, but that's just me
As ever, I'm infinitely grateful this project even exists and many of my favorite synths that have always sonically inspired me have a chance at becoming plugins. Upgrading the CPU/ram of your home computers is a small price to a pay to have them, but that's just me
-
- KVRian
- 1119 posts since 4 Jan, 2007
I haven't look at your interpreter in depth, but this article about writing a tail-call based interpreter (instead of switch based) seems interesting:
https://blog.reverberate.org/2021/04/21 ... eters.html
As the musttail attribute is Clang's, the code can still compile for for Windows (clang-cl), Linux and OSX.
https://blog.reverberate.org/2021/04/21 ... eters.html
As the musttail attribute is Clang's, the code can still compile for for Windows (clang-cl), Linux and OSX.
- KVRAF
- 24407 posts since 7 Jan, 2009 from Croatia
I would expect around Diva levels of CPU usage (without the option to multicore because that's not how the DSP chip operates). Doesn't matter that there's no component-level modeling - the biggest issue is we're dealing with 24-bit to 64-bit conversion.Shiek927 wrote: Sat May 22, 2021 12:10 am This is complete speculation, but given that there is no analog filtering, component-level modeling, etc, and all the things that make the best-sounding plugins so CPU-intensive, I don't think it will be the heaviest things around. Not super CPU-friendly because it's not as if they are explicitly made for that, but certainly not beefy tanks either.
Also, note that these devices mostly worked at 44.1k. Forget about upsampling them for "better sound". Actually, there will have to be some resampling done on the fly to support running the plugin at other sample rates - and this will also incur a small latency and a bit more CPU overhead (if you want a good/great quality resampler).
- KVRAF
- 8476 posts since 12 Feb, 2006 from Helsinki, Finland
I'm curious (and I have no idea how this particular DSP works, please educate), what's the source of the overhead here? It would seem that for most arithmetic operations one could just use wider registers with just right-shifts and divisions requiring pre-masking/sign-extension?EvilDragon wrote: Sun May 23, 2021 9:23 pmI would expect around Diva levels of CPU usage (without the option to multicore because that's not how the DSP chip operates). Doesn't matter that there's no component-level modeling - the biggest issue is we're dealing with 24-bit to 64-bit conversion.Shiek927 wrote: Sat May 22, 2021 12:10 am This is complete speculation, but given that there is no analog filtering, component-level modeling, etc, and all the things that make the best-sounding plugins so CPU-intensive, I don't think it will be the heaviest things around. Not super CPU-friendly because it's not as if they are explicitly made for that, but certainly not beefy tanks either.
Does the DSP store 24-bit values as 3-bytes in memory? Is that what's causing the slowdowns?
edit: I took a look at the source code, it looks like it's translating each op separately? I can certainly see why one would do that (simplicity), but that kind of translation is likely to result in quite a bit of overhead with things like updating flags even where they might be overwritten by the next instruction. The alternative (ie. reconstruct suitable compiler IR, optimize said IR, then generate code from that) is a lot more complicated though, so I don't know. Even if one doesn't go for a full compiler, it might make sense to construct at least a basic dependency graph on the level of basic blocks or something in order to peephole some of the overhead?
- KVRAF
- 24407 posts since 7 Jan, 2009 from Croatia
I don't know the details, but yeah the latest emulator version could achieve 120 MIPS (and Virus C is overclocked to 130 MHz, so 130 MIPS) by using up a whole core of an i7-4790K, and even that wasn't 100% realtime. That's quite a lot. So they are now moving towards an asmjit solution, but the trick is they cannot tell how the performance will be until all instructions are ported...

