abSynth FM - FM Synthesizer with step sequencer



FM Synthesizer with 16-step sequencer for Arduboy.

Mr. pcm1723’s FM Synthesis engine in FMMelody is used.


Download source code from https://github.com/boochow/abSynth-FM
You need Arduboy2 Library.


Eried's Unofficial Repo :)
Legend of Arduboy: Chiptune and the Arduboy
Eried's Unofficial Repo :)

Amazing work!! :heart_eyes: :thumbsup: This is something that was on my project list, but I’m nowhere near far enough w/ the Arduboy libs to create anything at this level yet (the GUI widgets alone are amazing!) - wow! Any chance of a tracker GUI in the future, for an LSDJ-like experience? :grin: :thought_balloon: :video_game: :musical_score:

(Holmes) #3

Wow!! Great work!! I will try this tonight!

(Kevin) #4

Wow this is so good, is it possible to have more steps or import tracks?

(Wade McGillis) #5


#define SEQ_LEN (16)
int8_t notes[SEQ_LEN] =
{ ... };


I’m happy to hear you guys enjoying this.:smile:
The 16-step limitation is mostly a matter of user interface design.
Now I’m considering to extend it to be able to process more “sequences”,
so that you can choose one to play.

(Kevin) #7

If there was an editor for the web that would be amazing too! Download and share tracks.


hi @boochow,

Really great work you’ve done ! We at TEAM a.r.g. are working on a 4 channel tracker player and FX player for sound in games. Our goal is to get everything as small as possible, using a new song format and a really dense player.

Got a questions for you: how big (byte size) is the synth on it’s own ?


@bateske hmm, good idea. Anyway import and export functions are necessary. I will try it.

@JO3RI The synth engine itself is not my work, it is pcm1723’s, so I can’t say the precise size of the synth code.
FMMelody, a very simple sketch, requires 10,246 bytes flash and 1,430 bytes RAM on Arduboy.
Hello world sketch requires 7,902 bytes flash and 1,342 bytes RAM.
Thus, roughly speaking, about 2.5K bytes of flash and 100 bytes of RAM seems to be necessary for this FM synth engine.

However, FM synthesis is not suitable for games IMHO because it requires much more CPU power in comparison with standard wave table synthesizer.

(Evan Reece) #10

Does the sound come from the arduboy? I tried downloading it, and the audio did not work… pls respond so i can figure out how to get it to work!


Have you installed Arduboy2 Library? If so, please restart Arduino IDE and try to upload the sketch again.

Also, I have uploaded hex file on GitHub. You can use Arduboy Manager for Win to upload it to your Arduboy.

(Holmes) #12

Hey, boochow! If you’re interested, shoot me a message and I’ll host your games on my repo. :wink:


@crait thanks ! I will contact you when this sketch would be stable.

(Dr Hitchcock) #14

When I try compiling and uploading I get the following error:

sketch/PWMDAC.cpp:16:28: fatal error: Wiring_private.h: No such file or directory


Hi, @drh
wiring_private.h is in \hardware\arduino\avr\cores\arduino folder.
If you selected proper board type (Arduino Leonardo) on IDE’s “tools” menu, it should be automatically processed by the compiler.

(Rwatters32) #16

hey @boochow i still cannot get the sound to work even though i have restarted the ide and uploaded it. I can hear it playing, but very faintly. any way to turn up the volume?


@rwatters32 does this small playback only sketch work ?

If it would work, please try absynth fm again.

(Rwatters32) #18

@boochow i tried the test and it worked fine, but when I uploaded absynth again, i still got the same result any fixes

(Rwatters32) #19

@boochow the playback only works fine, but absynth still doesn’t make any noise


@rwatters32 ok, your arduboy working well.
Please test the hex file I uploaded on GitHub.
If it works, please inform.me your Arduino IDE version number.