FM Synthesizer with step sequencer for Arduboy
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
FMSynth.cpp
FMSynth.h
FMop.cpp
PWMDAC.cpp
PWMDAC.h
README.md
abSynth-FM.ino
abSynth-FM.ino.hex
fmtg.h
fnum4.cpp
notedefs.h
tables.cpp

README.md

abSynth-FM

FM Synthesizer with step sequencer for Arduboy.

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

Installation

You need Arduboy2 Library.

Usage

See this video.

IMAGE ALT TEXT HERE

IMAGE ALT TEXT HERE

#Data format of serial port communication

Syntax

A series of bytes in hexadecimal digits, separated with delimiters.

Delimiters are newline, return, or space.

All characters from '#' to the end of line are ignored. You can use '#' to include comments in the data.

Data starts with a header section followd by a series of sequence section.

Header section

field type value
Signature uint8_t[4] 'abFM'
Version uint8_t 1
Num of Sequences uint8_t 1 or 16

Sequence section

field type value
Tempo uint8_t 56..240
Transpose int8_t -2..+2
Flags(reserved) uint8_t 128
Synth parameters uint8_t[5] 0..255
Notes int8_t[16] (below)
End mark uint8_t 128

Note data

type value description
rest -1 no sound in the step
tie -2 continue previous note in the step
note 48..84 48 for C4, 84 for C7

Example

One sequence

61 62 46 4D 01 01
3C 00 80 06 02 1B 01 02 3C 3C 43 43 45 45 43 FE 41 41 40 40 3E 3E 3C FE 80

16 sequences

61 62 46 4D 01 10
#Sequence 1-8
3C 00 80 06 02 1B 01 02 3C 3C 43 43 45 45 43 FE 41 41 40 40 3E 3E 3C FE 80
3C 00 80 05 02 1C 01 02 43 43 41 41 40 40 3E FE 43 43 41 41 40 40 3E FE 80
60 01 80 07 05 26 05 02 40 40 40 FE 40 40 40 FE 40 43 3C 3E 40 FE FF FF 80
60 01 80 07 05 26 05 02 41 41 41 41 41 40 40 40 40 3E 3E 40 3E FF 43 FE 80
60 01 80 07 05 26 05 02 41 41 41 41 41 40 40 40 43 43 41 3E 3C FF FF FF 80
4A FF 80 05 09 20 02 02 41 45 48 4C 41 45 47 4A 40 43 47 4A 40 43 45 48 80
C0 00 80 00 08 22 08 07 43 43 43 43 FF 46 46 46 46 FF 46 46 FF 46 46 46 80
94 00 80 00 08 22 08 07 3C 48 3C 45 3C 41 3C 43 3C 48 3C 4A 3C 47 3C 48 80
#Sequence 9-16
4C 00 80 07 03 20 01 02 34 39 3C 45 3B 3F 43 3F 42 FE 40 FE 3B FE 37 FE 80
7E 00 80 02 0C 00 07 07 3C 48 4B 4A 48 46 44 43 41 3F 3E 3F 3B 3C 3E 37 80
82 FF 80 04 01 10 01 02 3C 3C FF 3C 43 43 FF 43 45 FE 3C 45 41 FE 45 41 80
F0 00 80 04 01 10 01 02 3C 3E 40 42 44 46 48 4A 4C 4A 48 46 44 42 40 3E 80
78 FF 80 04 01 08 03 02 3E 3E 3E 3E 3E 3E 3E 3E 41 41 41 41 3C 3C 3C 40 80
73 FF 80 04 01 08 03 02 3C FE FE 3C FF 37 37 37 3C FE FE 3C FF FF 3C 3F 80
82 FF 80 02 0C 00 07 07 34 FF 45 FF 34 FF 45 34 FF 34 45 FF 34 FF 45 34 80
82 FF 80 02 0C 00 07 07 34 FF 45 FF 34 FF 45 34 FF 34 45 34 45 45 34 44 80