Automatic FM patch programmer with Genetic Algorithm
This generates a FM instrument for OPN2/OPNA to match a reference sound file.
You will need:
build-essential
git
cmake
libaubio-dev
qtbase5-dev
qtmultimedia5-dev
libqt5multimedia5-plugins
git clone --recursive https://github.com/jpcima/fmprog.git
mkdir fmprog/build
cd fmprog/build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
cmake --build .
The program FMProg
will be found inside the build
folder.
- Load a sound file.
Click Load
and select a reference sound file.
Ideally this file is a clean recording of a playing note, without silence at the beginning nor at the end.
You can try examples/Marimba.wav
.
The program guesses the pitch and displays it in the Pitch
box. You can change this value.
- Run the algorithm
You can choose the targeted FM chip in the FM clock
box.
Then, click Start
. As it computes, the Gen
number will increase.
It can be suspended at any moment by clicking Pause
,
- Save the result
You may hear the current result by clicking Play
.
When it is satisfying enough, record the instrument by clicking Save
.
The source code of this program is licensed under the Boost Software License 1.0.
This mention excludes the following third-party items, which are provided under a different license, as indicated in their file headers.
sources/chips/
sources/file-formats/
sources/synth/
- YEE-KING, Matthew et ROTH, Martin. Synthbot: an Unsupervised Software synthesizer Programmer. In : ICMC. 2008.