FMSynth.py is a module which implements basic real-time polyphonic FM synthesis in Python.
Python is one of the most popular programming languages currently used, but is most commonly used for data analytics and web applications, not audio.
FMSynth.py has the following features:
- Controllable by MIDI. Note that this is very CPU-intensive;
- Configurable polyphony;
- AD envelope (no sustain yet); and
- Dispatches MIDI IN events like NOTE_ON and NOTE_OFF events to the synthesizer.
You can preview an example of how FMSynth.py sounds above.
FMSynth.py is available via Github.
Wish it were actually a Python-interpreting plugin. A p5js one would be cool, too. At this point, our setups are powerful enough that we should be able to shove scripts into plugins. A bit like the way Cabbage leverages Csound, maybe?
I’m a retired programmer, so the last thing I want to do is program anything, especially related to music. I just want to play.
Are you admitting you spent your life doing something you don’t like? That’s sad, man.
I retired from programming a while ago, now I am an investor who fortunately bought thousands of shares of Apple when it was cheap. I’m now a rich mofo, so I’m not too sad. ?
I know exactly what you mean. I designed commercial computer system for years. I don’t find computers stimulate music in me at all. Give me hardware. Period.
But I do love the Korg Prologue – I can write software to hide inside a keyboard, and it sounds beautiful.
I am also a retired programmer (I no longer need to be paid for it) and I love to read other peoples code and I still love to program as to me that is play – horses for courses.
I am a retired python, longing for arms and hands so that I may code music
Easy-peezy, human-squeezy.
Evolution made up for your lack of limbs by giving you two dicks. Don’t complain.
I wrote this, AMA.
Hey Lucas can I use this in circuit python or micro python? I’d love to get it running on one of my microcontrollers.
Well done Lukasz!
I’m sure you’ll have an opportunity to utilize this expertise in Polyend’s device quite soon!