Hmm, true! Just set the ratio so that the carrier multiplier is high and the modulator multiplier is low (makes the modulation as slow as possible in relation with the carrier frequency).

Tips... experiment more! Also, try pressing the octave and 5th buttons in the wave editor and modulate with that (it mixes the wave with itself creating a fat harmony). It's a bit like if you had one extra modulator that also modulates the carrier. Related to that, I'm working on a better waveform generator/editor (attn. n00bstar).

It's the latest nightly. The one I put on my Dropbox.

Thank you.

Turns out the OPL envelope is all kinds of funky (generally e.g. the attack is the exact opposite to what is in use here). I think the envelope generator in klystrack should overall be augmented so that you can pick if the attack/decay phase is exponential or linear or whatever.

I made this (probably the most nostalgic Adlib tune for me!)

I think there is something weird with the synthesis, it was a pain in the ass to create matching sounds. It should work exactly like the OPL but...

That is correct.

It's not like my ramblings are easy to decode.

The high nibble of the MULT param, duhhh! Seriously though, if you have MULT set to 3F, it means carrier is multiplied by 3 and modulator by 15 (and the whole instrument is magically transposed so it doesn't play out of tune, in this case the instrument would play a fifth higher but it's transposed down). You can shift-click the up and down buttons and it will change the high nibble. Generally, you can probably just randomly click the param to some setting until you find an interesting harmonic.

There needs to be a separate parameter for it but I didn't want to spend the whole Sunday afternoon working on silly projects! smile

Feedback should work better now btw. Also, I tried to create some sounds by ear and compared those to some Youtube videos of old games and in many cases you get very close to the original.

I just added support for carrier multiplier. You can create more awesome FM cheese with weird ratios and you don't even have to retune the instrument (so in effect the carrier multiplier never changes but the modulator multiplier is set to e.g. 0.333 when carrier is 3 and modulator 1). The carrier multiplier is the high nibble of the MULT parameter and the low nibble is the modulator multiplier, this hack is temporary. Multiplier values are the same as for the OPL chips, as listed in this very thread.

Oh, Google Code file hosting ended so here's a link:

https://dl.dropboxusercontent.com/u/119 … -win32.zip

Look at the klystrack wiki, it has instructions how to get the sources (you need SVN) and how to compile.

http://code.google.com/p/klystrack/wiki/HowToCompile

Edit: Updated the article a bit.

I won't add anything that is not at least a bit analoguous to some classic sound chip feature. Noise pitch is acceptable because many chips do that (even if 90 % of the current design is based on SID). More complex FM not so much, and the envelope can be made as complex as you like by adding some modulator slide commands that allow e.g. simple LFO effects. That said the FM engine still needs to be changed since it's not even as good as OPL-2 yet.

The colored pattern idea is good. It was a feature on this one famous sound chip.

I would gladly add some MIDI out features but I am not sure at all how to send instant and really regular (i.e. normal timer stuff is not enough) messages. If I send the messages based on the play position you see on the screen, the messages might be first 100 ms apart, then 150 ms apart for a bit and 75 ms for a while, which eventually averages out but it sounds awful. Same goes for MIDI clock in, no idea how the big boys make that work so well.

Sound effects and drums and that stuff comes to mind when you might benefit from some weird ratio that has two prime numbers. Perhaps you can also "color" the carrier with an atonal modulator that's barely there?

I think we are confusing two things together here. If you have the carrier multiply set to 0.5 and the modulator multiply set to 1, it is exactly the same as setting the carrier to 1 and the modulator to 2 (and playing that an octave lower). Or, carrier x 5 and modulator x 10 etc.

Maybe I am confusing something?

Also, yes the nightly code always is in the klystrack and klystron trunks.

Well, the OPL has a multiplier on all oscillators, modulator or not. Mathematically it is the same to have a CARRIER:MODULATOR ratio of like 3:1 and a modulator frequency of 0.333 * CARRIER. But my reasoning is that if you only multiply the frequency it gives you a stabler waveform (100 % my own speculation) since there is no rounding involved in the maths when you only multiply by whole numbers. Honestly, though, it might be overkill because the oscillators already have lots of accuracy and who cares if the oscillators eventually go out of sync after a minute of playing the same note...

The best part of feedback is the black magic! IMO it was very smart to include that in the chip.

Suggestions make sense, I like the new terms more since they fit in with the other terms in the editor.

Feedback probably doesn't work in a useful way currently (has to do with the wavetable loop lengths and how that affects the feedback overflowing and starting to loop the waveform causing that nice distortion).

I think I have to change the MULT param a bit, so that you can specify the ratio, i.e. you have two params that alter the carrier multiplier and the modulator multiplier. There will be way too many values in the table to get the possible combinations otherwise.

egr wrote:

@kometbomb -- been meaning to say that if you want me to change the title of this thread to something more descriptive or helpful just let me know, i'm adding some updated screenshots etc to the first post right now

It is ok, thanks. The most important thing is that the catometer is visible!

Ok, so FM: harmonics sets the frequency multiplier to a preset value, I just randomly put some values in there, on the OPL there are multipliers such as 0.5, 1, 2-10, 12, 15, that translate to some interesting scales. Though, on the OPL you can also set the multiplier for the carrier as well so I think my implementation misses some harmonics (e.g. put carrier to x5 and modulator to x7), so I need to add some more fractional values (now there only are multipliers for 0.125, 0.25 and 0.5, i.e. three octaves down, two octaves down and one octave down).

Please do tell if you can't make some kind of sound that was possible on the OPL chips, I hardly have any experience with them. I am not sure if you can get that bell-like sound that's a very charateristic FM sound. Interestingly, if you modulate a triangle carrier with the triangle modulator, it sounds like sync modulation due to the modulator sort of stopping and starting the carrier, because it goes either up at full speed or down at full speed.

The modulator simply modulates the oscillator frequency (or rather oscillator phase), so you can use the multiple waveform selection thing with it. Though, LFSR isn't compatible with phase modulation so it is not touched at all (that also means noise). But IMO sinewaves are the only way to fly!

Here you go:

http://code.google.com/p/klystrack/down … n=2&q=

Feedback doesn't really work currently, so don't rely on it. And the rest of it will probably change as well.