faustlibraries icon indicating copy to clipboard operation
faustlibraries copied to clipboard

DX7 Library is incomplete

Open DBraun opened this issue 2 years ago • 2 comments

The DX7 library is incomplete, so I think we should track it as an issue. For example LFOs are not implemented. Someone could consult how Dexed does it here which is nearly the same as Google's music-synthesizer-for-android. However, I can't confirm that the music-synthesizer-for-android is 100% correct for DX7.

Note also that Dexed's implementation may not be perfect (although it's pretty great 🙌🏻 ), so we should also watch these issues:

  • https://github.com/asb2m10/dexed/issues/291
  • https://github.com/asb2m10/dexed/issues/242
  • https://github.com/asb2m10/dexed/issues/146
  • https://github.com/asb2m10/dexed/issues/138

See a Yamaha DX7 manual here. The more primary resources we use, the better.

DBraun avatar Nov 06 '23 03:11 DBraun

I would be very interested in this. I've also found that even removing inactive parameters that dx7lib can be quite janky and finicky, segfaulting when certain parameters are used. I can share more details

turian avatar Aug 24 '24 04:08 turian

@turian Yes, please do.

sletz avatar Aug 24 '24 05:08 sletz

Je ne sais pas ce que je viens faire dans cette histoire de spam généré par l'IA @sletz ;)

cirotix avatar Apr 08 '25 15:04 cirotix

Salut @cirotix ! oui je supprime.

sletz avatar Apr 08 '25 15:04 sletz

@sletz This is some in-progress DX7 code where I'm trying to follow Dexed as literally as possible. The big picture is there and the code compiles, but the individual modules need verification.

dx7.zip

DBraun avatar May 09 '25 01:05 DBraun

This is great !, @rmichon will hopefully appreciate ! Happy to merge a PR when ready.

sletz avatar May 09 '25 06:05 sletz

There’s a lot of tricky integer bit shift arithmetic and I would appreciate any help in thinking that stuff through in Faust. I want to preserve the bit shift code instead of converting everything to floating point.

DBraun avatar May 09 '25 11:05 DBraun

Where that ?

sletz avatar May 09 '25 13:05 sletz

For example how do translate this line into Faust? https://github.com/asb2m10/dexed/blob/e087754595af33a5a487cb08a213cf6a62edd463/Source/msfa/lfo.cc#L61 An attempt is in lfo.dsp:

getSawdown = randstate_, x
with {
  x = (flipPhase xor (oneU << 31)) >> 8;
};

DBraun avatar May 09 '25 13:05 DBraun

Can this be used https://faustlibraries.grame.fr/libs/maths/#manot ?

sletz avatar May 09 '25 13:05 sletz

Can this be used https://faustlibraries.grame.fr/libs/maths/#manot ?

Thanks, making some more progress now...

DBraun avatar May 09 '25 20:05 DBraun