Offline

Hello

Just wanted to share with you, I've made a tracker with custom FM engine (6 operators, 24 voice polyphony), now released as a free and open-source software.

See how it sounds : https://www.youtube.com/watch?v=bT__3KI3Lt4&t=1s (there are other demos on my youtube channel)

It has a custom reverb algorithm which can be disabled for simpler chiptunes smile

If you're interested into trying it, here's the download link : http://fmcomposer.org/fr/download.php
Or the general website link : http://fmcomposer.org



Trackers 4 ever !

Offline

How I do you get to the piano roll? I can't seem to figure it out ; p

Offline

Osx version????

Offline
Solar System

Nice thank you !
Can you please add edit 1-16 row jump in track.
Simply I will set 4 or 8 for drums.Like in FT2 or Renoise.
And put bass between it...

Last edited by Matej (Feb 21, 2018 7:03 pm)

Offline

wow, impressive!
So, speaking about instruments, can FM Composer do everything a YM2151 or a YM2612 does, for instance?

Offline

It can do everything the YM2612 can do. For the YM2151 I'm not sure, but if it's got only sine waves like the YM2612 then yes.
The only thing FM Composer doesn't have is some of the OPL2 waveforms. It has different ones, that I thought would be more useful, since the OPL2 waveforms were usually too harsh to do FM without aliasing. In overall FM Composer's engine is far more powerful than OPL2/OPL3, especially with the custom algorithm capabilities, the six operators and polyphony. Its engine is closer to the Yamaha SY77.

kid versus chemical wrote:

How I do you get to the piano roll? I can't seem to figure it out ; p

Click on the pink icon at the right of the Pattern tab smile Keep in mind it's more for viewing than for editing, it has very limited editing features (only modify an existing note pitch/duration)

Jalex wrote:

Osx version????

I can't do that myself as I don't have any Apple system. However if some Mac developer have time for that, it should be possible, since the libs I used are cross-platform

Matej wrote:

Nice thank you !
Can you please add edit 1-16 row jump in track.
Simply I will set 4 or 8 for drums.Like in FT2 or Renoise.
And put bass between it...

EDIT : Oh I see, you sent me an email, I understand what you mean by row jump now. I'll work on that for the next version. Is the step relative to the instrument or to the channel ?

Last edited by Phanoo (Feb 23, 2018 4:25 pm)

Offline
Solar System

Simply instrument.Simply you will choose anything else from menu and you will edit whole drums in 4x key press for example. It is keyboard editing stuff.In your tracker is 1 as standard.It is very usefull for fast editing.Almost all trackers have it.See MilkyTracker for example..

Offline
France

That's brilliant, thanks for this piece of software!
It's working fine with wine on Linux (probably on osx as well).

Generally step jumps are for the whole song, you simply change it globally, it might be easier to handle for everyone.

Last edited by garvalf (Feb 24, 2018 7:18 am)

Offline

Very cool!
Aliasing on the oscillators is very noticeable though. What kind of interpolation are you doing? Linear should be good enough if you push the the samplerate up above 48khz (assuming that your tables are at least 256 samples long and 32 bit)

Offline

On the oscillators i'm doing no interpolation at all, instead i use bigger tables (2048 samples) to lower aliasing. It's still hearable on bass-type sounds. Do you think it's annoying ? Some people prefer those slight imperfections. I may switch to 1024-size table + optional interpolation if people like to have the choice !

If you talk about aliasing occuring on high notes or high modulation indexes, it's because I render FM at the real sample rate (no oversampling). What did the Genesis to push the aliasing limits is to have the YM2612 play at about 55Khz then put a low pass filter on the output stage. If you want to remove high notes artifacts you have two options : lower the modulation index as the note go higher (with the Volume Scale parameter), or set your output device to 88200/96000hz wink

Last edited by Phanoo (Feb 24, 2018 8:54 pm)

Offline

If you don't have any interpolation at all, aliasing will be noticeable depending on the frequency played regardless of low/high frequency content. Try listening to a single operator with the sine table across an (middle-ish) octave. Optional interpolation would be great! I agree that aliasing in FM often lends itself well to sound design (e.g hihats) though, but the option would be nice.

Offline

I don't hear any aliasing while playing with a single operator. Is your sound device okay ? I mean, we talk about very small details that shows up when modulation occurs, not really impacting sound design. II tried with 512, 1024, 2048, 4096-sample tables and went with 2048 since the next step only provided minor, barely-noticeable improvements. (each time you increase sine wave precision the benefits are smaller).
Can you record an example to see if there is something wrong ?

Next version is coming... reduced CPU usage (~50% improvements!), FLAC export, row jump like @Matej needed and more !

Last edited by Phanoo (Feb 27, 2018 3:59 pm)

Offline

Sure, here you go - middle octave being played with single sine tone: png, wav

Rendered at 96khz. You can clearly both hear and see the aliasing.
You don't need to bandlimit the playback or anything fancy, linear interpolation will do fine on sinewaves.
(However, the sharper waveforms will probably still alias a bit, that's where you would want to start bandlimiting or simply oversampling)

I know I'm being a bit anal but... The program is very impressive already and I would love to see it improve.

Last edited by _-_- (Feb 27, 2018 9:30 pm)

Offline

Thank you very much for giving those advices ! Don't worry you're not harsh (but maybe I am - sorry if it's the case, I'm not english native, sometimes I don't use the right words).
You're right about the aliasing, I hear it with the headphones, they are probably more precise than my main speakers. It's slight but it's there... I'll see what I can do without sacrifying too much cpu wink