LoginLogin
Nintendo shutting down 3DS + Wii U online services, see our post

Is FM Synth possible?

Root / General / [.]

mystman12Created:
I don't really know much about how the custom waveforms or a lot of the MML stuff works, but I was wondering if FM Synth would be possible. Same kind of sound the Sega Genesis or Williams System 11 pinball machines used for their music. I know there's FMPETIT by SmileBOOM themselves (Q3SKXERS), but that seems to be giving off a very different sound than what I want. Maybe it's just because I have no idea how to adjust the sound to my liking, though... Any help would be appreciated!

Oh, you could. You would just have to get a FM generator tweaked like the Yamaha chips were that exports to MML waveforms. Not sure how you'd do it though exactly.

Okay, so I know this is an older thread, but I've written up a simple program that I think is a step in the right direction. I basically just used an equation I found online, tweaked it a little, and used it to create a hex string for WAVSET. Code is: [D3433J3Y] If you open version 0.05, and enter 5 for frequency 1, 2 for frequency 2, 68 for max 1, and 99 for max 2, you should get an FM synthy sound to play. You can enter BEEP 224 to hear it without the vibrato you initially hear it with. Obviously you can enter any values you want hear with different results, but those are the values I'm focused on right now. I'm not really sure where to take it from here, and I'm also starting to wonder if SmileBASIC can actually store enough data within a 1 second waveform to actually produce a good FM synth. I don't know if anyone has any input or tips, but I'd love it if someone could take this further.

mystman12, I think I saw you posting about this on miiverse, or at least it looked like a FM synth curve. This is something I'm hoping to wrap into my custom instrument integration in Litterbox MML. I'm hoping to have a mode that let's you drop in modules (sin,square,sawtooth) in sequence and then connect them via mathematical operation (mult,div,add,sub) to create complex waveforms. In addition, there'll be a module that lets you record from the mic and insert that as a module in the chain. Should provide enough variety to make interesting instruments. I'll be sure to check out your program when I get off work, and I'll probably have questions for you. I think you could make plenty in that 1 second chunk, as it will loop, and a lot of the shaping will come from the ADSR envelope.

Oh cool! Yeah, that's what that waveform was. The program is based off of what little I gathered from this website: http://www.soundonsound.com/sos/apr00/articles/synthsecrets.htm I use equation 5, although I randomly tweaked it a little and somehow came up with something that sounded good-ish. (Before that it was more noise than a tone, you can here it in the earlier versions.) Anyways, I'm looking forward to it if you can figure it out! If you have any questions for me... I probably won't be able to answer a lot of them. :P Again, I was just sort of guessing, although I have learned a lot about creating waves with WAVESET and modulation. (Although I actually learned a lot about modulation from your program!)

Thanks mystman12, that's an interesting read. Exactly what I was looking for.

I use equation 5, although I randomly tweaked it a little and somehow came up with something that sounded good-ish. (Before that it was more noise than a tone, you can here it in the earlier versions.)
You are right, they have the modulation equation incorrect. I got a very incoherent signal before I changed it to:
VAR AMP1 = 1.0
VAR AMP2 = 2.0
VAR FREQ1 = 10
VAR FREQ2 = 2
' T is some point in time
VAR A = AMP1 * SIN( FREQ1*T + AMP2*SIN(FREQ2*T))
Based on what I found here: http://www.ams.org/samplings/feature-column/fcarc-synthesizer